This commit is contained in:
kyodev 2017-07-13 17:08:36 +02:00
parent 51545907af
commit 9ce587968c
3 changed files with 128 additions and 61 deletions

View File

@ -1,23 +1,23 @@
# getFlashPlayer # getFlashPlayer
**version 2.0.x** **version 2.1.x**
**adaube a changé ses liens de chargement et augmenté sa protection anti-chargement direct** **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** **si vous installez ce script, flashplayer ne sera pas installé ni mis à jour automatiquement**
**cette version se met à jour automatiquement, si possible, tous les 7 jours, si un contournement** **depuis la version 2.x, ce script se met à jour automatiquement, si possible, tous les 7 jours**
**est trouvé le fonctionnement redeviendra normal** **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: ### installation script, raccourci rapide:
**en root**: **en root**:
```shell ```shell
wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer && chmod +x getFlashPlayer && \ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer \
./getFlashPlayer && getFlashPlayer && chmod +x getFlashPlayer && ./getFlashPlayer && getFlashPlayer
``` ```
## charger le script ## charger le script
```shell ```shell
@ -25,7 +25,6 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer
chmod +x getFlashPlayer chmod +x getFlashPlayer
``` ```
## installation du script ## installation du script
en **root**, pour installer ou mettre à jour le script: en **root**, pour installer ou mettre à jour le script:
@ -35,7 +34,7 @@ su
exit 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é** **le plugin n'est pas encore installé**
```text ```text
@ -53,16 +52,15 @@ exit
``` ```
* le script est maintenant dans le système (_/opt/bin/getFlashPlayer_ avec un lien (_/usr/local/bin/getFlashPlayer_) * 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 et tout utilisateur peut s'en servir
* le script est inscrit dans la crontab utilisateur, une mise à jour de la version **release** sera faite * le script est inscrit dans la crontab utilisateur, une mise à jour du plugin et du script sera faite
[périodiquement](#tache-planifiee) [périodiquement](#tache-planifiee) si disponible (pas de téléchargement d'archive en aveugle).
si disponible (pas de téléchargement d'archive en aveugle).
* si le paquet `flashplugin-nonfree` est présent, il sera **désinstallé**. * 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 * si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant
## help ## help
lancer le script sans arguments: `getFlashPlayer` lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlashPlayer help`
```text ```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 ./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 version : version en ligne de FlashPlayer
getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire 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 getFlashPlayer sysremove : désinstall du script du système, en ROOT
----------------------------------------------------------------------- -----------------------------------------------------------------------
Ce script doit être exécuté avec les droits root uniquement pour 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` `getFlashPlayer install`
@ -146,6 +147,38 @@ lancer le script sans arguments: `getFlashPlayer`
Pour tester: http://get.adobe.com/flashplayer/about/ 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 ## désinstallation plugin
@ -190,13 +223,15 @@ lancer le script sans arguments: `getFlashPlayer`
``` ```
* affiche la version en ligne de FlashPlayer * 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
* mise à jour si une nouvelle version est disponible en ligne * mise à jour du script 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 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 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 * 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 d'utilité à être lancée manuellement
@ -249,9 +284,11 @@ pas de mise à jour disponible:
## tâche planifiée ## tâche planifiée
* la mise à jour possible est testée toutes les **semaines*** * une 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 * si une nouvelle version du script existe, la mise à jour du plugin est faite
* pas de nouvelle version du plugin flash: pas de téléchargement * 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 * _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` dans le syslog: (en root) `cat /var/log/syslog | grep Flash`

View File

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
version=2.0.2 version=2.1.0
projet="Kyodev" projet="Kyodev"
contact="https://framagit.org/kyodev/kyopages/issues" contact="https://framagit.org/kyodev/kyopages/issues"
date="12/07/2017" date="13/07/2017"
script="getFlashPlayer" script="getFlashPlayer"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/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" f__info "$1"
} }
# root? return 0 else 1 # root? return 0 si root else 1
f__root(){ f__root(){
if [ $EUID -eq 0 ]; then return 0; else return 1; fi 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" 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 ================================================== #### fonctions script ==================================================
user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:52.0) Gecko/ Firefox" 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, # version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptd_plug=""|ko, $urlOnline,
f_versionFlash(){ fflash_version(){
urlOnline="https://get.adobe.com/flashplayer/" urlOnline="https://get.adobe.com/flashplayer/"
if ! f__cnxTest; then f__error "connection impossible ou site adobe injoignable"; fi 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" | \ 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 version : version en ligne de FlashPlayer
getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire 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 getFlashPlayer sysremove : désinstall du script du système, en ROOT
EOF EOF
printf $COLOR; cat << 'EOF' printf $COLOR; cat << 'EOF'
@ -247,38 +255,42 @@ EOF
printf $COLOR 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(){ fflash_install(){
if [ $1 != "upgrade" ]; then fflash_avert; fi if [ $1 != "upgrade" ]; then fflash_avert; fi
architecture="$(getconf LONG_BIT)" # 32 | 64 architecture="$(getconf LONG_BIT)" # 32 | 64
# calcul $file, affichage version pendant l'install, calcul $url if [ $1 == "manuel" ]; then
file="flashplayer_npapi_linux.$architecture.tar.gz" file="$(basename $2)"
if [ $verFlash == "na" ] || [ $verFlash == "" ]; then f_versionFlash; fi dirTemp="$(dirname $2)/$script-$RANDOM/"
f__info "installation FlashPlayer, version $verFlash" mkdir -p "$dirTemp"
verFlash_major="$(echo $verFlash | cut -d '.' -f 1-2)" else
url2="https://get.adobe.com/fr/flashplayer/download/?installer=FP_""$verFlash_major""_for_Linux_""$architecture" # calcul $file, affichage version pendant l'install, calcul $url
url2="$url2""-bit_(.tar.gz)_-_NPAPI&sType=6625&standalone=1" 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 # dossier temporaire de travail, création
dirTemp="/tmp/$script-$RANDOM/" dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp" mkdir -p "$dirTemp"
# chargement archive plugin flashplayer # chargement archive plugin flashplayer
wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \ wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \
--tries=1 -O "$dirTemp""$file" "$url2" --tries=1 -O "$dirTemp$file" "$url2"
if [ "$?" != "0" ]; then if [ "$?" != "0" ]; then
f__testWget "$url2" f__testWget "$url2"
f__error "Erreur wget\n" \ f__error "Erreur wget\n" \
" réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes." " réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes."
fi fi
if [ "$(wc -c < "$dirTemp""$file")" -lt 5000000 ]; then f__testArchive "$dirTemp$file" || f__error "\n Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
f__error "Taille du chargement: $(wc -c < "$dirTemp""$file")\n" \
" Chargement incomplet, réessayer et si persistance,\n contacter $projet $contact\n"
fi fi
# décompression archive téléchargée dans dossier de travail # 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 # copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire
cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/" cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/"
@ -288,7 +300,7 @@ fflash_install(){
echo "$verFlash" > /home/"$user_"/.mozilla/plugins/libflashplayer.version echo "$verFlash" > /home/"$user_"/.mozilla/plugins/libflashplayer.version
touch /home/"$user_"/.mozilla/plugins/libflashplayer.maj 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 chown -R "$user_": /home/"$user_"/.mozilla/plugins
if [ $1 != "upgrade" ]; then if [ $1 != "upgrade" ]; then
@ -316,34 +328,42 @@ fflash_remove(){
f__info "$GREEN""FlashPlayer $version désinstallé pour $user_\n" 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 ======================================================= ### début script =======================================================
# traitements arguments
if [ "$#" -gt 1 ]; then f__info "$RED trop d'arguments"; fflash_help; exit 1; fi
#initialisation #initialisation
f__user f__user
verFlash="na" 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 if ! f__scriptBin ; then fscript_install; fi
case "$1" in case "$1" in
"install" ) "install" )
fflash_install ;; # installation plugin fflash_install ;; # installation plugin
"remove" ) "remove" )
fflash_remove ;; # désinstallation plugin fflash_remove ;; # désinstallation plugin
"version" ) "version" )
f_versionFlash fflash_version
fscript_version ;; # version plugin en ligne & installée fscript_version ;; # version plugin en ligne & installée
"sysremove" ) "sysremove" )
fscript_remove ;; # désinstallation du script fscript_remove ;; # désinstallation du script
"upgrade" ) "upgrade" )
fscript_version fscript_version
fscript_dl fscript_dl
f_versionFlash fflash_version
fflash_upgrade ;; # upgrade plugin et script si MAJs possibles 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 esac
exit 0 exit 0

View File

@ -1,6 +1,11 @@
# changelog getFlashPlayer # changelog getFlashPlayer
## 2.1.0 13/07/2017
* installation d'une archive téléchargée manuellement
## 2.0.2 13/07/2017 ## 2.0.2 13/07/2017
* fix mineurs * fix mineurs
@ -9,10 +14,12 @@
* fix bug, test sur taille download * fix bug, test sur taille download
* fix bug test wget * fix bug test wget
## 2.0.1 13/07/2017 ## 2.0.1 13/07/2017
* fix mineur * fix mineur
## 2.0.0 13/07/2017 ## 2.0.0 13/07/2017
* nouveau * nouveau
@ -30,17 +37,20 @@
* nouveau * nouveau
* contournement éventuel pour imposer un utilisateur où installer (ou si échec sous debian7?) * contournement éventuel pour imposer un utilisateur où installer (ou si échec sous debian7?)
## 1.0.2 02/07/2017 ## 1.0.2 02/07/2017
* mineur * mineur
* renommage appel install version de test: v-test (au lieu) de test * renommage appel install version de test: v-test (au lieu) de test
## 1.0.1 22/06/2017 ## 1.0.1 22/06/2017
* mineur * mineur
* suppression lignes de test commentées * suppression lignes de test commentées
* typos * typos
## 1.0.0 21/06/2017 ## 1.0.0 21/06/2017
* 1ère publication * 1ère publication