From 21d010d7d2d05f3058c755a6345157c9bebcad5f Mon Sep 17 00:00:00 2001 From: bryan Date: Tue, 14 Apr 2026 01:40:35 -0400 Subject: [PATCH] Update README --- README.md | 136 ++++++++++++++++++++++++++-------------------------- installJRMC | 2 +- 2 files changed, 70 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 1651b0b..257e2f2 100755 --- a/README.md +++ b/README.md @@ -4,124 +4,126 @@ Installs [JRiver Media Center](https://www.jriver.com/) and associated services You can find the latest version of installJRMC, changelog, and documentation in [my repository](https://git.bryanroessler.com/bryan/installJRMC). -## Usage - -`installJRMC [--option [ARGUMENT]]` - -`installJRMC` defaults to `--install=repo` on distros with Media Center repositories and `--install=local` on others. -Specifying `--build`, `--createrepo`, `--service`, or `--uninstall` disables the default install method. - -### tl;dr +## tl;dr `curl https://git.bryanroessler.com/bryan/installJRMC/raw/branch/master/installJRMC|bash` -## Options +## Usage ```text $ installJRMC --help ---install, -i repo|local +USAGE: + installJRMC [[OPTION] [VALUE]]... + + installJRMC defaults to --install=repo on platforms with a JRiver repository and --install=local on others. + Specifying --build, --createrepo, --service, or --uninstall disables the default install method. + +OPTIONS + --install, -i repo|local repo: Install MC from repository, updates are handled by the system package manager. local: Build and install MC locally from official source package. ---build[=suse|fedora|centos|mandriva] + --build[=suse|fedora|centos|mandriva] Build RPM from source DEB but do not install. Optionally, specify a target distro for cross-building (ex. --build=suse, note the '='). ---compat + --compat Build/install MC locally without minimum dependency version requirements. ---mcversion VERSION + --mcversion VERSION Specify the MC version, ex. "35.0.68" or "35" (default: latest release). ---mcrepo REPO - Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: auto). ---arch ARCH + --arch VERSION Specify the target MC architecture, ex. "amd64", "arm64", etc (default: host). ---outputdir PATH + --mcrepo REPO + Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: auto). + --outputdir PATH Generate reusable installJRMC output in this PATH (default: ./output). ---restorefile MJR_FILE + --restorefile MJR_FILE Restore file location for automatic license registration. ---betapass PASSWORD + --betapass PASSWORD Enter beta team password for access to beta builds. ---service, -s SERVICE + --service, -s SERVICE See SERVICES below for possible services to install. --service-type user|system - Starts services at boot (system) or at user login (user) (default: per service, see SERVICES). ---no-update + Starts services at boot (system) or at user login (user) (default: per service, see SERVICES). + --no-update Disable automatic installJRMC self-update. ---uninstall, -u + --uninstall, -u Uninstall JRiver MC, remove services, containers, and firewall rules (does not remove library files). ---yes, -y, --auto + --yes, -y, --auto Assume yes response to questions. ---version, -v + --version, -v Print installJRMC version and exit. ---debug, -d + --debug, -d Print debug output. ---help, -h + --help, -h Print help dialog and exit. +SERVICES + jriver-mediaserver (default --service-type=user) + Enable and start a mediaserver systemd service (requires an existing X server). + jriver-mediacenter (user) + Enable and start a mediacenter systemd service (requires an existing X server). + jriver-x11vnc (user) + Enable and start x11vnc for the local desktop (requires an existing X server). + Usually combined with jriver-mediaserver or jriver-mediacenter services. + --vncpass and --display are optional (see below). + jriver-xvnc (system) + Enable and start a new Xvnc session running JRiver Media Center. + --vncpass PASSWORD + Set the vnc password for x11vnc/Xvnc access. If no password is set, installJRMC + will either use existing password stored in $HOME/.vnc/jrmc_passwd or else no password. + --display DISPLAY + Display to use for x11vnc/Xvnc (default: The current display (x11vnc) or the + current display incremented by 1 (Xvnc)). + jriver-createrepo (system) + Install hourly service to build latest MC RPM and run createrepo. + ADVANCED OPTIONS ---container, -c CONTAINER (TODO: Under construction) + --container, -c CONTAINER (TODO: Under construction) See CONTAINERS section below for a list of possible services to install. ---createrepo[=suse|fedora|centos|mandriva] + --createrepo[=suse|fedora|centos|mandriva] Build rpm, copy to webroot, and run createrepo. Use in conjunction with --build=TARGET for crossbuilding repos. Optionally, specify a target distro for non-native repo (ex. --createrepo=fedora). ---createrepo-webroot PATH + --createrepo-webroot PATH Specify the webroot directory to install the repo (default: /var/www/jriver). ---webroot-user USER + --webroot-user USER Owner/user for createrepo output in the webroot (default: current user). ---createrepo-user USER + --createrepo-user USER Backward-compatible alias for --webroot-user. ---sign + --sign Sign the built RPM and repodata/repomd.xml (if --createrepo). ---sign-user USER + --sign-user USER User account used to run rpmsign and gpg signing (default: current user). ---sign-key KEYID + --sign-key KEYID GPG key ID, fingerprint, or UID used for --sign. ``` -### `--service=` +## Notes -```text -jriver-mediaserver [--service-type=user] - Enable and start a mediaserver systemd service (requires an existing X server). -jriver-mediacenter [--service-type=user] - Enable and start a mediacenter systemd service (requires an existing X server). -jriver-x11vnc [--service-type=user] - 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). -jriver-xvnc [--service-type=system] - Enable and start a new Xvnc session running JRiver Media Center. - --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. - --display DISPLAY - Manually specify display to use for x11vnc/Xvnc (ex. ':1'). -jriver-createrepo [--service-type=system] - Install hourly service to build latest MC RPM and run createrepo. -``` - -#### `--service-type=` +### --service-type= Services use a sane default `--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 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 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 - -**Coming soon!** - -## Firewall +### Firewall `installJRMC` automatically creates port forwarding firewall rules for remote access to Media Network (52100-52200/tcp, 1900/udp DLNA) and Xvnc/x11vnc (if selected), using `firewall-cmd` or `ufw` (if available). -## Other Nicities +### Other Nicities * Automatically updates `installJRMC` to the latest release. * Activates external third-party repositories for improved media playback (hardware decoding, etc.). * Adds temporary legacy repositories to provide deprecated libraries. -* Links non-standard SSL certs. -* Activates MC if a valid license file is found in common locations. +* Symlinks non-standard SSL certs. +* Activates MC if a valid license file is found in common locations like Downloads or Documents directories. + +### Containers + +**Coming soon!** ## Examples @@ -149,9 +151,9 @@ Multiple services (but not `--service-types`) can be installed at one time using Build an RPM locally for the current distro, move it to the webroot, and run createrepo as `www-user`. -* `installJRMC --service jriver-createrepo --createrepo-webroot /srv/jriver/repo --webroot-user www-user` +* `installJRMC --service=jriver-createrepo --webroot-user=nginx --createrepo-webroot "/var/www/repos.bryanroessler.com/jriver" --createrepo=fedora --sign --sign-key 7C008BD7B33C185837C81D033C9D3657EE0BC6D9` - Install the jriver-createrepo timer and service to build the RPM, move it to the webroot, and run createrepo as `www-user` hourly. + Install the jriver-createrepo timer and service to build/sign the RPM, move it to the webroot, and run createrepo as user `nginx` hourly. * `installJRMC --createrepo --webroot-user nginx --sign --sign-user bryan --sign-key 0xDEADBEEF` diff --git a/installJRMC b/installJRMC index bdb624d..eeb5873 100755 --- a/installJRMC +++ b/installJRMC @@ -22,7 +22,7 @@ # shellcheck disable=SC2329 shopt -s extglob -declare -g SCRIPT_VERSION="1.35.14" +declare -g SCRIPT_VERSION="1.35.15-dev" declare -g MC_VERSION_HARDCODE="35.0.68" # do find all replace declare -g MC_REPO_HARDCODE="bookworm" # should match the MC_VERSION_HARDCODE declare -g BOARD_ID="92.0" # MC35 board ID for fallback latest version detection