diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f087b42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.tar.gz filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1534ba5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.rpm +*.log +*spec-20* diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1b1bae1 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: madsonic +# $Id: Makefile,v 1.1 2021/06/03 15:20:22 jpp Exp $ +NAME := madsonic +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/README.md b/README.md index 5951d4f..bd22718 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # madsonic -3rd Party (Maintained by Koozali) git repo for madsonic smecontribs \ No newline at end of file +3rd Party (Maintained by Koozali) git repo for madsonic smecontribs + +## Description + +
*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.* +*Once it has been checked, then this comment will be deleted* +
diff --git a/contriborbase b/contriborbase new file mode 100644 index 0000000..9b7fd51 --- /dev/null +++ b/contriborbase @@ -0,0 +1 @@ +contribs10 diff --git a/madsonic-6.2.9084-sysconfig.patch b/madsonic-6.2.9084-sysconfig.patch new file mode 100644 index 0000000..c20aa29 --- /dev/null +++ b/madsonic-6.2.9084-sysconfig.patch @@ -0,0 +1,25 @@ +diff -Nur --no-dereference madsonic-6.2.9092.old/root/etc/sysconfig/madsonic madsonic-6.2.9092/root/etc/sysconfig/madsonic +--- madsonic-6.2.9092.old/root/etc/sysconfig/madsonic 2022-01-26 10:57:08.000000000 -0500 ++++ madsonic-6.2.9092/root/etc/sysconfig/madsonic 2022-07-23 16:39:49.208000000 -0400 +@@ -24,3 +24,21 @@ + # the music directories, otherwise changing album art and tags will fail. + + MADSONIC_USER=root ++ ++###for madsonic.service ++MADSONIC_HOME=/var/madsonic ++MADSONIC_HOST=0.0.0.0 ++MADSONIC_PORT=4041 ++MADSONIC_HTTPS_PORT=0 ++MADSONIC_CONTEXT_PATH=/madsonic ++MADSONIC_MAX_MEMORY=350 ++MADSONIC_DEFAULT_MUSIC_FOLDER=/var/media ++MADSONIC_DEFAULT_UPLOAD_FOLDER=/var/media/incoming ++MADSONIC_DEFAULT_PODCAST_FOLDER=/var/media/podcast ++MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER=/var/media/playlists/import ++MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER=/var/media/playlists/export ++MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER=/var/media/playlists/backup ++MADSONIC_DEFAULT_TRANSCODE_FOLDER= ++MADSONIC_DEFAULT_TIMEZONE=EDT ++MADSONIC_GZIP=true ++MADSONIC_TEST=false diff --git a/madsonic-6.2.9084-test.patch b/madsonic-6.2.9084-test.patch new file mode 100644 index 0000000..a667b10 --- /dev/null +++ b/madsonic-6.2.9084-test.patch @@ -0,0 +1,37 @@ +diff -Nur --no-dereference madsonic-6.2.9092.old/root/usr/share/madsonic/madsonic.sh madsonic-6.2.9092/root/usr/share/madsonic/madsonic.sh +--- madsonic-6.2.9092.old/root/usr/share/madsonic/madsonic.sh 2022-01-26 10:57:08.000000000 -0500 ++++ madsonic-6.2.9092/root/usr/share/madsonic/madsonic.sh 2022-07-23 03:00:12.309000000 -0400 +@@ -24,6 +24,7 @@ + MADSONIC_PIDFILE= + MADSONIC_UPDATE=true + MADSONIC_GZIP= ++MADSONIC_TEST=false + MADSONIC_DB= + quiet=0 + +@@ -68,6 +69,7 @@ + echo " --update=VALUE Configure Madsonic to look in folder /update for updates. Default 'true'" + echo " --gzip=VALUE Configure Madsonic to use Gzip compression. Default 'true'" + echo " --quiet Don't print anything to standard out. Default false." ++ echo " --test=VALUE Refer to local server for registering. Default false" + exit 1 + } + +@@ -134,6 +136,9 @@ + --db=?*) + MADSONIC_DB=${1#--db=} + ;; ++ --test=?*) ++ MADSONIC_TEST="true" ++ ;; + --quiet) + quiet=1 + ;; +@@ -179,6 +184,7 @@ + -Dmadsonic.gzip=${MADSONIC_GZIP} \ + -Dmadsonic.db="${MADSONIC_DB}" \ + -Djava.awt.headless=true \ ++ -Dmadsonic.test="${MADSONIC_TEST}"\ + -jar madsonic-booter.jar > ${LOG} 2>&1 & + + # Write pid to pidfile if it is defined. diff --git a/madsonic-6.2.9092-bz12305-failing.patch b/madsonic-6.2.9092-bz12305-failing.patch new file mode 100644 index 0000000..dc66077 --- /dev/null +++ b/madsonic-6.2.9092-bz12305-failing.patch @@ -0,0 +1,5 @@ +diff -Nur --no-dereference madsonic-6.2.9092.old/root/etc/yum/post-actions/madsonic.action madsonic-6.2.9092/root/etc/yum/post-actions/madsonic.action +--- madsonic-6.2.9092.old/root/etc/yum/post-actions/madsonic.action 1969-12-31 19:00:00.000000000 -0500 ++++ madsonic-6.2.9092/root/etc/yum/post-actions/madsonic.action 2023-01-21 14:48:24.104000000 -0500 +@@ -0,0 +1 @@ ++madsonic:any:/usr/bin/systemctl daemon-reload ; /usr/bin/systemctl restart madsonic.service diff --git a/madsonic-6.2.9092.tar.gz b/madsonic-6.2.9092.tar.gz new file mode 100644 index 0000000..00c301f --- /dev/null +++ b/madsonic-6.2.9092.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5036439aea17b2a5f736265ec5f0cab59a2d87c5643619b10a22ca3688bba4f6 +size 106384115 diff --git a/madsonic.service b/madsonic.service new file mode 100644 index 0000000..0b77e24 --- /dev/null +++ b/madsonic.service @@ -0,0 +1,37 @@ +[Unit] +Description=Madsonic media streaming solution +After= network-online.target + +[Service] +Restart=always +RestartSec=5 +EnvironmentFile=/etc/sysconfig/madsonic +User=madsonic +Group=madsonic +#Environment=MADSONIC_HOME=/var/madsonic MADSONIC_HOST=0.0.0.0 MADSONIC_PORT=4041 MADSONIC_HTTPS_PORT=0 MADSONIC_CONTEXT_PATH=/madsonic +ExecStart=/usr/bin/madsonic \ + --init-memory=192 \ + --pidfile=/run/madsonic/madsonic.pid \ + --update=false \ + --home=${MADSONIC_HOME} \ + --host=${MADSONIC_HOST} \ + --port=${MADSONIC_PORT} \ + --https-port=${MADSONIC_HTTPS_PORT} \ + --context-path=${MADSONIC_CONTEXT_PATH} \ + --max-memory=${MADSONIC_MAX_MEMORY} \ + --default-music-folder=${MADSONIC_DEFAULT_MUSIC_FOLDER} \ + --default-upload-folder=${MADSONIC_DEFAULT_UPLOAD_FOLDER} \ + --default-podcast-folder=${MADSONIC_DEFAULT_PODCAST_FOLDER} \ + --default-playlist-import-folder=${MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER} \ + --default-playlist-export-folder=${MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER} \ + --default-playlist-backup-folder=${MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER} \ + --default-transcode-folder=${MADSONIC_DEFAULT_TRANSCODE_FOLDER} \ + --timezone=${MADSONIC_DEFAULT_TIMEZONE} \ + --gzip=${MADSONIC_GZIP} \ + --test=${MADSONIC_TEST} +KillMode=mixed +PIDFile=/run/madsonic/madsonic.pid +SuccessExitStatus=143 + +[Install] +WantedBy=multi-user.target sme-server.target diff --git a/madsonic.spec b/madsonic.spec new file mode 100644 index 0000000..30614f4 --- /dev/null +++ b/madsonic.spec @@ -0,0 +1,158 @@ +%define name madsonic +%define version 6.2.9092 +%define release 3 +%define __os_install_post \ + /usr/lib/rpm/brp-compress \ + /usr/lib/rpm/brp-strip \ + /usr/lib/rpm/brp-strip-static-archive \ + echo "not /usr/lib/rpm/brp-strip-comment-note" \ + %{nil} +Name: %{name} +Version: %{version} +Release: %{release}%{?dist} +Summary: A web-based music streamer, jukebox and Podcast receiver +Source: %{name}-%{version}.tar.gz +Source1: madsonic.service +Patch0: madsonic-6.2.9084-test.patch +Patch1: madsonic-6.2.9084-sysconfig.patch +Patch2: madsonic-6.2.9092-bz12305-failing.patch +BuildRoot: /var/tmp/%{name}-%{version}-buildroot +BuildArch: noarch +BuildRequires: e-smith-devtools +AutoReqProv: no +Group: Applications/Multimedia +License: GPLv3 +URL: http://madsonic.org + +%changelog +* Thu Oct 09 2025 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + +* Sat Jan 21 2023 Jean-Philippe Pialasse 6.2.9092-3.sme +- fix failing service on update and few occasions [SME: 12305] + +* Fri Dec 30 2022 Jean-Philippe Pialasse 6.2.9092-2.sme +- fix madsonic fails as starting before network + +* Fri Jul 22 2022 Jean-Philippe Pialasse 6.2.9092-1.sme +- update with log4j fixes and more +- systemd capable +- add mediasonic.test + +* Fri Jun 04 2021 Jean-Philippe Pialasse 6.2.9084-2.sme +- fix permissions [SME: 10699] +- fix noise on start with initial install [SME: 8016] + +* Thu Jun 03 2021 Jean-Philippe Pialasse 6.2.9084-1.sme +- update to 6.2.9084 +- first build for SME10 + +* Sun Nov 17 2013 JP Pialasse 5.0.3760-1.sme +- first build for sme +- adding noarch +- adding e-smith-devtools + +%description +Madsonic is a web-based music streamer, fork of Subsonic, jukebox and Podcast receiver, +providing access to your music collection wherever you are. Use it +to share your music with friends, or to listen to your music while away +from home. + +Apps for Android, iPhone and Windows Phone are also available. + +Java 1.8 or higher is required to run Madsonic.>= 6.2 + +%prep +%setup +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +mkdir -p root/usr/lib/systemd/system +cp %{SOURCE1} root/usr/lib/systemd/system +mkdir -p root/run/madsonic +mkdir -p root/usr/lib/tmpfiles.d/ +mkdir -p root/usr/bin +echo "d /run/madsonic 0755 madsonic madsonic" > root/usr/lib/tmpfiles.d/madsonic.conf +rm root/etc/init.d/madsonic + +pushd root/usr/bin/ +ln -sf /usr/share/madsonic/madsonic.sh madsonic +popd + + +%install +rm -rf $RPM_BUILD_ROOT +(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) +rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ + --dir /usr/share/madsonic 'attr(0750,madsonic,madsonic)' \ + --dir /var/madsonic 'attr(0750,madsonic,madsonic)' \ + --file /usr/lib/tmpfiles.d/madsonic.conf 'attr(0750,root,root)' \ + --file /usr/lib/systemd/system/madsonic.service 'attr(0644,root,root)' \ + --dir /run/madsonic 'attr(0755,madsonic,madsonic)' \ + --ignoredir /run \ + --ignoredir "/etc/sysconfig/madsonic" \ + --ignoredir "/etc/init.d" \ + --ignoredir "/etc/sysconfig"\ + > %{name}-%{version}-filelist + +%clean +rm -rf $RPM_BUILD_ROOT + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) +%config(noreplace) /etc/sysconfig/madsonic + +%pre +grep '^madsonic:' /etc/passwd > /dev/null || \ +/usr/sbin/useradd -c "madsonic" -M -d /usr/share/madsonic -s /bin/bash madsonic +/usr/sbin/usermod -aG audio madsonic + +# Stop Madsonic service. +if [ -e /etc/init.d/madsonic ]; then + service madsonic stop +fi +[ -e /usr/lib/systemd/system/madsonic.service ] && systemctl stop madsonic + +# Backup database. +if [ -e /var/madsonic/db ]; then + rm -rf /var/madsonic/db.backup + cp -R /var/madsonic/db /var/madsonic/db.backup +fi + +exit 0 + +%post +#ln -sf /usr/share/madsonic/madsonic.sh /usr/bin/madsonic +#chmod 750 /var/madsonic + +# Clear jetty cache. +rm -rf /var/madsonic/jetty + +# For SELinux: Set security context +chcon -t java_exec_t /etc/init.d/madsonic 2>/dev/null + +# Configure and start Madsonic service. +#chkconfig --add madsonic +#service madsonic start + +exit 0 +%preun +# Only do it if uninstalling, not upgrading. +if [ $1 = 0 ] ; then + + # Stop the service. + [ -e /etc/init.d/madsonic ] && service madsonic stop + [ -e /usr/lib/systemd/system/madsonic.service ] && systemctl stop madsonic + + # Remove symlink. + rm -f /usr/bin/madsonic + + # Remove startup scripts. + chkconfig --del madsonic + +fi + +exit 0 +