Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2023-06-07T13:00:21Zhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2433Icecast2.5 beta3 crash with FLAC relay2023-06-07T13:00:21ZSySERRIcecast2.5 beta3 crash with FLAC relayOne of Icecast2 servers is playing a stream in FLAC format in an OGG container. If I configure this as a relay on another Icecast2 2.5 beta3 server, it crashes immediately after Icecast2 2.5 beta3 startup.
The stream with the problem, wh...One of Icecast2 servers is playing a stream in FLAC format in an OGG container. If I configure this as a relay on another Icecast2 2.5 beta3 server, it crashes immediately after Icecast2 2.5 beta3 startup.
The stream with the problem, which plays without any problems.
The configuration for the relay is as follows:
```
<mount>
<mount-name>/oxygenmusic_flac</mount-name>
<relay>
<upstream type="normal">
<uri>http://oxygenmusic.hu:8000/oxygenmusic_flac</uri>
</upstream>
</relay>
</mount>
```
error.log:
```
[2022-03-20 08:46:24] INFO stats/_stats_thread stats thread started
[2022-03-20 08:46:24] INFO fserve/fserve_initialize file serving started
[2022-03-20 08:46:24] INFO main/main Icecast 2.4.99.3 server started
[2022-03-20 08:46:24] INFO main/main Server's PID is 13519
[2022-03-20 08:46:24] INFO main/__log_system_name Running on mscppro-dev; OS: Linux 4.9.0-15-amd64, mscppro-dev, #1 SMP Debian 4.9.258-1 (2021-03-08), x86_64; Address Bits: 64
[2022-03-20 08:46:24] INFO main/__log_system_name From configuration: Our hostname is "dev2.mscp.pro", located "MSCP", with admin contact "mscp@localhost"
[2022-03-20 08:46:24] DBUG yp/yp_recheck_config Updating YP configuration
[2022-03-20 08:46:24] INFO yp/yp_update_thread YP update thread started
[2022-03-20 08:46:24] INFO connection/get_tls_certificate No TLS capability on any configured ports
[2022-03-20 08:46:24] DBUG listensocket/listensocket_accept Client (sock=8, ip="::ffff:127.0.0.1") on socket 0x5556491a7fc0 (-).
[2022-03-20 08:46:24] DBUG client/client_create Client 0x5556491b7bc0 created on connection 0x5556491b7b40 (connection ID: 0, sock=8, socket real: 0x5556491a7fc0 (-), socket effective: 0x5556491a7fc0 (-); global: 1 of 2000)
[2022-03-20 08:46:24] DBUG listensocket/listensocket_accept Client (sock=9, ip="::ffff:127.0.0.1") on socket 0x5556491a7fc0 (-).
[2022-03-20 08:46:24] DBUG client/client_create Client 0x5556491b7ff0 created on connection 0x5556491b7f70 (connection ID: 1, sock=9, socket real: 0x5556491a7fc0 (-), socket effective: 0x5556491a7fc0 (-); global: 2 of 2000)
[2022-03-20 08:46:24] DBUG client/client_destroy Called to destroy client 0x5556491b7bc0 on connection 0x5556491b7b40 (connection ID: 0, sock=8)
[2022-03-20 08:46:24] DBUG connection/connection_close Closing connection 0x5556491b7b40 (connection ID: 0, sock=8)
[2022-03-20 08:46:24] DBUG client/client_destroy Called to destroy client 0x5556491b7ff0 on connection 0x5556491b7f70 (connection ID: 1, sock=9)
[2022-03-20 08:46:24] DBUG connection/connection_close Closing connection 0x5556491b7f70 (connection ID: 1, sock=9)
[2022-03-20 08:46:25] DBUG stats/modify_node_event update global clients (1)
[2022-03-20 08:46:25] DBUG stats/modify_node_event update global connections (1)
[2022-03-20 08:46:25] DBUG stats/modify_node_event update global clients (2)
[2022-03-20 08:46:25] DBUG stats/modify_node_event update global connections (2)
[2022-03-20 08:46:25] DBUG stats/modify_node_event update global clients (1)
[2022-03-20 08:46:25] DBUG stats/modify_node_event update global clients (0)
[2022-03-20 08:46:25] DBUG slave/_slave_thread checking master stream list
[2022-03-20 08:46:25] DBUG slave/check_relay_stream Adding relay source at mountpoint "/oxygenmusic_flac"
[2022-03-20 08:46:25] INFO slave/start_relay_stream Starting relayed source at mountpoint "/oxygenmusic_flac"
[2022-03-20 08:46:25] DBUG slave/start_relay_stream For relay on mount "/oxygenmusic_flac", trying upstream #0
[2022-03-20 08:46:25] INFO slave/open_relay_connection connecting to oxygenmusic.hu:8000
[2022-03-20 08:46:25] DBUG client/client_create Client 0x7fac880015b0 created on connection 0x7fac88001340 (connection ID: 2, sock=8, socket real: (nil) (-), socket effective: (nil) (-); global: 1 of 2000)
[2022-03-20 08:46:25] DBUG client/client_complete Client 0x7fac880015b0 has request_body_length=-1
[2022-03-20 08:46:25] DBUG connection/connection_complete_source sources count is 0
[2022-03-20 08:46:25] DBUG source/source_apply_mount Applying mount information for "/oxygenmusic_flac"
[2022-03-20 08:46:25] DBUG source/source_apply_mount YP changed to 1
[2022-03-20 08:46:25] DBUG source/source_update_settings public set to 1
[2022-03-20 08:46:25] DBUG source/source_update_settings max listeners to -1
[2022-03-20 08:46:25] DBUG source/source_update_settings queue size to 524288
[2022-03-20 08:46:25] DBUG source/source_update_settings burst size to 196608
[2022-03-20 08:46:25] DBUG source/source_update_settings source timeout to 2
[2022-03-20 08:46:25] DBUG source/source_update_settings fallback_when_full to 0
[2022-03-20 08:46:25] DBUG connection/connection_complete_source source is ready to start
[2022-03-20 08:46:25] DBUG source/source_init Source creation complete
[2022-03-20 08:46:25] DBUG format-vorbis/initial_vorbis_page checking for vorbis codec
[2022-03-20 08:46:25] DBUG format-theora/initial_theora_page checking for theora codec
[2022-03-20 08:46:25] DBUG format-midi/initial_midi_page checking for MIDI codec
[2022-03-20 08:46:25] DBUG format-flac/initial_flac_page checking for FLAC codec
[2022-03-20 08:46:25] INFO format-flac/initial_flac_page seen initial FLAC header
[2022-03-20 08:46:25] DBUG format-ogg/format_ogg_attach_header attaching BOS page
[2022-03-20 08:46:25] DBUG format-ogg/format_ogg_attach_header attaching header page
```Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/24322.4.99 beta 3 - OPENSSL - still support for TLS 1.0 and TLS 1.1 - compared t...2024-01-20T23:54:11ZTom Zet2.4.99 beta 3 - OPENSSL - still support for TLS 1.0 and TLS 1.1 - compared to 2.4.4The current **2.4.99 beta 3** still offers TLS 1.0 and TLS 1.1. The SSL test on https://www.ssllabs.com/ shows the following result
![Image_2022-03-18_at_11.28.01_PM](/uploads/dfa1d62d8672e72cf0bcb167575ddbff/Image_2022-03-18_at_11.28.01...The current **2.4.99 beta 3** still offers TLS 1.0 and TLS 1.1. The SSL test on https://www.ssllabs.com/ shows the following result
![Image_2022-03-18_at_11.28.01_PM](/uploads/dfa1d62d8672e72cf0bcb167575ddbff/Image_2022-03-18_at_11.28.01_PM.jpeg)
On a Debian sid System with `OpenSSL 1.1.1n 15 Mar 2022` the icecast has been compiled with `./configure --prefix=/home/zumbi/icecast-2.4.99-beta-3 --with-curl --with-openssl`
The following ciphers are configured in the xml. at the end I excluded `!TLSv1:!TLSv1.1`.Even if standard in openssl, this cyphers has not been ignored.
`<ssl-allowed-ciphers>ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:!TLSv1:!TLSv1.1</ssl-allowed-ciphers>`
While on a productive Debian 11 with `OpenSSL 1.1.1k 25 Mar 2021` and **icecast 2.4.4** the test on https://www.ssllabs.com/ shows the following result
![Image_2022-03-18_at_11.30.33_PM](/uploads/43b55bf7d48f5dcda944f398c48200b5/Image_2022-03-18_at_11.30.33_PM.jpeg)
The following ciphers are configured in the xml
`<ssl-allowed-ciphers>ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256</ssl-allowed-ciphers>`
I tried to change the source code in the file `src/tls.c` on row 91 from `TLS1_VERSION` to `TLS1_3_VERSION` but get a compile error
**Original code**
```
#if OPENSSL_VERSION_NUMBER < 0x10100000L
ctx->ctx = SSL_CTX_new(SSLv23_server_method());
ssl_opts = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; // Disable SSLv2 and SSLv3
#else
ctx->ctx = SSL_CTX_new(TLS_server_method());
SSL_CTX_set_min_proto_version(ctx->ctx, TLS1_VERSION);
#endif
```
**Compile (make) error**
```
In file included from tls.c:18:
tls.c: In function ‘tls_ctx_new’:
tls.c:91:45: error: ‘TL1_3_VERSION’ undeclared (first use in this function); did you mean ‘TLS1_3_VERSION’?
91 | SSL_CTX_set_min_proto_version(ctx->ctx, TL1_3_VERSION);
^~~~~~~~~~~~
```
**Proposal**
1. Change the code this way, that TLS 1.0 and 1.1 (and older) are not offered anymore. Only offer TLS 1.2 and newer. Same way as in 2.4.4
and/or
2. Implement an option as used in advanced webservers like nginx, that the TLS version can be set in the config.
Example for nginx `ssl_protocols TLSv1.2 TLSv1.3;`. Even if the icecast developers move from openssl to another solution, such a option will be helpful and shows best practice.Icecast 2.5 rc1Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2431max listeners per one mountpoint2022-11-09T10:39:36ZCYBimax listeners per one mountpointHi, it looks like, there is limit for 20000 concurrent users per one mountpoint. Is that correct?
Thanks
Icecast 2.4.4Hi, it looks like, there is limit for 20000 concurrent users per one mountpoint. Is that correct?
Thanks
Icecast 2.4.4https://gitlab.xiph.org/xiph/icecast-server/-/issues/2430The Playlist does not display the time the song was played.2022-03-15T15:11:37ZPhilipp SchafftThe Playlist does not display the time the song was played.The playlist currently adheres XSPF fully, so there are no timestamps. However it might be useful. It may be added using extentions (likely using a `<meta>` element).
See also parent ticket #2428.The playlist currently adheres XSPF fully, so there are no timestamps. However it might be useful. It may be added using extentions (likely using a `<meta>` element).
See also parent ticket #2428.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2429/admin/version.xsl is not installed2022-03-15T10:23:11ZPhilipp Schafft/admin/version.xsl is not installed`/admin/version.xsl` is not installed. (Missing in `nobase_dist_admin_DATA`.)`/admin/version.xsl` is not installed. (Missing in `nobase_dist_admin_DATA`.)Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2428issues Icecast version 2.5 beta32023-01-03T10:13:09ZMichelissues Icecast version 2.5 beta3Test on Debian 9
So far, the following issues / missing things:
- The Playlist does not display the time the song was played.
- Last song number cannot be set.
- It still does not display the song title in Opus and FLAC formats. (Tested...Test on Debian 9
So far, the following issues / missing things:
- The Playlist does not display the time the song was played.
- Last song number cannot be set.
- It still does not display the song title in Opus and FLAC formats. (Tested with MPD and RadioBOSS)
- /admin/version.xsl site: Could not parse XSLT file, Error code: f86b5b28-c1f8-49f6-a4cd-a18e2a6a44fd
- If the number of listeners reaches the number of allowed connections, then the admin page will display an error message, so it cannot be used either.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2426Icecast fluttery audio2022-03-21T09:37:02ZcrunchysteveIcecast fluttery audiohttps://gitlab.xiph.org/xiph/speexdsp/-/issues/7"Fluttery" audio stream2022-03-12T08:50:17Zcrunchysteve"Fluttery" audio streamhttps://gitlab.xiph.org/xiph/speexdsp/-/issues/6libspeexdsp.def is missing definitions2022-03-01T12:38:06ZPierre Ferranlibspeexdsp.def is missing definitionslibspeexdsp.def is missing definitions, particularly jitter_buffer_ctl and jitter_buffer_remaining_span, cause the build to not contain all necessary functions on Win32. This issue does not occur on _nix.
See https://github.com/microsof...libspeexdsp.def is missing definitions, particularly jitter_buffer_ctl and jitter_buffer_remaining_span, cause the build to not contain all necessary functions on Win32. This issue does not occur on _nix.
See https://github.com/microsoft/vcpkg/pull/23296https://gitlab.xiph.org/xiph/vorbis/-/issues/2345Please give a example of how to use RTP vorbis2022-02-18T07:12:32Zyi xinPlease give a example of how to use RTP vorbishttps://gitlab.xiph.org/xiph/xspf-website/-/issues/24Missing schemas2022-07-08T22:52:53ZAsh ClarkMissing schemasThe links to the XSPF schemas (RelaxNG v1, RNG v0, RNC, XSD) give 404s. I was able to use the online validator but would prefer to have a copy of the RNG for use with the oXygen Editor’s auto-validation feature.The links to the XSPF schemas (RelaxNG v1, RNG v0, RNC, XSD) give 404s. I was able to use the online validator but would prefer to have a copy of the RNG for use with the oXygen Editor’s auto-validation feature.https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2328MR: fix memleak with -c option2022-01-26T18:11:04Ztaz 007MR: fix memleak with -c optionHello, please merge this patch : https://gitlab.com/taz007/vorbis-tools/-/commit/70604b38f62fcabb37bc1b57dbb9e261c775e067
I can't make a proper MR as I don't have access to fork functionality.Hello, please merge this patch : https://gitlab.com/taz007/vorbis-tools/-/commit/70604b38f62fcabb37bc1b57dbb9e261c775e067
I can't make a proper MR as I don't have access to fork functionality.https://gitlab.xiph.org/xiph/squishyball/-/issues/1squishyball fails to build against ncurses-6.3: `error: 'TERMINAL' {aka 'stru...2022-01-25T23:08:20ZSergei Trofimovichsquishyball fails to build against ncurses-6.3: `error: 'TERMINAL' {aka 'struct term'} has no member named 'Nttyb'`It's an upstream report of downstream build failure of `squishyball`: https://github.com/NixOS/nixpkgs/pull/146685#issuecomment-1019808697
`ncurses-6.3` removed from public API `Nttyb` and friends in https://github.com/mirror/ncurses/co...It's an upstream report of downstream build failure of `squishyball`: https://github.com/NixOS/nixpkgs/pull/146685#issuecomment-1019808697
`ncurses-6.3` removed from public API `Nttyb` and friends in https://github.com/mirror/ncurses/commit/493e2f7b3fc309879f561a094fdfc15e5304b3d6 effectively breaking the workaround of https://gitlab.xiph.org/xiph/squishyball/-/commit/ce3fabffc3906a23bec09f02db8fdf141f1d4068.
Full build log: https://hydra.nixos.org/log/8myp7pwz36lg93vkzphq2jm0xk4fq4mr-squishyball-19580.drv
Relevant bit:
```
mincurses.c: In function 'setup_term_customize':
mincurses.c:345:20: error: 'TERMINAL' {aka 'struct term'} has no member named 'Nttyb'
345 | term = cur_term->Nttyb;
| ^~
```https://gitlab.xiph.org/xiph/speexdsp/-/issues/4Compiler warnings with comparing singed and unsigned ints2022-01-23T06:22:59ZAnders JenboCompiler warnings with comparing singed and unsigned intsThese are now the only compiler warnings left when building DevilutionX, would be great if we can handle them so we can start checking for compiler warnings in the CI :)
```
In file included from speex_resampler/resample.c:100:
speex_re...These are now the only compiler warnings left when building DevilutionX, would be great if we can handle them so we can start checking for compiler warnings in the CI :)
```
In file included from speex_resampler/resample.c:100:
speex_resampler/resample_sse.h:45:14: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for (i=0;i<len;i+=8)
~^~~~
speex_resampler/resample_sse.h:62:12: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for(i=0;i<len;i+=2)
~^~~~
speex_resampler/resample_sse.h:84:14: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for (i=0;i<len;i+=8)
~^~~~
speex_resampler/resample_sse.h:110:12: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for(i=0;i<len;i+=2)
~^~~~
speex_resampler/resample.c:674:20: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for (j=0;j<st->filt_len;j++)
~^~~~~~~~~~~~~
speex_resampler/resample.c:946:21: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for(j=0;j<ichunk;++j)
~^~~~~~~
speex_resampler/resample.c:949:20: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for(j=0;j<ichunk;++j)
~^~~~~~~
speex_resampler/resample.c:1001:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for(j=0;j<ichunk;++j)
~^~~~~~~
speex_resampler/resample.c:1008:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for(j=0;j<ichunk;++j)
~^~~~~~~
speex_resampler/resample.c:1018:16: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for (j=0;j<ochunk+omagic;++j)
~^~~~~~~~~~~~~~
```https://gitlab.xiph.org/xiph/ezstream/-/issues/2277Gapless playback2022-08-20T02:24:32ZY NGapless playbackOn server I use ezstream and icecast.
As client a browser.
If too much silence between tracks client stops playing.
It would be nice to implement gapless playback feature to avoid this.
CheersOn server I use ezstream and icecast.
As client a browser.
If too much silence between tracks client stops playing.
It would be nice to implement gapless playback feature to avoid this.
CheersMoritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/vorbis/-/issues/2344ov_fopen returns undocumented error value2022-01-01T03:49:16ZCarl Banksov_fopen returns undocumented error valueov_fopen is documented as returning one of several error codes, but if the call to fopen fails, it returns -1 (not among the error codes listed).
Recommend to just change documentation to say that a -1 return value means it can't open t...ov_fopen is documented as returning one of several error codes, but if the call to fopen fails, it returns -1 (not among the error codes listed).
Recommend to just change documentation to say that a -1 return value means it can't open the file. I'd guess that a lot of the code out in the field just tests if return value is -1.https://gitlab.xiph.org/xiph/flac-website/-/issues/2119Outdated Git URL2021-12-23T15:10:42ZmiaOutdated Git URLThe download page still points to git.xiph.org. Should be updated.The download page still points to git.xiph.org. Should be updated.https://gitlab.xiph.org/xiph/ezstream/-/issues/2276Allow reproducible builds, don't hardcode `date` call2022-08-20T23:29:32ZUnit 193Allow reproducible builds, don't hardcode `date` callHowdy,
In order to support reproducible builds, please use `$SOURCE_DATE_EPOCH` if available, falling back to `date` if not. Patch below.
Thanks!
```
Description: Replace hardcoded call to `date` with $SOURCE_DATE_EPOCH
Author: Chris...Howdy,
In order to support reproducible builds, please use `$SOURCE_DATE_EPOCH` if available, falling back to `date` if not. Patch below.
Thanks!
```
Description: Replace hardcoded call to `date` with $SOURCE_DATE_EPOCH
Author: Chris Lamb <lamby@debian.org>
--- a/configure.ac 2016-07-15 10:07:54.491161698 +0200
+++ b/configure.ac 2016-07-15 10:10:13.216666017 +0200
@@ -17,7 +17,7 @@
AC_PROG_FGREP
AC_CANONICAL_HOST
-BUILD_DATE=$(date '+%B %d, %Y')
+BUILD_DATE=$(LC_ALL=C date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" '+%B %d, %Y')
AC_SUBST([BUILD_DATE])
EXAMPLES_DIR="\$(datadir)/examples/${PACKAGE_TARNAME}"
```Moritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/icecast-ices/-/issues/2324Allow building even if libxml2 doesn't ship /usr/bin/xml2-config2022-07-11T00:17:22ZUnit 193Allow building even if libxml2 doesn't ship /usr/bin/xml2-configHowdy,
It seems to be common practice to use pkg-config for these options, but currently if libxml2-dev doesn't contain xml2-config, the package fails to build. The patch below moves to using pkg-config directly.
```
Description: Migr...Howdy,
It seems to be common practice to use pkg-config for these options, but currently if libxml2-dev doesn't contain xml2-config, the package fails to build. The patch below moves to using pkg-config directly.
```
Description: Migrate from using xml2-config to pkg-config
Author: Unit 193 <unit193@debian.org>
---
configure.ac | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- a/configure.ac 2020-10-07 20:29:12.654454622 -0400
+++ b/configure.ac 2020-10-07 20:29:12.646454694 -0400
@@ -166,9 +166,12 @@
AC_CHECK_FUNCS([gettimeofday ftime])
-XIPH_PATH_XML
-XIPH_VAR_APPEND([XIPH_CFLAGS], [$XML_CFLAGS])
-XIPH_VAR_PREPEND([XIPH_LIBS], [$XML_LIBS])
+PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], [], [
+ AC_MSG_ERROR([${LIBXML2_PKG_ERRORS}. libxml2 is required.])
+])
+
+CFLAGS="${CFLAGS} ${LIBXML2_CFLAGS}"
+LIBS="${LIBS} ${LIBXML2_LIBS}"
XIPH_PATH_SHOUT(, AC_MSG_ERROR([must have libshout installed!]))
if test "$SHOUT_THREADSAFE" != "yes"
```https://gitlab.xiph.org/xiph/icecast-ices/-/issues/2323Ignores 'allow-repeats' setting when checking ogg serial2021-12-17T22:18:42ZUnit 193Ignores 'allow-repeats' setting when checking ogg serialOriginally reported in Debian bug [463351](https://bugs.debian.org/463351):
> I currently have a playlist that contains one file, so obviously I need
> to set 'allow-repeats'. However, even with that setting enabled, it
> won't repeat ...Originally reported in Debian bug [463351](https://bugs.debian.org/463351):
> I currently have a playlist that contains one file, so obviously I need
> to set 'allow-repeats'. However, even with that setting enabled, it
> won't repeat the one file because the serial matches (even if I make a
> copy of the file and add the copy to the playlist).
>
> I've changed im_playlist.c so that it checks pl->allow_repeat before
> checking the serial (patch attached).
And as such, it seems we've carried the following patch for the past 10(!) years:
```
Description: allow 'allow-repeats' setting when checking ogg serial
Author: C. Chad Wallace <cwallace@lodgingcompany.com>
Origin: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=463351#10
Bug-Debian: http://bugs.debian.org/463351
Forwarded: not-needed
---
src/im_playlist.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/src/im_playlist.c 2020-10-07 20:28:50.166655764 -0400
+++ b/src/im_playlist.c 2020-10-07 20:28:50.158655836 -0400
@@ -174,7 +174,7 @@
{
if (ogg_page_bos (&og))
{
- if (ogg_page_serialno (&og) == pl->current_serial)
+ if (!pl->allow_repeat && ogg_page_serialno (&og) == pl->current_serial)
LOG_WARN1 ("detected duplicate serial number reading \"%s\"", pl->filename);
pl->current_serial = ogg_page_serialno (&og);
```