summaryrefslogtreecommitdiff
path: root/archbuild.in
AgeCommit message (Collapse)Author
2022-09-30allow PKGEXT to be set from the environmentErich Eckner
2021-10-29Add GPL-3.0-or-later SPDX identifier to all scriptsDavid Runge
Add the SPDX license identifier GPL-3.0-or-later to the header of all scripts without a specific license and upgrading those that are stated as GPL-2.0 to become GPL-3.0-or-later.
2021-07-17allow to call setarch with a different value than $CARCHErich Eckner
Introduce setarch-aliases.d/ which gets installed inside /usr/share/devtools. This allows to assign aliases which map one CARCH to a different name which gets provided as argument for setarch. This is necessary on archlinuxarm ("armv6h" -> "armv6l", "armv7h" -> "armv7l") and allows for more fine-grained architectures (e.g. archlinux32 has "i686" and "pentium4", which differ in the required cpu capabilities). Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-11-30archbuild: use better umaskEli Schwartz
In commit 40a90e2cab479cc64903a62b42eb617a8a7e5842 we tried to protect against system umasks resulting in unreadable chroots. However, we tried to do this in a targeted manner due to not wanting to fiddle with permissions for user-owned files. Unfortuantely, mkdir -p -m755 does not actually work that way -- the parent directory is created with broken permissions. We need umask. Run umask and mkdir in a subshell to prevent leakage. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
2019-09-28makechrootpkg: run checkpkg automatically after buildLevente Polyak
Cache previous versions required for checkpkg via pacman to avoid multiple downloads when running multiple times. In case we can't download the packages, like while building out of repo packages, print a warning instead of running checkpkg Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-08-09archbuild: prefer repo/arch-specific configs if they existEli Schwartz
When mixing and matching different repos and architectures not present in mainline archlinux, it is sometimes desirable to set up differing presets with more granularity than devtools currently allows. One example of this is when building for architectures that are only supported by another project -- in order to coexist on a mainline archlinux host, a different mirrorlist needs to be used. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-08-09makechrootpkg: also downgrade packages when updating chrootsEli Schwartz
Packages should never be getting downgraded... unless a package is pulled from testing, e.g. for example if gcc9 totally breaks the linux kernel. In such cases, the master repo says there is a downgrade, so we'd better go with that. Basically, ensure that packages match the repo they are being built against. Consistency at all costs! Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-08-09ensure that sane umask is used where neededEli Schwartz
If a user umask is restrictive, a chroot may be created as root without the ability for the user to read it, which then causes makepkg --verifysource to fail. Do not set this in lib/common.sh, where it would apply to all scripts, as we do not want to override the user's policy for things like $SRCDEST files, svn checkouts, etc. Fixes FS#47625 Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-04-20fix whitespace/indentation errorsErich Eckner
Some lines are indented by spaces, while adjacent lines are indentet by tabs. We should use tabs on both. Signed-off-by: Erich Eckner <git@eckner.net>
2019-01-22Expand check_root keepenv variablesMorten Linderud
Les us source makepkg.conf settings from the environemnt. This also includes `GNUPGHOME` which is present in `makechrootpkg`, but not included in archbuild. Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2017-11-22Support reproducible buildsEli Schwartz
Recent development versions of makepkg support reproducible builds through the environment variable SOURCE_DATE_EPOCH. Pass this variable through makechrootpkg to makepkg when available. Also initialize SOURCE_DATE_EPOCH whenever running archbuild to enforce reproducible builds for repository packages. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2017-04-05Avoid using string interpolation; use printf format strings instead.Luke Shumaker
This involves extending the signature of lib/common.sh's `stat_busy()`, `lock()`, and `slock()`. The `mesg=$1; shift` in stat_busy even suggests that this is what was originally intended from it.
2017-04-05Add a "License:" tag to all code files.Luke Shumaker
In cases where there is no license specified, the file is tagged as "License: Unspecified". Obviously, that is not ideal, but it highlights the fact, and I hope that it encourages whoever has the authority to specify the license to do so. On that note, to anyone who may have the authority to specify the license of files in devtools: the current licence of many files is GPLv2 with no option for later versions; I impore you to re-license them to have the "or any later version" option.
2017-04-05lib/common.sh: add 'lock_close'; use it as appropriate.Luke Shumaker
`lock_close FD` is easier to remember than 'exec FD>&-`; and is especially easier if FD is a variable (though that isn't actually taken advantage of here). This uses Bash 4.1+ `exec {var}>&-`, rather than the clunkier `eval exec "$var>&-"` that was necessary in older versions of Bash. Thanks to Dave Reisner for pointing this new bit of syntax out to me the last time I submitted this (back in 2014, 4.1 had just come out).
2017-03-07archbuild/makechrootpkg: Delete subvolumes in rootsJan Alexander Steffens (heftig)
The systemd package creates a subvolume at /var/lib/machines (through tmpfiles), if it can. We need to delete this subvolume before we can delete the parent subvolume. Look through the root for inodes with the number 256. These identify subvolume roots.
2017-03-07lib/archroot.sh: Add is_btrfs helperJan Alexander Steffens (heftig)
2017-03-07lib/archroot.sh: Simplify check_rootJan Alexander Steffens (heftig)
Move the function and save the orig_argv right along it.
2014-10-19save and reuse original argv when auto-elevatingDave Reisner
Fixes FS#42277.
2014-09-22archbuild: Fix a variable name mistake. ($copydir -> $copy)Luke Shumaker
It tried to lock `$copydir.lock`, which was the ONLY mention of $copydir in the entire file. Surely it meant `$copy.lock`; the line was probably originally copy/pasted from makechrootpkg or similar, where $copydir is used.
2014-05-10Switch to root when started as regular userSébastien Luttringer
In collaborative builder machine, these scripts are often allowed to become root via sudo. This patch avoid to prefix them by sudo each time or call su. Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2013-05-11archbuild: Correct makechrootpkg argument orderJan Alexander Steffens (heftig)
The user-passed makechrootpkg_args may contain a "--" to pass arguments to makepkg. In this case, the order is wrong.
2013-05-06arch-nspawn: setarch to CARCHJan Alexander Steffens (heftig)
Allows calling makechrootpkg without worrying about the architecture
2013-05-03lib/common.sh: Introduce locking helper functionsJan Alexander Steffens (heftig)
Reduces code duplication. With makechrootpkg not calling mkarchroot anymore, the lock handover protocol is unneeded. arch-nspawn does not do any locking, so add protection to archbuild.
2013-05-02mkarchroot: Refactor chroot running into a new scriptJan Alexander Steffens (heftig)
Separates the two features of mkarchroot. Provides users of the new arch-nspawn with the full feature set of systemd-nspawn. For example, this can be used to bind custom directories into the chroot.
2013-04-06Only try to use btrfs snapshots if chroots are on a btrfs partitionPierre Schmitz
2013-03-17archbuild: only use base-devel to new chrootSébastien Luttringer
Since TODO [1] which state: It would be good for base-devel to install everything needed for a build chroot we can remove base and sudo [1] https://www.archlinux.org/todo/add-more-to-base-devel/ Signed-off-by: Sébastien Luttringer <seblu@seblu.net> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2013-01-22archbuild: fix default build flags20130122Pierre Schmitz
2013-01-20Allow makechroot options in archbuildSébastien Luttringer
This will allow, by example, to easily build a package with a custom pkg. staging-x86_64-build -- -cI /var/cache/pacman/pkg/ldoc-1.2.0-1-any.pkg.tar.xz staging-x86_64-build -- -n Signed-off-by: Sébastien Luttringer <seblu@seblu.net> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2012-11-15Make sure the usage functions are consistentEric Bélanger
The usage messages now begins with a "Usage:", i.e. capitalized and with a colon. Fixes FS#26956. Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2012-10-03archbuild: abort if update or creation of the chroot failsPierre Schmitz
2012-06-16archbuild: do not cross filesystems when removing the chroot copiesPierre Schmitz
2012-06-16archbuild: use flock -n as we do elsewherePierre Schmitz
2012-06-12archbuild: Store chroots in /var/lib instead of /var/tmpPierre Schmitz
/var/tmp is cleaned up by tmpfiels by default which we cannot handle gracefully.
2012-01-18Set correct pacman.conf20120119Pierre Schmitz
Commit ee4edefa2f12372adb4793c0dd6420fc76911ae4 reverted too much and left pacman.conf unset
2012-01-18Remove any pacman 4 related workarounds20120118Pierre Schmitz
2011-12-04archbuild: exec makechrootpkg to preserve exit valueDave Reisner
This fixes a compound command such as the one below from continuing even if the first fails. extra-x86_64-build && extra-i686-build The problem is that 'cleanup 0' is triggered in archbuild even after an unsucessful call to makechrootpkg. Since both archbuild and makechrootpkg share the exact same cleanup function (from lib/common), we simply force the shell to exit with the true return value by exec'ing the call to makechrootpkg. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-11-06archbuild: Always use recent makepkg.conf and pacman.conf; Run namcap by defaultPierre Schmitz
2011-11-01Move common functions to a shared filePierre Schmitz
* common.sh is included on build time * most functions are copied from makepkg
2011-10-29temporary workaround until pacman 4.0 moves to [core]Pierre Schmitz
Pacman 3 refuses to work with the pacman 4 SigLevel config entry Also related: https://bugs.archlinux.org/task/26555
2011-10-07Support non-standard install locationsLukas Fleischer
This build system overhaul allows for adding (define-style) macros to our scripts. All source files are now suffixed with ".in" to clarify that they might contain unprocessed defines. The Makefile provides a new rule to preprocess source files and generate proper output scripts. Also, add a "@pkgdatadir@" define (as used in GNU Autotools) and use it instead of hardcoded paths to "/usr/share/devtools" everywhere. We missed this when adding PREFIX support to the build system in commit 35fc83ce7d8dc26cd424321f2e8638d05da0a6d4. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>