Re: Test "t0300-credentials" is failing on Arch/Artix: asks to enter the Username/Password in an infinite loop
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Mar 6, 2026, 01:59 UTC
- Message-ID
- <aao1DF3lXfHTMH30@fruit.crustytoothpaste.net>
- In-Reply-To
- <CAAaskFC=tpuS-saP9t5Kp0+i6qTHe29x-dGkanyAzz-xaq_HDA@mail.gmail.com>
On 2026-03-06 at 01:44:48, Ivan Ivanov wrote:
Show 5 quoted lines
> At the moment - just "makepkg ./PKGBUILD --check --noextract > --noprepare -f" (these flags in order to get straight to the check() > stage). Btw right now I got a somewhat similar-by-appearance error at > test t5003, however if I press Enter two times then it gets further > instead of an infinite loop:
I don't believe we have a `makepkg` script in Git. What I was hoping to see was something like this snippet from Debian's `debian/rules`:
---- OPTS =NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core \ mandir=/usr/share/man htmldir=/usr/share/doc/git/html \ INSTALLDIRS=vendor \ SANE_TOOL_PATH= INSTALL=install TAR=tar \ NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 \ NO_PERL_CPAN_FALLBACKS=1 \ PYTHON_PATH=/usr/bin/python3 \ DEFAULT_PAGER=pager DEFAULT_EDITOR=editor \ CC='$(CC)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' \ HOST_CPU='$(HOST_CPU)' DOCS =html DOC_OPTS =prefix=/usr htmldir=/usr/share/doc/git/html \ ASCIIDOC8=1 ASCIIDOC_NO_ROFF=1
# https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByAsciidoc DOC_OPTS += ASCIIDOC='TZ=UTC asciidoc'
ifeq (,$(findstring terse,$(DEB_BUILD_OPTIONS)))
OPTS += V=1
DOC_OPTS += V=1
TEST_OPTS = --verbose
endif
ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
TEST =
endif
ifneq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS)))
DOCS =
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
MAKEFLAGS += -j$(NUMJOBS)
# Setting this with a pattern-specific rule prevents -O from
# affecting the top-level make, which would break realtime build
# output (unless dh is run as +dh, which causes other problems).
%: MAKEFLAGS += -O
endif
ifneq (,$(shell dpkg-query -f '$${Version}' -W libpcre2-dev))
OPTS += USE_LIBPCRE2=1
else
OPTS += USE_LIBPCRE1=1
endif
----Those options tell us how your package is configured and what Makefile options you're using.
Show 21 quoted lines
> Username for 'http://127.0.0.1:5003': > Password for 'http://127.0.0.1:5003': > > Here are the contents of a related .out file for this t5003 . Please > note that not so long ago I did chmod -R 755 on this > /dev/shm/git-test/ just in case, so I am not sure why this is failing > > ok 81 - remote archive does not work with protocol v1 > expecting success of 5003.82 'archive remote http repository': > git archive --remote="$HTTPD_URL/auth/smart/bare.git" \ > --output=remote-http.zip HEAD && > test_cmp_bin d.zip remote-http.zip > > fatal: cannot exec '/dev/shm/git-test/trash > directory.t5003-archive-zip/askpass': Permission denied > > fatal: cannot exec '/dev/shm/git-test/trash > directory.t5003-archive-zip/askpass': Permission denied > fatal: cannot exec '/dev/shm/git-test/trash > directory.t5003-archive-zip/askpass': Permission denied > fatal: Authentication failed for 'http://127.0.0.1:5003/auth/smart/bare.git/'
I think this is your problem. First of all, `/dev/shm` is not a general-purpose temporary directory and should not be used that way. It's designed for shared-memory segments that live in the file system (usually POSIX shared-memory segments).
My guess is that you've specified `TEST_OUTPUT_DIRECTORY` to something under `/dev/shm` and on your system that file system is marked `noexec`. Git's testsuite uses many shell scripts and the test directory will need to live on a fully functional file system according to the standards of the OS. Normally people run the tests under `t` in the repository root and the repository effectively cannot be `noexec`, since otherwise the binaries would not work.
-- brian m. carlson (they/them) Toronto, Ontario, CA