From 505121d3680d8b4f680ef3eaa0392125a1340f82 Mon Sep 17 00:00:00 2001 From: Phil Olynyk Date: Wed, 26 Feb 2020 11:01:54 -0500 Subject: [PATCH] New packaging scripts - needs README --- Building/Linux/OSCAR-test.desktop | 13 +++ Building/Linux/OSCAR-test.png | Bin 0 -> 3368 bytes Building/Linux/OSCAR-test.svg | 63 +++++++++++ Building/Linux/OSCAR.desktop | 8 +- Building/Linux/OSCAR.png | Bin 5374 -> 3368 bytes Building/Linux/OSCAR.svg | 63 +++++++++++ Building/Linux/clean_rm-test.sh | 34 ++++++ Building/Linux/clean_rm.sh | 19 ++++ Building/Linux/ln_usrbin-test.sh | 67 ++++++++++++ Building/Linux/ln_usrbin.sh | 70 ++++++++++++ Building/Linux/mkDebian9.sh | 172 +++++++++++++++++++++++------- Building/Linux/mkRedHat.sh | 118 ++++++++++++++++++++ Building/Linux/mkUbuntu.sh | 153 ++++++++++++++++++++++++++ Building/Linux/rm_usrbin-test.sh | 42 ++++++++ Building/Linux/rm_usrbin.sh | 95 +++++++++++++++++ Building/Linux/tst_user.sh | 10 ++ 16 files changed, 888 insertions(+), 39 deletions(-) create mode 100644 Building/Linux/OSCAR-test.desktop create mode 100644 Building/Linux/OSCAR-test.png create mode 100644 Building/Linux/OSCAR-test.svg create mode 100644 Building/Linux/OSCAR.svg create mode 100755 Building/Linux/clean_rm-test.sh create mode 100755 Building/Linux/clean_rm.sh create mode 100755 Building/Linux/ln_usrbin-test.sh create mode 100755 Building/Linux/ln_usrbin.sh create mode 100755 Building/Linux/mkRedHat.sh create mode 100755 Building/Linux/mkUbuntu.sh create mode 100755 Building/Linux/rm_usrbin-test.sh create mode 100755 Building/Linux/rm_usrbin.sh create mode 100755 Building/Linux/tst_user.sh diff --git a/Building/Linux/OSCAR-test.desktop b/Building/Linux/OSCAR-test.desktop new file mode 100644 index 00000000..46d2045e --- /dev/null +++ b/Building/Linux/OSCAR-test.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Version=1.1 +Name=OSCAR-test +GenericName=CPAP Reporter +TryExec=OSCAR-test +Exec=OSCAR-test +Terminal=false +Icon=/usr/share/icons/hicolor/48x48/apps/OSCAR-test.png +Type=Application +Categories=Science;Education; +StartupNotify=true +X-GNOME-UsesNotifications=true +Name[en_CA]=OSCAR-test diff --git a/Building/Linux/OSCAR-test.png b/Building/Linux/OSCAR-test.png new file mode 100644 index 0000000000000000000000000000000000000000..24d19b91821add535c1372d634af12b81700bbb8 GIT binary patch literal 3368 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 + + + + + + + image/svg+xml + + + + + + + + + diff --git a/Building/Linux/OSCAR.desktop b/Building/Linux/OSCAR.desktop index 31d08ce8..f4c67ee0 100755 --- a/Building/Linux/OSCAR.desktop +++ b/Building/Linux/OSCAR.desktop @@ -5,7 +5,11 @@ GenericName=CPAP Reporter TryExec=OSCAR Exec=OSCAR Terminal=false -Icon=/opt/OSCAR/OSCAR.png +Icon=/usr/share/icons/hicolor/48x48/apps/OSCAR.png Type=Application -Categories=Education,Science,MedicalSoftware +Categories=Education;Science; +StartupNotify=true +X-GNOME-UsesNotifications=true +Name[en_CA]=OSCAR-test + diff --git a/Building/Linux/OSCAR.png b/Building/Linux/OSCAR.png index b992e0ebe5e3632f7725a4295c16836c04b1f68e..24d19b91821add535c1372d634af12b81700bbb8 100644 GIT binary patch delta 3338 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 + + + + + + + image/svg+xml + + + + + + + + + diff --git a/Building/Linux/clean_rm-test.sh b/Building/Linux/clean_rm-test.sh new file mode 100755 index 00000000..f8f6002e --- /dev/null +++ b/Building/Linux/clean_rm-test.sh @@ -0,0 +1,34 @@ +#! /bin/bash +set -e + +#we need to rm files that have been copied via script +rep="/usr/share/icons/OSCAR_beta" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/local/share/icons/OSCAR-test" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/share/doc/OSCAR_beta" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/local/share/doc/OSCAR-test" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/share/OSCAR_beta" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/local/share/OSCAR-test" +if [ -d "$rep" ]; then + rm -r $rep +fi + diff --git a/Building/Linux/clean_rm.sh b/Building/Linux/clean_rm.sh new file mode 100755 index 00000000..50db903d --- /dev/null +++ b/Building/Linux/clean_rm.sh @@ -0,0 +1,19 @@ +#! /bin/bash +set -e + +#we need to rm files that have been copied via script +rep="/usr/share/icons/OSCAR" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/share/doc/OSCAR" +if [ -d "$rep" ]; then + rm -r $rep +fi + +rep="/usr/share/OSCAR" +if [ -d "$rep" ]; then + rm -r $rep +fi + diff --git a/Building/Linux/ln_usrbin-test.sh b/Building/Linux/ln_usrbin-test.sh new file mode 100755 index 00000000..2f522f17 --- /dev/null +++ b/Building/Linux/ln_usrbin-test.sh @@ -0,0 +1,67 @@ +#! /bin/bash +set -e +# +# modify by untoutseul05 to search local name for Desktop Folder +# the package now suits the fhs + +# application name +appli_name="OSCAR-test" + +# binary copy flag +copy_flag=0 + +# Select the binary file for the goog version of QT (5.7 ou 5.9) +#echo "test the version of qt5 core version" + +if [ -f "/etc/redhat-release" ]; then + # pour mageia (red hat) + echo "distribution : mageia (red hat)" + Qt5_core=$(yum search -q qt5core5 | awk '{print $1}' | grep lib | sort -u) + MajorVer_no=$(yum info $Qt5_core | grep -i "version" | awk '{print $3}' | awk -F. '{print $1}') + MinorVer_no=$(yum info $Qt5_core | grep -i "version" | awk '{print $3}' | awk -F. '{print $2}') + +elif [ -f "/etc/lsb-release" ] || [ -f "/etc/debian_version" ]; then + # pour debian +# echo "distribution : debian" + Qt5_core=$(dpkg -l | awk '{print $2}'| grep qt5 | grep core | awk -F: '{print $1}') + Major_ver=$(dpkg -l | grep $Qt5_core | awk '{print $3}' | awk -F. '{print $1}') + Minor_ver=$(dpkg -l | grep $Qt5_core | awk '{print $3}' | awk -F. '{print $2}') +else + echo "unknown distribution " + exit +fi + +#echo "Qt5_core = '$Qt5_core'" +#echo "Major_ver = $Major_ver" +#echo "Minor_ver = $Minor_ver" + +if [ -x /usr/bin/update-menus ]; then update-menus; fi + +if [ ! -z "$SUDO_USER" ]; then + # find real name of the Desktop folder (Bureau for xubuntu french version) + desktop_folder_name="/home/$SUDO_USER/Desktop" + + # si doesn't exist, try to find it translated name + tmp_dir="" + if [ ! -d "$desktop_folder_name" ]; then + tmp_dir=`cat /home/$SUDO_USER/.config/user-dirs.dirs | grep XDG_DESKTOP_DIR | awk -F= '{print $2}' | awk -F\" '{print $2}' | awk -F\/ '{print $2}'` + fi + + # don't overwrite if translated name or doesn't exist + if [ -n "$tmp_dir" ]; then + # calculate the full folder + tmp_dir_full="/home/${SUDO_USER}/${tmp_dir}" + if [ -d "$tmp_dir_full" ]; then + desktop_folder_name=$tmp_dir_full + fi + fi + + # info : /usr/share/applications/${appli_name}.desktop + # copy icon file to the Desktop folder (even if it has been translated) + file_from="/usr/share/applications/${appli_name}.desktop" + file_to="$desktop_folder_name/${appli_name}.desktop" + + cp $file_from $file_to + chown $SUDO_USER:$SUDO_USER $file_to + chmod a+x $file_to +fi diff --git a/Building/Linux/ln_usrbin.sh b/Building/Linux/ln_usrbin.sh new file mode 100755 index 00000000..a8946424 --- /dev/null +++ b/Building/Linux/ln_usrbin.sh @@ -0,0 +1,70 @@ +#! /bin/bash +set -e +# +# modify by untoutseul05 to search local name for Desktop Folder +# the package now suits the fhs + +# application name +appli_name="OSCAR" + +# binary copy flag +copy_flag=0 + +# Select the binary file for the goog version of QT (5.7 ou 5.9) +echo "test the version of qt5 core version" + +if [ -f "/etc/redhat-release" ]; then + # pour mageia (red hat) + echo "distribution : mageia (red hat)" + nom_core=$(yum search -q qt5core5 | awk '{print $1}' | grep lib | sort -u) + no_vermaj=$(yum info $nom_core | grep -i "version" | awk '{print $3}' | awk -F. '{print $1}') + no_vermin=$(yum info $nom_core | grep -i "version" | awk '{print $3}' | awk -F. '{print $2}') + +elif [ -f "/etc/lsb-release" ] || [ -f "/etc/debian_version" ]; then + # pour debian + echo "distribution : debian" + nom_core=$(dpkg -l | awk '{print $2}'| grep qt5 | grep core | awk -F: '{print $1}') + no_vermaj=$(dpkg -l | grep $nom_core | awk '{print $3}' | awk -F. '{print $1}') + no_vermin=$(dpkg -l | grep $nom_core | awk '{print $3}' | awk -F. '{print $2}') +else + echo "unknown distribution " + exit +fi + +echo "QT5_core = '$nom_core'" +echo "Major ver = $no_vermaj" +echo "Minor ver = $no_vermin" + +if [ -x /usr/bin/update-menus ]; then update-menus; fi + +if [ X_$SUDO_USER != "X_" ]; then + # find real name of the Desktop folder (Bureau for xubuntu french version) + desktop_folder_name="/home/$SUDO_USER/Desktop" + + # si doesn't exist, try to find it translated name + tmp_dir="" + if [ ! -d "$desktop_folder_name" ]; then + tmp_dir=`cat /home/$SUDO_USER/.config/user-dirs.dirs | grep XDG_DESKTOP_DIR | awk -F= '{print $2}' | awk -F\" '{print $2}' | awk -F\/ '{print $2}'` + fi + + # don't overwrite if translated name or doesn't exist + if [ -n "$tmp_dir" ]; then + # calculate the full folder + tmp_dir_full="/home/${SUDO_USER}/${tmp_dir}" + if [ -d "$tmp_dir_full" ]; then + desktop_folder_name=$tmp_dir_full + fi + fi + + # info : /usr/share/applications/${appli_name}.desktop + # copy icon file to the Desktop folder (even if it has been translated) + file_from="/usr/share/applications/${appli_name}.desktop" + file_to="$desktop_folder_name/${appli_name}.desktop" + + cp $file_from $file_to + + if [ -f "$file_to" ]; then + chown $SUDO_USER:$SUDO_USER $file_to + chmod a+x $file_to + fi +fi diff --git a/Building/Linux/mkDebian9.sh b/Building/Linux/mkDebian9.sh index a57bab7c..b843168c 100755 --- a/Building/Linux/mkDebian9.sh +++ b/Building/Linux/mkDebian9.sh @@ -1,47 +1,142 @@ #! /bin/bash +# First parameter is version number - (ex: 1.0.0) +# Second parametr is build or release status - (ex: test, beta, or release) +# Third parameter is optional # -# First (optional) parameter is package version (ex: "1") -# -# This generally should start at 1 for each VERSION and increment any time the -# package needs to be updated. -# -# see https://serverfault.com/questions/604541/debian-packages-version-convention -ITERATION=$1 -[[ ${ITERATION} == ""] && ITERATION="1" - -SRC=./OSCAR-code - -VERSION=`awk '/#define VERSION / { gsub(/"/, "", $3); print $3 }' ${SRC}/VERSION -if [[ VERSION == *-* ]]; then - # Use ~ for prerelease information so that it sorts correctly compared to release - # versions. See https://www.debian.org/doc/debian-policy/ch-controlfields.html#version - IFS="-" read -r VERSION PRERELEASE <<< ${VERSION} - VERSION="${VERSION}~${PRERELEASE}" +if [ -z "$1" ]; then + echo "1st parameter must be the version number (x.y.z)" + exit fi -GIT_REVISION=`awk '/#define GIT_REVISION / { gsub(/"/, "", $3); print $3 }' ${SRC}/git_info.h` -rm -r tempDir -mkdir tempDir -cp build/oscar/OSCAR tempDir -cp -r build/oscar/Help tempDir -cp -r build/oscar/Html tempDir -cp -r build/oscar/Translations tempDir -cp OSCAR.png tempDir -cp OSCAR.desktop tempDir -#cp OSCAR-code/migration.sh tempDir -# +if [ "$2" != "test" ] && [ "$2" != "beta" ] && [ "$2" != "release" ]; then + echo "2nd parameter must be 'test' or 'beta' or 'release'." + exit +fi + +# application name +appli_name="OSCAR" +pre_inst="tst_user.sh" +post_inst="ln_usrbin.sh" +pre_rem="rm_usrbin.sh" +post_rem="clean_rm.sh" +iter="" +# build folder (absolute path is better) +build_folder="/home/$USER/OSCAR/build" +if [ "$2" != "release" ]; then + appli_name=${appli_name}-test + post_inst="ln_usrbin-test.sh" + pre_rem="rm_usrbin-test.sh" + post_rem="clean_rm-test.sh" + iter="$2" +fi +if [ -n "$3" ]; then + iter="$iter"~"$3" +fi + +# temporary folder (absolute path is better) +temp_folder="/home/$USER/tmp_deb_${appli_name}/" + +# destination folder in the .deb file +dest_folder="/usr/" + +# the .deb file mustn't exist (or fpm must have -f parameter to force the creation) +archi_tmp=$(lscpu | grep -i architecture | awk -F: {'print $2'} | tr -d " ") +if [ "$archi_tmp" = "x86_64" ];then + archi="amd64" +else + archi="unknown" +fi +deb_file="${appli_name}_$1-$2_$archi.deb" + +# if deb file exists, fatal error +if [ -f "./$deb_file" ]; then + echo "destination file (./$deb_file) exists. fatal error" + exit +fi + +# clean folders need to create the package +if [ -d "${temp_folder}" ]; then + rm -r ${temp_folder} +fi +mkdir ${temp_folder} +if [ ! -d "${temp_folder}" ]; then + echo "Folder (${temp_folder}) not created : fatal error." + exit +fi +chmod 0755 ${temp_folder} +# save current value of umask (for u=g and not g=o) +current_value=$(umask) +umask 022 +mkdir ${temp_folder}/bin +mkdir ${temp_folder}/share +mkdir ${temp_folder}/share/${appli_name} +mkdir ${temp_folder}/share/doc +share_doc_folder="${temp_folder}/share/doc/${appli_name}" +mkdir ${share_doc_folder} +mkdir ${temp_folder}/share/icons +mkdir ${temp_folder}/share/icons/hicolor +mkdir ${temp_folder}/share/icons/hicolor/48x48 +mkdir ${temp_folder}/share/icons/hicolor/48x48/apps +mkdir ${temp_folder}/share/icons/hicolor/scalable +mkdir ${temp_folder}/share/icons/hicolor/scalable/apps +mkdir ${temp_folder}/share/applications + +# must delete debug symbol in OSCAR binary file +# --- V1 +strip -s -o ${temp_folder}/bin/${appli_name} ${build_folder}/oscar/OSCAR +#old code : cp ${build_folder}/oscar/OSCAR ${temp_folder}/bin + +# 2>/dev/null : errors does not appear : we don't care about them +cp -r ${build_folder}/oscar/Help ${temp_folder}/share/${appli_name} 2>/dev/null +cp -r ${build_folder}/oscar/Html ${temp_folder}/share/${appli_name} 2>/dev/null +cp -r ${build_folder}/oscar/Translations ${temp_folder}/share/${appli_name} 2>/dev/null +cp ./${appli_name}.png ${temp_folder}/share/icons/hicolor/48x48/apps/${appli_name}.png +cp ./${appli_name}.svg ${temp_folder}/share/icons/hicolor/scalable/apps/${appli_name}.svg +cp ./${appli_name}.desktop ${temp_folder}/share/applications/${appli_name}.desktop + +echo "Copyright 2019 nightowlsoftware.ca " > $share_doc_folder/copyright + +changelog_file="$share_doc_folder/changelog" + +#automatic changelog as a bad name +# need to generate one and say fpm to use it instead of create one +# it seems that it needs both of them... + +# creation of the changelog.Debian.gz +echo "$appli_name ($1-$2) whatever; urgency=medium" > $changelog_file +echo "" >> $changelog_file +echo " * Package created with FPM." >> $changelog_file +echo "" >> $changelog_file +echo " -- nightowlsoftware.ca " >> $changelog_file +# -- Sat, 03 Aug 2019 15:22:22 +0200 +gzip --best $changelog_file +description='Open Source CPAP Analysis Reporter\n' +# trick for dummies : need to use echo -e to take care of \n (cariage return to slip description and extra one +description=$(echo -e $description) + +# restore umask value +umask $current_value + +# create the .deb file (litian test show juste a warning with a man that doesn't exists : don't care about that) fpm --input-type dir --output-type deb \ - --prefix /opt \ - --after-install ln_usrlocalbin.sh \ - --before-remove rm_usrlocalbin.sh \ - --name oscar --version ${VERSION} --iteration ${ITERATION} \ - --category Other \ - --maintainer oscar@nightowlsoftwre.ca \ + --prefix ${dest_folder} \ + --before-install ${pre_inst} \ + --after-install ${post_inst} \ + --before-remove ${pre_rem} \ + --after-remove ${post_rem} \ + --name ${appli_name} --version $1 --iteration $iter \ + --category misc \ + --deb-priority optional \ + --maintainer " -- nightowlsoftware.ca " \ --license GPL-v3 \ --vendor nightowlsoftware.ca \ - --description "Open Sourece CPAP Analysis Reporter" \ + --description "$description" \ --url https://sleepfiles.com/OSCAR \ + --deb-no-default-config-files \ + --depends libdouble-conversion1 \ + --depends libpcre16-3 \ + --depends qttranslations5-l10n \ --depends 'libqt5core5a > 5.7.0' \ --depends libqt5serialport5 \ --depends libqt5xml5 \ @@ -52,5 +147,8 @@ fpm --input-type dir --output-type deb \ --depends libqt5printsupport5 \ --depends libglu1-mesa \ --depends libgl1 \ - --deb-no-default-config-files \ - tempDir + --depends libc6 \ + --no-deb-generate-changes \ + -C ${temp_folder} \ + . + diff --git a/Building/Linux/mkRedHat.sh b/Building/Linux/mkRedHat.sh new file mode 100755 index 00000000..b53a1d60 --- /dev/null +++ b/Building/Linux/mkRedHat.sh @@ -0,0 +1,118 @@ +#! /bin/bash +# First parameter is version number - (ex: 1.0.0) +# Second parametr is build or release status - (ex: beta or release) +# + +# application name +appli_name="OSCAR" +# build folder (absolute path is better) +build_folder="/home/$USER/OSCAR/build" +# temporary folder (absolute path is better) +temp_folder="/home/$USER/tmp_RH_${appli_name}/" +chmod 775 $temp_folder + +# destination folder in the .rpm file +dest_folder="/usr/" + +if [ -z "$1" ]; then + echo "1st parameter must be the version number (x.y.z)" + exit +fi + +if [ "$2" != "beta" ] && [ "$2" != "release" ]; then + echo "2nd parameter must 'beta' or 'release'." + exit +fi + +# the .rpm file mustn't exist (or fpm must have -f parameter to force the creation) +archi=$(lscpu | grep -i architecture | awk -F: {'print $2'} | tr -d " ") +rpm_file="${appli_name}-$1-$2.$archi.rpm" + +# if rpm file exists, fatal error +if [ -f "./$rpm_file" ]; then + echo "destination file (./$rpm_file) exists. fatal error" + exit +fi + +# clean folders need to create the package +if [ -d "${temp_folder}" ]; then + rm -r ${temp_folder} +fi +mkdir ${temp_folder} +if [ ! -d "${temp_folder}" ]; then + echo "Folder (${temp_folder}) not created : fatal error." + exit +fi +chmod 0755 ${temp_folder} +# save current value of umask (for u=g and not g=o) +current_value=$(umask) +umask 022 +mkdir ${temp_folder}/bin +mkdir ${temp_folder}/share +mkdir ${temp_folder}/share/${appli_name} +mkdir ${temp_folder}/share/doc +share_doc_folder="${temp_folder}/share/doc/${appli_name}" +mkdir ${share_doc_folder} +mkdir ${temp_folder}/share/icons +mkdir ${temp_folder}/share/icons/${appli_name} +mkdir ${temp_folder}/share/applications + +# must delete debug symbol in OSCAR binary file +# -- V1 : +strip -s -o ${temp_folder}/bin/${appli_name} ${build_folder}/oscar/OSCAR +#old code : cp ${build_folder}/oscar/OSCAR ${temp_folder}/bin + +# for QT5.7 +# strip -s -o ${temp_folder}/bin/oscar.qt5.7 ./oscar.qt5.7 +# for QT5.9 +# strip -s -o ${temp_folder}/bin/oscar.qt5.9 ./oscar.qt5.9 + +# 2>/dev/null : errors does not appear : we don't care about them +cp -r ${build_folder}/oscar/Help ${temp_folder}/share/${appli_name} 2>/dev/null +cp -r ${build_folder}/oscar/Html ${temp_folder}/share/${appli_name} 2>/dev/null +cp -r ${build_folder}/oscar/Translations ${temp_folder}/share/${appli_name} 2>/dev/null +cp ./OSCAR.png ${temp_folder}/share/icons/${appli_name}/${appli_name}.png +cp ./OSCAR.desktop ${temp_folder}/share/applications/${appli_name}.desktop + +echo "Copyright 2019 nightowlsoftware.ca " > $share_doc_folder/copyright + +changelog_file="$share_doc_folder/changelog" + +#automatic changelog as a bad name +# need to generate one and say fpm to use it instead of create one +# it seems that it needs both of them... + +# creation of the changelog.Debian.gz (for rpm package ? ) +echo "$appli_name ($1-$2) whatever; urgency=medium" > $changelog_file +echo "" >> $changelog_file +echo " * Package created with FPM." >> $changelog_file +echo "" >> $changelog_file +echo " -- nightowlsoftware.ca " >> $changelog_file +# -- Sat, 03 Aug 2019 15:22:22 +0200 +gzip --best $changelog_file + +description='Open Source CPAP Analysis Reporter\n' +# trick for dummies : need to use echo -e to take care of \n (cariage return to slip description and extra one +description=$(echo -e $description) + +# restore umask value +umask $current_value + +# create the .rpm file (litian test show juste a warning with a man that doesn't exists : don't care about that) +# pour 32bit : i686 au lieu de x86_64 +fpm --input-type dir --output-type rpm \ + --prefix ${dest_folder} \ + --after-install ln_usrbin.sh \ + --before-remove rm_usrbin.sh \ + --after-remove clean_rm.sh \ + --name ${appli_name} --version $1 --iteration $2 \ + --category misc \ + --maintainer " -- nightowlsoftware.ca " \ + --license GPL-v3 \ + --vendor nightowlsoftware.ca \ + --description "$description" \ + --url https://sleepfiles.com/OSCAR \ + -C ${temp_folder} \ + . + + diff --git a/Building/Linux/mkUbuntu.sh b/Building/Linux/mkUbuntu.sh new file mode 100755 index 00000000..df6558bd --- /dev/null +++ b/Building/Linux/mkUbuntu.sh @@ -0,0 +1,153 @@ +#! /bin/bash +# First parameter is version number - (ex: 1.0.0) +# Second parametr is build or release status - (ex: test, beta, or release) +# Third parameter is optional +# + +if [ -z "$1" ]; then + echo "1st parameter must be the version number (x.y.z)" + exit +fi + +if [ "$2" != "test" ] && [ "$2" != "beta" ] && [ "$2" != "release" ]; then + echo "2nd parameter must be 'test' or 'beta' or 'release'." + exit +fi + +# application name +appli_name="OSCAR" +pre_inst="tst_user.sh" +post_inst="ln_usrbin.sh" +pre_rem="rm_usrbin.sh" +post_rem="clean_rm.sh" +iter="" +# build folder (absolute path is better) +build_folder="/home/$USER/OSCAR/build" +if [ "$2" != "release" ]; then + appli_name=${appli_name}-test + post_inst="ln_usrbin-test.sh" + pre_rem="rm_usrbin-test.sh" + post_rem="clean_rm-test.sh" + iter="$2" +fi +if [ -n "$3" ]; then + iter="$iter"~"$3" +fi +# temporary folder (absolute path is better) +temp_folder="/home/$USER/tmp_Ubu_${appli_name}/" + +# destination folder in the .deb file +dest_folder="/usr/" + +# the .deb file mustn't exist (or fpm must have -f parameter to force the creation) +archi_tmp=$(lscpu | grep -i architecture | awk -F: {'print $2'} | tr -d " ") +if [ "$archi_tmp" = "x86_64" ];then + archi="amd64" +else + archi="unknown" +fi +deb_file="${appli_name}_$1-$2_$archi.deb" + +# if deb file exists, fatal error +if [ -f "./$deb_file" ]; then + echo "destination file (./$deb_file) exists. fatal error" + exit +fi + +# clean folders need to create the package +if [ -d "${temp_folder}" ]; then + rm -r ${temp_folder} +fi +mkdir ${temp_folder} +if [ ! -d "${temp_folder}" ]; then + echo "Folder (${temp_folder}) not created : fatal error." + exit +fi +chmod 0755 ${temp_folder} +# save current value of umask (for u=g and not g=o) +current_value=$(umask) +umask 022 +mkdir ${temp_folder}/bin +mkdir ${temp_folder}/share +mkdir ${temp_folder}/share/${appli_name} +mkdir ${temp_folder}/share/doc +share_doc_folder="${temp_folder}/share/doc/${appli_name}" +mkdir ${share_doc_folder} +mkdir ${temp_folder}/share/icons +mkdir ${temp_folder}/share/icons/hicolor +mkdir ${temp_folder}/share/icons/hicolor/48x48 +mkdir ${temp_folder}/share/icons/hicolor/48x48/apps +mkdir ${temp_folder}/share/icons/hicolor/scalable +mkdir ${temp_folder}/share/icons/hicolor/scalable/apps +mkdir ${temp_folder}/share/applications + +# must delete debug symbol in OSCAR binary file +# --- V1 +strip -s -o ${temp_folder}/bin/${appli_name} ${build_folder}/oscar/OSCAR +#old code : cp ${build_folder}/oscar/OSCAR ${temp_folder}/bin + +# 2>/dev/null : errors does not appear : we don't care about them +cp -r ${build_folder}/oscar/Help ${temp_folder}/share/${appli_name} 2>/dev/null +cp -r ${build_folder}/oscar/Html ${temp_folder}/share/${appli_name} 2>/dev/null +cp -r ${build_folder}/oscar/Translations ${temp_folder}/share/${appli_name} 2>/dev/null +cp ./${appli_name}.png ${temp_folder}/share/icons/hicolor/48x48/apps/${appli_name}.png +cp ./${appli_name}.svg ${temp_folder}/share/icons/hicolor/scalable/apps/${appli_name}.svg +cp ./${appli_name}.desktop ${temp_folder}/share/applications/${appli_name}.desktop + +echo "Copyright 2019 nightowlsoftware.ca " > $share_doc_folder/copyright + +changelog_file="$share_doc_folder/changelog" + +#automatic changelog as a bad name +# need to generate one and say fpm to use it instead of create one +# it seems that it needs both of them... + +# creation of the changelog.Debian.gz +echo "$appli_name ($1-$2) whatever; urgency=medium" > $changelog_file +echo "" >> $changelog_file +echo " * Package created with FPM." >> $changelog_file +echo "" >> $changelog_file +echo " -- nightowlsoftware.ca " >> $changelog_file +# -- Sat, 03 Aug 2019 15:22:22 +0200 +gzip --best $changelog_file +description='Open Source CPAP Analysis Reporter\n' +# trick for dummies : need to use echo -e to take care of \n (cariage return to slip description and extra one +description=$(echo -e $description) + +# restore umask value +umask $current_value + +# create the .deb file (litian test show juste a warning with a man that doesn't exists : don't care about that) +fpm --input-type dir --output-type deb \ + --prefix ${dest_folder} \ + --before-install ${pre_inst} \ + --after-install ${post_inst} \ + --before-remove ${pre_rem} \ + --after-remove ${post_rem} \ + --name ${appli_name} --version $1 --iteration $iter \ + --category misc \ + --deb-priority optional \ + --maintainer " -- nightowlsoftware.ca " \ + --license GPL-v3 \ + --vendor nightowlsoftware.ca \ + --description "$description" \ + --url https://sleepfiles.com/OSCAR \ + --deb-no-default-config-files \ + --depends libdouble-conversion1 \ + --depends libpcre16-3 \ + --depends qttranslations5-l10n \ + --depends 'libqt5core5a > 5.9.0' \ + --depends libqt5serialport5 \ + --depends libqt5xml5 \ + --depends libqt5network5 \ + --depends libqt5gui5 \ + --depends libqt5widgets5 \ + --depends libqt5opengl5 \ + --depends libqt5printsupport5 \ + --depends libglu1-mesa \ + --depends libgl1 \ + --depends libc6 \ + --no-deb-generate-changes \ + -C ${temp_folder} \ + . + diff --git a/Building/Linux/rm_usrbin-test.sh b/Building/Linux/rm_usrbin-test.sh new file mode 100755 index 00000000..4bc6f24a --- /dev/null +++ b/Building/Linux/rm_usrbin-test.sh @@ -0,0 +1,42 @@ +#! /bin/bash +# +# no error is permitted +set -e + +# application name +appli_name="OSCAR-test" + +if [ ! -z "$SUDO_USER" ]; then + # find real name of the Desktop folder (Bureau for xubuntu french version) + desktop_folder_name="/home/$SUDO_USER/Desktop" + + # si doesn't exist, try to find it translated name + tmp_dir="" + if [ ! -d "$desktop_folder_name" ]; then + tmp_dir=`cat /home/$SUDO_USER/.config/user-dirs.dirs | grep XDG_DESKTOP_DIR | awk -F= '{print $2}' | awk -F\" '{print $2}' | awk -F\/ '{print $2}'` + fi + + # don't overwrite if tmp_dir empty or doesn't exist + if [ -n "$tmp_dir" ]; then + # calculate the full folder + tmp_dir_full="/home/${SUDO_USER}/${tmp_dir}" + if [ -d "$tmp_dir_full" ]; then + desktop_folder_name=$tmp_dir_full + fi + fi + + file="$desktop_folder_name/${appli_name}.desktop" + if [ -f "$file" ]; then + rm $file + fi +fi + +# clean the destination folder +file="/usr/local/bin/${appli_name}" +if [ -f "$file" ]; then + rm $file +fi + +if [ -x /usr/bin/update-menus ]; then update-menus; fi + + diff --git a/Building/Linux/rm_usrbin.sh b/Building/Linux/rm_usrbin.sh new file mode 100755 index 00000000..cbaaae73 --- /dev/null +++ b/Building/Linux/rm_usrbin.sh @@ -0,0 +1,95 @@ +#! /bin/bash +# +# no error is permitted +set -e + +# application name +appli_name="OSCAR" + +if [ X_$SUDO_USER != "X_" ]; then + # find real name of the Desktop folder (Bureau for xubuntu french version) + desktop_folder_name="/home/$SUDO_USER/Desktop" + + # si doesn't exist, try to find it translated name + tmp_dir="" + if [ ! -d "$desktop_folder_name" ]; then + tmp_dir=`cat /home/$SUDO_USER/.config/user-dirs.dirs | grep XDG_DESKTOP_DIR | awk -F= '{print $2}' | awk -F\" '{print $2}' | awk -F\/ '{print $2}'` + fi + + # don't overwrite if tmp_dir empty or doesn't exist + if [ -n "$tmp_dir" ]; then + # calculate the full folder + tmp_dir_full="/home/${SUDO_USER}/${tmp_dir}" + if [ -d "$tmp_dir_full" ]; then + desktop_folder_name=$tmp_dir_full + fi + fi + + file="$desktop_folder_name/${appli_name}.desktop" + if [ -f "$file" ]; then + rm $file + fi +fi + +# clean destination folders (bin + shortcut) + move from /opt/OSCAR (if exists) + +if [ -d "/opt/OSCAR" ]; then + # --- old folder exists : move files to the new folder --- + # Help folder + folder_from="/opt/OSCAR/Help" + folder_to="/usr/share/${appli_name}" + if [ -d "$folder_from" ]; then + mkdir -p $folder_to + mv $folder_from $folder_to + fi + # Html folder + folder_from="/opt/OSCAR/Html" + folder_to="/usr/share/${appli_name}" + if [ -d "$folder_from" ]; then + mkdir -p $folder_to + mv $folder_from $folder_to + fi + # Translations folder + folder_from="/opt/OSCAR/Translations" + folder_to="/usr/share/${appli_name}" + if [ -d "$folder_from" ]; then + mkdir -p $folder_to + mv $folder_from $folder_to + fi + # icon file : OSCAR.png + file="/opt/OSCAR/OSCAR.png" + folder_to="/usr/share/icons/${appli_name}" + if [ -f "$file" ]; then + mkdir -p $folder_to + mv $file ${folder_to}/${appli_name}.png + fi + # shortcut file : OSCAR.desktop + file="/opt/OSCAR/OSCAR.desktop" + folder_to="/usr/share/applications/${appli_name}" + if [ -f "$file" ]; then + mkdir -p $folder_to + mv $file ${folder_to}/${appli_name}.desktop + fi + + # what is the purpose of saving the binary file ? + # binary file : OSCAR (in /tmp + minimize the name [oscar instead of OSCAR]) + #file="/opt/OSCAR/OSCAR" + #folder_to="/tmp/${appli_name}" + #if [ -f "$file" ]; then + # mkdir -p $folder_to + # mv $file ${folder_to}/${appli_name} + #fi + + # folder /opt can be deleted + rm -R /opt/OSCAR +fi + +# clean the destination folder +file="/usr/bin/${appli_name}" +if [ -f "$file" ]; then + rm $file +fi + +if [ -x /usr/bin/update-menus ]; then update-menus; fi + + diff --git a/Building/Linux/tst_user.sh b/Building/Linux/tst_user.sh new file mode 100755 index 00000000..85a47110 --- /dev/null +++ b/Building/Linux/tst_user.sh @@ -0,0 +1,10 @@ +#! /bin/bash +#set -e +# +#test USER (must be root) vs SUDO_USER (must be other than root but not empty) +#if [ "$USER" != "root" ] || [ "$SUDO_USER" = "root" ] || [ -z "$SUDO_USER" ]; then +# echo "dpkg -i must be launched as normal user with sudo command. fatal error" +# exit +#fi +# do nothing +