summaryrefslogtreecommitdiff
path: root/community/partimage
diff options
context:
space:
mode:
Diffstat (limited to 'community/partimage')
-rw-r--r--community/partimage/PKGBUILD47
-rw-r--r--community/partimage/partimage-0.6.9-zlib-1.2.6.patch35
-rw-r--r--community/partimage/partimage.install22
-rw-r--r--community/partimage/partimaged-gencrt18
-rw-r--r--community/partimage/partimaged.service10
5 files changed, 132 insertions, 0 deletions
diff --git a/community/partimage/PKGBUILD b/community/partimage/PKGBUILD
new file mode 100644
index 000000000..f3cecc40a
--- /dev/null
+++ b/community/partimage/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 92035 2013-05-31 00:06:34Z seblu $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sven Kauber <celeon@gmail.com>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=partimage
+pkgver=0.6.9
+pkgrel=4
+pkgdesc='Partition Image saves partitions in many formats to an image file.'
+arch=('i686' 'x86_64')
+url='http://www.partimage.org/'
+license=('GPL')
+depends=('libnewt' 'lzo' 'bzip2' 'openssl')
+backup=('etc/partimaged/partimagedusers')
+install='partimage.install'
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'partimage-0.6.9-zlib-1.2.6.patch'
+ 'partimaged-gencrt'
+ 'partimaged.service')
+md5sums=('1bc046fd915c5debbafc85729464e513'
+ '202c4334766041d98c5f67c9d62c3063'
+ '2316b116227b07efb48266e660ca1ba1'
+ '5f8dae511cdfbf097409a45e9642a372')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../partimage-0.6.9-zlib-1.2.6.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --enable-pam
+ make
+ make pamfile
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm0644 partimaged.pam "${pkgdir}/etc/pam.d/partimaged"
+ install -Dm0755 "${srcdir}/partimaged-gencrt" "${pkgdir}/usr/bin/partimaged-gencrt"
+ chmod 644 "${pkgdir}/etc/partimaged/partimagedusers"
+
+ install -Dm0755 ../partimaged.service "${pkgdir}/usr/lib/systemd/system/partimaged.service"
+}
diff --git a/community/partimage/partimage-0.6.9-zlib-1.2.6.patch b/community/partimage/partimage-0.6.9-zlib-1.2.6.patch
new file mode 100644
index 000000000..0f311d261
--- /dev/null
+++ b/community/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/community/partimage/partimage.install b/community/partimage/partimage.install
new file mode 100644
index 000000000..4d403b177
--- /dev/null
+++ b/community/partimage/partimage.install
@@ -0,0 +1,22 @@
+pre_install() {
+ groupadd -g 110 partimag &> /dev/null
+ useradd -u 110 -g partimag -c "Partimage user" -d /dev/null -s /bin/false partimag &> /dev/null
+}
+
+post_install() {
+ chown partimag:partimag /etc/partimaged/partimagedusers
+}
+
+post_upgrade() {
+ if [ "$(getent group partimag | cut -d ':' -f 3)" != '110' ]; then
+ post_remove
+ pre_install
+ echo ">> partimage UID/GID has been changed"
+ echo ">> if you have some directories owned by partimage - please chown them again"
+ fi
+}
+
+post_remove() {
+ userdel partimag > /dev/null
+ groupdel partimag > /dev/null
+}
diff --git a/community/partimage/partimaged-gencrt b/community/partimage/partimaged-gencrt
new file mode 100644
index 000000000..16fe5ff16
--- /dev/null
+++ b/community/partimage/partimaged-gencrt
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+if [ `whoami` != "root" ]; then
+ echo "You must be root to generate certificates."
+ exit
+fi
+
+echo -n "==> Generating certificate for Partimage/PartimageD SSL... "
+cd /etc/partimaged
+openssl req -new -x509 -outform PEM > partimaged.csr
+openssl rsa -in privkey.pem -out partimaged.key
+rm privkey.pem
+openssl x509 -in partimaged.csr -out partimaged.cert -signkey partimaged.key
+rm partimaged.csr
+chmod 600 partimaged.key
+chmod 600 partimaged.cert
+chown partimag:partimag partimaged.key
+chown partimag:partimag partimaged.cert
diff --git a/community/partimage/partimaged.service b/community/partimage/partimaged.service
new file mode 100644
index 000000000..baa682981
--- /dev/null
+++ b/community/partimage/partimaged.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=A partition imaging daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/partimaged --daemon
+
+[Install]
+WantedBy=multi-user.target