Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=10b12627ec61acffcbe8b6954efdddc11d20a0c8

commit 10b12627ec61acffcbe8b6954efdddc11d20a0c8
Author: James Buren <[email protected]>
Date:   Sun Jul 29 13:27:45 2012 -0500

partimage-0.6.9-3-x86_64
* convert to systemd schema

diff --git a/source/apps-extra/partimage/FrugalBuild 
b/source/apps-extra/partimage/FrugalBuild
index 42f9f23..d8fbf36 100644
--- a/source/apps-extra/partimage/FrugalBuild
+++ b/source/apps-extra/partimage/FrugalBuild
@@ -4,16 +4,20 @@

pkgname=partimage
pkgver=0.6.9
-pkgrel=2
+pkgrel=3
pkgdesc="a Linux/UNIX utility which saves partitions in many formats to an 
image file."
_F_sourceforge_ext=".tar.bz2"
Finclude sourceforge
depends=('bzip2' 'openssl>=1.0.0' 'newt' 'zlib' 'libstdc++')
-backup=(etc/partimaged/{partimagedusers,servercert.cnf})
+backup=(etc/partimaged/{partimagedusers,servercert.cnf} 
etc/sysconfig/partimaged)
groups=('apps-extra')
archs=('i686' 'x86_64')
up2date="lynx -dump http://www.partimage.org/Download|grep -om 1 
'partimage-\(.*\).tar.bz2'|sed 's/.*-\(.*\).t.*/\1/'"
-source=($source rc.partimaged servercert.cnf)
+source=($source rc.partimaged servercert.cnf partimaged-setup 
partimaged.service partimaged partimage-0.6.9-zlib-1.2.6.patch)
+_F_systemd_scriptlet="$pkgname.install"
+_F_sysvinit_units=(partimaged)
+_F_systemd_units=(partimaged=)
+Finclude systemd

build()
{
@@ -32,10 +36,18 @@ build()
Ffile /etc/partimaged/servercert.cnf
Fmkdir /var/lib/partimage
chown 45.root $Fdestdir/var/lib/partimage
+       Ffile /etc/sysconfig/partimaged
+       Fexe /usr/sbin/partimaged-setup
+       Ffile /lib/systemd/system/partimaged.service
+       Fgenscriptlet
}

# optimization OK

