Age | Commit message (Collapse) | Author |
|
|
|
|
|
If $TMPDIR is permissively owned (as /tmp is), then sshd will refuse to
look at the AuthorizedKeysFile. So bypass that permission check by
configuring AuthrorizedKeysCommand to just `cat` that file.
|
|
If /run/user/$UID/ doesn't exist, then the gpg-agent socket will be in
$GNUPGHOME, which is inside of $tmpdir. Because the $BATS_TEST_NAME is
embedded in $tmpdir, the path might be quite long, and hit the 108-byte
limit on socket paths, which GnuPG does nothing to check for or handle.
So, don't embed $BATS_TEST_NAME in $tmpdir, in order to keep the path
shorter.
|
|
common_setup might have errored before setting tmpdir or chrootdir; handle
those cases.
|
|
|
|
This will display the evaluated command line, rather than the cryptic
ssh -fN ${REPODEST_port:+-p "$REPODEST_port"} "${REPODEST_userhost}"
|
|
Its value is configurable in libretools.conf.
I discussed this eventual change in my dbscripts plans on the mailing list.
|
|
https://labs.parabola.nu/issues/1411
https://labs.parabola.nu/issues/1412
I have verified that the test fails with commit
0b8606e0cd0e1aedfe222d4d6603c4986aacb7b5 ("librerelease: Fix rmdir
failing") reverted.
|
|
This reverts commit 70b9f3cdcabc217609be96cfdd1fd47133aa273b.
|
|
The implementation is not dual-stack. It supports *either* IPv4 or IPv6.
I'm not entirely sure how it chooses.
Clients that support happy-eyeballs will do thing right thing, but clients
that don't (*cough* openssh) won't. So explicitly choose the IPv4
localhost instead of using an ambiguous "localhost".
|
|
Use local variables.
|
|
- Drop `distcc-tool-idaemon.pid`; we can just check `jobs -p`
- _distcc_start_idaemon() and _distcc_stop_idaemon() are thereby
simplified to the point where they can just be inlined.
- Why did I keep doing `foo & wait`!?
- Don't forget to write DISTCC_HOSTS to makepkg.conf
- There was a typo in makepkg.conf; it said "_discc_start_idaemon"
|
|
distcc-tool [ci-skip]
|
|
It was written by me, in May 2018.
|
|
I don't know what I was thinking when I wrote it that way.
For one, the "<&0" bit is a no-op. It redirects stdin to be stdin. Maybe
I had meant to write "<&-" and close it?
For two, just write it normally. It's simple enough, don't make it look
like magic.
|
|
- I'm pretty sure the "& trap 'jobs -p | xargs kill' EXIT; wait" bit is
100% superstition.
- Sprinkle `exec` in there to use fewer PIDs
- Don't bother with variables for short constant values, just hard-code
them
- Use `sleep infinity` instead of a dumb socat if we need to sleep
forever without doing anything.
|
|
|
|
for file in test/cases/*.bats; do
name=$(sed -n 's/^describe //p' -- "$file")
sed -ri '
# Remove the roundup shebang
/^#!\/usr\/bin\/env roundup$/d
# Use $BATS_TEST_NAME instead of $roundup_test_name
s,roundup_test_name,BATS_TEST_NAME,g
# Use BATS built-in "skip" instead of just succeeding
/^\trequire /s/\|\| return 0$/|| skip/
# Remove the chroot message, does not play well with BATS output
/Creating a chroot, may take a few minutes/d
# Update file locations
s,^\. \./test-common\.sh$,load ../lib/common,
s,\b(libre(chroot|dbdiff|fetch|makepkg|stage|xgettext)|pkgbuild-check-nonfree|toru)\.d\b,fixtures/\1,g
# In BATS, the hook is setup(), not before()
s,^before\(\),setup(),
s,^\tcommon_before$,\tcommon_setup,
# Convert test definitions from
# describe FOO
# it_does_a_thing() { … }
# to
# @test "FOO does a thing" { … }
/^describe /d
/^it_/ {
s/_/ /g
s,^it (.*)\(\),@test "'"$name"' \1\",
}
' \
-- "$file"
# Remove leading newline that might have been left behind by the above
sed -i '1{/^$/d}' -- "$file"
git add "$file"
done
sed -i \
-e 's,librexgettext\.d,fixtures/librexgettext,g' \
-e 's,/it_,/test_librexgettext_,g' \
-- test/fixtures/librexgettext/*
git add test/fixtures/librexgettext/*
|
|
But don't edit them yet.
This directory structure is based on that of dbscripts.
|
|
|
|
This really messed me up while debugging, I don't want to fall for that
again!
|
|
The maximum socket name length is surprising short. So `cd` and use a
short relative path.
|
|
|
|
With $HOME now being owned by test-common.sh instead of testenv, it's
sufficiently short-lived that we don't need to worry about reverting
changes we make to it.
|
|
- move REPODEST to common.bash
- don't bother setting PKGEXT
|
|
|
|
|
|
Some files were marked executable that shouldn't have been.
|
|
|
|
Instead of using in inconsistent mish-mash of `mkdir` and `echo >` and
`printf >>`, use more readable and identifiable indented-heredocs:
install -Dm644 /dev/stdin "FILENAME" <<-eot
CONTENTS
eot
|
|
It's already set that way in setup() of that file.
|
|
|
|
|
|
|
|
The big reason for having it separate was that we needed to install an
expensive after(). But, since that part of cleanup is now owned by
testenv, that's not a concern.
|
|
Instead, make the default before() an alias for common_before(), which test
files can call if they override before().
|
|
|
|
For consistency with other tests.
|
|
The effective change is that CARCH is added to the list.
|
|
|
|
Instead of having librefetch-test.sh do it.
|
|
codes
The name "status" was chosen because BATS initializes status=0; if we
switch from Roundup to BATS, our common setup won't need set it
anymore.
Accomplish this with:
$ sed -ri -e 's/\$(stat|ret|r)\b/$status/g' -e 's/\b(stat|ret|r)=/status=/g' test/*.sh
$ sed -ri '/^\s*(local\s+)?status=0$/d' test/*-test.sh
|
|
|
|
|
|
|
|
DISRUPTION: This will make the default configuration unsuitable
for packagers whose local username doesn't match their username in
hackers.git. They will need to manually adjust their
`libretools.conf:REPODEST` to have the correct username.
For years, when releasing a package, librerelease has been SSH'ing to a
shared repo@ account.
In the last few months, we've made changes to the server to make it so that
you can use your normal $USER@ account. It has been opt-in by adjusting
your REPODEST appropriately.
For the last month, several developers have opted-in. After a couple of
hiccups resolved in the first few hours, the HOOKPRERELEASE issue (for
users for which the DISRUPTION applies, which the last few commits fixed),
there were no issues.
This has the negative affect
So, change this from opt-in to opt-out. If all goes smoothly, then SSH to
the repo@ account will eventually be disabled.
https://lists.parabola.nu/pipermail/dev/2018-August/006907.html
|
|
~/.config/libretools/libretools.conf is loaded after /etc/libretools.conf
If the file in ~/.config/ changes REPODEST, then the default value of
HOOKPRERELEASE will do the wrong thing.
So, change the double-quotes to single quotes; deferring evaluation of the
REPODEST expression to call-time. This is made possible by the previous
commit, which exposes the REPODEST variable to the hook.
While we're at it, since we now have access to the parsed parts of
REPODEST (like REPODEST_port and REPODEST_userhost), go ahead and use
those, instead of using a gross `sed` expression to parse it in a sloppy
way.
|
|
This should give the hooks read-only access to whatever variables are set.
This includes both the configuration variables (like REPODEST), and local
instance variables (like REPODEST_port).
|
|
|