Import icecast-2.4.4-17
This commit is contained in:
commit
8342c58fb1
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
SOURCES/icecast-2.4.4.tar.gz
|
1
.icecast.metadata
Normal file
1
.icecast.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
dc1974235e72dfa5006ab4b8bae0380a2f951a36 SOURCES/icecast-2.4.4.tar.gz
|
@ -0,0 +1,96 @@
|
|||||||
|
From 25ba9dd91d33471d0485105ee6e5dd6d343fc8b0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||||
|
Date: Wed, 4 Nov 2020 11:20:19 +0100
|
||||||
|
Subject: [PATCH] Respect a default cipher list defined by the SSL library
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Software distributions, like Fedora, set and enforce a global
|
||||||
|
cryptographic policy
|
||||||
|
(https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/).
|
||||||
|
That enables users to control a security level from one place.
|
||||||
|
|
||||||
|
Overriding the default cipher list in Icecast sources undermines the
|
||||||
|
goal.
|
||||||
|
|
||||||
|
This patch removes the hard-coded cipher list from the sources.
|
||||||
|
|
||||||
|
<https://bugzilla.redhat.com/show_bug.cgi?id=1645612>
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/config-file.html | 4 ++--
|
||||||
|
src/cfgfile.c | 3 +--
|
||||||
|
src/connection.c | 12 +++++++-----
|
||||||
|
3 files changed, 10 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/config-file.html b/doc/config-file.html
|
||||||
|
index 4650146..4cf0fd0 100644
|
||||||
|
--- a/doc/config-file.html
|
||||||
|
+++ b/doc/config-file.html
|
||||||
|
@@ -648,7 +648,7 @@ For example: <code><alias source="/foo" dest="/bar"></code></dd>
|
||||||
|
This is required for HTTPS support to be enabled. Please note that the user Icecast is running as must be able to read the file. Failing to ensure this will cause a “Invalid cert file” WARN message, just as if the file wasn’t there.</dd>
|
||||||
|
<dt>ssl-allowed-ciphers</dt>
|
||||||
|
<dd>This optional tag specifies the list of allowed ciphers passed on to the SSL library.
|
||||||
|
-Icecast contains a set of defaults conforming to current best practices and you should <em>only</em> override those, using this tag, if you know exactly what you are doing.</dd>
|
||||||
|
+Icecast respects a set of defaults coming from the SSL library and you should <em>only</em> override those, using this tag, if you know exactly what you are doing.</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@@ -738,4 +738,4 @@ These need to be valid users on the system. Icecast must be started as root for
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
-</html>
|
||||||
|
\ No newline at end of file
|
||||||
|
+</html>
|
||||||
|
diff --git a/src/cfgfile.c b/src/cfgfile.c
|
||||||
|
index a9df53c..b758fab 100644
|
||||||
|
--- a/src/cfgfile.c
|
||||||
|
+++ b/src/cfgfile.c
|
||||||
|
@@ -59,7 +59,6 @@
|
||||||
|
#define CONFIG_DEFAULT_GROUP NULL
|
||||||
|
#define CONFIG_MASTER_UPDATE_INTERVAL 120
|
||||||
|
#define CONFIG_YP_URL_TIMEOUT 10
|
||||||
|
-#define CONFIG_DEFAULT_CIPHER_LIST "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
#define CONFIG_DEFAULT_BASE_DIR "/usr/local/icecast"
|
||||||
|
@@ -432,7 +431,7 @@ static void _set_defaults(ice_config_t *configuration)
|
||||||
|
configuration->master_password = NULL;
|
||||||
|
configuration->base_dir = (char *)xmlCharStrdup (CONFIG_DEFAULT_BASE_DIR);
|
||||||
|
configuration->log_dir = (char *)xmlCharStrdup (CONFIG_DEFAULT_LOG_DIR);
|
||||||
|
- configuration->cipher_list = (char *)xmlCharStrdup (CONFIG_DEFAULT_CIPHER_LIST);
|
||||||
|
+ configuration->cipher_list = NULL;
|
||||||
|
configuration->webroot_dir = (char *)xmlCharStrdup (CONFIG_DEFAULT_WEBROOT_DIR);
|
||||||
|
configuration->adminroot_dir = (char *)xmlCharStrdup (CONFIG_DEFAULT_ADMINROOT_DIR);
|
||||||
|
configuration->playlist_log = (char *)xmlCharStrdup (CONFIG_DEFAULT_PLAYLIST_LOG);
|
||||||
|
diff --git a/src/connection.c b/src/connection.c
|
||||||
|
index df85b07..8261c6f 100644
|
||||||
|
--- a/src/connection.c
|
||||||
|
+++ b/src/connection.c
|
||||||
|
@@ -233,13 +233,15 @@ static void get_ssl_certificate (ice_config_t *config)
|
||||||
|
ICECAST_LOG_ERROR("Invalid %s - Private key does not match cert public key", config->cert_file);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
- if (SSL_CTX_set_cipher_list(ssl_ctx, config->cipher_list) <= 0)
|
||||||
|
- {
|
||||||
|
- ICECAST_LOG_WARN("Invalid cipher list: %s", config->cipher_list);
|
||||||
|
- }
|
||||||
|
+ if (config->cipher_list)
|
||||||
|
+ {
|
||||||
|
+ if (SSL_CTX_set_cipher_list(ssl_ctx, config->cipher_list) <= 0)
|
||||||
|
+ ICECAST_LOG_WARN("Invalid cipher list: %s", config->cipher_list);
|
||||||
|
+ else
|
||||||
|
+ ICECAST_LOG_INFO("SSL using ciphers %s", config->cipher_list);
|
||||||
|
+ }
|
||||||
|
ssl_ok = 1;
|
||||||
|
ICECAST_LOG_INFO("SSL certificate found at %s", config->cert_file);
|
||||||
|
- ICECAST_LOG_INFO("SSL using ciphers %s", config->cipher_list);
|
||||||
|
return;
|
||||||
|
} while (0);
|
||||||
|
ICECAST_LOG_INFO("No SSL capability on any configured ports");
|
||||||
|
--
|
||||||
|
2.25.4
|
||||||
|
|
67
SOURCES/icecast.init
Executable file
67
SOURCES/icecast.init
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# icecast This shell script takes care of starting and stopping
|
||||||
|
# the icecast multimedia streaming systen.
|
||||||
|
#
|
||||||
|
# chkconfig: - 85 15
|
||||||
|
# description: icecast is a multimedia streaming daemon. It is used to \
|
||||||
|
# relay and offer multimedia streaming content.
|
||||||
|
# processname: icecast
|
||||||
|
# pidfile: /var/run/icecast/icecast.pid
|
||||||
|
# config: /etc/icecast.xml
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: icecast
|
||||||
|
# Required-Start: $local_fs $remote_fs $network $named
|
||||||
|
# Required-Stop: $local_fs $remote_fs $network
|
||||||
|
# Short-Description: start and stop the Icecast server
|
||||||
|
# Description: The Icecast Server is a network audio streaming server
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
[ -x /usr/bin/icecast ] || exit 0
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
# Start daemon.
|
||||||
|
echo -n $"Starting icecast streaming daemon: "
|
||||||
|
daemon "/usr/bin/icecast -b -c /etc/icecast.xml > /dev/null"
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/icecast
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
# Stop daemon.
|
||||||
|
echo -n $"Shutting down icecast streaming daemon: "
|
||||||
|
killproc icecast
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/icecast
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status icecast
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
echo -n $"Reloading icecast: "
|
||||||
|
killproc icecast -HUP
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
condrestart)
|
||||||
|
[ -f /var/lock/subsys/icecast ] && restart || :
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Usage: $0 {start|stop|status|restart|reload}"
|
||||||
|
RETVAL=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $RETVAL
|
8
SOURCES/icecast.logrotate
Normal file
8
SOURCES/icecast.logrotate
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/var/log/icecast/*log {
|
||||||
|
missingok
|
||||||
|
notifempty
|
||||||
|
sharedscripts
|
||||||
|
postrotate
|
||||||
|
/bin/kill -HUP `cat /var/run/icecast/icecast.pid 2>/dev/null` 2> /dev/null || true
|
||||||
|
endscript
|
||||||
|
}
|
10
SOURCES/icecast.service
Normal file
10
SOURCES/icecast.service
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Icecast Network Audio Streaming Server
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/icecast -c /etc/icecast.xml
|
||||||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
172
SOURCES/icecast.xml
Normal file
172
SOURCES/icecast.xml
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
<icecast>
|
||||||
|
<limits>
|
||||||
|
<clients>100</clients>
|
||||||
|
<sources>2</sources>
|
||||||
|
<threadpool>5</threadpool>
|
||||||
|
<queue-size>524288</queue-size>
|
||||||
|
<client-timeout>30</client-timeout>
|
||||||
|
<header-timeout>15</header-timeout>
|
||||||
|
<source-timeout>10</source-timeout>
|
||||||
|
<!-- If enabled, this will provide a burst of data when a client
|
||||||
|
first connects, thereby significantly reducing the startup
|
||||||
|
time for listeners that do substantial buffering. However,
|
||||||
|
it also significantly increases latency between the source
|
||||||
|
client and listening client. For low-latency setups, you
|
||||||
|
might want to disable this. -->
|
||||||
|
<burst-on-connect>1</burst-on-connect>
|
||||||
|
<!-- same as burst-on-connect, but this allows for being more
|
||||||
|
specific on how much to burst. Most people won't need to
|
||||||
|
change from the default 64k. Applies to all mountpoints -->
|
||||||
|
<burst-size>65535</burst-size>
|
||||||
|
</limits>
|
||||||
|
|
||||||
|
<authentication>
|
||||||
|
<!-- Sources log in with username 'source' -->
|
||||||
|
<source-password>hackme</source-password>
|
||||||
|
<!-- Relays log in username 'relay' -->
|
||||||
|
<relay-password>hackme</relay-password>
|
||||||
|
|
||||||
|
<!-- Admin logs in with the username given below -->
|
||||||
|
<admin-user>admin</admin-user>
|
||||||
|
<admin-password>hackme</admin-password>
|
||||||
|
</authentication>
|
||||||
|
|
||||||
|
<!-- set the mountpoint for a shoutcast source to use, the default if not
|
||||||
|
specified is /stream but you can change it here if an alternative is
|
||||||
|
wanted or an extension is required
|
||||||
|
<shoutcast-mount>/live.nsv</shoutcast-mount>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Uncomment this if you want directory listings -->
|
||||||
|
<!--
|
||||||
|
<directory>
|
||||||
|
<yp-url-timeout>15</yp-url-timeout>
|
||||||
|
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
|
||||||
|
</directory>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- This is the hostname other people will use to connect to your server.
|
||||||
|
It affects mainly the urls generated by Icecast for playlists and yp
|
||||||
|
listings. -->
|
||||||
|
<hostname>localhost</hostname>
|
||||||
|
|
||||||
|
<!-- You may have multiple <listener> elements -->
|
||||||
|
<listen-socket>
|
||||||
|
<port>8000</port>
|
||||||
|
<bind-address>127.0.0.1</bind-address>
|
||||||
|
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
|
||||||
|
</listen-socket>
|
||||||
|
<!--
|
||||||
|
<listen-socket>
|
||||||
|
<port>8001</port>
|
||||||
|
</listen-socket>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--<master-server>127.0.0.1</master-server>-->
|
||||||
|
<!--<master-server-port>8001</master-server-port>-->
|
||||||
|
<!--<master-update-interval>120</master-update-interval>-->
|
||||||
|
<!--<master-password>hackme</master-password>-->
|
||||||
|
|
||||||
|
<!-- setting this makes all relays on-demand unless overridden, this is
|
||||||
|
useful for master relays which do not have <relay> definitions here.
|
||||||
|
The default is 0 -->
|
||||||
|
<!--<relays-on-demand>1</relays-on-demand>-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<relay>
|
||||||
|
<server>127.0.0.1</server>
|
||||||
|
<port>8001</port>
|
||||||
|
<mount>/example.ogg</mount>
|
||||||
|
<local-mount>/different.ogg</local-mount>
|
||||||
|
<on-demand>0</on-demand>
|
||||||
|
|
||||||
|
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
|
||||||
|
</relay>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Only define a <mount> section if you want to use advanced options,
|
||||||
|
like alternative usernames or passwords
|
||||||
|
<mount>
|
||||||
|
<mount-name>/example-complex.ogg</mount-name>
|
||||||
|
|
||||||
|
<username>othersource</username>
|
||||||
|
<password>hackmemore</password>
|
||||||
|
|
||||||
|
<max-listeners>1</max-listeners>
|
||||||
|
<dump-file>/tmp/dump-example1.ogg</dump-file>
|
||||||
|
<burst-size>65536</burst-size>
|
||||||
|
<fallback-mount>/example2.ogg</fallback-mount>
|
||||||
|
<fallback-override>1</fallback-override>
|
||||||
|
<fallback-when-full>1</fallback-when-full>
|
||||||
|
<intro>/example_intro.ogg</intro>
|
||||||
|
<hidden>1</hidden>
|
||||||
|
<no-yp>1</no-yp>
|
||||||
|
<authentication type="htpasswd">
|
||||||
|
<option name="filename" value="myauth"/>
|
||||||
|
<option name="allow_duplicate_users" value="0"/>
|
||||||
|
</authentication>
|
||||||
|
<on-connect>/home/icecast/bin/stream-start</on-connect>
|
||||||
|
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
|
||||||
|
</mount>
|
||||||
|
|
||||||
|
<mount>
|
||||||
|
<mount-name>/auth_example.ogg</mount-name>
|
||||||
|
<authentication type="url">
|
||||||
|
<option name="mount_add" value="http://myauthserver.net/notify_mount.php"/>
|
||||||
|
<option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/>
|
||||||
|
<option name="listener_add" value="http://myauthserver.net/notify_listener.php"/>
|
||||||
|
<option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
|
||||||
|
</authentication>
|
||||||
|
</mount>
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<fileserve>1</fileserve>
|
||||||
|
|
||||||
|
<paths>
|
||||||
|
<!-- basedir is only used if chroot is enabled -->
|
||||||
|
<basedir>/usr/share/icecast</basedir>
|
||||||
|
|
||||||
|
<!-- Note that if <chroot> is turned on below, these paths must both
|
||||||
|
be relative to the new root, not the original root -->
|
||||||
|
<logdir>/var/log/icecast</logdir>
|
||||||
|
<webroot>/usr/share/icecast/web</webroot>
|
||||||
|
<adminroot>/usr/share/icecast/admin</adminroot>
|
||||||
|
<pidfile>/var/run/icecast/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"
|
||||||
|
and "bind-address" attributes.
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
<alias source="/foo" dest="/bar"/>
|
||||||
|
-->
|
||||||
|
<!-- Aliases: can also be used for simple redirections as well,
|
||||||
|
this example will redirect all requests for http://server:port/ to
|
||||||
|
the status page
|
||||||
|
-->
|
||||||
|
<alias source="/" dest="/status.xsl"/>
|
||||||
|
</paths>
|
||||||
|
|
||||||
|
<logging>
|
||||||
|
<accesslog>access.log</accesslog>
|
||||||
|
<errorlog>error.log</errorlog>
|
||||||
|
<!-- <playlistlog>playlist.log</playlistlog> -->
|
||||||
|
<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
|
||||||
|
<logsize>10000</logsize> <!-- Max size of a logfile -->
|
||||||
|
<!-- If logarchive is enabled (1), then when logsize is reached
|
||||||
|
the logfile will be moved to [error|access|playlist].log.DATESTAMP,
|
||||||
|
otherwise it will be moved to [error|access|playlist].log.old.
|
||||||
|
Default is non-archive mode (i.e. overwrite)
|
||||||
|
-->
|
||||||
|
<!-- <logarchive>1</logarchive> -->
|
||||||
|
</logging>
|
||||||
|
|
||||||
|
<security>
|
||||||
|
<chroot>0</chroot>
|
||||||
|
<changeowner>
|
||||||
|
<user>icecast</user>
|
||||||
|
<group>icecast</group>
|
||||||
|
</changeowner>
|
||||||
|
</security>
|
||||||
|
</icecast>
|
12
SOURCES/status3.xsl
Normal file
12
SOURCES/status3.xsl
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
|
||||||
|
<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
|
||||||
|
<xsl:template match = "/icestats" >
|
||||||
|
<pre>
|
||||||
|
MountPoint,Connections,Stream Name,Current Listeners,Description,Currently Playing,Stream URL
|
||||||
|
Global,Client:<xsl:value-of select="connections" /> Source: <xsl:value-of select="source_connections" />#<xsl:value-of select="listeners" />#
|
||||||
|
<xsl:for-each select="source">
|
||||||
|
<xsl:value-of select="server_name" />#<xsl:value-of select="@mount" />#<xsl:value-of select="name" />#<xsl:value-of select="listeners" />#<xsl:value-of select="description" />#<xsl:value-of select="artist" />#<xsl:value-of select="title" />#<xsl:value-of select="url" />
|
||||||
|
</xsl:for-each>
|
||||||
|
</pre>
|
||||||
|
</xsl:template>
|
||||||
|
</xsl:stylesheet>
|
374
SPECS/icecast.spec
Normal file
374
SPECS/icecast.spec
Normal file
@ -0,0 +1,374 @@
|
|||||||
|
# This package builds a daemon-application,
|
||||||
|
# thus we build with full hardening.
|
||||||
|
%global _hardened_build 1
|
||||||
|
|
||||||
|
# Systemd or SysV?
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%global with_systemd 1
|
||||||
|
%endif # 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
|
||||||
|
# Setup _pkgdocdir if not defined already.
|
||||||
|
%{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||||
|
|
||||||
|
Name: icecast
|
||||||
|
Version: 2.4.4
|
||||||
|
Release: 17%{?dist}
|
||||||
|
Summary: ShoutCast compatible streaming media server
|
||||||
|
|
||||||
|
# admin/xspf.xsl: GPLv2+
|
||||||
|
# COPYING: GPLv2 text
|
||||||
|
# src/fserve.c: GPLv2
|
||||||
|
# src/thread/thread.c: GPLv2+
|
||||||
|
# src/avl/avl.c: BSD
|
||||||
|
# web/xml2json.xslt: BSD
|
||||||
|
## In doc package only:
|
||||||
|
# examples/icecast_auth-1.0.tar.gz:
|
||||||
|
# config.guess: GPLv2+
|
||||||
|
# configure: FSFUL
|
||||||
|
# COPYING: GPLv2 text
|
||||||
|
# install-sh: MIT
|
||||||
|
# Makefile.in: FSFULLR
|
||||||
|
## Not in any binary package:
|
||||||
|
# config.guess: GPLv3+
|
||||||
|
# configure: FSFUL
|
||||||
|
# doc/assets/img/Makefile.in: FSFULLR
|
||||||
|
# install-sh: MIT
|
||||||
|
License: GPLv2+ and GPLv2 and BSD
|
||||||
|
URL: http://www.%{name}.org/
|
||||||
|
Source0: https://downloads.xiph.org/releases/%{name}/%{name}-%{version}.tar.gz
|
||||||
|
Source1: %{name}.init
|
||||||
|
Source2: %{name}.logrotate
|
||||||
|
Source3: %{name}.service
|
||||||
|
Source4: %{name}.xml
|
||||||
|
Source5: status3.xsl
|
||||||
|
# Respect a system crypto policy, bug #1645612
|
||||||
|
Patch0: icecast-2.4.4-Respect-a-default-cipher-list-defined-by-the-SSL-lib.patch
|
||||||
|
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
|
BuildRequires: coreutils
|
||||||
|
BuildRequires: findutils
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: curl-devel >= 7.10.0
|
||||||
|
BuildRequires: libogg-devel >= 1.0
|
||||||
|
BuildRequires: libtheora-devel >= 1.0
|
||||||
|
BuildRequires: libvorbis-devel >= 1.0
|
||||||
|
BuildRequires: libxml2-devel
|
||||||
|
BuildRequires: libxslt-devel
|
||||||
|
BuildRequires: openssl-devel
|
||||||
|
BuildRequires: speex-devel
|
||||||
|
|
||||||
|
Requires: mailcap
|
||||||
|
|
||||||
|
Requires(pre): shadow-utils
|
||||||
|
|
||||||
|
%if 0%{?with_systemd}
|
||||||
|
BuildRequires: systemd
|
||||||
|
|
||||||
|
%{?systemd_requires}
|
||||||
|
%else # 0%{?with_systemd}
|
||||||
|
Requires(post): /sbin/chkconfig
|
||||||
|
Requires(preun): /sbin/chkconfig
|
||||||
|
Requires(preun): /sbin/service
|
||||||
|
Requires(postun): /sbin/service
|
||||||
|
%endif # 0%{?with_systemd}
|
||||||
|
|
||||||
|
Provides: streaming-server
|
||||||
|
|
||||||
|
%description
|
||||||
|
Icecast is a streaming media server which currently supports
|
||||||
|
Ogg Vorbis and MP3 audio streams. It can be used to create an
|
||||||
|
Internet radio station or a privately running jukebox and many
|
||||||
|
things in between. It is very versatile in that new formats
|
||||||
|
can be added relatively easily and supports open standards for
|
||||||
|
communication and interaction.
|
||||||
|
|
||||||
|
|
||||||
|
%package doc
|
||||||
|
Summary: Documentation files for %{name}
|
||||||
|
License: GPLv2+ and MIT and FSFULLR and FSFUL
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description doc
|
||||||
|
This package contains the documentation files for %{name}.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p 1
|
||||||
|
%{_bindir}/find doc/ -type f | xargs %{__chmod} 0644
|
||||||
|
%{__cp} -a doc/ html/
|
||||||
|
%{_bindir}/find html/ -name 'Makefile*' | xargs %{__rm} -f
|
||||||
|
autoreconf -f
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure \
|
||||||
|
--with-curl \
|
||||||
|
--enable-largefile \
|
||||||
|
--enable-maintainer-mode \
|
||||||
|
--with-ogg \
|
||||||
|
--with-openssl \
|
||||||
|
--enable-shared \
|
||||||
|
--with-speex \
|
||||||
|
--disable-static \
|
||||||
|
--with-theora \
|
||||||
|
--with-vorbis \
|
||||||
|
--enable-yp
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
%{__rm} -fr %{buildroot}%{_datadir}/%{name}/doc
|
||||||
|
%{__rm} -fr %{buildroot}%{_docdir}/%{name}
|
||||||
|
%if 0%{?with_systemd}
|
||||||
|
%{__install} -Dpm 0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service
|
||||||
|
%else # 0%{?with_systemd}
|
||||||
|
%{__install} -Dpm 0755 %{SOURCE1} %{buildroot}%{_initrddir}/%{name}
|
||||||
|
%endif # 0%{?with_systemd}
|
||||||
|
%{__install} -Dpm 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
||||||
|
%{__install} -Dpm 0640 %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}.xml
|
||||||
|
%{__install} -Dpm 0644 %{SOURCE5} %{buildroot}%{_datadir}/%{name}/web/status3.xsl
|
||||||
|
%{__mkdir} -p %{buildroot}%{_localstatedir}/log/%{name} \
|
||||||
|
%{buildroot}%{_localstatedir}/run/%{name} \
|
||||||
|
%{buildroot}%{_pkgdocdir}/{conf,examples}
|
||||||
|
%{__cp} -a html/ AUTHORS ChangeLog COPYING NEWS TODO %{buildroot}%{_pkgdocdir}
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%{__rm} -f %{buildroot}%{_pkgdocdir}/COPYING
|
||||||
|
%endif # 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%{__cp} -a conf/*.dist %{buildroot}%{_pkgdocdir}/conf
|
||||||
|
%{__cp} -a examples/%{name}_auth-1.0.tar.gz %{buildroot}%{_pkgdocdir}/examples
|
||||||
|
|
||||||
|
|
||||||
|
%pre
|
||||||
|
%{_bindir}/getent passwd %{name} >/dev/null || \
|
||||||
|
%{_sbindir}/useradd -M -r -d /usr/share/%{name} -s /sbin/nologin \
|
||||||
|
-c "%{name} streaming server" %{name} > /dev/null 2>&1 || :
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|
||||||
|
%post
|
||||||
|
%if 0%{?with_systemd}
|
||||||
|
%systemd_post %{name}.service
|
||||||
|
%else # 0%{?with_systemd}
|
||||||
|
/sbin/chkconfig --add %{name}
|
||||||
|
%endif # 0%{?with_systemd}
|
||||||
|
|
||||||
|
|
||||||
|
%preun
|
||||||
|
%if 0%{?with_systemd}
|
||||||
|
%systemd_preun %{name}.service
|
||||||
|
%else # 0%{?with_systemd}
|
||||||
|
if [ $1 = 0 ]; then
|
||||||
|
/sbin/service %{name} stop >/dev/null 2>&1
|
||||||
|
/sbin/chkconfig --del %{name}
|
||||||
|
fi
|
||||||
|
%endif # 0%{?with_systemd}
|
||||||
|
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%if 0%{?with_systemd}
|
||||||
|
%systemd_postun_with_restart %{name}.service
|
||||||
|
%else # 0%{?with_systemd}
|
||||||
|
if [ "$1" -ge "1" ]; then
|
||||||
|
/sbin/service %{name} condrestart >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
%endif # 0%{?with_systemd}
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%config(noreplace) %attr(-,root,%{name}) %{_sysconfdir}/%{name}.xml
|
||||||
|
%dir %attr(-,%{name},%{name}) %{_localstatedir}/log/%{name}
|
||||||
|
%doc %dir %{_pkgdocdir}
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%license COPYING
|
||||||
|
%else # 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%doc %{_pkgdocdir}/COPYING
|
||||||
|
%endif # 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%{_bindir}/%{name}
|
||||||
|
%{_datadir}/%{name}
|
||||||
|
%{_sysconfdir}/logrotate.d/%{name}
|
||||||
|
%if 0%{?with_systemd}
|
||||||
|
%{_unitdir}/%{name}.service
|
||||||
|
%else # 0%{?with_systemd}
|
||||||
|
%dir %attr(-,%{name},%{name}) %{_localstatedir}/run/%{name}
|
||||||
|
%{_initrddir}/%{name}
|
||||||
|
%endif # 0%{?with_systemd}
|
||||||
|
|
||||||
|
|
||||||
|
%files doc
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%license %{_datadir}/licenses/%{name}*
|
||||||
|
%endif # 0%{?fedora} || 0%{?rhel} >= 7
|
||||||
|
%doc %{_pkgdocdir}
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-17
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-16
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-15
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-14
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-13
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-11
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 2.4.4-10
|
||||||
|
- Rebuilt with OpenSSL 3.0.0
|
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.4.4-8
|
||||||
|
- Rebuilt for updated systemd-rpm-macros
|
||||||
|
See https://pagure.io/fesco/issue/2583.
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Nov 04 2020 Petr Pisar <ppisar@redhat.com> - 2.4.4-6
|
||||||
|
- Respect a system crypto policy (bug #1645612)
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Nov 02 2018 Petr Pisar <ppisar@redhat.com> - 2.4.4-1
|
||||||
|
- 2.4.4 bump
|
||||||
|
- License declaration corrected from "GPLv2+" to "GPLv2+ and GPLv2 and BSD and
|
||||||
|
MIT and FSFULLR and FSFUL"
|
||||||
|
- Fix CVE-2018-18820 (buffer overflow in URL auth code) (#1646721)
|
||||||
|
- Regenerate build scripts
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 28 2018 Björn Esser <besser82@fedoraproject.org> - 2.4.3-1
|
||||||
|
- Update to v2.4.3 (#1303784)
|
||||||
|
|
||||||
|
* Sun Jan 28 2018 Björn Esser <besser82@fedoraproject.org> - 2.4.2-7
|
||||||
|
- Add Requires: mailcap (#1519830)
|
||||||
|
|
||||||
|
* Sun Jan 28 2018 Björn Esser <besser82@fedoraproject.org> - 2.4.2-6
|
||||||
|
- Remove lots of old cruft
|
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.2-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.2-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 27 2015 Björn Esser <bjoern.esser@gmail.com> - 2.4.2-1
|
||||||
|
- update to 2.4.2 (#1236296)
|
||||||
|
- fix CVE-2015-3026 (#1210198, #1210199, #1210200)
|
||||||
|
- use %%license on Fedora 22+
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Dec 04 2014 Björn Esser <bjoern.esser@gmail.com> - 2.4.1-1
|
||||||
|
- update new to release v2.4.1 (#1101950)
|
||||||
|
- fix CVE-2014-9091 (#1168146, #1168147, #1168148, #1168149)
|
||||||
|
- fix CVE-2014-9018 (#1165880, #1165882, #1165883, #1165885)
|
||||||
|
- unified spec-file for el5+ and Fedora
|
||||||
|
- some improvements to readability
|
||||||
|
- added doc-subpkg
|
||||||
|
|
||||||
|
* Thu Dec 04 2014 Björn Esser <bjoern.esser@gmail.com> - 2.3.3-6
|
||||||
|
- enabled fully hardened build (#954320)
|
||||||
|
|
||||||
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.3-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.3-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Oct 14 2012 Andreas Thienemann <andreas@bawue.net> - 2.3.3-1
|
||||||
|
- Upgrade to new upstream release 2.3.3, fixing #831180, #797184, #768176 and #768175.
|
||||||
|
- Add systemd reload macro, fixing #814212.
|
||||||
|
- F18 styled systemd macros, fixing #850153.
|
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.2-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 24 2012 Petr Pisar <ppisar@redhat.com> - 2.3.2-7
|
||||||
|
- Remove obsolete buildroot and defattr declarations from spec file
|
||||||
|
- Move to systemd (bug #782149)
|
||||||
|
- Drop unneeded /var/run/icecast because of non-forking systemd unit
|
||||||
|
(bug #656601)
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.2-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.2-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Oct 21 2009 Andreas Thienemann <andreas@bawue.net> - 2.3.2-4
|
||||||
|
- Added SSL support
|
||||||
|
- Added LSB header to the initscripts
|
||||||
|
- Reworked config example to contain newest changes
|
||||||
|
- Added alternative config files and authentication example
|
||||||
|
|
||||||
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 31 2008 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.2-1
|
||||||
|
- update to 2.3.2
|
||||||
|
- fix license tag
|
||||||
|
|
||||||
|
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.3.1-5
|
||||||
|
- Autorebuild for GCC 4.3
|
||||||
|
|
||||||
|
* Mon Nov 06 2006 Jindrich Novy <jnovy@redhat.com> - 2.3.1-4
|
||||||
|
- rebuild because of the new curl
|
||||||
|
|
||||||
|
* Fri Sep 08 2006 Andreas Thienemann <andreas@bawue.net> - 2.3.1-3
|
||||||
|
- FE6 Rebuild
|
||||||
|
|
||||||
|
* Thu May 04 2006 Andreas Thienemann <andreas@bawue.net> 2.3.1-2
|
||||||
|
- Enabled Theora Streaming
|
||||||
|
|
||||||
|
* Fri Feb 03 2006 Andreas Thienemann <andreas@bawue.net> 2.3.1-1
|
||||||
|
- Updated to icecast 2.3.1-1
|
||||||
|
|
||||||
|
* Wed Aug 03 2005 Andreas Thienemann <andreas@bawue.net> 2.2.0-1
|
||||||
|
- Initial specfile
|
Loading…
Reference in New Issue
Block a user