for creole's zephir2 branch

This commit is contained in:
2019-11-23 08:17:35 +01:00
commit 841643e76e
700 changed files with 68183 additions and 0 deletions

28
upgrade/pre_download/00-common Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
BACKUP_DIR="/var/backup/creolelocal"
echo -e "\n# personnalisations locales (dictionnaires/patch/templates)"
echo -e " Sauvegarde dans ${BACKUP_DIR}"
mkdir -p ${BACKUP_DIR}/distrib
mkdir -p ${BACKUP_DIR}/dicos
mkdir -p ${BACKUP_DIR}/patch
# dictionnaires locaux
/bin/cp -rf /usr/share/eole/creole/dicos/local/*.xml ${BACKUP_DIR}/dicos/ >/dev/null 2>&1
# si enregistré sur Zéphir : suppression des dictionnaires locaux/de variante
# limite les problèmes avec creoled (cf https://dev-eole.ac-dijon.fr/issues/9787)
/usr/bin/enregistrement_zephir --check >/dev/null
if [ $? -eq 0 ]
then
/bin/rm -f /usr/share/eole/creole/dicos/local/*.xml
/bin/rm -f /usr/share/eole/creole/dicos/variante/*.xml
fi
# patchs
/bin/cp -rf /usr/share/eole/creole/patch/*.patch ${BACKUP_DIR}/patch/ >/dev/null 2>&1
# templates non installés par un paquet (variante et locaux)
for TMPL in `ls /usr/share/eole/creole/distrib/*`
do
dpkg -S $TMPL >/dev/null 2>&1
if [ $? -ne 0 ];then
/bin/cp -rf $TMPL ${BACKUP_DIR}/distrib/
fi
done

View File

@ -0,0 +1,3 @@
#!/bin/bash
echo 'Dpkg::Options {"--force-confdef"; "--force-confmiss";};' > /etc/apt/apt.conf.d/99upgradeEOLE

10
upgrade/pre_download/01-amon Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
# Sauvegarde des bases de filtres obligatoires (#8621)
DB="$(CreoleGet container_path_proxy '')/var/lib/blacklists/db"
for filter in 'adult' 'redirector';do
if [ -d $DB/$filter ];then
mkdir -p /tmp/db/$filter
cp -f $DB/$filter/urls /tmp/db/$filter/urls
cp -f $DB/$filter/domains /tmp/db/$filter/domains
fi
done

6
upgrade/pre_download/01-bacula Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
# Suppression des anciens fichiers bacula (#14933)
if [ -d /etc/bacula/baculafichiers.d ];then
rm -rf /etc/bacula/baculafichiers.d
fi

27
upgrade/pre_download/01-horus Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
if dpkg-query -s eole-horus-backend > /dev/null 2>&1;then
python -c """import sys
from horus import backend
from ldap import INVALID_CREDENTIALS
try:
for user in backend.ldapsearch('(&%s(sambaLogonScript=*))' % backend.user_filters):
print 'correction du compte %s' % user[1]['uid'][0]
backend.ldapmodify(user[0], 'sambaLogonScript', '')
except INVALID_CREDENTIALS:
print
print 'Erreur le mot de passe ldap est désynchronisé'
print 'Relancer un reconfigure pour corriger'
print
sys.exit(1)
"""
fi
# Sauvegarde des fichiers Interbase (#11070)
if [ -f /opt/interbase/isc4.gdb ];then
mkdir -p /tmp/interbase
cp -f /opt/interbase/isc4.gdb /tmp/interbase
cp -f /opt/interbase/ib_license.dat /tmp/interbase 2>/dev/null
fi
exit 0

View File

@ -0,0 +1,16 @@
#!/bin/bash
/usr/bin/enregistrement_zephir --check >/dev/null 2>&1
if [ $? -eq 0 ]
then
BACKUP_DIR=/var/lib/zephir_backup/
mkdir -p $BACKUP_DIR
# copie temporaire de la configuration d'enregistrement
cp -f /usr/lib/python2.7/dist-packages/zephir/zephir_conf/zephir_conf.py $BACKUP_DIR
# configuration ssh de l'utilisateur uucp
cp -rpf /var/spool/uucp/.ssh $BACKUP_DIR
cp -rpf /etc/uucp $BACKUP_DIR
fi
exit 0

18
upgrade/pre_download/10-rsyslog Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
# Remove autogenerated configuration files
DO_NOT_TOUCH_REGEXP='eole_templates\|default'
for conf in $(find /etc/rsyslog.d/ -type f -name '*.conf')
do
if echo "${conf}" | grep -qs "${DO_NOT_TOUCH_REGEXP}"
then
# Do nothing
continue
fi
if ! dpkg -S "${conf}" > /dev/null 2>&1
then
echo "Remove generated rsyslog configuration file: “${conf}”"
rm -f "${conf}"
fi
done

6
upgrade/pre_download/10-sympa Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
if CreoleGet container_ip_reseau > /dev/null 2>&1
then
CreoleRun 'rm -f /etc/apache2/conf.d/sympa' reseau
fi

View File

@ -0,0 +1,107 @@
#!/bin/sh
set -e
ISO_DIR='/var/lib/eole/iso'
ISO_IMAGE=$(ls -1 ${ISO_DIR}/*.iso 2>/dev/null || true)
APT_CACHER_DIR='/var/cache/apt-cacher-ng'
APT_DIR='/var/cache/apt/archives'
MOUNT_POINT=
## Called at the end of the file
main() {
if [ $(echo "${ISO_IMAGE}" | wc -l) -gt 1 ]
then
die "more than one ISO image detected: ${ISO_IMAGE}"
fi
if [ -d "${APT_CACHER_DIR}" ]
then
populate_apt_cacher_cache
else
populate_apt_cache
fi
}
populate_apt_cache() {
MOUNT_POINT='/media/cdrom'
mount_iso "${ISO_IMAGE}" "${MOUNT_POINT}"
if find "${MOUNT_POINT}" -type f -name '*.deb' | xargs -I{} cp {} "${APT_DIR}"
then
echo "APT cache directory populated"
else
die "unablo to populate APT cache"
fi
}
populate_apt_cacher_cache() {
MOUNT_POINT="${APT_CACHER_DIR}/_import"
mount_iso "${ISO_IMAGE}" "${MOUNT_POINT}"
APT_CACHER_IMPORT_LOG=/tmp/apt-cacher-import.log
APT_CACHER_PORT=$(CreoleGet apt_cacher_port)
CURRENT_DISTRIB=$(lsb_release --codename --short)
NEXT_DISTRIB=$(awk '/^Suite:/ {print $2}' "${MOUNT_POINT}/dists/stable/Release")
TMP_SL=/tmp/next-apt-sources.list
# Build a temporary sources.list
# EOLE references are OK
cp /etc/apt/sources.list ${TMP_SL}
sed -i -e "s,${CURRENT_DISTRIB},${NEXT_DISTRIB}," ${TMP_SL}
# Clean apt cache
rm -f /var/cache/apt/*cache.bin
rm -f /var/lib/apt/lists/*Packages
rm -f /var/lib/apt/lists/*Sources
apt-get -o Dir::Etc::SourceList=${TMP_SL} update
IMPORT_URL="http://localhost:${APT_CACHER_PORT}/acng-report.html?abortOnErrors=aOe&doImport=Start+Import&calcSize=cs&asNeeded=an"
ERROR_PATTERN='(No appropriate files found in the _import directory|color=red)'
wget -O "${APT_CACHER_IMPORT_LOG}" -q "${IMPORT_URL}"
ERRORS=$(sed -n -E "/${ERROR_PATTERN}/ s,<[^>]*>,,gp" "${APT_CACHER_IMPORT_LOG}")
if [ -n "${ERRORS}" ]
then
die "import log contains errors: ${ERRORS}"
else
echo "APT-CACHER cache populated"
fi
}
mount_iso() {
ISO="${1}"
MOUNT_POINT="$2"
[ -d "${MOUNT_POINT}" ] || mkdir "${MOUNT_POINT}"
if ! mount -o loop,ro "${ISO}" "${MOUNT_POINT}"
then
die "unable to mount “${ISO}”"
fi
}
die(){ echo 'Error:' $@ >&2; exit 1; }
_clean() {
EXIT_CODE=$?
# Do not abort on failure as we are in SIGHANDLER
set +e
# Make script idempotent
umount "${MOUNT_POINT}" 2> /dev/null
rmdir "${MOUNT_POINT}" 2> /dev/null
# Use main script exit code
return ${EXIT_CODE}
}
trap _clean EXIT
main $@