On Tue, Oct 28, 2008 at 06:18:10PM +0100, Alexandre Ratchov wrote: > this will add libsndio backend to libao, and make it the default. > The following ports use it: > > mpg321, vorbis-tools, tremor-tools, mpd > > I've changed diffs against ./configure and .in files to apply to > the corresponding .ac and .am files, and switched the port to use > autoconf and automake. Is this the correct approach?
this should make pushing the patches upstream easier, since it will be less work for upstream maintainers. so I think yes. > One remark about mpd: since it runs as user _mpd, if you're using > aucat, you'll have to change the permissions of /tmp/aucat.sock, > this will be fixed in aucat soon, though. > > -- Alexandre > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/audio/libao/Makefile,v > retrieving revision 1.41 > diff -u -p -r1.41 Makefile > --- Makefile 11 Dec 2007 22:02:11 -0000 1.41 > +++ Makefile 28 Oct 2008 09:42:31 -0000 > @@ -6,7 +6,7 @@ COMMENT-esd= ESounD module for portable > > VERSION= 0.8.8 > DISTNAME= libao-${VERSION} > -PKGNAME-main= libao-${VERSION}p0 > +PKGNAME-main= libao-${VERSION}p1 > PKGNAME-arts= libao-arts-${VERSION} > PKGNAME-esd= libao-esd-${VERSION} > CATEGORIES= audio > @@ -36,7 +36,10 @@ MULTI_PACKAGES+=-esd > > USE_LIBTOOL= Yes > SEPARATE_BUILD= simple > -CONFIGURE_STYLE=gnu > +AUTOCONF_VERSION = 2.61 > +AUTOMAKE_VERSION = 1.9 > +CONFIGURE_STYLE= no-autoheader automake autoconf > + > CONFIGURE_ARGS= ${CONFIGURE_SHARED} --enable-static > .if ${FLAVOR:L:Mno_arts} > CONFIGURE_ARGS+=--disable-arts > @@ -53,7 +56,7 @@ MODULES= devel/gettext > > LIB_DEPENDS-main= > RUN_DEPENDS-main= > -WANTLIB-main= pthread > +WANTLIB-main= pthread sndio > > LIB_DEPENDS-arts= ${MODGETTEXT_LIB_DEPENDS} \ > artsc::x11/kde/arts3 > @@ -64,6 +67,16 @@ WANTLIB-arts= glib-2.0 gmodule-2.0 gthr > LIB_DEPENDS-esd= esd.>=2::audio/esound > RUN_DEPENDS-esd= :libao-${VERSION}:audio/libao > WANTLIB-esd= audiofile m pthread > + > +post-patch: > + cp -r ${FILESDIR}/libsndio ${WRKSRC}/src/plugins > + cd ${WRKSRC}; AUTOCONF_VERSION=${AUTOCONF_VERSION} \ > + AUTOMAKE_VERSION=${AUTOMAKE_VERSION} aclocal > + > +pre-configure: > + cd ${WRKSRC}; AUTOCONF_VERSION=${AUTOCONF_VERSION} \ > + AUTOMAKE_VERSION=${AUTOMAKE_VERSION} automake \ > + --foreign --add-missing --copy > > pre-build: > @perl -i -pe 's:/etc/libao.conf:${SYSCONFDIR}/libao.conf:g' \ > Index: files/libsndio/Makefile.am > =================================================================== > RCS file: files/libsndio/Makefile.am > diff -N files/libsndio/Makefile.am > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ files/libsndio/Makefile.am 28 Oct 2008 09:42:31 -0000 > @@ -0,0 +1,26 @@ > +## Process this file with automake to produce Makefile.in > + > +AUTOMAKE_OPTIONS = foreign > + > +if HAVE_LIBSNDIO_AUDIO > + > +libsndioltlibs = libsndio.la > +libsndiosources = ao_libsndio.c > + > +else > + > +libsndioltlibs = > +libsndiosources = > + > +endif > + > +INCLUDES = -I$(top_builddir)/include/ao -I$(top_srcdir)/include > + > +libdir = $(plugindir) > +lib_LTLIBRARIES = $(libsndioltlibs) > + > +libsndio_la_LDFLAGS = @PLUGIN_LDFLAGS@ > +libsndio_la_LIBADD = -lsndio > +libsndio_la_SOURCES = $(libsndiosources) > + > +EXTRA_DIST = ao_libsndio.c > Index: files/libsndio/ao_libsndio.c > =================================================================== > RCS file: files/libsndio/ao_libsndio.c > diff -N files/libsndio/ao_libsndio.c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ files/libsndio/ao_libsndio.c 28 Oct 2008 09:42:31 -0000 > @@ -0,0 +1,112 @@ > +/* > + * > + * ao_libsndio.c libsndio > + * > + * Copyright (C) Alexandre Ratchov - 2008 > + * > + * libao is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2, or (at your option) > + * any later version. > + * > + * libao is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with GNU Make; see the file COPYING. If not, write to > + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. > + * > + */ > +#include <sndio.h> > +#include <ao/ao.h> > +#include <ao/plugin.h> > + > +ao_info ao_libsndio_info = { > + AO_TYPE_LIVE, > + "libsndio audio output", > + "libsndio", > + "Alexandre Ratchov <[EMAIL PROTECTED]>", > + "output using libsndio", > + AO_FMT_NATIVE, > + 30, > + NULL, /* no options */ > + 0 /* zero options */ > +}; > + > +int ao_plugin_test() > +{ > + struct sio_hdl *hdl; > + > + hdl = sio_open(NULL, SIO_PLAY, 0); > + if (hdl == NULL) > + return 0; > + sio_close(hdl); > + return 1; > +} > + > +ao_info *ao_plugin_driver_info(void) > +{ > + return &ao_libsndio_info; > +} > + > +int ao_plugin_device_init(ao_device *device) > +{ > + struct sio_hdl *hdl; > + > + hdl = sio_open(NULL, SIO_PLAY, 0); > + if (hdl == NULL) > + return 0; > + device->internal = hdl; > + return 1; > +} > + > +int ao_plugin_set_option(ao_device *device, const char *key, const char > *value) > +{ > + return 1; > +} > + > +int ao_plugin_open(ao_device *device, ao_sample_format *format) > +{ > + struct sio_hdl *hdl = (struct sio_hdl *)device->internal; > + struct sio_par par; > + > + sio_initpar(&par); > + par.sig = 1; > + par.le = SIO_LE_NATIVE; > + par.bits = format->bits; > + par.rate = format->rate; > + par.pchan = format->channels; > + if (!sio_setpar(hdl, &par)) > + return 0; > + device->driver_byte_format = AO_FMT_NATIVE; > + if (!sio_start(hdl)) > + return 0; > + return 1; > +} > + > +int ao_plugin_play(ao_device *device, const char *output_samples, uint_32 > num_bytes) > +{ > + struct sio_hdl *hdl = (struct sio_hdl *)device->internal; > + > + if (!sio_write(hdl, output_samples, num_bytes)) > + return 0; > + return 1; > +} > + > +int ao_plugin_close(ao_device *device) > +{ > + struct sio_hdl *hdl = (struct sio_hdl *)device->internal; > + > + if (!sio_stop(hdl)) > + return 0; > + return 1; > +} > + > +void ao_plugin_device_clear(ao_device *device) > +{ > + struct sio_hdl *hdl = (struct sio_hdl *)device->internal; > + > + sio_close(hdl); > +} > Index: patches/patch-configure > =================================================================== > RCS file: patches/patch-configure > diff -N patches/patch-configure > --- patches/patch-configure 12 Jul 2007 21:10:15 -0000 1.9 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,25 +0,0 @@ > -$OpenBSD: patch-configure,v 1.9 2007/07/12 21:10:15 naddy Exp $ > ---- configure.orig Thu May 24 12:51:52 2007 > -+++ configure Wed Jul 11 21:58:16 2007 > -@@ -20076,7 +20076,7 @@ if test -z "$GCC"; then > - *) > - PLUGIN_LDFLAGS="-export-dynamic -avoid-version" > - DEBUG="-g" > -- CFLAGS="-O" > -+ CFLAGS="" > - PROFILE="-g -p" ;; > - esac > - else > -@@ -20099,9 +20099,9 @@ else > - PROFILE="-g -pg -D__NO_MATH_INLINES -fsigned-char > -Ddlsym=dlsym_auto_underscore" ;; > - *) > - PLUGIN_LDFLAGS="-export-dynamic -avoid-version" > -- DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" > -- CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" > -- PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; > -+ DEBUG="-g -Wall -fsigned-char" > -+ CFLAGS="-fsigned-char" > -+ PROFILE="-g -pg -fsigned-char" ;; > - esac > - fi > - CFLAGS="$CFLAGS $cflags_save" > Index: patches/patch-configure_ac > =================================================================== > RCS file: patches/patch-configure_ac > diff -N patches/patch-configure_ac > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-configure_ac 28 Oct 2008 09:42:31 -0000 > @@ -0,0 +1,33 @@ > +--- configure.ac.orig Thu May 24 12:51:05 2007 > ++++ configure.ac Tue Oct 28 08:46:33 2008 > +@@ -90,9 +90,9 @@ else > + PROFILE="-g -pg -D__NO_MATH_INLINES -fsigned-char > -Ddlsym=dlsym_auto_underscore" ;; > + *) > + PLUGIN_LDFLAGS="-export-dynamic -avoid-version" > +- DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" > +- CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" > +- PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; > ++ DEBUG="-g -Wall -fsigned-char" > ++ CFLAGS="-O -fsigned-char" > ++ PROFILE="-O -g -pg -fsigned-char" ;; > + esac > + fi > + CFLAGS="$CFLAGS $cflags_save" > +@@ -300,6 +300,11 @@ dnl Check for Sun audio > + AC_CHECK_HEADERS(sys/audioio.h) > + AM_CONDITIONAL(HAVE_SUN_AUDIO,test "${ac_cv_header_sys_audioio_h}" = yes) > + > ++dnl Check for libsndio audio > ++ > ++AC_CHECK_HEADERS(sndio.h) > ++AM_CONDITIONAL(HAVE_LIBSNDIO_AUDIO,test "${ac_cv_header_sndio_h}" = yes) > ++ > + dnl Check for AIX audio > + > + case $host in > +@@ -415,4 +420,4 @@ dnl Plugins get special LDFLAGS > + AC_SUBST(PLUGIN_LDFLAGS) > + > + > +-AC_OUTPUT(Makefile src/Makefile doc/Makefile include/Makefile > include/ao/Makefile include/ao/os_types.h src/plugins/Makefile > src/plugins/esd/Makefile src/plugins/oss/Makefile src/plugins/alsa/Makefile > src/plugins/alsa09/Makefile src/plugins/sun/Makefile > src/plugins/irix/Makefile src/plugins/arts/Makefile > src/plugins/macosx/Makefile src/plugins/nas/Makefile > src/plugins/pulse/Makefile ao.pc) > ++AC_OUTPUT(Makefile src/Makefile doc/Makefile include/Makefile > include/ao/Makefile include/ao/os_types.h src/plugins/Makefile > src/plugins/esd/Makefile src/plugins/oss/Makefile src/plugins/alsa/Makefile > src/plugins/alsa09/Makefile src/plugins/sun/Makefile > src/plugins/irix/Makefile src/plugins/arts/Makefile > src/plugins/macosx/Makefile src/plugins/nas/Makefile > src/plugins/pulse/Makefile src/plugins/libsndio/Makefile ao.pc) > Index: patches/patch-doc_Makefile_am > =================================================================== > RCS file: patches/patch-doc_Makefile_am > diff -N patches/patch-doc_Makefile_am > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-doc_Makefile_am 28 Oct 2008 09:42:31 -0000 > @@ -0,0 +1,11 @@ > +--- doc/Makefile.am.old Mon Sep 29 17:50:24 2008 > ++++ doc/Makefile.am Mon Sep 29 17:50:37 2008 > +@@ -2,7 +2,7 @@ > + > + AUTOMAKE_OPTIONS = foreign > + > +-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) > ++docdir = $(datadir)/doc/$(PACKAGE) > + > + # We list all of these as opposed to using a wildcard so that > + # building outside the source directory works. > Index: patches/patch-doc_Makefile_in > =================================================================== > RCS file: patches/patch-doc_Makefile_in > diff -N patches/patch-doc_Makefile_in > --- patches/patch-doc_Makefile_in 12 Jul 2007 21:10:15 -0000 1.7 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,12 +0,0 @@ > -$OpenBSD: patch-doc_Makefile_in,v 1.7 2007/07/12 21:10:15 naddy Exp $ > ---- doc/Makefile.in.orig Wed Jul 11 21:56:58 2007 > -+++ doc/Makefile.in Wed Jul 11 21:57:09 2007 > -@@ -161,7 +161,7 @@ build_vendor = @build_vendor@ > - builddir = @builddir@ > - datadir = @datadir@ > - datarootdir = @datarootdir@ > --docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) > -+docdir = $(datadir)/doc/$(PACKAGE) > - dvidir = @dvidir@ > - exec_prefix = @exec_prefix@ > - host = @host@ > Index: patches/patch-src_plugins_Makefile_am > =================================================================== > RCS file: patches/patch-src_plugins_Makefile_am > diff -N patches/patch-src_plugins_Makefile_am > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_plugins_Makefile_am 28 Oct 2008 09:42:31 -0000 > @@ -0,0 +1,9 @@ > +--- src/plugins/Makefile.am.orig Thu May 24 11:19:07 2007 > ++++ src/plugins/Makefile.am Mon Sep 29 22:12:54 2008 > +@@ -1,4 +1,5 @@ > + ## Process this file with automake to produce Makefile.in > + > + AUTOMAKE_OPTIONS = foreign > +-SUBDIRS = oss esd arts alsa alsa09 sun irix macosx nas pulse > ++SUBDIRS = oss esd arts alsa alsa09 sun irix macosx nas pulse libsndio > ++AM_LIBTOOL_FLAGS = --tag=disable-static > Index: patches/patch-src_plugins_Makefile_in > =================================================================== > RCS file: patches/patch-src_plugins_Makefile_in > diff -N patches/patch-src_plugins_Makefile_in > --- patches/patch-src_plugins_Makefile_in 12 Jul 2007 21:10:15 -0000 > 1.3 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,12 +0,0 @@ > -$OpenBSD: patch-src_plugins_Makefile_in,v 1.3 2007/07/12 21:10:15 naddy Exp $ > ---- src/plugins/Makefile.in.orig Thu Jul 12 21:05:42 2007 > -+++ src/plugins/Makefile.in Thu Jul 12 21:06:21 2007 > -@@ -259,7 +259,7 @@ $(RECURSIVE_TARGETS): > - else \ > - local_target="$$target"; \ > - fi; \ > -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ > -+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) LIBTOOL="$(LIBTOOL) > --tag=disable-static" $$local_target) \ > - || eval $$failcom; \ > - done; \ > - if test "$$dot_seen" = "no"; then \ > Index: pkg/DESCR-main > =================================================================== > RCS file: /cvs/ports/audio/libao/pkg/DESCR-main,v > retrieving revision 1.1 > diff -u -p -r1.1 DESCR-main > --- pkg/DESCR-main 24 Nov 2006 16:22:21 -0000 1.1 > +++ pkg/DESCR-main 28 Oct 2008 09:42:31 -0000 > @@ -6,3 +6,4 @@ it currently supports: > * AU files > * WAV files > * sun (OpenBSD's native sound system) > + * libsndio (OpenBSD native sound system) > Index: pkg/PFRAG.shared-main > =================================================================== > RCS file: /cvs/ports/audio/libao/pkg/PFRAG.shared-main,v > retrieving revision 1.2 > diff -u -p -r1.2 PFRAG.shared-main > --- pkg/PFRAG.shared-main 12 Jul 2007 21:10:15 -0000 1.2 > +++ pkg/PFRAG.shared-main 28 Oct 2008 09:42:31 -0000 > @@ -1,6 +1,7 @@ > @comment $OpenBSD: PFRAG.shared-main,v 1.2 2007/07/12 21:10:15 naddy Exp $ > lib/ao/ > lib/ao/plugins-2/ > +lib/ao/plugins-2/libsndio.so > @comment lib/ao/plugins-2/libsun.la > lib/ao/plugins-2/libsun.so > @lib lib/libao.so.${LIBao_VERSION} > Index: pkg/PLIST-main > =================================================================== > RCS file: /cvs/ports/audio/libao/pkg/PLIST-main,v > retrieving revision 1.1 > diff -u -p -r1.1 PLIST-main > --- pkg/PLIST-main 24 Nov 2006 16:22:21 -0000 1.1 > +++ pkg/PLIST-main 28 Oct 2008 09:42:31 -0000 > @@ -7,6 +7,10 @@ include/ao/ > include/ao/ao.h > include/ao/os_types.h > include/ao/plugin.h > +lib/ao/plugins-2/libesd.a > +lib/ao/plugins-2/libsndio.a > +lib/ao/plugins-2/libsndio.la > +lib/ao/plugins-2/libsun.a > lib/libao.a > lib/libao.la > lib/pkgconfig/ > -- [EMAIL PROTECTED] SDF Public Access UNIX System - http://sdf.lonestar.org