# HG changeset patch # User Andre Heinecke # Date 1407344183 -7200 # Node ID 02e35782641757a46dd516f518d4218bb70953e1 # Parent 4efd6378c0014dfaa0fa295a8e2a99861e00c1d1 (issue81) Add desktop file diff -r 4efd6378c001 -r 02e357826417 packaging/linux-createpackage.sh.in --- a/packaging/linux-createpackage.sh.in Wed Aug 06 18:03:23 2014 +0200 +++ b/packaging/linux-createpackage.sh.in Wed Aug 06 18:56:23 2014 +0200 @@ -15,6 +15,7 @@ "@CMAKE_BINARY_DIR@/cinst/mozilla" "@CMAKE_BINARY_DIR@/ui/trustbridge" "@CMAKE_BINARY_DIR@/ui/trustbridge-tray-starter.sh") +ICON="@CMAKE_SOURCE_DIR@/ui/img/logo.png" L10N_DE_FILE="@CMAKE_BINARY_DIR@/packaging/linux-installer.l10n-de" @@ -22,11 +23,13 @@ # shar-archive. echo "Using $TMPDIR for temporary installation to build installer..." install -d "$TMPDIR/bin" +install -d "$TMPDIR/share/pixmaps/trustbridge" install "${EXEFILES[@]}" "$TMPDIR/bin" +install "$ICON" "$TMPDIR/share/pixmaps/trustbridge/trustbridge.png" echo "Creating shar archive ..." cd "$TMPDIR" -shar -z -B bin/* | sed 's/^exit 0//' >>"$TMPSHAR" +shar -z -B bin/* share/pixmaps/trustbridge/trustbridge.png | sed 's/^exit 0//' >>"$TMPSHAR" echo "Building $INSTALLER..." cp "@CMAKE_BINARY_DIR@/packaging/linux-installer.inc" "$INSTALLER" @@ -35,6 +38,7 @@ binnames="`basename $file` $binnames" done sed -i "s/###BINNAMES###/${binnames}/" "$INSTALLER" +sed -i "s/###ICONNAME###/trustbridge.png/" "$INSTALLER" sed -i "/###SHAR###/r $TMPSHAR" "$INSTALLER" sed -i "/###L10N_DE###/r $L10N_DE_FILE" "$INSTALLER" chmod +x "$INSTALLER" diff -r 4efd6378c001 -r 02e357826417 packaging/linux-installer.inc.in --- a/packaging/linux-installer.inc.in Wed Aug 06 18:03:23 2014 +0200 +++ b/packaging/linux-installer.inc.in Wed Aug 06 18:56:23 2014 +0200 @@ -15,6 +15,7 @@ SYSINST=0 DEINSTALL=0 BINNAMES="###BINNAMES###" +ICONNAME="###ICONNAME###" declare -A instcfg oldinstcfg declare inst_default_prefix instdata_path instcfg_path instcfg_file @@ -162,11 +163,13 @@ instcfg_path="${SYSCFGPATH}" instdata_path="${SYSDATAPATH}" autostart_path="$(getent passwd "${SUDO_USER}" | cut -d ':' -f 6)/.config/autostart" + startmenu_path="/usr/share/applications" else inst_default_prefix="$DEFAULT_PREFIX" instcfg_path="${CFGPATH}" instdata_path="${DATAPATH}" autostart_path=${XDG_CONFIG_HOME:-~/.config/autostart} + startmenu_path=${XDG_DATA_HOME:-~/.local/share/applications} fi instcfg_file="${instcfg_path}/${INSTCFGNAME}" } @@ -295,6 +298,9 @@ getxt "Removing TrustBridge from autostart\n" rm_files "${autostart_path}/trustbridge.desktop" + + getxt "Removing TrustBridge from start menu\n" + rm_files "${startmenu_path}/trustbridge.desktop" } deinstall() @@ -311,6 +317,19 @@ rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path" done rm_empty_dirs "$deinstdir" + deinstdir="${oldinstcfg[PREFIX]}/share/pixmaps/trustbridge" + getxt "Deinstalling from '%s'.\n" "${oldinstcfg[PREFIX]}" + for file in $ICONNAME; do + local path="${deinstdir}/$file" + getxt "Deleting '%s' ...\n" "$path" + rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path" + done + deinstdir="${oldinstcfg[PREFIX]}/share/pixmaps/trustbridge" + rm_empty_dirs "$deinstdir" + deinstdir="${oldinstcfg[PREFIX]}/share/pixmaps" + rm_empty_dirs "$deinstdir" + deinstdir="${oldinstcfg[PREFIX]}/share" + rm_empty_dirs "$deinstdir" deinstall_etc getxt "Deinstallation finished.\n" else @@ -330,6 +349,36 @@ chmod 700 "$1" } +write_startmenu() +{ + cat > "$1" << EOF +[Desktop Entry] +Type=Application +Name=TrustBridge +Comment=Install and update trusted root certificates +Comment[de]=Vertrauenswürdige Wurzelzertifikate installieren und aktualisieren +Exec=${instcfg[PREFIX]}/bin/trustbridge +Icon=${instcfg[PREFIX]}/share/pixmaps/trustbridge/trustbridge.png +Terminal=false +Categories=Network;Qt; +StartupNotify=false +EOF +} + +setup_startmenu() +{ + # Supported desktop environments: Unity, GNOME, XFCE, LXDE, KDE + # System wide installation with a nonstandard XDG_DATA_HOME is not + # respected with regards to autostart. + if [ ! -d "${startmenu_path}" ]; then + install -d "${startmenu_path}" || \ + fatal "Failed to create startmenu directory: '%s'\n" "$startmenu_path" + fi + + write_startmenu "${startmenu_path}/trustbridge.desktop" + update-desktop-database 2>&1 || true +} + setup_autostart() { # Supported desktop environments: Unity, GNOME, XFCE, LXDE, KDE @@ -415,6 +464,9 @@ getxt "Setting up autostart ...\n" setup_autostart +getxt "Setting up start menu entries ...\n" +setup_startmenu + getxt "Writing installation configuration to: %s ...\n" "$instcfg_file" write_instcfg exit 0 diff -r 4efd6378c001 -r 02e357826417 packaging/linux-installer.l10n-de --- a/packaging/linux-installer.l10n-de Wed Aug 06 18:03:23 2014 +0200 +++ b/packaging/linux-installer.l10n-de Wed Aug 06 18:56:23 2014 +0200 @@ -15,6 +15,7 @@ ["Deleting '%s' ...\n"]="Lösche '%s' ...\n" ["Deleting empty directory '%s' ...\n"]="Lösche das leere Verzeichnis '%s' ...\n" ["Failed to create autostart directory: '%s'\n"]="Konnte das autostart-Verzeichnis '%s' nicht erstellen\n" + ["Failed to create startmenu directory: '%s'\n"]="Konnte das Startmenü-Verzeichnis '%s' nicht erstellen\n" ["For a new prefix you should deinstall first!\n"]="Um einen neuen Installations-Pfad zu verwenden bitte erst deinstallieren!\n" ["Install TrustBridge.\n\n"]="Installiere TrustBridge.\n\n" ["Installation failed.\n"]="Installation fehlgeschlagen.\n" @@ -29,11 +30,13 @@ ["Really deinstall TrustBridge from '%s'? [y/n]\n"]="Soll TrustBridge wirklich aus '%s' deinstalliert werden? [j/n]\n" ["Removing PID file from: %s:\n"]="Entferne PID-File aus: %s\n" ["Removing TrustBridge from autostart\n"]="Entferne TrustBridge aus autostart\n" + ["Removing TrustBridge from startmenu\n"]="Entferne TrustBridge aus dem Startmenü\n" ["Removing certificate lists from: %s:\n"]="Entferne Zertifikatsliste aus: %s\n" ["Removing configuration files:\n"]="Entferne Konfigurationsdateien:\n" ["Removing cron job ...\n"]="Entferne den Cron-Job ...\n" ["Select installation prefix for TrustBridge [%s]: "]="Installations-Pfad für TrustBridge [%s]: " ["Setting up autostart ...\n"]="Konfiguriere autostart ...\n" + ["Setting up startmenu...\n"]="Konfiguriere Startmenü ...\n" ["Setting up cronjob ...\n"]="Konfiguriere den Cron-Job ...\n" ["System wide installation requires root privileges!\n"]="Für die systemweite Installation werden root-Rechte benötigt!\n" ["Uninstalling certificates ...\n"]="Deinstalliere Zertifikate ...\n"