Here is a diff incorporating sthen@'s feedback and tj@'s feedback to add
a comment about mirroring.
Stuart Henderson writes:
> On 2021/10/28 22:36, Nam Nguyen wrote:
>> I prepared a release tarball from a checkout:
>> install groff for tbl and nroff
>> install autoconf-archive, autoconf and automake
>> edit src/Makefile.am append "libsox.sym" to EXTRA_DIST (needed to avoid
>> compilation error)
>> edit configure.ac: 14.4.3git --> 14.4.2pl20210509
>> $ AUTOCONF_VERSION=2.69 AUTOMAKE_VERSION=1.16 autoreconf-2.69 -i
>> $ ./configure
>> $ gmake dist
>
> I would prefer it if those extra steps were done in the port, either as
> a "dist" target to generate the tar, or as steps in the normal build
> so that it can use an unmodified archive from git. Alternatively (less
> preferred but I would still be ok with it) with comments showing how
> to do it. Bsaically so that somebody else wanting to update it doesn't
> need to figure it out for themselves.
It has a new dist target copied from net/librenms. scp is sent to my
server, so that would have to be modified. GIT_V is also set to
14.4.3git. I use `make dist' instead of `gmake dist' and it still seems
to work.
I had to add some BUILD_DEPENDS for the dist target: autoconf, automake,
libtool, groff and autoconf-archive. I retain CONFIURE_STYLE=gnu.
> Could you remove that please - sox doesn't use libopus functions directly,
> only uses other libraries which call those functions. This changed because
> sox now uses -Wl,--as-needed.
`make port-lib-depends' wants to remove LIB_DEPENDS=audio/opus but I
kept it in for clarity. I removed WANTLIB opus.
>
>> - --without-amrwb \
>> - --without-amrnb \
>
>> + --enable-formats=no \
>
> Though --enable-formats=no stops it from building the amr format
> support, I think it would be better to disable it detecting it at all,
> i.e.
>
> --without-opencore-amrnb \
> --without-opencore-amrwb \
It complains about "configure: WARNING: unrecognized options:
--without-opencore-amrnb, --without-opencore-amrwb."
As intended, it still skips over the check because this used to be
printed but is no longer printed:
checking for opencore-amrnb/interf_dec.h... no
checking for opencore-amrwb/dec_if.h... no
Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/sox/Makefile,v
retrieving revision 1.72
diff -u -p -u -p -r1.72 Makefile
--- Makefile 12 Jul 2019 20:43:41 -0000 1.72
+++ Makefile 30 Oct 2021 21:20:51 -0000
@@ -1,12 +1,12 @@
# $OpenBSD: Makefile,v 1.72 2019/07/12 20:43:41 sthen Exp $
-BROKEN-hppa = bend.c:155:12: internal compiler error: in
expand_expr_addr_expr_1, at expr.c:7697
-
COMMENT= Sound eXchange, the Swiss Army knife of audio manipulation
-DISTNAME= sox-14.4.2
-REVISION= 5
-SHARED_LIBS += sox 4.0 # 3.0
+V= 14.4.2pl20210509
+# see AC_INIT in ${WRKSRC}/configure.ac
+GIT_V= 14.4.3git
+DISTNAME= sox-${V}
+SHARED_LIBS += sox 4.1 # 3.0
CATEGORIES= audio
HOMEPAGE= http://sox.sourceforge.net/
@@ -18,10 +18,15 @@ PERMIT_PACKAGE= Yes
WANTLIB += c m z sndio
WANTLIB += FLAC gsm mad id3tag mp3lame ogg
WANTLIB += sndfile vorbis vorbisenc vorbisfile
-WANTLIB += opus opusfile twolame wavpack
-WANTLIB += iconv png
+WANTLIB += opusfile twolame wavpack
+WANTLIB += png
+
+GITWEB_URL= https://sourceforge.net/code-snapshots/git
+GIT_COMMIT= 42b3557e13e0fe01a83465b672d89faddbe65f49
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sox/}
+# mirror git checkout as tarball for latest fixes until new release.
+# see dist: target and `make dist' to generate tarball.
+MASTER_SITES= https://namtsui.com/source/
# see CONFIGURE_ARGS below
LIB_DEPENDS= \
@@ -37,58 +42,81 @@ LIB_DEPENDS= \
audio/opusfile \
audio/twolame \
audio/wavpack \
- converters/libiconv \
graphics/png
CONFIGURE_STYLE=gnu
+
+AUTOCONF_VERSION= 2.69
+AUTOMAKE_VERSION= 1.16
+BUILD_DEPENDS= ${MODGNU_AUTOCONF_DEPENDS} \
+ ${MODGNU_AUTOMAKE_DEPENDS} \
+ devel/libtool \
+ textproc/groff \
+ devel/autoconf-archive
+
CONFIGURE_ARGS= --datarootdir=${LOCALBASE} \
- --enable-largefile \
- --disable-silent-libtool \
- --disable-openmp \
- --enable-symlinks \
- --without-libltdl \
+ --enable-largefile \
+ --enable-symlinks \
+ --without-libltdl \
+ --disable-openmp \
--with-distro=OpenBSD
# Sound drivers
CONFIGURE_ARGS+= \
- --without-ao \
- --without-oss \
- --without-alsa \
- --without-coreaudio \
- --without-pulseaudio \
- --without-waveaudio \
- --without-sunaudio \
- --with-sndio
+ --disable-ao \
+ --disable-oss \
+ --disable-alsa \
+ --disable-coreaudio \
+ --disable-pulseaudio \
+ --disable-waveaudio \
+ --disable-sunaudio \
+ --enable-sndio
# Additional file formats
-CONFIGURE_ARGS+= \
- --without-magic \
- --with-png \
- --without-ladspa \
- --with-mad \
- --with-id3tag \
- --with-lame \
- --with-twolame \
- --with-oggvorbis \
- --with-opus \
- --with-flac \
- --without-amrwb \
- --without-amrnb \
- --with-wavpack \
- --with-sndfile \
- --with-mp3 \
- --with-gsm \
- --with-lpc10
+CONFIGURE_ARGS+= \
+ --with-id3tag \
+ --with-lame \
+ --with-mad \
+ --without-magic \
+ --without-opencore-amrnb \
+ --without-opencore-amrwb \
+ --with-png \
+ --with-twolame \
+ --disable-amrnb \
+ --disable-amrwb \
+ --enable-flac \
+ --enable-gsm \
+ --enable-lpc10 \
+ --enable-mp3 \
+ --enable-oggvorbis \
+ --enable-opus \
+ --enable-sndfile \
+ --enable-wavpack \
+ --without-ladspa
CONFIGURE_ENV= \
CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
+dist:
+ ftp -o /tmp/sox-code-${GIT_COMMIT}.zip \
+ ${GITWEB_URL}/s/so/sox/code.git/sox-code-${GIT_COMMIT}.zip; \
+ t=`mktemp -d /tmp/sox.XXXXXXXXXX`; \
+ f=$$t/sox-code-${GIT_COMMIT}/${DISTNAME}.tar.gz; \
+ cd $$t; \
+ unzip /tmp/sox-code-${GIT_COMMIT}.zip; \
+ cd sox-code-${GIT_COMMIT}; \
+ echo "EXTRA_DIST += libsox.sym" >> ./src/Makefile.am; \
+ sed -ie "s/${GIT_V}/${V}/g" ./configure.ac; \
+ env -i ${MAKE_ENV} autoreconf-${AUTOCONF_VERSION} -i && \
+ ./configure && \
+ ${MAKE_PROGRAM} dist; \
+ scp $$f train:source/; \
+ cd -; rm -rf $$t; rm -f /tmp/sox-code-${GIT_COMMIT}.zip;
+
do-test:
+ @cd ${WRKSRC}/src && ${MAKE_PROGRAM} ${MAKE_FLAGS} \
+ -f ${MAKE_FILE} extras
@cd ${WRKSRC}/src && ./tests.sh && ./testall.sh
-
-# Attempt to avoid SIGILL in gcc.
-MODULES+= gcc4
-MODGCC4_ARCHS= hppa
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/audio/sox/distinfo,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 distinfo
--- distinfo 18 Mar 2015 13:13:08 -0000 1.14
+++ distinfo 30 Oct 2021 21:20:51 -0000
@@ -1,2 +1,2 @@
-SHA256 (sox-14.4.2.tar.gz) = tF9ZhkP/vY42P/JNYRZszsSDb+ptOIiIG431Pju1X2w=
-SIZE (sox-14.4.2.tar.gz) = 1134299
+SHA256 (sox-14.4.2pl20210509.tar.gz) =
V/qDSH4yoxHteEaVT5P0qciuplLDRJt2Cs7WquyFiNk=
+SIZE (sox-14.4.2pl20210509.tar.gz) = 1013680
Index: patches/patch-src_formats_c
===================================================================
RCS file: /cvs/ports/audio/sox/patches/patch-src_formats_c,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 patch-src_formats_c
--- patches/patch-src_formats_c 18 Mar 2015 13:13:08 -0000 1.6
+++ patches/patch-src_formats_c 30 Oct 2021 21:20:51 -0000
@@ -1,7 +1,8 @@
$OpenBSD: patch-src_formats_c,v 1.6 2015/03/18 13:13:08 naddy Exp $
---- src/formats.c.orig Mon Oct 27 03:55:50 2014
-+++ src/formats.c Tue Feb 24 17:07:28 2015
-@@ -353,7 +353,7 @@ static int sox_checkformat(sox_format_t * ft)
+Index: src/formats.c
+--- src/formats.c.orig
++++ src/formats.c
+@@ -360,7 +360,7 @@ static int sox_checkformat(sox_format_t * ft)
return SOX_SUCCESS;
}
@@ -10,7 +11,7 @@ $OpenBSD: patch-src_formats_c,v 1.6 2015
{
return !(
strncasecmp(text, "http:" , (size_t)5) &&
-@@ -390,7 +390,7 @@ static FILE * xfopen(char const * identifier, char con
+@@ -442,7 +442,7 @@ static FILE * xfopen(char const * identifier, char con
else if (is_url(identifier)) {
FILE * f = NULL;
#ifdef HAVE_POPEN
Index: patches/patch-src_sndio_c
===================================================================
RCS file: patches/patch-src_sndio_c
diff -N patches/patch-src_sndio_c
--- patches/patch-src_sndio_c 21 Sep 2016 11:40:14 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-$OpenBSD: patch-src_sndio_c,v 1.1 2016/09/21 11:40:14 ratchov Exp $
---- src/sndio.c.orig Mon Jan 30 04:01:44 2012
-+++ src/sndio.c Tue Feb 9 23:23:00 2016
-@@ -113,8 +113,6 @@ static int startany(sox_format_t *ft, unsigned mode)
- else
- reqpar.rchan = ft->signal.channels;
- }
-- if (ft->signal.precision > 0)
-- reqpar.bits = ft->signal.precision;
- switch (ft->encoding.encoding) {
- case SOX_ENCODING_SIGN2:
- reqpar.sig = 1;
-@@ -127,6 +125,12 @@ static int startany(sox_format_t *ft, unsigned mode)
- }
- if (ft->encoding.bits_per_sample > 0)
- reqpar.bits = ft->encoding.bits_per_sample;
-+ else if (ft->signal.precision > 0)
-+ reqpar.bits = ft->signal.precision;
-+ else
-+ reqpar.bits = SOX_DEFAULT_PRECISION;
-+ reqpar.bps = (reqpar.bits + 7) / 8;
-+ reqpar.msb = 1;
- if (ft->encoding.reverse_bytes != sox_option_default) {
- reqpar.le = SIO_LE_NATIVE;
- if (ft->encoding.reverse_bytes)
Index: patches/patch-src_sox_h
===================================================================
RCS file: patches/patch-src_sox_h
diff -N patches/patch-src_sox_h
--- patches/patch-src_sox_h 22 Sep 2016 19:58:22 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-src_sox_h,v 1.1 2016/09/22 19:58:22 sthen Exp $
---- src/sox.h.orig Mon Oct 6 03:02:30 2014
-+++ src/sox.h Tue Sep 20 11:14:30 2016
-@@ -44,7 +44,7 @@ Plugins API:
- Attribute required on all functions exported by libSoX and on all function
- pointer types used by the libSoX API.
- */
--#ifdef __GNUC__
-+#if defined(__GNUC__) && defined(__i386)
- #define LSX_API __attribute__ ((cdecl)) /* libSoX function */
- #elif _MSC_VER
- #define LSX_API __cdecl /* libSoX function */
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/audio/sox/pkg/PLIST,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 PLIST
--- pkg/PLIST 18 Mar 2015 13:13:08 -0000 1.9
+++ pkg/PLIST 30 Oct 2021 21:20:51 -0000
@@ -7,7 +7,7 @@ bin/rec
@bin bin/sox
bin/soxi
include/sox.h
-lib/libsox.a
+@static-lib lib/libsox.a
lib/libsox.la
@lib lib/libsox.so.${LIBsox_VERSION}
lib/pkgconfig/sox.pc