diff --git a/docs/scripts/getFlashPlayer.md b/docs/scripts/getFlashPlayer.md index bb36ec9..e2a0464 100644 --- a/docs/scripts/getFlashPlayer.md +++ b/docs/scripts/getFlashPlayer.md @@ -1,23 +1,23 @@ # getFlashPlayer -**version 2.0.x** +**version 2.1.x** -**adaube a changé ses liens de chargement et augmenté sa protection anti-chargement direct** -**si vous installez ce script, flashplayer ne sera pas installé ni mis à jour** -**cette version se met à jour automatiquement, si possible, tous les 7 jours, si un contournement** -**est trouvé le fonctionnement redeviendra normal** +**adobe a changé ses liens de chargement et augmenté sa protection anti-chargement direct** +**si vous installez ce script, flashplayer ne sera pas installé ni mis à jour automatiquement** +**depuis la version 2.x, ce script se met à jour automatiquement, si possible, tous les 7 jours** +**si un contournement est trouvé le fonctionnement redeviendra normal** -**une page sur l'installation manuelle de ce plugin arrive** +**la version 2.1 permet l'installation manuelle d'un plugin téléchargé manuellement** +**[installation manuelle](#installation-manuelle)** ### installation script, raccourci rapide: **en root**: ```shell -wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer && chmod +x getFlashPlayer && \ - ./getFlashPlayer && getFlashPlayer +wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer \ + && chmod +x getFlashPlayer && ./getFlashPlayer && getFlashPlayer ``` - ## charger le script ```shell @@ -25,7 +25,6 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer chmod +x getFlashPlayer ``` - ## installation du script en **root**, pour installer ou mettre à jour le script: @@ -35,7 +34,7 @@ su exit ``` -**le script est dans le système, prêt à gérer l'installation du plugin Flash et ses mises à jour** +le script est dans le système, prêt à gérer l'installation du plugin Flash et ses mises à jour **le plugin n'est pas encore installé** ```text @@ -53,16 +52,15 @@ exit ``` * le script est maintenant dans le système (_/opt/bin/getFlashPlayer_ avec un lien (_/usr/local/bin/getFlashPlayer_) et tout utilisateur peut s'en servir - * le script est inscrit dans la crontab utilisateur, une mise à jour de la version **release** sera faite - [périodiquement](#tache-planifiee) - si disponible (pas de téléchargement d'archive en aveugle). + * le script est inscrit dans la crontab utilisateur, une mise à jour du plugin et du script sera faite + [périodiquement](#tache-planifiee) si disponible (pas de téléchargement d'archive en aveugle). * si le paquet `flashplugin-nonfree` est présent, il sera **désinstallé**. * si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant ## help -lancer le script sans arguments: `getFlashPlayer` +lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlashPlayer help` ```text _ _____ _ _ ____ _ @@ -72,7 +70,7 @@ lancer le script sans arguments: `getFlashPlayer` \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 2.0.0 - 12/07/2017 + pour Firefox sur Debian, version 2.1.0 - 13/07/2017 ----------------------------------------------------------------------- ./getFlashPlayer : installation du script dans le système, en ROOT @@ -82,6 +80,9 @@ lancer le script sans arguments: `getFlashPlayer` getFlashPlayer version : version en ligne de FlashPlayer getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire ---- + getFlashPlayer manuel fichier.tar.gz : installation d'une archive + téléchargée manuellement + ---- getFlashPlayer sysremove : désinstall du script du système, en ROOT ----------------------------------------------------------------------- Ce script doit être exécuté avec les droits root uniquement pour @@ -101,7 +102,7 @@ lancer le script sans arguments: `getFlashPlayer` ``` -## installation version _release_ +## installation plugin `getFlashPlayer install` @@ -146,6 +147,38 @@ lancer le script sans arguments: `getFlashPlayer` Pour tester: http://get.adobe.com/flashplayer/about/ ``` +## installation manuelle + +* [charger manuellement](https://get.adobe.com/fr/flashplayer/) Flashplayer en choisissant une + archive linux tar.gz +* lancer l'installation habituelle, avec: + +`getFlashPlayer manuel flash_player_npapi_linux.xxxxx.tar.gz` +```text + _ _____ _ _ ____ _ + __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ + / _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__| + | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | + \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| + |___/ |___/ + + pour Firefox sur Debian, version 2.1.0 - 13/07/2017 + + installation manuelle flash_player_npapi_linux.i386.tar.gz + + FlashPlayer n'est pas libre, c'est un programme propriétaire dont on + ne peut pas connaître le code source, ni l'utiliser sans conditions, + ni le distribuer librement. + Il souffre de nombreuses vulnérabilités chroniques, depuis des années + sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état + de fait... + Il sera donc bloqué à plus ou moins court terme pas les navigateurs + majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... + + FlashPlayer 26.0.0.137 est installé pour kyodev + Pour tester: http://get.adobe.com/flashplayer/about/ +``` + ## désinstallation plugin @@ -190,13 +223,15 @@ lancer le script sans arguments: `getFlashPlayer` ``` * affiche la version en ligne de FlashPlayer - * compare, si possible (version **release**) et installée, avec la version installée + * affiche la version en ligne du script + * compare avec les versions installées ## mise à jour - * mise à jour si une nouvelle version est disponible en ligne - * à la différence de [_getFlashPlayer install_](#installation-version-release) un téléchargement et + * mise à jour du script si une nouvelle version est disponible en ligne + * mise à jour du plugin si une nouvelle version est disponible en ligne + * à la différence de [_getFlashPlayer install_](#installation-plugin) un téléchargement et une installation **ne sont pas forcés**. il n'y aura téléchargement que si nouvelle version possible * cette tâche est exécutée périodiquement par cron/anachron toutes les semaines et n'a pas vraiment d'utilité à être lancée manuellement @@ -249,9 +284,11 @@ pas de mise à jour disponible: ## tâche planifiée -* la mise à jour possible est testée toutes les **semaines*** -* si une nouvelle version du plugin flash existe, le téléchargement est initié et l'installation du plugin est faite -* pas de nouvelle version du plugin flash: pas de téléchargement +* une mise à jour possible est testée toutes les **semaines*** +* si une nouvelle version du script existe, la mise à jour du plugin est faite +* si une nouvelle version du plugin flash existe, le téléchargement est initié et l'installation du plugin + est faite +* pas de nouvelle version: pas de téléchargement * _anacron_ est utilisé, c'est à dire que la mise à jour sera testée, même lors d'arrêts du Pc dans le syslog: (en root) `cat /var/log/syslog | grep Flash` diff --git a/scripts/getFlashPlayer b/scripts/getFlashPlayer index 03aa194..1cc3530 100755 --- a/scripts/getFlashPlayer +++ b/scripts/getFlashPlayer @@ -1,9 +1,9 @@ #!/bin/bash -version=2.0.2 +version=2.1.0 projet="Kyodev" contact="https://framagit.org/kyodev/kyopages/issues" -date="12/07/2017" +date="13/07/2017" script="getFlashPlayer" urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer" @@ -85,7 +85,7 @@ f__syslogInfo() { # inscription syslog $1, en user.info & f__info $1 f__info "$1" } - # root? return 0 else 1 + # root? return 0 si root else 1 f__root(){ if [ $EUID -eq 0 ]; then return 0; else return 1; fi } @@ -101,6 +101,11 @@ f__testWget(){ wget -Sq --tries=1 --no-check-certificate --user-agent="$user_agent" -O /dev/null "$1" } + # test validité archive, $1 fichier (gzip), return 1 si invalide +f__testArchive(){ + file -b $1 | grep 'gzip compressed data' &>/dev/null && archive_detect="gzip" || return 1 +} + #### fonctions script ================================================== user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:52.0) Gecko/ Firefox" @@ -187,7 +192,7 @@ esac } # version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptd_plug=""|ko, $urlOnline, -f_versionFlash(){ +fflash_version(){ urlOnline="https://get.adobe.com/flashplayer/" if ! f__cnxTest; then f__error "connection impossible ou site adobe injoignable"; fi verFlash="$(wget --tries=2 --no-check-certificate --timeout=15 --user-agent="$user_agent" -nv -O - "$urlOnline" | \ @@ -233,6 +238,9 @@ cat << 'EOF' getFlashPlayer version : version en ligne de FlashPlayer getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire ---- + getFlashPlayer manuel fichier.tar.gz : installation d'une archive + téléchargée manuellement + ---- getFlashPlayer sysremove : désinstall du script du système, en ROOT EOF printf $COLOR; cat << 'EOF' @@ -247,38 +255,42 @@ EOF printf $COLOR } - # install plugin dans config user mozilla, $1 "upgrade" si process maj + # install plugin dans config user mozilla, $1 upgrade|manuel (maj|install manuelle) fflash_install(){ if [ $1 != "upgrade" ]; then fflash_avert; fi architecture="$(getconf LONG_BIT)" # 32 | 64 - # calcul $file, affichage version pendant l'install, calcul $url - file="flashplayer_npapi_linux.$architecture.tar.gz" - if [ $verFlash == "na" ] || [ $verFlash == "" ]; then f_versionFlash; fi - f__info "installation FlashPlayer, version $verFlash" - verFlash_major="$(echo $verFlash | cut -d '.' -f 1-2)" - url2="https://get.adobe.com/fr/flashplayer/download/?installer=FP_""$verFlash_major""_for_Linux_""$architecture" - url2="$url2""-bit_(.tar.gz)_-_NPAPI&sType=6625&standalone=1" + if [ $1 == "manuel" ]; then + file="$(basename $2)" + dirTemp="$(dirname $2)/$script-$RANDOM/" + mkdir -p "$dirTemp" + else + # calcul $file, affichage version pendant l'install, calcul $url + file="flashplayer_npapi_linux.$architecture.tar.gz" + if [ $verFlash == "na" ] || [ $verFlash == "" ]; then fflash_version; fi + f__info "installation FlashPlayer, version $verFlash" + verFlash_major="$(echo $verFlash | cut -d '.' -f 1-2)" + url2="https://get.adobe.com/fr/flashplayer/download/?installer=FP_""$verFlash_major""_for_Linux_""$architecture" + url2="$url2""-bit_(.tar.gz)_-_NPAPI&sType=6625&standalone=1" - # dossier temporaire de travail, création - dirTemp="/tmp/$script-$RANDOM/" - mkdir -p "$dirTemp" + # dossier temporaire de travail, création + dirTemp="/tmp/$script-$RANDOM/" + mkdir -p "$dirTemp" - # chargement archive plugin flashplayer - wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \ - --tries=1 -O "$dirTemp""$file" "$url2" - if [ "$?" != "0" ]; then - f__testWget "$url2" - f__error "Erreur wget\n" \ - " réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes." - fi - if [ "$(wc -c < "$dirTemp""$file")" -lt 5000000 ]; then - f__error "Taille du chargement: $(wc -c < "$dirTemp""$file")\n" \ - " Chargement incomplet, réessayer et si persistance,\n contacter $projet $contact\n" + # chargement archive plugin flashplayer + wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \ + --tries=1 -O "$dirTemp$file" "$url2" + if [ "$?" != "0" ]; then + f__testWget "$url2" + f__error "Erreur wget\n" \ + " réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes." + fi + f__testArchive "$dirTemp$file" || f__error "\n Le fichier $dirTemp$file n'est pas une archive tar.gz valide" fi # décompression archive téléchargée dans dossier de travail - tar -xaf "$dirTemp""$file" -C "$dirTemp" + if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi + if [ $1 == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi # copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/" @@ -288,7 +300,7 @@ fflash_install(){ echo "$verFlash" > /home/"$user_"/.mozilla/plugins/libflashplayer.version touch /home/"$user_"/.mozilla/plugins/libflashplayer.maj - # droits user si install par root + # droits user si jamais install par root chown -R "$user_": /home/"$user_"/.mozilla/plugins if [ $1 != "upgrade" ]; then @@ -316,34 +328,42 @@ fflash_remove(){ f__info "$GREEN""FlashPlayer $version désinstallé pour $user_\n" } + # installation du plugin chargé manuellement, $1 +fflash_manuelInstall(){ + if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi + f__testArchive "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide" + f__info "installation manuelle $1" + fflash_install "manuel" $1 +} + ### début script ======================================================= - # traitements arguments -if [ "$#" -gt 1 ]; then f__info "$RED trop d'arguments"; fflash_help; exit 1; fi #initialisation f__user verFlash="na" -#### installation du script si pas dans le système ===================== + # installation du script si pas dans le système if ! f__scriptBin ; then fscript_install; fi case "$1" in "install" ) - fflash_install ;; # installation plugin + fflash_install ;; # installation plugin "remove" ) - fflash_remove ;; # désinstallation plugin + fflash_remove ;; # désinstallation plugin "version" ) - f_versionFlash + fflash_version fscript_version ;; # version plugin en ligne & installée "sysremove" ) fscript_remove ;; # désinstallation du script "upgrade" ) fscript_version fscript_dl - f_versionFlash - fflash_upgrade ;; # upgrade plugin et script si MAJs possibles + fflash_version + fflash_upgrade ;; # upgrade plugin et script si MAJs possibles + "manuel" ) + fflash_manuelInstall "$2" ;; # install manuelle d'un chargement * ) - fflash_help; fflash_avert ;; # affichage help par défaut + fflash_help; fflash_avert ;; # affichage help par défaut esac exit 0 diff --git a/scripts/getFlashPlayer_changelog.md b/scripts/getFlashPlayer_changelog.md index bb6ee8f..dd29df5 100644 --- a/scripts/getFlashPlayer_changelog.md +++ b/scripts/getFlashPlayer_changelog.md @@ -1,6 +1,11 @@ # changelog getFlashPlayer +## 2.1.0 13/07/2017 + +* installation d'une archive téléchargée manuellement + + ## 2.0.2 13/07/2017 * fix mineurs @@ -9,10 +14,12 @@ * fix bug, test sur taille download * fix bug test wget + ## 2.0.1 13/07/2017 * fix mineur + ## 2.0.0 13/07/2017 * nouveau @@ -30,17 +37,20 @@ * nouveau * contournement éventuel pour imposer un utilisateur où installer (ou si échec sous debian7?) + ## 1.0.2 02/07/2017 * mineur * renommage appel install version de test: v-test (au lieu) de test - + + ## 1.0.1 22/06/2017 * mineur * suppression lignes de test commentées * typos + ## 1.0.0 21/06/2017 * 1ère publication