On 2024/11/24 04:15, Brad Smith wrote:
> Instead of disabling the FFmpeg support for moc I have switched the port to
> using a fork that has up to date FFmpeg support up through to version 7.
> 
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/moc/Makefile,v
> retrieving revision 1.31
> diff -u -p -u -p -r1.31 Makefile
> --- Makefile  21 Nov 2024 07:00:52 -0000      1.31
> +++ Makefile  21 Nov 2024 10:23:44 -0000
> @@ -1,65 +1,65 @@
>  COMMENT =    console audio player
> -DISTNAME =   moc-2.5.2
> +
> +DIST_TUPLE+= gitlab tomaszg mocp fb0a63b564b40fa861204e2f804b696c6ee573da .
> +PKGNAME =    moc-2.6.a3

$ pkg_check-version moc-2.6.a3 moc-2.6.0 moc-2.6.1 moc-2.5.2
moc-*- sorted: moc-2.5.2 moc-2.6.0 moc-2.6.1 moc-2.6.a3

moc-2.6alpha3 would work better

>  CATEGORIES = audio
> -HOMEPAGE =   https://moc.daper.net/
> -SITES =              https://ftp.daper.net/pub/soft/moc/stable/ \
> -             https://distfiles.sigtrap.nl/
> -EXTRACT_SUFX =       .tar.bz2
> -REVISION =   12
>  
>  # GPLv3+
>  PERMIT_PACKAGE = Yes
>  
>  # uses pledge()
> -WANTLIB += ${COMPILER_LIBCXX} FLAC c crypto curl curses db faad
> -WANTLIB += iconv id3tag ltdl m mad magic modplug mp3lame mpcdec
> -WANTLIB += mpg123 nghttp2 nghttp3 ngtcp2 ngtcp2_crypto_quictls
> -WANTLIB += ogg opus samplerate sndfile sndio speex ssl tag tag_c
> -WANTLIB += vorbis vorbisenc vorbisfile wavpack z
> +WANTLIB += ${COMPILER_LIBCXX} FLAC X11 X11-xcb Xext Xfixes aom
> +WANTLIB += avcodec avformat avutil bz2 c crypto curl curses dav1d
> +WANTLIB += drm faad gsm iconv id3tag intl ltdl lzma m mad magic
> +WANTLIB += modplug mp3lame mpcdec mpg123 nghttp2 nghttp3 ngtcp2
> +WANTLIB += ngtcp2_crypto_quictls ogg opus popt samplerate sndfile
> +WANTLIB += sndio speex ssl swresample tag tag_c theoradec theoraenc
> +WANTLIB += va va-drm va-x11 vorbis vorbisenc vorbisfile vpx wavpack
> +WANTLIB += x264 x265 xcb xcb-dri3 xml2 xvidcore z
>  
> -COMPILER =   base-clang ports-gcc base-gcc
> +COMPILER =   base-clang ports-gcc
> +
> +RUN_DEPENDS+=        devel/desktop-file-utils \
> +             x11/gtk+4,-guic
>  
>  LIB_DEPENDS =        audio/faad \
>               audio/flac \
> -             audio/lame \
>               audio/libid3tag \
>               audio/libmad \
>               audio/libmodplug \
> -             audio/libogg \
>               audio/libsamplerate \
>               audio/libsndfile \
>               audio/libvorbis \
> -             audio/mpg123 \
>               audio/musepack \
> -             audio/opus \
>               audio/speex \
>               audio/taglib \
>               audio/wavpack \
> -             converters/libiconv \
> -             databases/db/v4 \
>               devel/libmagic \
>               devel/libtool,-ltdl \
> -             net/curl \
> -             net/ngtcp2 \
> -             www/nghttp2 \
> -             www/nghttp3
> +             devel/popt \
> +             graphics/ffmpeg \
> +             net/curl
>  
> +AUTOCONF_VERSION=    2.71
> +AUTOMAKE_VERSION=    1.16
>  SEPARATE_BUILD = Yes
> -
> -CONFIGURE_STYLE = gnu
> +CONFIGURE_STYLE = autoreconf
>  CONFIGURE_ARGS += \
> -             --with-sndio \
> +             --disable-cache \
>               --without-jack \
>               --without-oss \
>               --without-alsa \
> +             --without-mpg123 \
> +             --without-mpris \
> +             --without-opus \
> +             --without-pulse \
>               --without-rcc \
>               --without-included-ltdl \
>               --without-timidity \
> -             --without-ffmpeg \
> -             --with-magic \
>               --with-ltdl-include=${LOCALBASE}/include \
>               --with-ltdl-lib=${LOCALBASE}/lib
> -CONFIGURE_ENV = CPPFLAGS="-I${LOCALBASE}/include -I${LOCALBASE}/include/db4" 
> \
> +CONFIGURE_ENV = CPPFLAGS="-Wno-unused-but-set-parameter 
> -I${LOCALBASE}/include -I${LOCALBASE}/include/db4" \
>               LDFLAGS="-L${LOCALBASE}/lib"
>  
>  pre-install:
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/audio/moc/distinfo,v
> retrieving revision 1.2
> diff -u -p -u -p -r1.2 distinfo
> --- distinfo  18 Nov 2017 12:01:14 -0000      1.2
> +++ distinfo  21 Nov 2024 10:23:44 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (moc-2.5.2.tar.bz2) = 86aBFWAqR4i3z6m76Tl6nV4kxoy2GldpXRwsPs9J2wg=
> -SIZE (moc-2.5.2.tar.bz2) = 602728
> +SHA256 (tomaszg-mocp-fb0a63b564b40fa861204e2f804b696c6ee573da.tar.gz) = 
> 0vVH+wk+UGP9Ag7nk+8QAKhSL0W4NwMQ8yok5DyyKIo=
> +SIZE (tomaszg-mocp-fb0a63b564b40fa861204e2f804b696c6ee573da.tar.gz) = 703656
> Index: patches/patch-config_example_in
> ===================================================================
> RCS file: /cvs/ports/audio/moc/patches/patch-config_example_in,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-config_example_in
> --- patches/patch-config_example_in   11 Mar 2022 18:20:18 -0000      1.3
> +++ patches/patch-config_example_in   21 Nov 2024 10:23:44 -0000
> @@ -3,7 +3,7 @@ Remove audio choices that are irrelevant
>  Index: config.example.in
>  --- config.example.in.orig
>  +++ config.example.in
> -@@ -121,32 +121,10 @@
> +@@ -140,32 +140,10 @@
>   #
>   #HTTPProxy =
>   
> @@ -35,5 +35,5 @@ Index: config.example.in
>  -#ALSAMixer1 = PCM
>  -#ALSAMixer2 = Master
>   
> - # Under some circumstances on 32-bit systems, audio played continously
> - # for long periods of time may begin to stutter.  Setting this option to
> + # Save software mixer state?
> + # If enabled, a file 'softmixer' will be created in '~/.moc/' storing the
> Index: patches/patch-decoder_plugins_ffmpeg_ffmpeg_c
> ===================================================================
> RCS file: patches/patch-decoder_plugins_ffmpeg_ffmpeg_c
> diff -N patches/patch-decoder_plugins_ffmpeg_ffmpeg_c
> --- patches/patch-decoder_plugins_ffmpeg_ffmpeg_c     11 Mar 2022 18:20:18 
> -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,34 +0,0 @@
> -Maint: Migrate to FFmpeg/LibAV's AV_-prefixed #defines.
> -
> -Index: decoder_plugins/ffmpeg/ffmpeg.c
> ---- decoder_plugins/ffmpeg/ffmpeg.c.orig
> -+++ decoder_plugins/ffmpeg/ffmpeg.c
> -@@ -984,7 +984,7 @@ static void *ffmpeg_open (const char *file)
> -      * FFmpeg/LibAV in use.  For some versions this will be caught in
> -      * *_find_stream_info() above and misreported as an unfound codec
> -      * parameters error. */
> --    if (data->codec->capabilities & CODEC_CAP_EXPERIMENTAL) {
> -+    if (data->codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) {
> -             decoder_error (&data->error, ERROR_FATAL, 0,
> -                             "The codec is experimental and may damage MOC: 
> %s",
> -                             data->codec->name);
> -@@ -993,8 +993,8 @@ static void *ffmpeg_open (const char *file)
> - #endif
> - 
> -     set_downmixing (data);
> --    if (data->codec->capabilities & CODEC_CAP_TRUNCATED)
> --            data->enc->flags |= CODEC_FLAG_TRUNCATED;
> -+    if (data->codec->capabilities & AV_CODEC_CAP_TRUNCATED)
> -+            data->enc->flags |= AV_CODEC_FLAG_TRUNCATED;
> - 
> - #ifdef HAVE_AVCODEC_OPEN2
> -     if (avcodec_open2 (data->enc, data->codec, NULL) < 0)
> -@@ -1025,7 +1025,7 @@ static void *ffmpeg_open (const char *file)
> - 
> -     data->sample_width = sfmt_Bps (data->fmt);
> - 
> --    if (data->codec->capabilities & CODEC_CAP_DELAY)
> -+    if (data->codec->capabilities & AV_CODEC_CAP_DELAY)
> -             data->delay = true;
> -     data->seek_broken = is_seek_broken (data);
> -     data->timing_broken = is_timing_broken (data->ic);
> Index: patches/patch-main_c
> ===================================================================
> RCS file: /cvs/ports/audio/moc/patches/patch-main_c,v
> retrieving revision 1.4
> diff -u -p -u -p -r1.4 patch-main_c
> --- patches/patch-main_c      11 Mar 2022 18:20:18 -0000      1.4
> +++ patches/patch-main_c      21 Nov 2024 10:23:44 -0000
> @@ -4,33 +4,36 @@
>  Index: main.c
>  --- main.c.orig
>  +++ main.c
> -@@ -174,6 +174,8 @@ static void start_moc (const struct parameters *params
> -                     case 0: /* child - start server */
> -                             set_me_server ();
> -                             list_sock = server_init (params->debug, 
> params->foreground);
> -+                            if (pledge("stdio rpath wpath cpath inet unix 
> dns audio", NULL) == -1)
> -+                                    fatal ("pledge() failed: %s", 
> strerror(errno));
> -                             rc = write (notify_pipe[1], &i, sizeof(i));
> -                             if (rc < 0)
> -                                     fatal ("write() to notify pipe failed: 
> %s",
> -@@ -208,10 +210,14 @@ static void start_moc (const struct parameters *params
> +@@ -161,6 +161,8 @@ static void start_moc (const struct parameters *params
> +     if (params->foreground) {
>               set_me_server ();
> -             list_sock = server_init (params->debug, params->foreground);
> -             signal (SIGCHLD, sig_chld);
> -+            if (pledge("stdio rpath wpath cpath inet unix dns audio", NULL) 
> == -1)
> +             server_init (params->debug, params->foreground);
> ++            if (pledge("stdio rpath wpath cpath inet unix audio", NULL) == 
> -1)
>  +                    fatal ("pledge() failed: %s", strerror(errno));
> -             server_loop (list_sock);
> +             server_loop ();
> +             return;
>       }
> - 
> -     if (!params->only_server) {
> +@@ -185,6 +187,8 @@ static void start_moc (const struct parameters *params
> +             case 0: /* child - start server */
> +                     set_me_server ();
> +                     server_init (params->debug, params->foreground);
> ++                    if (pledge("stdio rpath wpath cpath inet unix audio", 
> NULL) == -1)
> ++                            fatal ("pledge() failed: %s", strerror(errno));
> +                     rc = write (notify_pipe[1], &i, sizeof(i));
> +                     if (rc < 0)
> +                             fatal ("write() to notify pipe failed: %s", 
> xstrerror (errno));
> +@@ -216,6 +220,8 @@ static void start_moc (const struct parameters *params
> +     if (params->only_server)
> +             send_int (server_sock, CMD_DISCONNECT);
> +     else {
>  +            if (pledge("stdio rpath wpath cpath flock unix tty proc", NULL) 
> == -1)
>  +                    fatal ("pledge() failed: %s", strerror(errno));
> -             signal (SIGPIPE, SIG_IGN);
> -             if (ping_server(server_sock)) {
> -                     if (!params->dont_run_iface) {
> -@@ -800,6 +806,9 @@ int main (int argc, char *argv[])
> -     struct utsname uts;
> - #endif
> +             xsignal (SIGPIPE, SIG_IGN);
> +             if (!ping_server (server_sock))
> +                     fatal ("Can't connect to the server!");
> +@@ -1202,6 +1208,9 @@ int main (int argc, const char *argv[])
> +     mocp_argc = argc;
> +     mocp_argv = argv;
>   
>  +    if (pledge("stdio rpath wpath cpath flock inet unix dns tty proc 
> prot_exec audio", NULL) == -1)
>  +            fatal ("pledge() failed: %s", strerror(errno));
> @@ -38,19 +41,20 @@ Index: main.c
>   #ifdef PACKAGE_REVISION
>       logit ("This is Music On Console (revision %s)", PACKAGE_REVISION);
>   #else
> -@@ -852,11 +861,12 @@ int main (int argc, char *argv[])
> +@@ -1265,12 +1274,14 @@ int main (int argc, const char *argv[])
>       io_init ();
>       rcc_init ();
>       decoder_init (params.debug);
>  -    srand (time(NULL));
>   
> --    if (!params.only_server && params.dont_run_iface)
> -+    if (!params.only_server && params.dont_run_iface) {
> +     if (params.allow_iface)
> +             start_moc (&params, args);
> +-    else
> ++    else {
>  +            if (pledge("cpath rpath stdio unix", NULL) == -1)
>  +                    fatal ("pledge() failed: %s", strerror(errno));
>               server_command (&params, args);
> --    else
> -+    } else
> -             start_moc (&params, args);
> ++    }
>   
>       lists_strs_free (args);
> +     options_free ();
> Index: patches/patch-mocp_1
> ===================================================================
> RCS file: /cvs/ports/audio/moc/patches/patch-mocp_1,v
> retrieving revision 1.2
> diff -u -p -u -p -r1.2 patch-mocp_1
> --- patches/patch-mocp_1      11 Mar 2022 18:20:18 -0000      1.2
> +++ patches/patch-mocp_1      21 Nov 2024 10:23:44 -0000
> @@ -1,7 +1,8 @@
>  Fix paths in manual.
>  
> ---- mocp.1.orig      Sun Apr 24 06:23:30 2016
> -+++ mocp.1   Sun Jun  5 13:16:37 2016
> +Index: mocp.1
> +--- mocp.1.orig
> ++++ mocp.1
>  @@ -58,10 +58,8 @@ Implies \fB\-S\fP.  Run the server in foreground and l
>   .TP
>   \fB\-R\fP \fINAME\fP[\fB:\fP...], \
> @@ -15,7 +16,7 @@ Fix paths in manual.
>   .LP
>   .TP
>   \fB\-m\fP, \fB\-\-music\-dir\fP
> -@@ -123,7 +121,7 @@ file currently being played.
> +@@ -128,7 +126,7 @@ file currently being played.
>   .TP
>   \fB\-T\fP \fITHEME\fP, \fB\-\-theme\fP \fITHEME\fP
>   Use a theme file.  If the path is not absolute, the file will be searched
> @@ -24,7 +25,7 @@ Fix paths in manual.
>   \fB~/.moc/themes/\fP and the current directory.
>   .LP
>   .TP
> -@@ -143,7 +141,7 @@ allows the new values to be picked up by substitutions
> +@@ -152,7 +150,7 @@ allows the new values to be picked up by substitutions
>   options are overridden afterwards (which gives the choice of whether the
>   configured values are replaced or added to).
>   .IP
> @@ -33,7 +34,7 @@ Fix paths in manual.
>   of the options available.
>   .LP
>   .RS
> -@@ -261,7 +259,7 @@ MOC directory for the configuration file, socket, the 
> +@@ -440,7 +438,7 @@ MOC directory for the configuration file, socket, the 
>   .TP
>   .B ~/.moc/config
>   Configuration file for MOC.  The format is very simple; to see how to use
> @@ -42,7 +43,7 @@ Fix paths in manual.
>   with the program.  The example file fully describes all the configuration
>   options, and so is a useful reference when using the \fB\-O\fP option.  As
>   this file can specify commands which invoke other applications MOC will
> -@@ -271,11 +269,11 @@ it is writable by anyone other than its owner.
> +@@ -460,11 +458,11 @@ variable above.)
>   .TP
>   .B ~/.moc/themes
>   .TQ
> Index: patches/patch-playlist_c
> ===================================================================
> RCS file: /cvs/ports/audio/moc/patches/patch-playlist_c,v
> retrieving revision 1.2
> diff -u -p -u -p -r1.2 patch-playlist_c
> --- patches/patch-playlist_c  11 Mar 2022 18:20:18 -0000      1.2
> +++ patches/patch-playlist_c  21 Nov 2024 10:23:44 -0000
> @@ -1,14 +1,14 @@
>  Replace rand(3)-based computation with arc4random_uniform(3).
>  
> ---- playlist.c.orig  Sun Jun  5 13:54:04 2016
> -+++ playlist.c       Sun Jun  5 13:58:53 2016
> -@@ -774,8 +774,7 @@ void plist_shuffle (struct plist *plist)
> +Index: playlist.c
> +--- playlist.c.orig
> ++++ playlist.c
> +@@ -846,7 +846,7 @@ void plist_shuffle (struct plist *plist)
>       int i;
>   
> -     for (i = 0; i < plist->num; i++)
> --            plist_swap (plist, i,
> --                            (rand()/(float)RAND_MAX) * (plist->num - 1));
> +     for (i = 0; i < plist->num; i += 1)
> +-            plist_swap (plist, i, (rand () / (float)RAND_MAX) * (plist->num 
> - 1));
>  +            plist_swap (plist, i, arc4random_uniform(plist->num));
>   
> -     rb_clear (&plist->search_tree);
> +     rb_tree_clear (plist->search_tree);
>   
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/audio/moc/pkg/PLIST,v
> retrieving revision 1.5
> diff -u -p -u -p -r1.5 PLIST
> --- pkg/PLIST 21 Nov 2024 07:00:52 -0000      1.5
> +++ pkg/PLIST 21 Nov 2024 10:23:44 -0000
> @@ -2,6 +2,7 @@
>  lib/moc/
>  lib/moc/decoder_plugins/
>  @so lib/moc/decoder_plugins/libaac_decoder.so
> +@so lib/moc/decoder_plugins/libffmpeg_decoder.so
>  @so lib/moc/decoder_plugins/libflac_decoder.so
>  @so lib/moc/decoder_plugins/libmodplug_decoder.so
>  @so lib/moc/decoder_plugins/libmp3_decoder.so
> @@ -11,6 +12,7 @@ lib/moc/decoder_plugins/
>  @so lib/moc/decoder_plugins/libvorbis_decoder.so
>  @so lib/moc/decoder_plugins/libwavpack_decoder.so
>  @man man/man1/mocp.1
> +share/applications/mocp.desktop
>  share/doc/moc/
>  share/doc/moc/README
>  share/doc/moc/README_equalizer
> @@ -18,14 +20,23 @@ share/doc/moc/THANKS
>  share/examples/moc/
>  share/examples/moc/config.example
>  share/examples/moc/keymap.example
> +share/icons/hicolor/scalable/apps/mocp.svg
>  share/moc/
>  share/moc/themes/
> +share/moc/themes/black_orange_theme
>  share/moc/themes/black_theme
> +share/moc/themes/blue_theme
>  share/moc/themes/darkdot_theme
>  share/moc/themes/example_theme
>  share/moc/themes/green_theme
> +share/moc/themes/lcars
> +share/moc/themes/lcars2
>  share/moc/themes/moca_theme
>  share/moc/themes/nightly_theme
>  share/moc/themes/red_theme
>  share/moc/themes/transparent-background
> +share/moc/themes/white_theme
> +share/moc/themes/winter
>  share/moc/themes/yellow_red_theme
> +@tag update-desktop-database
> +@tag gtk-update-icon-cache %D/share/icons/hicolor
> 

Reply via email to