7 Commits

Author SHA1 Message Date
7a81e073a5 Fix merge conflicts 2024-05-28 16:22:44 -04:00
8158542335 v1.0.3 release 2024-05-28 16:21:58 -04:00
78b12d3d35 Replace --base with --mcrepo 2024-05-28 16:21:26 -04:00
ce0edfe1d0 Fix --repo implementation 2024-05-28 16:14:18 -04:00
40b3259592 Merge branch 'dev' 2024-05-28 16:01:37 -04:00
d86247ab53 Quote debian base var 2024-05-28 16:01:22 -04:00
3470ed139e Fix readme link 2024-05-28 16:00:34 -04:00
2 changed files with 22 additions and 22 deletions

View File

@@ -24,10 +24,10 @@ $ installJRMC --help
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.45" (default: latest version) Build or install a specific MC version, ex. "32.0.45" (default: latest version)
--mcrepo REPO
Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: latest official)
--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
@@ -59,36 +59,36 @@ $ installJRMC --help
Uninstall JRiver MC, service files, and firewall rules (does not remove library or media files) Uninstall JRiver MC, service files, and firewall rules (does not remove library or media files)
``` ```
## Services ## `--service=`
```text ```text
jriver-mediaserver (--service-type=user) jriver-mediaserver [--service-type=user]
Enable and start a mediaserver systemd service (requires an existing X server) Enable and start a mediaserver systemd service (requires an existing X server)
jriver-mediacenter (user) jriver-mediacenter [--service-type=user]
Enable and start a mediacenter systemd service (requires an existing X server) Enable and start a mediacenter systemd service (requires an existing X server)
jriver-x11vnc (user) jriver-x11vnc [--service-type=user]
Enable and start x11vnc for the local desktop (requires an existing X server, does NOT support Wayland) Enable and start x11vnc for the local desktop (requires an existing X server, does NOT support Wayland)
--vncpass and --display are also valid options (see below) --vncpass and --display are also valid options (see below)
jriver-xvnc (system) jriver-xvnc [--service-type=system]
Enable and start a new Xvnc session running JRiver Media Center Enable and start a new Xvnc session running JRiver Media Center
--vncpass PASSWORD --vncpass PASSWORD
Set vnc password for x11vnc/Xvnc access. If no password is set, the script will either use existing password stored in ~/.vnc/jrmc_passwd or use no password Set vnc password for x11vnc/Xvnc access. If no password is set, the script will either use existing password stored in ~/.vnc/jrmc_passwd or use no password
--display DISPLAY --display DISPLAY
Manually specify display to use for x11vnc/Xvnc (ex. ':1') Manually specify display to use for x11vnc/Xvnc (ex. ':1')
jriver-createrepo (system) jriver-createrepo [--service-type=system]
Install hourly service to build latest MC RPM and run createrepo Install hourly service to build latest MC RPM and run createrepo
By default installs as root service to handle www permissions more gracefully By default installs as root service to handle www permissions more gracefully
``` ```
### `--service-type` ### `--service-type=`
By default, MC services use a sane `--service-type` listed next to the service name in the [Services](#services) description. User services can be manipulated as an unprivileged user, for example: `systemctl --user stop jriver-mediacenter` and begin at user login. System services are manipulable as root, for example: `sudo systemctl stop jriver-servicename@username.service` and begin at system boot. Note that it is also possible to run all services of a particular user at boot using [`sudo loginctl enable-linger username`](https://www.freedesktop.org/software/systemd/man/loginctl.html). By default, MC services use a sane `--service-type` listed next to the service name in the [`--service=`](#--service) section. User services begin at user login and are managed by the unprivileged user, for example: `systemctl --user stop jriver-mediacenter`. System services begin at boot and are managed by root, for example: `sudo systemctl stop jriver-servicename@username.service`. It is possible to run all services of a particular user at boot using [`sudo loginctl enable-linger username`](https://www.freedesktop.org/software/systemd/man/loginctl.html).
Multiple services (but not `--service-types`) can be installed at one time using multiple `--service` blocks: `installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter` Multiple services (but not `--service-types`) can be installed at one time using multiple `--service` blocks: `installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter`
### `jriver-x11vnc` versus `jriver-xvnc` ### `jriver-x11vnc` versus `jriver-xvnc`
[jriver-x11vnc](http://www.karlrunge.com/x11vnc/) shares your existing X display via VNC and can be combined with additional services to start Media Center or Media Server. Conversely, [jriver-xvnc](https://tigervnc.org/doc/Xvnc.html) creates a new Xvnc display and starts a JRiver Media Center service in the foreground of the new VNC display. [jriver-x11vnc](http://www.karlrunge.com/x11vnc/) shares the existing X display via VNC and can be combined with additional services to start Media Center or Media Server. Conversely, [jriver-xvnc](https://tigervnc.org/doc/Xvnc.html) creates a new Xvnc display and starts a JRiver Media Center service in the foreground of the new VNC display.
## Containers ## Containers

View File

@@ -18,7 +18,7 @@ shopt -s extglob
declare -g SCRIPTVERSION="1.0.2" 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 MC_REPO="bullseye"
declare -g MC_VERSION_HARDCODE="32.0.45" # Do find all replace declare -g MC_VERSION_HARDCODE="32.0.45" # Do find all replace
printHelp() { printHelp() {
@@ -43,8 +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 --mcrepo REPO
Specify the MC debian base, ex. "bullseye", "bookworm", "noble", etc (default: latest official) Specify the MC repository, 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
@@ -178,7 +178,7 @@ init() {
ID="ubuntu" ID="ubuntu"
if [[ ${VERSION_ID%.*} -ge 24 ]]; then if [[ ${VERSION_ID%.*} -ge 24 ]]; then
debug "Switching to noble repo for *buntu 24" debug "Switching to noble repo for *buntu 24"
declare -g DEBIANBASE='noble' declare -g MC_REPO='noble'
fi fi
;; ;;
*suse*) *suse*)
@@ -285,7 +285,7 @@ parseInput() {
LOCAL_INSTALL_SWITCH=1 LOCAL_INSTALL_SWITCH=1
fi fi
long_opts="install:,build::,outputdir:,mcversion:,arch:,base:,compat," long_opts="install:,build::,outputdir:,mcversion:,arch:,mcrepo:,compat,"
long_opts+="restorefile:,betapass:," long_opts+="restorefile:,betapass:,"
long_opts+="service-type:,service:,services:," long_opts+="service-type:,service:,services:,"
long_opts+="version,debug,verbose,help,uninstall,tests,yes,auto," long_opts+="version,debug,verbose,help,uninstall,tests,yes,auto,"
@@ -327,8 +327,8 @@ parseInput() {
--arch) --arch)
shift && USER_ARCH="$1" shift && USER_ARCH="$1"
;; ;;
--base) --mcrepo)
shift && declare -g DEBIANBASE="$1" shift && declare -g MC_REPO="$1"
;; ;;
--restorefile) --restorefile)
shift && RESTOREFILE="$1" shift && RESTOREFILE="$1"
@@ -402,7 +402,7 @@ parseInput() {
####################################### #######################################
# Uses several methods to determine the latest JRiver MC version # Uses several methods to determine the latest JRiver MC version
# TODO but how to determine build distro `$DEBIANBASE=bullseye`? # TODO but how to determine build distro `$MC_REPO=bullseye`?
####################################### #######################################
setMCVersion() { setMCVersion() {
debug "Running: ${FUNCNAME[0]}" debug "Running: ${FUNCNAME[0]}"
@@ -420,9 +420,9 @@ setMCVersion() {
echo "Determining latest MC version" echo "Determining latest MC version"
if installPackage --silent buildah && if installPackage --silent buildah &&
hash buildah &>/dev/null && hash buildah &>/dev/null &&
cnt=$(buildah from --quiet debian:$DEBIANBASE-slim) &>/dev/null && cnt=$(buildah from --quiet debian:"${MC_REPO/noble/bullseye}"-slim) &>/dev/null &&
buildah run "$cnt" -- bash -c \ buildah run "$cnt" -- bash -c \
"echo 'deb [trusted=no arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $DEBIANBASE main' > /etc/apt/sources.list 2>&1" &>/dev/null && "echo 'deb [trusted=no arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $MC_REPO main' > /etc/apt/sources.list 2>&1" &>/dev/null &&
buildah run "$cnt" -- bash -c \ buildah run "$cnt" -- bash -c \
"apt update --allow-insecure-repositories &>/dev/null" &>/dev/null && "apt update --allow-insecure-repositories &>/dev/null" &>/dev/null &&
MC_VERSION=$(buildah run "$cnt" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &>/dev/null && MC_VERSION=$(buildah run "$cnt" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &>/dev/null &&
@@ -627,7 +627,7 @@ installMCFromRepo() {
execute sudo rm -rf "$repo_dir"/mediacenter*.list execute sudo rm -rf "$repo_dir"/mediacenter*.list
installPackage wget installPackage wget
sudo bash -c "cat <<-EOF > $repo_dir/jriver.list sudo bash -c "cat <<-EOF > $repo_dir/jriver.list
deb [trusted=yes arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $DEBIANBASE main deb [trusted=yes arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $MC_REPO main
EOF" EOF"
wget -qO- "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" | wget -qO- "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" |
sudo tee /etc/apt/trusted.gpg.d/jriver.asc &>/dev/null sudo tee /etc/apt/trusted.gpg.d/jriver.asc &>/dev/null