From patchwork Sun Jan 28 20:29:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arne Fitzenreiter X-Patchwork-Id: 7494 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4TNNMv2LM1z3wmD for ; Sun, 28 Jan 2024 20:30:03 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4TNNMp6gQ1zPW; Sun, 28 Jan 2024 20:29:58 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4TNNMp5Njgz2xW8; Sun, 28 Jan 2024 20:29:58 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4TNNMn1dBJz2xW8 for ; Sun, 28 Jan 2024 20:29:57 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4TNNMm0fmSzPW; Sun, 28 Jan 2024 20:29:56 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1706473796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=M0aOYnoZJS1e3a7Ls9V3ut/0GQ0oButfXnCTCjdtrfA=; b=NrZlsR0bxjS27M2Ru8UZIUS2Kxb7yij6/FoJO1umIauoMTVvJfTeGaDdmpVjW6U9iTXU7G ZIb5cyh1OfIkhTBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1706473796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=M0aOYnoZJS1e3a7Ls9V3ut/0GQ0oButfXnCTCjdtrfA=; b=ZIGUTPw3nFamKbHl4X3sCWNW7ogAZooWvP/QdUk0mGtUUL+Z9uCXXe13allfLiP6wmQOyR Kyyxlld9Zv2TB4PzgKtUdEvByinnLc5oADUvXkPfRXEfCbCaDo4oQZLTnuv9WOb/2AKXN8 pxpsYg04BcGMGMQb23WYSZJk46ThFQdzr2PlCJdchRcnY1e7W6RSbaKJDvAO+2bPw93Hl7 qntk5LE8mQyD6gnhbQU0/Y+CHhy6X9jVwc6M4l78ea8usZuyWZCVxVr8+lNMqNwIZPBBRQ 9a02foBzMjQQ+eGe0UWuqd4lQkedb4hLrl6Q1HbUlUeyQ3dZbus5551b/h58Rg== From: Arne Fitzenreiter To: development@lists.ipfire.org Subject: [PATCH] mympd: new addon to control mpd via WebGUI Date: Sun, 28 Jan 2024 21:29:46 +0100 Message-ID: <20240128202946.2891-1-arne_f@ipfire.org> MIME-Version: 1.0 Message-ID-Hash: SOJEXNTHH7LGRERAPRC2L7CGPSSZJRBG X-Message-ID-Hash: SOJEXNTHH7LGRERAPRC2L7CGPSSZJRBG X-MailFrom: arne_f@ipfire.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Arne Fitzenreiter X-Mailman-Version: 3.3.8 Precedence: list List-Id: IPFire development talk Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: myMPD is written in C and has a nice WebGUI to play local music and also a WebRadio browser. This is to replace the removec client175. After install it can reached via https://IP_OF_THE_IPFIRE:8800 Signed-off-by: Arne Fitzenreiter --- config/backup/includes/mympd | 1 + config/rootfiles/packages/mympd | 18 ++++++ lfs/mympd | 107 ++++++++++++++++++++++++++++++++ make.sh | 1 + src/initscripts/packages/mympd | 53 ++++++++++++++++ src/paks/mympd/install.sh | 30 +++++++++ src/paks/mympd/uninstall.sh | 28 +++++++++ src/paks/mympd/update.sh | 27 ++++++++ 8 files changed, 265 insertions(+) create mode 100644 config/backup/includes/mympd create mode 100644 config/rootfiles/packages/mympd create mode 100644 lfs/mympd create mode 100644 src/initscripts/packages/mympd create mode 100644 src/paks/mympd/install.sh create mode 100644 src/paks/mympd/uninstall.sh create mode 100644 src/paks/mympd/update.sh diff --git a/config/backup/includes/mympd b/config/backup/includes/mympd new file mode 100644 index 000000000..44481decc --- /dev/null +++ b/config/backup/includes/mympd @@ -0,0 +1 @@ +/var/lib/mympd diff --git a/config/rootfiles/packages/mympd b/config/rootfiles/packages/mympd new file mode 100644 index 000000000..bc9912b85 --- /dev/null +++ b/config/rootfiles/packages/mympd @@ -0,0 +1,18 @@ +etc/rc.d/init.d/mympd +usr/bin/mympd +usr/bin/mympd-script +#usr/lib/systemd/system/mympd.service +#usr/share/doc/mympd +#usr/share/doc/mympd/CHANGELOG.md +#usr/share/doc/mympd/LICENSE.md +#usr/share/doc/mympd/README.md +#usr/share/doc/mympd/SECURITY.md +#usr/share/man/man1/mympd-script.1.gz +#usr/share/man/man1/mympd.1.gz +var/ipfire/backup/addons/includes/mympd +var/lib/mympd +#var/lib/mympd/config +#var/lib/mympd/config/http +#var/lib/mympd/config/ssl_port +#var/lib/mympd/state +#var/lib/mympd/state/music_directory diff --git a/lfs/mympd b/lfs/mympd new file mode 100644 index 000000000..ffedcdcce --- /dev/null +++ b/lfs/mympd @@ -0,0 +1,107 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2024 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +SUMMARY = Webfrontend for Music Player Daemon + +VER = 13.0.6 + +THISAPP = myMPD-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = mympd +PAK_VER = 1 + +# TODO move mpd initskript and config to mpd package to run without mpfire +DEPS = mpd libmpdclient mpfire + +SERVICES = mympd + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = 2ecd8d42b9398e85fc6c149c9e55f760f2039434039d558ac1914b447858a59676ed9300bc89b2a25757b8d9828dec5934376d4587f6b84026d07adbfd2e4a33 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +b2 : $(subst %,%_BLAKE2,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, b2sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && mkdir -p build + cd $(DIR_APP)/build && cmake -Wno-dev \ + -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. + cd $(DIR_APP)/build && make $(MAKETUNING) + cd $(DIR_APP)/build && make install + + #generate config + mkdir -p /var/lib/mympd/config + echo false > /var/lib/mympd/config/http + echo 8800 > /var/lib/mympd/config/ssl_port + mkdir -p /var/lib/mympd/state + echo /var/mp3 > /var/lib/mympd/state/music_directory + chown nobody:nobody -R /var/lib/mympd + + #install backup include + install -v -m 644 $(DIR_SRC)/config/backup/includes/mympd \ + /var/ipfire/backup/addons/includes/mympd + + #install initscript + $(call INSTALL_INITSCRIPTS,$(SERVICES)) + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index 06e09c9a3..f13d283bc 100755 --- a/make.sh +++ b/make.sh @@ -1699,6 +1699,7 @@ buildipfire() { lfsmake2 perl-MIME-Base32 lfsmake2 perl-URI-Encode lfsmake2 rsnapshot + lfsmake2 mympd # Kernelbuild ... current we have no platform that need # multi kernel builds so KCFG is empty diff --git a/src/initscripts/packages/mympd b/src/initscripts/packages/mympd new file mode 100644 index 000000000..a7cb9e523 --- /dev/null +++ b/src/initscripts/packages/mympd @@ -0,0 +1,53 @@ +#!/bin/sh +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2024 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +. /etc/sysconfig/rc +. $rc_functions + +case "$1" in + start) + + boot_mesg "Starting mympd..." + loadproc /usr/bin/mympd -u nobody -s >/dev/null 2>&1 & + evaluate_retval + ;; + + stop) + boot_mesg "Stopping mympd..." + killproc /usr/bin/mympd >/dev/null 2>&1 + evaluate_retval + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + + status) + statusproc /usr/bin/mympd + ;; + + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac diff --git a/src/paks/mympd/install.sh b/src/paks/mympd/install.sh new file mode 100644 index 000000000..11cae1207 --- /dev/null +++ b/src/paks/mympd/install.sh @@ -0,0 +1,30 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2024 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_files +ln -svf /etc/init.d/mympd /etc/rc.d/rc3.d/S66mympd +ln -svf /etc/init.d/mympd /etc/rc.d/rc0.d/K34mympd +ln -svf /etc/init.d/mympd /etc/rc.d/rc6.d/K34mympd +restore_backup ${NAME} +/etc/init.d/mympd start diff --git a/src/paks/mympd/uninstall.sh b/src/paks/mympd/uninstall.sh new file mode 100644 index 000000000..8ca9ea74e --- /dev/null +++ b/src/paks/mympd/uninstall.sh @@ -0,0 +1,28 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2024 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/etc/init.d/mpd stop +make_backup ${NAME} +remove_files +rm -f /etc/rc.d/rc*.d/???mympd diff --git a/src/paks/mympd/update.sh b/src/paks/mympd/update.sh new file mode 100644 index 000000000..31d1d77cc --- /dev/null +++ b/src/paks/mympd/update.sh @@ -0,0 +1,27 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2024 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_backup_includes +./uninstall.sh +./install.sh