NetBSD Problem Report #43420

From sjamaan@frohike.homeunix.org  Sat Jun  5 17:11:34 2010
Return-Path: <sjamaan@frohike.homeunix.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id E666263B8EB
	for <gnats-bugs@gnats.NetBSD.org>; Sat,  5 Jun 2010 17:11:33 +0000 (UTC)
Message-Id: <20100605161030.E5946F7E020@frohike.homeunix.org>
Date: Sat,  5 Jun 2010 18:10:30 +0200 (CEST)
From: Peter.Bex@xs4all.nl
Reply-To: Peter.Bex@xs4all.nl
To: gnats-bugs@gnats.NetBSD.org
Subject: audio/pulseaudio has too many nonoptional dependencies
X-Send-Pr-Version: 3.95

>Number:         43420
>Category:       pkg
>Synopsis:       pulseaudio's dependencies are mostly optional but not in pkgsrc
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sat Jun 05 17:15:00 +0000 2010
>Originator:     Peter Bex
>Release:        NetBSD 5.0.1_PATCH
>Organization:

>Environment:


System: NetBSD frohike.homeunix.org 5.0.1_PATCH NetBSD 5.0.1_PATCH (FROHIKE) #0: Tue Aug 11 22:31:56 CEST 2009 sjamaan@frohike.homeunix.org:/usr/obj/sys/arch/amd64/compile/FROHIKE amd64
Architecture: x86_64
Machine: amd64
>Description:
	Several of audio/pulseaudio's dependencies that are listed in the
	package as hard dependencies are in reality optional.
>How-To-Repeat:
	$ cd /usr/pkgsrc/audio/pulseaudio
	$ make print-run-depends-list

>Fix:
	Here's a patch to make most optional dependencies into PKG_OPTIONS

	This makes a difference of up to 10 packages that don't have to
	be installed when the user doesn't need or want them.
	If the user doesn't want X11 and it triggers installation of
	Xorg from pkgsrc, it makes a much bigger difference obviously.

	Alternatively, the separate modules/options could probably be
	made into separate packages (much like libao has libao-esound,
	libao-arts etc) but I'll leave that to the real pkgsrc gurus :)
	I've seen it in some Linux distros, so I guess it's at least possible.
	This patch is sufficient for my purposes.


Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/audio/pulseaudio/Makefile,v
retrieving revision 1.35
diff -u -r1.35 Makefile
--- Makefile	22 Feb 2010 21:48:03 -0000	1.35
+++ Makefile	5 Jun 2010 16:05:46 -0000
@@ -24,7 +24,6 @@
 AUTOCONF_REQD=	2.62

 PKGCONFIG_OVERRIDE+=	libpulse-browse.pc.in
-PKGCONFIG_OVERRIDE+=	libpulse-mainloop-glib.pc.in
 PKGCONFIG_OVERRIDE+=	libpulse-simple.pc.in
 PKGCONFIG_OVERRIDE+=	libpulse.pc.in

@@ -41,8 +40,6 @@
 CONF_FILES+=	${EGDIR}/daemon.conf ${PKG_SYSCONFDIR}/daemon.conf
 CONF_FILES+=	${EGDIR}/default.pa ${PKG_SYSCONFDIR}/default.pa
 CONF_FILES+=	${EGDIR}/system.pa ${PKG_SYSCONFDIR}/system.pa
-CONF_FILES+=	${EGDIR}/pulseaudio-system.conf \
-		${PKG_SYSCONFBASE}/dbus-1/system.d/pulseaudio-system.conf

 CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFBASE}
 CONFIGURE_ARGS+=	--localstatedir=${VARBASE}
@@ -71,7 +68,7 @@
 BUILDLINK_TRANSFORM+=	rm:-Wl,--no-undefined
 .endif

-PLIST_VARS+=		evdev hal oss
+PLIST_VARS+=		evdev oss
 PLIST_SUBST+=		PULSEAUDIO_VER=${PULSEAUDIO_VER:Q}

 .if ${OPSYS} == "Darwin"
@@ -79,7 +76,6 @@
 BUILDLINK_TRANSFORM+=	rm:-Wl,-no-undefined
 BUILDLINK_TRANSFORM+=	rm:-Wl,-z rm:-Wl,nodelete
 .else
-PLIST.hal=		yes
 PLIST.oss=		yes
 .endif

@@ -113,21 +109,7 @@
 .include "../../audio/libsndfile/buildlink3.mk"
 .include "../../audio/speex/buildlink3.mk"
 .include "../../databases/gdbm/buildlink3.mk"
