diff options
-rw-r--r-- | main/alpine-conf/0001-lbu-remount-LBU_MEDIA-as-read-write-if-it-was-read-o.patch | 87 | ||||
-rw-r--r-- | main/alpine-conf/APKBUILD | 9 |
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" |