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

Attachment: libigloo.tgz
Description: application/tar-gz

Reply via email to