-.include "../../devel/GConf/schemas.mk"
-.include "../../devel/glib2/buildlink3.mk"
 .include "../../devel/libltdl/buildlink3.mk"
 .include "../../devel/liboil/buildlink3.mk"
-.include "../../security/openssl/buildlink3.mk"
-.include "../../security/policykit/buildlink3.mk"
-.include "../../sysutils/dbus/buildlink3.mk"
-.if ${OPSYS} != "Darwin"
-.include "../../sysutils/consolekit/buildlink3.mk"
-.endif
-.include "../../sysutils/hal/buildlink3.mk"
-.include "../../x11/libICE/buildlink3.mk"
-.include "../../x11/libSM/buildlink3.mk"
-.include "../../x11/libX11/buildlink3.mk"
-.include "../../x11/libXtst/buildlink3.mk"
-.include "../../x11/xextproto/buildlink3.mk"
 .include "../../mk/oss.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/audio/pulseaudio/PLIST,v
retrieving revision 1.7
diff -u -r1.7 PLIST
--- PLIST	2 Feb 2010 11:35:11 -0000	1.7
+++ PLIST	5 Jun 2010 16:05:46 -0000
@@ -9,10 +9,10 @@
 bin/parec
 bin/parecord
 bin/pasuspender
-bin/pax11publish
+${PLIST.x11}bin/pax11publish
 bin/pulseaudio
 bin/start-pulseaudio-kde
-bin/start-pulseaudio-x11
+${PLIST.x11}bin/start-pulseaudio-x11
 include/pulse/cdecl.h
 include/pulse/channelmap.h
 include/pulse/context.h
@@ -21,7 +21,7 @@
 include/pulse/ext-device-manager.h
 include/pulse/ext-stream-restore.h
 include/pulse/gccmacro.h
-include/pulse/glib-mainloop.h
+${PLIST.glib2}include/pulse/glib-mainloop.h
 include/pulse/introspect.h
 include/pulse/mainloop-api.h
 include/pulse/mainloop-signal.h
@@ -42,14 +42,14 @@
 include/pulse/version.h
 include/pulse/volume.h
 include/pulse/xmalloc.h
-lib/libpulse-mainloop-glib.la
+${PLIST.glib2}lib/libpulse-mainloop-glib.la
 lib/libpulse-simple.la
 lib/libpulse.la
 lib/libpulsecommon-${PULSEAUDIO_VER}.la
 lib/libpulsecore-${PULSEAUDIO_VER}.la
 ${PLIST.oss}lib/libpulsedsp.a
 ${PLIST.oss}lib/libpulsedsp.so
-lib/pkgconfig/libpulse-mainloop-glib.pc
+${PLIST.glib2}lib/pkgconfig/libpulse-mainloop-glib.pc
 lib/pkgconfig/libpulse-simple.pc
 lib/pkgconfig/libpulse.pc
 lib/pulse-${PULSEAUDIO_VER}/modules/libcli.a
@@ -66,8 +66,8 @@
 lib/pulse-${PULSEAUDIO_VER}/modules/libprotocol-native.so
 lib/pulse-${PULSEAUDIO_VER}/modules/libprotocol-simple.a
 lib/pulse-${PULSEAUDIO_VER}/modules/libprotocol-simple.so
-lib/pulse-${PULSEAUDIO_VER}/modules/libraop.a
-lib/pulse-${PULSEAUDIO_VER}/modules/libraop.so
+${PLIST.openssl}lib/pulse-${PULSEAUDIO_VER}/modules/libraop.a
+${PLIST.openssl}lib/pulse-${PULSEAUDIO_VER}/modules/libraop.so
 lib/pulse-${PULSEAUDIO_VER}/modules/librtp.a
 lib/pulse-${PULSEAUDIO_VER}/modules/librtp.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-always-sink.a
@@ -84,8 +84,8 @@
 lib/pulse-${PULSEAUDIO_VER}/modules/module-cli.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-combine.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-combine.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-console-kit.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-console-kit.so
+${PLIST.consolekit}lib/pulse-${PULSEAUDIO_VER}/modules/module-console-kit.a
+${PLIST.consolekit}lib/pulse-${PULSEAUDIO_VER}/modules/module-console-kit.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-cork-music-on-phone.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-cork-music-on-phone.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-default-device-restore.a
@@ -106,8 +106,8 @@
 lib/pulse-${PULSEAUDIO_VER}/modules/module-esound-protocol-unix.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-esound-sink.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-esound-sink.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-gconf.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-gconf.so
