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 <beberk...@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