7 Commits

Author SHA1 Message Date
aa58ddfb64 v1.0.2 release 2024-05-21 20:54:50 -04:00
a5bb88d8ad Fix derp 2024-05-21 20:47:53 -04:00
83dea7a091 Add --base option to allow specifying MC debian base 2024-05-21 19:18:34 -04:00
2440dba5db *buntu >=24 needs noble sources 2024-05-21 19:01:48 -04:00
1cb78fe211 Use bookworm sources for Ubuntu>=24 2024-05-21 18:40:53 -04:00
026b59acc7 Support AlmaLinux 2024-04-17 19:40:06 -04:00
2efeb624f7 SUSE package fixes 2024-01-31 13:45:20 -05:00
2 changed files with 25 additions and 13 deletions

View File

@@ -23,9 +23,11 @@ $ installJRMC --help
--compat --compat
Build/install MC without minimum dependency version requirements Build/install MC without minimum dependency version requirements
--mcversion VERSION --mcversion VERSION
Build or install a specific MC version, ex. "32.0.6" (default: latest version) Build or install a specific MC version, ex. "32.0.45" (default: latest version)
--arch ARCH --arch ARCH
Specify the MC architecture, ex. "amd64", "arm64", etc (default: host architecture) Specify the MC architecture, ex. "amd64", "arm64", etc (default: host architecture)
--base DEBIAN_BASE
Specify the MC debian base, ex. "bullseye", "bookworm", "noble", etc (default: latest official)
--outputdir PATH --outputdir PATH
Generate rpmbuild output in this PATH (default: ./output) Generate rpmbuild output in this PATH (default: ./output)
--restorefile RESTOREFILE --restorefile RESTOREFILE
@@ -112,9 +114,9 @@ Multiple services (but not `--service-types`) can be installed at one time using
Install MC from the repository and start/enable `jriver-mediacenter.service` as a user service. Install MC from the repository and start/enable `jriver-mediacenter.service` as a user service.
* `installJRMC --install local --compat --restorefile /path/to/license.mjr --mcversion 32.0.6` * `installJRMC --install local --compat --restorefile /path/to/license.mjr --mcversion 32.0.45`
Build and install an MC 32.0.6 comptability RPM locally and activate it using the `/path/to/license.mjr` Build and install an MC 32.0.45 comptability RPM locally and activate it using the `/path/to/license.mjr`
* `installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-user` * `installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-user`

View File

