summaryrefslogtreecommitdiff
path: root/src/chroot-tools/libremakepkg
AgeCommit message (Collapse)Author
2018-05-30libremakepkg: Fix it_fails_with_bad_signaturesv20180530Luke Shumaker
libremakepkg defined a cleanup() function, which overrode common.sh:cleanup(), which meant that common.sh:die() exited with a '0' status.
2018-05-30libremakepkg: Fix it_succeeds_with_good_signaturesLuke Shumaker
Do this by syncing makepkg_args with makechrootpkg's default_makepkg_args; recent devtools have makechrootpkg not copy the keyring in to the chroot. This incorporates 3 commits from Arch devtools: 7ca4eb82d (2017-05-02): add --holdver 0cbc179d2 (2017-07-13): use long options; `-s`→`--syncdeps`, `-L`→`--log` 75fdff181 (2017-07-13): add --skipinteg
2018-01-03update for new devtoolsLuke Shumaker
2018-01-03libremakepkg: usage: mention copying in the GnuPG pubringLuke Shumaker
2018-01-03libremakepkg: consistent tense in usage text bulletsLuke Shumaker
2018-01-02Change my email address lukeshu@sbcglobal.net -> lukeshu@parabola.nuLuke Shumaker
2017-05-25start moving things to use the libremessages exit codesLuke Shumaker
2017-05-24Merge conf.sh:load_files and conf.sh:check_vars into load_confLuke Shumaker
2017-05-05libremakepkg: update usage() textLuke Shumaker
2017-05-04bugfix [2/2]: libremakepkg: hooks-distcc: Fix for the basic smoke test.Luke Shumaker
2017-04-20Don't use subshells in local/export/declare commands.Luke Shumaker
Only make this change in places where it shouldn't make a difference, and something weird has to be going on for the subshell to fail. This is on par with checking the return value of malloc. We don't need tests for each of these failure cases.
2017-04-20Variables inside of $((...)) don't need a $ in front of them.Luke Shumaker
These were found with the help of shellcheck.
2017-04-11libremakepkg: Tidy.Luke Shumaker
2017-04-11Update for new devtools versionLuke Shumaker
2017-04-11libremakepkg: correctly exit if a hook failsLuke Shumaker
2015-06-06Update to new devtools.Luke Shumaker
2015-05-24Enforce two spaces after a period.Luke Shumaker
2015-05-20libremakepkg: Don't pass extra arguments to makepkg.Luke Shumaker
Packages should be buildable without any extra incantations, and it was more of a source of mistakes than anything else.
2014-11-25chroot-tools: no longer involve 'nobody'Luke Shumaker
2014-07-05quote calls to librelibLuke Shumaker
2014-03-23Most of my desired re-licensings were authorized on the dev listLuke Shumaker
2014-03-22Audit the authors and copyright years of files against git logsLuke Shumaker
2014-03-21Do an audit of copyright and license claimsLuke Shumaker
2014-02-05libremakepkg: fix installing dependencies that aren't in the paccacheLuke Shumaker
I can't figure out a reliable way to test this, as it depends on the host pacman cache.
2014-02-02libremakepkg: fix network handlingv20140202Luke Shumaker
2014-02-02Normalize to use the string "Copyright (C)"Luke Shumaker
2014-02-02I forgot to bump the copyright year on all the files I've touched this yearLuke Shumaker
2014-01-19libremakepkg: Check the permissions of the bind-mounted directoriestesting-20140119Luke Shumaker
2014-01-19libremakepkg: (minor) refactor things to places that make a bit more senseLuke Shumaker
2014-01-19libremakepkg: fix getopts string (I'm a dummy)Luke Shumaker
2014-01-19libremakepkg: actually support SRCPKGDEST, document LOGDEST supportLuke Shumaker
2014-01-18libremakepkg: support -r and -w flags, same as librechrootLuke Shumaker
Feature request: https://labs.parabola.nu/issues/458
2013-10-07revert last commit, it makes systemd-nspawn not handle signals correctly.Luke Shumaker
I'm a fan of systemd-nspawn. I really am. It handles a lot of things the "right" way, so you don't have to. However, it handles PTYs and signals in an incredibly stupid way. Working around one is f---ed up by the other being wrong. Before I implemented the change that this reverts, this is what happens: systemd-nspawn> I need to create a PTY and proxy between it and stdio. I can specify a terminal size when doing this--I should set it to reflect the terminal I am connected to. systemd-nspawn> /dev/stdout: Are you a TTY? /dev/stdout> systemd-nspawn: No. ---- The correct thing to do here would be to either not set the size, ---- or set it to 80×24 systemd-nspawn> /dev/stdin: Are you a TTY? /dev/stdin> systemd-nspawn: Yes. systemd-nspawn> /dev/stdin: Great, what size are you? /dev/stdin> systemd-nspawn: I am X×Y. systemd-nspawn: libc: Please give me a PTY that is X×Y. ---- Why the f--- would you do this? The size only effects *output*. ---- If you don't know the characteristics of the output, set ---- reasonable defaults! Don't base it on the characteristics of the ---- input! My solution was to make /dev/stdin not be a TTY by closing it. This had the desired effect, but tripped up the signal handling. Here is how signals were handled before: systemd-nspawn> /dev/stdin: Are you a TTY? /dev/stdin> systemd-nspawn: Yes. systemd-nspawn> /dev/stdin: Great, please don't send SIGINT on C-c. I will handle it myself. *user presses C-c, systemd reads it* systemd-nspawn> child processes: here's a SIGINT. Here's what happens when I close, or do other things to make stdin not be a TTY: systemd-nspawn> /dev/stdin: Are you a TTY? /dev/stdin> systemd-nspawn: No. systemd-nspawn> /dev/stdin: Oh, OK. *user presses C-c, /dev/stdin interprets it* /dev/stdin> systemd-nspawn: Here's a SIGINT. systemd-nspawn> *dies, abandoning child processes* The clear correct thing to do would have been to *handle* SIGINT, and pass it along to the children.
2013-10-04libremakepkg: close stdin on most commands being sent through `indent`Luke Shumaker
Besides preventing interactive use, this prevents the program from knowing the size of the terminal.
2013-10-04conf.sh: generalize {get,set}_conf_makepkg to {get,set}_varLuke Shumaker
2013-10-01libremakepkg: when prefixing output with ' | ', do better than sed.Luke Shumaker
There are two downsizes to using sed; it line-buffers, and (the existing pattern) doesn't handle '\r'. So, now I've included a Perl helper program to do a better job. I'd originally written it in C, and while that version was faster (the Perl version stutters occasionally), it required recompilation for different architectures. I could have gotten around that with tcc, but I didn't want to add any dependencies. Which is why I settled on Perl. It's part of group=(base), and it is required by packages in group=(base-devel), so I can count on it always being there. It doesn't handle every movement character, just '\n' and '\r', but that's enough for curl and pacman.
2013-09-22Merge commit '610699'Luke Shumaker
Conflicts: src/abslibre-tools/createworkdir
2013-09-14libremakepkg: play with the outputv20130914Luke Shumaker
2013-09-14libremakepkg: clean up temporary files created by prepare_chrootLuke Shumaker
2013-09-14libremakepkg: add a librechroot_flags variable, split chrootbuild upLuke Shumaker
We split chrootbuild so that the initialization bit runs before hook_pre_build.
2013-09-14libremakepkg: remove extra call to clean_chrootLuke Shumaker
2013-09-13libremakepkg: I can't believe committed my debug statements.Luke Shumaker
2013-09-12Merge branch 'fauno~2' (early part) into masterLuke Shumaker
2013-09-11Update to the new version of devtools (huge commit).Luke Shumaker
User-facing changes: - libremessages: `lock_open_write` became `lock` - libremessages: `lock_open_read` became `slock` - librechroot: learned the `-r` and `-w` flags to do bind mounts. Internal changes: The changes to librechroot were pretty straight-forward; the biggest change is that `archroot` got split into `mkarchroot` and `arch-nspawn`. libremakepkg got a major overhaul Honestly, the changes to libremakepklg probably could have been a lot smaller, but... I wanted to do it right/be clean. makechrootpkg in devtools got cleaned up a lot, actually a lot of the same changes I was making. But, the small differences between the way we did things made it less than simple to adjust. The biggest changes in terms of conflict for me are how devtools now uses bind-mounts to put files in the chroot, and that the /chrootbuild file is more complicated. I handled a lot of the complexity by moving things out of the main program, and adding hooks for non-core functionality, including chcleanup, distcc compatability hacks, and PKGBUILD/pkg checking. Unfortunately, the files containing the hooks are currently hard-coded. Perhaps they will be truly pluggable in the future. That might be neat. Or over-complicated. We'll see where it goes.
2013-09-11chroot-tools: internationalizeLuke Shumaker
2013-06-11libremakepkg: don't remove -N, but discourage its use.v20130611Luke Shumaker
2013-06-11libremakepkg: improve behavior when PACKAGER is not setLuke Shumaker
2013-06-10libremakepkg: set PACKAGER in the chroot to reflect the value outside.Luke Shumaker
2013-06-10libremakepkg: integrate distcc-toolLuke Shumaker
2013-06-09libremakepkg: fix up clean up routinesLuke Shumaker