6 Commits

Author SHA1 Message Date
662c55d0d0 Allow broken depenencies with dnf 2021-12-28 10:25:07 -05:00
471b432b82 Leave it up to the user for now 2021-12-11 11:55:43 -05:00
abfb0472e8 Fix version checking reliability 2021-12-11 10:03:52 -05:00
c7a53ac202 Fix version checking reliability 2021-12-11 10:01:39 -05:00
852324f350 Fix dev derp 2021-12-11 09:34:18 -05:00
d9f270adc1 Fix dev derp 2021-12-11 09:31:05 -05:00

View File

@@ -20,7 +20,7 @@
shopt -s extglob
_scriptversion="1.0b4"
_scriptversion="1.0b5"
_outputdir="$PWD/output"
_createrepo_webroot="/var/www/jriver"
_exec_user="$(whoami)"
@@ -173,7 +173,7 @@ init() {
[[ ! "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && err "Invalid version number" && exit 1
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
_mversion="${_mcversion%%.*}"
@@ -353,34 +353,34 @@ getLatestVersion() {
# This can be overriden w/ --mcversion
# TODO need user input here
# disable version checks for createrepo or rpmbuild (servers)
if [[ -v _install ]]; then
if [[ "$ID" == "ubuntu" ]]; then
# [[ "$VERSION_CODENAME" =~ ^(focal|groovy|hirsute|impish)$ ]] && \
# _base="bullseye"
[[ "$VERSION_CODENAME" =~ ^(cosmic|disco|eoan)$ ]] && \
_base="buster"
[[ "$VERSION_CODENAME" =~ ^(xenial|yakkety|zesty|artful|bionic)$ ]] && \
_mcversion="26.0.107"
[[ "$VERSION_CODENAME" =~ ^(trusty|utopic|vivid|wily)$ ]] && \
_mcversion="26.0.107"
elif [[ "$ID" == "debian" ]]; then
_base="$VERSION_CODENAME"
[[ $VERSION_ID -eq 10 ]] && \
_base="buster"
[[ $VERSION_ID -le 9 ]] && \
_mcversion="26.0.107" # For 9 and 8
elif [[ "$ID" == "centos" ]]; then
[[ "$VERSION_ID" -eq "8" ]] && \
_base="buster"
[[ "$VERSION_ID" -lt "8" ]] && \
_mcversion="26.0.107" # Doubtful
fi
# if [[ -v _install ]]; then
# if [[ "$ID" == "ubuntu" ]]; then
# # [[ "$VERSION_CODENAME" =~ ^(focal|groovy|hirsute|impish)$ ]] && \
# # _base="bullseye"
# [[ "$VERSION_CODENAME" =~ ^(cosmic|disco|eoan)$ ]] && \
# _base="buster"
# [[ "$VERSION_CODENAME" =~ ^(xenial|yakkety|zesty|artful|bionic)$ ]] && \
# _mcversion="26.0.107"
# [[ "$VERSION_CODENAME" =~ ^(trusty|utopic|vivid|wily)$ ]] && \
# _mcversion="26.0.107"
# elif [[ "$ID" == "debian" ]]; then
# _base="$VERSION_CODENAME"
# [[ $VERSION_ID -eq 10 ]] && \
# _base="buster"
# [[ $VERSION_ID -le 9 ]] && \
# _mcversion="26.0.107" # For 9 and 8
# elif [[ "$ID" == "centos" ]]; then
# [[ "$VERSION_ID" -eq "8" ]] && \
# _base="buster"
# [[ "$VERSION_ID" -lt "8" ]] && \
# _mcversion="26.0.107" # Doubtful
# fi
[[ -v _mcversion ]] && \
_version_source="compatibility lookup" && \
debug "To override, use --mcversion" && \
return 0
fi
# [[ -v _mcversion ]] && \
# _version_source="compatibility lookup" && \
# debug "To override, use --mcversion" && \
# return 0
# fi
# Use a containerized package manager
# 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"
buildah run "$CNT" -- bash -c \
"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"
buildah rm "$CNT" > /dev/null 2>&1
return 0
fi
buildah rm "$CNT" > /dev/null 2>&1
# Else scrape from Interact
elif _mcversion=$(wget -qO- "$_boardurl" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1); then
fi
# 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"
fi
@@ -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
# if ! CNT=$(buildah from debian:$_base); then
# echo "Bad base image for container $CNAME, skipping"
# continue
# fi
# # Eventually try to switch to Debian
# # if ! CNT=$(buildah from debian:$_base); then
# # echo "Bad base image for container $CNAME, skipping"
# # continue
# # fi
if ! CNT=$(buildah from jlesage/baseimage-gui:debian-10-v3.5.7); then
echo "Bad base image for container $CNAME, skipping"
continue
fi
# if ! CNT=$(buildah from jlesage/baseimage-gui:debian-10-v3.5.7); then
# echo "Bad base image for container $CNAME, skipping"
# continue
# 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
# JRIVER_RELEASE=28
# JRIVER_TAG=stable
# ARCH=amd64
# REBUILD_MIN=22
# REBUILD_MAX=120
# # #BASEIMAGE=jlesage/baseimage-gui:debian-10-v3.5.7
# # JRIVER_RELEASE=28
# # JRIVER_TAG=stable
# # ARCH=amd64
# # REBUILD_MIN=22
# # REBUILD_MAX=120
# # JRiver Version tag (latest, stable or beta)
# ARG jriver_tag
# # # JRiver Version tag (latest, stable or beta)
# # ARG jriver_tag
# # JRiver Release Version (25, 26 etc.)
# ARG jriver_release
# # # JRiver Release Version (25, 26 etc.)
# # ARG jriver_release
# # Image Version of the build
# ARG image_version
# # # Image Version of the build
# # ARG image_version
# # .deb download URL, if set to "repository" the JRiver repository will be used
# ARG deb_url
# # # .deb download URL, if set to "repository" the JRiver repository will be used
# # 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
RUN \
add-pkg --virtual build-dependencies wget && \
# Install from Repository
if [ "${deb_url}" = "repository" ]; then \
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 http://dist.jriver.com/${jriver_tag}/mediacenter/mediacenter${jriver_release}.list -O /etc/apt/sources.list.d/mediacenter${jriver_release}.list && \
apt-get update && \
add-pkg mediacenter${jriver_release}; \
# Install from .deb URL
else \
echo "Installing JRiver from URL: ${deb_url}" && \
wget -q -O "jrivermc.deb" ${deb_url} && \
add-pkg "./jrivermc.deb"; \
fi && \
# Cleanup
del-pkg build-dependencies && \
rm -rf /tmp/* /tmp/.[!.]*
# # Install JRiver
# RUN \
# add-pkg --virtual build-dependencies wget && \
# # Install from Repository
# if [ "${deb_url}" = "repository" ]; then \
# 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 http://dist.jriver.com/${jriver_tag}/mediacenter/mediacenter${jriver_release}.list -O /etc/apt/sources.list.d/mediacenter${jriver_release}.list && \
# apt-get update && \
# add-pkg mediacenter${jriver_release}; \
# # Install from .deb URL
# else \
# echo "Installing JRiver from URL: ${deb_url}" && \
# wget -q -O "jrivermc.deb" ${deb_url} && \
# add-pkg "./jrivermc.deb"; \
# fi && \
# # Cleanup
# del-pkg build-dependencies && \
# rm -rf /tmp/* /tmp/.[!.]*
# Add rootfs
COPY rootfs/ /
# # Add rootfs
# COPY rootfs/ /
VOLUME ["/config"]
# VOLUME ["/config"]
# Application Icon
RUN \
APP_ICON_URL=https://gitlab.com/shiomax/jrivermc-docker/raw/master/assets/Application.png && \
install_app_icon.sh "$APP_ICON_URL"
# # Application Icon
# RUN \
# APP_ICON_URL=https://gitlab.com/shiomax/jrivermc-docker/raw/master/assets/Application.png && \
# install_app_icon.sh "$APP_ICON_URL"
# Various configuration vars
ENV KEEP_APP_RUNNING=1 \
DISPLAY_WIDTH=1280 \
DISPLAY_HEIGHT=768 \
APP_NAME="JRiver MediaCenter ${jriver_release}" \
MAXIMIZE_POPUPS=0 \
S6_KILL_GRACETIME=8000
# # Various configuration vars
# ENV KEEP_APP_RUNNING=1 \
# DISPLAY_WIDTH=1280 \
# DISPLAY_HEIGHT=768 \
# APP_NAME="JRiver MediaCenter ${jriver_release}" \
# MAXIMIZE_POPUPS=0 \
# S6_KILL_GRACETIME=8000
# Modify startapp.sh and rc.xml with JRiver version
RUN sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
/startapp.sh && \
sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
/etc/xdg/openbox/rc.xml
# # Modify startapp.sh and rc.xml with JRiver version
# RUN sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
# /startapp.sh && \
# sed-patch s/%%MC_VERSION%%/${jriver_release}/g \
# /etc/xdg/openbox/rc.xml
EXPOSE 5800 5900 52100 52101 52199 1900/udp
# EXPOSE 5800 5900 52100 52101 52199 1900/udp
# Metadata.
LABEL \
org.label-schema.name="jrivermc${jriver_release}" \
org.label-schema.description="Docker image for JRiver Media Center ${jriver_release}." \
org.label-schema.version="${image_version}" \
org.label-schema.vcs-url="https://gitlab.com/shiomax/jrivermc-docker" \
org.label-schema.schema-version="1.0"
# # Metadata.
# LABEL \
# org.label-schema.name="jrivermc${jriver_release}" \
# org.label-schema.description="Docker image for JRiver Media Center ${jriver_release}." \
# org.label-schema.version="${image_version}" \
# org.label-schema.vcs-url="https://gitlab.com/shiomax/jrivermc-docker" \
# org.label-schema.schema-version="1.0"
# installPackage buildah podman
# cnt=$(buildah from docker.io/jlesage/baseimage-gui:debian-10)
@@ -1464,7 +1468,7 @@ main() {
# Install RPM
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"
else
err "JRiver Media Center installation failed"