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
