diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbb3a13 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.rpm +*.log +*spec-20* +*.tar.gz diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ea8f5c9 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: smeserver-madsonic +# $Id: Makefile,v 1.1 2020/12/20 05:50:10 brianr Exp $ +NAME := smeserver-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 4984a9f..971bcb2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ -# smeserver-madsonic +# smeserver-madsonic -SMEServer Koozali developed git repo for smeserver-madsonic smecontribs \ No newline at end of file +SMEServer Koozali developed git repo for smeserver-madsonic smecontribs + +## Wiki +
https://wiki.koozali.org/Madsonic +
https://wiki.koozali.org/Madsonic-howto + +## Bugzilla +Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-madsonic&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) + +## 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/createlinks b/createlinks new file mode 100644 index 0000000..bfb7926 --- /dev/null +++ b/createlinks @@ -0,0 +1,31 @@ +#!/usr/bin/perl -w + +use esmith::Build::CreateLinks qw(:all); + +#################### +# links to add + +# templates to expand + templates2events( "/etc/sysconfig/madsonic" , qw( conf-madsonic bootstrap-console-save console-save post-upgrade)); + templates2events( "/etc/httpd/conf/httpd.conf" , qw( conf-madsonic )); + +# services to launch on event + safe_symlink("restart", "root/etc/e-smith/events/conf-madsonic/services2adjust/madsonic"); + safe_symlink("restart", "root/etc/e-smith/events/conf-madsonic/services2adjust/httpd-e-smith"); + +my $event= "smeserver-madsonic-update"; + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/madsonic"); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/rsyslog"); + templates2events( "/etc/sysconfig/madsonic" , $event); + templates2events( "/etc/httpd/conf/httpd.conf" , $event); + templates2events( "/etc/rsyslog.conf" , $event); + event_actions( $event, "madsonic-fixperms" => "05"); + +use esmith::Build::Backup qw(:all); +backup_includes("smeserver-madsonic", qw( +/var/madsonic/db/ +/var/madsonic/madsonic.properties +/var/madsonic/madsonic.log +/var/madsonic/madsonic_sh.log +)); diff --git a/root/etc/e-smith/db/accounts/defaults/madsonic/Target b/root/etc/e-smith/db/accounts/defaults/madsonic/Target new file mode 100644 index 0000000..e6c167a --- /dev/null +++ b/root/etc/e-smith/db/accounts/defaults/madsonic/Target @@ -0,0 +1 @@ +http://localhost:4041/madsonic \ No newline at end of file diff --git a/root/etc/e-smith/db/accounts/defaults/madsonic/type b/root/etc/e-smith/db/accounts/defaults/madsonic/type new file mode 100644 index 0000000..c7e3841 --- /dev/null +++ b/root/etc/e-smith/db/accounts/defaults/madsonic/type @@ -0,0 +1 @@ +ProxyPass \ No newline at end of file diff --git a/root/etc/e-smith/db/configuration/defaults/madsonic/Name b/root/etc/e-smith/db/configuration/defaults/madsonic/Name new file mode 100644 index 0000000..147d097 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/madsonic/Name @@ -0,0 +1 @@ +madsonic \ No newline at end of file diff --git a/root/etc/e-smith/db/configuration/defaults/madsonic/status b/root/etc/e-smith/db/configuration/defaults/madsonic/status new file mode 100644 index 0000000..26ed6c9 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/madsonic/status @@ -0,0 +1 @@ +enabled \ No newline at end of file diff --git a/root/etc/e-smith/db/configuration/defaults/madsonic/type b/root/etc/e-smith/db/configuration/defaults/madsonic/type new file mode 100644 index 0000000..ce93fac --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/madsonic/type @@ -0,0 +1 @@ +service \ No newline at end of file diff --git a/root/etc/e-smith/events/actions/madsonic-fixperms b/root/etc/e-smith/events/actions/madsonic-fixperms new file mode 100644 index 0000000..6e01323 --- /dev/null +++ b/root/etc/e-smith/events/actions/madsonic-fixperms @@ -0,0 +1,5 @@ +#!/bin/bash + +chown madsonic:madsonic -R /var/media +chown madsonic:madsonic -R /var/madsonic/* +chown madsonic:root /var/madsonic/madsonic.properties /var/madsonic/madsonic.log diff --git a/root/etc/e-smith/templates.metadata/etc/sysconfig/madsonic b/root/etc/e-smith/templates.metadata/etc/sysconfig/madsonic new file mode 100644 index 0000000..6bbf39b --- /dev/null +++ b/root/etc/e-smith/templates.metadata/etc/sysconfig/madsonic @@ -0,0 +1 @@ +PERMS=0755 diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/99madsonic b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/99madsonic new file mode 100644 index 0000000..b4b76ab --- /dev/null +++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/99madsonic @@ -0,0 +1,34 @@ +# needed local webserver to alow madsonic.test configuration +Listen 127.0.0.1:8082 + + ServerName www.madsonic.org + ServerAlias madsonic.org beta.madsonic.org + DocumentRoot /var/www/backend/ + + Alias /backend/validateLicense.view /var/www/backend/validateLicense.view + Alias /backend/validateLicenseKey.view /var/www/backend/validateLicense.view + Alias /backend/version.view /var/www/backend/validateLicense.view + + AddType text/plain .view + order allow,deny + allow from all + Require all granted + + +Listen 127.0.0.1:8090 + + ServerName www.madsonic.org + ServerAlias madsonic.org beta.madsonic.org + DocumentRoot /var/www/backend/ + Alias /backend/redirect/register.view /var/www/backend/validateLicense.view + Alias /backend/redirect/unregister.view /var/www/backend/validateLicense.view + Alias /backend/redirect/test.view /var/www/backend/validateLicense.view + Alias /backend/version.view /var/www/backend/validateLicense.view + + + AddType text/plain .view + order allow,deny + allow from all + Require all granted + + diff --git a/root/etc/e-smith/templates/etc/rsyslog.conf/32madsonic b/root/etc/e-smith/templates/etc/rsyslog.conf/32madsonic new file mode 100644 index 0000000..b5a4dd6 --- /dev/null +++ b/root/etc/e-smith/templates/etc/rsyslog.conf/32madsonic @@ -0,0 +1,3 @@ +# we do not log the service unit content outside of journald +#to see actual madsonic log see /var/madsonic/madsonic.log and /var/madsonic/madsonic_sh.log +:programname, isequal, "madsonic" ~ diff --git a/root/etc/e-smith/templates/etc/sysconfig/madsonic/40madsonic b/root/etc/e-smith/templates/etc/sysconfig/madsonic/40madsonic new file mode 100644 index 0000000..a6fc910 --- /dev/null +++ b/root/etc/e-smith/templates/etc/sysconfig/madsonic/40madsonic @@ -0,0 +1,81 @@ +# +# This is the configuration file for the Madsonic service +# (/etc/init.d/madsonic) +# +# To change the startup parameters of Madsonic, modify +# the MADSONIC_ARGS variable below. +# +# Type "/usr/share/madsonic/madsonic.sh --help" on the command line to read an +# explanation of the different options. +# +# For example, to specify that Madsonic should use port 80 (for http) +# and 443 (for https), and use a Java init memory heap size of 192 MB, +# and use a Java max memory heap size of 384 MB +# use the following: +# +# MADSONIC_ARGS="--port=80 --https-port=443 --init-memory=192 --max-memory=384" + + +#MADSONIC_ARGS="{ +$madhome = $madsonic{'home'} || "/var/madsonic"; +$madhost = $madsonic{'host'} || "0.0.0.0"; +$madport = $madsonic{'port'} || "4041"; +$madpath = $madsonic{'path'} || "/madsonic"; +$madhttps_port = $madsonic{'https_port'} || "0"; +$madinitmem = $madsonic{'InitMemory'} || "200"; +$madmem = $madsonic{'MaxMemory'} || "350"; +$madpid = $madsonic{'PIDfile'} || ""; +$madmusic = $madsonic{'Music_Folder'} || "/var/media"; +$madpod = $madsonic{'Podcast_Folder'} || "/var/media/podcast"; +$madinco = $madsonic{'Inco_Folder'} || "/var/media/incoming"; +$madimpo = $madsonic{'Impo_Folder'} || "/var/media/playlists/import"; +$madexpo = $madsonic{'Expo_Folder'} || "/var/media/playlists/export"; +$madback = $madsonic{'Back_Folder'} || "/var/media/playlists/backup"; +$madtest = $madsonic{'TestMode'} || "false"; +$madgzip = $madsonic{'gzip'} || "true"; +$madtrans = $madsonic{'TranscodeFolder'} || "/var/madsonic/transcode"; +use DateTime::TimeZone; +$madtz= $madsonic{"timezone"} || DateTime::TimeZone->new( name => 'local' )->name(); + +$OUT .= "--max-memory=$madmem --context-path='$madpath'"; + +$OUT .= " --home='$madhome'" unless $madhome eq "/var/madsonic"; +$OUT .= " --host='$madhost'" unless $madhost eq "0.0.0.0"; +$OUT .= " --port='$madport'" unless $madport == "4040"; +$OUT .= " --https-port='$madhttps_port'" unless $madhttps_port eq "0"; +$OUT .= " --pidfile='$madpid'" unless $madpid eq ""; +$OUT .= " --default-music-folder='$madmusic'" unless $madmusic eq "/var/media"; +$OUT .= " --default-podcast-folder='$madpod'" unless $madpod eq "/var/media/podcast"; +$OUT .= " --default-playlist-import-folder='$madimpo'" unless $madimpo eq "/var/media/playlists/import"; +$OUT .= " --default-playlist-export-folder='$madexpo'" unless $madexpo eq "/var/media/playlists/export"; +$OUT .= " --default-playlist-backup-folder='$madback'" unless $madback eq "/var/media/playlists/backup"; +$OUT .= " --init-memory=$madinitmem"; +$OUT .= " --max-memory=$madmem"; +}" + + +# The user which should run the Mabsonic process. Default "root". +# Note that non-root users are by default not allowed to use ports +# below 1024. Also make sure to grant the user write permissions in +# the music directories, otherwise changing album art and tags will fail. + +MADSONIC_USER=madsonic + +###for madsonic.service +MADSONIC_HOME={$madhome} +MADSONIC_HOST={$madhost} +MADSONIC_PORT={$madport} +MADSONIC_HTTPS_PORT={$madhttps_port} +MADSONIC_CONTEXT_PATH={$madpath} +MADSONIC_MAX_MEMORY={$madmem} +MADSONIC_DEFAULT_MUSIC_FOLDER={$madmusic} +MADSONIC_DEFAULT_UPLOAD_FOLDER={$madinco} +MADSONIC_DEFAULT_PODCAST_FOLDER={$madpod} +MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER={$madimpo} +MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER={$madexpo} +MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER={$madback} +MADSONIC_DEFAULT_TRANSCODE_FOLDER={$madtrans} +MADSONIC_DEFAULT_TIMEZONE={$madtz} +MADSONIC_GZIP={$madgzip} +MADSONIC_TEST={$madtest} + diff --git a/root/var/madsonic/conversion/audio/.gitignore b/root/var/madsonic/conversion/audio/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/madsonic/conversion/video/.gitignore b/root/var/madsonic/conversion/video/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/madsonic/lucene30/album/.gitignore b/root/var/madsonic/lucene30/album/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/media/incoming/.gitignore b/root/var/media/incoming/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/media/playlists/backup/.gitignore b/root/var/media/playlists/backup/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/media/playlists/export/.gitignore b/root/var/media/playlists/export/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/media/playlists/import/.gitignore b/root/var/media/playlists/import/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/media/podcast/.gitignore b/root/var/media/podcast/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/var/www/backend/validateLicense.view b/root/var/www/backend/validateLicense.view new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/root/var/www/backend/validateLicense.view @@ -0,0 +1 @@ +true diff --git a/smeserver-madsonic.spec b/smeserver-madsonic.spec new file mode 100644 index 0000000..bc654ad --- /dev/null +++ b/smeserver-madsonic.spec @@ -0,0 +1,111 @@ +%define name smeserver-madsonic +%define version 5.0.3761 +%define release 10 +Summary: madsonic is a music streaming system +Name: %{name} +Version: %{version} +Release: %{release}%{?dist} +Distribution: SME Server +License: GNU GPL version 2 +Group: SMEserver/addon +Source: smeserver-madsonic-%{version}.tar.xz + +BuildArchitectures: noarch +BuildRoot: /var/tmp/%{name}-%{version}-buildroot +BuildRequires: e-smith-devtools +Requires: e-smith-release >= 8.0 +Requires: madsonic >= 6.2.9092 +Requires: alsa-utils +Requires: ffmpeg +Requires: java-1.8.0-openjdk >= 1.8 +Requires: perl-DateTime +AutoReqProv: no + +%description +This is all the configurations needed to install madsonic as a contrib for SME Server + +%changelog +* Sat Sep 07 2024 cvs2git.sh aka Brian Read 5.0.3761-10.sme +- Roll up patches and move to git repo [SME: 12338] + +* Sat Sep 07 2024 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + +* Wed Dec 07 2022 Jean-Philippe Pialasse 5.0.3761-9.sme +- fix conflict for /var/madsonic [SME: 12255] + +* Tue Nov 22 2022 Jean-Philippe Pialasse 5.0.3761-8.sme +- remove remaining sysvinit files [SME: 12239] +- fix few minors issues, typo and cosmetics + +* Sat Jul 30 2022 Brian Read 5.0.3761-7.sme +- Re-build and link to latest devtools [SME: 11997] + +* Fri Jul 22 2022 Jean-Philippe Pialasse 5.0.3761-6.sme +- add to core backup [SME: 12014] +- update for 6.2 neededing java-1.8.0 +- add local test webservices +- main rpm is now using systemd [SME: 11619] + +* Sun Jun 06 2021 Jean-Philippe Pialasse 5.0.3761-5.sme +- Re-build and link to latest devtools services not restarted on install [SME: 11280] + +* Fri Jun 04 2021 Jean-Philippe Pialasse 5.0.3761-4.sme +- Re-build and link to latest devtools new configuration for madsonic 6 [SME: 11280] + add update event +- add madsonic user to audio group [SME: 10700] +- add /var/media folders and subfolders [SME: 10701] + +* Sun Dec 20 2020 Brian Read 5.0.3761-3.sme +- Initial Import in SME10 [SME: 11280] + +* Mon Jun 16 2014 JP Pialasse 5.0.3761-1.sme +- initial import to SME9 contribs + +* Wed Nov 20 2013 CONTRIB MAKER 5.0.3760-2.sme +- initial release +- builds from unchanged .tar.gz + +%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 + +%prep +%setup +mkdir -p root/var/media/playlists/export root/var/media/playlists/import root/var/media/incoming root/var/media/podcast root/var/media/playlists/backup +mkdir -p root/var/madsonic/lucene30/album root/var/madsonic/conversion/audio root/var/madsonic/conversion/video + +%build +perl createlinks + +%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 /var/media/ 'attr(0755,madsonic,madsonic)' \ + --dir /var/media/playlists/ 'attr(0750,madsonic,madsonic)' \ + --dir /var/media/playlists/export/ 'attr(0750,madsonic,madsonic)' \ + --dir /var/media/playlists/import/ 'attr(0750,madsonic,madsonic)' \ + --dir /var/media/incoming/ 'attr(0750,madsonic,madsonic)' \ + --dir /var/media/podcast/ 'attr(0750,madsonic,madsonic)' \ + --dir /var/media/playlists/backup/ 'attr(0750,madsonic,madsonic)' \ + --dir /var/madsonic/lucene30 'attr(0750,madsonic,madsonic)' \ + --dir /var/madsonic/lucene30/album 'attr(0750,madsonic,madsonic)' \ + --dir /var/madsonic/conversion 'attr(0750,madsonic,madsonic)' \ + --dir /var/madsonic/conversion/video 'attr(0750,madsonic,madsonic)' \ + --dir /var/madsonic/conversion/audio 'attr(0750,madsonic,madsonic)' \ + --file /var/www/backend/validateLicense.view 'attr(0750,www,www)' \ + --dir /var/www/backend/ 'attr(0750,www,www)' \ + --ignoredir /var/madsonic \ + > %{name}-%{version}-filelist + +%clean +rm -rf $RPM_BUILD_ROOT + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) + +