diff --git a/gitea/default/PKGBUILD b/gitea/default/PKGBUILD index 14027b28..0873e149 100644 --- a/gitea/default/PKGBUILD +++ b/gitea/default/PKGBUILD @@ -5,10 +5,11 @@ _pkgname=gitea _orga=go-${_pkgname} _gourl=code.$_pkgname.io/$_pkgname +_userid=521 pkgname=${_pkgname} pkgver=1.1.4 -pkgrel=1 +pkgrel=2 #epoch= pkgdesc='Self Hosted Git Service written in Go' arch=('i686' 'x86_64' 'armv6h' 'armv7h') @@ -25,7 +26,6 @@ makedepends=('go>=1.3') conflicts=("$_pkgname-bin" "$_pkgname-git" "$_pkgname-dev-git") options=('!strip') backup=("etc/$_pkgname/app.ini") -install=$_pkgname.install source=("$_pkgname-$pkgver::https://github.com/$_orga/$_pkgname/archive/v${pkgver}.tar.gz" '0001-Adjust-config-for-Arch-Linux-package.patch' '0002-Adjust-service-file-for-Arch-Linux-package.patch') @@ -71,20 +71,33 @@ build() { go fix go build -x -ldflags="-s -w" -tags='sqlite pam cert' + + echo "u $_pkgname $_userid \"$_pkgname user\" /var/lib/$_pkgname" > "$srcdir/$_pkgname.sysusers" + echo "#!/usr/bin/bash +if [[ \$USER != $_pkgname ]]; then + echo \"Must run as user $_pkgname!\" + exit -1 +fi +export GOGS_CUSTOM=/var/lib/$_pkgname/custom +/usr/bin/$_pkgname backup --config /etc/$_pkgname/app.ini \$@" > "$srcdir/$_pkgname-backup.sh" } package() { install -Dm0755 "$srcdir/build/src/${_gourl}/$_pkgname" "$pkgdir/usr/bin/$_pkgname" + install -Dm0755 "$srcdir/$_pkgname-backup.sh" "$pkgdir/usr/bin/$_pkgname-backup" mkdir -p "$pkgdir/usr/share/${_pkgname}" cp -r "$srcdir/build/src/${_gourl}/conf" "$pkgdir/usr/share/${_pkgname}" cp -r "$srcdir/build/src/${_gourl}/public" "$pkgdir/usr/share/${_pkgname}" cp -r "$srcdir/build/src/${_gourl}/templates" "$pkgdir/usr/share/${_pkgname}" - install -Dm0644 "$pkgdir/usr/share/$_pkgname/conf/app.ini" "$pkgdir/etc/$_pkgname/app.ini" + install -Dm0664 -g "$_userid" "$pkgdir/usr/share/$_pkgname/conf/app.ini" "$pkgdir/etc/$_pkgname/app.ini" install -Dm0644 "$srcdir/build/src/${_gourl}/scripts/systemd/$_pkgname.service" "$pkgdir/usr/lib/systemd/system/$_pkgname.service" install -Dm0644 "$srcdir/build/src/${_gourl}/LICENSE" "$pkgdir/usr/share/licenses/$_pkgname" - - install -dm0700 "$pkgdir/var/log/$_pkgname" - install -dm0700 "$pkgdir/var/lib/$_pkgname" + install -Dm0644 "${srcdir}/$_pkgname.sysusers" "${pkgdir}/usr/lib/sysusers.d/$_pkgname.conf" + install -dm0700 -o "$_userid" -g "$_userid" "$pkgdir/var/lib/$_pkgname" + install -dm0700 -o "$_userid" -g "$_userid" "$pkgdir/var/log/$_pkgname" + for subdir in avatars repos certs data/sessions data/tmp; do + install -dm0700 -o "$_userid" -g "$_userid" "$pkgdir/var/lib/$_pkgname/$subdir" + done } diff --git a/gitea/default/gitea.install b/gitea/default/gitea.install deleted file mode 100644 index 54776962..00000000 --- a/gitea/default/gitea.install +++ /dev/null @@ -1,44 +0,0 @@ -pre_install() { - if ! getent group gitea >/dev/null; then - groupadd --system gitea - fi - if ! getent passwd gitea >/dev/null; then - useradd -m --system -c 'gitea daemon users' -g gitea -s /bin/false gitea -d /var/lib/gitea - fi - chsh gitea -s /bin/bash -} - -post_install(){ - # ensure subdirs in data dir are present - for subdir in avatars repos certs data/sessions data/tmp; do - mkdir -p /var/lib/gitea/$subdir - done - - # ensure ownership is correct - chown -R gitea:gitea /var/log/gitea - chown -R gitea:gitea /var/lib/gitea - - systemctl daemon-reload -} - -pre_upgrade(){ - pre_install $1 -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - systemctl stop gitea.service - systemctl disable gitea.service -} - -post_remove() { - if getent passwd gitea >/dev/null; then - userdel -r gitea - fi - if getent group gitea >/dev/null; then - groupdel gitea - fi -} diff --git a/gogs/default/PKGBUILD b/gogs/default/PKGBUILD index 2c8581a5..8e63d268 100644 --- a/gogs/default/PKGBUILD +++ b/gogs/default/PKGBUILD @@ -5,10 +5,11 @@ _pkgname=gogs _orga=gogits _gourl=github.com/gogits/$_pkgname +_userid=511 pkgname=$_pkgname pkgver=0.11.34 -pkgrel=1 +pkgrel=2 epoch=1 pkgdesc='Self Hosted Git Service written in Go' arch=('i686' 'x86_64' 'armv6h' 'armv7h') @@ -25,7 +26,6 @@ makedepends=('go>=1.3') conflicts=("$_pkgname-bin" "$_pkgname-git" "$_pkgname-dev-git") options=('!strip') backup=("etc/$_pkgname/app.ini") -install=$_pkgname.install source=("$_pkgname-$pkgver::https://github.com/$_orga/$_pkgname/archive/v${pkgver}.tar.gz" '0001-Adjust-config-for-Arch-Linux-package.patch' '0002-Adjust-service-file-for-Arch-Linux-package.patch') @@ -71,20 +71,33 @@ build() { go fix go build -x -ldflags="-s -w" -tags='sqlite pam cert' + + echo "u $_pkgname $_userid \"$_pkgname user\" /var/lib/$_pkgname" > "$srcdir/$_pkgname.sysusers" + echo "#!/usr/bin/bash +if [[ \$USER != $_pkgname ]]; then + echo \"Must run as user $_pkgname!\" + exit -1 +fi +export GOGS_CUSTOM=/var/lib/$_pkgname/custom +/usr/bin/$_pkgname backup --config /etc/$_pkgname/app.ini \$@" > "$srcdir/$_pkgname-backup.sh" } package() { install -Dm0755 "$srcdir/build/src/${_gourl}/$_pkgname" "$pkgdir/usr/bin/$_pkgname" + install -Dm0755 "$srcdir/$_pkgname-backup.sh" "$pkgdir/usr/bin/$_pkgname-backup" mkdir -p "$pkgdir/usr/share/${_pkgname}" cp -r "$srcdir/build/src/${_gourl}/conf" "$pkgdir/usr/share/${_pkgname}" cp -r "$srcdir/build/src/${_gourl}/public" "$pkgdir/usr/share/${_pkgname}" cp -r "$srcdir/build/src/${_gourl}/templates" "$pkgdir/usr/share/${_pkgname}" - install -Dm0644 "$pkgdir/usr/share/$_pkgname/conf/app.ini" "$pkgdir/etc/$_pkgname/app.ini" + install -Dm0664 -g "$_userid" "$pkgdir/usr/share/$_pkgname/conf/app.ini" "$pkgdir/etc/$_pkgname/app.ini" install -Dm0644 "$srcdir/build/src/${_gourl}/scripts/systemd/$_pkgname.service" "$pkgdir/usr/lib/systemd/system/$_pkgname.service" install -Dm0644 "$srcdir/build/src/${_gourl}/LICENSE" "$pkgdir/usr/share/licenses/$_pkgname" - - install -dm0700 "$pkgdir/var/log/$_pkgname" - install -dm0700 "$pkgdir/var/lib/$_pkgname" + install -Dm0644 "${srcdir}/$_pkgname.sysusers" "${pkgdir}/usr/lib/sysusers.d/$_pkgname.conf" + install -dm0700 -o "$_userid" -g "$_userid" "$pkgdir/var/lib/$_pkgname" + install -dm0700 -o "$_userid" -g "$_userid" "$pkgdir/var/log/$_pkgname" + for subdir in avatars repos certs data/sessions data/tmp; do + install -dm0700 -o "$_userid" -g "$_userid" "$pkgdir/var/lib/$_pkgname/$subdir" + done } diff --git a/gogs/default/gogs.install b/gogs/default/gogs.install deleted file mode 100644 index dbbf1b09..00000000 --- a/gogs/default/gogs.install +++ /dev/null @@ -1,44 +0,0 @@ -pre_install() { - if ! getent group gogs >/dev/null; then - groupadd --system gogs - fi - if ! getent passwd gogs >/dev/null; then - useradd -m --system -c 'gogs daemon users' -g gogs -s /bin/false gogs -d /var/lib/gogs - fi - chsh gogs -s /bin/bash -} - -post_install(){ - # ensure subdirs in data dir are present - for subdir in avatars repos certs data/sessions data/tmp; do - mkdir -p /var/lib/gogs/$subdir - done - - # ensure ownership is correct - chown -R gogs:gogs /var/log/gogs - chown -R gogs:gogs /var/lib/gogs - - systemctl daemon-reload -} - -pre_upgrade(){ - pre_install $1 -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - systemctl stop gogs.service - systemctl disable gogs.service -} - -post_remove() { - if getent passwd gogs >/dev/null; then - userdel -r gogs - fi - if getent group gogs >/dev/null; then - groupdel gogs - fi -}