Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-02-15makechrootpkg: Adjust to have the functions work with `set -u`.Luke Shumaker
Even though main() doesn't call `set -u`; this way the functions will continue to work if copied into an environment with `set -u`, or so that we are ready if we ever want to start using `set -u`.
2017-02-15makechrootpkg, arch-nspawn: Force-enable local '/repo/' repository.Luke Shumaker
The change in arch-nspawn is subtle: This was the source of "infamous" "it fails every other time" bug that took me over a year to solve. <https://labs.parabola.nu/issues/435> By having a repository of local packages (rather than simply running `pacman -U`), we are inviting pacman to cache them in `/var/cache/pacman/pkg`. Besides being needless disk writes, this actually causes a real issue. If the package gets rebuilt, pacman will balk, as the file no longer matches the cached signature. So, how do we prevent pacman from caching these local packages? Simple: include the directory they are already in in the pacman.conf:CacheDir list. This will prevent pacman from copying the files to one of the other cache directories.
2017-02-15makechrootpkg: move_products: Mimic `makepkg` and symlink products into PWD.Luke Shumaker
2017-02-15makechrootpkg: _chrootprepare: Clean srcdest and startdir.Luke Shumaker
2017-02-15makechrootpkg: _chrootbuild: Split into _chroot{prepare,build}.Luke Shumaker
2017-02-15makechrootpkg: Detect the chroottype in individual functions, not globally.Luke Shumaker
2017-02-15makechrootpkg: Have functions be more function-y.Luke Shumaker
Rather than them simply being named blocks of code with braces around them. That is: have them take things via arguments rather than global variables. Specific notes: - download_sources: Observation: if $SUDO_USER is set, then src_owner=$SUDO_USER. So (for clarity), rather than checking if $SUDO_USER is set, check if $src_owner is different than $USER. This reduces how much we have to worry about global state. - install_packages: 1. Receive the list of packages as arguments, rather than a global variable. 2. Make the caller responsible for looking at PKGBUILD. From the name and arguments, one would never expect it to look at PKGBUILD. - create_chroot->sync_chroot: I pulled the `if [[ ! -d $copydir ]] || $clean_first;` check out; it is now the caller's responsibility to use that check when deciding if to call sync_chroot.
2017-02-15makechrootpkg: Improve status messages.Luke Shumaker
2017-02-15makechrootpkg: Quote directory passed to `rm -rf`.Luke Shumaker
2017-02-15mkarchroot: Don't let the environment affect pacstrap (sans proxy settings).Luke Shumaker
A previous iteration of this change (libretools commit d7dcce53396d) simply inserted `env -i` to clear the environment. However, that lead to it ignoring proxy settings, which some users had problems with: https://labs.parabola.nu/issues/487: > To fix other bugs, the pacstrap environment is blank, which also > means that the proxy settings are blank. So (in libretools commit d17d1d82349f), I changed it to use `declare -x` to inspect the environment, and create a version of it only consisting of variables ending with "_proxy" (case-insensitive). I honestly don't remember what "other bugs" prompted me to clear the environment in the first place.
2017-02-15mkarchroot, arch-nspawn: Add an `-s` flag to inhibit `setarch`.Luke Shumaker
This allows us to run an ARM chroot on an x86 box; as the binfmt runner will set the architecture for us, and the x86 `/usr/bin/setarch` program won't know about the ARM architecture string.
2017-02-15mkarchroot, arch-nspawn: Add an `-f` flag to add files to copy.Luke Shumaker
This allows us to copy in files like `qemu-arm-static`, which is necessary for running an ARM chroot on an x86 box.
2017-02-15lib/common.sh: Make it safe to include multiple times.Luke Shumaker
This is similar to common C #ifdef guards. I was tempted to wrap the entire thing in the if/fi (rather than use 'return' to bail early. However, that means it won't execute anything until after it reaches 'fi'. And if `shopt -s extglob` isn't executed before parsing, then it will syntax-error on the extended globs. One solution would have been to move `shopt -s extglob` up above the include-guard. But the committed solution is all-around simpler.
2017-02-15Add a "License:" tag to all code files.Luke Shumaker
2017-02-15Apply patches from libretools.Luke Shumaker
2017-02-06lib/common.sh: Make setup_workdir()/cleanup() safe for programs to not useLuke Shumaker
2017-02-06lib/common.sh: lock, slock: Create directories for locks if necessary.Luke Shumaker
2017-02-06lib/common.sh: lock, slock: Allow locks to be inherited.Luke Shumaker
Allow for locks to be inherited. Inheriting the lock is something that mkarchroot could do previously, but has since lost the ability to do. This allows for the programs to be more compos-able. Do this by instead of unconditionally opening $file on $fd, first check if $file is already open on $fd; and go ahead use it if it is. The naive way of doing this would be to `$(readlink /dev/fd/$fd)` and compare that to `$file`. However, if `$file` is itself a symlink; or there is a symlink somewhere in the path to `$file`, then this could easily fail. Instead, check `[[ "/dev/fd/$fd" -ef "$file" ]]`. Even though the Bash documentation (`help test`) says that `-ef` checks for if the two files are hard links to eachother, because it uses stat(3) (which resolves symlinks) to do this check, it also works with the /dev/fd/ soft links.
2017-02-06lib/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-01-29makechrootpkg: Be recursive when deleting subvolumes.Luke Shumaker
This fixes https://labs.parabola.nu/issues/1201
2016-10-08makechrootpkg: Reset environment for builduserJan Alexander Steffens (heftig)
The gnustep-base package ships a profile.d script that adds "$HOME/GNUstep/Tools" to the PATH, which breaks when the user changes and causes meson to exit with a "permission denied" error.
2016-06-13makechrootpkg: Shorten user-config loading codeJan Alexander Steffens (heftig)
Make use of load_vars returning 1 when the file is missing. Avoids introducing another variable.
2016-06-13makechrootpkg: Use XDG_CONFIG_HOME for makepkg.confJohannes Löthberg
Implemented the same way as in makepkg. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-06-09Merge tag '20160527.1'libretools-20160609Luke Shumaker
2016-05-28Version 2016052820160528Jan Alexander Steffens (heftig)
2016-05-28arch-nspawn: Work around pacman master returning file-URLs from the cacheJan Alexander Steffens (heftig)
2016-05-28makechrootpkg: Install packages in one stepJan Alexander Steffens (heftig)
Avoids having to specify them in dependency order.
2016-05-28makechrootpkg: Simplify chroot preparation (v2)Jan Alexander Steffens (heftig)
Copy both UID and primary GID of the invoker to the builduser. Mount srcdest and startdir read-write. v2: Fixed GnuPG keyring owner and moved running namcap from a heredoc to a function.
2016-05-28Merge branch 'master' of git.archlinux.org:/srv/git/devtoolsPierre Schmitz
2016-05-27This is 20160527.120160527.1Sven-Hendrik Haase
2016-05-27mkarchroot: Manually generate machine-id because nspawn expects itSven-Hendrik Haase
2016-05-27Makefile: change version to 20160527Sven-Hendrik Haase
2016-05-27Use repos.archlinux.org everywhere instead of hostname based domains20160527Sven-Hendrik Haase
This makes it a lot easier to swap out the host that actually serves the repos in the future.
2016-05-11arch-nspawn: add a table of CARCH/setarch overrides (just armv7h->armv7llibretools-20160511Luke Shumaker
for now)
2016-05-11Revert "remove setarch for non-i686 to support qemu-static" since Libretools ↵André Fabian Silva Delgado
arch-nspawn has the `-s` flag to turn off setarch This reverts commit c3819bb4224622c6d10ab7a3511472f314e026ba.
2016-05-10remove setarch for non-i686 to support qemu-staticcoadde [Márcio Alexandre Silva Delgado]
2016-05-09arch-nspawn: two spaces after a periodlibretools-20160510Luke Shumaker
2016-05-07Set target vendor to pc for usge with gcc 6Pierre Schmitz
2016-02-07Update bundled pacman and makepkg configurationPierre Schmitz
2016-02-04Merge tag '20151129'libretools-20160208Luke Shumaker
tag 20151129
2016-01-09makechrootpkg: set builduser's shell to /bin/bashEvangelos Foutras
Having it set to nologin breaks a couple of tests in Git and Python.
2016-01-09makechrootpkg: use /build as HOME for the builduserLevente Polyak
This way the HOME dir is writable and no ugly hacks are required in the PKGBUILD if $HOME is accessed (f.e. maven, gradle and also some python tests etc.)
2015-11-29Bump version to 2015112920151129Evangelos Foutras
2015-11-29arch-nspawn: preserve systemd-nspawn's stderrEvangelos Foutras
It is passed down to the container when stdin/stdout is not a tty; this is the case when archbuild's output is redirected to a pipe or file.
2015-10-02Bump version to 2015100220151002Evangelos Foutras
2015-10-02Sync makepkg.conf files with pacman 4.2.1-4Evangelos Foutras
2015-09-25Layer gnome-unstable above staging, not testingJan Alexander Steffens (heftig)
2015-06-06Reverse the previous commit--passing in makepkg_args as args is better.libretools-20150607Luke Shumaker
2015-06-06makechrootpkg: remove extra arguments to /chrootbuildLuke Shumaker
They have been part of the file itself via %q for a while.
2015-06-06Merge branch 'archlinux'Luke Shumaker