Compare commits
6 Commits
d202c2b747
...
662c55d0d0
| Author | SHA1 | Date | |
|---|---|---|---|
| 662c55d0d0 | |||
| 471b432b82 | |||
| abfb0472e8 | |||
| c7a53ac202 | |||
| 852324f350 | |||
| d9f270adc1 |
218
installJRMC
218
installJRMC
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
_scriptversion="1.0b4"
|
_scriptversion="1.0b5"
|
||||||
_outputdir="$PWD/output"
|
_outputdir="$PWD/output"
|
||||||
_createrepo_webroot="/var/www/jriver"
|
_createrepo_webroot="/var/www/jriver"
|
||||||
_exec_user="$(whoami)"
|
_exec_user="$(whoami)"
|
||||||
@@ -173,7 +173,7 @@ init() {
|
|||||||
[[ ! "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && err "Invalid version number" && exit 1
|
[[ ! "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && err "Invalid version number" && exit 1
|
||||||
|
|
||||||
echo "Using MC version $_mcversion determined by $_version_source"
|
echo "Using MC version $_mcversion determined by $_version_source"
|
||||||
echo "To override, use --mcversion"
|
[[ "$_version_source" != "user input" ]] && echo "To override, use --mcversion"
|
||||||
|
|
||||||
# Extract major version number
|
# Extract major version number
|
||||||
_mversion="${_mcversion%%.*}"
|
_mversion="${_mcversion%%.*}"
|
||||||
@@ -353,34 +353,34 @@ getLatestVersion() {
|
|||||||
# This can be overriden w/ --mcversion
|
# This can be overriden w/ --mcversion
|
||||||
# TODO need user input here
|
# TODO need user input here
|
||||||
# disable version checks for createrepo or rpmbuild (servers)
|
# disable version checks for createrepo or rpmbuild (servers)
|
||||||
if [[ -v _install ]]; then
|
# if [[ -v _install ]]; then
|
||||||
if [[ "$ID" == "ubuntu" ]]; then
|
# if [[ "$ID" == "ubuntu" ]]; then
|
||||||
# [[ "$VERSION_CODENAME" =~ ^(focal|groovy|hirsute|impish)$ ]] && \
|
# # [[ "$VERSION_CODENAME" =~ ^(focal|groovy|hirsute|impish)$ ]] && \
|
||||||
# _base="bullseye"
|
# # _base="bullseye"
|
||||||
[[ "$VERSION_CODENAME" =~ ^(cosmic|disco|eoan)$ ]] && \
|
# [[ "$VERSION_CODENAME" =~ ^(cosmic|disco|eoan)$ ]] && \
|
||||||
_base="buster"
|
# _base="buster"
|
||||||
[[ "$VERSION_CODENAME" =~ ^(xenial|yakkety|zesty|artful|bionic)$ ]] && \
|
# [[ "$VERSION_CODENAME" =~ ^(xenial|yakkety|zesty|artful|bionic)$ ]] && \
|
||||||
_mcversion="26.0.107"
|
# _mcversion="26.0.107"
|
||||||
[[ "$VERSION_CODENAME" =~ ^(trusty|utopic|vivid|wily)$ ]] && \
|
# [[ "$VERSION_CODENAME" =~ ^(trusty|utopic|vivid|wily)$ ]] && \
|
||||||
_mcversion="26.0.107"
|
# _mcversion="26.0.107"
|
||||||
elif [[ "$ID" == "debian" ]]; then
|
# elif [[ "$ID" == "debian" ]]; then
|
||||||
_base="$VERSION_CODENAME"
|
# _base="$VERSION_CODENAME"
|
||||||
[[ $VERSION_ID -eq 10 ]] && \
|
# [[ $VERSION_ID -eq 10 ]] && \
|
||||||
_base="buster"
|
# _base="buster"
|
||||||
[[ $VERSION_ID -le 9 ]] && \
|
# [[ $VERSION_ID -le 9 ]] && \
|
||||||
_mcversion="26.0.107" # For 9 and 8
|
# _mcversion="26.0.107" # For 9 and 8
|
||||||
elif [[ "$ID" == "centos" ]]; then
|
# elif [[ "$ID" == "centos" ]]; then
|
||||||
[[ "$VERSION_ID" -eq "8" ]] && \
|
# [[ "$VERSION_ID" -eq "8" ]] && \
|
||||||
_base="buster"
|
# _base="buster"
|
||||||
[[ "$VERSION_ID" -lt "8" ]] && \
|
# [[ "$VERSION_ID" -lt "8" ]] && \
|
||||||
_mcversion="26.0.107" # Doubtful
|
# _mcversion="26.0.107" # Doubtful
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
[[ -v _mcversion ]] && \
|
# [[ -v _mcversion ]] && \
|
||||||
_version_source="compatibility lookup" && \
|
# _version_source="compatibility lookup" && \
|
||||||
debug "To override, use --mcversion" && \
|
# debug "To override, use --mcversion" && \
|
||||||
return 0
|
# return 0
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
# Use a containerized package manager
|
# Use a containerized package manager
|
||||||
# TODO but how to determine build distro ($_base=buster)?
|
# TODO but how to determine build distro ($_base=buster)?
|
||||||
@@ -390,12 +390,16 @@ getLatestVersion() {
|
|||||||
"echo 'deb [trusted=yes arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $_base main' > /etc/apt/sources.list 2>&1"
|
"echo 'deb [trusted=yes arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $_base main' > /etc/apt/sources.list 2>&1"
|
||||||
buildah run "$CNT" -- bash -c \
|
buildah run "$CNT" -- bash -c \
|
||||||
"apt-get update --allow-insecure-repositories -y > /dev/null 2>&1"
|
"apt-get update --allow-insecure-repositories -y > /dev/null 2>&1"
|
||||||
if _mcversion=$(buildah run "$CNT" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1); then
|
if _mcversion=$(buildah run "$CNT" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) \
|
||||||
|
&& [[ "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
|
||||||
_version_source="containerized package manager"
|
_version_source="containerized package manager"
|
||||||
|
buildah rm "$CNT" > /dev/null 2>&1
|
||||||
|
return 0
|
||||||
fi
|
fi
|
||||||
buildah rm "$CNT" > /dev/null 2>&1
|
buildah rm "$CNT" > /dev/null 2>&1
|
||||||
# Else scrape from Interact
|
fi
|
||||||
elif _mcversion=$(wget -qO- "$_boardurl" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1); then
|
# Scrape from Interact
|
||||||
|
if _mcversion=$(wget -qO- "$_boardurl" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1); then
|
||||||
_version_source="webscrape"
|
_version_source="webscrape"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -691,7 +695,7 @@ buildRPM() {
|
|||||||
AutoReq: 0
|
AutoReq: 0
|
||||||
|
|
||||||
${_global_requires:-}
|
${_global_requires:-}
|
||||||
${_custom_requires:-}
|
${_custom_requires:-}
|
||||||
|
|
||||||
Recommends: vorbis-tools >= 1.4.0
|
Recommends: vorbis-tools >= 1.4.0
|
||||||
Recommends: lame >= 3.0
|
Recommends: lame >= 3.0
|
||||||
@@ -1187,98 +1191,98 @@ service_jriver-createrepo() {
|
|||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
container_jriver-mediacenter() {
|
# container_jriver-mediacenter() {
|
||||||
|
|
||||||
installPackage buildah podman
|
# installPackage buildah podman
|
||||||
|
|
||||||
# Eventually try to switch to Debian
|
# # Eventually try to switch to Debian
|
||||||
# if ! CNT=$(buildah from debian:$_base); then
|
# # if ! CNT=$(buildah from debian:$_base); then
|
||||||
# echo "Bad base image for container $CNAME, skipping"
|
# # echo "Bad base image for container $CNAME, skipping"
|
||||||
# continue
|
# # continue
|
||||||
# fi
|
# # fi
|
||||||
|
|
||||||
if ! CNT=$(buildah from jlesage/baseimage-gui:debian-10-v3.5.7); then
|
# if ! CNT=$(buildah from jlesage/baseimage-gui:debian-10-v3.5.7); then
|
||||||
echo "Bad base image for container $CNAME, skipping"
|
# echo "Bad base image for container $CNAME, skipping"
|
||||||
continue
|
# continue
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
buildah run "$CNT" add-pkg gnupg2 libxss1 wmctrl xdotool ca-certificates inotify-tools libgbm1 ffmpeg
|
# buildah run "$CNT" add-pkg gnupg2 libxss1 wmctrl xdotool ca-certificates inotify-tools libgbm1 ffmpeg
|
||||||
|
|
||||||
|
|
||||||
# #BASEIMAGE=jlesage/baseimage-gui:debian-10-v3.5.7
|
# # #BASEIMAGE=jlesage/baseimage-gui:debian-10-v3.5.7
|
||||||
# JRIVER_RELEASE=28
|
# # JRIVER_RELEASE=28
|
||||||
# JRIVER_TAG=stable
|
# # JRIVER_TAG=stable
|
||||||
# ARCH=amd64
|
# # ARCH=amd64
|
||||||
# REBUILD_MIN=22
|
# # REBUILD_MIN=22
|
||||||
# REBUILD_MAX=120
|
# # REBUILD_MAX=120
|
||||||
|
|
||||||
# # JRiver Version tag (latest, stable or beta)
|
# # # JRiver Version tag (latest, stable or beta)
|
||||||
# ARG jriver_tag
|
# # ARG jriver_tag
|
||||||
|
|
||||||
# # JRiver Release Version (25, 26 etc.)
|
# # # JRiver Release Version (25, 26 etc.)
|
||||||
# ARG jriver_release
|
# # ARG jriver_release
|
||||||
|
|
||||||
# # Image Version of the build
|
# # # Image Version of the build
|
||||||
# ARG image_version
|
# # ARG image_version
|
||||||
|
|
||||||
# # .deb download URL, if set to "repository" the JRiver repository will be used
|
# # # .deb download URL, if set to "repository" the JRiver repository will be used
|
||||||
# ARG deb_url
|
# # ARG deb_url
|
||||||
|
|
||||||
# RUN add-pkg gnupg2 libxss1 wmctrl xdotool ca-certificates inotify-tools libgbm1 ffmpeg
|
# # RUN add-pkg gnupg2 libxss1 wmctrl xdotool ca-certificates inotify-tools libgbm1 ffmpeg
|
||||||
|
|
||||||
# Install JRiver
|
# # Install JRiver
|
||||||
RUN \
|
# RUN \
|
||||||
add-pkg --virtual build-dependencies wget && \
|
# add-pkg --virtual build-dependencies wget && \
|
||||||
# Install from Repository
|
# # Install from Repository
|
||||||
if [ "${deb_url}" = "repository" ]; then \
|
# if [ "${deb_url}" = "repository" ]; then \
|
||||||
echo "Installing JRiver from repository ${jriver_release}:${jriver_tag}" && \
|
# echo "Installing JRiver from repository ${jriver_release}:${jriver_tag}" && \
|
||||||
wget -q "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" -O- | apt-key add - && \
|
# wget -q "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" -O- | apt-key add - && \
|
||||||
wget http://dist.jriver.com/${jriver_tag}/mediacenter/mediacenter${jriver_release}.list -O /etc/apt/sources.list.d/mediacenter${jriver_release}.list && \
|
# wget http://dist.jriver.com/${jriver_tag}/mediacenter/mediacenter${jriver_release}.list -O /etc/apt/sources.list.d/mediacenter${jriver_release}.list && \
|
||||||
apt-get update && \
|
# apt-get update && \
|
||||||
add-pkg mediacenter${jriver_release}; \
|
# add-pkg mediacenter${jriver_release}; \
|
||||||
# Install from .deb URL
|
# # Install from .deb URL
|
||||||
else \
|
# else \
|
||||||
echo "Installing JRiver from URL: ${deb_url}" && \
|
# echo "Installing JRiver from URL: ${deb_url}" && \
|
||||||
wget -q -O "jrivermc.deb" ${deb_url} && \
|
# wget -q -O "jrivermc.deb" ${deb_url} && \
|
||||||
add-pkg "./jrivermc.deb"; \
|
# add-pkg "./jrivermc.deb"; \
|
||||||
fi && \
|
# fi && \
|
||||||
# Cleanup
|
# # Cleanup
|
||||||
del-pkg build-dependencies && \
|
# del-pkg build-dependencies && \
|
||||||
rm -rf /tmp/* /tmp/.[!.]*
|
# rm -rf /tmp/* /tmp/.[!.]*
|
||||||
|
|
||||||
# Add rootfs
|
# # Add rootfs
|
||||||
COPY rootfs/ /
|
# COPY rootfs/ /
|
||||||
|
|
||||||
VOLUME ["/config"]
|
# VOLUME ["/config"]
|
||||||
|
|
||||||
# Application Icon
|
# # Application Icon
|
||||||
RUN \
|
# RUN \
|
||||||
APP_ICON_URL=https://gitlab.com/shiomax/jrivermc-docker/raw/master/assets/Application.png && \
|
# APP_ICON_URL=https://gitlab.com/shiomax/jrivermc-docker/raw/master/assets/Application.png && \
|
||||||
install_app_icon.sh "$APP_ICON_URL"
|
# install_app_icon.sh "$APP_ICON_URL"
|
||||||
|
|
||||||
# Various configuration vars
|
# # Various configuration vars
|
||||||
ENV KEEP_APP_RUNNING=1 \
|
# ENV KEEP_APP_RUNNING=1 \
|
||||||
DISPLAY_WIDTH=1280 \
|
# DISPLAY_WIDTH=1280 \
|
||||||
DISPLAY_HEIGHT=768 \
|
# DISPLAY_HEIGHT=768 \
|
||||||
APP_NAME="JRiver MediaCenter ${jriver_release}" \
|
# APP_NAME="JRiver MediaCenter ${jriver_release}" \
|
||||||
MAXIMIZE_POPUPS=0 \
|
# MAXIMIZE_POPUPS=0 \
|
||||||
S6_KILL_GRACETIME=8000
|
# S6_KILL_GRACETIME=8000
|
||||||
|
|
||||||
# Modify startapp.sh and rc.xml with JRiver version
|
# # Modify startapp.sh and rc.xml with JRiver version
|
||||||
RUN sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
|
# RUN sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
|
||||||
/startapp.sh && \
|
# /startapp.sh && \
|
||||||
sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
|
# sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
|
||||||
/etc/xdg/openbox/rc.xml
|
# /etc/xdg/openbox/rc.xml
|
||||||
|
|
||||||
EXPOSE 5800 5900 52100 52101 52199 1900/udp
|
# EXPOSE 5800 5900 52100 52101 52199 1900/udp
|
||||||
|
|
||||||
# Metadata.
|
# # Metadata.
|
||||||
LABEL \
|
# LABEL \
|
||||||
org.label-schema.name="jrivermc${jriver_release}" \
|
# org.label-schema.name="jrivermc${jriver_release}" \
|
||||||
org.label-schema.description="Docker image for JRiver Media Center ${jriver_release}." \
|
# org.label-schema.description="Docker image for JRiver Media Center ${jriver_release}." \
|
||||||
org.label-schema.version="${image_version}" \
|
# org.label-schema.version="${image_version}" \
|
||||||
org.label-schema.vcs-url="https://gitlab.com/shiomax/jrivermc-docker" \
|
# org.label-schema.vcs-url="https://gitlab.com/shiomax/jrivermc-docker" \
|
||||||
org.label-schema.schema-version="1.0"
|
# org.label-schema.schema-version="1.0"
|
||||||
|
|
||||||
# installPackage buildah podman
|
# installPackage buildah podman
|
||||||
# cnt=$(buildah from docker.io/jlesage/baseimage-gui:debian-10)
|
# cnt=$(buildah from docker.io/jlesage/baseimage-gui:debian-10)
|
||||||
@@ -1464,7 +1468,7 @@ main() {
|
|||||||
|
|
||||||
# Install RPM
|
# Install RPM
|
||||||
if [[ -v _install && "$_install" == "rpm" ]]; then
|
if [[ -v _install && "$_install" == "rpm" ]]; then
|
||||||
if installPackage --nocheck --nogpgcheck "$_mcrpm"; then
|
if installPackage --nocheck --nogpgcheck --skip-broken "$_mcrpm"; then
|
||||||
echo "JRiver Media Center installed successfully"
|
echo "JRiver Media Center installed successfully"
|
||||||
else
|
else
|
||||||
err "JRiver Media Center installation failed"
|
err "JRiver Media Center installation failed"
|
||||||
|
|||||||
Reference in New Issue
Block a user