sha1sums=('3b9804b2289d7876835042a144d5fd1949aef1a4' \
'53ae1ca5dd5d9e56d77611bf09858e3d8a17fd2f' \
-          'c93b7353b36a57e3f1f6c29005d033a634d2944f')
+          'c93b7353b36a57e3f1f6c29005d033a634d2944f' \
+          'a04e5a0257acdb652dd8f6c736eb23251e4f821e' \
+          '19960b5b5a227a587c2f44d25c83d9e5b3094622' \
+          'bb2cbe51314fdf12da63796814211f00bb7e4387' \
+          'f34eb04ba51bf1d0caec375625c239892647dd55')
diff --git a/source/apps-extra/partimage/partimage-0.6.9-zlib-1.2.6.patch 
b/source/apps-extra/partimage/partimage-0.6.9-zlib-1.2.6.patch
new file mode 100644
index 0000000..9922daa
--- /dev/null
+++ b/source/apps-extra/partimage/partimage-0.6.9-zlib-1.2.6.patch
@@ -0,0 +1,35 @@
+diff --git a/src/client/imagefile.cpp b/src/client/imagefile.cpp
+index dd83411..62d0f72 100644
+--- a/src/client/imagefile.cpp
++++ b/src/client/imagefile.cpp
+@@ -783,7 +783,7 @@ void CImage::openWriting()
+   else if (m_options.dwCompression == COMPRESS_GZIP) // Gzip compression
+     {
+       showDebug(1, "open gzip\n");
+-      m_gzImageFile = (gzFile *) gzdopen(m_nFdImage, "wb"); //"wb1h");
++      m_gzImageFile = gzdopen(m_nFdImage, "wb"); //"wb1h");
+       if (m_gzImageFile == NULL)
+    {
+      showDebug(1, "error:%d %s\n", errno, strerror(errno));
+@@ -1098,7 +1098,7 @@ void CImage::openReading(CVolumeHeader *vh /* = NULL */)
+     }
+   else if (m_options.dwCompression == COMPRESS_GZIP) // Gzip compression
+     {
+-      m_gzImageFile = (gzFile *) gzdopen(m_nFdImage, "rb");
++      m_gzImageFile = gzdopen(m_nFdImage, "rb");
+       if (m_gzImageFile == NULL)
+         THROW(ERR_ERRNO, errno);
+       else
+diff --git a/src/client/imagefile.h b/src/client/imagefile.h
+index 4ba8910..6adb098 100644
+--- a/src/client/imagefile.h
++++ b/src/client/imagefile.h
+@@ -41,7 +41,7 @@ class CImage
+   COptions m_options;
+
+   FILE *m_fImageFile;
+-  gzFile *m_gzImageFile;
++  gzFile m_gzImageFile;
+   BZFILE *m_bzImageFile;
+
+   int m_nFdImage;
diff --git a/source/apps-extra/partimage/partimage.install 
b/source/apps-extra/partimage/partimage.install
index ccbb6bf..1584d38 100644
--- a/source/apps-extra/partimage/partimage.install
+++ b/source/apps-extra/partimage/partimage.install
@@ -1,3 +1,6 @@
+sysvinit_units=(@_F_sysvinit_units@)
+systemd_units=(@_F_systemd_units@)
+
post_install()
{
if ! grep -q '^partimag:' /etc/group ; then
@@ -6,20 +9,65 @@ post_install()
if ! grep -q '^partimag:' /etc/passwd ; then
useradd -u 45 -g 45 partimag
fi
+
+       local unit
+       local op
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       for i in ${systemd_units[@]}; do
+               unit=$(echo $i | cut -f 1 -d '=')
+               op=$(echo $i | cut -f 2 -d '=')
+               if echo $op | grep -q 'e'; then
+                       systemctl enable $unit.service >/dev/null 2>&1
+               fi
+               if echo $op | grep -q 's'; then
+                       systemctl start $unit.service >/dev/null 2>&1
+               fi
+       done
}

post_upgrade()
{
-       post_install
+       if ! grep -q '^partimag:' /etc/group ; then
+               groupadd -g 45 partimag
+       fi
+       if ! grep -q '^partimag:' /etc/passwd ; then
+                useradd -u 45 -g 45 partimag
+       fi
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       systemctl daemon-reload >/dev/null 2>&1
}

pre_remove()
{
+       local unit
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       for i in ${systemd_units[@]}; do
+               unit=$(echo $i | cut -f 1 -d '=')
+               systemctl --no-reload disable $unit.service >/dev/null 2>&1
+               systemctl stop $unit.service >/dev/null 2>&1
+       done
+}
+
+post_remove()
+{
userdel partimag
groupdel partimag
+
+       systemctl daemon-reload >/dev/null 2>&1
}

op=$1
shift
-
$op $*
diff --git a/source/apps-extra/partimage/partimaged 
b/source/apps-extra/partimage/partimaged
new file mode 100644
index 0000000..9186ef7
--- /dev/null
+++ b/source/apps-extra/partimage/partimaged
@@ -0,0 +1 @@
+OPTIONS=""
diff --git a/source/apps-extra/partimage/partimaged-setup 
b/source/apps-extra/partimage/partimaged-setup
new file mode 100644
index 0000000..1ea78f8
--- /dev/null
+++ b/source/apps-extra/partimage/partimaged-setup
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+KEY="/etc/partimaged/partimaged.key"
+CNF="/etc/partimaged/servercert.cnf"
+CSR="/etc/partimaged/partimaged.csr"
+CERT="/etc/partimaged/partimaged.cert"
+
+if [ ! -f "$KEY" ]; then
+       openssl genrsa -out "$KEY" 1024
+       chmod 600 "$KEY"
+       chown partimag:root "$KEY"
+fi
+
+if [ ! -f "$CSR" ]; then
+       openssl req -new -x509 -outform PEM -out "$CSR" -key "$KEY" -config 
"$CNF"
+       chmod 644 "$CSR"
+       chown root:root "$CSR"
+fi
+
+if [ ! -f "$CERT" ]; then
+       openssl x509 -in "$CSR" -out "$CERT" -signkey "$KEY"
+       chmod 600 "$CERT"
+       chown partimag:root "$CERT"
+fi
+
+exit 0
diff --git a/source/apps-extra/partimage/partimaged.service 
b/source/apps-extra/partimage/partimaged.service
new file mode 100644
index 0000000..13583c3
--- /dev/null
+++ b/source/apps-extra/partimage/partimaged.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=partimaged is a partition imaging daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/sysconfig/partimaged
+ExecStartPre=/usr/sbin/partimaged-setup
+ExecStartPre=/bin/touch /var/lock/subsys/partimaged
+ExecStart=/usr/sbin/partimaged -D -d /var/lib/partimage $OPTIONS
+ExecStop=/bin/rm -f /var/lock/subsys/partimaged
+
+[Install]
+WantedBy=multi-user.target
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to