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

Bug#683073: unblock: gnunet/0.9.3-3



Hello,

Le 02/08/2012 22:52, Julien Cristau a écrit :
+  * Rewrite gnunet-server.init based on /etc/init.d/skeleton and make
+    gnunet-server depend on lsb-base to use LSB logging.

This part makes me extremely nervous.  I don't think now is the time for
this kind of change.

That's why it was not uploaded to unstable, and only to mentors. I
guess we could select the changes we want to see in wheezy:

Sorry, I meant the init script change.
I prepared a new version without the init script change. The debdiff against the current version in unstable/wheezy is attached.

Do you think it could get a freeze exception like this ?

diff -Nru gnunet-0.9.3/debian/gnunet-server.postinst gnunet-0.9.3/debian/gnunet-server.postinst
--- gnunet-0.9.3/debian/gnunet-server.postinst	2012-06-07 23:13:17.000000000 +0200
+++ gnunet-0.9.3/debian/gnunet-server.postinst	2012-07-07 15:50:27.000000000 +0200
@@ -52,6 +52,24 @@
  			echo " done."
  		fi

+		# this can go away after wheezy
+		if dpkg --compare-versions "$2" le "0.9.3-2"&&   dpkg --compare-versions "$2" ge "0.9.2-1"; then
+			for file in /usr/bin/gnunet-helper-exit \
+				/usr/bin/gnunet-helper-fs-publish \
+				/usr/bin/gnunet-helper-nat-client \
+				/usr/bin/gnunet-helper-nat-server \
+				/usr/bin/gnunet-helper-transport-wlan \
+				/usr/bin/gnunet-helper-vpn \
+				/usr/bin/gnunet-helper-dns \
+				/usr/bin/gnunet-service-dns
+			do
+				if dpkg-statoverride --list $file>/dev/null 2>&1
+				then
+					dpkg-statoverride --remove $file
+				fi
+			done
+		fi
+		

How does this interact with statoverrides set by the local admin?
It doesn't. The use of dpkg-statoverride was wrong in the first
place, so there is no way to know whether the local admin set
statoverrides or whether the gnunet package did. And since postrm
removes the gnunet group and user, we need to be sure we remove
every statoverrides before postrm. Again, it is like this only since
April or May, and it has not reached Stable, yet.

Why does postrm do that?  Is there any harm in leaving the user and
group around?
See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=621833
Thanks for pointing this to me, I was not aware of these issues. Do you want me to change this for wheezy or is it ok to wait the release ?

