summaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAge
* 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).
* Make sure all proper scripts are installed instead of the wrappersJohannes Löthberg2016-12-05
| | | | | | | | | | After 1f8f0bd9ac4c11cdc1b9506f9f64d8192ecad4ee all scripts that were changed to using the wrapper for in-tree use have the wrappers installed to the system instead of the actual script, so change the install command to support all wrapped scripts instead of just makepkg. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* Revert "[RFC] Provide source files for useful debug packages"Allan McRae2016-12-05
| | | | | | This reverts commit a79c0038ae84c38fe063bd7426a839f3c01c10e8. I merged the wrong branch into master...
* [RFC] Provide source files for useful debug packagesAllan McRae2016-11-02
| | | | | | | | | | | Debug packages are fairly useless currently because the soucre files needed for stepping through code etc are not packaged with them. This patch adds the needed source files to the debug package and adjusts the debug info to look at the /usr/src/debug/ directory for them rather than the build location. This requires using the "debugedit" program which is provided as part of the RPM sources. Signed-off-by: Allan McRae <allan@archlinux.org>
* makepkg: print files with refs to $srcdir/$pkgdirIvy Foster2016-10-22
| | | | | | | | Since rewriting build_references() anyway, tweaked quoting. Implements FS#31558. Signed-off-by: Ivy Foster <ivy.foster@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* 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>
* Generalise makepkg-wrapper to handle any script using libmakepkgAllan McRae2016-10-22
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* libmakepkg: generate all scriptsAlad Wenter2016-10-22
| | | | | | | | | In order for the scripts to be used in testsuites, it is easiest to generate all of them so they are found in the build directory (which may be different to the source directory). Signed-off-by: Alad Wenter <alad@archlinux.info> Signed-off-by: Allan McRae <allan@archlinux.org>
* Ensure makepkg-wrapper is built after makepkgAllan McRae2016-10-11
| | | | | | | | makepkg-wrapper did not get rebuilt if makepkg was regenerated due to library changes. Ensure makepkg-wrapper is always generated and linked any time makepkg changes. Signed-off-by: Allan McRae <allan@archlinux.org>
* lint_pkgbuild/pkgname: pkgname is not allowed to be emptyChristian Hesse2016-10-10
| | | | | | | | We checked for empty array elements, but did not catch empty array. Add a check for that case as well. Signed-off-by: Christian Hesse <mail@eworm.de> Signed-off-by: Allan McRae <allan@archlinux.org>
* Move bash/zsh completion out of contribAllan McRae2016-10-10
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Remove pacman-optimizeAllan McRae2016-10-10
| | | | | | | The people who believe that pacman-optimize is actually doing something useful are the same people who are voting for Trump. 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>
* repo-add: fix error in directories with a space in their nameFabio Castell2016-09-09
| | | | | | Fixes FS#50285 Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix typo in pacman-db-upgrade usage messageAllan McRae2016-09-02
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Fix file name in scripts potfileAllan McRae2016-08-30
|
* libmakepkg: look for architecture-specific hashes in get_integlistJack O'Connor2016-08-30
| | | | | | | | | | | | `makepkg -g` looks for existing checksums in the PKGBUILD file, so that it can generate new sums of the same type. Previously it only checked variables of the form "sha256sums", and not "sha256sums_x86_64". That meant it would always fall back to MD5 for packages with only architecture-specific sources. This change makes it look at architecture-specific checksums too to determine the type. Signed-off-by: Jack O'Connor <oconnor663@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
* pacman-key: reject armored signaturesAllan McRae2016-08-30
| | | | | | | | pacman expects an unarmored signature. makepkg forces the generation of unarmored signatures, and repo-add will reject any armored signature. For consistency pacman-key should also reject armored signatures. 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>
* Use a more generic regexp when parsing output of gpg(1) in signature ↵Leonid Isaev2016-05-18
| | | | | | | | | | | | | verification. The current way of extracting key trust from output of gpg --verify is not very robust against changes in the format of said output. As a result, pacman-key can return an error even if the signature is actuall good. This change relaxes the regexp when parsing output of gpg. Signed-off-by: Leonid Isaev <leonid.isaev@jila.colorado.edu> 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>
* libmakepkg: ensure emptydir find command acts on individual directoriesAllan McRae2016-03-21
| | | | | | | | | | | | | | Using "-exec command {} +" systax exits on any error. Such errors occur when running rmdir on a non-empty directory. Switch to "{} ;" syntax instead which avoids exiting before the find command is completed. Fixes FS#48515. Note, we can not use "-empty" in the find command because it is not supported by Busybox find, and the "--ignore-fail-on-non-empty" flag for rmdir is not available on BSD rmdir variants. Signed-off-by: Allan McRae <allan@archlinux.org>
* repo-add: do not alter the database if only verifying signatureAllan McRae2016-02-26
| | | | | | Fixes FS#48085. 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>
* libmakepkg: fix is_array functionAllan McRae2016-02-26
| | | | | | | | | | This happened to work for the majority of cases because the only calling function used a variable named "i" that was related to the variable being passed to the function. Fixes FS#48340. Signed-off-by: Allan McRae <allan@archlinux.org>
* Regenerate translations for 5.0.1Allan McRae2016-02-23
|
* Pull translation updates from TransifexAllan McRae2016-02-23
| | | | 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>
* libmakepkg: increase robustness of the detection of array variablesAllan McRae2016-02-20
| | | | | | | | Extract array detection into its own utility function that ensures extglob is enabled. Suggested-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
* repo-remove: fix checking for non-existent .db databaseAllan McRae2016-02-20
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Update translationsAllan McRae2016-01-30
| | | | 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>
* Fix testing of arrays status for arch specific variablesZuyi Hu2016-01-25
| | | | Signed-off-by: Allan McRae <allan@archlinux.org>
* Pull translations updates from TransifexAllan McRae2016-01-17
| | | | 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: Output full URL in case of download failureFlorian Pritz2015-12-15
| | | | | | | | | | | | | | | | | | | | Most entries in $sources contain variables so finding out why a URL fails to download is hard because one has to manually replace the variables when looking at the PKGBUILD. Simply output the full URL here so that it can be easily seen what is wrong. Old: ==> ERROR: Failure while downloading example-1.2.4.tar.gz New: ==> ERROR: Failure while downloading http://example.org/releases/1.1/example-1.2.4.tar.gz With the new format it is much more obvious that the directory name is the culprint (1.1 vs 1.2) while the old one would not display that information. Signed-off-by: Florian Pritz <bluewind@xinu.at> 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>
* Pull translations from Transifex and prepare for next releaseAllan McRae2015-12-09
| | | | 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>