Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package soprano I just uploaded version 2.7.6+dfsg.1-2wheezy1 which solves a bug where virtuoso's postinst fails because of soprano. We (José Manuel and myself) made the upload through tpu because the fixed version in unstable depends on librdf0 >= 1.0.16 (for !hppa) which is not available in testing. The upload in tpu add the exact same patch as the fixed package in unstable and has thus been throughly tested. Below is the full explaination of the bug as found in the patch: Soprano launches a Virtuoso server using an unix socket (/tmp/virt_XXXX where XXXX is the tcp port specified in the configuration file). It tries first with the /tmp/virt_1111 port if it's availaible, and if it's not, keeps trying with above ports one by one until it finds an usuable /tmp/virt_XXXX. Starting with 1111 is a very unfortunate choice, because if you start other virtuoso server configured to use the same port (note that 1111 is the default), then it would fail to start. It should fail and return, but currently it hangs. When installing virtuoso-opensource-6.1, the postinst script will try to start Virtuoso using the default 1111 port in order to change the admin password. So the problem is the following: since the unix socket /tmp/virt_1111 is (probably) already being used by the Virtuoso instance started by Soprano, the Virtuoso instance started by the postinst script would hang (as explained in the paragraph above), breaking the installation. Attached is the debdiff of the change. Best regards, Thomas Preud'homme unblock soprano/2.7.6+dfsg.1-2wheezy1 -- System Information: Debian Release: 7.0 APT prefers unstable APT policy: (990, 'unstable'), (500, 'stable-updates'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff -Nru soprano-2.7.6+dfsg.1/debian/changelog soprano-2.7.6+dfsg.1/debian/changelog --- soprano-2.7.6+dfsg.1/debian/changelog 2012-11-27 22:34:30.000000000 +0100 +++ soprano-2.7.6+dfsg.1/debian/changelog 2013-03-01 16:57:01.000000000 +0100 @@ -1,3 +1,12 @@ +soprano (2.7.6+dfsg.1-2wheezy1) testing-proposed-updates; urgency=low + + * Team upload. + * Upload to testing-proposed-updates. + * Add dont_use_virtuoso_default_port.diff, prevents hangs when installing or + running virtuoso as a standalone server. + + -- José Manuel Santamaría Lema <panfa...@gmail.com> Fri, 01 Mar 2013 16:56:04 +0100 + soprano (2.7.6+dfsg.1-2) unstable; urgency=low * Team upload. diff -Nru soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff --- soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff 1970-01-01 01:00:00.000000000 +0100 +++ soprano-2.7.6+dfsg.1/debian/patches/dont_use_virtuoso_default_port.diff 2013-03-01 16:55:13.000000000 +0100 @@ -0,0 +1,33 @@ +Author: José Manuel Santamaría Lema <panfa...@gmail.com> +Forwarded: https://projects.kde.org/projects/kdesupport/soprano/repository/revisions/3482b5fe +Description: If possible, don't use the default virtuso port (1111) + Soprano launches a Virtuoso server using an unix socket (/tmp/virt_XXXX where + XXXX is the tcp port specified in the configuration file). It tries first with + the /tmp/virt_1111 port if it's availaible, and if it's not, keeps trying with + above ports one by one until it finds an usuable /tmp/virt_XXXX. Starting with + 1111 is a very unfortunate choice, because if you start other virtuoso server + configured to use the same port (note that 1111 is the default), then it would + fail to start. It should fail and return, but currently it hangs. + . + When installing virtuoso-opensource-6.1, the postinst script will try to start + Virtuoso using the default 1111 port in order to change the admin password. So + the problem is the following: since the unix socket /tmp/virt_1111 is + (probably) already being used by the Virtuoso instance started by Soprano, the + Virtuoso instance started by the postinst script would hang (as explained in + the paragraph above), breaking the installation. +--- a/backends/virtuoso/virtuosocontroller.cpp ++++ b/backends/virtuoso/virtuosocontroller.cpp +@@ -56,11 +56,11 @@ namespace { + // } + #ifdef Q_OS_WIN + static QMutex portNumberMutex; +- static quint16 p = 1111; ++ static quint16 p = 1113; + QMutexLocker l(&portNumberMutex); + return p++; + #else +- int p = 1111; ++ int p = 1113; + while ( QFile::exists( QString( "/tmp/virt_%1" ).arg( p ) ) ) { + ++p; + } diff -Nru soprano-2.7.6+dfsg.1/debian/patches/series soprano-2.7.6+dfsg.1/debian/patches/series --- soprano-2.7.6+dfsg.1/debian/patches/series 2012-11-25 15:06:51.000000000 +0100 +++ soprano-2.7.6+dfsg.1/debian/patches/series 2013-03-01 16:55:13.000000000 +0100 @@ -2,3 +2,4 @@ disable_usr_lib_install_rpath.diff doxyfile_generate_tagfile.diff redland_raptor2_support.h +dont_use_virtuoso_default_port.diff