Subject: Re: [alpine-devel] [PATCH] main/backuppc: Added initd script, small fixes and cleaned up

From: k0r10n <[email-masked]>
Date: Fri, 28 Nov 2014 18:03:25 +0000

Hi, there is final fix for BackupPC aport. I noticed $Conf{BackupPCUser}
variable
was not set after installing in /etc/BackupPC/config.pl, i added this to
configure patch.
Also after installing i've got o-rx on /etc,/var/lib and /var/log folders
(fix is in APKBUILD file). And i added initd script, because it wasn't in
package and added samba-client to depends, because initd script failed to
start without smbclient.

>From 6f8b6a96a138761d18e5d942006752d183f772a8 Mon Sep 17 00:00:00 2001
From: k0r10n <[email-masked]>
Date: Fri, 28 Nov 2014 20:27:12 +0400
Subject: [PATCH] main/backuppc: Fix permissions and edited patch

---
 main/backuppc/APKBUILD              | 50 ++++++++++++++++++++++++++----
-------
 main/backuppc/backuppc.initd        |  4 +++
 main/backuppc/backuppc.post-install |  7 ------
 main/backuppc/configure.pl.patch    | 15 ++++++-----
 4 files changed, 49 insertions(+), 27 deletions(-)
 delete mode 100644 main/backuppc/backuppc.post-install

diff --git a/main/backuppc/APKBUILD b/main/backuppc/APKBUILD
index 08f8206..e05a817 100644
--- a/main/backuppc/APKBUILD
+++ b/main/backuppc/APKBUILD
@@ -4,25 +4,34 @@ pkgname="backuppc"
 _realname="BackupPC"
 pkgver=3.3.0
 _realver=$pkgver
-pkgrel=1
+pkgrel=2
 pkgdesc="High-performance, enterprise-grade backup system"
 url="http://backuppc.sourceforge.net/"
 arch="noarch"
 license="GPL2+"
 depends="perl busybox rsync perl-archive-zip perl-io-compress
-       perl-libwww perl-file-rsync"
+       perl-libwww perl-file-rsync samba-client"
+pkgusers="backuppc"
+pkggroups="backuppc"
 makedepends=""
-install="$pkgname.pre-install $pkgname.post-install"
+install="$pkgname.pre-install"
 subpackages=""
 source="
http://downloads.sourceforge.net/project/$pkgname/$pkgname/$_realver/$_realname-$_realver.tar.gz
-       configure.pl.patch"
+       configure.pl.patch
+       backuppc.initd
+       "

 _builddir="$srcdir/$_realname-$_realver"
-prepare () {
+prepare() {
        cd "$_builddir"
-       mkdir -p "$pkgdir"/etc/BackupPC
-       mkdir -p "$pkgdir"/var/www/cgi-bin
-       patch -p2 < ../../configure.pl.patch
+       for i in $source; do
+               case $i in
+               *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+               esac
+       done
+       mkdir -p "$pkgdir"/etc/BackupPC \
+                "$pkgdir"/var/www/cgi-bin \
+                "$pkgdir"/var/www/htdocs/BackupPC || return 1
 }

 build() {
@@ -43,7 +52,7 @@ package() {
         --bin-path perl=/usr/bin/perl \
         --bin-path ping=/bin/ping \
         --bin-path rsync=/usr/bin/rsync \
-        --bin-path sendmail=/usr/bin/sendmail \
+        --bin-path sendmail=/usr/sbin/sendmail \
         --bin-path smbclient=/usr/bin/smbclient \
         --bin-path split=/usr/bin/split \
         --bin-path ssh=/usr/bin/ssh \
@@ -60,15 +69,28 @@ package() {
         --uid-ignore \
         --no-set-perms || return 1

-       install -m755 configure.pl "$pkgdir"/usr/lib/BackupPC/bin/
configure.pl
+       install -m755 configure.pl \
+               "$pkgdir"/usr/lib/BackupPC/bin/configure.pl || return 1
+       install -D -m755 "$srcdir"/backuppc.initd \
+               "$pkgdir"/etc/init.d/backuppc || return 1

-       chmod 774 "$pkgdir"/usr/lib/BackupPC/bin/*
+       chmod 775 "$pkgdir"/usr/lib/BackupPC/bin/*
+
+       for dir in etc var/log var/lib;do
+               chown -R backuppc.backuppc ${pkgdir}/${dir}/BackupPC
+               chmod 755 "$pkgdir/$dir"
+       done
+
+       ln -s /var/www/cgi-bin/BackupPC_Admin
"$pkgdir"/var/www/htdocs/index.cgi
|| return 1

 }

 md5sums="2942a31daeec7c7bb227d843b7846f38  BackupPC-3.3.0.tar.gz
-f57ad7fdcce804f20f2fe82bee91e813  configure.pl.patch"
+2a25b036d273ea67b69aa62e4cd7c28f  configure.pl.patch
+5f27ed84a9ca11cba0bb5665faddca4b  backuppc.initd"
 sha256sums="8a9c1b6faa4502b4c40617be97e806813815d9e22544854d99983c3da7c1f69b
BackupPC-3.3.0.tar.gz
-f07039e6bf25fc19bc0bc894d6dd6ff0348612a95a24e68b181da94b9f5ddd0c
configure.pl.patch"
+86988fbe8e8763abee8861f5bb03bf6bb7fd2430623f78fc921502b6759ad48d
configure.pl.patch
+ae3c6080c1ff4f5a42efbe533b20f02b9770e21f0e36c66879576683fcdda6b1
backuppc.initd"
 sha512sums="67ec1ca4d22ab1e81f9c0f409c758347a6c772e3d1aa39c93207f9d32817
6ac7b4e679d0b03972fc5870c37dde0480d28c61ae19975d54e144235ea0e84e9901
BackupPC-3.3.0.tar.gz
-7ea98de0960cd0ea4f64e71c61e4565a73db2fd872d2f102dc08543ad60e
b1cf986b9c0a32b7b4694dc9a8ffe2cd6bd7ca3ff2cc0b4d91961952664b62881faf
configure.pl.patch"
+a38361fd0e54a4c0100a7bf94b09483e5ba246dc45d6955d275542dd5662
d8da11d9580685195b7d4dfa9a07c0487a52a14a95340737e70889ffe5c5e26d5ff8
configure.pl.patch
+96583fa711e1a92979d6ad60936d430e0b2b8138b8923d3727e86310ed73
b93ae25306294c230c9e7a4560379b58c6ecccf37591d3fe5f920e29b0c7525b488b
backuppc.initd"
diff --git a/main/backuppc/backuppc.initd b/main/backuppc/backuppc.initd
index 850e6ae..ac1f36a 100644
--- a/main/backuppc/backuppc.initd
+++ b/main/backuppc/backuppc.initd
@@ -1,4 +1,8 @@
 #!/sbin/runscript
+BACKUPPC_BINDIR=/usr/lib/BackupPC/bin
+DAEMON=BackupPC
+BACKUPPC_LOGDIR=/var/log/BackupPC
+USER=backuppc

 depend() {
        after firewall modules
diff --git a/main/backuppc/backuppc.post-install
b/main/backuppc/backuppc.post-install
deleted file mode 100644
index f4b5a58..0000000
--- a/main/backuppc/backuppc.post-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-for dir in /etc /var/log /var/lib
-do
-  chown -R backuppc.backuppc ${dir}/BackupPC &>/dev/null
-done
-
-ln -s /var/www/htdocs/BackupPC/index.cgi /var/www/cgi-bin/BackupPC_Admin
&>/dev/null
diff --git a/main/backuppc/configure.pl.patch b/main/backuppc/configure.pl.
patch
index 24d5e3b..67c2892 100644
--- a/main/backuppc/configure.pl.patch
+++ b/main/backuppc/configure.pl.patch
@@ -1,6 +1,6 @@
---- src/BackupPC-3.2.0beta1/configure.pl
-+++ configure.pl
-@@ -327,25 +327,8 @@
+--- BackupPC-3.3.0.orig/configure.pl
++++ BackupPC-3.3.0/configure.pl
+@@ -327,25 +327,11 @@

  EOF
  my($name, $passwd, $Uid, $Gid);
@@ -9,6 +9,9 @@
 -                                 $Conf{BackupPCUser} || "backuppc",
 -                                 "backuppc-user");
 -    if ( $opts{"set-perms"} ) {
++      $Conf{BackupPCUser} = prompt("--> BackupPC should run as user",
++                                   $Conf{BackupPCUser} || "backuppc",
++                                   "backuppc-user");
          ($name, $passwd, $Uid, $Gid) = getpwnam($Conf{BackupPCUser});
 -        last if ( $name ne "" );
 -        print <<EOF;
@@ -26,7 +29,7 @@
  print <<EOF;

  Please specify an install directory for BackupPC.  This is where the
-@@ -532,12 +515,6 @@
+@@ -532,12 +518,6 @@
                 ) ) {
      next if ( -d "$DestDir$Conf{InstallDir}/$dir" );
      mkpath("$DestDir$Conf{InstallDir}/$dir", 0, 0755);
@@ -39,7 +42,7 @@
  }

  #
-@@ -546,11 +523,6 @@
+@@ -546,11 +526,6 @@
  foreach my $dir ( ($Conf{CgiImageDir}) ) {
      next if ( $dir eq "" || -d "$DestDir$dir" );
      mkpath("$DestDir$dir", 0, 0755);
@@ -51,7 +54,7 @@
  }

  #
-@@ -566,12 +538,6 @@
+@@ -566,12 +541,6 @@
              "$Conf{LogDir}",
          ) ) {
      mkpath("$DestDir$dir", 0, 0750) if ( !-d "$DestDir$dir" );

2014-11-26 12:13 GMT+00:00 Natanael Copa <[email-masked]>:

> On Wed, 26 Nov 2014 09:01:05 +0400
> k0r10n <[email-masked]> wrote:
>
> > ---
> >  main/backuppc/APKBUILD              | 38
> ++++++++++++++++++++++++-------------
> >  main/backuppc/backuppc.initd        |  4 ++++
> >  main/backuppc/backuppc.post-install |  4 ++--
> >  main/backuppc/configure.pl.patch    |  4 ++--
> >  4 files changed, 33 insertions(+), 17 deletions(-)
> >
>
> I have a few questions below.
>
> ...
>
> > --- a/main/backuppc/backuppc.post-install
> > +++ b/main/backuppc/backuppc.post-install
> > @@ -1,7 +1,7 @@
> >  #!/bin/sh
> > -for dir in /etc /var/log /var/lib
> > +for dir in /etc /var/log /var/lib /usr/lib
> >  do
> >    chown -R backuppc.backuppc ${dir}/BackupPC &>/dev/null
> >  done
>
> permissions of files should be set in the .apk itself and not in
> post-install. Only exception is /var/run and /run which should be set
> from init.d script with 'checkpath'
>
> Other question is, why does /usr/lib/BackupPC be owned by backuppc
> user? /usr should generally be considered as read-only area.
>
>
> >
> > -ln -s /var/www/htdocs/BackupPC/index.cgi
> /var/www/cgi-bin/BackupPC_Admin &>/dev/null
> > +ln -s /var/www/cgi-bin/BackupPC_Admin
> /var/www/htdocs/BackupPC/index.cgi &>/dev/null
>
> Symlinks should generally be created in .apk and not in post-install.
>
> Is it possible to get rid of the post-install script?
>
>
> -nc
>