Subject: Re: libdaap upgrade and tunesbrowser
To: None <tech-pkg@netbsd.org>
From: Antoine Reilles <Antoine.Reilles@loria.fr>
List: tech-pkg
Date: 03/09/2005 21:13:02
--s9fJI615cBHmzTOP
Content-Type: multipart/mixed; boundary="0eh6TmSyL6TZE2Uz"
Content-Disposition: inline


--0eh6TmSyL6TZE2Uz
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 09, 2005 at 01:44:59PM +0100, Antoine Reilles wrote:
> the recent update of libdaap broke the tunesbrowser package.
>=20
> I tried to build tunesbrowser-2.0, and did the necessary patches to make
> it work under -current.
> However, it builds fine now, but does not work, because of pthreads
> problems with libdaap.
I have looked at this problem more closely, and found that the bug was
due to a problem in libdaap. In thread.h, there was something like:

pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); \
pthread_mutexattr_destroy(&attr) ; \
pthread_mutex_init(& m, &attr); \

Be setting things in the correct order, i've got a working
tunesbrowser-2.0. I include here my patch to libopendaap (just add a
patch-aa for thread.h), and a patch for tunesbrowser-2.0. I know pkgsrc
is now frozen, but i was not able to build the old tunesbrowser with the
new libopendaap.

regards,
antoine


--0eh6TmSyL6TZE2Uz
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="libopendaap.diff"

Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/audio/libopendaap/distinfo,v
retrieving revision 1.5
diff -u -r1.5 distinfo
--- distinfo	7 Mar 2005 15:30:44 -0000	1.5
+++ distinfo	9 Mar 2005 20:08:23 -0000
@@ -3,6 +3,7 @@
 SHA1 (libopendaap-0.3.0.tar.bz2) = 21817a7886ffc8c4d88c621231569562c61356db
 RMD160 (libopendaap-0.3.0.tar.bz2) = 2218783e40e7f48a7b89b2e27145e4964f7dd687
 Size (libopendaap-0.3.0.tar.bz2) = 365682 bytes
+SHA1 (patch-aa) = 46069794c86a4687eecec576a3d3c0cf56fcd36c
 SHA1 (patch-ab) = 3bd01a3038505721149a8ea56f564442b035cee4
 SHA1 (patch-ac) = d723c22d11df6d511290d45ccb54861fbecc178d
 SHA1 (patch-ad) = 88b72f80e4a6ed68f7ae74ace3f3dbf07709c0b1
--- /dev/null	2005-03-09 21:03:18.000000000 +0100
+++ patches/patch-aa	2005-03-09 21:00:04.000000000 +0100
@@ -0,0 +1,12 @@
+--- thread.h.orig	2005-03-09 20:59:09.000000000 +0100
++++ thread.h	2005-03-09 20:59:23.000000000 +0100
+@@ -42,8 +42,8 @@
+         pthread_mutexattr_t attr; \
+         pthread_mutexattr_init(&attr) ; \
+         pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); \
+-        pthread_mutexattr_destroy(&attr) ; \
+         pthread_mutex_init(& m, &attr); \
++        pthread_mutexattr_destroy(&attr) ; \
+     } while (0)
+ #define ts_mutex_lock(m)              pthread_mutex_lock(& m)
+ #define ts_mutex_unlock(m)            pthread_mutex_unlock(& m)

--0eh6TmSyL6TZE2Uz
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="tunesbrowser-2.0.diff"
Content-Transfer-Encoding: quoted-printable

Index: Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvsroot/pkgsrc/audio/tunesbrowser/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- Makefile	3 Oct 2004 00:13:10 -0000	1.2
+++ Makefile	9 Mar 2005 20:07:35 -0000
@@ -1,8 +1,7 @@
 # $NetBSD: Makefile,v 1.2 2004/10/03 00:13:10 tv Exp $
 #
=20
-DISTNAME=3D		tunesbrowser-0.1.5
-PKGREVISION=3D	1
+DISTNAME=3D		tunesbrowser-0.2.0
 CATEGORIES=3D		audio
 MASTER_SITES=3D		http://crazney.net/programs/itunes/files/
 EXTRACT_SUFX=3D		.tar.bz2
@@ -16,6 +15,8 @@
 USE_LIBTOOL=3D		yes
 LIBTOOL_OVERRIDE=3D	${WRKSRC}/libtool
=20
+CONFIGURE_ARGS+=3D --datadir=3D${PREFIX}/share/tunesbrowser
+
 DEPENDS+=3D		mad>=3D0.15.0b:../../audio/mad
=20
 .include "../../audio/gst-plugins-artsd/buildlink3.mk"