+${PLIST.GConf}lib/pulse-${PULSEAUDIO_VER}/modules/module-gconf.a
+${PLIST.GConf}lib/pulse-${PULSEAUDIO_VER}/modules/module-gconf.so
 ${PLIST.hal}lib/pulse-${PULSEAUDIO_VER}/modules/module-hal-detect.a
 ${PLIST.hal}lib/pulse-${PULSEAUDIO_VER}/modules/module-hal-detect.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-http-protocol-tcp.a
@@ -140,8 +140,8 @@
 lib/pulse-${PULSEAUDIO_VER}/modules/module-pipe-source.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-position-event-sounds.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-position-event-sounds.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-raop-sink.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-raop-sink.so
+${PLIST.openssl}lib/pulse-${PULSEAUDIO_VER}/modules/module-raop-sink.a
+${PLIST.openssl}lib/pulse-${PULSEAUDIO_VER}/modules/module-raop-sink.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-remap-sink.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-remap-sink.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-rescue-streams.a
@@ -150,8 +150,8 @@
 lib/pulse-${PULSEAUDIO_VER}/modules/module-rtp-recv.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-rtp-send.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-rtp-send.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-rygel-media-server.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-rygel-media-server.so
+${PLIST.dbus}lib/pulse-${PULSEAUDIO_VER}/modules/module-rygel-media-server.a
+${PLIST.dbus}lib/pulse-${PULSEAUDIO_VER}/modules/module-rygel-media-server.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-simple-protocol-tcp.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-simple-protocol-tcp.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-simple-protocol-unix.a
@@ -170,15 +170,15 @@
 lib/pulse-${PULSEAUDIO_VER}/modules/module-tunnel-source.so
 lib/pulse-${PULSEAUDIO_VER}/modules/module-volume-restore.a
 lib/pulse-${PULSEAUDIO_VER}/modules/module-volume-restore.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-bell.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-bell.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-cork-request.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-cork-request.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-publish.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-publish.so
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-xsmp.a
-lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-xsmp.so
-libexec/pulse/gconf-helper
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-bell.a
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-bell.so
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-cork-request.a
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-cork-request.so
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-publish.a
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-publish.so
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-xsmp.a
+${PLIST.x11}lib/pulse-${PULSEAUDIO_VER}/modules/module-x11-xsmp.so
+${PLIST.GConf}libexec/pulse/gconf-helper
 man/man1/esdcompat.1
 man/man1/pabrowse.1
 man/man1/pacat.1
@@ -187,7 +187,7 @@
 man/man1/padsp.1
 man/man1/paplay.1
 man/man1/pasuspender.1
-man/man1/pax11publish.1
+${PLIST.x11}man/man1/pax11publish.1
 man/man1/pulseaudio.1
 man/man5/default.pa.5
 man/man5/pulse-client.conf.5
@@ -197,8 +197,8 @@
 share/examples/pulseaudio/default.pa
 share/examples/pulseaudio/pulseaudio-system.conf
 share/examples/pulseaudio/system.pa
-share/gnome/autostart/pulseaudio-kde.desktop
-share/gnome/autostart/pulseaudio.desktop
+${PLIST.x11}share/gnome/autostart/pulseaudio-kde.desktop
+${PLIST.x11}share/gnome/autostart/pulseaudio.desktop
 share/locale/as/LC_MESSAGES/pulseaudio.mo
 share/locale/bn_IN/LC_MESSAGES/pulseaudio.mo
 share/locale/ca/LC_MESSAGES/pulseaudio.mo
Index: buildlink3.mk
===================================================================
RCS file: /cvsroot/pkgsrc/audio/pulseaudio/buildlink3.mk,v
retrieving revision 1.7
diff -u -r1.7 buildlink3.mk
--- buildlink3.mk	11 Feb 2010 17:52:10 -0000	1.7
+++ buildlink3.mk	5 Jun 2010 16:05:46 -0000
@@ -10,18 +10,31 @@

 .include "../../mk/bsd.fast.prefs.mk"

+pkgbase := pulseaudio
+.include "../../mk/pkg-build-options.mk"
+
 .if ${OPSYS} == "NetBSD" && !exists(/usr/include/sys/atomic.h)
 .include "../../devel/libatomic_ops/buildlink3.mk"
 .endif

 .include "../../audio/libsndfile/buildlink3.mk"
 .include "../../databases/gdbm/buildlink3.mk"