Cheers,
Bertrand
diff -Nru gnunet-0.9.3/debian/changelog gnunet-0.9.3/debian/changelog
--- gnunet-0.9.3/debian/changelog	2012-06-20 23:55:23.000000000 +0200
+++ gnunet-0.9.3/debian/changelog	2012-08-05 20:13:55.000000000 +0200
@@ -1,3 +1,19 @@
+gnunet (0.9.3-3) unstable; urgency=low
+
+  * debian/control: update Vcs-* to the new repository in collab-maint.
+  * Install only the generated binaries on Hurd, thanks to Cyril Roelandt
+    (Closes: #670794).
+  * Use chmod and chown instead of dpkg-statoverride to set special permissions
+    and upgrade properly depending on the previous version (Closes: #673301).
+  * Fix "gcc-4.6: [sparc] compiler fails to align stack-allocated
+    struct, with array of uint32-values to 32-bit boundary":
+    new patch sparc_alignment.patch, taken from upstream:
+    https://lists.gnu.org/archive/html/gnunet-svn/2012-07/msg00548.html
+    Thanks to Jurij Smakov for the analysis.
+    (Closes: #670578)
+
+ -- Bertrand Marc <beberking@gmail.com>  Sun, 05 Aug 2012 20:13:49 +0200
+
 gnunet (0.9.3-2) unstable; urgency=low
 
   * Clean properly dpkg-statoverride in gnunet-server.postrm
diff -Nru gnunet-0.9.3/debian/control gnunet-0.9.3/debian/control
--- gnunet-0.9.3/debian/control	2012-06-10 10:29:08.000000000 +0200
+++ gnunet-0.9.3/debian/control	2012-08-05 20:12:01.000000000 +0200
@@ -10,8 +10,8 @@
  libsqlite3-dev (>=3.0), libpq-dev (>=8.3), guile-1.8-dev, libglpk-dev (>=4.32)
 Build-Conflicts: autoconf2.13, automake1.4
 Standards-Version: 3.9.3
-Vcs-Git: git://git.debian.org/git/users/bbk-guest/gnunet.git
-Vcs-browser: http://git.debian.org/?p=users/bbk-guest/gnunet.git
+Vcs-Git: git://git.debian.org/git/collab-maint/gnunet.git
+Vcs-browser: http://git.debian.org/?p=collab-maint/gnunet.git
 Homepage: http://www.gnunet.org/
 
 Package: gnunet
diff -Nru gnunet-0.9.3/debian/gnunet-server.install.hurd gnunet-0.9.3/debian/gnunet-server.install.hurd
--- gnunet-0.9.3/debian/gnunet-server.install.hurd	1970-01-01 01:00:00.000000000 +0100
+++ gnunet-0.9.3/debian/gnunet-server.install.hurd	2012-07-01 16:59:50.000000000 +0200
@@ -0,0 +1,52 @@
+etc/gnunet.conf
+usr/bin/gnunet-arm
+usr/bin/gnunet-core
+usr/bin/gnunet-daemon-*
+usr/bin/gnunet-dht-*
+usr/bin/gnunet-fs
+usr/bin/gnunet-gns*
+usr/bin/gnunet-helper-*
+usr/bin/gnunet-namestore
+usr/bin/gnunet-nat-server
+usr/bin/gnunet-peerinfo
+usr/bin/gnunet-resolver
+usr/bin/gnunet-rsa
+usr/bin/gnunet-service-*
+usr/bin/gnunet-testing
+usr/bin/gnunet-transport
+usr/bin/gnunet-transport-certificate-creation
+usr/bin/mockup-service
+usr/lib/libgnunetarm.so.*
+usr/lib/libgnunetats.so.*
+usr/lib/libgnunetblock.so.*
+usr/lib/libgnunetcore.so.*
+usr/lib/libgnunetdatacache.so.*
+usr/lib/libgnunetdht.so.*
+usr/lib/libgnunetfragmentation.so.*
+usr/lib/libgnunethello.so.*
+usr/lib/libgnunetlockmanager.so.0*
+usr/lib/libgnunetmesh.so.*
+usr/lib/libgnunetnamestore.so.*
+usr/lib/libgnunetnat.so.*
+usr/lib/libgnunetnse.so.*
+usr/lib/libgnunetpeerinfo.so.*
+usr/lib/libgnunettesting.so.*
+usr/lib/libgnunettesting_new.so.0*
+usr/lib/libgnunettestbed.so.0*
+usr/lib/libgnunettransport.so.*
+usr/lib/libgnunettransporttesting.so.*
+usr/lib/libgnunettun.so.*
+usr/lib/gnunet/*.so
+usr/share/gnunet/config.d
+usr/share/gnunet/hellos/*
+usr/share/man/man1/gnunet-arm.1
+usr/share/man/man1/gnunet-core.1
+usr/share/man/man1/gnunet-fs.1
+usr/share/man/man1/gnunet-gns.1
+usr/share/man/man1/gnunet-namestore.1
+usr/share/man/man1/gnunet-nat-server.1
+usr/share/man/man1/gnunet-peerinfo.1
+usr/share/man/man1/gnunet-rsa.1
+usr/share/man/man1/gnunet-transport.1
+usr/share/man/man1/gnunet-vpn.1
+debian/man/* usr/share/man/man1/
diff -Nru gnunet-0.9.3/debian/gnunet-server.postinst gnunet-0.9.3/debian/gnunet-server.postinst
--- gnunet-0.9.3/debian/gnunet-server.postinst	2012-06-07 23:13:17.000000000 +0200
+++ gnunet-0.9.3/debian/gnunet-server.postinst	2012-07-07 15:50:27.000000000 +0200
@@ -52,6 +52,24 @@
 			echo " done."
 		fi
 
+		# this can go away after wheezy
+		if dpkg --compare-versions "$2" le "0.9.3-2" && dpkg --compare-versions "$2" ge "0.9.2-1"; then
+			for file in /usr/bin/gnunet-helper-exit \
+				/usr/bin/gnunet-helper-fs-publish \
+				/usr/bin/gnunet-helper-nat-client \
+				/usr/bin/gnunet-helper-nat-server \
+				/usr/bin/gnunet-helper-transport-wlan \
+				/usr/bin/gnunet-helper-vpn \
+				/usr/bin/gnunet-helper-dns \
+				/usr/bin/gnunet-service-dns
+			do
+				if dpkg-statoverride --list $file >/dev/null 2>&1
+				then
+					dpkg-statoverride --remove $file
+				fi
+			done
+		fi
+		
 		# Update files and directories permissions.
 		# Assuming default values, this *should* not be changed.
 		echo -n "Updating files and directories permissions:"
@@ -60,7 +78,7 @@
 		# Secure access to the data directory
 		chmod 0700 "${SERVICEHOME}" || true
 		# Restrict access on setuid binaries
-		for i in /usr/bin/gnunet-helper-exit \
+		for file in /usr/bin/gnunet-helper-exit \
 			/usr/bin/gnunet-helper-fs-publish \
 			/usr/bin/gnunet-helper-nat-client \
 			/usr/bin/gnunet-helper-nat-server \
@@ -68,18 +86,21 @@
 			/usr/bin/gnunet-helper-vpn
 		do
 			# only do something when no setting exists
-			if ! dpkg-statoverride --list $i >/dev/null 2>&1
+			if ! dpkg-statoverride --list $file >/dev/null 2>&1
 			then
-				dpkg-statoverride --update --add root ${_GROUPNAME} 4754 $i
+				chown root:${_GROUPNAME} $file
+				chmod 4754 $file
 			fi
 		done
 		if ! dpkg-statoverride --list /usr/bin/gnunet-helper-dns >/dev/null 2>&1
 		then
-			dpkg-statoverride --update --add root ${GNUNETDNS_GROUP} 4754 /usr/bin/gnunet-helper-dns
+			chown root:${GNUNETDNS_GROUP} /usr/bin/gnunet-helper-dns
+			chmod 4754 /usr/bin/gnunet-helper-dns
 		fi
 		if ! dpkg-statoverride --list /usr/bin/gnunet-service-dns >/dev/null 2>&1
 		then
-			dpkg-statoverride --update --add ${_USERNAME} ${GNUNETDNS_GROUP} 2754 /usr/bin/gnunet-service-dns
+			chown ${_USERNAME}:${GNUNETDNS_GROUP} /usr/bin/gnunet-service-dns
+			chmod 2754 /usr/bin/gnunet-service-dns
 		fi
 		echo  " done."
 
diff -Nru gnunet-0.9.3/debian/gnunet-server.postrm gnunet-0.9.3/debian/gnunet-server.postrm
--- gnunet-0.9.3/debian/gnunet-server.postrm	2012-06-20 23:53:40.000000000 +0200
+++ gnunet-0.9.3/debian/gnunet-server.postrm	2012-07-01 17:44:16.000000000 +0200
@@ -21,21 +21,6 @@
 
 		GNUNETDNS_GROUP="gnunetdns"
 
-		for i in /usr/bin/gnunet-helper-exit \
-			/usr/bin/gnunet-helper-fs-publish \
-			/usr/bin/gnunet-helper-nat-client \
-			/usr/bin/gnunet-helper-nat-server \
-			/usr/bin/gnunet-helper-transport-wlan \
-			/usr/bin/gnunet-helper-vpn \
-			/usr/bin/gnunet-helper-dns \
-			/usr/bin/gnunet-service-dns
-		do
-			if dpkg-statoverride --list $i >/dev/null 2>&1
-			then
-				dpkg-statoverride --remove $i
-			fi
-		done
-
 		if [ -x /usr/sbin/deluser ]
 		then
 			deluser --quiet --system ${_USERNAME}
diff -Nru gnunet-0.9.3/debian/patches/series gnunet-0.9.3/debian/patches/series
--- gnunet-0.9.3/debian/patches/series	2012-06-03 15:32:14.000000000 +0200
+++ gnunet-0.9.3/debian/patches/series	2012-08-01 21:46:33.000000000 +0200
@@ -1 +1,2 @@
 support_GNU_hurd.patch
+sparc_alignment.patch
diff -Nru gnunet-0.9.3/debian/patches/sparc_alignment.patch gnunet-0.9.3/debian/patches/sparc_alignment.patch
--- gnunet-0.9.3/debian/patches/sparc_alignment.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnunet-0.9.3/debian/patches/sparc_alignment.patch	2012-08-01 21:46:33.000000000 +0200
@@ -0,0 +1,55 @@
+Author: grothoff
+Date: 2012-07-30 09:26:05 +0200 (Mon, 30 Jul 2012)
+New Revision: 22960
+
+Modified:
+   gnunet/src/include/gnunet_common.h
+Log:
+fix for gcc alginment issue on sparc reported to Debian as #670578
+
+Modified: gnunet/src/include/gnunet_common.h
+===================================================================
+--- a/src/include/gnunet_common.h
++++ b/src/include/gnunet_common.h
+@@ -170,9 +170,13 @@
+  */
+ #define GNUNET_NORETURN __attribute__((noreturn))
+ 
++#if MINGW
+ #if __GNUC__ > 3
+ /**
+- * gcc 4.x-ism to pack structures even on W32 (to be used before structs)
++ * gcc 4.x-ism to pack structures even on W32 (to be used before structs);
++ * Using this would cause structs to be unaligned on the stack on Sparc,
++ * so we *only* use this on W32 (see #670578 from Debian); fortunately,
++ * W32 doesn't run on sparc anyway.
+  */
+ #define GNUNET_NETWORK_STRUCT_BEGIN \
+   _Pragma("pack(push)") \
+@@ -180,19 +184,23 @@
+ 
+ /**
+  * gcc 4.x-ism to pack structures even on W32 (to be used after structs)
++ * Using this would cause structs to be unaligned on the stack on Sparc,
++ * so we *only* use this on W32 (see #670578 from Debian); fortunately,
++ * W32 doesn't run on sparc anyway.
+  */
+ #define GNUNET_NETWORK_STRUCT_END _Pragma("pack(pop)")
++
+ #else
+-#ifdef MINGW
+ #error gcc 4.x or higher required on W32 systems
+ #endif
++#else
+ /**
+- * Good luck, GNUNET_PACKED should suffice, but this won't work on W32
++ * Define as empty, GNUNET_PACKED should suffice, but this won't work on W32
+  */
+ #define GNUNET_NETWORK_STRUCT_BEGIN 
+ 
+ /**
+- * Good luck, GNUNET_PACKED should suffice, but this won't work on W32
++ * Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;
+  */
+ #define GNUNET_NETWORK_STRUCT_END
+ #endif

Reply to: