Here's a diff on top of -current for an long-awaited update. It requires a new port, libigloo, that ships code common to various icecast projets. libigloo has one test broken but AFAIK it shouldn't be an issue. ok to import libigloo?
If you use icecast, please test and report (oks also welcome, obviously). Index: Makefile =================================================================== RCS file: /cvs/ports/net/icecast/Makefile,v diff -u -p -r1.75 Makefile --- Makefile 29 Jun 2026 17:52:14 -0000 1.75 +++ Makefile 29 Jun 2026 17:55:10 -0000 @@ -1,32 +1,30 @@ COMMENT= server for streaming various media formats CATEGORIES= net audio -DISTNAME= icecast-2.4.4 -REVISION= 5 +DISTNAME= icecast-2.5.0 HOMEPAGE= https://icecast.org/ # GPL PERMIT_PACKAGE= Yes -WANTLIB = c crypto curl>=2 iconv intl lzma m nghttp2 nghttp3 ngtcp2 -WANTLIB += ngtcp2_crypto_libressl ogg pthread speex>=3 ssl theora>=1 -WANTLIB += vorbis>=3 xml2 xslt>=3 z +WANTLIB += c crypto curl>=2 iconv igloo m nghttp2 nghttp3 ngtcp2 +WANTLIB += ngtcp2_crypto_libressl ogg pthread rhash speex>=3 ssl +WANTLIB += theora>=1 vorbis>=3 xml2 xslt>=3 z SITES= https://downloads.xiph.org/releases/icecast/ - CONFIGURE_STYLE= gnu CONFIGURE_ARGS+= --with-theora=${LOCALBASE} CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" -LIB_DEPENDS = archivers/xz \ - audio/libvorbis \ +LIB_DEPENDS = audio/libvorbis \ audio/speex \ - devel/gettext,-runtime \ + devel/libigloo \ multimedia/libtheora \ net/curl \ + security/rhash \ textproc/libxslt SEPARATE_BUILD= Yes Index: distinfo =================================================================== RCS file: /cvs/ports/net/icecast/distinfo,v diff -u -p -r1.17 distinfo --- distinfo 20 Nov 2018 17:32:36 -0000 1.17 +++ distinfo 29 Jun 2026 17:55:10 -0000 @@ -1,2 +1,2 @@ -SHA256 (icecast-2.4.4.tar.gz) = SbWXn59hQUC2o4BGFUID7ighjY/FSYiFlqaDrWBOTUQ= -SIZE (icecast-2.4.4.tar.gz) = 2360592 +SHA256 (icecast-2.5.0.tar.gz) = 2aoHx0Ka7BnZUP9v1CXDcfdxWM00/yIPwZGywYbGfHo= +SIZE (icecast-2.5.0.tar.gz) = 1605985 Index: patches/patch-Makefile_in =================================================================== RCS file: patches/patch-Makefile_in diff -N patches/patch-Makefile_in --- patches/patch-Makefile_in 11 Mar 2022 19:46:05 -0000 1.10 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -Index: Makefile.in ---- Makefile.in.orig -+++ Makefile.in -@@ -404,7 +404,7 @@ EXTRA_DIST = HACKING m4/acx_pthread.m4 m4/ogg.m4 \ - m4/xiph_compiler.m4 m4/xiph_curl.m4 m4/xiph_net.m4 \ - m4/xiph_types.m4 m4/xiph_xml2.m4 - --doc_DATA = README AUTHORS COPYING NEWS TODO ChangeLog -+doc_DATA = AUTHORS NEWS - all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - Index: patches/patch-conf_Makefile_in =================================================================== RCS file: /cvs/ports/net/icecast/patches/patch-conf_Makefile_in,v diff -u -p -r1.10 patch-conf_Makefile_in --- patches/patch-conf_Makefile_in 11 Mar 2022 19:46:05 -0000 1.10 +++ patches/patch-conf_Makefile_in 29 Jun 2026 17:55:10 -0000 @@ -1,7 +1,7 @@ Index: conf/Makefile.in --- conf/Makefile.in.orig +++ conf/Makefile.in -@@ -281,7 +281,7 @@ build_vendor = @build_vendor@ +@@ -282,7 +282,7 @@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ @@ -10,7 +10,7 @@ Index: conf/Makefile.in dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ -@@ -480,7 +480,6 @@ info-am: +@@ -479,7 +479,6 @@ info-am: install-data-am: install-docDATA @$(NORMAL_INSTALL) Index: patches/patch-conf_icecast_minimal_xml_in =================================================================== RCS file: /cvs/ports/net/icecast/patches/patch-conf_icecast_minimal_xml_in,v diff -u -p -r1.4 patch-conf_icecast_minimal_xml_in --- patches/patch-conf_icecast_minimal_xml_in 11 Mar 2022 19:46:05 -0000 1.4 +++ patches/patch-conf_icecast_minimal_xml_in 29 Jun 2026 17:55:10 -0000 @@ -1,8 +1,9 @@ ---- conf/icecast_minimal.xml.in.orig Mon Nov 10 00:17:57 2014 -+++ conf/icecast_minimal.xml.in Sun Jan 4 17:06:40 2015 +Index: conf/icecast_minimal.xml.in +--- conf/icecast_minimal.xml.in.orig ++++ conf/icecast_minimal.xml.in @@ -23,9 +23,10 @@ + <port>8000</port> </listen-socket> - <fileserve>1</fileserve> <paths> - <logdir>@localstatedir@/log/@PACKAGE@</logdir> - <webroot>@pkgdatadir@/web</webroot> @@ -16,15 +17,15 @@ <logging> @@ -33,6 +34,13 @@ <errorlog>error.log</errorlog> - <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error --> + <loglevel>information</loglevel> <!-- "debug", "information", "warning", or "error" --> </logging> + <security> -+ <chroot>1</chroot> ++ <chroot>true</chroot> + <changeowner> + <user>_icecast</user> + <group>_icecast</group> + </changeowner> + </security> <http-headers> - <header name="Access-Control-Allow-Origin" value="*" /> - </http-headers> + <header type="cors" name="Access-Control-Allow-Origin" /> + <header type="cors" name="Access-Control-Allow-Headers" /> Index: patches/patch-conf_icecast_xml_in =================================================================== RCS file: /cvs/ports/net/icecast/patches/patch-conf_icecast_xml_in,v diff -u -p -r1.10 patch-conf_icecast_xml_in --- patches/patch-conf_icecast_xml_in 11 Mar 2022 19:46:05 -0000 1.10 +++ patches/patch-conf_icecast_xml_in 29 Jun 2026 17:55:10 -0000 @@ -1,7 +1,7 @@ Index: conf/icecast.xml.in --- conf/icecast.xml.in.orig +++ conf/icecast.xml.in -@@ -66,7 +66,7 @@ +@@ -68,7 +68,7 @@ <!-- You may have multiple <listen-socket> elements --> <listen-socket> <port>8000</port> @@ -10,33 +10,31 @@ Index: conf/icecast.xml.in <!-- <shoutcast-mount>/stream</shoutcast-mount> --> </listen-socket> <!-- -@@ -191,14 +191,14 @@ +@@ -258,13 +258,13 @@ <paths> <!-- basedir is only used if chroot is enabled --> - <basedir>@pkgdatadir@</basedir> + <basedir>/var/icecast</basedir> - <!-- Note that if <chroot> is turned on below, these paths must both + <!-- Note that if <chroot> is turned on below, these paths must all be relative to the new root, not the original root --> - <logdir>@localstatedir@/log/@PACKAGE@</logdir> - <webroot>@pkgdatadir@/web</webroot> - <adminroot>@pkgdatadir@/admin</adminroot> -- <!-- <pidfile>@pkgdatadir@/icecast.pid</pidfile> --> + <logdir>/log</logdir> + <webroot>/web</webroot> + <adminroot>/admin</adminroot> -+ <!-- <pidfile>@localstatedir@/run/icecast.pid</pidfile> --> + <reportxmldb>@pkgdatadir@/report-db.xml</reportxmldb> + <!-- <pidfile>@pkgdatadir@/icecast.pid</pidfile> --> - <!-- Aliases: treat requests for 'source' path as being for 'dest' path - May be made specific to a port or bound address using the "port" -@@ -233,12 +233,10 @@ +@@ -297,13 +297,11 @@ </logging> <security> -- <chroot>0</chroot> +- <chroot>false</chroot> - <!-- -+ <chroot>1</chroot> ++ <chroot>true</chroot> <changeowner> - <user>nobody</user> - <group>nogroup</group> @@ -44,5 +42,14 @@ Index: conf/icecast.xml.in + <group>_icecast</group> </changeowner> - --> - </security> - </icecast> + + <tls-context> + <!-- The certificate file containng public and optionally private key. +@@ -331,6 +329,7 @@ + The linux profile includes the bsd profile but adds linux specific interfaces (such as /proc). + <prng-seed type="profile">linux</prng-seed> + --> ++ <prng-seed type="profile">bsd</prng-seed> + <!-- If your OS provides a urandom style device and there is no profile for your OS you can + provide a custom device name. + The size parameter defines how many bytes are read per (re)seeding. The optimal setting Index: patches/patch-configure =================================================================== RCS file: patches/patch-configure diff -N patches/patch-configure --- patches/patch-configure 11 Mar 2022 19:46:05 -0000 1.15 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,21 +0,0 @@ -Index: configure ---- configure.orig -+++ configure -@@ -14634,7 +14634,7 @@ fi - - - if test "x$openssl_prefix" != "x" -a "x$openssl_prefix" != "xyes"; then -- OPENSSL_LIBS="-L$openssl_prefix/lib -lssl" -+ OPENSSL_LIBS="-L$openssl_prefix/lib -lssl -lcrypto" - OPENSSL_CFLAGS="-I$openssl_prefix/include" - else - # Extract the first word of "pkg-config", so it can be a program name with args. -@@ -14687,7 +14687,7 @@ fi - else - openssl_prefix="$prefix" - fi -- OPENSSL_LIBS="-L$openssl_prefix/lib -lssl" -+ OPENSSL_LIBS="-L$openssl_prefix/lib -lssl -lcrypto" - OPENSSL_CFLAGS="-I$openssl_prefix/include" - fi - fi 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 11 Mar 2022 19:46:05 -0000 1.10 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -Index: doc/Makefile.in ---- doc/Makefile.in.orig -+++ doc/Makefile.in -@@ -341,7 +341,7 @@ build_vendor = @build_vendor@ - builddir = @builddir@ - datadir = @datadir@ - datarootdir = @datarootdir@ --docdir = $(datadir)/doc/icecast -+docdir = $(datadir)/doc/@PACKAGE@ - dvidir = @dvidir@ - exec_prefix = @exec_prefix@ - host = @host@ Index: patches/patch-src_md5_c =================================================================== RCS file: patches/patch-src_md5_c diff -N patches/patch-src_md5_c --- patches/patch-src_md5_c 11 Mar 2022 19:46:05 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -Fix memset size param. - -Index: src/md5.c ---- src/md5.c.orig -+++ src/md5.c -@@ -174,7 +174,7 @@ void MD5Final(unsigned char digest[HASH_LEN], struct M - MD5Transform(ctx->buf, (uint32_t *) ctx->in); - byteReverse((unsigned char *) ctx->buf, 4); - memcpy(digest, ctx->buf, HASH_LEN); -- memset(ctx, 0, sizeof(ctx)); -+ memset(ctx, 0, sizeof(*ctx)); - /* In case it's sensitive */ - } - Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/net/icecast/pkg/PLIST,v diff -u -p -r1.17 PLIST --- pkg/PLIST 8 Nov 2022 11:14:56 -0000 1.17 +++ pkg/PLIST 29 Jun 2026 17:55:10 -0000 @@ -4,44 +4,44 @@ @bin bin/icecast share/doc/icecast/ share/doc/icecast/AUTHORS +share/doc/icecast/COPYING +share/doc/icecast/ChangeLog share/doc/icecast/NEWS -share/doc/icecast/admin-interface.html -share/doc/icecast/assets/ -share/doc/icecast/assets/css/ -share/doc/icecast/assets/css/style.css -share/doc/icecast/assets/font/ -share/doc/icecast/assets/font/FiraMono-Bold.eot -share/doc/icecast/assets/font/FiraMono-Bold.woff -share/doc/icecast/assets/font/FiraMono-Regular.eot -share/doc/icecast/assets/font/FiraMono-Regular.woff -share/doc/icecast/assets/font/FiraSans-Bold.eot -share/doc/icecast/assets/font/FiraSans-Bold.woff -share/doc/icecast/assets/font/FiraSans-BoldItalic.eot -share/doc/icecast/assets/font/FiraSans-BoldItalic.woff -share/doc/icecast/assets/font/FiraSans-Italic.eot -share/doc/icecast/assets/font/FiraSans-Italic.woff -share/doc/icecast/assets/font/FiraSans-Regular.eot -share/doc/icecast/assets/font/FiraSans-Regular.woff -share/doc/icecast/assets/img/ -share/doc/icecast/assets/img/xiph-community.svg -share/doc/icecast/auth.html -share/doc/icecast/basic-setup.html -share/doc/icecast/changes.html -share/doc/icecast/config-file.html -share/doc/icecast/faq.html -share/doc/icecast/glossary.html +share/doc/icecast/README.md +share/doc/icecast/admin_interface/ +share/doc/icecast/admin_interface/index.html +share/doc/icecast/auth/ +share/doc/icecast/auth/index.html +share/doc/icecast/basic_setup/ +share/doc/icecast/basic_setup/index.html +share/doc/icecast/config_file/ +share/doc/icecast/config_file/index.html +share/doc/icecast/css/ +share/doc/icecast/css/highlight.css +share/doc/icecast/css/theme.css +share/doc/icecast/css/theme_extra.css +share/doc/icecast/fonts/ +share/doc/icecast/fonts/fontawesome-webfont.eot +share/doc/icecast/fonts/fontawesome-webfont.svg +share/doc/icecast/fonts/fontawesome-webfont.ttf +share/doc/icecast/fonts/fontawesome-webfont.woff share/doc/icecast/img/ -share/doc/icecast/img/listener_auth1.png -share/doc/icecast/img/listener_auth2.png -share/doc/icecast/img/listener_auth3.png -share/doc/icecast/img/masterslave.png -share/doc/icecast/img/relay.png +share/doc/icecast/img/Icecast_shema.svg +share/doc/icecast/img/favicon.ico share/doc/icecast/index.html -share/doc/icecast/introduction.html -share/doc/icecast/relaying.html -share/doc/icecast/server-stats.html -share/doc/icecast/win32.html -share/doc/icecast/yp.html +share/doc/icecast/js/ +share/doc/icecast/js/highlight.pack.js +share/doc/icecast/js/jquery-2.1.1.min.js +share/doc/icecast/js/modernizr-2.8.3.min.js +share/doc/icecast/js/theme.js +share/doc/icecast/relaying/ +share/doc/icecast/relaying/index.html +share/doc/icecast/server_stats/ +share/doc/icecast/server_stats/index.html +share/doc/icecast/win32/ +share/doc/icecast/win32/index.html +share/doc/icecast/yp/ +share/doc/icecast/yp/index.html share/doc/pkg-readmes/${PKGSTEM} share/examples/icecast/ @owner _icecast @@ -49,8 +49,40 @@ share/examples/icecast/ @sample /var/icecast/ @sample /var/icecast/admin/ share/examples/icecast/admin/ +share/examples/icecast/admin/dashboard.xsl +@sample /var/icecast/admin/dashboard.xsl +share/examples/icecast/admin/error-html.xsl +@sample /var/icecast/admin/error-html.xsl +share/examples/icecast/admin/error-plaintext.xsl +@sample /var/icecast/admin/error-plaintext.xsl +share/examples/icecast/admin/fallbacks.xsl +@sample /var/icecast/admin/fallbacks.xsl +share/examples/icecast/admin/includes/ +@sample /var/icecast/admin/includes/ +share/examples/icecast/admin/includes/authlist.xsl +@sample /var/icecast/admin/includes/authlist.xsl +share/examples/icecast/admin/includes/confirm.xsl +@sample /var/icecast/admin/includes/confirm.xsl +share/examples/icecast/admin/includes/footer.xsl +@sample /var/icecast/admin/includes/footer.xsl +share/examples/icecast/admin/includes/head.xsl +@sample /var/icecast/admin/includes/head.xsl +share/examples/icecast/admin/includes/header.xsl +@sample /var/icecast/admin/includes/header.xsl +share/examples/icecast/admin/includes/mountnav.xsl +@sample /var/icecast/admin/includes/mountnav.xsl +share/examples/icecast/admin/includes/page.xsl +@sample /var/icecast/admin/includes/page.xsl +share/examples/icecast/admin/includes/player.xsl +@sample /var/icecast/admin/includes/player.xsl +share/examples/icecast/admin/includes/playlist.xsl +@sample /var/icecast/admin/includes/playlist.xsl +share/examples/icecast/admin/includes/web-page.xsl +@sample /var/icecast/admin/includes/web-page.xsl share/examples/icecast/admin/listclients.xsl @sample /var/icecast/admin/listclients.xsl +share/examples/icecast/admin/listensocketlist.xsl +@sample /var/icecast/admin/listensocketlist.xsl share/examples/icecast/admin/listmounts.xsl @sample /var/icecast/admin/listmounts.xsl share/examples/icecast/admin/manageauth.xsl @@ -59,12 +91,26 @@ share/examples/icecast/admin/moveclients @sample /var/icecast/admin/moveclients.xsl share/examples/icecast/admin/response.xsl @sample /var/icecast/admin/response.xsl +share/examples/icecast/admin/showlog.xsl +@sample /var/icecast/admin/showlog.xsl share/examples/icecast/admin/stats.xsl @sample /var/icecast/admin/stats.xsl +share/examples/icecast/admin/ui/ +@sample /var/icecast/admin/ui/ +share/examples/icecast/admin/ui/confirmdeleteuser.xsl +@sample /var/icecast/admin/ui/confirmdeleteuser.xsl +share/examples/icecast/admin/ui/confirmkillclient.xsl +@sample /var/icecast/admin/ui/confirmkillclient.xsl +share/examples/icecast/admin/ui/confirmkilldumpfile.xsl +@sample /var/icecast/admin/ui/confirmkilldumpfile.xsl +share/examples/icecast/admin/ui/confirmkillsource.xsl +@sample /var/icecast/admin/ui/confirmkillsource.xsl share/examples/icecast/admin/updatemetadata.xsl @sample /var/icecast/admin/updatemetadata.xsl share/examples/icecast/admin/vclt.xsl @sample /var/icecast/admin/vclt.xsl +share/examples/icecast/admin/version.xsl +@sample /var/icecast/admin/version.xsl share/examples/icecast/admin/xspf.xsl @sample /var/icecast/admin/xspf.xsl @mode 600 @@ -73,26 +119,35 @@ share/examples/icecast/icecast.xml.dist @mode share/examples/icecast/icecast_minimal.xml.dist share/examples/icecast/icecast_shoutcast_compat.xml.dist -share/examples/icecast/icecast_urlauth.xml.dist share/examples/icecast/web/ @sample /var/icecast/web/ +share/examples/icecast/web/assets/ +@sample /var/icecast/web/assets/ +share/examples/icecast/web/assets/css/ +@sample /var/icecast/web/assets/css/ +share/examples/icecast/web/assets/css/style.css +@sample /var/icecast/web/assets/css/style.css +share/examples/icecast/web/assets/img/ +@sample /var/icecast/web/assets/img/ +share/examples/icecast/web/assets/img/icecast.png +@sample /var/icecast/web/assets/img/icecast.png share/examples/icecast/web/auth.xsl @sample /var/icecast/web/auth.xsl -share/examples/icecast/web/icecast.png -@sample /var/icecast/web/icecast.png -share/examples/icecast/web/key.png -@sample /var/icecast/web/key.png +share/examples/icecast/web/favicon.ico +@sample /var/icecast/web/favicon.ico +@owner _icecast +@group _icecast share/examples/icecast/web/server_version.xsl @sample /var/icecast/web/server_version.xsl share/examples/icecast/web/status-json.xsl @sample /var/icecast/web/status-json.xsl share/examples/icecast/web/status.xsl @sample /var/icecast/web/status.xsl -share/examples/icecast/web/style.css -@sample /var/icecast/web/style.css -share/examples/icecast/web/tunein.png -@sample /var/icecast/web/tunein.png @sample /var/icecast/log/ @sample /var/icecast/etc/ share/examples/icecast/web/xml2json.xslt @sample /var/icecast/web/xml2json.xslt +@owner +@group +share/icecast/ +share/icecast/report-db.xml -- jca
libigloo.tgz
Description: application/tar-gz
