A PKGBUILD can have an option check() function for running test suites
between the build() and package() stages. This function is run by
default but can be disabled globally in with "!check" in BUILDENV in
makepkg.conf. This setting can be controlled on an individual package
basis using makepkg's --check and --nocheck flags. Addition dependencies
needed for running the test suite can be specified in the checkdepends
array and are only checked when running the check() function.
Original-work-by: Jeff C <jeff@kcaccess.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
For binary packages, the majority of the time used in the debugs symbol
stripping process is the actual stripping of the binaries/libraries and
not the testing of which files to strip. This allows more complete
stripping of packages that install to "non-standard" paths that would
not be generally included in makepkg.conf.
Any performance hit that may be apparent for (_large_) "arch=('any')"
packages can readily be avoided by disabling stripping in the PKGBUILD
options array.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
The newly added variables STRIP_BINARIES, STRIP_SHARED and STRIP_STATIC,
that are set in makepkg.conf, specify the strip options used on binaries
and shared and static libraries.
In addition, files are now stripped more aggressively by default.
Implements FS#13592 the way it was suggested by Allan in the comments.
Signed-off-by: Cedric Staniewski <cedric@gmx.ca>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
Introduce $SRCPKGDEST to define a destination dir for source packages
instead of saving them in $PKGDEST with binary packages.
The simple patch doesn't break old behavior.
Signed-off-by: Nezmer <git@nezmer.info>
Signed-off-by: Dan McGee <dan@archlinux.org>
1) Do not attempt to strip compressed binaries
Original-work-by: Marc - A. Dahlhaus <mad@wol.de>
2) Add "\" in "GPL\'ed" so quote mark does not break source code highlighting
3) Add local to docdir paths in makepkg.conf for consistency
4) Use full path to sed in MacOSX in case users have GNU sed earlier in
path
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
The pkgdelta script can be used instead.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
This patch started as a simple typo fix (pugre instead of purge in two
places), as well as a fix of a test which was using PURGE_TARGETS instead of
$PURGE_TARGETS.
It evolved in a slight handling change of the OPTIONS which have a variable
affecting their behavior (strip STRIP_DIRS, docs DOC_DIRS, zipman MAN_DIRS
and purge PURGE_TARGETS), as well as a clarification in makepkg.conf. Now
when a variable is undefined or empty, the corresponding option will have no
effect. It looked weird to have a fallback when a option is defined but
empty, it seems more natural to not have any fallbacks.
Also re-enable docs by default. It seems arbitrary to delete files from
packages by default, and it would be more vanilla and distro agnostic to
keep them. docs was also the only negated option.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
Provide support for specifying LDFLAGS within makepkg.conf but leaves
this undefined by default. Fixes FS#12542.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
Commit 4b183bf9 moved makepkg.conf sourcing to after the parsing
of options, breaking the -p option and --help output. The solution
is to move BUILDSCRIPT out of makepkg.conf. This patch moves the
definition BUILDSCRIPT back to makepkg itself and adds configure
option to allow easy changing of this value during build time.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
The purge option, combined with the PURGE_TARGETS variable,
allows makepkg to automatically remove commonly confliting or
removed files (e.g. /usr/share/info/dir, *.pod).
Original work: Tim Yang
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
Provides a MAN_DIRS variable in makepkg.conf which can be used
to specify folders to look for manual (man and info) pages to be
compressed. Useful for packages that install to /opt. Also
clarifies that "zipman" means "zip manuals" and covers both man
and info pages.
Original work by: Tiago Pierezan Camargo <tcamargo at gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
After commit 7865fb9af4, info pages are now treated like man pages.
This means even with !docs, info pages will still be included. And including
info pages was the main reason the docs option was enabled by default
recently. So this is now longer needed, and we can revert back to !docs by
default for disabling gigantic html pages and other docs.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
DB_COMPRESSION was only used in repo-add and DB_CHECKSUMS was not used
anywhere.
This also removes the dependency on makepkg.conf in repo-add, so repo-add no
longer needs to source makepkg.conf
And instead of DB_COMPRESSION, it seems better to just check the extension
of the repository file. It does not make sense to have a tar.gz file with a
tar.bz2 extension or whatever.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
As far a package building is concerned, info pages need to be treated
in the same fashion as man pages in that they both can be compressed.
This separates them from other forms of documentation and so it makes
sense to make that distinction within makepkg.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
This patch introduces a new STRIP_DIRS makepkg.conf option
to change makepkg's search path when stripping binaries.
Original work by: Thomas Bächler <thomas@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
All other steps in tidy_install function were already controlled by an
option in makepkg.conf, so this patch adds an option for the man page
compression step too.
This will allow to keep man pages uncompressed, which is required for some
special meta man page, like the zshall one (see FS#4580).
Ref: http://www.archlinux.org/pipermail/pacman-dev/2008-March/011472.html
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Download to *.part and remove the suffix if successful, thus md5sums will be
checked only for complete files, and next time makepkg will resume
downloading of partial file instead of complaining about invalid md5sums.
Old DLAGENTS format is still supported.
Late fix: Do not try to download %u first
The output of grep was not suppressed, thus the output of get_downloadcmd
was wrong because of extra line at the beginning that contained an
unsubstituted (with %o and %u) entry from DLAGENTS.
Signed-off-by: Roman Kyrylych <roman@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
Arch no longer installs Gnome here, and we should be stripping any doc dirs
in /opt anyway, so generalize it. Fixes FS#9597.
Signed-off-by: Dan McGee <dan@archlinux.org>
Remove the need for two variables for the architecture-specific switches
(things like "-march=i686") by combining it into one variable. Also allow
configure to proceed with only a warning if we don't have presets for the
detected architecture- it is kind of stupid to restrict ourselves like we
had been.
Signed-off-by: Dan McGee <dan@archlinux.org>
* etc/makepkg.conf.in: Add description for xdelta.
* doc/makepkg.conf.5: Add description for xdelta.
* scripts/makepkg.in: Various clean ups.
Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
Signed-off-by: Dan McGee <dan@archlinux.org>
* configure.ac: Add AC_SUBST() for ROOTDIR, PKGEXT, DBEXT so
they get exported to Makefiles.
* {makepkg,pacman}.conf.in: Remove extra / from paths.
Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
By setting up a few more AC_SUBST macros in configure.ac, we can fill in
paths in the scripts on the fly instead of having them in multiple places.
Other small fixes:
* Fix an oops on my last commit where I had some lines stil commented.
* Fix makepkg bug where the generated package name using PKGEXT had two
periods (..).
Signed-off-by: Dan McGee <dan@archlinux.org>
GCC-4.2.0 requires -mtune=generic to produce binaries optimized for
generic i686/x86_64. By default it tries to optimize a for the host
system building the package.
Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
A few changes to undo my stupid mistake earlier wrt fakeroot checking,
and unify the output and usage of 'makepkg.conf'.
Signed-off-by: Dan McGee <dan@archlinux.org>
This patch fixes FS #4404 as well as adding support for future protocols by
generalizing the concept of a download agent and allowing a downloader to
be specified for each protocol.
Original work done by Andrew Fyfe <andrew@neptune-one.net>.
Signed-off-by: Dan McGee <dan@archlinux.org>
Moved the following variables into /etc/makepkg.conf
* BUILDSCRIPT
* PKGEXT
* DB_COMPRESSION
* DB_CHECKSUMS
Cleaned up sourcing of /etc/makepkg.conf in scripts and source
~/.makepkg.conf if it exists.
Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
Signed-off-by: Dan McGee <dan@archlinux.org>
Giovanni Scafora <linuxmania@gmail.com>
* Changed default SRCDEST in makepkg.conf. Two reasons:
1) consistency with PKGDEST in /home/packages
2) building packages as root is NOT recommended, so no reason to ever
encourage this use by caching source in a dir with root permissions
Yes, we may all do this differently and build our packages in other
directories. But that is why they are variables and can be set anyway.
and not always MARCH). Also changes makepkg.conf.in to not have commented -mcpu
lines (due to the above), but to have a comment about the differences in -march
and -mcpu
most of the former options in makepkg.conf, and are described in detail
there:
BUILDENV=(fakeroot !distcc color !ccache)
OPTIONS=(strip !docs !libtool emptydirs)
Note that PKGBUILD specified options will always have final say. They will
now be specified as they are above, except using lowercase 'options' array.
* makepkg was fixed so options actually work as expected.