Package: git-daemon-run,git-daemon-sysvinit
Version: 1:1.7.9.1-1
Severity: important
Justification: ยง2.5: "optional packages should not conflict with each other"

Hi,

Either git-daemon-run or git-daemon-sysvinit needs to be of "Priority:
extra".  I realize the discussion leading to a choice of which one
could potentially be painful, but this is what the policy says.

How about something like this patch?

 debian/changelog                         |   32 ++++++++++++++++-
 debian/control                           |   48 +++++++++----------------
 debian/examples/inetd.conf               |    2 ++
 debian/git-daemon-run.README.Debian      |   31 ----------------
 debian/git-daemon-run.conffiles          |    2 --
 debian/git-daemon-run.postinst           |   21 -----------
 debian/git-daemon-run.postrm             |   20 -----------
 debian/git-daemon-run.prerm              |    7 ----
 debian/git-daemon-sysvinit.README.Debian |   31 ----------------
 debian/git-daemon-sysvinit.conffiles     |    2 --
 debian/git-daemon-sysvinit.postinst      |   19 ----------
 debian/git-daemon-sysvinit.postrm        |    6 ----
 debian/git-daemon-sysvinit.prerm         |   13 -------
 debian/git-daemon.README.Debian          |   47 ++++++++++++++++++++++++
 debian/git-daemon.conffiles              |    4 +++
 debian/git-daemon.default                |    2 +-
 debian/git-daemon.examples               |    1 +
 debian/git-daemon.init                   |    2 +-
 debian/git-daemon.postinst               |   22 ++++++++++++
 debian/git-daemon.postrm                 |   24 +++++++++++++
 debian/git-daemon.prerm                  |   13 +++++++
 debian/git-daemon.sv/log/run             |    7 ++++
 debian/git-daemon.sv/run                 |    6 ++++
 debian/git-daemon/log/run                |    7 ----
 debian/git-daemon/run                    |    6 ----
 debian/git.NEWS.Debian                   |   23 ++++++++++++
 debian/git.README.Debian                 |   41 +++++++++++----------
 debian/rules                             |   58 ++++++++++++++++--------------
 28 files changed, 252 insertions(+), 245 deletions(-)
 create mode 100644 debian/examples/inetd.conf
 delete mode 100644 debian/git-daemon-run.README.Debian
 delete mode 100644 debian/git-daemon-run.conffiles
 delete mode 100644 debian/git-daemon-run.postinst
 delete mode 100644 debian/git-daemon-run.postrm
 delete mode 100644 debian/git-daemon-run.prerm
 delete mode 100644 debian/git-daemon-sysvinit.README.Debian
 delete mode 100644 debian/git-daemon-sysvinit.conffiles
 delete mode 100644 debian/git-daemon-sysvinit.postinst
 delete mode 100644 debian/git-daemon-sysvinit.postrm
 delete mode 100644 debian/git-daemon-sysvinit.prerm
 create mode 100644 debian/git-daemon.README.Debian
 create mode 100644 debian/git-daemon.conffiles
 create mode 100644 debian/git-daemon.examples
 create mode 100644 debian/git-daemon.postinst
 create mode 100644 debian/git-daemon.postrm
 create mode 100644 debian/git-daemon.prerm
 create mode 100755 debian/git-daemon.sv/log/run
 create mode 100755 debian/git-daemon.sv/run
 delete mode 100755 debian/git-daemon/log/run
 delete mode 100755 debian/git-daemon/run

diff --git a/debian/changelog b/debian/changelog
index ffc5d34e..3d0784cf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-git (1:1.7.9.2-0.1) unstable; urgency=low
+git (1:1.7.9.2-0.1) experimental; urgency=low
 
   * new upstream point release.
     * commit: skip intent-to-add entries instead of erroring out.