@@ -2,7 +2,7 @@
# Install JRiver Media Center and associated services # Install JRiver Media Center and associated services
# See installJRMC --help or printHelp() below # See installJRMC --help or printHelp() below
# #
# Copyright (c) 2021-2023 Bryan C. Roessler # Copyright (c) 2021-2024 Bryan C. Roessler
# This software is released under the Apache License. # This software is released under the Apache License.
# https://www.apache.org/licenses/LICENSE-2.0 # https://www.apache.org/licenses/LICENSE-2.0
# #
@@ -16,10 +16,10 @@
shopt -s extglob shopt -s extglob
declare -g SCRIPTVERSION="1.0-dev" declare -g SCRIPTVERSION="1.0.2"
declare -g BOARDURL="https://yabb.jriver.com/interact/index.php/board,83.0.html" # MC32 declare -g BOARDURL="https://yabb.jriver.com/interact/index.php/board,83.0.html" # MC32
declare -g DEBIANBASE="bullseye" declare -g DEBIANBASE="bullseye"
declare -g MC_VERSION_HARDCODE="32.0.6" # Do find all replace declare -g MC_VERSION_HARDCODE="32.0.45" # Do find all replace
printHelp() { printHelp() {
debug "Running: ${FUNCNAME[0]}" debug "Running: ${FUNCNAME[0]}"
@@ -43,6 +43,8 @@ printHelp() {
Specify the MC version, ex. "$MC_VERSION_HARDCODE" (default: latest version) Specify the MC version, ex. "$MC_VERSION_HARDCODE" (default: latest version)
--arch VERSION --arch VERSION
Specify the MC architecture, ex. "amd64", "arm64", etc (default: host architecture) Specify the MC architecture, ex. "amd64", "arm64", etc (default: host architecture)
--base DEBIAN_BASE
Specify the MC debian base, ex. "bullseye", "bookworm", "noble", etc (default: latest official)
--outputdir PATH --outputdir PATH
Generate rpmbuild output in this directory (default: ./output) Generate rpmbuild output in this directory (default: ./output)
--restorefile RESTOREFILE --restorefile RESTOREFILE
@@ -169,11 +171,15 @@ init() {
RPM_MGR="yum" RPM_MGR="yum"
fi fi
;; ;;
rhel) rhel|almalinux)
ID="centos" ID="centos"
;; ;;
linuxmint|neon|zorin|*ubuntu*) linuxmint|neon|zorin|*ubuntu*)
ID="ubuntu" ID="ubuntu"
if [[ ${VERSION_ID%.*} -ge 24 ]]; then
debug "Switching to noble repo for *buntu 24"
declare -g DEBIANBASE='noble'
fi
;; ;;
*suse*) *suse*)
ID="suse" ID="suse"
@@ -279,11 +285,12 @@ parseInput() {
LOCAL_INSTALL_SWITCH=1 LOCAL_INSTALL_SWITCH=1
fi fi
long_opts="install:,build::,outputdir:,mcversion:,restorefile:,betapass:," long_opts="install:,build::,outputdir:,mcversion:,arch:,base:,compat,"
long_opts+="restorefile:,betapass:,"
long_opts+="service-type:,service:,services:," long_opts+="service-type:,service:,services:,"
long_opts+="version,debug,verbose,help,uninstall,tests," long_opts+="version,debug,verbose,help,uninstall,tests,yes,auto,"
long_opts+="createrepo::,createrepo-webroot:,createrepo-user:," long_opts+="createrepo::,createrepo-webroot:,createrepo-user:,"
long_opts+="vncpass:,display:,container:,compat,arch:,yes,auto" long_opts+="vncpass:,display:,container:"
short_opts="+i:vb::dhus:c:" short_opts="+i:vb::dhus:c:"
# Reset DEBUG and catch with getopt # Reset DEBUG and catch with getopt
@@ -320,6 +327,9 @@ parseInput() {
--arch) --arch)
shift && USER_ARCH="$1" shift && USER_ARCH="$1"
;; ;;
--base)
shift && declare -g DEBIANBASE="$1"
;;
--restorefile) --restorefile)
shift && RESTOREFILE="$1" shift && RESTOREFILE="$1"
;; ;;
@@ -772,8 +782,8 @@ buildRPM() {
requires=("${requires[@]/libnspr4/mozilla-nspr}") requires=("${requires[@]/libnspr4/mozilla-nspr}")
requires=("${requires[@]/libfribidi0/fribidi}") requires=("${requires[@]/libfribidi0/fribidi}")
requires=("${requires[@]/libfontconfig1/fontconfig}") requires=("${requires[@]/libfontconfig1/fontconfig}")
requires=("${requires[@]/libfreetype6*/freetype}") # Remove minimum version specifier
requires=("${requires[@]/libharfbuzz0b/libharfbuzz0}") requires=("${requires[@]/libharfbuzz0b/libharfbuzz0}")
requires=("${requires[@]/libwebkit2gtk*/libwebkit2gtk-4_0-37}")
for i in "${!requires[@]}"; do for i in "${!requires[@]}"; do
[[ ${requires[$i]} == "mesa-vulkan-drivers" ]] && unset -v 'requires[i]' [[ ${requires[$i]} == "mesa-vulkan-drivers" ]] && unset -v 'requires[i]'
done done
@@ -814,7 +824,7 @@ buildRPM() {
Provides: mediacenter$MC_MVERSION Provides: mediacenter$MC_MVERSION
License: Copyright 1998-2023, JRiver, Inc. All rights reserved. Protected by U.S. patents #7076468 and #7062468 License: Copyright 1998-2024, JRiver, Inc. All rights reserved. Protected by U.S. patents #7076468 and #7062468
URL: http://www.jriver.com/ URL: http://www.jriver.com/
%define __provides_exclude_from ^%{_libdir}/jriver/.*/.*\\.so.*$ %define __provides_exclude_from ^%{_libdir}/jriver/.*/.*\\.so.*$
@@ -835,7 +845,7 @@ buildRPM() {
%files %files
%{_bindir}/mediacenter$MC_MVERSION %{_bindir}/mediacenter$MC_MVERSION
%{_bindir}/mc$MC_MVERSION %{_bindir}/mc$MC_MVERSION
%{_libdir}/jriver %{_libdir}/jriver
%{_datadir} %{_datadir}
%exclude %{_datadir}/applications/media_center_packageinstaller_$MC_MVERSION.desktop %exclude %{_datadir}/applications/media_center_packageinstaller_$MC_MVERSION.desktop