Source: git-core
Version: 1.5.5.1-1
Severity: wishlist
Tags: patch

From: Jonathan Nieder <[EMAIL PROTECTED]>
Subject: [PATCH] prepare to move git-commands to /usr/lib

Moving the "git-<command>" binaries into /usr/lib/git-core
would result in a less cluttered /usr/bin and reveal programs
that use the hyphenated form of commands unnecessarily (the
hyphenated forms are supposed to disappear in the far future).
I don't think that Debian should make this move yet, but the
changes in debian/rules needed to support the move can happen
now.

Most uses of usr/bin in debian/rules are replaced with the
variable $(GIT_EXEC). The assumption is that git and gitk go
in usr/bin and everything else goes in the GIT_EXEC directory.

No effort has been made to avoid supplying the same filename
twice to dpkg-shlibdeps or to avoid stripping programs twice.
Buyer beware.

Signed-off-by: Jonathan Nieder <[EMAIL PROTECTED]>
---

    I have been building git locally to put the hyphenated
    binaries in /usr/lib for a few weeks now, and it generally
    works pretty well. It occured to me that some day the same
    changes might occur in the Debian packages, so I thought I
    should send this patch to avoid duplication of effort and
    (selfishly) to avoid future merge conflicts.

    This patch applies on top of the commit tagged as
    debian-1.5.5.1-1. I hope it is of some use. Please let me
    know if you have any suggestions on how to improve it. In
    particular, I am not sure how to provide a "git-am"-ready
    patch as a Debian bugreport, but I would like to.

    And thanks for packaging git! I am amazed at how quickly
    after each upstream release a new version of the Debian
    git-core package appears.

    Jonathan Nieder


 debian/rules |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/debian/rules b/debian/rules
index 6aad24d..a96a625 100755
--- a/debian/rules
+++ b/debian/rules
@@ -2,12 +2,16 @@
 
 ARCH ?=$(shell dpkg-architecture -qDEB_HOST_ARCH)
 
+# when ready, put usr/lib/git-core here
+GIT_EXEC ?=usr/bin
+
 CC =gcc
 CFLAGS =-g -Wall
 STRIP =strip
 TEST =test
-OPTS =NO_OPENSSL=1 prefix=/usr mandir=/usr/share/man INSTALLDIRS=vendor \
-  WITH_P4IMPORT=1 PYTHON_PATH=/usr/bin/python TCLTK_PATH=/usr/bin/wish8.5
+OPTS =NO_OPENSSL=1 prefix=/usr mandir=/usr/share/man gitexecdir=/$(GIT_EXEC) \
+  INSTALLDIRS=vendor WITH_P4IMPORT=1 PYTHON_PATH=/usr/bin/python \
+  TCLTK_PATH=/usr/bin/wish8.5
 
 ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
   STRIP =: strip
@@ -81,14 +85,15 @@ install-arch: deb-checkdir deb-checkuid build-arch-stamp
        install -d -m0755 '$(GIT)'-core/var/cache/git
        rm -f '$(GIT)'-core/usr/share/perl5/Error.pm
        rm -f '$(GIT)'-core/usr/share/man/man3/private-Error.3pm
-       rm -rf '$(GIT)'-core/usr/lib
+       rm -rf '$(GIT)'-core/usr/lib/perl
+       rmdir --ignore-fail-on-non-empty '$(GIT)'-core/usr/lib
        chmod 644 '$(GIT)'-core/usr/share/perl5/Git.pm
        # don't include arch, cvs, svn, email, gui tools, and gitk program
        for i in git-archimport git-cvs git-svn git-send-email gitk \
         git-gui git-citool; do \
-         rm -f '$(GIT)'-core/usr/bin/$$i*; \
+         rm -f '$(GIT)'-core/$(GIT_EXEC)/$$i*; \
        done