+
+.if !empty(PKG_BUILD_OPTIONS.pulseaudio:Mglib2)
 .include "../../devel/glib2/buildlink3.mk"
+.endif
+
+.if !empty(PKG_BUILD_OPTIONS.pulseaudio:Mdbus)
 .include "../../sysutils/dbus/buildlink3.mk"
+.endif
+
+.if !empty(PKG_BUILD_OPTIONS.pulseaudio:Mx11)
 .include "../../x11/libICE/buildlink3.mk"
 .include "../../x11/libSM/buildlink3.mk"
 .include "../../x11/libX11/buildlink3.mk"
 .include "../../x11/libXtst/buildlink3.mk"
+.endif
+
 .endif # PULSEAUDIO_BUILDLINK3_MK

 BUILDLINK_TREE+=	-pulseaudio
Index: options.mk
===================================================================
RCS file: /cvsroot/pkgsrc/audio/pulseaudio/options.mk,v
retrieving revision 1.2
diff -u -r1.2 options.mk
--- options.mk	21 Jan 2010 12:12:27 -0000	1.2
+++ options.mk	5 Jun 2010 16:05:46 -0000
@@ -1,8 +1,13 @@
 # $NetBSD: options.mk,v 1.2 2010/01/21 12:12:27 drochner Exp $

 PKG_OPTIONS_VAR=	PKG_OPTIONS.pulseaudio
-PKG_SUPPORTED_OPTIONS=	avahi
+PKG_SUPPORTED_OPTIONS=	avahi dbus policykit glib2 GConf openssl x11
+.if ${OPSYS} != "Darwin"
+PKG_SUPPORTED_OPTIONS+=	hal
+.endif
+PKG_SUGGESTED_OPTIONS=	x11
 PLIST_VARS+=		${PKG_SUPPORTED_OPTIONS}
+PLIST_VARS+=		consolekit
 .include "../../mk/bsd.options.mk"

 ###
@@ -14,3 +19,82 @@
 .else
 CONFIGURE_ARGS+=	--disable-avahi
 .endif
+
+###
+### dbus
+###
+.if !empty(PKG_OPTIONS:Mdbus)
+CONF_FILES+=	${EGDIR}/pulseaudio-system.conf \
+		${PKG_SYSCONFBASE}/dbus-1/system.d/pulseaudio-system.conf
+.include "../../sysutils/dbus/buildlink3.mk"
+.if ${OPSYS} != "Darwin"
+.include "../../sysutils/consolekit/buildlink3.mk"
+PLIST.consolekit=	yes
+.endif
+.else
+CONFIGURE_ARGS+=	--disable-dbus
+.endif
+
+###
+### hal
+###
+.if !empty(PKG_OPTIONS:Mhal)
+.include "../../sysutils/hal/buildlink3.mk"
+PLIST.hal=		yes
+.else
+CONFIGURE_ARGS+=	--disable-hal
+.endif
+
+###
+### policykit
+###
+.if !empty(PKG_OPTIONS:Mpolicykit)
+.include "../../security/policykit/buildlink3.mk"
+.else
+CONFIGURE_ARGS+=	--disable-policykit
+.endif
+
+###
+### glib2
+###
+.if !empty(PKG_OPTIONS:Mglib2)
+.include "../../devel/glib2/buildlink3.mk"
+PLIST.glib2=		yes
+.else
+CONFIGURE_ARGS+=	--disable-glib2
+PKGCONFIG_OVERRIDE+=	libpulse-mainloop-glib.pc.in
+.endif
+
+###
+### GConf
+###
+.if !empty(PKG_OPTIONS:MGConf)
+.include "../../devel/GConf/schemas.mk"
+PLIST.GConf=		yes
+.else
+CONFIGURE_ARGS+=	--disable-gconf
+.endif
+
+###
+### openssl (used for Airtunes/RAOP)
+###
+.if !empty(PKG_OPTIONS:Mopenssl)
+.include "../../security/openssl/buildlink3.mk"
+PLIST.openssl=		yes
+.else
+CONFIGURE_ARGS+=	--disable-openssl
+.endif
+
+###
+### x11
+###
+.if !empty(PKG_OPTIONS:Mx11)
+.include "../../x11/libICE/buildlink3.mk"
+.include "../../x11/libSM/buildlink3.mk"
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXtst/buildlink3.mk"
+.include "../../x11/xextproto/buildlink3.mk"
+PLIST.x11=		yes
+.else
+CONFIGURE_ARGS+=	--disable-x11
+.endif

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.