summaryrefslogtreecommitdiff
path: root/scripts/makepkg.sh.in
Commit message (Collapse)AuthorAge
* Build a single debug package for all packages from a PKGBUILDAllan McRae2016-12-05
| | | | | | | | | | | | | | | | | | We want to provide source files with debug symbol packages to allow easy stepping through the program. This becomes difficult with split packages due to the binaries in many of these sharing source files across packages. There are (at least) two solutions to this problem. #1: ensure common source files are located in the debug package for the package lowest in the dependency chain and add dependencies to the debug packages so all require source files are present, or #2: create one debug package for all split packages in a PKGBUILD. The second is a more robust approach despite potentially creating very large debug packages. This patch creates a single $pkgbase-debug package and adds provides such that installing $pkgname-debug will always work. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: abort on lint_package errorsAndrew Gregory2016-12-05
| | | | | | | Allows lint_package to prevent makepkg from creating an invalid package. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: reject package data with newlinesAndrew Gregory2016-12-05
| | | | | | | The PKGINFO format cannot handle values that contain newlines. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: fix find_lib{depends, provides} resultsAndrew Gregory2016-12-05
| | | | | | | | | Neither function was checking for the existence of actual results before calling printf, resulting in them returning a list with a single empty value if there were no depends/provides. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: unset potentially architecture-specific varsDave Reisner2016-12-05
| | | | | | I'm not convinced this is a worthwhile goal, but let's follow suit. Since we can't know the names of all the vars that might exist, unset them by pattern.
* makepkg: fix quoting in calls to dependency checkingDave Reisner2016-12-05
|
* makepkg: fix quoting in calls to check_depsDave Reisner2016-12-05
| | | | | The inside needs quoting, and this is separate from the declartion, which does not (in these cases).
* makepkg: make run_function_safe more robustDave Reisner2016-12-05
| | | | | | | | | | | | | | | | | | | Use shopt to set/reset errexit and errtrace, which lets us: 1) be more vigilant, resetting anything the user might do to us in PKGBUILD functions. 2) use human-readable words (errexit vs. -e) On top of this, introduce a new save/restore for the shell's other shopts. A user should not have any expectations that what happens in one function is available in another function, if it isn't explicitly defined in the PKGBUILD. While this change does not make that assertion, it gets us closer. We also replace a variable which comes from out of nowhere (pkgfunc) with the positional parameter containing the same value. Quoting is adjusted to make the expansion happen at the time the trap is set, rather than later on.
* makepkg: remove vestiges of global errexitDave Reisner2016-12-05
| | | | | These 'set +E' diversions haven't been needed since global errexit was disabled in dca10b062f2 (January 2012).
* Use coreutils binaries for checking/generating checksumsAllan McRae2016-10-22
| | | | | | | | | | | | | | | | | If pacman is build against a crypto library other than openssl, it makes no sense to require makepkg to use it. The only currently considered alternative to openssl is nettle, which has no binary for base64 encode/decode. This means that we could replace the hashing cacluations with nettle-hash, but would require base64 from coreutils. Given makepkg already relies heavily on coreutils, we might as well use all the coreutils hashing binaries too. This patch also improves the checking of required binaries for hashing operations. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Move parseopts from library to libmakepkgAlad Wenter2016-10-22
| | | | | | | | | | | | | | | parseopts is used in makepkg and other scripts such as pacman-key as a getopt replacement. Instead of including it in those scripts via a macro, move it to libmakepkg/util/parseopts.sh and have scripts source this file where appropriate. To keep the parseopts test, a new variable was introduced: PM_LIBMAKEPKG_DIR Signed-off-by: Alad Wenter <alad@archlinux.info> Signed-off-by: Allan McRae <allan@archlinux.org>
* fix --printsrcinfo unify arch and non-arch specific variablesLevente Polyak2016-10-10
| | | | | | | | | | This fixes the issue with --printsrcinfo that all arch specific variants of a variable get merged into their non arch specific variant. The .SRCINFO file ends up having $depends containing $depends_x86_64 and omitting the latter. Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract functions for integrity checkingAshley Whetter2016-05-18
| | | | | Signed-off-by: Ashley Whetter <ashley@awhetter.co.uk> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: ignore the architecture for --printsrcinfoAlastair Hughes2016-05-18
| | | | | Signed-off-by: Alastair Hughes <hobbitalastair@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: move build enviroment set-up to functionAllan McRae2016-05-18
| | | | | | | | | | | | | This is a requirement to split the preparation of the build environment into libmakepkg, which will allow dropping in extensions (e.g. to allow PGO). After this patch, disabling buildflags or makeflags and enabling debug CFLAGS will only effect the build(), check() and package() functions. The relevant variables are no longer exported for the prepare() function. This should have zero impact for the prepare() function of a properly written PKGBUILD, as no building/linking is done there... Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract functions for writing .SRCINFO filesAshley Whetter2016-03-28
| | | | | Signed-off-by: Ashley Whetter <ashley@awhetter.co.uk> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Turn PACMAN_OPTS into an arrayXyne2016-02-26
| | | | | | Avoid potential word expansion with future inclusions Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Remove upx and optipng supportAllan McRae2016-02-26
| | | | | | | | | These options were added before libmakepkg allowed passes like this to be dropped in. I prefer only real core packaging tasks to be included in makepkg and additional things like this to be dropped in by a user or distribution that wants to support them. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: do not run prepare() with --noextractEvangelos Foutras2016-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | This is partial revert of 8454daa7feef (makepkg: run pkgver() and prepare() with --noextract). Reasoning for the reversion (copied from FS#43498): Running prepare() when --noextract is used no longer allows running 'makepkg -o && makepkg -e' with any PKGBUILD that applies patches in prepare(). [1] Sure there's --noprepare which restores the old behavior, but that's a lot of extra typing for what I believe is a much more common use of --noextract. For OP's use case of doing git bisects, you can specify the commit in the source array and thus skip --noextract since makepkg will checkout the correct commit each time. [1] I often extract the sources using 'makepkg -o', manually edit some source files, and then use 'makepkg -e' to package it (while possibly repeating the edit/package steps). Signed-off-by: Allan McRae <allan@archlinux.org>
* only include .SRCINFO comments in source tarballDominik Fischer2016-02-21
| | | | | | | | This avoids introducing unnecessary changes to the time stamp into package repositories that regularly use --printsrcinfo to update the .SRCINFO file. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: remove pkg from OPT_LONG arrayAllan McRae2016-02-20
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Revert "makepkg: Empty/create only $pkgdir's relevant to current PKGBUILD"Allan McRae2016-02-20
| | | | | | | | | This reverts commit f9423cfa5d5b9f2041b70676438082faad1cd1ee. This created issue when building packages with debug info multiple times. It could be fixed, but it confirmed my initial opinion that keeping other directories in $pkgdirbase was wrong. Use different BUILDDIRs if you want to build different things from a single PKGBUILD.
* Make "makepkg -g" ignore the current architecture.Alastair Hughes2016-02-20
| | | | | | | | | | Commit 663c74150ab4ba6d3adc55b0e3f539557a16e352 (makepkg: merge arch dependent variables after PKGBUILD linting) broke "makepkg -g" on a PKGBUILD which did not include the current architecture, by moving the lint_pkgbuild call before GENINTEG was processed. Fix that by setting IGNOREARCH for the "-g" option. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: do not run prepare() and pkgver() with --repackageAllan McRae2016-01-25
| | | | | | | Bug introduced with commit 8454daa7. Reported-by: Zuyi Hu <hzy068808@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* Update copyright years for 2016Allan McRae2016-01-04
| | | | | | make update-copyright OLD=2015 NEW=2016 Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: run pkgver() and prepare() with --noextractAllan McRae2015-12-15
| | | | | | | | | | Modifications made to the source before running with --noextract may alter the version string returned by pkgver(). Always run this function if present and check build status before proceeding. Fixes FS#46800. Also run prepare() when --noextract is used (unless --noprepare is specified). Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: record build information in .BUILDINFOAllan McRae2015-12-06
| | | | | | | This information can be used to reproduce build conditions, which can then be used to determine if a package builds reproducibly. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: add whirlpool to the list of hashing algorithmsLuke2015-12-06
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: merge arch dependent variables after PKGBUILD lintingAllan McRae2015-11-23
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: remove obsolete commentAllan McRae2015-11-23
| | | | | | Behaviour changed in commit dce82f9d. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: fix $pkgname element duplicationBenjamin Yates2015-10-28
| | | | | | | | | | | | run_split_packaging did not preserve the $pkgname array correctly, and would create duplicate entries in the list during restore. After restoring the backup (a b c) would become (a b c b c). This probably went unnoticed because during --install, pacman would reconcile the duplicates. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Fix hard-coded debug suffixMohammad Alsaleh2015-10-22
| | | | | Signed-off-by: Mohammad Alsaleh <CE.Mohammad.AlSaleh@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Set CCACHE_BASEDIR to make paths in $srcdir relativeJan Alexander Steffens (heftig)2015-10-19
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Correctly layer distcc and ccacheJan Alexander Steffens (heftig)2015-10-19
| | | | | | | | | ccache expects further compiler wrappers to be specified via CCACHE_PREFIX. Otherwise, ccache will hash the wrapper executable instead of the real one. Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: Add check_buildoption for distcc and ccacheJan Alexander Steffens (heftig)2015-10-19
| | | | | | | | | | | makepkg used to check OPTIONS too, which could override BUILDENV. Implement a new function that handles these options more like OPTIONS. This also reduces code duplication a bit. Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: separate "sourcefile" into two wordsAllan McRae2015-10-19
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: remove ability to build individual packagesAllan McRae2015-09-23
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: remove FORCE_VER variableAllan McRae2015-09-22
| | | | | | This variable is no longer in VCS building. Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: move color settings to functionAllan McRae2015-07-20
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* dont remove x bit when marking pkgdir RODave Reisner2015-07-20
| | | | | | | | f170a94c137d355 potentially causes $pkgdirbase/$pkg to be undeleteable with -R or -C if a previous build was interrupted. We simply can't traverse to this directory, and rm blows up. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: Add flag for printing SRCINFO to stdoutJohannes Löthberg2015-06-20
| | | | | | | | | | | | | | | This commit adds a makepkg option to generate and print the SRCINFO file for a PKGBUILD, required by the new AUR, to stdout. AUR 4.0 will use Git instead of source tarballs for uploading packages, so making makepkg capable of printing the SRCINFO would simplify package management, instead of having to extract it from a source tarball. It is also useful for scripting other things, so that instead of having to parse PKGBUILDs, one can make makepkg generate the SRCINFO and then you can parse that instead, which is much simpler and less error-prone. Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract functions for source download and extractionAllan McRae2015-05-19
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract functions for handling source URLsAllan McRae2015-05-19
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: move more functions for extracting information from PKGBIULDsAllan McRae2015-05-19
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract more utility functionsAllan McRae2015-05-19
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract get_full_version and get_pkg_archAllan McRae2015-05-16
| | | | | | | These functions group in with other functions that extract PKGBUILD information. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: merge validate_pkgver into check_pkgverAllan McRae2015-05-16
| | | | | | | | The check that pkgver is non-empty done in check_pkgver should also be performed after running the pkgver() function. Merge validate_pkgver into check_pkgver and run check_pkgver after updating pkgver. Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract PKGBUILD linting functionsAllan McRae2015-05-16
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: extract in_arrayAllan McRae2015-05-16
|
* libmakepkg: move functions for extracting pkgbuild attributesAllan McRae2015-05-16
| | | | | | | | | | Also rename some functions for clarity: funcgrep -> grep_function extract_global_var -> extract_global_variable extract_function_var -> extract_function_variable pkgbuild_get_attribute -> get_pkgbuild_attribute Signed-off-by: Allan McRae <allan@archlinux.org>