git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
	Phillip Wood <phillip.wood123@gmail.com>,
	Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Subject: Re: [PATCH v3 7/8] ci: install test dependencies for linux-musl
Date: Mon, 30 Oct 2023 14:22:33 +0100	[thread overview]
Message-ID: <ZT-uGSu-ftFRrn-X@tanuki> (raw)
In-Reply-To: <ZT-l4qDDNloizjxl@tanuki>

[-- Attachment #1: Type: text/plain, Size: 5019 bytes --]

On Mon, Oct 30, 2023 at 01:47:30PM +0100, Patrick Steinhardt wrote:
> On Mon, Oct 30, 2023 at 01:15:10PM +0100, Patrick Steinhardt wrote:
> > The linux-musl CI job executes tests on Alpine Linux, which is based on
> > musl libc instead of glibc. We're missing some test dependencies though,
> > which causes us to skip a subset of tests.
> > 
> > Install these test dependencies to increase our test coverage on this
> > platform. There are still some missing test dependecies, but these do
> > not have a corresponding package in the Alpine repositories:
> > 
> >     - p4 and p4d, both parts of the Perforce version control system.
> > 
> >     - cvsps, which generates patch sets for CVS.
> > 
> >     - Subversion and the SVN::Core Perl library, the latter of which is
> >       not available in the Alpine repositories. While the tool itself is
> >       available, all Subversion-related tests are skipped without the
> >       SVN::Core Perl library anyway.
> > 
> > Furthermore, in order to make the Apache-based tests work, this commit
> > also adds the Alpine-specific modules path of it to the list of known
> > paths.
> > 
> > Signed-off-by: Patrick Steinhardt <ps@pks.im>
> > ---
> >  ci/install-docker-dependencies.sh | 3 ++-
> >  t/lib-httpd.sh                    | 3 ++-
> >  2 files changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh
> > index d0bc19d3bb3..05dde5c5d40 100755
> > --- a/ci/install-docker-dependencies.sh
> > +++ b/ci/install-docker-dependencies.sh
> > @@ -17,7 +17,8 @@ linux32)
> >  	;;
> >  linux-musl)
> >  	apk add --update build-base curl-dev openssl-dev expat-dev gettext \
> > -		pcre2-dev python3 musl-libintl perl-utils ncurses >/dev/null
> > +		pcre2-dev python3 musl-libintl perl-utils ncurses \
> > +		apache2 bash cvs gnupg perl-cgi perl-dbd-sqlite >/dev/null
> 
> Meh. I just noticed that I missed a few other dependencies to make
> Apache2 work:
> 
> diff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh
> index 5e28adf55b..ce910e3f3c 100755
> --- a/ci/install-docker-dependencies.sh
> +++ b/ci/install-docker-dependencies.sh
> @@ -21,7 +21,8 @@ linux32)
>  linux-musl)
>  	apk add --update shadow sudo build-base curl-dev openssl-dev expat-dev gettext \
>  		pcre2-dev python3 musl-libintl perl-utils ncurses \
> -		apache2 bash cvs gnupg perl-cgi perl-dbd-sqlite >/dev/null
> +		apache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav \
> +		bash cvs gnupg perl-cgi perl-dbd-sqlite >/dev/null
>  	;;
>  linux-*)
>  	apt update -q &&
> 
> But once fixed, tests do indeed start to fail:
> 
> t5540-http-push-webdav.sh                        (Wstat: 256 (exited 1) Tests: 20 Failed: 11)
>   Failed tests:  5-11, 13, 15-16, 18
>   Non-zero exit status: 1
> 
> Seems like another thing to fix in a separate patch series.
> 
> Patrick

I've been digging a bit, and the issue comes from the the DAV module
indeed:

```
[Mon Oct 30 12:36:19.776149 2023] [dav_fs:crit] [pid 275752] (20019)DSO load failed: AH00576: The DBM driver could not be loaded
[Mon Oct 30 12:36:19.776168 2023] [dav:error] [pid 275752] [client 127.0.0.1:51388] Could not LOCK /dumb/test_repo.git/info/refs due to a failed precondition (e.g. other locks).  [500, #0]
[Mon Oct 30 12:36:19.776174 2023] [dav:error] [pid 275752] [client 127.0.0.1:51388] The locks could not be queried for verification against a possible "If:" header.  [500, #0]
[Mon Oct 30 12:36:19.776177 2023] [dav:error] [pid 275752] [client 127.0.0.1:51388] Could not open the lock database.  [500, #400]
[Mon Oct 30 12:36:19.776181 2023] [dav:error] [pid 275752] (20019)DSO load failed: [client 127.0.0.1:51388] Could not open property database.  [500, #1]
```

This seems to be a known limitation in Alpine Linux as they do not
package apr-util-dbm_db anymore due to license incompatibilities with
with Berkely DB [1], and the WebDAV module does rely on it to provide
locking.

In the best case we'd be able to detect this limitation and skip those
tests automatically so that we can at least execute all the other Apache
tests. But again, this rather feels like something we should do as a
follow up rather than as part of this series.

Patrick

[1]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/12534

> >  	;;
> >  pedantic)
> >  	dnf -yq update >/dev/null &&
> > diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
> > index 2fb1b2ae561..9791f94b16f 100644
> > --- a/t/lib-httpd.sh
> > +++ b/t/lib-httpd.sh
> > @@ -67,7 +67,8 @@ for DEFAULT_HTTPD_MODULE_PATH in '/usr/libexec/apache2' \
> >  				 '/usr/lib/apache2/modules' \
> >  				 '/usr/lib64/httpd/modules' \
> >  				 '/usr/lib/httpd/modules' \
> > -				 '/usr/libexec/httpd'
> > +				 '/usr/libexec/httpd' \
> > +				 '/usr/lib/apache2'
> >  do
> >  	if test -d "$DEFAULT_HTTPD_MODULE_PATH"
> >  	then
> > -- 
> > 2.42.0
> > 
> 
> 