@@ -25,5 +26,6 @@
 .include "../../devel/libglade2/buildlink3.mk"
 .include "../../devel/pkgconfig/buildlink3.mk"
 .include "../../multimedia/gstreamer/buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
=20
 .include "../../mk/bsd.pkg.mk"
Index: PLIST
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvsroot/pkgsrc/audio/tunesbrowser/PLIST,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 PLIST
--- PLIST	20 Jun 2004 20:41:22 -0000	1.1.1.1
+++ PLIST	9 Mar 2005 20:07:35 -0000
@@ -1,3 +1,9 @@
-@comment $NetBSD: PLIST,v 1.1.1.1 2004/06/20 20:41:22 agc Exp $
+@comment $NetBSD$
 bin/tunesbrowser
-share/tunesbrowser.glade
+man/man1/tunesbrowser.1
+share/tunesbrowser/comp.blue.png
+share/tunesbrowser/comp.red.png
+share/tunesbrowser/sound1.png
+share/tunesbrowser/sound2.png
+share/tunesbrowser/tunesbrowser.glade
+@dirrm share/tunesbrowser
Index: distinfo
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvsroot/pkgsrc/audio/tunesbrowser/distinfo,v
retrieving revision 1.3
diff -u -r1.3 distinfo
--- distinfo	23 Feb 2005 20:39:53 -0000	1.3
+++ distinfo	9 Mar 2005 20:07:35 -0000
@@ -1,9 +1,6 @@
 $NetBSD: distinfo,v 1.3 2005/02/23 20:39:53 agc Exp $