-       for i in '$(GIT)'-core/usr/bin/*; do \
+       for i in '$(GIT)'-core/$(GIT_EXEC)/* '$(GIT)'-core/usr/bin/git; do \
          test "`head -c2 $$i`" = '#!' || $(STRIP) -R .comment -R .note $$i; \
        done
        # don't include git-gui's lib
@@ -132,8 +137,8 @@ install-indep: build-arch-stamp build-indep-stamp
        # git-cvs, git-svn
        for i in cvs svn; do \
          rm -rf '$(GIT)'-$$i && \
-         install -d -m0755 '$(GIT)'-$$i/usr/bin && \
-         install -m0755 '$(TMP)'/usr/bin/git-$$i* '$(GIT)'-$$i/usr/bin/ && \
+         install -d -m0755 '$(GIT)'-$$i/$(GIT_EXEC) && \
+         install -m0755 '$(TMP)'/$(GIT_EXEC)/git-$$i* 
'$(GIT)'-$$i/$(GIT_EXEC)/ && \
          install -d -m0755 '$(GIT)'-$$i/usr/share/man/man1 && \
          install -m0644 '$(TMP)'/usr/share/man/man1/git-$$i* \
            '$(GIT)'-$$i/usr/share/man/man1/ && \
@@ -141,16 +146,16 @@ install-indep: build-arch-stamp build-indep-stamp
        done
        # git-arch
        rm -rf '$(GIT)'-arch
-       install -d -m0755 '$(GIT)'-arch/usr/bin
-       install -m0755 '$(TMP)'/usr/bin/git-archimport '$(GIT)'-arch/usr/bin/
+       install -d -m0755 '$(GIT)'-arch/$(GIT_EXEC)
+       install -m0755 '$(TMP)'/$(GIT_EXEC)/git-archimport 
'$(GIT)'-arch/$(GIT_EXEC)/
        install -d -m0755 '$(GIT)'-arch/usr/share/man/man1
        install -m0644 '$(TMP)'/usr/share/man/man1/git-archimport.1 \
          '$(GIT)'-arch/usr/share/man/man1/
        gzip -9 '$(GIT)'-arch/usr/share/man/man1/*.1
        # git-email
        rm -rf '$(GIT)'-email
-       install -d -m0755 '$(GIT)'-email/usr/bin
-       install -m0755 '$(TMP)'/usr/bin/git-send-email '$(GIT)'-email/usr/bin/
+       install -d -m0755 '$(GIT)'-email/$(GIT_EXEC)
+       install -m0755 '$(TMP)'/$(GIT_EXEC)/git-send-email 
'$(GIT)'-email/$(GIT_EXEC)/
        install -d -m0755 '$(GIT)'-email/usr/share/man/man1
        install -m0644 '$(TMP)'/usr/share/man/man1/git-send-email.1 \
          '$(GIT)'-email/usr/share/man/man1/
@@ -166,9 +171,9 @@ install-indep: build-arch-stamp build-indep-stamp
        ln -s /usr/bin/sv '$(GIT)'-daemon-run/etc/init.d/git-daemon
        # git-gui
        rm -rf '$(GIT)'-gui
-       install -d -m0755 '$(GIT)'-gui/usr/bin
-       install -m0755 '$(TMP)'/usr/bin/git-gui '$(GIT)'-gui/usr/bin/
-       install -m0755 '$(TMP)'/usr/bin/git-citool '$(GIT)'-gui/usr/bin/
+       install -d -m0755 '$(GIT)'-gui/$(GIT_EXEC)
+       install -m0755 '$(TMP)'/$(GIT_EXEC)/git-gui '$(GIT)'-gui/$(GIT_EXEC)/
+       install -m0755 '$(TMP)'/$(GIT_EXEC)/git-citool '$(GIT)'-gui/$(GIT_EXEC)/
        install -d -m0755 '$(GIT)'-gui/usr/share/man/man1
        for i in gui citool; do \
          install -m0644 '$(TMP)'/usr/share/man/man1/git-$$i* \
@@ -205,7 +210,7 @@ install-indep: build-arch-stamp build-indep-stamp
 binary: binary-arch binary-indep
 binary-arch: install-arch git-core.deb
        rm -f debian/substvars
-       dpkg-shlibdeps '$(GIT)'-core/usr/bin/*
+       dpkg-shlibdeps '$(GIT)'-core/$(GIT_EXEC)/* '$(GIT)'-core/usr/bin/git
        dpkg-gencontrol -isp -pgit-core -P'$(GIT)'-core
        dpkg -b '$(GIT)'-core ..
 binary-indep: install-indep git-doc.deb git-arch.deb git-cvs.deb git-svn.deb \
-- 
debian.1.5.5.1.1.234.g654af




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to