Stefan Hagen writes: > Stuart Henderson wrote: >> On 2021/07/03 15:43, Nam Nguyen wrote: >>> - Since maintaining this many patches is clunky, should we consider >>> mirroring the latest git checkout? >> >> I don't have any feel for what shape the upstream code is in, though >> that is often safer than taking a big set of patches and hoping that >> they don't rely on something else that was committed but not picked up >> in the patches.. Other OS must have this problem too, it would be really >> helpful if there was a newer release that everyone could move to, rather >> than separately wrangling patches. > > Hmm, upstream considers git master the "best version": > > https://sourceforge.net/p/sox/mailman/message/37254884/ > > What about mirroring the latest git checkout at the start of the OpenBSD > release cycle, so it's tested well over the next months? > > Best Regards, > Stefan
Here is a diff implementing sdk@'s suggestion to mirror git. This leaves the port in a better state security-wise and can hold us over until the next sox release. This diff: - mirrors git checkout as a release tarball - bumps library minor to 4.1 because of addition of symbols - removes iconv from WANTLIB and LIB_DEPENDS as reported by make port-lib-depends-check - renames CONFIGURE_ARGS - compile extras target during do-test - removes upstreamed patches Release tarball --------------- 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 Minor bump ---------- Minor increased because check_sym reports new lsx_* symbols. According to the top of ${WRKSRC}/src/sox.h, "lsx_" or "LSX_" are internal use, but bump it anyways due their visibility. (sox_* are part of the public interface.) check_sym: https://namtsui.com/public/sox_sym.txt Also, datatypes changed in ${WRKSRC}/src/sox.h. See: https://sourceforge.net/p/sox/code/ci/3518bcd92416e7cf71ee9a863695a518f3de4e52/ /usr/src/sys/sys/types.h /usr/src/sys/sys/stdint.h /usr/src/sys/arch/i386/include/_types.h /usr/src/sys/sys/limits.h Based on this, the only difficult one was long --> long long. -#if LONG_MAX==9223372036854775807 && LONG_MIN==(-9223372036854775807-1) -typedef long sox_int64_t; -#elif defined(_MSC_VER) -typedef __int64 sox_int64_t; -#else -typedef long long sox_int64_t; -#endif +typedef int64_t sox_int64_t; >From this I read sox_int64_t's type definition before --> after: amd64: long --> long long i386: long long --> long long Conclusion: Types changed in a compatible way because it goes from a smaller to bigger datatype, so no need to major bump. sox_uint64_t also falls under this. do-test ------- This gets printed during the wav <--> voc test. ./.libs/sox FAIL sox: `intermediate.voc' premature EOF: Inappropriate ioctl for device ok channels=2 "u8 in wav" <--> "voc". I debugged it a bit, and it doesn't seem like a problem. The point of the test is to do the following: $ doas -u _pbuild ./.libs/sox -RD -r 8000 -c 2 -n -e unsigned -b 8 input.wav synth 23493's' sin 300-3300 noise trapezium $ doas -u _pbuild ./.libs/sox -RD -r 8000 -c 2 -e unsigned -b 8 input.wav intermediate.voc $ doas -u _pbuild ./.libs/sox -RD -r 8000 -c 2 intermediate.voc -e unsigned -b 8 output.wav cmp eventually shows that input.wav and the produced output.wav are the same, and the unit test still passes with an ok. I debugged a bit but it gracefully recovers from EOF while reading intermediate.voc. The error message gets printed at sox.c:473 inside sox_read_wide. opus ---- make port-lib-depends still wants to remove opus from WANTLIB, which is new behavior. I do not know why. However, it is probably just fine to leave it in for clarity. sox uses opusfile, which depends on opus anyways. Testing ------- I successfully tested some consumers: multimedia/imagination mlt mlt7 audio/pacpl Feedback and tests are welcome. OK? 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 29 Oct 2021 05:00:23 -0000 @@ -4,9 +4,9 @@ BROKEN-hppa = bend.c:155:12: internal co 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 +DISTNAME= sox-${V} +SHARED_LIBS += sox 4.1 # 3.0 CATEGORIES= audio HOMEPAGE= http://sox.sourceforge.net/ @@ -19,9 +19,9 @@ 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 += png -MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sox/} +MASTER_SITES= https://namtsui.com/source/ # see CONFIGURE_ARGS below LIB_DEPENDS= \ @@ -37,13 +37,11 @@ LIB_DEPENDS= \ audio/opusfile \ audio/twolame \ audio/wavpack \ - converters/libiconv \ graphics/png CONFIGURE_STYLE=gnu CONFIGURE_ARGS= --datarootdir=${LOCALBASE} \ --enable-largefile \ - --disable-silent-libtool \ --disable-openmp \ --enable-symlinks \ --without-libltdl \ @@ -51,14 +49,14 @@ CONFIGURE_ARGS= --datarootdir=${LOCALBAS # 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+= \ @@ -69,22 +67,23 @@ CONFIGURE_ARGS+= \ --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 + --enable-formats=no \ + --enable-flac \ + --enable-gsm \ + --enable-lpc10 \ + --enable-mp3 \ + --enable-oggvorbis \ + --enable-opus \ + --enable-sndfile \ + --enable-wavpack CONFIGURE_ENV= \ CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" do-test: + @cd ${WRKSRC}/src && env -i ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + -f ${MAKE_FILE} extras @cd ${WRKSRC}/src && ./tests.sh && ./testall.sh # Attempt to avoid SIGILL in gcc. 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 29 Oct 2021 05:00:23 -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) = AojNoMs4eRcSDgWHrglM7az83dK9lTuWwnoxw/QGEnY= +SIZE (sox-14.4.2pl20210509.tar.gz) = 1013607 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 29 Oct 2021 05:00:23 -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 29 Oct 2021 05:00:23 -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