[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ipfire-development
Subject:    [PATCH] git: Add systemd file for git-daemon
From:       Stefan Schantl <stefan.schantl () ipfire ! org>
Date:       2017-01-13 11:52:31
Message-ID: 20170113115231.2335-1-stefan.schantl () ipfire ! org
[Download RAW message or body]

Add systemd unit file for a socket-based activation
of git-deamon to export the git repositories.

Fixes #10983.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 git/git.nm               | 23 ++++++++++++++++++++++-
 git/systemd/git.socket   |  9 +++++++++
 git/systemd/git@.service |  8 ++++++++
 3 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 git/systemd/git.socket
 create mode 100644 git/systemd/git@.service

diff --git a/git/git.nm b/git/git.nm
index 13f05db..9ad9bbe 100644
--- a/git/git.nm
+++ b/git/git.nm
@@ -5,7 +5,7 @@
 
 name       = git
 version    = 2.6.3
-release    = 2
+release    = 3
 
 groups     = Development/Tools
 url        = http://git-scm.com/
@@ -114,6 +114,27 @@ packages
 			%{gitcoredir}/git-daemon
 			%{mandir}/man1/git-daemon*
 			%{sharedstatedir}/git
+			%{unitdir}/git@.service
+			%{unitdir}/git.socket
+		end
+
+		script postin
+			systemctl daemon-reload >/dev/null 2>&1 || :
+		end
+
+		script preun
+			systemctl --no-reload disable git.socket >/dev/null 2>&1 || :
+			systemctl stop git.socket >/dev/null 2>&1 || :
+			systemctl stop git@.service >/dev/null 2>&1 || :
+		end
+
+		script postun
+			systemctl daemon-reload >/dev/null 2>&1 || :
+		end
+
+		script postup
+			systemctl daemon-reload >/dev/null 2>&1 || :
+			systemctl try-restart git.socket >/dev/null 2>&1 || :
 		end
 	end
 
diff --git a/git/systemd/git.socket b/git/systemd/git.socket
new file mode 100644
index 0000000..3dec01d
--- /dev/null
+++ b/git/systemd/git.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Git Activation Socket
+
+[Socket]
+ListenStream=9418
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/git/systemd/git@.service b/git/systemd/git@.service
new file mode 100644
index 0000000..185ff25
--- /dev/null
+++ b/git/systemd/git@.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Git Repositories Server Daemon
+Documentation=man:git-daemon(1)
+
+[Service]
+User=nobody
+ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git --export-all \
--user-path=public_git --syslog --inetd --verbose +StandardInput=socket
-- 
2.9.3


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic