summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2025-01-08 03:28:30 +0000
committerSam James <sam@gentoo.org>2025-01-08 03:40:13 +0000
commitf8eea380998d17e09a492c81244eb12f2a3a4378 (patch)
treed016f5c4ad09fb660c4cc28ee9ee3b3ef9560874 /dev-vcs
parentwww-client/opera-developer: remove old (diff)
downloadgentoo-f8eea380998d17e09a492c81244eb12f2a3a4378.tar.gz
gentoo-f8eea380998d17e09a492c81244eb12f2a3a4378.tar.bz2
gentoo-f8eea380998d17e09a492c81244eb12f2a3a4378.zip
dev-vcs/git: port live to meson
* Port to Meson, significantly simplifying the ebuild * Drop two obsolete patches * submodule patch where the only remaining hunk was adding a single test * cvs patch given it already had a tonne of fuzz and wasn't adding any real value (keep USE=cvs as a convenience USE to control runtime Perl deps, though) * Simplify a bunch of constructs that predate(?) REQUIRED_USE in the ebuild Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-vcs')
-rw-r--r--dev-vcs/git/files/git-2.48.0_rc2-meson-deps.patch74
-rw-r--r--dev-vcs/git/git-9999-r1.ebuild323
-rw-r--r--dev-vcs/git/git-9999-r2.ebuild323
-rw-r--r--dev-vcs/git/git-9999-r3.ebuild323
4 files changed, 218 insertions, 825 deletions
diff --git a/dev-vcs/git/files/git-2.48.0_rc2-meson-deps.patch b/dev-vcs/git/files/git-2.48.0_rc2-meson-deps.patch
new file mode 100644
index 000000000000..c28112663a3d
--- /dev/null
+++ b/dev-vcs/git/files/git-2.48.0_rc2-meson-deps.patch
@@ -0,0 +1,74 @@
+--- a/perl/FromCPAN/Mail/meson.build
++++ b/perl/FromCPAN/Mail/meson.build
+@@ -4,4 +4,5 @@ test_dependencies += custom_target(
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/FromCPAN/Mail',
++ depends: [git_version_file],
+ )
+--- a/perl/FromCPAN/meson.build
++++ b/perl/FromCPAN/meson.build
+@@ -4,6 +4,7 @@ test_dependencies += custom_target(
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/FromCPAN',
++ depends: [git_version_file],
+ )
+
+ subdir('Mail')
+--- a/perl/Git/LoadCPAN/Mail/meson.build
++++ b/perl/Git/LoadCPAN/Mail/meson.build
+@@ -4,4 +4,5 @@ test_dependencies += custom_target(
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/Git/LoadCPAN/Mail',
++ depends: [git_version_file],
+ )
+--- a/perl/Git/LoadCPAN/meson.build
++++ b/perl/Git/LoadCPAN/meson.build
+@@ -4,6 +4,7 @@ test_dependencies += custom_target(
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/Git/LoadCPAN',
++ depends: [git_version_file],
+ )
+
+ subdir('Mail')
+--- a/perl/Git/SVN/Memoize/meson.build
++++ b/perl/Git/SVN/Memoize/meson.build
+@@ -4,4 +4,5 @@ test_dependencies += custom_target(
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/Git/SVN',
++ depends: [git_version_file],
+ )
+--- a/perl/Git/SVN/meson.build
++++ b/perl/Git/SVN/meson.build
+@@ -14,6 +14,7 @@ foreach source : [
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/Git/SVN',
++ depends: [git_version_file],
+ )
+ endforeach
+
+--- a/perl/Git/meson.build
++++ b/perl/Git/meson.build
+@@ -11,6 +11,7 @@ foreach source : [
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5/Git',
++ depends: [git_version_file],
+ )
+ endforeach
+
+--- a/perl/meson.build
++++ b/perl/meson.build
+@@ -4,6 +4,7 @@ test_dependencies += custom_target(
+ command: generate_perl_command,
+ install: true,
+ install_dir: get_option('datadir') / 'perl5',
++ depends: [git_version_file],
+ )
+
+ subdir('Git')
diff --git a/dev-vcs/git/git-9999-r1.ebuild b/dev-vcs/git/git-9999-r1.ebuild
index 17a8afd1ac8b..8968424c04bd 100644
--- a/dev-vcs/git/git-9999-r1.ebuild
+++ b/dev-vcs/git/git-9999-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no
# bug #329479: git-remote-testgit is not multiple-version aware
PYTHON_COMPAT=( python3_{10..13} )
-inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd
+inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson
PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
@@ -58,7 +58,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-IUSE="+blksha1 +curl cgi doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion tk +webdav xinetd cvs test"
+IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd"
# Common to both DEPEND and RDEPEND
DEPEND="
@@ -122,7 +122,11 @@ BDEPEND="
)
keyring? ( virtual/pkgconfig )
nls? ( sys-devel/gettext )
- test? ( app-crypt/gnupg )
+ test? (
+ app-arch/unzip
+ app-crypt/gnupg
+ dev-lang/perl
+ )
"
# Live ebuild builds man pages and HTML docs, additionally
@@ -144,11 +148,7 @@ REQUIRED_USE="
RESTRICT="!test? ( test )"
PATCHES=(
- # Avoid automagic CVS, bug #350330
- "${FILESDIR}"/git-2.37.0_rc1-optional-cvs.patch
-
- # Make submodule output quiet
- "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
+ "${FILESDIR}"/${PN}-2.48.0_rc2-meson-deps.patch
)
pkg_setup() {
@@ -163,72 +163,6 @@ pkg_setup() {
fi
}
-# This is needed because for some obscure reasons future calls to make don't
-# pick up these exports if we export them in src_unpack()
-exportmakeopts() {
- local extlibs myopts
-
- myopts=(
- ASCIIDOC_NO_ROFF=YesPlease
-
- $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
-
- $(usev elibc_musl NO_REGEX=NeedsStartEnd)
- $(usev !cvs NO_CVS=YesPlease)
- $(usev !iconv NO_ICONV=YesPlease)
- $(usev !nls NO_GETTEXT=YesPlease)
- $(usev !perforce NO_PYTHON=YesPlease)
- $(usev !subversion NO_SVN_TESTS=YesPlease)
- $(usev !tk NO_TCLTK=YesPlease)
- )
-
- if use blksha1 ; then
- myopts+=( BLK_SHA1=YesPlease )
- fi
-
- if use curl ; then
- use webdav || myopts+=( NO_EXPAT=YesPlease )
- else
- myopts+=( NO_CURL=YesPlease )
- fi
-
- # Broken assumptions because of static build system
- myopts+=(
- NO_FINK=YesPlease
- NO_DARWIN_PORTS=YesPlease
- INSTALL=install
- TAR=tar
- SHELL_PATH="${EPREFIX}/bin/sh"
- SANE_TOOL_PATH=
- OLD_ICONV=
- NO_EXTERNAL_GREP=
- )
-
- # Can't define this to null, since the entire makefile depends on it
- sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
-
- if use pcre; then
- myopts+=( USE_LIBPCRE2=YesPlease )
- extlibs+=( -lpcre2-8 )
- fi
-
- if [[ ${CHOST} == *-solaris* ]]; then
- myopts+=(
- NEEDS_LIBICONV=YesPlease
- HAVE_CLOCK_MONOTONIC=1
- )
-
- if grep -Fq getdelim "${ESYSROOT}"/usr/include/stdio.h ; then
- myopts+=( HAVE_GETDELIM=1 )
- fi
- fi
-
- myopts+=( ASCIIDOC8=YesPlease )
-
- export MY_MAKEOPTS="${myopts[@]}"
- export EXTLIBS="${extlibs[@]}"
-}
-
src_unpack() {
if [[ ${PV} != *9999 ]] ; then
unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
@@ -243,95 +177,63 @@ src_unpack() {
fi
else
git-r3_src_unpack
- #cp "${FILESDIR}"/GIT-VERSION-GEN . || die
fi
}
-src_prepare() {
- if ! use safe-directory ; then
- # This patch neuters the "safe directory" detection.
- # bugs #838271, #838223
- PATCHES+=(
- "${FILESDIR}"/git-2.46.2-unsafe-directory.patch
- )
- fi
-
- default
+src_configure() {
+ local emesonargs=(
+ $(meson_feature curl)
+ $(meson_feature cgi gitweb)
+ $(meson_feature webdav expat)
+ $(meson_feature iconv)
+ $(meson_feature nls gettext)
+ $(meson_feature pcre pcre2)
+ $(meson_feature perl)
+ $(meson_feature perforce python)
+ $(meson_use test tests)
+ -Dperl_cpan_fallback=false
+ )
- if use prefix ; then
- # bug #757309
- sed -i \
- -e 's:/usr/local/opt/gettext/:/do/not/look/elsewhere/:g' \
- -e 's:/opt/homebrew/:/do/not/look/elsewhere/:g' \
- config.mak.uname || die
+ # For non-live, we use a downloaded docs tarball instead.
+ if [[ ${PV} == *9999 ]] ; then
+ emesonargs+=(
+ -Ddocs="man$(usev doc ',html')"
+ )
fi
- sed -i \
- -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
- -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
- -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
- -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
- -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
- -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
- Makefile || die
-
- # Fix docbook2texi command
- sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
- Documentation/Makefile || die
+ meson_src_configure
}
git_emake() {
- # bug #320647: PYTHON_PATH
- local PYTHON_PATH=""
- use perforce && PYTHON_PATH="${PYTHON}"
-
local mymakeargs=(
- ${MY_MAKEOPTS}
-
prefix="${EPREFIX}"/usr
htmldir="${EPREFIX}"/usr/share/doc/${PF}/html
- perllibdir="$(use perl && perl_get_raw_vendorlib)"
sysconfdir="${EPREFIX}"/etc
+ perllibdir="$(use perl && perl_get_raw_vendorlib)"
CC="$(tc-getCC)"
CFLAGS="${CFLAGS}"
+ LDFLAGS="${LDFLAGS}"
PKG_CONFIG="$(tc-getPKG_CONFIG)"
-
- # TODO: --verbose?
- GIT_TEST_OPTS="--no-color"
-
OPTAR="$(tc-getAR)"
OPTCC="$(tc-getCC)"
OPTCFLAGS="${CFLAGS}"
OPTLDFLAGS="${LDFLAGS}"
- CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
- CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
- CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
-
PERL_PATH="${EPREFIX}/usr/bin/perl"
PERL_MM_OPT=""
- PYTHON_PATH="${PYTHON_PATH}"
-
V=1
+
"$@"
)
emake "${mymakeargs[@]}"
}
-src_configure() {
- exportmakeopts
-}
-
src_compile() {
- git_emake
-
- if use perl && use cgi ; then
- git_emake gitweb
- fi
+ meson_src_compile
if use perl ; then
git_emake -C contrib/credential/netrc
@@ -341,160 +243,31 @@ src_compile() {
git_emake -C contrib/credential/osxkeychain
fi
- pushd Documentation &>/dev/null || die
- if [[ ${PV} == *9999 ]] ; then
- git_emake man
- if use doc ; then
- git_emake info html
- fi
- else
- if use doc ; then
- git_emake info
- fi
- fi
- popd &>/dev/null || die
-
if use keyring ; then
git_emake -C contrib/credential/libsecret
fi
- pushd contrib/subtree &>/dev/null || die
- git_emake git-subtree
- # git-subtree.1 requires the full USE=doc dependency stack
- use doc && git_emake git-subtree.html git-subtree.1
- popd &>/dev/null || die
-
- git_emake -C contrib/diff-highlight
-
if use mediawiki ; then
git_emake -C contrib/mw-to-git
fi
-}
-src_test() {
- local disabled=(
- # We make safe-directory optional
- t0033-safe-directory.sh
- )
-
- local tests_cvs=(
- t9200-git-cvsexportcommit.sh
- t9400-git-cvsserver-server.sh
- t9401-git-cvsserver-crlf.sh
- t9402-git-cvsserver-refs.sh
- t9600-cvsimport.sh
- t9601-cvsimport-vendor-branch.sh
- t9602-cvsimport-branches-tags.sh
- t9603-cvsimport-patchsets.sh
- t9604-cvsimport-timestamps.sh
- )
-
- local tests_perl=(
- t3701-add-interactive.sh
- t5502-quickfetch.sh
- t5512-ls-remote.sh
- t5520-pull.sh
- t7106-reset-unborn-branch.sh
- t7501-commit.sh
- )
- # Bug #225601 - t0004 is not suitable for root perm
- # Bug #219839 - t1004 is not suitable for root perm
- # t0001-init.sh - check for init notices EPERM* fails
- local tests_nonroot=(
- t0001-init.sh
- t0004-unwritable.sh
- t0070-fundamental.sh
- t1004-read-tree-m-u-wf.sh
- t3700-add.sh
- t7300-clean.sh
- )
- # t9100 still fails with symlinks in SVN 1.7
- local test_svn=( t9100-git-svn-basic.sh )
-
- # Unzip is used only for the testcase code, not by any normal parts of Git.
- if ! has_version app-arch/unzip ; then
- einfo "Disabling tar-tree tests"
- disabled+=( t5000-tar-tree.sh )
- fi
-
- local cvs=0
- use cvs && let cvs=${cvs}+1
- if [[ ${EUID} -eq 0 ]] ; then
- if [[ ${cvs} -eq 1 ]] ; then
- ewarn "Skipping CVS tests because CVS does not work as root!"
- ewarn "You should retest with FEATURES=userpriv!"
- disabled+=( ${tests_cvs[@]} )
- fi
- einfo "Skipping other tests that require being non-root"
- disabled+=( ${tests_nonroot[@]} )
- else
- if [[ ${cvs} -gt 0 ]] && has_version dev-vcs/cvs ; then
- let cvs=${cvs}+1
- fi
-
- if [[ ${cvs} -gt 1 ]] && has_version "dev-vcs/cvs[server]" ; then
- let cvs=${cvs}+1
- fi
-
- if [[ ${cvs} -lt 3 ]] ; then
- einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
- disabled+=( ${tests_cvs[@]} )
- fi
- fi
-
- if ! use perl ; then
- einfo "Disabling tests that need Perl"
- disabled+=( ${tests_perl[@]} )
- fi
-
- einfo "Disabling tests that fail with SVN 1.7"
- disabled+=( ${test_svn[@]} )
-
- # Reset all previously disabled tests
- pushd t &>/dev/null || die
- local i
- for i in *.sh.DISABLED ; do
- [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
- done
- einfo "Disabled tests:"
- for i in ${disabled[@]} ; do
- if [[ -f "${i}" ]] ; then
- mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
- fi
- done
-
- # Avoid the test system removing the results because we want them ourselves
- sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' -i Makefile || die
-
- # Clean old results first, must always run
- nonfatal git_emake clean
- popd &>/dev/null || die
-
- # Now run the tests, keep going if we hit an error, and don't terminate on
- # failure
- local rc
- # t0610-reftable-basics.sh uses $A
- local -x A=
- einfo "Start test run"
- #MAKEOPTS=-j1
- nonfatal git_emake --keep-going test
- rc=$?
+ git_emake -C contrib/diff-highlight
- # Display nice results, now print the results
- pushd t &>/dev/null || die
- nonfatal git_emake aggregate-results
+ git_emake -C contrib/subtree git-subtree
+ # git-subtree.1 requires the full USE=doc dependency stack
+ use doc && git_emake -C contrib/subtree git-subtree.html git-subtree.1
+}
- # And bail if there was a problem
- [[ ${rc} -eq 0 ]] || die "Tests failed. Please file a bug!"
+src_test() {
+ meson_src_test
- popd &>/dev/null || die
if use perl ; then
- emake -C contrib/credential/netrc testverbose
+ git_emake -C contrib/credential/netrc testverbose
fi
}
src_install() {
- git_emake DESTDIR="${D}" install
+ meson_src_install
if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
dobin contrib/credential/osxkeychain/git-credential-osxkeychain
@@ -562,9 +335,7 @@ src_install() {
dodoc contrib/contacts/git-contacts.txt
if use keyring ; then
- pushd contrib/credential/libsecret &>/dev/null || die
- dobin git-credential-libsecret
- popd &>/dev/null || die
+ dobin contrib/credential/libsecret/git-credential-libsecret
fi
dodir /usr/share/${PN}/contrib
@@ -596,7 +367,7 @@ src_install() {
cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}"
done
- if use perl && use cgi ; then
+ if use cgi ; then
# We used to install in /usr/share/${PN}/gitweb
# but upstream installs in /usr/share/gitweb
# so we will install a symlink and use their location for compat with other
@@ -618,9 +389,11 @@ src_install() {
fi
if use perl ; then
- pushd contrib/credential/netrc &>/dev/null || die
- dobin git-credential-netrc
- popd &>/dev/null || die
+ dodir "$(perl_get_vendorlib)"
+ mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die
+ mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die
+
+ dobin contrib/credential/netrc/git-credential-netrc
fi
if ! use subversion ; then
diff --git a/dev-vcs/git/git-9999-r2.ebuild b/dev-vcs/git/git-9999-r2.ebuild
index 17a8afd1ac8b..8968424c04bd 100644
--- a/dev-vcs/git/git-9999-r2.ebuild
+++ b/dev-vcs/git/git-9999-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no
# bug #329479: git-remote-testgit is not multiple-version aware
PYTHON_COMPAT=( python3_{10..13} )
-inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd
+inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson
PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
@@ -58,7 +58,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-IUSE="+blksha1 +curl cgi doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion tk +webdav xinetd cvs test"
+IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd"
# Common to both DEPEND and RDEPEND
DEPEND="
@@ -122,7 +122,11 @@ BDEPEND="
)
keyring? ( virtual/pkgconfig )
nls? ( sys-devel/gettext )
- test? ( app-crypt/gnupg )
+ test? (
+ app-arch/unzip
+ app-crypt/gnupg
+ dev-lang/perl
+ )
"
# Live ebuild builds man pages and HTML docs, additionally
@@ -144,11 +148,7 @@ REQUIRED_USE="
RESTRICT="!test? ( test )"
PATCHES=(
- # Avoid automagic CVS, bug #350330
- "${FILESDIR}"/git-2.37.0_rc1-optional-cvs.patch
-
- # Make submodule output quiet
- "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
+ "${FILESDIR}"/${PN}-2.48.0_rc2-meson-deps.patch
)
pkg_setup() {
@@ -163,72 +163,6 @@ pkg_setup() {
fi
}
-# This is needed because for some obscure reasons future calls to make don't
-# pick up these exports if we export them in src_unpack()
-exportmakeopts() {
- local extlibs myopts
-
- myopts=(
- ASCIIDOC_NO_ROFF=YesPlease
-
- $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
-
- $(usev elibc_musl NO_REGEX=NeedsStartEnd)
- $(usev !cvs NO_CVS=YesPlease)
- $(usev !iconv NO_ICONV=YesPlease)
- $(usev !nls NO_GETTEXT=YesPlease)
- $(usev !perforce NO_PYTHON=YesPlease)
- $(usev !subversion NO_SVN_TESTS=YesPlease)
- $(usev !tk NO_TCLTK=YesPlease)
- )
-
- if use blksha1 ; then
- myopts+=( BLK_SHA1=YesPlease )
- fi
-
- if use curl ; then
- use webdav || myopts+=( NO_EXPAT=YesPlease )
- else
- myopts+=( NO_CURL=YesPlease )
- fi
-
- # Broken assumptions because of static build system
- myopts+=(
- NO_FINK=YesPlease
- NO_DARWIN_PORTS=YesPlease
- INSTALL=install
- TAR=tar
- SHELL_PATH="${EPREFIX}/bin/sh"
- SANE_TOOL_PATH=
- OLD_ICONV=
- NO_EXTERNAL_GREP=
- )
-
- # Can't define this to null, since the entire makefile depends on it
- sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
-
- if use pcre; then
- myopts+=( USE_LIBPCRE2=YesPlease )
- extlibs+=( -lpcre2-8 )
- fi
-
- if [[ ${CHOST} == *-solaris* ]]; then
- myopts+=(
- NEEDS_LIBICONV=YesPlease
- HAVE_CLOCK_MONOTONIC=1
- )
-
- if grep -Fq getdelim "${ESYSROOT}"/usr/include/stdio.h ; then
- myopts+=( HAVE_GETDELIM=1 )
- fi
- fi
-
- myopts+=( ASCIIDOC8=YesPlease )
-
- export MY_MAKEOPTS="${myopts[@]}"
- export EXTLIBS="${extlibs[@]}"
-}
-
src_unpack() {
if [[ ${PV} != *9999 ]] ; then
unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
@@ -243,95 +177,63 @@ src_unpack() {
fi
else
git-r3_src_unpack
- #cp "${FILESDIR}"/GIT-VERSION-GEN . || die
fi
}
-src_prepare() {
- if ! use safe-directory ; then
- # This patch neuters the "safe directory" detection.
- # bugs #838271, #838223
- PATCHES+=(
- "${FILESDIR}"/git-2.46.2-unsafe-directory.patch
- )
- fi
-
- default
+src_configure() {
+ local emesonargs=(
+ $(meson_feature curl)
+ $(meson_feature cgi gitweb)
+ $(meson_feature webdav expat)
+ $(meson_feature iconv)
+ $(meson_feature nls gettext)
+ $(meson_feature pcre pcre2)
+ $(meson_feature perl)
+ $(meson_feature perforce python)
+ $(meson_use test tests)
+ -Dperl_cpan_fallback=false
+ )
- if use prefix ; then
- # bug #757309
- sed -i \
- -e 's:/usr/local/opt/gettext/:/do/not/look/elsewhere/:g' \
- -e 's:/opt/homebrew/:/do/not/look/elsewhere/:g' \
- config.mak.uname || die
+ # For non-live, we use a downloaded docs tarball instead.
+ if [[ ${PV} == *9999 ]] ; then
+ emesonargs+=(
+ -Ddocs="man$(usev doc ',html')"
+ )
fi
- sed -i \
- -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
- -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
- -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
- -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
- -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
- -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
- Makefile || die
-
- # Fix docbook2texi command
- sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
- Documentation/Makefile || die
+ meson_src_configure
}
git_emake() {
- # bug #320647: PYTHON_PATH
- local PYTHON_PATH=""
- use perforce && PYTHON_PATH="${PYTHON}"
-
local mymakeargs=(
- ${MY_MAKEOPTS}
-
prefix="${EPREFIX}"/usr
htmldir="${EPREFIX}"/usr/share/doc/${PF}/html
- perllibdir="$(use perl && perl_get_raw_vendorlib)"
sysconfdir="${EPREFIX}"/etc
+ perllibdir="$(use perl && perl_get_raw_vendorlib)"
CC="$(tc-getCC)"
CFLAGS="${CFLAGS}"
+ LDFLAGS="${LDFLAGS}"
PKG_CONFIG="$(tc-getPKG_CONFIG)"
-
- # TODO: --verbose?
- GIT_TEST_OPTS="--no-color"
-
OPTAR="$(tc-getAR)"
OPTCC="$(tc-getCC)"
OPTCFLAGS="${CFLAGS}"
OPTLDFLAGS="${LDFLAGS}"
- CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
- CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
- CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
-
PERL_PATH="${EPREFIX}/usr/bin/perl"
PERL_MM_OPT=""
- PYTHON_PATH="${PYTHON_PATH}"
-
V=1
+
"$@"
)
emake "${mymakeargs[@]}"
}
-src_configure() {
- exportmakeopts
-}
-
src_compile() {
- git_emake
-
- if use perl && use cgi ; then
- git_emake gitweb
- fi
+ meson_src_compile
if use perl ; then
git_emake -C contrib/credential/netrc
@@ -341,160 +243,31 @@ src_compile() {
git_emake -C contrib/credential/osxkeychain
fi
- pushd Documentation &>/dev/null || die
- if [[ ${PV} == *9999 ]] ; then
- git_emake man
- if use doc ; then
- git_emake info html
- fi
- else
- if use doc ; then
- git_emake info
- fi
- fi
- popd &>/dev/null || die
-
if use keyring ; then
git_emake -C contrib/credential/libsecret
fi
- pushd contrib/subtree &>/dev/null || die
- git_emake git-subtree
- # git-subtree.1 requires the full USE=doc dependency stack
- use doc && git_emake git-subtree.html git-subtree.1
- popd &>/dev/null || die
-
- git_emake -C contrib/diff-highlight
-
if use mediawiki ; then
git_emake -C contrib/mw-to-git
fi
-}
-src_test() {
- local disabled=(
- # We make safe-directory optional
- t0033-safe-directory.sh
- )
-
- local tests_cvs=(
- t9200-git-cvsexportcommit.sh
- t9400-git-cvsserver-server.sh
- t9401-git-cvsserver-crlf.sh
- t9402-git-cvsserver-refs.sh
- t9600-cvsimport.sh
- t9601-cvsimport-vendor-branch.sh
- t9602-cvsimport-branches-tags.sh
- t9603-cvsimport-patchsets.sh
- t9604-cvsimport-timestamps.sh
- )
-
- local tests_perl=(
- t3701-add-interactive.sh
- t5502-quickfetch.sh
- t5512-ls-remote.sh
- t5520-pull.sh
- t7106-reset-unborn-branch.sh
- t7501-commit.sh
- )
- # Bug #225601 - t0004 is not suitable for root perm
- # Bug #219839 - t1004 is not suitable for root perm
- # t0001-init.sh - check for init notices EPERM* fails
- local tests_nonroot=(
- t0001-init.sh
- t0004-unwritable.sh
- t0070-fundamental.sh
- t1004-read-tree-m-u-wf.sh
- t3700-add.sh
- t7300-clean.sh
- )
- # t9100 still fails with symlinks in SVN 1.7
- local test_svn=( t9100-git-svn-basic.sh )
-
- # Unzip is used only for the testcase code, not by any normal parts of Git.
- if ! has_version app-arch/unzip ; then
- einfo "Disabling tar-tree tests"
- disabled+=( t5000-tar-tree.sh )
- fi
-
- local cvs=0
- use cvs && let cvs=${cvs}+1
- if [[ ${EUID} -eq 0 ]] ; then
- if [[ ${cvs} -eq 1 ]] ; then
- ewarn "Skipping CVS tests because CVS does not work as root!"
- ewarn "You should retest with FEATURES=userpriv!"
- disabled+=( ${tests_cvs[@]} )
- fi
- einfo "Skipping other tests that require being non-root"
- disabled+=( ${tests_nonroot[@]} )
- else
- if [[ ${cvs} -gt 0 ]] && has_version dev-vcs/cvs ; then
- let cvs=${cvs}+1
- fi
-
- if [[ ${cvs} -gt 1 ]] && has_version "dev-vcs/cvs[server]" ; then
- let cvs=${cvs}+1
- fi
-
- if [[ ${cvs} -lt 3 ]] ; then
- einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
- disabled+=( ${tests_cvs[@]} )
- fi
- fi
-
- if ! use perl ; then
- einfo "Disabling tests that need Perl"
- disabled+=( ${tests_perl[@]} )
- fi
-
- einfo "Disabling tests that fail with SVN 1.7"
- disabled+=( ${test_svn[@]} )
-
- # Reset all previously disabled tests
- pushd t &>/dev/null || die
- local i
- for i in *.sh.DISABLED ; do
- [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
- done
- einfo "Disabled tests:"
- for i in ${disabled[@]} ; do
- if [[ -f "${i}" ]] ; then
- mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
- fi
- done
-
- # Avoid the test system removing the results because we want them ourselves
- sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' -i Makefile || die
-
- # Clean old results first, must always run
- nonfatal git_emake clean
- popd &>/dev/null || die
-
- # Now run the tests, keep going if we hit an error, and don't terminate on
- # failure
- local rc
- # t0610-reftable-basics.sh uses $A
- local -x A=
- einfo "Start test run"
- #MAKEOPTS=-j1
- nonfatal git_emake --keep-going test
- rc=$?
+ git_emake -C contrib/diff-highlight
- # Display nice results, now print the results
- pushd t &>/dev/null || die
- nonfatal git_emake aggregate-results
+ git_emake -C contrib/subtree git-subtree
+ # git-subtree.1 requires the full USE=doc dependency stack
+ use doc && git_emake -C contrib/subtree git-subtree.html git-subtree.1
+}
- # And bail if there was a problem
- [[ ${rc} -eq 0 ]] || die "Tests failed. Please file a bug!"
+src_test() {
+ meson_src_test
- popd &>/dev/null || die
if use perl ; then
- emake -C contrib/credential/netrc testverbose
+ git_emake -C contrib/credential/netrc testverbose
fi
}
src_install() {
- git_emake DESTDIR="${D}" install
+ meson_src_install
if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
dobin contrib/credential/osxkeychain/git-credential-osxkeychain
@@ -562,9 +335,7 @@ src_install() {
dodoc contrib/contacts/git-contacts.txt
if use keyring ; then
- pushd contrib/credential/libsecret &>/dev/null || die
- dobin git-credential-libsecret
- popd &>/dev/null || die
+ dobin contrib/credential/libsecret/git-credential-libsecret
fi
dodir /usr/share/${PN}/contrib
@@ -596,7 +367,7 @@ src_install() {
cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}"
done
- if use perl && use cgi ; then
+ if use cgi ; then
# We used to install in /usr/share/${PN}/gitweb
# but upstream installs in /usr/share/gitweb
# so we will install a symlink and use their location for compat with other
@@ -618,9 +389,11 @@ src_install() {
fi
if use perl ; then
- pushd contrib/credential/netrc &>/dev/null || die
- dobin git-credential-netrc
- popd &>/dev/null || die
+ dodir "$(perl_get_vendorlib)"
+ mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die
+ mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die
+
+ dobin contrib/credential/netrc/git-credential-netrc
fi
if ! use subversion ; then
diff --git a/dev-vcs/git/git-9999-r3.ebuild b/dev-vcs/git/git-9999-r3.ebuild
index 17a8afd1ac8b..8968424c04bd 100644
--- a/dev-vcs/git/git-9999-r3.ebuild
+++ b/dev-vcs/git/git-9999-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no
# bug #329479: git-remote-testgit is not multiple-version aware
PYTHON_COMPAT=( python3_{10..13} )
-inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd
+inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson
PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
@@ -58,7 +58,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-IUSE="+blksha1 +curl cgi doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion tk +webdav xinetd cvs test"
+IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd"
# Common to both DEPEND and RDEPEND
DEPEND="
@@ -122,7 +122,11 @@ BDEPEND="
)
keyring? ( virtual/pkgconfig )
nls? ( sys-devel/gettext )
- test? ( app-crypt/gnupg )
+ test? (
+ app-arch/unzip
+ app-crypt/gnupg
+ dev-lang/perl
+ )
"
# Live ebuild builds man pages and HTML docs, additionally
@@ -144,11 +148,7 @@ REQUIRED_USE="
RESTRICT="!test? ( test )"
PATCHES=(
- # Avoid automagic CVS, bug #350330
- "${FILESDIR}"/git-2.37.0_rc1-optional-cvs.patch
-
- # Make submodule output quiet
- "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
+ "${FILESDIR}"/${PN}-2.48.0_rc2-meson-deps.patch
)
pkg_setup() {
@@ -163,72 +163,6 @@ pkg_setup() {
fi
}
-# This is needed because for some obscure reasons future calls to make don't
-# pick up these exports if we export them in src_unpack()
-exportmakeopts() {
- local extlibs myopts
-
- myopts=(
- ASCIIDOC_NO_ROFF=YesPlease
-
- $(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
-
- $(usev elibc_musl NO_REGEX=NeedsStartEnd)
- $(usev !cvs NO_CVS=YesPlease)
- $(usev !iconv NO_ICONV=YesPlease)
- $(usev !nls NO_GETTEXT=YesPlease)
- $(usev !perforce NO_PYTHON=YesPlease)
- $(usev !subversion NO_SVN_TESTS=YesPlease)
- $(usev !tk NO_TCLTK=YesPlease)
- )
-
- if use blksha1 ; then
- myopts+=( BLK_SHA1=YesPlease )
- fi
-
- if use curl ; then
- use webdav || myopts+=( NO_EXPAT=YesPlease )
- else
- myopts+=( NO_CURL=YesPlease )
- fi
-
- # Broken assumptions because of static build system
- myopts+=(
- NO_FINK=YesPlease
- NO_DARWIN_PORTS=YesPlease
- INSTALL=install
- TAR=tar
- SHELL_PATH="${EPREFIX}/bin/sh"
- SANE_TOOL_PATH=
- OLD_ICONV=
- NO_EXTERNAL_GREP=
- )
-
- # Can't define this to null, since the entire makefile depends on it
- sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
-
- if use pcre; then
- myopts+=( USE_LIBPCRE2=YesPlease )
- extlibs+=( -lpcre2-8 )
- fi
-
- if [[ ${CHOST} == *-solaris* ]]; then
- myopts+=(
- NEEDS_LIBICONV=YesPlease
- HAVE_CLOCK_MONOTONIC=1
- )
-
- if grep -Fq getdelim "${ESYSROOT}"/usr/include/stdio.h ; then
- myopts+=( HAVE_GETDELIM=1 )
- fi
- fi
-
- myopts+=( ASCIIDOC8=YesPlease )
-
- export MY_MAKEOPTS="${myopts[@]}"
- export EXTLIBS="${extlibs[@]}"
-}
-
src_unpack() {
if [[ ${PV} != *9999 ]] ; then
unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
@@ -243,95 +177,63 @@ src_unpack() {
fi
else
git-r3_src_unpack
- #cp "${FILESDIR}"/GIT-VERSION-GEN . || die
fi
}
-src_prepare() {
- if ! use safe-directory ; then
- # This patch neuters the "safe directory" detection.
- # bugs #838271, #838223
- PATCHES+=(
- "${FILESDIR}"/git-2.46.2-unsafe-directory.patch
- )
- fi
-
- default
+src_configure() {
+ local emesonargs=(
+ $(meson_feature curl)
+ $(meson_feature cgi gitweb)
+ $(meson_feature webdav expat)
+ $(meson_feature iconv)
+ $(meson_feature nls gettext)
+ $(meson_feature pcre pcre2)
+ $(meson_feature perl)
+ $(meson_feature perforce python)
+ $(meson_use test tests)
+ -Dperl_cpan_fallback=false
+ )
- if use prefix ; then
- # bug #757309
- sed -i \
- -e 's:/usr/local/opt/gettext/:/do/not/look/elsewhere/:g' \
- -e 's:/opt/homebrew/:/do/not/look/elsewhere/:g' \
- config.mak.uname || die
+ # For non-live, we use a downloaded docs tarball instead.
+ if [[ ${PV} == *9999 ]] ; then
+ emesonargs+=(
+ -Ddocs="man$(usev doc ',html')"
+ )
fi
- sed -i \
- -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
- -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
- -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
- -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
- -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
- -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
- Makefile || die
-
- # Fix docbook2texi command
- sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
- Documentation/Makefile || die
+ meson_src_configure
}
git_emake() {
- # bug #320647: PYTHON_PATH
- local PYTHON_PATH=""
- use perforce && PYTHON_PATH="${PYTHON}"
-
local mymakeargs=(
- ${MY_MAKEOPTS}
-
prefix="${EPREFIX}"/usr
htmldir="${EPREFIX}"/usr/share/doc/${PF}/html
- perllibdir="$(use perl && perl_get_raw_vendorlib)"
sysconfdir="${EPREFIX}"/etc
+ perllibdir="$(use perl && perl_get_raw_vendorlib)"
CC="$(tc-getCC)"
CFLAGS="${CFLAGS}"
+ LDFLAGS="${LDFLAGS}"
PKG_CONFIG="$(tc-getPKG_CONFIG)"
-
- # TODO: --verbose?
- GIT_TEST_OPTS="--no-color"
-
OPTAR="$(tc-getAR)"
OPTCC="$(tc-getCC)"
OPTCFLAGS="${CFLAGS}"
OPTLDFLAGS="${LDFLAGS}"
- CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
- CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
- CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
-
PERL_PATH="${EPREFIX}/usr/bin/perl"
PERL_MM_OPT=""
- PYTHON_PATH="${PYTHON_PATH}"
-
V=1
+
"$@"
)
emake "${mymakeargs[@]}"
}
-src_configure() {
- exportmakeopts
-}
-
src_compile() {
- git_emake
-
- if use perl && use cgi ; then
- git_emake gitweb
- fi
+ meson_src_compile
if use perl ; then
git_emake -C contrib/credential/netrc
@@ -341,160 +243,31 @@ src_compile() {
git_emake -C contrib/credential/osxkeychain
fi
- pushd Documentation &>/dev/null || die
- if [[ ${PV} == *9999 ]] ; then
- git_emake man
- if use doc ; then
- git_emake info html
- fi
- else
- if use doc ; then
- git_emake info
- fi
- fi
- popd &>/dev/null || die
-
if use keyring ; then
git_emake -C contrib/credential/libsecret
fi
- pushd contrib/subtree &>/dev/null || die
- git_emake git-subtree
- # git-subtree.1 requires the full USE=doc dependency stack
- use doc && git_emake git-subtree.html git-subtree.1
- popd &>/dev/null || die
-
- git_emake -C contrib/diff-highlight
-
if use mediawiki ; then
git_emake -C contrib/mw-to-git
fi
-}
-src_test() {
- local disabled=(
- # We make safe-directory optional
- t0033-safe-directory.sh
- )
-
- local tests_cvs=(
- t9200-git-cvsexportcommit.sh
- t9400-git-cvsserver-server.sh
- t9401-git-cvsserver-crlf.sh
- t9402-git-cvsserver-refs.sh
- t9600-cvsimport.sh
- t9601-cvsimport-vendor-branch.sh
- t9602-cvsimport-branches-tags.sh
- t9603-cvsimport-patchsets.sh
- t9604-cvsimport-timestamps.sh
- )
-
- local tests_perl=(
- t3701-add-interactive.sh
- t5502-quickfetch.sh
- t5512-ls-remote.sh
- t5520-pull.sh
- t7106-reset-unborn-branch.sh
- t7501-commit.sh
- )
- # Bug #225601 - t0004 is not suitable for root perm
- # Bug #219839 - t1004 is not suitable for root perm
- # t0001-init.sh - check for init notices EPERM* fails
- local tests_nonroot=(
- t0001-init.sh
- t0004-unwritable.sh
- t0070-fundamental.sh
- t1004-read-tree-m-u-wf.sh
- t3700-add.sh
- t7300-clean.sh
- )
- # t9100 still fails with symlinks in SVN 1.7
- local test_svn=( t9100-git-svn-basic.sh )
-
- # Unzip is used only for the testcase code, not by any normal parts of Git.
- if ! has_version app-arch/unzip ; then
- einfo "Disabling tar-tree tests"
- disabled+=( t5000-tar-tree.sh )
- fi
-
- local cvs=0
- use cvs && let cvs=${cvs}+1
- if [[ ${EUID} -eq 0 ]] ; then
- if [[ ${cvs} -eq 1 ]] ; then
- ewarn "Skipping CVS tests because CVS does not work as root!"
- ewarn "You should retest with FEATURES=userpriv!"
- disabled+=( ${tests_cvs[@]} )
- fi
- einfo "Skipping other tests that require being non-root"
- disabled+=( ${tests_nonroot[@]} )
- else
- if [[ ${cvs} -gt 0 ]] && has_version dev-vcs/cvs ; then
- let cvs=${cvs}+1
- fi
-
- if [[ ${cvs} -gt 1 ]] && has_version "dev-vcs/cvs[server]" ; then
- let cvs=${cvs}+1
- fi
-
- if [[ ${cvs} -lt 3 ]] ; then
- einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
- disabled+=( ${tests_cvs[@]} )
- fi
- fi
-
- if ! use perl ; then
- einfo "Disabling tests that need Perl"
- disabled+=( ${tests_perl[@]} )
- fi
-
- einfo "Disabling tests that fail with SVN 1.7"
- disabled+=( ${test_svn[@]} )
-
- # Reset all previously disabled tests
- pushd t &>/dev/null || die
- local i
- for i in *.sh.DISABLED ; do
- [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
- done
- einfo "Disabled tests:"
- for i in ${disabled[@]} ; do
- if [[ -f "${i}" ]] ; then
- mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
- fi
- done
-
- # Avoid the test system removing the results because we want them ourselves
- sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' -i Makefile || die
-
- # Clean old results first, must always run
- nonfatal git_emake clean
- popd &>/dev/null || die
-
- # Now run the tests, keep going if we hit an error, and don't terminate on
- # failure
- local rc
- # t0610-reftable-basics.sh uses $A
- local -x A=
- einfo "Start test run"
- #MAKEOPTS=-j1
- nonfatal git_emake --keep-going test
- rc=$?
+ git_emake -C contrib/diff-highlight
- # Display nice results, now print the results
- pushd t &>/dev/null || die
- nonfatal git_emake aggregate-results
+ git_emake -C contrib/subtree git-subtree
+ # git-subtree.1 requires the full USE=doc dependency stack
+ use doc && git_emake -C contrib/subtree git-subtree.html git-subtree.1
+}
- # And bail if there was a problem
- [[ ${rc} -eq 0 ]] || die "Tests failed. Please file a bug!"
+src_test() {
+ meson_src_test
- popd &>/dev/null || die
if use perl ; then
- emake -C contrib/credential/netrc testverbose
+ git_emake -C contrib/credential/netrc testverbose
fi
}
src_install() {
- git_emake DESTDIR="${D}" install
+ meson_src_install
if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
dobin contrib/credential/osxkeychain/git-credential-osxkeychain
@@ -562,9 +335,7 @@ src_install() {
dodoc contrib/contacts/git-contacts.txt
if use keyring ; then
- pushd contrib/credential/libsecret &>/dev/null || die
- dobin git-credential-libsecret
- popd &>/dev/null || die
+ dobin contrib/credential/libsecret/git-credential-libsecret
fi
dodir /usr/share/${PN}/contrib
@@ -596,7 +367,7 @@ src_install() {
cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}"
done
- if use perl && use cgi ; then
+ if use cgi ; then
# We used to install in /usr/share/${PN}/gitweb
# but upstream installs in /usr/share/gitweb
# so we will install a symlink and use their location for compat with other
@@ -618,9 +389,11 @@ src_install() {
fi
if use perl ; then
- pushd contrib/credential/netrc &>/dev/null || die
- dobin git-credential-netrc
- popd &>/dev/null || die
+ dodir "$(perl_get_vendorlib)"
+ mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die
+ mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die
+
+ dobin contrib/credential/netrc/git-credential-netrc
fi
if ! use subversion ; then