[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-10-30 13:22 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-26  7:59 [PATCH 0/5] ci: add GitLab CI definition Patrick Steinhardt
2023-10-26  8:00 ` [PATCH 1/5] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-26  8:26   ` Oswald Buddenhagen
2023-10-27  8:17     ` Patrick Steinhardt
2023-10-26  8:00 ` [PATCH 2/5] ci: make grouping setup more generic Patrick Steinhardt
2023-10-26  8:00 ` [PATCH 3/5] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-26  8:34   ` Oswald Buddenhagen
2023-10-27  8:17     ` Patrick Steinhardt
2023-10-26  8:00 ` [PATCH 4/5] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-26  8:35   ` Oswald Buddenhagen
2023-11-03 22:35   ` Christian Couder
2023-11-06  7:16     ` Patrick Steinhardt
2023-10-26  8:00 ` [PATCH 5/5] ci: add support for GitLab CI Patrick Steinhardt
2023-10-26  9:07   ` Oswald Buddenhagen
2023-10-27  8:17     ` Patrick Steinhardt
2023-10-27 10:22       ` Phillip Wood
2023-10-27 10:43         ` Oswald Buddenhagen
2023-10-27 14:32           ` Phillip Wood
2023-10-27 17:47             ` Oswald Buddenhagen
2023-10-30  9:49               ` Phillip Wood
2023-10-30 14:04                 ` Dragan Simic
2023-10-27 10:49       ` Oswald Buddenhagen
2023-10-27 11:11         ` Patrick Steinhardt
2023-10-27  9:25 ` [PATCH v2 0/5] ci: add GitLab CI definition Patrick Steinhardt
2023-10-27  9:25   ` [PATCH v2 1/5] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-27  9:25   ` [PATCH v2 2/5] ci: make grouping setup more generic Patrick Steinhardt
2023-10-27  9:25   ` [PATCH v2 3/5] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-27  9:25   ` [PATCH v2 4/5] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-27  9:25   ` [PATCH v2 5/5] ci: add support for GitLab CI Patrick Steinhardt
2023-10-27 10:19     ` Phillip Wood
2023-10-27 11:19       ` Patrick Steinhardt
2023-10-27 11:57         ` Patrick Steinhardt
2023-10-27 13:02           ` Phillip Wood
2023-10-29 16:13             ` Phillip Wood
2023-10-30 10:46               ` Patrick Steinhardt
2023-10-29 16:27         ` Phillip Wood
2023-10-30 10:45           ` Patrick Steinhardt
2023-10-30  0:22       ` Junio C Hamano
2023-10-27 11:01     ` Oswald Buddenhagen
2023-10-27 13:17       ` Phillip Wood
2023-10-27 15:53         ` Oswald Buddenhagen
2023-10-31 19:36         ` Jeff King
2023-11-01  3:33           ` Junio C Hamano
2023-10-30 12:14 ` [PATCH v3 0/8] ci: add GitLab CI definition Patrick Steinhardt
2023-10-30 12:14   ` [PATCH v3 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-30 12:14   ` [PATCH v3 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-10-30 12:14   ` [PATCH v3 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-30 12:14   ` [PATCH v3 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-30 12:15   ` [PATCH v3 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-10-30 15:09     ` Phillip Wood
2023-10-30 15:19       ` Patrick Steinhardt
2023-10-30 18:22       ` Dragan Simic
2023-10-30 12:15   ` [PATCH v3 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-10-30 12:15   ` [PATCH v3 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-10-30 12:47     ` Patrick Steinhardt
2023-10-30 13:22       ` Patrick Steinhardt [this message]
2023-10-30 15:13       ` Phillip Wood
2023-10-30 15:23         ` Patrick Steinhardt
2023-10-30 16:09           ` Phillip Wood
2023-10-30 12:15   ` [PATCH v3 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-10-30 15:46 ` [PATCH 0/5] ci: add GitLab CI definition Taylor Blau
2023-10-31  7:46   ` Patrick Steinhardt
2023-10-31 19:12     ` Taylor Blau
2023-11-01  0:15     ` Junio C Hamano
2023-11-01 11:56       ` Patrick Steinhardt
2023-10-31  9:04 ` [PATCH v4 0/8] " Patrick Steinhardt
2023-10-31  9:04   ` [PATCH v4 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-10-31  9:04   ` [PATCH v4 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-10-31  9:04   ` [PATCH v4 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-10-31  9:04   ` [PATCH v4 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-10-31  9:04   ` [PATCH v4 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-10-31 17:06     ` Victoria Dye
2023-11-01  3:14       ` Junio C Hamano
2023-11-01 11:44       ` Patrick Steinhardt
2023-10-31  9:05   ` [PATCH v4 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-10-31  9:05   ` [PATCH v4 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-10-31  9:05   ` [PATCH v4 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-10-31 17:47     ` Victoria Dye
2023-11-01 11:44       ` Patrick Steinhardt
2023-10-31 18:22   ` [PATCH v4 0/8] ci: add GitLab CI definition Victoria Dye
2023-11-01  3:22     ` Junio C Hamano
2023-11-01 11:44       ` Patrick Steinhardt
2023-11-01 13:02 ` [PATCH v5 0/8] ci: add support for GitLab CI Patrick Steinhardt
2023-11-01 13:02   ` [PATCH v5 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-11-01 13:02   ` [PATCH v5 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-11-01 13:02   ` [PATCH v5 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-11-01 13:02   ` [PATCH v5 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-11-01 13:03   ` [PATCH v5 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-11-01 13:03   ` [PATCH v5 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-11-01 13:03   ` [PATCH v5 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-11-01 13:03   ` [PATCH v5 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-11-09  8:05 ` [PATCH v6 0/8] ci: add GitLab CI definition Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 1/8] ci: reorder definitions for grouping functions Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 2/8] ci: make grouping setup more generic Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 3/8] ci: group installation of Docker dependencies Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 4/8] ci: split out logic to set up failed test artifacts Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 5/8] ci: unify setup of some environment variables Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 6/8] ci: squelch warnings when testing with unusable Git repo Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 7/8] ci: install test dependencies for linux-musl Patrick Steinhardt
2023-11-09  8:05   ` [PATCH v6 8/8] ci: add support for GitLab CI Patrick Steinhardt
2023-11-09 10:06   ` [PATCH v6 0/8] ci: add GitLab CI definition Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZT-uGSu-ftFRrn-X@tanuki \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=oswald.buddenhagen@gmx.de \
    --cc=phillip.wood123@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).