The launchpadlib part requires "keyring" with no version restriction. By
requiring a particular version here, we're relying that some newest
version of keyring will work with this particular keyrings.alt, which
fails with keyring 15.0.0 vs. keyrings.alt 2.3. Since launchpadlib
already has no version restriction, do the same for keyrings.alt. Then
at least if "pip3 install" works, so should the snap.
Alternatively we could have added a version restriction to the
launchpadlib part, but at the moment that pattern isn't used anywhere,
and the requirements are taken from launchpadlib's setup.py with no
patching. If we want to restrict versions some other way, then we'll
need a major reworking of how the snap is put together.
Now the test checking that keyring can find a functional backend should
always pass.
If raw_repo.status() returns entries that are GIT_STATUS_IGNORED then
they don't represent the tree being dirty, so ignore this case. This
fixes a case where "git ubuntu tag" refuses to work even when a working
tree is clean.
This is same user as launchpad.
The path under the user's home (~/build) is left the same.
On launchpad the path is something like build-PACKAGEBUILD-XXXXXXX
but that seems less useful than a constant path for a user
using '--keep'.
Fix 'git ubuntu build' when user id does not match container id.
If the user running 'git ubuntu build' did not have the same user-id
as the user 'ubuntu' inside the container, then the build would fail.
This fixes the specific issue.
The changes along the way are:
a.) builds as 'build-user' rather than 'ubuntu'.
A consistent distro-nuetral user just seems to make more sense.
b.) build in /home/build-user/buildd rather than /tmp/.
This seems cleaner as other no other system processes will be
adding or removing files from that directory.