summaryrefslogtreecommitdiff
path: root/dev-vcs/git/git-9999.ebuild
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2025-03-14 18:13:15 +0000
committerSam James <sam@gentoo.org>2025-03-14 18:17:11 +0000
commit724de2ccb5756cf13ae3ae16a37ed0f60488a338 (patch)
treeacb56ee9be70417210ffe12312ac52b441eefc8c /dev-vcs/git/git-9999.ebuild
parent0e3d0ea4a5452ebb7b51d4597a710bad0a49ed3b (diff)
downloadgentoo-724de2ccb5756cf13ae3ae16a37ed0f60488a338.tar.gz
gentoo-724de2ccb5756cf13ae3ae16a37ed0f60488a338.tar.bz2
gentoo-724de2ccb5756cf13ae3ae16a37ed0f60488a338.zip
dev-vcs/git: add 2.49.0
Still not completely comfortable with the doc setup here and the relationship with the downloaded tarballs of pregenerated ones and how it glues together, it'll need more work. More contrib bits have moved into Meson now. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-vcs/git/git-9999.ebuild')
-rw-r--r--dev-vcs/git/git-9999.ebuild98
1 files changed, 41 insertions, 57 deletions
diff --git a/dev-vcs/git/git-9999.ebuild b/dev-vcs/git/git-9999.ebuild
index f90f10f55f15..c01f7afe963b 100644
--- a/dev-vcs/git/git-9999.ebuild
+++ b/dev-vcs/git/git-9999.ebuild
@@ -148,7 +148,8 @@ REQUIRED_USE="
RESTRICT="!test? ( test )"
PATCHES=(
- "${FILESDIR}"/${PN}-2.48.0-doc-deps.patch
+ "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch
+ "${FILESDIR}"/${PN}-2.49.0-meson-use-test_environment-conditionally.patch
)
pkg_setup() {
@@ -194,7 +195,36 @@ src_prepare() {
}
src_configure() {
+ local contrib=(
+ completion
+ subtree
+
+ $(usev perl 'contacts')
+ )
+ local credential_helpers=(
+ $(usev keyring 'libsecret')
+ $(usev perl 'netrc')
+ )
+
+ # Needs macOS Frameworks that can't currently be built with GCC.
+ if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
+ credential_helpers+=( osxkeychain )
+ fi
+
+
+ local native_file="${T}"/meson.ini.local
+ cat >> ${native_file} <<-EOF || die
+ [binaries]
+ # We don't want to bake /usr/bin/sh from usrmerged systems into
+ # binaries. /bin/sh is required by POSIX.
+ sh='/bin/sh'
+ # Avoid automagic installation of gitk-gui.
+ $(usev !tk "wish='wish-falseified'")
+ EOF
+
local emesonargs=(
+ --native-file "${native_file}"
+
$(meson_feature curl)
$(meson_feature cgi gitweb)
$(meson_feature webdav expat)
@@ -204,9 +234,18 @@ src_configure() {
$(meson_feature perl)
$(meson_feature perforce python)
$(meson_use test tests)
+
+ -Dcontrib=$(IFS=, ; echo "${contrib[*]}" )
+ -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" )
+
+ -Dmacos_use_homebrew_gettext=false
-Dperl_cpan_fallback=false
+ # TODO: allow zlib-ng
+ -Dzlib_backend=zlib
)
+ [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false )
+
# For non-live, we use a downloaded docs tarball instead.
if [[ ${PV} == *9999 ]] || use doc ; then
emesonargs+=(
@@ -247,24 +286,11 @@ git_emake() {
src_compile() {
meson_src_compile
- if use perl ; then
- git_emake -C contrib/credential/netrc
- fi
-
- if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
- git_emake -C contrib/credential/osxkeychain
- fi
-
- if use keyring ; then
- git_emake -C contrib/credential/libsecret
- fi
-
if use mediawiki ; then
git_emake -C contrib/mw-to-git
fi
if use tk ; then
- git_emake -C gitk-git
git_emake -C git-gui
fi
@@ -275,9 +301,6 @@ src_compile() {
fi
git_emake -C contrib/diff-highlight
- 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
}
src_test() {
@@ -295,10 +318,6 @@ src_test() {
src_install() {
meson_src_install
- if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
- dobin contrib/credential/osxkeychain/git-credential-osxkeychain
- fi
-
if use doc ; then
cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die
rm -rf "${ED}"/usr/share/doc/git-doc/ || die
@@ -310,18 +329,6 @@ src_install() {
find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
- use doc && dodir /usr/share/doc/${PF}/html
- local d
- for d in / /howto/ /technical/ ; do
- docinto ${d}
- dodoc Documentation${d}*.txt
- if use doc ; then
- docinto ${d}/html
- dodoc Documentation${d}*.html
- fi
- done
- docinto /
-
newbashcomp contrib/completion/git-completion.bash ${PN}
bashcomp_alias git gitk
# Not really a bash-completion file (bug #477920)
@@ -335,17 +342,6 @@ src_install() {
exeinto /usr/libexec/git-core/
newexe contrib/git-resurrect.sh git-resurrect
- # git-subtree
- pushd contrib/subtree &>/dev/null || die
- git_emake DESTDIR="${D}" install
- if use doc ; then
- # Do not move git subtree install-man outside USE=doc!
- git_emake DESTDIR="${D}" install-man install-html
- fi
- newdoc README README.git-subtree
- dodoc git-subtree.txt
- popd &>/dev/null || die
-
# diff-highlight
dobin contrib/diff-highlight/diff-highlight
newdoc contrib/diff-highlight/README README.diff-highlight
@@ -355,15 +351,6 @@ src_install() {
doexe contrib/git-jump/git-jump
newdoc contrib/git-jump/README git-jump.txt
- # git-contacts
- exeinto /usr/libexec/git-core/
- doexe contrib/contacts/git-contacts
- dodoc contrib/contacts/git-contacts.txt
-
- if use keyring ; then
- dobin contrib/credential/libsecret/git-credential-libsecret
- fi
-
dodir /usr/share/${PN}/contrib
# The following are excluded:
# completion - installed above
@@ -376,7 +363,7 @@ src_install() {
# patches - stuff the Git guys made to go upstream to other places
# persistent-https - TODO
# mw-to-git - TODO
- # subtree - build seperately
+ # subtree - built seperately
# svnimport - use git-svn
# thunderbird-patch-inline - fixes thunderbird
local contrib_objects=(
@@ -418,8 +405,6 @@ src_install() {
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 mediawiki ; then
@@ -444,7 +429,6 @@ src_install() {
fi
if use tk ; then
- git_emake -C gitk-git DESTDIR="${D}" install
git_emake -C git-gui DESTDIR="${D}" install
fi