Download raw body.
audio/moc without ffmpeg
On Wed, Nov 20, 2024 at 03:58:04PM +0100, Rafael Sadowski wrote:
> Remove ffmpeg support until the upstream project is revived. It depends
> on ffmpeg4 which can hopefully upgraded to ffmpeg6 soon.
>
> Please ignore the BROKEN part (It's from my bulk build)
>
>
> OK to remove ffmpeg support?
Instead of disabling the FFmpeg support I switched the port to using
a fork which includes various bug fixes and improvements including
support for FFmpeg 4 through 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
+
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 (¶ms, args);
+- else
++ else {
+ if (pledge("cpath rpath stdio unix", NULL) == -1)
+ fatal ("pledge() failed: %s", strerror(errno));
server_command (¶ms, args);
-- else
-+ } else
- start_moc (¶ms, 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
audio/moc without ffmpeg