summaryrefslogtreecommitdiffstats
path: root/archbuild.in
AgeCommit message (Collapse)AuthorFilesLines
2019-11-30archbuild: use better umaskEli Schwartz1-1/+1
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 Polyak1-1/+1
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 Schwartz1-4/+13
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 Schwartz1-1/+1
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 Schwartz1-1/+1
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 Eckner1-1/+1
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 Linderud1-1/+1
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 Schwartz1-1/+6
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 Shumaker1-4/+4
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 Shumaker1-0/+1
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 Shumaker1-1/+1
`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)1-3/+1
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)1-1/+1
2017-03-07lib/archroot.sh: Simplify check_rootJan Alexander Steffens (heftig)1-3/+2
Move the function and save the orig_argv right along it.
2014-10-19save and reuse original argv when auto-elevatingDave Reisner1-2/+4
Fixes FS#42277.
2014-09-22archbuild: Fix a variable name mistake. ($copydir -> $copy)Luke Shumaker1-1/+1
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 Luttringer1-3/+1
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)1-1/+1
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)1-2/+2
Allows calling makechrootpkg without worrying about the architecture
2013-05-03lib/common.sh: Introduce locking helper functionsJan Alexander Steffens (heftig)1-6/+2
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)1-3/+3
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 Schmitz1-1/+3
2013-03-17archbuild: only use base-devel to new chrootSébastien Luttringer1-1/+1
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 Schmitz1-1/+1
2013-01-20Allow makechroot options in archbuildSébastien Luttringer1-4/+12
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élanger1-1/+1
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 Schmitz1-2/+2
2012-06-16archbuild: do not cross filesystems when removing the chroot copiesPierre Schmitz1-2/+2
2012-06-16archbuild: use flock -n as we do elsewherePierre Schmitz1-3/+6
2012-06-12archbuild: Store chroots in /var/lib instead of /var/tmpPierre Schmitz1-1/+1
/var/tmp is cleaned up by tmpfiels by default which we cannot handle gracefully.
2012-01-18Set correct pacman.conf20120119Pierre Schmitz1-1/+1
Commit ee4edefa2f12372adb4793c0dd6420fc76911ae4 reverted too much and left pacman.conf unset
2012-01-18Remove any pacman 4 related workarounds20120118Pierre Schmitz1-16/+1
2011-12-04archbuild: exec makechrootpkg to preserve exit valueDave Reisner1-1/+1
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 Schmitz1-7/+16
2011-11-01Move common functions to a shared filePierre Schmitz1-6/+8
* 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 Schmitz1-0/+7
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 Fleischer1-0/+68
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>