@@ -9,6 +9,36 @@ git (1:1.7.9.2-0.1) unstable; urgency=low
       the command line instead of uninitialized memory.
     * checkout -b: allow switching out of an unborn branch (closes:
       #506480).
+  * move git-daemon to a separate package and consolidate git:// service
+    configuration there.
+    * debian/control: new package git-daemon.  Suggests: runit | inetd;
+      Conflicts and Replaces: git-daemon-run, git-daemon-sysvinit;
+      Breaks and Replaces: git (<< 1:1.7.9.2-0.1).  Package git
+      Recommends and git-all Depends: git-daemon.
+    * debian/control, debian/git-daemon-*, debian/rules: eliminate
+      git-daemon-run and git-daemon-sysvinit packages.
+    * debian/git-daemon, debian/rules: rename debian/git-daemon/ to
+      debian/git-daemon.sv/.
+    * debian/rules: install /usr/lib/git-core/git-daemon, runit service,
+      and init script to git-daemon package; don't include
+      /usr/lib/git-core/git-daemon in the git package; install
+      /etc/init.d/git-daemon with mode 644, not 755.
+    * debian/git.README.Debian, debian/git-daemon.README.Debian: explain
+      how to enable git:// access with runit, sysvinit, or inetd.
+    * debian/examples/inetd.conf: new; example inetd.conf snippet for
+      git-daemon.
+    * debian/git-daemon.init: use presence of git-daemon binary
+      instead of sentinel file to check if the package is installed.
+    * debian/git-daemon.postinst: new; start or restart git-daemon
+      runit service if the user enabled it with "update-service --add
+      git-daemon"; start or restart git-daemon sysvinit service if the
+      user enabled it with "chmod +x /etc/init.d/git-daemon".
+    * debian/git-daemon.prerm: new; disable git-daemon service when
+      appropriate if enabled.
+    * debian/git-daemon.postrm: new; remove: remove rc.d symlinks to
+      cleanly remove sysvinit service; purge: down runit service,
+      remove its logs, and remove the gitlog user.
+    * debian/git.NEWS.Debian: advertise this change.
 
  -- Jonathan Nieder <jrnie...@gmail.com>  Wed, 22 Feb 2012 22:52:20 -0600
 
diff --git a/debian/control b/debian/control
index 21b77456..fb105754 100644
--- a/debian/control
+++ b/debian/control
@@ -21,8 +21,8 @@ Architecture: any
 Depends: ${shlibs:Depends}, perl-modules, liberror-perl,
  git-man (>> ${source:Upstream-Version}), git-man (<< 
${source:Upstream-Version}-.),
  libc6.1 (>= 2.10.2-6) [ia64]
-Recommends: patch, less, rsync, ssh-client
-Suggests: git-daemon-run | git-daemon-sysvinit,
+Recommends: git-daemon, patch, less, rsync, ssh-client
+Suggests:
  git-doc, git-el, git-arch, git-cvs, git-svn, git-email, git-gui, gitk, gitweb
 Replaces: gitweb (<< 1:1.7.4~rc1),
  cogito (<< 0.16rc2-0), git-core (<< 1:1.7.0.4-1.)
@@ -181,10 +181,15 @@ Description: fast, scalable, distributed revision control 
system (email add-on)
  This package provides the git-send-email program for sending series of
  patch emails.
 
-Package: git-daemon-run
-Architecture: all
-Depends: git (>> ${source:Upstream-Version}), git (<< 
${source:Upstream-Version}-.), runit (>= 1.8.0-2), adduser
-Conflicts: git-daemon-sysvinit
+Package: git-daemon
+Architecture: any
+Depends: ${shlibs:Depends},
+ git (>> ${source:Upstream-Version}), git (<< ${source:Upstream-Version}-.),
+ adduser
+Suggests: runit (>= 1.8.0-2) | inet-superserver
+Conflicts: git-daemon-run, git-daemon-sysvinit
+Breaks: git (<< 1:1.7.9.2-0.1)
+Replaces: git-daemon-run, git-daemon-sysvinit, git (<< 1:1.7.9.2-0.1)
 Description: fast, scalable, distributed revision control system (git-daemon 
service)
  Git is popular version control system designed to handle very large
  projects with speed and efficiency; it is used for many high profile
@@ -195,29 +200,10 @@ Description: fast, scalable, distributed revision control 
system (git-daemon ser
  revision tracking capabilities, not dependent on network access or a
  central server.
  .
- git-daemon, as provided by the git package, is a simple server for git
- repositories, ideally suited for read-only updates, i.e. pulling from git
- repositories through the network.  This package provides a runit service
- for running git-daemon permanently.
-
-Package: git-daemon-sysvinit
-Architecture: all
-Depends: git (>> ${source:Upstream-Version}), git (<< 
${source:Upstream-Version}-.), adduser
-Conflicts: git-daemon-run
-Description: fast, scalable, distributed revision control system (git-daemon 
service)
- Git is popular version control system designed to handle very large
- projects with speed and efficiency; it is used for many high profile
- open source projects, most notably the Linux kernel.
- .
- Git falls in the category of distributed source code management tools.
- Every Git working directory is a full-fledged repository with full
- revision tracking capabilities, not dependent on network access or a
- central server.
- .
- git-daemon, as provided by the git package, is a simple server for git
- repositories, ideally suited for read-only updates, i.e. pulling from git
- repositories through the network.  This package provides a sysvinit service
- for running git-daemon permanently.
+ This package provides a simple server for git repositories, ideally
+ suited for read-only updates, i.e. pulling from git repositories
+ through the network. It can be used as a runit service, as a sysvinit
+ service, or through inetd.
 
 Package: git-gui
 Architecture: all
@@ -317,8 +303,8 @@ Description: fast, scalable, distributed revision control 
system (web interface)
 Package: git-all
 Architecture: all
 Depends: git (>> ${source:Upstream-Version}), git (<< 
${source:Upstream-Version}-.),
- git-doc, git-el, git-arch, git-cvs, git-svn, git-email, git-gui, gitk, gitweb
-Recommends: git-daemon-run | git-daemon-sysvinit
+ git-doc, git-el, git-arch, git-cvs, git-svn, git-email, git-gui, gitk, gitweb,
+ git-daemon
 Description: fast, scalable, distributed revision control system (all 
subpackages)
  Git is popular version control system designed to handle very large
  projects with speed and efficiency; it is used for many high profile
diff --git a/debian/examples/inetd.conf b/debian/examples/inetd.conf
new file mode 100644
index 00000000..a73c92cb
--- /dev/null
+++ b/debian/examples/inetd.conf
@@ -0,0 +1,2 @@
+git stream tcp4 nowait nobody /usr/bin/git git daemon --inetd 
--base-path=/srv/git
+git stream tcp6 nowait nobody /usr/bin/git git daemon --inetd 
--base-path=/srv/git
diff --git a/debian/git-daemon-run.README.Debian 
b/debian/git-daemon-run.README.Debian
deleted file mode 100644
index 943096aa..00000000
--- a/debian/git-daemon-run.README.Debian
+++ /dev/null
@@ -1,31 +0,0 @@
-git-daemon-run for Debian
--------------------------
-
-This package enables a git-daemon service.  This allows people to use a
-git:// URL to access your repositories.
-
-After installing this package, wait five seconds for the git-daemon
-service to be picked up by runit, and check its status and logs:
-
- sv stat git-daemon
- cat /var/log/git-daemon/current
-
-See the sv(8) program on how to manage the service, or, alternatively,
-create a symbolic link /etc/init.d/git-daemon pointing to /usr/bin/sv to
-have an LSB compatible interface to control it:
-
- ln -s /usr/bin/sv /etc/init.d/git-daemon
- /etc/init.d/git-daemon status
-
-The git daemon by default looks into the directory /var/cache/git/ for
-repositories (this is configured in /etc/sv/git-daemon/run).  It expects
-the repositories' .git subdirectories in that directory, symlinks
-pointing to the corresponding subdirectories in the repositories are just
-fine, e.g.:
-
- ln -s ~pape/git/foo/.git /var/cache/git/foo.git
-
-This makes 'git-clone git://git.example.org/git/foo' to clone the foo
-repository on remote machines work.
-
- -- Gerrit Pape <p...@smarden.org>  Sun, 03 Jun 2007 09:51:53 +0000
diff --git a/debian/git-daemon-run.conffiles b/debian/git-daemon-run.conffiles
deleted file mode 100644
index 1278a069..00000000
--- a/debian/git-daemon-run.conffiles
+++ /dev/null
@@ -1,2 +0,0 @@
-/etc/sv/git-daemon/run
-/etc/sv/git-daemon/log/run
diff --git a/debian/git-daemon-run.postinst b/debian/git-daemon-run.postinst
deleted file mode 100644
index 8994c615..00000000
--- a/debian/git-daemon-run.postinst
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-set -e
-
-test "$1" = 'configure' || exit 0
-
-getent passwd gitlog >/dev/null || \
-  adduser --system --home /nonexistent --no-create-home gitlog
-getent passwd gitdaemon >/dev/null || \
-  adduser --system --home /nonexistent --no-create-home gitdaemon
-
-test -z "$2" || dpkg --compare-versions "$2" gt '1:1.5.4.2-1' || {
-  update-service --remove /etc/sv/git-daemon 2>/dev/null || :
-  sleep 6
-  set "$1"
-}
-
-# enable git-daemon service
-update-service --add /etc/sv/git-daemon
-
-# restart git-daemon service if it was running
-test -z "$2" || sv -v term git-daemon || :
diff --git a/debian/git-daemon-run.postrm b/debian/git-daemon-run.postrm
deleted file mode 100644
index 09c9bfd5..00000000
--- a/debian/git-daemon-run.postrm
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-set -e
-
-test "$1" = 'purge' || exit 0
-
-sv down /etc/sv/git-daemon 2>/dev/null || :
-sv down /etc/sv/git-daemon/log 2>/dev/null || :
-sv force-shutdown /etc/sv/git-daemon 2>/dev/null || :
-sv force-stop /etc/sv/git-daemon/log 2>/dev/null || :
-rm -rf /etc/sv/git-daemon/supervise /etc/sv/git-daemon/log/supervise
-rm -rf /var/lib/supervise/git-daemon /var/lib/supervise/git-daemon.log
-
-for i in '@*' current config lock state; do
-  rm -f /var/log/git-daemon/$i
-done
-rmdir /var/log/git-daemon || :
-
-getent passwd gitlog >/dev/null || exit 0
-! deluser --version >/dev/null 2>&1 || exec deluser -f gitlog
-echo 'deluser program not available, not removing system user "gitlog".' >&2
diff --git a/debian/git-daemon-run.prerm b/debian/git-daemon-run.prerm
deleted file mode 100644
index 41f7561f..00000000
--- a/debian/git-daemon-run.prerm
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-set -e
-
-test "$1" = 'remove' || test "$1" = 'deconfigure' || \
-  test "$1" = 'failed-upgrade' || exit 0
-
-update-service --remove /etc/sv/git-daemon || :
diff --git a/debian/git-daemon-sysvinit.README.Debian 
b/debian/git-daemon-sysvinit.README.Debian
deleted file mode 100644
index 320d7001..00000000
--- a/debian/git-daemon-sysvinit.README.Debian
+++ /dev/null
@@ -1,31 +0,0 @@
-git-daemon-sysvinit for Debian
-------------------------------
-
-This package enables a git-daemon service.  This allows people to use a
-git:// URL to access your repositories.
-
-After installing this package, the daemon needs to be enabled in
-/etc/default/git-daemon by setting:
-
-  GIT_DAEMON_ENABLE=false
-
-to:
-
-  GIT_DAEMON_ENABLE=true
-
-After that, the git daemon can be started with:
-
-  # /etc/init.d/git-daemon start
-
-The git daemon by default looks into the directory /var/cache/git/ for
-repositories (this is configured in /etc/default/git-daemon).  It expects
-the repositories' .git subdirectories in that directory, symlinks
-pointing to the corresponding subdirectories in the repositories are just
-fine, e.g.:
-
- ln -s ~daniel/git/foo/.git /var/cache/git/foo.git
-
-This makes 'git-clone git://git.example.org/git/foo' to clone the foo
-repository on remote machines work.
-
- -- Daniel Baumann <dan...@debian.org>  Tue, 19 Oct 2010 00:54:58 +0200
diff --git a/debian/git-daemon-sysvinit.conffiles 
b/debian/git-daemon-sysvinit.conffiles
deleted file mode 100644
index c626099a..00000000
--- a/debian/git-daemon-sysvinit.conffiles
+++ /dev/null
@@ -1,2 +0,0 @@
-/etc/default/git-daemon
-/etc/init.d/git-daemon
diff --git a/debian/git-daemon-sysvinit.postinst 
b/debian/git-daemon-sysvinit.postinst
deleted file mode 100644
index d186c68f..00000000
--- a/debian/git-daemon-sysvinit.postinst
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-set -e
-
-test "$1" = 'configure' || exit 0
-
-getent passwd gitdaemon >/dev/null || \
-  adduser --system --home /nonexistent --no-create-home gitdaemon
-
-if [ -x "/etc/init.d/git-daemon" ]; then
-       # enable git-daemon service
-       update-rc.d git-daemon defaults >/dev/null
-
-       # restart git-daemon service if it was running
-       if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
-               invoke-rc.d git-daemon start || exit $?
-       else
-               /etc/init.d/git-daemon start || exit $?
-       fi
-fi
diff --git a/debian/git-daemon-sysvinit.postrm 
b/debian/git-daemon-sysvinit.postrm
deleted file mode 100644
index f195c2cf..00000000
--- a/debian/git-daemon-sysvinit.postrm
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-set -e
-
-test "$1" = 'remove' || exit 0
-
-update-rc.d git-daemon remove >/dev/null
diff --git a/debian/git-daemon-sysvinit.prerm b/debian/git-daemon-sysvinit.prerm
deleted file mode 100644
index c9a6a6a8..00000000
--- a/debian/git-daemon-sysvinit.prerm
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-set -e
-
-test "$1" = 'remove' || test "$1" = 'deconfigure' || \
-  test "$1" = 'failed-upgrade' || exit 0
-
-if [ -x "/etc/init.d/git-daemon" ]; then
-       if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
-               invoke-rc.d git-daemon stop || exit $?
-       else
-               /etc/init.d/git-daemon stop || exit $?
-       fi
-fi
diff --git a/debian/git-daemon.README.Debian b/debian/git-daemon.README.Debian
new file mode 100644
index 00000000..4f909632
--- /dev/null
+++ b/debian/git-daemon.README.Debian
@@ -0,0 +1,47 @@
+git daemon for Debian
+---------------------
+
+This document explains how to enable a git-daemon service, allowing
+people to use a git:// URL to access your repositories.  There are
+three methods.
+
+1. To enable git-daemon as a supervised service, install the runit
+package, run
+
+ update-service --add /etc/sv/git-daemon
+
+wait five seconds for the git-daemon service to be picked up, and
+check its status and logs:
+
+ sv stat git-daemon
+ cat /var/log/git-daemon/current
+
+See the sv(8) program on how to manage the service.
+
+2. To enable git-daemon as a sysvinit service, run
+
+ chmod +x /etc/init.d/git-daemon
+ dpkg-reconfigure git-daemon
+
+Logs go to syslog.  See the service(8) command to manage the service.
+
+3. To configure inetd(8) to launch a git-daemon on demand, run
+
+ cat >>/etc/inetd.conf <<EOF
+git stream tcp4 nowait nobody /usr/bin/git git daemon --inetd 
--base-path=/srv/git
+git stream tcp6 nowait nobody /usr/bin/git git daemon --inetd 
--base-path=/srv/git
+EOF
+
+The git daemon by default looks into the directory /var/cache/git/ for
+repositories (this is configured in /etc/sv/git-daemon/run,
+/etc/default/git-daemon, or /etc/inetd.conf, respectively).  It expects
+the repositories' .git subdirectories in that directory.  Symlinks
+pointing to the corresponding subdirectories in the repositories are just
+fine, e.g.:
+
+ ln -s ~pape/git/foo/.git /var/cache/git/foo.git
+
+This makes 'git clone git://git.example.org/git/foo' to clone the foo
+repository on remote machines work.
+
+ -- Jonathan Nieder <jrnie...@gmail.com>  Sun, 26 Feb 2012 00:06:10 -0600
diff --git a/debian/git-daemon.conffiles b/debian/git-daemon.conffiles
new file mode 100644
index 00000000..dcb18094
--- /dev/null
+++ b/debian/git-daemon.conffiles
@@ -0,0 +1,4 @@
+/etc/sv/git-daemon/run
+/etc/sv/git-daemon/log/run
+/etc/init.d/git-daemon
+/etc/default/git-daemon
diff --git a/debian/git-daemon.default b/debian/git-daemon.default
index 20208055..9104e338 100644
--- a/debian/git-daemon.default
+++ b/debian/git-daemon.default
@@ -6,7 +6,7 @@
 # This is a POSIX shell fragment
 #
 
-GIT_DAEMON_ENABLE=false
+GIT_DAEMON_ENABLE=true
 GIT_DAEMON_USER=gitdaemon
 GIT_DAEMON_DIRECTORY=/var/cache/git
 
diff --git a/debian/git-daemon.examples b/debian/git-daemon.examples
new file mode 100644
index 00000000..f20ecb78
--- /dev/null
+++ b/debian/git-daemon.examples
@@ -0,0 +1 @@
+debian/examples/inetd.conf
diff --git a/debian/git-daemon.init b/debian/git-daemon.init
index 0e97c431..a1ecbde1 100644
--- a/debian/git-daemon.init
+++ b/debian/git-daemon.init
@@ -20,7 +20,7 @@ PIDFILE=/var/run/$NAME.pid
 SCRIPTNAME=/etc/init.d/$NAME
 
 # Exit if the package is not installed
-[ -e /usr/share/git-core/sysvinit/sentinel ] || exit 0
+[ -x $DAEMON ] || exit 0
 
 # Read configuration variable file if it is present
 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
diff --git a/debian/git-daemon.postinst b/debian/git-daemon.postinst
new file mode 100644
index 00000000..e0118c57
--- /dev/null
+++ b/debian/git-daemon.postinst
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+test "$1" = 'configure' || exit 0
+
+getent passwd gitlog >/dev/null || \
+  adduser --system --home /nonexistent --no-create-home gitlog
+getent passwd gitdaemon >/dev/null || \
+  adduser --system --home /nonexistent --no-create-home gitdaemon
+
+if test -e /etc/service/git-daemon; then
+  # supervised git-daemon service enabled
+  # restart it if it was running
+  test -z "$2" || sv -v term git-daemon || :
+fi
+
+if test -x /etc/init.d/git-daemon; then
+  # init script enabled
+  # set runlevels, and restart it if it was running
+  update-rc.d git-daemon defaults
+  invoke-rc.d git-daemon restart
+fi
diff --git a/debian/git-daemon.postrm b/debian/git-daemon.postrm
new file mode 100644
index 00000000..2c41b7a4
--- /dev/null
+++ b/debian/git-daemon.postrm
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+
+test "$1" = purge || exit 0
+
+update-rc.d git-daemon remove >/dev/null
+
+if test -e /etc/sv/git-daemon; then
+  sv down /etc/sv/git-daemon 2>/dev/null || :
+  sv down /etc/sv/git-daemon/log 2>/dev/null || :
+  sv force-shutdown /etc/sv/git-daemon 2>/dev/null || :
+  sv force-stop /etc/sv/git-daemon/log 2>/dev/null || :
+fi
+rm -rf /etc/sv/git-daemon/supervise /etc/sv/git-daemon/log/supervise
+rm -rf /var/lib/supervise/git-daemon /var/lib/supervise/git-daemon.log
+
+for i in '@*' current config lock state; do
+  rm -f /var/log/git-daemon/$i
+done
+! test -e /var/log/git-daemon || rmdir /var/log/git-daemon || :
+
+getent passwd gitlog >/dev/null || exit 0
+! deluser --version >/dev/null 2>&1 || exec deluser -f gitlog
+echo 'deluser program not available, not removing system user "gitlog".' >&2
diff --git a/debian/git-daemon.prerm b/debian/git-daemon.prerm
new file mode 100644
index 00000000..772818b7
--- /dev/null
+++ b/debian/git-daemon.prerm
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -e
+
+test "$1" = 'remove' || test "$1" = 'deconfigure' ||
+  test "$1" = 'failed-upgrade' || exit 0
+
+if test -e /etc/service/git-daemon; then
+  update-service --remove /etc/sv/git-daemon
+fi
+
+if test -x /etc/init.d/git-daemon; then
+  invoke-rc.d git-daemon stop
+fi
diff --git a/debian/git-daemon.sv/log/run b/debian/git-daemon.sv/log/run
new file mode 100755
index 00000000..eed4ed7e
--- /dev/null
+++ b/debian/git-daemon.sv/log/run
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+
+LOG=/var/log/git-daemon
+
+test -d "$LOG" || mkdir -p -m2750 "$LOG" && chown gitlog:adm "$LOG"
+exec chpst -ugitlog svlogd -tt "$LOG"
diff --git a/debian/git-daemon.sv/run b/debian/git-daemon.sv/run
new file mode 100755
index 00000000..ef24724b
--- /dev/null
+++ b/debian/git-daemon.sv/run
@@ -0,0 +1,6 @@
+#!/bin/sh
+exec 2>&1
+echo 'git-daemon starting.'
+exec chpst -ugitdaemon \
+  "$(git --exec-path)"/git-daemon --verbose --reuseaddr \
+    --base-path=/var/cache /var/cache/git
diff --git a/debian/git-daemon/log/run b/debian/git-daemon/log/run
deleted file mode 100755
index eed4ed7e..00000000
--- a/debian/git-daemon/log/run
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-set -e
-
-LOG=/var/log/git-daemon
-
-test -d "$LOG" || mkdir -p -m2750 "$LOG" && chown gitlog:adm "$LOG"
-exec chpst -ugitlog svlogd -tt "$LOG"
diff --git a/debian/git-daemon/run b/debian/git-daemon/run
deleted file mode 100755
index ef24724b..00000000
--- a/debian/git-daemon/run
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-exec 2>&1
-echo 'git-daemon starting.'
-exec chpst -ugitdaemon \
-  "$(git --exec-path)"/git-daemon --verbose --reuseaddr \
-    --base-path=/var/cache /var/cache/git
diff --git a/debian/git.NEWS.Debian b/debian/git.NEWS.Debian
index e7341d69..90aa9601 100644
--- a/debian/git.NEWS.Debian
+++ b/debian/git.NEWS.Debian
@@ -1,3 +1,26 @@
+git (1:1.7.9.2-0.1) experimental; urgency=low
+
+  The git daemon has been moved to the new git-daemon package, which
+  conflicts with and replaces git-daemon-run and git-daemon-sysvinit.
+  If you were using git-daemon-run or git-daemon-sysvinit before, you
+  may need to re-enable the service.
+
+  For git-daemon-run:
+
+   # update-service --add /etc/sv/git-daemon
+
+  For git-daemon-sysvinit:
+
+   # chmod +x /etc/init.d/git-daemon
+   # dpkg-reconfigure git-daemon
+
+  You may also want to mark the daemon as manually installed if you are
+  using it.
+
+   # apt-mark manual git-daemon
+
+ -- Jonathan Nieder <jrnie...@gmail.com>  Sat, 25 Feb 2012 23:47:53 -0600
+
 git (1:1.7.0.4-2~exp0) experimental; urgency=low
 
   The Debian package 'git-core' has been renamed to 'git'.  Before
diff --git a/debian/git.README.Debian b/debian/git.README.Debian
index 101d086c..adf5704f 100644
--- a/debian/git.README.Debian
+++ b/debian/git.README.Debian
@@ -4,32 +4,34 @@ Git for Debian
 When setting up a git.example.org server, there are several things to
 configure to make everything work nicely together.  All this is optional.
 
-1. Run a git-daemon.  This allows people to use a git:// URL to access your
-repositories.  This package provides the git-daemon program, to enable a
-git-daemon service, configure inetd(8) to launch it on demand, or install the
-git-daemon-run package to run it permanently:
- cat >> /etc/inetd.conf <<EOF
-git stream tcp4 nowait nobody /usr/bin/git git daemon --inetd 
--base-path=/srv/git
-git stream tcp6 nowait nobody /usr/bin/git git daemon --inetd 
--base-path=/srv/git
-EOF
+1. Run a git-daemon.  This allows people to use a git:// URL to access
+your repositories.  Install the git-daemon package:
 
-Or:
- apt-get install git-daemon-run
+ apt-get install git-daemon
 
-Wait five seconds for the service to be picked up, and check its status and
-logs:
+Run one of:
 
- sv stat git-daemon
- cat /var/log/git-daemon/current
+ # supervised service
+ apt-get install runit
+ update-service --add /etc/sv/git-daemon
+
+ # sysvinit service
+ chmod +x /etc/init.d/git-daemon
+ dpkg-reconfigure git-daemon
+
+ # launch git-daemon on demand
+ apt-get install openbsd-inetd
+ cat /usr/share/doc/git-daemon/examples/inetd.conf >>/etc/inetd.conf
 
 The git daemon by default looks into the directory /var/cache/git/ for
-repositories (this is configured in /etc/sv/git-daemon/run).  It expects
-the repositories' .git subdirectories in /var/cache/git/, symlinks pointing
+repositories (this is configured in /etc/sv/git-daemon/run,
+/etc/default/git-daemon, or /etc/inetd.conf, respectively).  It expects
+the repositories' .git subdirectories in /var/cache/git/.  Symlinks pointing
 to the corresponding subdirectories in the repositories are just fine, e.g.:
 
  ln -s ~pape/git/foo/.git /var/cache/git/foo.git
 
-Now git-clone git://git.example.org/git/repo will work.
+Now 'git clone git://git.example.org/git/repo' will work.
 
 2. Install rsync.  This allows people to use rsync:// URLs to access your
 repositories.  You then need to add a stanza to /etc/rsyncd.conf that looks
@@ -39,7 +41,7 @@ like this:
     path = /var/cache/git
     readonly = yes
 
-Now git-clone rsync://git.example.org/git/repo will work.
+Now 'git clone rsync://git.example.org/git/repo' will work.
 
 3. Configure a web server for git.  This allows people to use a http:// URL
 to access your repositories.
@@ -62,8 +64,9 @@ configuration that looks like this:
     RedirectMatch permanent "^/~(.*)$" "http://example.org/~$1"; 
 </VirtualHost>
 
-Now git clone http://git.example.org/git/repo will work.  And if you
+Now 'git clone http://git.example.org/git/repo' will work.  And if you
 installed the gitweb package, http://git.example.org/ now will display a
 list of repositories, making them accessible through a web browser.
 
  -- Gerrit Pape <p...@smarden.org>  Fri, 15 Sep 2006 09:19:37 +0000
+updated by Jonathan Nieder <jrnie...@gmail.com>  Sun, 26 Feb 2012 00:06:41 
-0600
diff --git a/debian/rules b/debian/rules
index 4894bf89..ac1f0291 100755
--- a/debian/rules
+++ b/debian/rules
@@ -70,22 +70,42 @@ clean: deb-checkdir
        rm -f patch-stamp build-arch-stamp build-indep-stamp
        rm -rf '$(GIT)' '$(GIT)'-doc '$(GIT)'-arch '$(GIT)'-cvs
        rm -rf '$(GIT)'-svn '$(GIT)'-email '$(GIT)'-el
-       rm -rf '$(GIT)'-daemon-run '$(GIT)'-daemon-sysvinit '$(GIT)'-gui
+       rm -rf '$(GIT)'-daemon '$(GIT)'-gui
        rm -rf '$(GIT)'k '$(GIT)'web '$(GIT)'-all '$(GIT)'-man '$(GIT)'-core
        rm -f debian/files debian/substvars changelog
 
 install: install-arch install-indep
 install-arch: deb-checkdir deb-checkuid build-arch-stamp
+       rm -rf '$(TMP)'
+       install -d -m0755 '$(TMP)'/usr/bin
+       DESTDIR='$(TMP)' $(MAKE) install $(OPTS)
+       # git-daemon
+       rm -rf '$(GIT)'-daemon
+       install -d -m0755 '$(GIT)'-daemon/usr/lib/git-core
+       install -m0755 '$(TMP)'/usr/lib/git-core/git-daemon \
+         '$(GIT)'-daemon/usr/lib/git-core
+       # runit service
+       install -d -m0755 '$(GIT)'-daemon/etc/sv/git-daemon/log
+       install -m0755 debian/git-daemon.sv/run \
+         '$(GIT)'-daemon/etc/sv/git-daemon/run
+       install -m0755 debian/git-daemon.sv/log/run \
+         '$(GIT)'-daemon/etc/sv/git-daemon/log/run
+       # sysv-style init script
+       install -d -m0755 '$(GIT)'-daemon/etc/init.d
+       install -m0644 debian/git-daemon.init \
+         '$(GIT)'-daemon/etc/init.d/git-daemon
+       install -d -m0755 '$(GIT)'-daemon/etc/default
+       install -m0644 debian/git-daemon.default \
+         '$(GIT)'-daemon/etc/default/git-daemon
        # git
        rm -rf '$(GIT)'
-       install -d -m0755 '$(GIT)'/usr/bin
-       DESTDIR='$(GIT)' $(MAKE) install $(OPTS)
+       cp -a '$(TMP)' '$(GIT)'
        install -d -m0755 '$(GIT)'/var/cache/git
        rm -f '$(GIT)'/usr/share/perl5/Error.pm
        rm -rf '$(GIT)'/usr/share/man
        chmod 644 '$(GIT)'/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 \
+       # don't include arch, cvs, daemon, svn, email, gui tools, and gitk 
program
+       for i in git-archimport git-cvs git-daemon git-svn git-send-email \
         git-gui git-citool; do \
          rm -f '$(GIT)'/usr/lib/git-core/$$i*; \
        done
@@ -192,25 +212,6 @@ install-indep-real: build-arch-stamp build-indep-stamp
        install -m0644 '$(TMP)'/usr/share/man/man1/git-send-email.1 \
          '$(GIT)'-email/usr/share/man/man1/
        gzip -9 '$(GIT)'-email/usr/share/man/man1/*.1
-       # git-daemon-run
-       rm -rf '$(GIT)'-daemon-run
-       install -d -m0755 '$(GIT)'-daemon-run/etc/sv/git-daemon/log
-       install -m0755 debian/git-daemon/run \
-         '$(GIT)'-daemon-run/etc/sv/git-daemon/run
-       install -m0755 debian/git-daemon/log/run \
-         '$(GIT)'-daemon-run/etc/sv/git-daemon/log/run
-       # git-daemon-sysvinit
-       rm -rf '$(GIT)'-daemon-sysvinit
-       install -d -m0755 '$(GIT)'-daemon-sysvinit/etc/init.d
-       install -m0755 debian/git-daemon.init \
-         '$(GIT)'-daemon-sysvinit/etc/init.d/git-daemon
-       install -d -m0755 '$(GIT)'-daemon-sysvinit/etc/default
-       install -m0644 debian/git-daemon.default \
-         '$(GIT)'-daemon-sysvinit/etc/default/git-daemon
-       install -d -m0755 '$(GIT)'-daemon-sysvinit/usr/share/git-core/sysvinit
-       >'$(GIT)'-daemon-sysvinit/usr/share/git-core/sysvinit/sentinel
-       chmod 0644 \
-         '$(GIT)'-daemon-sysvinit/usr/share/git-core/sysvinit/sentinel
        # git-el
        rm -rf '$(GIT)'-el
        install -m0644 -D debian/git-el.emacsen-startup \
@@ -279,17 +280,20 @@ install-indep-real: build-arch-stamp build-indep-stamp
        test -r changelog || ln -s debian/changelog.upstream changelog
 
 binary: binary-arch binary-indep
-binary-arch: install-arch git.deb
+binary-arch: install-arch git.deb git-daemon.deb
        rm -f debian/substvars
        dpkg-shlibdeps '$(GIT)'/usr/bin/* '$(GIT)'/usr/lib/git-core/*
        dpkg-gencontrol -isp -pgit -P'$(GIT)'
        dpkg -b '$(GIT)' ..
+       rm -f debian/substvars
+       dpkg-shlibdeps '$(GIT)'-daemon/usr/lib/git-core/git-daemon
+       dpkg-gencontrol -isp -pgit-daemon -P'$(GIT)'-daemon
+       dpkg -b '$(GIT)'-daemon ..
 binary-indep: install-indep git-doc.deb git-arch.deb git-cvs.deb git-svn.deb \
-         git-daemon-run.deb git-daemon-sysvinit.deb \
          git-email.deb git-gui.deb gitk.deb gitweb.deb \
          git-all.deb git-el.deb git-man.deb git-core.deb-DEBIAN
        rm -f debian/substvars
-       for i in -doc -arch -cvs -svn -daemon-run -daemon-sysvinit \
+       for i in -doc -arch -cvs -svn \
         -email -gui k web -all -core -el -man; do \
          dpkg-gencontrol -isp -pgit$$i -P'$(GIT)'$$i && \
          dpkg -b '$(GIT)'$$i .. || exit 1; \
-- 
1.7.9.2




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to