=20
-SHA1 (tunesbrowser-0.1.5.tar.bz2) =3D 31feff440625d2dad664b7e9fb8ec4055aa1=
51ef
-RMD160 (tunesbrowser-0.1.5.tar.bz2) =3D baba93b8c66ddbd39811c2e69b9186fce7=
f6fdfa
-Size (tunesbrowser-0.1.5.tar.bz2) =3D 190729 bytes
-SHA1 (patch-aa) =3D 39d837625a837d4c927bd220d3f3e030b4b122bd
-SHA1 (patch-ab) =3D d9da00f2daf4cdb33ea69f51ffb294f7130765d7
-SHA1 (patch-ac) =3D c0bad452914fb27e73713c2026f33aa3a4bb74d5
-SHA1 (patch-ad) =3D 99d5bcac138e5b7e936c288e7531f2b3c5458c83
+SHA1 (tunesbrowser-0.2.0.tar.bz2) =3D 79195c25d6f6bfdeebe9b1e8eb34b5ca0e18=
5764
+RMD160 (tunesbrowser-0.2.0.tar.bz2) =3D 365aee4d25f4a77efb751b268874bcf0ec=
64db70
+Size (tunesbrowser-0.2.0.tar.bz2) =3D 208472 bytes
+SHA1 (patch-aa) =3D b437f835f3c1614c3bdc73f3eb99e51395bfacf5
Index: patches/patch-aa
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvsroot/pkgsrc/audio/tunesbrowser/patches/patch-aa,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 patch-aa
--- patches/patch-aa	20 Jun 2004 20:41:22 -0000	1.1.1.1
+++ patches/patch-aa	9 Mar 2005 20:07:35 -0000
@@ -1,53 +1,25 @@
-$NetBSD: patch-aa,v 1.1.1.1 2004/06/20 20:41:22 agc Exp $
-
---- configure	2004/06/05 22:49:11	1.1
-+++ configure	2004/06/05 22:49:43
-@@ -19625,23 +19625,23 @@
-   else
-      PKG_CONFIG_MIN_VERSION=3D0.9.0
-      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; =
then
--        echo "$as_me:$LINENO: checking for opendaap libglade-2.0 gstreame=
r-0.6" >&5
--echo $ECHO_N "checking for opendaap libglade-2.0 gstreamer-0.6... $ECHO_C=
" >&6
-+        echo "$as_me:$LINENO: checking for opendaap libglade-2.0 gstreame=
r-0.8" >&5
-+echo $ECHO_N "checking for opendaap libglade-2.0 gstreamer-0.8... $ECHO_C=
" >&6
+--- main.c.orig	2005-03-09 16:08:32.000000000 +0100
++++ main.c	2005-03-09 16:09:04.000000000 +0100
+@@ -38,7 +38,7 @@
+ {
+     fprintf(stderr, "Oops! TunesBrowser has crashed. Sorry about that!\n"=
);
+     fprintf(stderr, "This probably won't be of any use unless you feel li=
ke debugging,\n");
+-    fprintf(stderr, "but the crash occured because of %p being bad.\n", s=
iginfo->si_ptr);
++    fprintf(stderr, "but the crash occured because of %p being bad.\n", s=
iginfo->si_addr);
+ #if 0
+     fprintf(stderr, "\n\nRaised SIGSTOP. You can now attach a debugger.\n=
");
+     fprintf(stderr, "Attach to PID %i\n", getpid());
+@@ -66,11 +66,11 @@
+     int ret;
 =20
--        if $PKG_CONFIG --exists "opendaap libglade-2.0 gstreamer-0.6" ; t=
hen
-+        if $PKG_CONFIG --exists "opendaap libglade-2.0 gstreamer-0.8" ; t=
hen
-             echo "$as_me:$LINENO: result: yes" >&5
- echo "${ECHO_T}yes" >&6
-             succeeded=3Dyes
+     sa.sa_handler =3D (void*)sighandler_sigsegv;
+-    sa.sa_flags =3D SA_NOMASK | SA_SIGINFO;
++    sa.sa_flags =3D SA_NODEFER | SA_SIGINFO;
+     ret =3D sigaction(SIGSEGV, &sa, NULL);
 =20
-             echo "$as_me:$LINENO: checking TB_CFLAGS" >&5
- echo $ECHO_N "checking TB_CFLAGS... $ECHO_C" >&6
--            TB_CFLAGS=3D`$PKG_CONFIG --cflags "opendaap libglade-2.0 gstr=
eamer-0.6"`
-+            TB_CFLAGS=3D`$PKG_CONFIG --cflags "opendaap libglade-2.0 gstr=
eamer-0.8"`
-             echo "$as_me:$LINENO: result: $TB_CFLAGS" >&5
- echo "${ECHO_T}$TB_CFLAGS" >&6
-=20
-             echo "$as_me:$LINENO: checking TB_LIBS" >&5
- echo $ECHO_N "checking TB_LIBS... $ECHO_C" >&6
--            TB_LIBS=3D`$PKG_CONFIG --libs "opendaap libglade-2.0 gstreame=
r-0.6"`
-+            TB_LIBS=3D`$PKG_CONFIG --libs "opendaap libglade-2.0 gstreame=
r-0.8"`
-             echo "$as_me:$LINENO: result: $TB_LIBS" >&5
- echo "${ECHO_T}$TB_LIBS" >&6
-         else
-@@ -19649,7 +19649,7 @@
-             TB_LIBS=3D""
-             ## If we have a custom action on failure, don't print errors,=
 but
-             ## do set a variable so people can do so.
--            TB_PKG_ERRORS=3D`$PKG_CONFIG --errors-to-stdout --print-error=
s "opendaap libglade-2.0 gstreamer-0.6"`
-+            TB_PKG_ERRORS=3D`$PKG_CONFIG --errors-to-stdout --print-error=
s "opendaap libglade-2.0 gstreamer-0.8"`
-             echo $TB_PKG_ERRORS
-         fi
-=20
-@@ -19664,8 +19664,8 @@
-   if test $succeeded =3D yes; then
-      :
-   else
--     { { echo "$as_me:$LINENO: error: Library requirements (opendaap libg=
lade-2.0 gstreamer-0.6) not met; consider adjusting the PKG_CONFIG_PATH env=
ironment variable if your libraries are in a nonstandard prefix so pkg-conf=
ig can find them." >&5
--echo "$as_me: error: Library requirements (opendaap libglade-2.0 gstreame=
r-0.6) not met; consider adjusting the PKG_CONFIG_PATH environment variable=
 if your libraries are in a nonstandard prefix so pkg-config can find them.=
" >&2;}
-+     { { echo "$as_me:$LINENO: error: Library requirements (opendaap libg=
lade-2.0 gstreamer-0.8) not met; consider adjusting the PKG_CONFIG_PATH env=
ironment variable if your libraries are in a nonstandard prefix so pkg-conf=
ig can find them." >&5
-+echo "$as_me: error: Library requirements (opendaap libglade-2.0 gstreame=
r-0.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable=
 if your libraries are in a nonstandard prefix so pkg-config can find them.=
" >&2;}
-    { (exit 1); exit 1; }; }
-   fi
+     sa.sa_handler =3D (void*)sighandler_sigpipe;
+-    sa.sa_flags =3D SA_NOMASK | SA_SIGINFO;
++    sa.sa_flags =3D SA_NODEFER | SA_SIGINFO;
+     ret =3D sigaction(SIGPIPE, &sa, NULL);
+ }
 =20

--0eh6TmSyL6TZE2Uz--

--s9fJI615cBHmzTOP
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (NetBSD)

iD8DBQFCL1jO4VqmoGDE/mwRAh3xAJ9R8ZuutKEDl7zIeg40u99ufctSGACfVOAP
S6JlTZTehGhgEXkvOtNmCak=
=U/C1
-----END PGP SIGNATURE-----

--s9fJI615cBHmzTOP--