[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#769961: unblock android-permissions/0.2



Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: unblock
Severity: important

unblock android-permissions/0.2

Fix RC bug to keep this package in testing. Here is the debdiff:

$ debdiff android-permissions_0.1.dsc android-permissions_0.2.dsc
dpkg-source: warning: extracting unsigned source package
(/var/cache/pbuilder/result/android-permissions_0.2.dsc)
diff -Nru android-permissions-0.1/debian/changelog
android-permissions-0.2/debian/changelog
--- android-permissions-0.1/debian/changelog	2014-09-29 23:34:28.000000000 +0200
+++ android-permissions-0.2/debian/changelog	2014-11-17 22:41:23.000000000 +0100
@@ -1,3 +1,10 @@
+android-permissions (0.2) unstable; urgency=low
+
+  * force all groups to use Android gid (Closes: #767677)
+  * remove inode chroot check that is failing on Android
+
+ -- Hans-Christoph Steiner <hans@eds.org>  Mon, 17 Nov 2014 22:40:54 +0100
+
 android-permissions (0.1) unstable; urgency=low

   * Initial Release (Closes: #763392)
diff -Nru android-permissions-0.1/debian/postinst
android-permissions-0.2/debian/postinst
--- android-permissions-0.1/debian/postinst	2014-09-29 23:29:40.000000000 +0200
+++ android-permissions-0.2/debian/postinst	2014-11-17 22:40:34.000000000 +0100
@@ -19,8 +19,17 @@


 usergroupadd() {
-	grep -q ^$2: /etc/group || groupadd --system --gid $1  $2
-	grep -q ^$2: /etc/passwd || useradd --system --gid $1 --uid $1 --home
/system --comment "$3"  $2
+    if grep -q ^$2: /etc/group; then
+        echo "group $2 exists, forcing to gid $1 to match Android"
+        sed -i "s,^$2:x:[0-9][0-9]*:,$2:x:$1:," /etc/group
+    else
+        groupadd --system --gid $1  $2
+    fi
+    if grep -q ^$2: /etc/passwd; then
+        echo "ERROR: user $2 exists, skipping ($1 $2 '$3')"
+    else
+        useradd --system --gid $1 --uid $1 --home /system --comment "$3"  $2
+    fi
 }

 case "$1" in
@@ -35,7 +44,7 @@
 	    usergroupadd 1002 bluetooth    "bluetooth subsystem"
 	    usergroupadd 1003 graphics     "graphics devices"
 	    usergroupadd 1004 input        "input devices"
-	    usergroupadd 1005 a_audio      "audio devices"
+	    usergroupadd 1005 audio        "audio devices"
 	    usergroupadd 1006 camera       "camera devices"
 	    usergroupadd 1007 log          "log devices"
 	    usergroupadd 1008 compass      "compass device"
@@ -241,6 +250,9 @@
 		
s/^[[:space:]]*#\?[[:space:]]*\(ADD_EXTRA_GROUPS[[:space:]]*=[[:space:]]*\)[[:digit:]]\+/\11/
 		
s/^[[:space:]]*#\?[[:space:]]*\(EXTRA_GROUPS[[:space:]]*=[[:space:]]*\).*/\1"shell
graphics input log adb sdcard_rw net_bt_admin net_bt inet"/
         ' /etc/adduser.conf
+
+    # update shadow in case any groups had their gid changed to match Android's
+        grpconv
         ;;

     abort-upgrade|abort-remove|abort-deconfigure)
diff -Nru android-permissions-0.1/debian/preinst
android-permissions-0.2/debian/preinst
--- android-permissions-0.1/debian/preinst	2014-09-29 23:28:11.000000000 +0200
+++ android-permissions-0.2/debian/preinst	2014-11-17 18:10:10.000000000 +0100
@@ -16,11 +16,10 @@

 case "$1" in
     install|upgrade)
-        # In a normal system, the inode for / is 2, except for systems with an
-        # XFS root filesystem, then it is 128. If the root inode is something
-        # else, then this is a chroot.
+        # For systems with an XFS root filesystem, the inode for / is 128.
+        # This is a weak test, but it'll warn at least some people.
         root_inode=$(stat -c %i /)
-        if [ $root_inode -eq 2 -o $root_inode -eq 128 ]; then
+        if [ $root_inode -eq 128 ]; then
             echo "This package should only be installed in a chroot running
on Android!" >&2
             exit 1
         fi

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: