commit:     e97050ff8c5fc45e15b899a3f7445594f9daeba9
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 16 23:16:06 2016 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Jan 16 23:16:46 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e97050ff

dev-vcs/git: Conditionally add patches that improve MediaWiki cloning

Package-Manager: portage-2.2.26

 .../git/files/git-2.7.0-mediawiki-namespaces.patch | 97 +++++++++++++++++++++
 .../git/files/git-2.7.0-mediawiki-subpages.patch   | 48 +++++++++++
 .../{git-9999-r3.ebuild => git-2.7.0-r1.ebuild}    | 99 ++++++++++++----------
 dev-vcs/git/git-9999-r1.ebuild                     | 13 ++-
 dev-vcs/git/git-9999-r2.ebuild                     | 13 ++-
 dev-vcs/git/git-9999-r3.ebuild                     | 13 ++-
 dev-vcs/git/git-9999.ebuild                        | 13 ++-
 dev-vcs/git/metadata.xml                           |  1 +
 8 files changed, 244 insertions(+), 53 deletions(-)

diff --git a/dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch 
b/dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch
new file mode 100644
index 0000000..72ab212
--- /dev/null
+++ b/dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch
@@ -0,0 +1,97 @@
+source:
+https://gist.github.com/anarcat/f821fa285c6b8b6b16a5
+https://github.com/moy/Git-Mediawiki/issues/10
+
+
+From 147224cfe6143c44b16aec0bb6d6a506a6b96ced Mon Sep 17 00:00:00 2001
+From: Kevin <[email protected]>
+Date: Fri, 28 Aug 2015 15:53:37 -0500
+Subject: [PATCH] Add namespace support to git-mediawiki
+
+Signed-off-by: Kevin <[email protected]>
+---
+ contrib/mw-to-git/git-remote-mediawiki.perl | 34 +++++++++++++++++++++++++++--
+ 1 file changed, 32 insertions(+), 2 deletions(-)
+
+diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl 
b/contrib/mw-to-git/git-remote-mediawiki.perl
+index 8dd74a9..662a5b5 100755
+--- a/contrib/mw-to-git/git-remote-mediawiki.perl
++++ b/contrib/mw-to-git/git-remote-mediawiki.perl
+@@ -17,6 +17,7 @@ use Git;
+ use Git::Mediawiki qw(clean_filename smudge_filename connect_maybe
+                                       EMPTY HTTP_CODE_OK);
+ use DateTime::Format::ISO8601;
++use Scalar::Util;
+ use warnings;
+ 
+ # By default, use UTF-8 to communicate with Git and the user
+@@ -63,6 +64,10 @@ chomp(@tracked_pages);
+ my @tracked_categories = split(/[ \n]/, run_git("config --get-all 
remote.${remotename}.categories"));
+ chomp(@tracked_categories);
+ 
++# Just like @tracked_categories, but for MediaWiki namespaces.
++my @tracked_namespaces = split(/[ \n]/, run_git("config --get-all 
remote.${remotename}.namespaces"));
++chomp(@tracked_namespaces);
++
+ # Import media files on pull
+ my $import_media = run_git("config --get --bool 
remote.${remotename}.mediaimport");
+ chomp($import_media);
+@@ -256,6 +261,23 @@ sub get_mw_tracked_categories {
+       return;
+ }
+ 
++sub get_mw_tracked_namespaces {
++    my $pages = shift;
++    foreach my $local_namespace (@tracked_namespaces) {
++        my $mw_pages = $mediawiki->list( {
++            action => 'query',
++            list => 'allpages',
++            apnamespace => get_mw_namespace_id($local_namespace),
++            aplimit => 'max' } )
++            || die $mediawiki->{error}->{code} . ': '
++                . $mediawiki->{error}->{details} . "\n";
++        foreach my $page (@{$mw_pages}) {
++            $pages->{$page->{title}} = $page;
++        }
++    }
++    return;
++}
++
+ sub get_mw_all_pages {
+       my $pages = shift;
+       # No user-provided list, get the list of pages from the API.
+@@ -319,6 +341,10 @@ sub get_mw_pages {
+               $user_defined = 1;
+               get_mw_tracked_categories(\%pages);
+       }
++    if (@tracked_namespaces) {
++        $user_defined = 1;
++        get_mw_tracked_namespaces(\%pages);
++    }
+       if (!$user_defined) {
+               get_mw_all_pages(\%pages);
+       }
+@@ -1263,7 +1289,6 @@ my %cached_mw_namespace_id;
+ sub get_mw_namespace_id {
+       $mediawiki = connect_maybe($mediawiki, $remotename, $url);
+       my $name = shift;
+-
+       if (!exists $namespace_id{$name}) {
+               # Look at configuration file, if the record for that namespace 
is
+               # already cached. Namespaces are stored in form:
+@@ -1331,7 +1356,12 @@ sub get_mw_namespace_id {
+ sub get_mw_namespace_id_for_page {
+       my $namespace = shift;
+       if ($namespace =~ /^([^:]*):/) {
+-              return get_mw_namespace_id($namespace);
++              my ($ns, $id) = split(/:/, $namespace);
++              if (Scalar::Util::looks_like_number($id)) {
++                      return get_mw_namespace_id($ns);
++              } else{
++                      return
++              }
+       } else {
+               return;
+       }
+-- 
+2.5.0

diff --git a/dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch 
b/dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch
new file mode 100644
index 0000000..c798a89
--- /dev/null
+++ b/dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch
@@ -0,0 +1,48 @@
+From 2593304723c6def159c10b9060dafa78a775a057 Mon Sep 17 00:00:00 2001
+From: Lyubomyr Shaydariv <[email protected]>
+Date: Fri, 11 Sep 2015 00:41:17 +0300
+Subject: [PATCH] git-remote-mediawiki: support subpages as subdirectories
+
+This is a fix for https://github.com/moy/Git-Mediawiki/issues/22
+The subdirectories option is enabled using -c remote.origin.subpageDirs=true
+during the cloning and it is not recommended to be modified in or
+removed from .git/config after the cloning.
+---
+ contrib/mw-to-git/git-remote-mediawiki.perl | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl 
b/contrib/mw-to-git/git-remote-mediawiki.perl
+index 8dd74a9..f3624be 100755
+--- a/contrib/mw-to-git/git-remote-mediawiki.perl
++++ b/contrib/mw-to-git/git-remote-mediawiki.perl
+@@ -63,6 +63,11 @@
+ my @tracked_categories = split(/[ \n]/, run_git("config --get-all 
remote.${remotename}.categories"));
+ chomp(@tracked_categories);
+ 
++# Use subdirectories for subpages
++my $use_subpage_dirs = run_git("config --get --bool 
remote.${remotename}.subpageDirs");
++chomp($use_subpage_dirs);
++$use_subpage_dirs = ($use_subpage_dirs eq 'true');
++
+ # Import media files on pull
+ my $import_media = run_git("config --get --bool 
remote.${remotename}.mediaimport");
+ chomp($import_media);
+@@ -689,6 +694,9 @@ sub fe_escape_path {
+     $path =~ s/\\/\\\\/g;
+     $path =~ s/"/\\"/g;
+     $path =~ s/\n/\\n/g;
++    if ($use_subpage_dirs) {
++        $path =~ s/%2F/\//g;
++    }
+     return qq("${path}");
+ }
+ 
+@@ -927,7 +935,7 @@ sub mw_import_revids {
+               # If this is a revision of the media page for new version
+               # of a file do one common commit for both file and media page.
+               # Else do commit only for that page.
+-              print {*STDERR} "${n}/", scalar(@{$revision_ids}), ": Revision 
#$rev->{revid} of $commit{title}\n";
++              print {*STDERR} "${n}/", scalar(@{$revision_ids}), ": Revision 
#$rev->{revid} of ", fe_escape_path($commit{title}), "\n";
+               import_file_revision(\%commit, ($fetch_from == 1), $n_actual, 
\%mediafile);
+       }
+ 

diff --git a/dev-vcs/git/git-9999-r3.ebuild b/dev-vcs/git/git-2.7.0-r1.ebuild
similarity index 88%
copy from dev-vcs/git/git-9999-r3.ebuild
copy to dev-vcs/git/git-2.7.0-r1.ebuild
index a9feb91..4148ae4 100644
--- a/dev-vcs/git/git-9999-r3.ebuild
+++ b/dev-vcs/git/git-2.7.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -38,16 +38,16 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
libressl mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd 
cvs subversion test"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
libressl mediawiki mediawiki-experimental +nls +pcre +perl +python ppcsha1 tk 
+threads +webdav xinetd cvs subversion test"
 
 # Common to both DEPEND and RDEPEND
 CDEPEND="
-       !libressl? ( dev-libs/openssl:0 )
-       libressl? ( dev-libs/libressl )
+       !libressl? ( dev-libs/openssl:0= )
+       libressl? ( dev-libs/libressl:= )
        sys-libs/zlib
        pcre? ( dev-libs/libpcre )
        perl? ( dev-lang/perl:=[-build(-)] )
-       tk? ( dev-lang/tk:0 )
+       tk? ( dev-lang/tk:0= )
        curl? (
                net-misc/curl
                webdav? ( dev-libs/expat )
@@ -80,7 +80,6 @@ RDEPEND="${CDEPEND}
 #   .xml/docbook  --(docbook2texi.pl)--> .texi
 #   .texi         --(makeinfo)---------> .info
 DEPEND="${CDEPEND}
-       app-arch/cpio
        doc? (
                app-text/asciidoc
                app-text/docbook2X
@@ -103,6 +102,7 @@ REQUIRED_USE="
        cgi? ( perl )
        cvs? ( perl )
        mediawiki? ( perl )
+       mediawiki-experimental? ( mediawiki )
        subversion? ( perl )
        webdav? ( curl )
        gtk? ( python )
@@ -126,24 +126,24 @@ exportmakeopts() {
        local myopts
 
        if use blksha1 ; then
-               myopts="${myopts} BLK_SHA1=YesPlease"
+               myopts+=" BLK_SHA1=YesPlease"
        elif use ppcsha1 ; then
-               myopts="${myopts} PPC_SHA1=YesPlease"
+               myopts+=" PPC_SHA1=YesPlease"
        fi
 
        if use curl ; then
-               use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+               use webdav || myopts+=" NO_EXPAT=YesPlease"
        else
-               myopts="${myopts} NO_CURL=YesPlease"
+               myopts+=" NO_CURL=YesPlease"
        fi
 
        # broken assumptions, because of broken build system ...
-       myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
-       myopts="${myopts} INSTALL=install TAR=tar"
-       myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
-       myopts="${myopts} SANE_TOOL_PATH="
-       myopts="${myopts} OLD_ICONV="
-       myopts="${myopts} NO_EXTERNAL_GREP="
+       myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+       myopts+=" INSTALL=install TAR=tar"
+       myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+       myopts+=" SANE_TOOL_PATH="
+       myopts+=" OLD_ICONV="
+       myopts+=" NO_EXTERNAL_GREP="
 
        # For svn-fe
        extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
@@ -152,55 +152,53 @@ exportmakeopts() {
        sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
 
        use iconv \
-               || myopts="${myopts} NO_ICONV=YesPlease"
+               || myopts+=" NO_ICONV=YesPlease"
        use nls \
-               || myopts="${myopts} NO_GETTEXT=YesPlease"
+               || myopts+=" NO_GETTEXT=YesPlease"
        use tk \
-               || myopts="${myopts} NO_TCLTK=YesPlease"
+               || myopts+=" NO_TCLTK=YesPlease"
        use pcre \
-               && myopts="${myopts} USE_LIBPCRE=yes" \
-               && extlibs="${extlibs} -lpcre"
+               && myopts+=" USE_LIBPCRE=yes" \
+               && extlibs+=" -lpcre"
        use perl \
-               && myopts="${myopts} INSTALLDIRS=vendor" \
-               || myopts="${myopts} NO_PERL=YesPlease"
+               && myopts+=" INSTALLDIRS=vendor" \
+               || myopts+=" NO_PERL=YesPlease"
        use python \
-               || myopts="${myopts} NO_PYTHON=YesPlease"
+               || myopts+=" NO_PYTHON=YesPlease"
        use subversion \
-               || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+               || myopts+=" NO_SVN_TESTS=YesPlease"
        use threads \
-               && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
-               || myopts="${myopts} NO_PTHREADS=YesPlease"
+               && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+               || myopts+=" NO_PTHREADS=YesPlease"
        use cvs \
-               || myopts="${myopts} NO_CVS=YesPlease"
+               || myopts+=" NO_CVS=YesPlease"
 # Disabled until ~m68k-mint can be keyworded again
 #      if [[ ${CHOST} == *-mint* ]] ; then
-#              myopts="${myopts} NO_MMAP=YesPlease"
-#              myopts="${myopts} NO_IPV6=YesPlease"
-#              myopts="${myopts} NO_STRLCPY=YesPlease"
-#              myopts="${myopts} NO_MEMMEM=YesPlease"
-#              myopts="${myopts} NO_MKDTEMP=YesPlease"
-#              myopts="${myopts} NO_MKSTEMPS=YesPlease"
+#              myopts+=" NO_MMAP=YesPlease"
+#              myopts+=" NO_IPV6=YesPlease"
+#              myopts+=" NO_STRLCPY=YesPlease"
+#              myopts+=" NO_MEMMEM=YesPlease"
+#              myopts+=" NO_MKDTEMP=YesPlease"
+#              myopts+=" NO_MKSTEMPS=YesPlease"
 #      fi
        if [[ ${CHOST} == ia64-*-hpux* ]]; then
-               myopts="${myopts} NO_NSEC=YesPlease"
+               myopts+=" NO_NSEC=YesPlease"
        fi
        if [[ ${CHOST} == *-*-aix* ]]; then
-               myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+               myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
        fi
        if [[ ${CHOST} == *-solaris* ]]; then
-               myopts="${myopts} NEEDS_LIBICONV=YesPlease"
-               myopts="${myopts} HAVE_CLOCK_MONOTONIC=1"
-               myopts="${myopts} HAVE_GETDELIM=1"
+               myopts+=" NEEDS_LIBICONV=YesPlease"
        fi
 
        has_version '>=app-text/asciidoc-8.0' \
-               && myopts="${myopts} ASCIIDOC8=YesPlease"
-       myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+               && myopts+=" ASCIIDOC8=YesPlease"
+       myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
 
        # Bug 290465:
        # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 
'st_mtim'
        [[ "${CHOST}" == *-uclibc* ]] && \
-               myopts="${myopts} NO_NSEC=YesPlease"
+               myopts+=" NO_NSEC=YesPlease"
 
        export MY_MAKEOPTS="${myopts}"
        export EXTLIBS="${extlibs}"
@@ -231,8 +229,18 @@ src_prepare() {
        # hack, needs better upstream solution
        epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
 
+       # add experimental patches to improve mediawiki support
+       # see patches for origin
+       if use mediawiki-experimental ; then
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+       fi
+
        epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
 
+       # Bug #493306, where FreeBSD 10.x merged libiconv into its libc.
+       epatch "${FILESDIR}"/git-2.5.1-freebsd-10.x-no-iconv.patch
+
        epatch_user
 
        sed -i \
@@ -301,8 +309,8 @@ src_compile() {
 
        if use perl && use cgi ; then
                git_emake \
-                       gitweb/gitweb.cgi \
-                       || die "emake gitweb/gitweb.cgi failed"
+                       gitweb \
+                       || die "emake gitweb (cgi) failed"
        fi
 
        if [[ ${CHOST} == *-darwin* ]]; then
@@ -517,7 +525,7 @@ src_install() {
 }
 
 src_test() {
-       local disabled=""
+       local disabled="" #t7004-tag.sh" #520270
        local tests_cvs="t9200-git-cvsexportcommit.sh \
                                        t9400-git-cvsserver-server.sh \
                                        t9401-git-cvsserver-crlf.sh \
@@ -633,6 +641,7 @@ pkg_postinst() {
        showpkgdeps git-instaweb \
                "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx 
)"
        echo
+       use mediawiki-experimental && ewarn "Using experimental git-mediawiki 
patches. The stability of cloned wiki filesystems is not guaranteed."
 }
 
 pkg_postrm() {

diff --git a/dev-vcs/git/git-9999-r1.ebuild b/dev-vcs/git/git-9999-r1.ebuild
index 460140c..b414783 100644
--- a/dev-vcs/git/git-9999-r1.ebuild
+++ b/dev-vcs/git/git-9999-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -38,7 +38,7 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs 
subversion test"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
mediawiki mediawiki-experimental +nls +pcre +perl +python ppcsha1 tk +threads 
+webdav xinetd cvs subversion test"
 
 # Common to both DEPEND and RDEPEND
 CDEPEND="
@@ -102,6 +102,7 @@ REQUIRED_USE="
        cgi? ( perl )
        cvs? ( perl )
        mediawiki? ( perl )
+       mediawiki-experimental? ( mediawiki )
        subversion? ( perl )
        webdav? ( curl )
        gtk? ( python )
@@ -228,6 +229,13 @@ src_prepare() {
        # hack, needs better upstream solution
        epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
 
+       # add experimental patches to improve mediawiki support
+       # see patches for origin
+       if use mediawiki-experimental ; then
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+       fi
+
        epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
 
        epatch_user
@@ -630,6 +638,7 @@ pkg_postinst() {
        showpkgdeps git-instaweb \
                "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx 
)"
        echo
+       use mediawiki-experimental && ewarn "Using experimental git-mediawiki 
patches. The stability of cloned wiki filesystems is not guaranteed."
 }
 
 pkg_postrm() {

diff --git a/dev-vcs/git/git-9999-r2.ebuild b/dev-vcs/git/git-9999-r2.ebuild
index 7172768..91378e1 100644
--- a/dev-vcs/git/git-9999-r2.ebuild
+++ b/dev-vcs/git/git-9999-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -38,7 +38,7 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs 
subversion test"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
mediawiki mediawiki-experimental +nls +pcre +perl +python ppcsha1 tk +threads 
+webdav xinetd cvs subversion test"
 
 # Common to both DEPEND and RDEPEND
 CDEPEND="
@@ -102,6 +102,7 @@ REQUIRED_USE="
        cgi? ( perl )
        cvs? ( perl )
        mediawiki? ( perl )
+       mediawiki-experimental? ( mediawiki )
        subversion? ( perl )
        webdav? ( curl )
        gtk? ( python )
@@ -228,6 +229,13 @@ src_prepare() {
        # hack, needs better upstream solution
        epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
 
+       # add experimental patches to improve mediawiki support
+       # see patches for origin
+       if use mediawiki-experimental ; then
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+       fi
+
        epatch "${FILESDIR}"/${PN}-2.2.0-svn-fe-linking.patch
 
        epatch_user
@@ -630,6 +638,7 @@ pkg_postinst() {
        showpkgdeps git-instaweb \
                "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx 
)"
        echo
+       use mediawiki-experimental && ewarn "Using experimental git-mediawiki 
patches. The stability of cloned wiki filesystems is not guaranteed."
 }
 
 pkg_postrm() {

diff --git a/dev-vcs/git/git-9999-r3.ebuild b/dev-vcs/git/git-9999-r3.ebuild
index a9feb91..b9b4d5a 100644
--- a/dev-vcs/git/git-9999-r3.ebuild
+++ b/dev-vcs/git/git-9999-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -38,7 +38,7 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
libressl mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd 
cvs subversion test"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
libressl mediawiki mediawiki-experimental +nls +pcre +perl +python ppcsha1 tk 
+threads +webdav xinetd cvs subversion test"
 
 # Common to both DEPEND and RDEPEND
 CDEPEND="
@@ -103,6 +103,7 @@ REQUIRED_USE="
        cgi? ( perl )
        cvs? ( perl )
        mediawiki? ( perl )
+       mediawiki-experimental? ( mediawiki )
        subversion? ( perl )
        webdav? ( curl )
        gtk? ( python )
@@ -231,6 +232,13 @@ src_prepare() {
        # hack, needs better upstream solution
        epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
 
+       # add experimental patches to improve mediawiki support
+       # see patches for origin
+       if use mediawiki-experimental ; then
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+       fi
+
        epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
 
        epatch_user
@@ -633,6 +641,7 @@ pkg_postinst() {
        showpkgdeps git-instaweb \
                "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx 
)"
        echo
+       use mediawiki-experimental && ewarn "Using experimental git-mediawiki 
patches. The stability of cloned wiki filesystems is not guaranteed."
 }
 
 pkg_postrm() {

diff --git a/dev-vcs/git/git-9999.ebuild b/dev-vcs/git/git-9999.ebuild
index 7a5cc55..18fa619 100644
--- a/dev-vcs/git/git-9999.ebuild
+++ b/dev-vcs/git/git-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -38,7 +38,7 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs 
subversion test"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv 
mediawiki mediawiki-experimental +nls +pcre +perl +python ppcsha1 tk +threads 
+webdav xinetd cvs subversion test"
 
 # Common to both DEPEND and RDEPEND
 CDEPEND="
@@ -102,6 +102,7 @@ REQUIRED_USE="
        cgi? ( perl )
        cvs? ( perl )
        mediawiki? ( perl )
+       mediawiki-experimental? ( mediawiki )
        subversion? ( perl )
        webdav? ( curl )
        gtk? ( python )
@@ -228,6 +229,13 @@ src_prepare() {
        # hack, needs better upstream solution
        epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
 
+       # add experimental patches to improve mediawiki support
+       # see patches for origin
+       if use mediawiki-experimental ; then
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+       fi
+
        epatch "${FILESDIR}"/${PN}-2.2.0-svn-fe-linking.patch
 
        epatch_user
@@ -630,6 +638,7 @@ pkg_postinst() {
        showpkgdeps git-instaweb \
                "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx 
)"
        echo
+       use mediawiki-experimental && ewarn "Using experimental git-mediawiki 
patches. The stability of cloned wiki filesystems is not guaranteed."
 }
 
 pkg_postrm() {

diff --git a/dev-vcs/git/metadata.xml b/dev-vcs/git/metadata.xml
index dc1473f..f80c7dd 100644
--- a/dev-vcs/git/metadata.xml
+++ b/dev-vcs/git/metadata.xml
@@ -31,6 +31,7 @@
     <flag name="gtk">Include the gitview contrib tool</flag>
     <flag name="highlight">GitWeb support for app-text/highlight</flag>
     <flag name="mediawiki">Support pulling and pushing from MediaWiki</flag>
+    <flag name="mediawiki-experimental">Add experimental patches for improved 
MediaWiki support</flag>
     <flag name="ppcsha1">Make use of a bundled routine that is optimized for 
the PPC arch</flag>
     <flag name="subversion">Include git-svn for <pkg>dev-vcs/subversion</pkg> 
support</flag>
     <flag name="tk">Include the 'gitk' and 'git gui' tools</flag>

Reply via email to