Przeglądaj źródła

Update ssl cert symlinks and update for MC26

bryan 5 lat temu
rodzic
commit
fe56d180d2
1 zmienionych plików z 33 dodań i 19 usunięć
  1. 33 19
      install_MC_fedora.sh

+ 33 - 19
install_MC_fedora.sh

@@ -8,7 +8,7 @@ shopt -s extglob
 # Beta team members can add the beta password to autoamtically check for beta versions
 
 # URL for latest MC for Linux board (for automatic version scraping)
-boardurl="https://yabb.jriver.com/interact/index.php/board,62.0.html"
+boardurl="https://yabb.jriver.com/interact/index.php/board,64.0.html"
 
 ##########################
 ####### FUNCTIONS ########
@@ -48,8 +48,9 @@ parse_input_and_version () {
 
     # If version number not supplied by user, scrape Interact
     [ -z "$version" ] && version=$(curl -s "$boardurl" | grep -o "2[0-9]\.[0-9]\.[0-9]\+" | head -n 1)
+    # If no version number is found wait for input for 60 seconds before timing out (so the script will run w/o user input)
     [ -z "$version" ] && read -t 60 -p "Version number cannot be scraped, re-enter it now manually, otherwise Ctrl-C to exit: " version
-    [ -z "$version" ] && echo "No version number available, exiting..." && exit 0
+    [ -z "$version" ] && echo "No version number available, recheck boardurl, exiting..." && exit 0
 
     # parse version number
     variation=${version##*.}
@@ -62,10 +63,10 @@ find_os () {
     if [ "$build_mode" == false ]; then
         if [ -e /etc/os-release ]; then
             source /etc/os-release
-            if [ "$ID" = "centos" ] && [ "$VERSION_ID" -ge "8" ]; then
-                PM="yum"
-            elif [ "$ID" = "fedora" ]; then
-                PM="dnf"
+            if [ "$ID" == "centos" ] && [ "$VERSION_ID" -ge "8" ]; then
+                ID="centos"
+            elif [ "$ID" == "fedora" ]; then
+                ID="fedora"
             elif [ "$install_mode" == false ]; then
                 echo "You are not running Fedora or CentOS >=8, falling back to build mode..."
                 build_mode=true
@@ -118,10 +119,21 @@ get_source_deb () {
 install_dependencies () {
 
     if [ $build_mode == false ]; then
-        if ! rpm --quiet --query rpmfusion-free-release; then echo "Installing rpmfusion-free-release repo..."; \
-            sudo ${PM} -y --nogpgcheck install https://download1.rpmfusion.org/free/${ID}/rpmfusion-free-release-${VERSION_ID}.noarch.rpm; fi
-        if ! rpm --quiet --query rpm-build; then echo "Installing rpm-build..."; sudo ${PM} install rpm-build -y; fi
-        if ! rpm --quiet --query dpkg; then echo "Installing dpkg..."; sudo ${PM} install dpkg -y; fi
+        if [ "$ID" == "fedora" ]; then
+            if ! rpm --quiet --query rpmfusion-free-release; then echo "Installing rpmfusion-free-release repo..."; \
+            sudo dnf -y --nogpgcheck install https://download1.rpmfusion.org/free/${ID}/rpmfusion-free-release-${VERSION_ID}.noarch.rpm; fi
+            if ! rpm --quiet --query rpm-build; then echo "Installing rpm-build from RPMFusion Free..."; sudo dnf install rpm-build -y; fi
+            if ! rpm --quiet --query dpkg; then echo "Installing dpkg from RPMFusion Free..."; sudo dnf install dpkg -y; fi
+        elif [ "$ID" == "centos" ]; then
+            if ! rpm --quiet --query epel-release; then echo "Installing epel-release repo..."; \
+            sudo dnf -y --nogpgcheck install epel-release; fi
+            if ! rpm --quiet --query rpmfusion-free-release; then echo "Installing rpmfusion-free-release repo..."; \
+            sudo dnf -y --nogpgcheck install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-${VERSION_ID}.noarch.rpm; fi
+            if ! rpm --quiet --query rpm-build; then echo "Installing rpm-build from EPEL..."; sudo dnf install rpm-build -y; fi
+            if ! rpm --quiet --query dpkg; then echo "Installing dpkg from EPEL..."; sudo dnf install dpkg -y; fi
+            if ! rpm --quiet --query rpm-build; then echo "Installing rpm-build from EPEL testing..."; sudo dnf install --enablerepo=epel-testing rpm-build -y; fi
+            if ! rpm --quiet --query dpkg; then echo "Installing dpkg from EPEL testing..."; sudo dnf install --enablerepo=epel-testing dpkg -y; fi
+        fi
     else
         command -v rpmbuild >/dev/null 2>&1 || { echo "Please install rpmbuild, cannot continue, aborting..." >&2; exit 1; }
         command -v dpkg >/dev/null 2>&1 || { echo "Please install dpkg, cannot continue, aborting..." >&2; exit 1; }
@@ -155,10 +167,14 @@ build_rpm () {
     echo 'BuildArch: x86_64' >> SPECS/mediacenter.spec
     echo '' >> SPECS/mediacenter.spec
     echo 'AutoReq:  0' >> SPECS/mediacenter.spec
-    echo 'Requires: libnotify librtmp lame vorbis-tools alsa-lib' >> SPECS/mediacenter.spec
+    if [ $ID != "centos" ]; then
+        echo 'Requires: lame' >> SPECS/mediacenter.spec
+    fi
+    echo 'Requires: libnotify librtmp vorbis-tools alsa-lib' >> SPECS/mediacenter.spec
     echo 'Requires: libX11 libX11-common libxcb libXau libXdmcp libuuid' >> SPECS/mediacenter.spec
-    echo 'Requires: gtk3 mesa-libGL gnutls lame libgomp webkit2gtk3 ca-certificates' >> SPECS/mediacenter.spec
+    echo 'Requires: gtk3 mesa-libGL gnutls libgomp webkit2gtk3 ca-certificates' >> SPECS/mediacenter.spec
     echo 'Requires: gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly gstreamer1-libav' >> SPECS/mediacenter.spec
+    echo 'Requires: nss libgomp xdg-utils' >> SPECS/mediacenter.spec
     echo '' >> SPECS/mediacenter.spec
     echo 'License: Copyright 1998-2019, JRiver, Inc.  All rights reserved.  Protected by U.S. patents #7076468 and #7062468' >> SPECS/mediacenter.spec
     echo 'URL:     http://www.jriver.com/' >> SPECS/mediacenter.spec
@@ -204,7 +220,7 @@ install_rpm () {
     # install rpm
     if [ -f $builddir/RPMS/x86_64/MediaCenter-${mversion}-${variation}.x86_64.rpm ]; then
         echo "Attempting to install version ${version}..."
-        sudo ${PM} install $builddir/RPMS/x86_64/MediaCenter-${mversion}-${variation}.x86_64.rpm -y
+        sudo dnf install $builddir/RPMS/x86_64/MediaCenter-${mversion}-${variation}.x86_64.rpm -y
         if [ $? -eq 0 ]; then
             echo "JRiver Media Center ${version} was installed successfully!"
         else
@@ -230,7 +246,7 @@ gpgcheck=0
 EOF'
 
     echo "Installing latest JRiver Media Center from repo..."
-    sudo ${PM} update && sudo ${PM} install MediaCenter -y
+    sudo dnf update && sudo dnf install MediaCenter -y
     if [ $? -eq 0 ]; then
         echo "JRiver Media Center installed successfully!"
         echo "You can check for future MC updates by running \"sudo dnf|yum update\""
@@ -244,9 +260,9 @@ EOF'
 
 symlink_certs_and_restore () {
 
-    if [ ! -e /etc/ssl/certs/ca-certificates.crt ] && [ -e /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ]; then
-        echo "Symlinking ca-certificates for license registration..."
-        sudo ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/ssl/certs/ca-certificates.crt
+    if [ -e "/usr/lib/jriver/Media Center ${mversion}/ca-certificates.crt" ] && [ -e "/usr/lib/jriver/Media Center ${mversion}/local-ca-certificates.crt" ]; then
+        echo 'Symlinking "/usr/lib/jriver/Media Center ${mversion}/ca-certificates.crt" to "/usr/lib/jriver/Media Center ${mversion}/local-ca-certificates.crt"'
+        sudo ln -sf "/usr/lib/jriver/Media Center ${mversion}/local-ca-certificates.crt" "/usr/lib/jriver/Media Center ${mversion}/ca-certificates.crt"
         read -p "To install your .mjr license, enter the full filepath to your .mjr file, or enter Ctrl-C to skip: " restorefile
         while [ ! -z "$restorefile" ] || [ ! -f "$restorefile" ]; do
             echo "File not found!"
@@ -258,8 +274,6 @@ symlink_certs_and_restore () {
 
 
 
-
-
 ##########################
 ######## EXECUTE #########
 ##########################