aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/alpine-conf/0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch87
-rw-r--r--main/alpine-conf/APKBUILD9
2 files changed, 93 insertions, 3 deletions
diff --git a/main/alpine-conf/0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch b/main/alpine-conf/0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch
new file mode 100644
index 0000000000..ad8dd2e5c1
--- /dev/null
+++ b/main/alpine-conf/0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch
@@ -0,0 +1,87 @@
+From 4e7ab7455206ec157a72d07c40c07f1a299529f1 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri, 3 Dec 2010 08:49:43 +0000
+Subject: [PATCH] lbu: remount LBU_MEDIA as read-write if it was read-only
+
+ref #477
+---
+ lbu.in | 34 +++++++++++++++++++++++++++++-----
+ 1 files changed, 29 insertions(+), 5 deletions(-)
+
+diff --git a/lbu.in b/lbu.in
+index dfd7e3c..a0dfe16 100644
+--- a/lbu.in
++++ b/lbu.in
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+
+ # lbu - utility to create local backups.
+-# Copyright (c) 2006 Natanael Copa
++# Copyright (c) 2006-2010 Natanael Copa <ncopa@alpinelinux.org>
+ # May be distributed under GPL2
+
+ VERSION=@VERSION@
+@@ -54,6 +54,9 @@ Common options:
+
+ cleanup() {
+ local i
++ for i in $REMOUNT_RO_LIST; do
++ mount -o remount,ro $i
++ done
+ for i in $UMOUNT_LIST; do
+ umount $i
+ done
+@@ -64,9 +67,30 @@ exit_clean() {
+ exit 1
+ }
+
++# check if given dir is not a mounted mountpoint
++is_unmounted() {
++ awk "\$2 == \"$1\" {exit 1}" /proc/mounts
++}
++
+ mount_once() {
+- if awk "\$2 == \"$1\" {exit 1}" /proc/mounts; then
+- mount $1 && UMOUNT_LIST="$1 $UMOUNT_LIST"
++ if is_unmounted "$1"; then
++ mount $1 && UMOUNT_LIST="$1 $UMOUNT_LIST" || return 1
++ fi
++}
++
++# check if given dir is read-only
++is_ro() {
++ local tmpfile=$(mktemp -p "$1")
++ [ -z "$tmpfile" ] && return 0
++ rm -f "$tmpfile"
++ return 1
++}
++
++mount_once_rw() {
++ mount_once "$1" || return 1
++ if is_ro "$1"; then
++ REMOUNT_RO_LIST="$1 $REMOUNT_RO_LIST"
++ mount -o remount,rw "$1"
+ fi
+ }
+
+@@ -385,7 +409,7 @@ cmd_commit() {
+ # mount media unles its already mounted
+ mnt=/media/$media
+ [ -d "$mnt" ] || usage
+- mount_once "$mnt" || die "failed to mount $mnt"
++ mount_once_rw "$mnt" || die "failed to mount $mnt"
+
+ # find the outfile
+ outfile="$mnt/$(hostname).apkovl.tar.gz"
+@@ -538,7 +562,7 @@ cmd_revert() {
+ if [ -n "$ENCRYPTION" ]; then
+ current="$current.$ENCRYPTION"
+ fi
+- mount_once "$mnt" || die "failed to mount $mnt"
++ mount_once_rw "$mnt" || die "failed to mount $mnt"
+ [ -f "$revertto" ] || die "file not found: $revertto"
+ backup_apkovl "$current"
+ vecho "Reverting to $1"
+--
+1.7.3.2
+
diff --git a/main/alpine-conf/APKBUILD b/main/alpine-conf/APKBUILD
index a32c86e434..39056e72e2 100644
--- a/main/alpine-conf/APKBUILD
+++ b/main/alpine-conf/APKBUILD
@@ -1,11 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alpine-conf
pkgver=2.5.4
-pkgrel=0
+pkgrel=1
pkgdesc="Alpine configuration management scripts"
url=http://git.alpinelinux.org/cgit/$pkgname
depends="openrc"
-source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2"
+source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2
+ 0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch
+ "
license="GPL-2"
_builddir="$srcdir"/$pkgname-$pkgver
@@ -33,4 +35,5 @@ package() {
ln -s lbu "$pkgdir"/sbin/lbu_$i
done
}
-md5sums="91a2b8a150917cc06f6c9ec839b70bb0 alpine-conf-2.5.4.tar.bz2"
+md5sums="91a2b8a150917cc06f6c9ec839b70bb0 alpine-conf-2.5.4.tar.bz2
+9245a4bc53b24584d43b3a3f1556c500 0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch"