diff options
author | JulioJu | 2016-05-29 17:19:12 +0200 |
---|---|---|
committer | JulioJu | 2016-05-29 17:19:12 +0200 |
commit | b3887656821458d429d5a342043b72286b4f958e (patch) | |
tree | d05fafb7eb5acc93b0a9fa637ada6bd630de2f0b /marionnet-legacy.install | |
parent | a229e7020c203e72f1f839e34b6f4b24f5126900 (diff) | |
download | aur-b3887656821458d429d5a342043b72286b4f958e.tar.gz |
New Downloader
Diffstat (limited to 'marionnet-legacy.install')
-rw-r--r-- | marionnet-legacy.install | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/marionnet-legacy.install b/marionnet-legacy.install new file mode 100644 index 000000000000..0d6d161b933c --- /dev/null +++ b/marionnet-legacy.install @@ -0,0 +1,207 @@ + +# Adapted from : +# http://bazaar.launchpad.net/~marionnet-drivers/marionnet/trunk/view/head:/useful-scripts/marionnet_from_scratch +# (LGPL) + +post_install () { + +echo -e "* Marionnet installation completed\n\n" + +echo -e "Post installation hook" +echo -e "——————————————————————\n" + +# ============================================================= +# Adjust X -nolisten tcp +# ============================================================= + +# Here $SUDO_OR_NOTHING is null +tmpfile=$(mktemp /tmp/marionnetInstallTmpXXXXXXX) + +function remove_nolisten_assignment_from { +# global SUDO_OR_NOTHING +local i=$1 +$SUDO_OR_NOTHING sed -i -e 's/\(^[a-ZA-Z0-9]*[=].*[-]nolisten tcp.*\)$/#\1\n\1/g' $i +$SUDO_OR_NOTHING sed -i -e 's/\(^[a-ZA-Z0-9]*[=].*\)[-]nolisten tcp\(.*\)$/\1 \2/g' $i +} + +function remove_nolisten_X_or_startx_actuals_from { +# global SUDO_OR_NOTHING +local i=$1 +$SUDO_OR_NOTHING sed -i -e 's/\(^[a-ZA-Z0-9/: ]*X.*\)[-]nolisten tcp\(.*\)$/\1\2/g' $i +$SUDO_OR_NOTHING sed -i -e 's/\(^[a-ZA-Z0-9/: ]*startx.*\)[-]nolisten tcp\(.*\)$/\1\2/g' $i +} + +function remove_DisallowTCP_from { +# global SUDO_OR_NOTHING +local i=$1 +$SUDO_OR_NOTHING sed -i -e 's/\(^DisallowTCP=true.*\)$/#\1\nDisallowTCP=false/g' $i +} + +# Sections in file have the form "[security]" +function ensure_section_and_binding { +[[ $# -ge 3 ]] || return 1 +local SECTION=$1 # ex: security +local VARIABLE=$2 # ex: Enable +local VALUE=$3 # ex: true +local AWK_PROGRAM +shift 3 +AWK_PROGRAM=" +BEGIN {x=0} +/\[$SECTION\]/ {x=1;print;next} +(x==1) && /$VARIABLE=.*/ {print \"$VARIABLE=$VALUE\"; x=2; next} +(x==1) && /\[.*\]/ {print \"$VARIABLE=$VALUE\n\"; print; x=2; next} +/\[.*\]/ {print;next} +{print} + END {if (x==0) print \"[$SECTION]\"; if (x==0 || x==1) print \"$VARIABLE=$VALUE\n\";}" + case $# in + 0) awk "$AWK_PROGRAM" ;; + *) + local i + local TMPFILE=$(tmpfile) + for i in "$@"; do + awk 0<"$i" 1>$TMPFILE "$AWK_PROGRAM" + cat $TMPFILE 1>"$i" + done + rm $TMPFILE + ;; + esac +} + +# This is needed, for instance, for ubuntu 10.10 +function ensure_DisallowTCP_false_to_gdm_custom_dot_conf { +# global SUDO_OR_NOTHING CHANGED_FILES +local custom=${1:-/etc/gdm/custom.conf} +local TMPFILE=$(tmpfile) +cp $custom $TMPFILE +ensure_section_and_binding "security" "DisallowTCP" "false" $TMPFILE +ensure_section_and_binding "xdmcp" "Enable" "true" $TMPFILE +if ! diff -q $custom $TMPFILE >/dev/null; then + CHANGED_FILES+="$custom " + $SUDO_OR_NOTHING bash -c "cat $TMPFILE >$custom" +fi +} + +# This is needed, for instance, for ubuntu 12.04 +function ensure_xserver_allow_tcp_in_lightdm_dot_conf { +# global SUDO_OR_NOTHING CHANGED_FILES +local custom=${1:-/etc/lightdm/lightdm.conf} +local TMPFILE=$(tmpfile) +cp $custom $TMPFILE +ensure_section_and_binding "SeatDefaults" "xserver-allow-tcp" "true" $TMPFILE +if ! diff -q $custom $TMPFILE >/dev/null; then + CHANGED_FILES+="$custom " + $SUDO_OR_NOTHING bash -c "cat $TMPFILE >$custom" +fi +} + + +function apply_all_filters { +# global CHANGED_FILES +local i=$1 +cat $i > $BACKUP +{ remove_nolisten_assignment_from $i; + remove_DisallowTCP_from $i; + remove_nolisten_X_or_startx_actuals_from $i; +} || true +diff -q $BACKUP $i >/dev/null || { +CHANGED_FILES+="$i " + } +} + +function adjust_X_display_manager { +# global SUDO_OR_NOTHING CHANGED_FILES +local BACKUP=$(tmpfile) +DIRS=$($SUDO_OR_NOTHING find /etc/ -type d -name "?dm") +if [[ -d /etc/X11/xinit ]]; then DIRS+=" /etc/X11/xinit/"; fi +FILES=$([[ -n $DIRS ]] && $SUDO_OR_NOTHING find $DIRS -name "*rc" -o -name "*.conf") +FILES=$(for i in $FILES; do grep -l "^[a-zA-Z0-9/_\-= ]*[-]nolisten tcp" $i; done) +for i in $FILES; do apply_all_filters $i; done +rm -f $BACKUP +# A special case: gdm/gdm3 : +if [[ -d /etc/gdm ]]; then + $SUDO_OR_NOTHING touch /etc/gdm/custom.conf + ensure_DisallowTCP_false_to_gdm_custom_dot_conf +elif [[ -d /etc/gdm? ]]; then + $SUDO_OR_NOTHING touch /etc/gdm?/custom.conf /etc/gdm?/daemon.conf + ensure_DisallowTCP_false_to_gdm_custom_dot_conf /etc/gdm?/custom.conf + ensure_DisallowTCP_false_to_gdm_custom_dot_conf /etc/gdm?/daemon.conf +fi +# Another special case: lightdm +if [[ -d /etc/lightdm ]]; then + $SUDO_OR_NOTHING touch /etc/lightdm/lightdm.conf + ensure_xserver_allow_tcp_in_lightdm_dot_conf +fi +[[ -n $CHANGED_FILES ]] +} + +if ps -A -o cmd | grep -q '^[a-zA-Z0-9/]*X.*[-]nolisten tcp'; then + echo -e "\n---" + echo "=============================================================" + echo " Warning readme" + echo " Warning readme" + echo "=============================================================" + echo "* Warning: your X server has been launched with the option '-nolisten tcp'" + echo " => This option should be removed from your X display manager configuration." + echo -n " Shall I try to fix it ([y]/n)? " + read z + if [[ $z != n && $z != N ]]; then + if adjust_X_display_manager; then + echo " Ok. File(s) changed: $CHANGED_FILES" + echo " You must restart your X display manager for the changes to take effect." + else + echo " Sorry, no change performed: you must edit your configuration manually." + fi + fi +else + echo -e "\n* Your X server hasn't been launched with the option \ + '-nolisten tcp' : good." +fi + +# ============================================================= +# Daemon information +# ============================================================= + +echo "\n=============================================================" +echo " Daemon information " +echo "=============================================================\n" + +echo -e "* Before start Marionnet, you must start the daemon :" +echo "sudo systemctl start marionnetdaemon.service" + +# ============================================================= +# Install marionnet_kernels and filesystems +# ============================================================= + +echo "\n=============================================================" +echo " Downlading " +echo "=============================================================" + +echo "\n* Downloading script marionnet_from_scratch : " +wget http://www.marionnet.org/downloads/marionnet_from_scratch/marionnet_from_scratch +echo "* Downlading and installing Marionnet kernels and filesystems (Linux \ +distributions Debian Lenny, Mandriva, Pinocchio, etc.)" +echo -e "* Warning! this process may take several hours!" +chmod u+x ./numberOfStepsPassedForDownloadMarionnetFilesystems.tmp +./numberOfStepsPassedForDownloadMarionnetFilesystems.tmp -m 0.90 --prefix /usr/share/marionnet + + + + +echo "* Post installation completed———\n\n\n" + +} + +post_remove() { +echo -e "* Uninstallation process completed\n\n" + +echo -e "Post remove hook" +echo -e "——————————————————————\n" +echo "* Erasing Marionnet kernels files..." + rm -Rf /usr/share/marionnet +echo "Success." +} + + + + +# vim: ft=sh |