diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py
index 8c1c7cc0d5..700ce8d555 100644
--- a/app/scodoc/sco_utils.py
+++ b/app/scodoc/sco_utils.py
@@ -274,10 +274,8 @@ else:
SCO_ENCODING = "utf-8" # used by Excel, XML, PDF, ...
-SCO_DEFAULT_SQL_USER = "www-data" # should match Zope process UID
-SCO_DEFAULT_SQL_PORT = (
- "5432" # warning: 5433 for postgresql-8.1 on Debian if 7.4 also installed !
-)
+SCO_DEFAULT_SQL_USER = "scodoc" # should match Zope process UID
+SCO_DEFAULT_SQL_PORT = "5432"
SCO_DEFAULT_SQL_USERS_CNX = "dbname=SCOUSERS port=%s" % SCO_DEFAULT_SQL_PORT
# Valeurs utilisées pour affichage seulement, pas de requetes ni de mails envoyés:
diff --git a/config/README b/config/README
deleted file mode 100644
index 7d51341f9d..0000000000
--- a/config/README
+++ /dev/null
@@ -1,56 +0,0 @@
-
- CONFIGURATION DE SCODOC
- -----------------------
-
-Emmanuel Viennet, juin 2008, mar 2017
-
-
-
-0) INSTALL de base:
-- prerequis: apache2, utilisateur www-data
-- detarer ScoDoc.tgz (== Zope + produits + scodoc)
-
-
-1) Creation de la base utilisateurs (initialement vide)
-
--------
-
-Sept 2013: ScoDoc 7 : python2.7, Debian 7, Zope 2.13.21
-
-
-Pour la construction de Zope:
-attention: on veut bénéficier des paquets python Debian !
-donc
-
-apt-get install python-dev
-apt-get install python-virtualenv
-apt-get install gcc
-virtualenv --system-site-packages /opt/zope213
-cd zope213/
-bin/easy_install -i http://download.zope.org/Zope2/index/2.13.21 Zope2
-# ...long...
-
-bin/easy_install Products.ZSQLMethods
-bin/easy_install ZPsycopgDA
-# Avec Debian 8: probleme install de ZPsycopgDA
-# essai en le copiant de la version Debian 7. Semble ok.
-
-# Problemes persistant avec pydot (voir commentaire dans script install)
-
-# Si besoin, création de l'instance Zope:
-bin/mkzopeinstance -d /opt/inst
-
-(XXX admin / admin)
-
-
-2) Migration bases de données
-Sur ScoDoc6:
- pg_dumpall > scodoc.dump.txt
-
-
-
-passage en UTF-8
-- sources Python
-- locale systeme (scrip install)
-- creation des bases (users et depts)
-- recodage du dump sql
diff --git a/config/configure_systemd.sh b/config/configure_systemd.sh
deleted file mode 100755
index 032dde90a5..0000000000
--- a/config/configure_systemd.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-# Modify ScoDoc install to use systemd
-# E. Viennet, 2020-12-04
-source config.sh
-source utils.sh
-
-check_uid_root "$0"
-
-echo 'Installation du demarrage automatique de ScoDoc (systemd)'
-
-# La variable POSTGRES_SERVICE doit être positionnée dans config.sh
-# suivant la version de Debian et de postgresql
-[ -z "${POSTGRES_SERVICE}" ] && die "incompatible Debian version"
-
-cat "$SCODOC_DIR/config/etc/scodoc.service" | sed 's/{{postgresql}}/'"${POSTGRES_SERVICE}"'/g' > /etc/systemd/system/scodoc.service
-
-systemctl enable scodoc.service
-
-echo "A partir de maintenant, utiliser"
-echo " pour demarrer: systemctl start scodoc"
-echo " pour arreter : systemctl stop scodoc"
-
diff --git a/config/create_user_db.sh b/config/create_user_db.sh
deleted file mode 100755
index eb729ff923..0000000000
--- a/config/create_user_db.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-#
-# ScoDoc: creation de la base de donnees d'utilisateurs
-#
-# Ce script prend en charge la creation de la base de donnees
-# et doit être lancé par l'utilisateur unix root dans le repertoire .../config
-# ^^^^^^^^^^^^^^^^^^^^^
-# E. Viennet, Juin 2008
-#
-
-source config.sh
-source utils.sh
-
-check_uid_root "$0"
-
-# --- Ensure postgres user www-data exists
-init_postgres_user
-
-db_name=SCOUSERS
-
-echo 'Creating postgresql database ' $db_name
-
-su -c "createdb -E UTF-8 -O $POSTGRES_USER -p $POSTGRES_PORT $db_name" "$POSTGRES_SUPERUSER"
-
-echo 'Initializing tables in database ' "$db_name"
-echo su -c "$PSQL -U $POSTGRES_USER -p $POSTGRES_PORT $db_name < $SCODOC_DIR/misc/create_user_table.sql" "$POSTGRES_USER"
-su -c "$PSQL -U $POSTGRES_USER -p $POSTGRES_PORT $db_name < $SCODOC_DIR/misc/create_user_table.sql" "$POSTGRES_USER"
diff --git a/config/distrib.sh b/config/distrib.sh
deleted file mode 100644
index 7a29157a25..0000000000
--- a/config/distrib.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/bash
-
-# Pense bete pour tout nettoyer avant de faire une distribution...
-#
-#
-# E. Viennet, jul 2008
-
-source config.sh
-source utils.sh
-
-if [ "$UID" != "0" ]
-then
- echo "Erreur: le script $0 doit etre lance par root"
- exit 1
-fi
-
-
-echo "Changing to directory " "$SCODOC_DIR"/config
-cd "$SCODOC_DIR"/config || { echo "directory does not exist"; exit 1; }
-
-echo "Stopping ScoDoc..."
-scodocctl stop
-
-# DROITS
-echo -n "Verification des droits: proprietaire www-data ? (y/n) [y] "
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- echo 'changing owner to www-data'
- chown -R www-data.www-data ..
-fi
-
-echo -n 'Suppression des backups des sources (*~) ? (y/n) [y] '
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- /bin/rm -f ../*~ ../*/*~
-fi
-
-
-# SVN
-echo -n "svn update ? (y/n) [y] "
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- echo 'Updating from SVN...'
- (cd ..; svn update)
-fi
-
-
-# DEPARTEMENTS (maintenant inutile car dans /var)
-echo -n "Supprimer les (anciennes) configs de departements ? (y/n) [y] "
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- echo "moving " depts/*.cfg "to /tmp"
- mv depts/*.cfg /tmp
-fi
-
-# .../var/
-echo -n "Supprimer et recréer .../var (archives, photos, configs, ...) ? (y/n) [y] "
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- echo "moving ../../../var/scodoc to /tmp"
- mv ../../../var/scodoc /tmp
- mkdir -p ../../../var/scodoc/config/depts
- mkdir ../../../var/scodoc/photos
- mkdir ../../../var/scodoc/tmp
- mkdir ../../../var/scodoc/archives
- chown -R www-data.www-data ../../../var/scodoc/
-fi
-
-# LOGS ZOPE
-echo -n "Effacer les logs de Zope et ScoDoc ? (y/n) [y] "
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- (cd ../../../log/; ./purge)
-fi
-
-# IMAGE Data.fs
-echo -n "Recopier le Data.fs original ? (y/n) [y] "
-read -r ans
-if [ "$(norm_ans "$ans")" != 'N' ]
-then
- echo "moving Data.fs to /tmp"
- mv ../../../var/Data.fs ../../../var/Data.fs.index /tmp
- DATAFS=../../../var/Data.fs.ok-to-distrib-545
- echo "copying $DATAFS to Data.fs"
- cp -p $DATAFS ../../../var/Data.fs
-fi
-
-#
-echo
-echo "OK, vous pouvez archiver la distribution !"
-echo
diff --git a/config/etc/README b/config/etc/README
deleted file mode 100644
index 26aea491bb..0000000000
--- a/config/etc/README
+++ /dev/null
@@ -1,9 +0,0 @@
-
-* Scripts utiles pour l'installation de ScoDoc
-
-- scodoc : script de demarrage a placer dans /etc/rc.*
-
-- scodoc-site-ssl: configuration de site (https) pour Apache, a placer dans
- /etc/apache2/sites-available/
- puis editer pour remplacer le nom du site et indiquer vos certificats crypto
- puis activer par a2ensite scodoc-site-ssl
diff --git a/config/etc/firehol.conf b/config/etc/firehol.conf
deleted file mode 100644
index 2f5d964a91..0000000000
--- a/config/etc/firehol.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Exemple de configuration pare-feu firehol minimal pour un serveur ScoDoc
-#
-# Suppose que l'interface reseau Internet est XXX_INTERFACE_XXX
-#
-# E. Viennet, juin 2008, jul 2017
-#
-
-version 5
-
-FIREHOL_LOG_MODE="ULOG"
-
-interface XXX_INTERFACE_XXX internet
- protection strong
- client all accept # plutot gentil, a adapter a vos besoins (attention a ntp et aux mises a jour)
- server ssh accept
- server https accept
- # pas de log des paquets venant d'Internet...
- server any nolog drop
diff --git a/config/etc/scodoc b/config/etc/scodoc
deleted file mode 100755
index cf7a10ffff..0000000000
--- a/config/etc/scodoc
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-# zope This shell script takes care of starting and stopping
-# zope under apache (proxy)
-# Emmanuel Viennet @ LIPN, June 2002, Sept 2011 (LSB-compliance for Debian 6)
-#
-# chkconfig: - 90 10
-# description: zope is a web server
-
-
-### BEGIN INIT INFO
-# Provides: ScoDoc
-# Required-Start: $local_fs $remote_fs $network $syslog
-# Required-Stop: $local_fs $remote_fs $network $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Start/stop ScoDoc server
-### END INIT INFO
-
-# Source function library.
-#. /etc/init.d/functions
-
-
-ZOPE_DIR=/opt/scodoc/instance
-
-# [ -x $ZOPE_DIR/bin/python ] || exit 0
-
-RETVAL=0
-prog="Zope"
-
-start() {
- # Start Zope persistent process
- # Start daemons.
- echo -n $"Starting $prog: "
- echo $ZOPE_DIR/bin/zopectl start
- $ZOPE_DIR/bin/zopectl start 2> /dev/null
- RETVAL=$?
- echo
-# [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zope
- return $RETVAL
-}
-
-stop() {
- # Stop daemons.
- echo -n 'Stopping zope daemon: '
- $ZOPE_DIR/bin/zopectl stop
- RETVAL=$?
- echo
-# [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zope
- return $RETVAL
-}
-
-# See how we were called.
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
-# status)
-# status $ZOPE_DIR/bin/python
-# RETVAL=$?
-# ;;
- restart|reload)
- stop
- start
- RETVAL=$?
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart}"
- exit 1
-esac
-
-exit $RETVAL
diff --git a/config/etc/scodoc-site-ssl-apache2.4.orig b/config/etc/scodoc-site-ssl-apache2.4.orig
deleted file mode 100644
index ba1a612ca0..0000000000
--- a/config/etc/scodoc-site-ssl-apache2.4.orig
+++ /dev/null
@@ -1,56 +0,0 @@
-
-# Fichier config Apache basique pour ScoDoc
-# E. Viennet, juin 2008, sept 2009, mar 2017 (Apache 2.4)
-
-# Apache fonctionne ici en proxy https devant zope (lui meme sur 8080).
-
-# A EDITER !!!
-# 1- REMPLACER YOUR.FULL.HOST.NAME par votre nom de site (www.monscodoc.com)
-# 2- indiquer vos certificats ssl (.key, .pem)
-# 3- eventuellement, le certificat de votre authorite de certif. (CA).
-# 4- eventuellement, revoir les fichiers de logs (penser au logrotate !)
-
-
-NameVirtualHost *:443
-
- ServerAdmin webmaster
- ServerName YOUR.FULL.HOST.NAME
- SSLEngine on
-
- SSLCertificateFile /etc/apache2/scodoc-ssl/apache.pem
- # SSLCertificateKeyFile /etc/apache2/ssl/iutv.univ-paris13.fr.key
-
- # Votre authorite de certification:
- # SSLCACertificateFile /etc/apache2/scodoc-ssl/ct_root.pem
- # SSLCACertificateFile /etc/apache2/scodoc-ssl/sureserverEDU.pem
-
- DocumentRoot /var/www/
-
- ErrorLog /var/log/apache2/ssl-error.log
-
- # Possible values include: debug, info, notice, warn, error, crit,
- # alert, emerg.
- LogLevel warn
-
- CustomLog /var/log/apache2/ssl-access.log combined
-
- RewriteEngine on
- # "RewriteLogLevel" n'est plus disponible dans apache2.4, il faut utiliser l'option "rewrite" dans l'instruction "LogLevel"
- #LogLevel warn rewrite:trace3
-
- # ScoDoc static content, served directly:
- # RewriteCond %{HTTP:Authorization} ^(.*)
- RewriteRule ^/ScoDoc/static/(.*) /opt/scodoc/Products/ScoDoc/static/$1 [L]
-
- # Le reste est pour Zope:
- RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/YOUR.FULL.HOST.NAME:443/$1 [L,P]
-
- # Log avec utilisateur authentifie par ScoDoc
- LogFormat "%h %l %{X-ScoDoc-User}o %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" scodoc
- CustomLog "/var/log/apache2/scodoc_access.log" scodoc
-
-
-
-
-Require all granted
-
diff --git a/config/etc/scodoc-site-ssl.orig b/config/etc/scodoc-site-ssl.orig
deleted file mode 100644
index 0f628f231b..0000000000
--- a/config/etc/scodoc-site-ssl.orig
+++ /dev/null
@@ -1,52 +0,0 @@
-
-# Fichier config Apache basique pour ScoDoc
-# E. Viennet, juin 2008, sept 2009
-
-# Apache fonctionne ici en proxy https devant zope (lui meme sur 8080).
-
-# A EDITER !!!
-# 1- REMPLACER YOUR.FULL.HOST.NAME par votre nom de site (www.monscodoc.com)
-# 2- indiquer vos certificats ssl (.key, .pem)
-# 3- eventuellement, le certificat de votre authorite de certif. (CA).
-# 4- eventuellement, revoir les fichiers de logs (penser au logrotate !)
-
-
-NameVirtualHost *:443
-
- ServerAdmin webmaster
- ServerName YOUR.FULL.HOST.NAME
- SSLEngine on
-
- SSLCertificateFile /etc/apache2/scodoc-ssl/apache.pem
- # SSLCertificateKeyFile /etc/apache2/ssl/iutv.univ-paris13.fr.key
-
- # Votre authorite de certification:
- # SSLCACertificateFile /etc/apache2/scodoc-ssl/ct_root.pem
- # SSLCACertificateFile /etc/apache2/scodoc-ssl/sureserverEDU.pem
-
- DocumentRoot /var/www/
-
- ErrorLog /var/log/apache2/ssl-error.log
-
- # Possible values include: debug, info, notice, warn, error, crit,
- # alert, emerg.
- LogLevel warn
-
- CustomLog /var/log/apache2/ssl-access.log combined
-
- RewriteEngine on
- RewriteLog /var/log/rewrite.ssl
- RewriteLogLevel 0
-
- # ScoDoc static content, served directly:
- RewriteCond %{HTTP:Authorization} ^(.*)
- RewriteRule ^/ScoDoc/static/(.*) /opt/scodoc/instance/Products/ScoDoc/static/$1 [L]
-
- # Le reste est pour Zope:
- RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/YOUR.FULL.HOST.NAME:443/$1 [L,P]
-
- # Log avec utilisateur authentifie par ScoDoc
- LogFormat "%h %l %{X-ScoDoc-User}o %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" scodoc
- CustomLog "/var/log/apache2/scodoc_access.log" scodoc
-
-
diff --git a/config/etc/scodoc-site.orig b/config/etc/scodoc-site.orig
deleted file mode 100644
index 6829d87689..0000000000
--- a/config/etc/scodoc-site.orig
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Config Apache minimale http: redirige tout vers https
-# (voir scodoc-site-ssl)
-#
-NameVirtualHost *
-
- ServerAdmin webmaster@localhost
- DocumentRoot /var/www/
-
- AllowOverride None
-
-
- RewriteEngine on
-
- ReWriteCond %{SERVER_PORT} !^443$
- RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
-
- ErrorLog /var/log/apache2/error.log
- LogLevel warn
- CustomLog /var/log/apache2/access.log combined
- ServerSignature On
-
diff --git a/config/fix_bug70_db.py b/config/fix_bug70_db.py
deleted file mode 100644
index b55f7507d0..0000000000
--- a/config/fix_bug70_db.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*- mode: python -*-
-# -*- coding: utf-8 -*-
-
-# Script pour ScoDoc7 (python2), obsolete
-"""Fix bug #70
-
-Utiliser comme:
- scotests/scointeractive.sh DEPT config/fix_bug70_db.py
-
-"""
-context = context.Notes # pylint: disable=undefined-variable
-REQUEST = REQUEST # pylint: disable=undefined-variable
-import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
-import os
-import sys
-import sco_utils
-import notesdb
-import sco_formsemestre
-import sco_formsemestre_edit
-import sco_moduleimpl
-
-G = sco_fake_gen.ScoFake(context.Notes)
-
-
-def fix_formsemestre_formation_bug70(formsemestre_id):
- """Le bug #70 a pu entrainer des incohérences
- lors du clonage avorté de semestres.
- Cette fonction réassocie le semestre à la formation
- à laquelle appartiennent ses modulesimpls.
- 2021-04-23
- """
- sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
- cursor = notesdb.SimpleQuery(
- context,
- """SELECT m.formation_id
- FROM notes_modules m, notes_moduleimpl mi
- WHERE mi.module_id = m.module_id
- AND mi.formsemestre_id = %(formsemestre_id)s
- """,
- {"formsemestre_id": formsemestre_id},
- )
- modimpls_formations = set([x[0] for x in cursor])
- if len(modimpls_formations) > 1:
- # this is should not occur
- G.log(
- "Warning: fix_formsemestre_formation_bug70: modules from several formations in sem %s"
- % formsemestre_id
- )
- elif len(modimpls_formations) == 1:
- modimpls_formation_id = modimpls_formations.pop()
- if modimpls_formation_id != sem["formation_id"]:
- # Bug #70: fix
- G.log("fix_formsemestre_formation_bug70: fixing %s" % formsemestre_id)
- sem["formation_id"] = modimpls_formation_id
- context.do_formsemestre_edit(sem, html_quote=False)
-
-
-formsemestre_ids = [
- x[0]
- for x in notesdb.SimpleQuery(
- context, "SELECT formsemestre_id FROM notes_formsemestre", {}
- )
-]
-for formsemestre_id in formsemestre_ids:
- fix_formsemestre_formation_bug70(formsemestre_id)
diff --git a/config/install_cal_modules.sh b/config/install_cal_modules.sh
deleted file mode 100755
index 1e5f489871..0000000000
--- a/config/install_cal_modules.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-# Install module(s) for calendars
-# (if already installed, do nothing)
-
-
-# Test if installed
-# (NB: don't launch python, to be faster and also to avoid import bug zope vs pytz)
-
-if [ -e /opt/zope213/lib/python2.7/site-packages/icalendar ] || [ /usr/lib/python2.7/dist-packages/icalendar ]
-then
- exit 0 # already installed
-else
- echo "Installing icalendar"
- /opt/zope213/bin/pip install icalendar
-fi
-
-
-
diff --git a/config/migre-7-a-8.sh b/config/migre-7-a-8.sh
deleted file mode 100644
index 2e9fddc63a..0000000000
--- a/config/migre-7-a-8.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/bash
-
-# Migration vers ScoDoc 8
-#
-# E. Viennet, dec 2020
-#
-# Passe l'installation courante de ScoDoc 7 à ScoDoc 8
-# A ce jour, ScoDoc 8 n'est pas recommandé en production !
-#
-# - l'installation ScoDoc 7 doit être à jour.
-# - passe de SVN à GIT: pas de retour en arrière.
-# - déplace la config de config/scodoc_config.py
-# vers /opt/scodoc/var/scodoc/config/scodoc_local.py
-
-
-source config.sh
-source utils.sh
-
-check_uid_root "$0"
-
-scodocctl stop
-
-scodoc7=/opt/ScoDoc7
-if [ -e "$scodoc7" ]
-then
- echo "/opt/ScoDoc7 already exists. Move or remove it before retrying."
- exit 1;
-fi
-
-# 0- Upgrade and check local config
-cd "$SCODOC_DIR" || { echo "Fatal error: can't cd to $SCODOC_DIR"; exit 2; }
-svn up || { echo "Fatal error: can't apply last svn up"; exit 3; }
-
-local_config_diff=$(svn diff config/scodoc_config.py | wc -l)
-
-# 1- Install git
-apt-get update
-apt-get update || { echo "apt-get update failed with $?"; exit 4; }
-apt-get -y install git
-
-# 2- Download ScoDoc8
-printf "\nDownloading files...\n"
-cd "$SCODOC_DIR"/.. || { echo "Fatal error: can't cd to $SCODOC_DIR"; exit 2; }
-
-mv ScoDoc "$scodoc7"
-
-git clone https://scodoc.org/git/viennet/ScoDoc.git || { echo "Fatal error: can't clone git repository"; exit 5; }
-cd ScoDoc || { echo "Fatal error: can't cd to $SCODOC_DIR"; exit 6; }
-
-git checkout ScoDoc8 || { echo "Fatal error: can't checkout ScoDoc8 branch"; exit 7; }
-
-# 3- Migrate user's configuration if needed
-if [ "$local_config_diff" -ne 0 ]
-then
- src="$scodoc7"/config/scodoc_config.py
- dst="${SCODOC_VAR_DIR}/config/scodoc_local.py"
- if [ -e "$dst" ]
- then
- echo "Warning: moving ${dst} to ${dst}.old"
- printf "=> vérifiez votre configuration locale avant utilisation.\n\n"
- mv "$dst" "$dst".old
- fi
- echo
- echo "Copying local configuration file $src"
- echo "to $dst"
- cp "$src" "$dst"
-fi
-
-printf "\nDone.\nPlease start scodoc to use ScoDoc8: systemctl start scodoc\n"
diff --git a/config/postupgrade.py b/config/postupgrade.py
deleted file mode 100755
index f8a7d313f9..0000000000
--- a/config/postupgrade.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/opt/zope213/bin/python
-# -*- coding: utf-8 -*-
-
-"""
-ScoDoc post-upgrade script.
-
-This script is launched by upgrade.sh after each SVN update.
-
-Run as "root" with Zope shutted down and postgresql up,
-_before_ upgrading the database.
-
-E. Viennet, June 2008
-Mar 2017: suppress upgrade of very old Apache configs
-Aug 2020: move photos to .../var/scodoc/
-Apr 2021: bug #70
-"""
-import os
-import sys
-import glob
-import shutil
-from scodocutils import log, SCODOC_DIR, SCODOC_VAR_DIR, SCODOC_LOGOS_DIR, SCO_TMPDIR
-
-if os.getuid() != 0:
- log("postupgrade.py: must be run as root")
- sys.exit(1)
-
-# ---
-# Migrate photos (2020-08-16, svn 1908)
-old_photo_dir = os.path.join(SCODOC_DIR, "static", "photos")
-photo_dirs = glob.glob(old_photo_dir + "/F*")
-if photo_dirs:
- log("Moving photos to new directory...")
- shutil.move(old_photo_dir, SCODOC_VAR_DIR)
-
-# Migrate depts (2020-08-17, svn 1909)
-
-old_depts_dir = os.path.join(SCODOC_DIR, "config", "depts")
-cfg_files = glob.glob(old_depts_dir + "/*.cfg")
-depts_dir = os.path.join(SCODOC_VAR_DIR, "config/depts/")
-for cfg in cfg_files:
- log("Moving %s to new directory..." % cfg)
- shutil.move(cfg, depts_dir)
-
-# Move logos
-if not os.path.exists(SCODOC_LOGOS_DIR):
- old_logos = os.path.join(SCODOC_DIR, "logos")
- if os.path.exists(old_logos):
- log("Moving logos to new directory...")
- dest = os.path.normpath(os.path.join(SCODOC_LOGOS_DIR, ".."))
- shutil.move(old_logos, dest)
- else:
- log("Warning: logos directory is missing (%s)" % SCODOC_LOGOS_DIR)
-
-# Move dept-specific logos
-for d in glob.glob(SCODOC_DIR + "/logos_*"):
- log("Moving %s to %s" % (d, SCODOC_LOGOS_DIR))
- shutil.move(d, SCODOC_LOGOS_DIR)
-
-# Fix bug #70
-depts = [
- os.path.splitext(os.path.basename(f))[0] for f in glob.glob(depts_dir + "/*.cfg")
-]
-for dept in depts:
- fixed_filename = SCO_TMPDIR + "/.%s_bug70_fixed" % dept
- if not os.path.exists(fixed_filename):
- log("fixing #70 on %s" % dept)
- os.system("../scotests/scointeractive.sh -x %s config/fix_bug70_db.py" % dept)
- # n'essaie qu'une fois, même en cas d'échec
- f = open(fixed_filename, "a")
- f.close()
-
-# Continue here...
-
-# ---
-sys.exit(0)
diff --git a/config/set_passwd.sh b/config/set_passwd.sh
deleted file mode 100755
index 68a63db6ff..0000000000
--- a/config/set_passwd.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-#
-# ScoDoc: reglage du mot de passe admin Zope
-# (in Zope terminology, an emergency user)
-#
-# Doit �tre lanc� par l'utilisateur unix root dans le repertoire .../config
-# ^^^^^^^^^^^^^^^^^^^^^
-# E. Viennet, Juin 2008, Jul 2019
-#
-
-source config.sh
-source utils.sh
-
-
-if [ "$UID" != "0" ]
-then
- echo "Erreur: le script $0 doit etre lance par root"
- exit 1
-fi
-
-echo "Creation d'un utilisateur d'urgence pour ScoDoc"
-echo "(utile en cas de perte de votre mot de passe admin)"
-
-if [ "${debian_version}" != "10" ]
-then
- mdir=/opt/zope213/lib/python2.7/site-packages/Zope2-2.13.21-py2.7.egg/Zope2/utilities
-else
- mdir=/opt/zope213/lib/python2.7/site-packages/Zope2/utilities
-fi
-
-python $mdir/zpasswd.py "$SCODOC_DIR"/../../access
-
-echo
-echo "redemarrer scodoc pour prendre en compte le mot de passe"
-echo
diff --git a/config/softs/get-iana.sh b/config/softs/get-iana.sh
deleted file mode 100755
index f1a9f912a2..0000000000
--- a/config/softs/get-iana.sh
+++ /dev/null
@@ -1,214 +0,0 @@
-#!/bin/bash
-
-# $Id: get-iana.sh,v 1.15 2013/01/06 23:49:08 ktsaou Exp $
-#
-# $Log: get-iana.sh,v $
-# Revision 1.15 2013/01/06 23:49:08 ktsaou
-# Removed depedency to get-iana.sh
-# It is not usefull any more.
-#
-# Revision 1.14 2010/06/07 15:44:09 ktsaou
-# Made get-iana.sh support the latest IANA format.
-#
-# Revision 1.13 2010/04/08 22:03:08 ktsaou
-# Removed --proxy=off for wget.
-#
-# Revision 1.12 2008/03/17 22:08:43 ktsaou
-# Updated for latest IANA reservations format.
-#
-# Revision 1.11 2007/06/13 14:40:04 ktsaou
-# *** empty log message ***
-#
-# Revision 1.10 2007/05/05 23:38:31 ktsaou
-# Added support for external definitions of:
-#
-# RESERVED_IPS
-# PRIVATE_IPS
-# MULTICAST_IPS
-# UNROUTABLE_IPS
-#
-# in files under the same name in /etc/firehol/.
-# Only RESERVED_IPS is mandatory (firehol will complain if it is not there,
-# but it will still work without it), and is also the only file that firehol
-# checks how old is it. If it is 90+ days old, firehol will complain again.
-#
-# Changed the supplied get-iana.sh script to generate the RESERVED_IPS file.
-# FireHOL also instructs the user to use this script if the file is missing
-# or is too old.
-#
-# Revision 1.9 2007/04/29 19:34:11 ktsaou
-# *** empty log message ***
-#
-# Revision 1.8 2005/06/02 15:48:52 ktsaou
-# Allowed 127.0.0.1 to be in RESERVED_IPS
-#
-# Revision 1.7 2005/05/08 23:27:23 ktsaou
-# Updated RESERVED_IPS to current IANA reservations.
-#
-# Revision 1.6 2004/01/10 18:44:39 ktsaou
-# Further optimized and reduced PRIVATE_IPS using:
-# http://www.vergenet.net/linux/aggregate/
-#
-# The supplied get-iana.sh uses 'aggregate-flim' if it finds it in the path.
-# (aggregate-flim is the name of this program when installed on Gentoo)
-#
-# Revision 1.5 2003/08/23 23:26:50 ktsaou
-# Bug #793889:
-# Change #!/bin/sh to #!/bin/bash to allow FireHOL run on systems that
-# bash is not linked to /bin/sh.
-#
-# Revision 1.4 2002/10/27 12:44:42 ktsaou
-# CVS test
-#
-
-#
-# Program that downloads the IPv4 address space allocation by IANA
-# and creates a list with all reserved address spaces.
-#
-
-# IPV4_ADDRESS_SPACE_URL="http://www.iana.org/assignments/ipv4-address-space"
-IPV4_ADDRESS_SPACE_URL="http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.txt"
-
-# The program will match all rows in the file which start with a number, have a slash,
-# followed by another number, for which the following pattern will also match on the
-# same rows
-IANA_RESERVED="(RESERVED|UNALLOCATED)"
-
-# which rows that are matched by the above, to ignore
-# (i.e. not include them in RESERVED_IPS)?
-#IANA_IGNORE="(Multicast|Private use|Loopback|Local Identification)"
-IANA_IGNORE="Multicast"
-
-tempfile="/tmp/iana.$$.$RANDOM"
-
-AGGREGATE="`which aggregate-flim 2>/dev/null`"
-if [ -z "${AGGREGATE}" ]
-then
- AGGREGATE="`which aggregate 2>/dev/null`"
-fi
-
-if [ -z "${AGGREGATE}" ]
-then
- echo >&2
- echo >&2
- echo >&2 "WARNING"
- echo >&2 "Please install 'aggregate-flim' to shrink the list of IPs."
- echo >&2
- echo >&2
-fi
-
-echo >&2
-echo >&2 "Fetching IANA IPv4 Address Space, from:"
-echo >&2 "${IPV4_ADDRESS_SPACE_URL}"
-echo >&2
-
-wget -O - "${IPV4_ADDRESS_SPACE_URL}" |\
- egrep "^ *[0-9]+/[0-9]+.*${IANA_RESERVED}" |\
- egrep -vi "${IANA_IGNORE}" |\
- sed "s/^ \+//g" |\
- cut -d ' ' -f 1 |\
-(
- while IFS="/" read range net
- do
- # echo >&2 "$range/$net"
-
- if [ ! $net -eq 8 ]
- then
- echo >&2 "Cannot handle network masks of $net bits ($range/$net)"
- continue
- fi
-
- first=`echo $range | cut -d '-' -f 1`
- first=`expr $first + 0`
- last=`echo $range | cut -d '-' -f 2`
- last=`expr $last + 0`
-
- x=$first
- while [ ! $x -gt $last ]
- do
- # test $x -ne 127 && echo "$x.0.0.0/$net"
- echo "$x.0.0.0/$net"
- x=$[x + 1]
- done
- done
-) | \
-(
- if [ ! -z "${AGGREGATE}" -a -x "${AGGREGATE}" ]
- then
- "${AGGREGATE}"
- else
- cat
- fi
-) >"${tempfile}"
-
-echo >&2
-echo >&2
-echo >&2 "FOUND THE FOLLOWING RESERVED IP RANGES:"
-printf "RESERVED_IPS=\""
-i=0
-for x in `cat ${tempfile}`
-do
- i=$[i + 1]
- printf "${x} "
-done
-printf "\"\n"
-
-if [ $i -eq 0 ]
-then
- echo >&2
- echo >&2
- echo >&2 "Failed to find reserved IPs."
- echo >&2 "Possibly the file format has been changed, or I cannot fetch the URL."
- echo >&2
-
- rm -f ${tempfile}
- exit 1
-fi
-echo >&2
-echo >&2
-echo >&2 "Differences between the fetched list and the list installed in"
-echo >&2 "/etc/firehol/RESERVED_IPS:"
-
-echo >&2 "# diff /etc/firehol/RESERVED_IPS ${tempfile}"
-diff /etc/firehol/RESERVED_IPS ${tempfile}
-
-if [ $? -eq 0 ]
-then
- touch /etc/firehol/RESERVED_IPS
- echo >&2
- echo >&2 "No differences found."
- echo >&2
-
- rm -f ${tempfile}
- exit 0
-fi
-
-echo >&2
-echo >&2
-echo >&2 "Would you like to save this list to /etc/firehol/RESERVED_IPS"
-echo >&2 "so that FireHOL will automatically use it from now on?"
-echo >&2
-while [ 1 = 1 ]
-do
- printf >&2 "yes or no > "
- read x
-
- case "${x}" in
- yes) cp -f /etc/firehol/RESERVED_IPS /etc/firehol/RESERVED_IPS.old 2>/dev/null
- cat "${tempfile}" >/etc/firehol/RESERVED_IPS || exit 1
- echo >&2 "New RESERVED_IPS written to '/etc/firehol/RESERVED_IPS'."
- break
- ;;
-
- no)
- echo >&2 "Saved nothing."
- break
- ;;
-
- *) echo >&2 "Cannot understand '${x}'."
- ;;
- esac
-done
-
-rm -f ${tempfile}
-
diff --git a/config/softs/pyExcelerator-0.6.3a.patched.tgz b/config/softs/pyExcelerator-0.6.3a.patched.tgz
deleted file mode 100644
index 32c6bf3192..0000000000
Binary files a/config/softs/pyExcelerator-0.6.3a.patched.tgz and /dev/null differ
diff --git a/config/softs/pydot-0.9.10.tar.gz b/config/softs/pydot-0.9.10.tar.gz
deleted file mode 100644
index b923b58c61..0000000000
Binary files a/config/softs/pydot-0.9.10.tar.gz and /dev/null differ
diff --git a/misc/check_zope_usage.py b/misc/check_zope_usage.py
deleted file mode 100755
index ea6d723b39..0000000000
--- a/misc/check_zope_usage.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""Check usage of (published) ScoDoc methods
-
-Quick method: just grep method name in all constant strings from the source code base.
-
-Usage:
- check_zope_usage.py publishedmethods.csv string-constants.txt
-
-publishedmethods.csv : fichier texte, module et un nom de méthode / ligne
- ZScoUsers get_user_list
- comme extrait par zopelistmethods.py
-
-string-constants.txt : les constantes chaines, extraites par extract_code_strings.py
- "scolars.py" ""
-
-E. Viennet 2021-01-09
-"""
-from __future__ import print_function
-
-import sys
-import glob
-
-methods_filename = sys.argv[1]
-constants_filename = sys.argv[2]
-
-with open(methods_filename) as f:
- # module, method_name, signature
- methods = [l.strip().split("\t") for l in f]
-
-print("%d methods" % len(methods))
-
-with open(constants_filename) as f:
- constants = [l[:-1].split("\t")[1] for l in f]
-
-print("%d constants" % len(constants))
-
-# Add JavaScripts
-jss = []
-for fn in glob.glob("static/js/*.js"):
- jss.append(open(fn).read())
-
-print("%d javascripts" % len(jss))
-
-L = []
-for method in methods:
- n = 0
- for c in constants:
- if method[1] in c:
- n += 1
- nj = 0
- for js in jss:
- if method[1] in js:
- nj += 1
- L.append(method + [n, nj])
-
-# Sort by decreasing popularity
-L.sort(key=lambda x: (x[-1] + x[-2], x[1]), reverse=True)
-print("\n".join(["%s\t%s\t%s\t%d\t%d" % tuple(l) for l in L]))
diff --git a/misc/count_inscriptions.py b/misc/count_inscriptions.py
deleted file mode 100644
index 78cb9b3676..0000000000
--- a/misc/count_inscriptions.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""Affiche nombre d'inscriptions aux semestres pour chaque etudiant
-
- et supprime les etudiants jamais inscrits ayant un homonyme exact
- (erreur passage GEA, fev 2007)
-"""
-
-from __future__ import print_function
-import csv
-import pdb
-import sys
-import psycopg2
-
-DBCNXSTRING = "host=localhost user=scogea dbname=SCOXXXX password=XXXXX"
-
-SCO_ENCODING = "utf-8"
-
-cnx = psycopg2.connect(DBCNXSTRING)
-
-cursor = cnx.cursor()
-cursor.execute("select * from identite i order by nom")
-R = cursor.dictfetchall()
-
-nzero = 0
-nhomonoins = 0
-print("etudid, nom, prenom, nb_inscriptions")
-for e in R:
- cursor.execute(
- "select count(*) from notes_formsemestre_inscription where etudid=%(etudid)s",
- {"etudid": e["etudid"]},
- )
- nbins = cursor.fetchone()[0]
- if nbins == 0:
- nzero += 1
- # recherche homonyme
- cursor.execute(
- "select * from identite i where nom=%(nom)s and prenom=%(prenom)s", e
- )
- H = cursor.dictfetchall()
- if len(H) == 2:
- nhomonoins += 1
- print(e["etudid"], e["nom"], e["prenom"], nbins)
- # etudiant non inscrit ayant un homonyme exact:
- # il doit etre supprimé !!!
- # cursor.execute("delete from admissions where etudid=%(etudid)s", e)
- # cursor.execute("delete from identite where etudid=%(etudid)s", e)
-
-cnx.commit()
-
-print("= %d etudiants, %d jamais inscrits, %d avec homo" % (len(R), nzero, nhomonoins))
diff --git a/misc/create_user_table.sql b/misc/create_user_table.sql
deleted file mode 100644
index 363a69436e..0000000000
--- a/misc/create_user_table.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-
-CREATE SEQUENCE sco_users_idgen;
-
-CREATE FUNCTION sco_users_newid( text ) returns text as '
- select $1 || to_char( nextval(''sco_users_idgen''), ''FM999999999'' )
- as result;
- ' language SQL;
-
-
--- Source pour Zope User Folder
-
-CREATE TABLE sco_users (
- user_id text default sco_users_newid('U') PRIMARY KEY,
- user_name text unique,
- passwd text not null,
- roles text,
- date_modif_passwd date default now(),
- nom text,
- prenom text,
- email text,
- dept text, -- departement d'appartenance
- passwd_temp int default 0, -- 0 ok, 1 mot de passe temporaire
- status text default NULL, -- NULL actif, 'old' ancien (pas de login possible)
- date_expiration date, -- date limite, NULL => sans limite
- login_edt text default NULL -- login logiciel emplois du temps (pour decodage ics)
-) with oids;
-
diff --git a/misc/extract_code_strings.py b/misc/extract_code_strings.py
deleted file mode 100755
index 651900d733..0000000000
--- a/misc/extract_code_strings.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""Extract all string litterals from our code base.
-
-Useful to check if an API function is used in a generated web page !
-
-Usage:
- extract_code_strings.py source.py ... > string-constants.txt
-
-
-Résultat utilisé par check_zope_usage.py
-
-E. Viennet 2021-01-09
-"""
-from __future__ import print_function
-
-import sys
-import ast
-import types
-
-# L = []
-for srcfilename in sys.argv[1:]:
- # print("processing %s" % srcfilename, file=sys.stderr)
- with open(srcfilename) as f:
- p = ast.parse(f.read())
- # L.extend(x.s.strip() for x in ast.walk(p) if x.__class__ == ast.Str)
- for x in ast.walk(p):
- if x.__class__ == ast.Str:
- if isinstance(x.s, str):
- s = x.s
- else:
- s = x.s.encode("UTF-8")
- # remove tabs and cr
- s = s.replace("\t", "").replace("\n", "")
- if len(s):
- print("%s\t%s" % (srcfilename, s))
-
-# L = sorted(set(L)) # uniq | sort
-# print("\n".join(L))
diff --git a/misc/iscid_create_formation_from_xls.py b/misc/iscid_create_formation_from_xls.py
deleted file mode 100644
index 4ab38a741b..0000000000
--- a/misc/iscid_create_formation_from_xls.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# -*- mode: python -*-
-# -*- coding: utf-8 -*-
-
-# Creation d'une formation ISCID à partir d'un xls listant les modules
-
-# XXX TODO : a tester et moderniser (ects, verifier champs, python 3, importer codes depuis ScoDoc ?)
-
-import os, sys, pdb, pprint
-from openpyxl import load_workbook # apt-get install python-openpyxl
-from xml.etree import ElementTree
-
-SCO_ENCODING = "utf-8"
-
-INPUT_FILENAME = "/tmp/Bachelor.xlsx"
-OUTPUT_FILENAME = os.path.splitext(INPUT_FILENAME)[0] + ".xml"
-
-FIRST_SHEET_IDX = 1 # saute première feuille du classeur
-
-
-# Code de ScoDoc (sco_utils.py)
-UE_STANDARD = 0 # UE "fondamentale"
-UE_SPORT = 1 # bonus "sport"
-UE_STAGE_LP = 2 # ue "projet tuteuré et stage" dans les Lic. Pro.
-UE_ELECTIVE = 4 # UE "élective" dans certains parcours (UCAC?, ISCID)
-UE_PROFESSIONNELLE = 5 # UE "professionnelle" (ISCID, ...)
-
-# Code du fichier Excel:
-UE_TYPE2CODE = {u"UE F": UE_STANDARD, u"UE E": UE_ELECTIVE}
-
-# Lecture du fichier Excel
-UE = []
-wb = load_workbook(filename=INPUT_FILENAME)
-# print wb.get_sheet_names()
-
-for sheet_name in wb.get_sheet_names()[FIRST_SHEET_IDX:]:
- print "Importing sheet %s" % sheet_name
- sheet = wb.get_sheet_by_name(sheet_name)
- # Avance jusqu'à trouver le titre 'CODE' en premiere colonne
- i = 0
- while i < len(sheet.rows) and sheet.rows[i][0].value != "CODE":
- i = i + 1
-
- i = i + 1
- ue = None
- while i < len(sheet.rows):
- code = sheet.rows[i][0].value
- type_ue = sheet.rows[i][2].value
- if type_ue in UE_TYPE2CODE:
- if ue:
- UE.append(ue)
- # creation UE
- acronyme = code # ici l'acronyme d'UE est le code du module
- if not acronyme and (i < len(sheet.rows) - 1):
- acronyme = sheet.rows[i + 1][0].value # code module sur ligne suivante
- # print acronyme
- if acronyme: # tres specifique: deduit l'acronyme d'UE du code module
- parts = acronyme.split(u"-")
- parts[-1] = parts[-1][-1] # ne garde que le dernier chiffre
- acronyme = u"-".join(parts) # B1-LV1-EN1 -> B1-LV1-1
- # print '->', acronyme
- if not acronyme:
- acronyme = sheet.rows[i][3].value # fallback: titre
- ue = {
- "acronyme": acronyme,
- "titre": sheet.rows[i][3].value,
- "ects": sheet.rows[i][5].value or u"",
- "type": UE_TYPE2CODE[type_ue],
- "numero": (sheet.rows[i][1].value or 0) * 1000 + i * 10,
- "modules": [],
- }
- i_ue = i
- if code:
- ue["modules"].append(
- {
- "code": code,
- "heures_td": sheet.rows[i_ue][4].value or u"",
- "titre": sheet.rows[i][3].value,
- "semestre_id": sheet.rows[i][1].value,
- "numero": i * 10,
- }
- )
-
- i += 1 # next line
-
- if ue:
- UE.append(ue)
-
-
-def sstr(s):
- if type(s) is type(u""):
- return s.encode(SCO_ENCODING)
- else:
- return str(s)
-
-
-# ----- Write to XML
-doc = ElementTree.Element(
- "formation",
- acronyme="Bachelor ISCID",
- code_specialite="",
- type_parcours="1001",
- titre_officiel="Bachelor ISCID",
- formation_code="FCOD4",
- version="1",
- titre="Bachelor ISCID",
- formation_id="FORM115",
-)
-
-for ue in UE:
- x_ue = ElementTree.Element(
- "ue",
- acronyme=sstr(ue["acronyme"]),
- ects=sstr(ue["ects"]),
- titre=sstr(ue["titre"]),
- numero=sstr(ue["numero"]),
- type=sstr(ue["type"]),
- )
- doc.append(ue)
- x_mat = ElementTree.Element(
- "matiere", titre=sstr(ue["titre"])
- ) # useless but necessary
- x_ue.append(x_mat)
- for m in ue["modules"]:
- x_mod = ElementTree.Element(
- "module",
- coefficient="1.0",
- code=sstr(m["code"]),
- heures_td=sstr(m["heures_td"]),
- titre=sstr(m["titre"]),
- abbrev=sstr(m["titre"]),
- semestre_id=sstr(m["semestre_id"]),
- numero=sstr(m["numero"]),
- )
- x_mat.append(x_mod)
-
-# ---
-print "Writing XML file: ", OUTPUT_FILENAME
-f = open(OUTPUT_FILENAME, "w")
-f.write("""\n""")
-f.write(str(doc))
-f.close()
diff --git a/config/anonymize_db.py b/tools/anonymize_db.py
similarity index 98%
rename from config/anonymize_db.py
rename to tools/anonymize_db.py
index 9492764fd1..f01ca69518 100755
--- a/config/anonymize_db.py
+++ b/tools/anonymize_db.py
@@ -29,7 +29,7 @@
"""Anonymize une base de données ScoDoc
-Runned as "www-data" with scodoc and postgresql up.
+Runned as user "scodoc" with scodoc and postgresql up.
E. Viennet, Jan 2019
"""
diff --git a/config/config.sh b/tools/config.sh
similarity index 54%
rename from config/config.sh
rename to tools/config.sh
index eaed2f7528..c17c6c7e64 100644
--- a/config/config.sh
+++ b/tools/config.sh
@@ -16,43 +16,31 @@ export PATH="${PATH}":/usr/sbin:/sbin
# ScoDoc: environment variables
umask 0022
-export SCODOC_DIR=/opt/scodoc/Products/ScoDoc
+export SCODOC_DIR=/opt/scodoc8
-SCODOC_VAR_DIR=$(realpath -L "$SCODOC_DIR/../../var/scodoc") || die "can't set SCODOC_VAR_DIR"
+SCODOC_VAR_DIR=$(realpath -L "$SCODOC_DIR/var") || die "can't set SCODOC_VAR_DIR"
export SCODOC_VAR_DIR
# = /opt/scodoc/var/scodoc
export SCODOC_VERSION_DIR="${SCODOC_VAR_DIR}/config/version"
export SCODOC_LOGOS_DIR="${SCODOC_VAR_DIR}/config/logos"
+
+# user running ScoDoc server:
+export SCODOC_USER=scodoc
+export SCODOC_GROUP=root
+
+# Postgresql normal user: (same as unix user)
+# IMPORTANT: must match SCO_DEFAULT_SQL_USER defined in sco_utils.py
+export POSTGRES_USER="$SCODOC_USER"
# Postgresql superuser:
export POSTGRES_SUPERUSER=postgres
-# Postgresql normal user: (by default, same a zope==www-data)
-# IMPORTANT: must match SCO_DEFAULT_SQL_USER defined in sco_utils.py
-export POSTGRES_USER=www-data
-
# psql command: if various versions installed, force the one we want:
if [ "${debian_version}" = "10" ]
then
PSQL=/usr/lib/postgresql/11/bin/psql
export POSTGRES_SERVICE="postgresql@11-main.service"
-elif [ "${debian_version}" = "9" ]
-then
- PSQL=/usr/lib/postgresql/9.6/bin/psql
- export POSTGRES_SERVICE="postgresql"
-elif [ "${debian_version}" = "8" ]
-then
- PSQL=/usr/lib/postgresql/9.4/bin/psql
-elif [ "${debian_version}" = "7" ]
-then
- PSQL=/usr/lib/postgresql/9.1/bin/psql
-elif [ "${debian_version}" = "5" ]
- then
- PSQL=/usr/lib/postgresql/8.3/bin/psql
- elif [ "${debian_version}" = "6" ]
- then
- PSQL=/usr/lib/postgresql/8.4/bin/psql
- else
- PSQL=/usr/lib/postgresql/8.1/bin/psql
+else
+ die "unsupported Debian version"
fi
export PSQL
@@ -60,11 +48,3 @@ export PSQL
# Important note: if changed, you should probably also change it in
# sco_utils.py (SCO_DEFAULT_SQL_PORT).
export POSTGRES_PORT=5432
-
-# Utilise par le script de reset du mot de passe:
-if [ "${debian_version}" -ge "7" ]
-then
- export ZOPE_VERSION=2.13
-else
- export ZOPE_VERSION=2.11.0
-fi
diff --git a/config/create_database.sh b/tools/create_database.sh
similarity index 100%
rename from config/create_database.sh
rename to tools/create_database.sh
diff --git a/config/create_dept.sh b/tools/create_dept.sh
similarity index 91%
rename from config/create_dept.sh
rename to tools/create_dept.sh
index e89834f9b3..1b564960c4 100755
--- a/config/create_dept.sh
+++ b/tools/create_dept.sh
@@ -4,7 +4,7 @@
# ScoDoc: creation initiale d'un departement
#
# Ce script prend en charge la creation de la base de donnees
-# et doit être lancé par l'utilisateur unix root dans le repertoire .../config
+# et doit être lancé par l'utilisateur unix root dans le repertoire .../tools
# ^^^^^^^^^^^^^^^^^^^^^
# E. Viennet, Juin 2008
#
@@ -56,14 +56,14 @@ then
exit 1
fi
-# --- Ensure postgres user www-data exists
+# --- Ensure postgres user scodoc exists
init_postgres_user
# ----------------------- Create database
su -c ./create_database.sh "$POSTGRES_SUPERUSER"
# ----------------------- Create tables
-# POSTGRES_USER == regular unix user (www-data)
+# POSTGRES_USER == regular unix user (scodoc)
if [ "$interactive" = 1 ]
then
su -c ./initialize_database.sh "$POSTGRES_USER"
@@ -84,7 +84,7 @@ then
read -r ans
if [ "$(norm_ans "$ans")" != 'N' ]
then
- (cd "$SCODOC_DIR/config" || terminate "no config directory"; ./upgrade.sh)
+ (cd "$SCODOC_DIR/tools" || terminate "no config directory"; ./upgrade.sh)
fi
# -----------------------
echo
diff --git a/config/default-etapes.txt b/tools/default-etapes.txt
similarity index 100%
rename from config/default-etapes.txt
rename to tools/default-etapes.txt
diff --git a/config/delete_dept.sh b/tools/delete_dept.sh
similarity index 99%
rename from config/delete_dept.sh
rename to tools/delete_dept.sh
index 46c55c015c..7956a995ef 100755
--- a/config/delete_dept.sh
+++ b/tools/delete_dept.sh
@@ -8,7 +8,7 @@
#
# Ne fonctionne que pour les configurations "standards" (dbname=xxx)
#
-# Il doit être lancé par l'utilisateur unix root dans le repertoire .../config
+# Il doit être lancé par l'utilisateur unix root dans le repertoire .../tools
# ^^^^^^^^^^^^^^^^^^^^^
# E. Viennet, Sept 2008
#
diff --git a/config/diagnostic.sh b/tools/diagnostic.sh
similarity index 93%
rename from config/diagnostic.sh
rename to tools/diagnostic.sh
index 2e4b28ae93..afec5906b2 100755
--- a/config/diagnostic.sh
+++ b/tools/diagnostic.sh
@@ -16,6 +16,8 @@ DEPTS_TO_SAVE=""
SAVE_USERS=0
SEND_BY_MAIL=1
+SCODOC_HOME="/opt/scodoc8"
+
# -------------------------------------
# Arguments
# -------------------------------------
@@ -97,10 +99,10 @@ copy_log() {
fi
}
mkdir "$TMP"/scodoc_logs/
-copy_log /opt/scodoc/log/event.log
-copy_log /opt/scodoc/log/event.log.1
-copy_log /opt/scodoc/log/notes.log
-copy_log /opt/scodoc/log/notes.log.1
+copy_log "$SCODOC_HOME/log/event.log"
+copy_log "$SCODOC_HOME/log/event.log.1"
+copy_log "$SCODOC_HOME/log/notes.log"
+copy_log "$SCODOC_HOME/log/notes.log.1"
# -------------------------------------
@@ -108,16 +110,16 @@ copy_log /opt/scodoc/log/notes.log.1
# -------------------------------------
iptables -L > "$TMP"/iptables.out
-ip a > "$TMP"/ifconfig.out
+ip a > "$TMP"/ip-a.out
ps auxww > "$TMP"/ps.out
df -h > "$TMP"/df.out
dpkg -l > "$TMP"/dpkg.lst
-(cd /opt/scodoc/Products/ScoDoc; svn status > "$TMP"/svn.status)
-(cd /opt/scodoc/Products/ScoDoc; svn diff > "$TMP"/svn.diff)
+(cd "$SCODOC_HOME"; git status > "$TMP"/git.status)
+(cd "$SCODOC_HOME"; git diff > "$TMP"/git.diff)
-(cd /opt/scodoc/Products/ScoDoc; svnversion > "$TMP"/svn.version)
-ls -laR /opt/scodoc/Products/ScoDoc > "$TMP"/ls-laR
+(cd "$SCODOC_HOME"; git log -n 5 > "$TMP"/git.log)
+ls -laR "$SCODOC_HOME" > "$TMP"/ls-laR
# -------------------------------------
diff --git a/config/doc_poursuites_etudes/README.txt b/tools/doc_poursuites_etudes/README.txt
similarity index 100%
rename from config/doc_poursuites_etudes/README.txt
rename to tools/doc_poursuites_etudes/README.txt
diff --git a/config/doc_poursuites_etudes/distrib/README.txt b/tools/doc_poursuites_etudes/distrib/README.txt
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/README.txt
rename to tools/doc_poursuites_etudes/distrib/README.txt
diff --git a/config/doc_poursuites_etudes/distrib/avis.tex b/tools/doc_poursuites_etudes/distrib/avis.tex
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/avis.tex
rename to tools/doc_poursuites_etudes/distrib/avis.tex
diff --git a/config/doc_poursuites_etudes/distrib/avisPE.cls b/tools/doc_poursuites_etudes/distrib/avisPE.cls
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/avisPE.cls
rename to tools/doc_poursuites_etudes/distrib/avisPE.cls
diff --git a/config/doc_poursuites_etudes/distrib/make_avis.bat b/tools/doc_poursuites_etudes/distrib/make_avis.bat
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/make_avis.bat
rename to tools/doc_poursuites_etudes/distrib/make_avis.bat
diff --git a/config/doc_poursuites_etudes/distrib/modeles/parcourstimeline.tex b/tools/doc_poursuites_etudes/distrib/modeles/parcourstimeline.tex
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/modeles/parcourstimeline.tex
rename to tools/doc_poursuites_etudes/distrib/modeles/parcourstimeline.tex
diff --git a/config/doc_poursuites_etudes/distrib/modeles/un_avis.tex b/tools/doc_poursuites_etudes/distrib/modeles/un_avis.tex
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/modeles/un_avis.tex
rename to tools/doc_poursuites_etudes/distrib/modeles/un_avis.tex
diff --git a/config/doc_poursuites_etudes/distrib/un_footer.tex b/tools/doc_poursuites_etudes/distrib/un_footer.tex
similarity index 100%
rename from config/doc_poursuites_etudes/distrib/un_footer.tex
rename to tools/doc_poursuites_etudes/distrib/un_footer.tex
diff --git a/config/etablissements.csv b/tools/etablissements.csv
similarity index 100%
rename from config/etablissements.csv
rename to tools/etablissements.csv
diff --git a/config/etc/scodoc-updater.service b/tools/etc/scodoc-updater.service
similarity index 84%
rename from config/etc/scodoc-updater.service
rename to tools/etc/scodoc-updater.service
index dd0ca9b9f1..7717cd3be2 100644
--- a/config/etc/scodoc-updater.service
+++ b/tools/etc/scodoc-updater.service
@@ -14,5 +14,5 @@ Description=Update ScoDoc Software
[Service]
Type=oneshot
-ExecStart=/opt/scodoc/Products/ScoDoc/config/upgrade.sh
+ExecStart=/opt/scodoc8/tools/upgrade.sh
diff --git a/config/etc/scodoc-updater.timer b/tools/etc/scodoc-updater.timer
similarity index 100%
rename from config/etc/scodoc-updater.timer
rename to tools/etc/scodoc-updater.timer
diff --git a/config/etc/scodoc.service b/tools/etc/scodoc.service
similarity index 100%
rename from config/etc/scodoc.service
rename to tools/etc/scodoc.service
diff --git a/config/get_scodoc_version.sh b/tools/get_scodoc_version.sh
similarity index 100%
rename from config/get_scodoc_version.sh
rename to tools/get_scodoc_version.sh
diff --git a/config/initialize_database.sh b/tools/initialize_database.sh
similarity index 77%
rename from config/initialize_database.sh
rename to tools/initialize_database.sh
index 9b81c7cdd0..7d126b7edb 100755
--- a/config/initialize_database.sh
+++ b/tools/initialize_database.sh
@@ -1,16 +1,16 @@
#!/bin/bash
# Initialize database (create tables) for a ScoDoc instance
-# This script must be executed as www-data user
+# This script must be executed as user scodoc
#
# $db_name and $DEPT passed as environment variables
source config.sh
source utils.sh
-if [ "$(id -nu)" != "$POSTGRES_USER" ]
+if [ "$(id -nu)" != "$SCODOC_USER" ]
then
- echo "$0: script must be runned as user $POSTGRES_USER"
+ echo "$0: script must be runned as user $SCODOC_USER"
exit 1
fi
@@ -20,4 +20,4 @@ $PSQL -U "$POSTGRES_USER" -p "$POSTGRES_PORT" "$db_name" -f "$SCODOC_DIR"/misc/c
# Set DeptName in preferences:
-echo "insert into sco_prefs (name, value) values ('DeptName', '"${DEPT}\'\) | $PSQL -U "$POSTGRES_USER" -p "$POSTGRES_PORT" "$db_name"
\ No newline at end of file
+echo "insert into sco_prefs (name, value) values ('DeptName', '"${DEPT}\'\) | $PSQL -U "$POSTGRES_USER" -p "$POSTGRES_PORT" "$db_name"
diff --git a/config/install_debian10.sh b/tools/install_debian10.sh
similarity index 86%
rename from config/install_debian10.sh
rename to tools/install_debian10.sh
index fd80ef41e1..1e9e7c4b87 100755
--- a/config/install_debian10.sh
+++ b/tools/install_debian10.sh
@@ -27,19 +27,8 @@ then
fi
# ------------ Permissions & directories
-# source dir should be writable by scodoc to write bytecode files
-chgrp www-data "$SCODOC_DIR" "$SCODOC_DIR"/ZopeProducts/*
-chmod g+w "$SCODOC_DIR" "$SCODOC_DIR"/ZopeProducts/*
+chown -R "$SCODOC_USER"."$SCODOC_GROUP" "${SCODOC_DIR}"
-if [ -d "${SCODOC_VAR_DIR}"/photos ]; then
- chgrp -R www-data "${SCODOC_VAR_DIR}"/photos
- chmod -R g+w "${SCODOC_VAR_DIR}"/photos
-fi
-
-if [ ! -e "${SCODOC_VERSION_DIR}" ]; then
- mkdir -p "${SCODOC_VERSION_DIR}"
- chown www-data.www-data "${SCODOC_VERSION_DIR}"
-fi
# ------------ LOCALES
echo
@@ -64,7 +53,7 @@ done
/usr/sbin/locale-gen --keep-existing
-
+# Voir si encore nécessaire avec ScoDoc8: ?
if [ "$LANG" != "en_US.UTF-8" ]
then
# ceci est necessaire a cause de postgresql 8.3 qui
@@ -76,9 +65,6 @@ then
fi
echo 'Done.'
-# ------------ FIX pour passage Debian 7 -> Debian >= 8
-chsh -s /bin/sh www-data
-
# ------------ AJOUT DES PAQUETS NECESSAIRES
apt-get update
apt-get -y install subversion curl cracklib-runtime
@@ -175,7 +161,7 @@ then
fi
# ---
echo 'generation de /etc/apache2/sites-available/scodoc-site-ssl'
- cat "$SCODOC_DIR"/config/etc/scodoc-site-ssl-apache2.4.orig | sed -e "s:YOUR\.FULL\.HOST\.NAME:$server_name:g" > /etc/apache2/sites-available/scodoc-site-ssl.conf
+ cat "$SCODOC_DIR"/tools/etc/scodoc-site-ssl-apache2.4.orig | sed -e "s:YOUR\.FULL\.HOST\.NAME:$server_name:g" > /etc/apache2/sites-available/scodoc-site-ssl.conf
echo 'activation du site...'
a2ensite scodoc-site-ssl
@@ -185,7 +171,7 @@ then
then
mv $fn $fn.bak
fi
- cp "$SCODOC_DIR"/config/etc/scodoc-site.orig $fn
+ cp "$SCODOC_DIR"/tools/etc/scodoc-site.orig $fn
if [ -z "$(grep Listen /etc/apache2/ports.conf | grep 443)" ]
then
@@ -218,7 +204,7 @@ read ans
if [ "$(norm_ans "$ans")" != 'N' ]
then
# ScoDoc 7.19+ uses systemd
- $SCODOC_DIR/config/configure_systemd.sh
+ $SCODOC_DIR/tools/configure_systemd.sh
fi
@@ -228,8 +214,8 @@ echo -n "Mises a jour hebdomadaires (tres recommande) ? (y/n) [y] "
read ans
if [ "$(norm_ans "$ans")" != 'N' ]
then
- cp "$SCODOC_DIR"/config/etc/scodoc-updater.service /etc/systemd/system
- cp "$SCODOC_DIR"/config/etc/scodoc-updater.timer /etc/systemd/system
+ cp "$SCODOC_DIR"/tools/etc/scodoc-updater.service /etc/systemd/system
+ cp "$SCODOC_DIR"/tools/etc/scodoc-updater.timer /etc/systemd/system
systemctl enable scodoc-updater.timer
systemctl start scodoc-updater.timer
fi
@@ -241,7 +227,7 @@ echo
echo "Vous pouvez maintenant creer la base d'utilisateurs avec ./create_user_db.sh"
echo "puis creer un departement avec ./create_dept.sh"
echo "Ou bien restaurer vos donnees a partir d'une ancienne installation a l'aide du script restore_scodoc_data.sh"
-echo "(voir https://trac.lipn.univ-paris13.fr/projects/scodoc/wiki/MigrationDonneesScoDoc)"
+echo "(voir https://scodoc.org/MigrationDonneesScoDoc/)"
echo
diff --git a/config/postupgrade-db.py b/tools/postupgrade-db.py
similarity index 99%
rename from config/postupgrade-db.py
rename to tools/postupgrade-db.py
index 1c69351dc1..bec3038ee0 100755
--- a/config/postupgrade-db.py
+++ b/tools/postupgrade-db.py
@@ -6,7 +6,7 @@ ScoDoc post-upgrade script: databases housekeeping
This script is runned by upgrade.sh after each SVN update.
-Runned as "www-data" with Zope shutted down and postgresql up.
+Runned as "scodoc" with ScoDoc shutted down and postgresql up.
Useful to update database schema (eg add new tables or columns to
diff --git a/tools/postupgrade.py b/tools/postupgrade.py
new file mode 100755
index 0000000000..c776254d92
--- /dev/null
+++ b/tools/postupgrade.py
@@ -0,0 +1,31 @@
+#!/opt/zope213/bin/python
+# -*- coding: utf-8 -*-
+
+"""
+ScoDoc post-upgrade script.
+
+This script is launched by upgrade.sh after each SVN update.
+
+Run as "root" with Zope shutted down and postgresql up,
+_before_ upgrading the database.
+
+E. Viennet, June 2008
+Mar 2017: suppress upgrade of very old Apache configs
+Aug 2020: move photos to .../var/scodoc/
+Apr 2021: bug #70
+Jun 2021: update for ScoDoc8
+"""
+import os
+import sys
+import glob
+import shutil
+from scodocutils import log, SCODOC_DIR, SCODOC_VAR_DIR, SCODOC_LOGOS_DIR, SCO_TMPDIR
+
+if os.getuid() != 0:
+ log("postupgrade.py: must be run as root")
+ sys.exit(1)
+
+# Continue here...
+
+# ---
+sys.exit(0)
diff --git a/config/psql_restore_databases.sh b/tools/psql_restore_databases.sh
similarity index 53%
rename from config/psql_restore_databases.sh
rename to tools/psql_restore_databases.sh
index e18f595017..ad4046a225 100755
--- a/config/psql_restore_databases.sh
+++ b/tools/psql_restore_databases.sh
@@ -5,18 +5,6 @@
PG_DUMPFILE=$1
-# Check locale of installation. If invalid, reinitialize all system
-
-is_latin1=$(psql -l | grep postgres | grep iso88591 | wc -l)
-if [ "$is_latin1" -gt 1 ]
-then
- echo "Recreating postgres cluster using UTF-8"
-
- pg_dropcluster --stop 9.1 main
-
- pg_createcluster --locale en_US.UTF-8 --start 9.1 main
-fi
-
# Drop all current ScoDoc databases, if any:
for f in $(psql -l --no-align --field-separator . | grep SCO | cut -f 1 -d.); do
diff --git a/config/restore_scodoc_data.sh b/tools/restore_scodoc_data.sh
similarity index 80%
rename from config/restore_scodoc_data.sh
rename to tools/restore_scodoc_data.sh
index e94b15111d..bba6c10438 100755
--- a/config/restore_scodoc_data.sh
+++ b/tools/restore_scodoc_data.sh
@@ -6,14 +6,10 @@
# Utile pour migrer ScoDoc d'un serveur a un autre
# A executer en tant que root sur le nouveau serveur
#
-# E. Viennet, Sept 2011, Nov 2013, Mar 2017, Aug 2020
+# E. Viennet, Sept 2011, Nov 2013, Mar 2017, Aug 2020, Jul 2021
#
-
-INSTANCE_DIR=/opt/scodoc/
-SCODOC_DIR="${INSTANCE_DIR}/Products/ScoDoc"
-SCODOC_VAR_DIR="${INSTANCE_DIR}/var/scodoc"
-
+source config.sh
source utils.sh
check_uid_root "$0"
@@ -78,19 +74,19 @@ chmod a+rx "$SRC"
chmod a+r "$SRC"/scodoc.dump.txt
PG_DUMPFILE="$SRC/scodoc.dump.txt"
-su -c "$SCODOC_DIR/config/psql_restore_databases.sh $PG_DUMPFILE" postgres
+su -c "$SCODOC_DIR/tools/psql_restore_databases.sh $PG_DUMPFILE" postgres
#
echo Copying data files...
-rm -rf "${INSTANCE_DIR:?}/var"
-$COPY "$SRC/var" "$INSTANCE_DIR"
+rm -rf "${SCODOC_DIR:?}/var"
+$COPY "$SRC/var" "$SCODOC_DIR"
if [ ! -e "${SCODOC_VAR_DIR:?}/config/" ]
then
mkdir "${SCODOC_VAR_DIR:?}/config/"
- chown www-data.www-data "${SCODOC_VAR_DIR:?}/config/"
- chmod 775 "${SCODOC_VAR_DIR:?}/config/"
+ chown "$SCODOC_USER"."$SCODOC_GROUP" "${SCODOC_VAR_DIR:?}/config/"
+ chmod 755 "${SCODOC_VAR_DIR:?}/config/"
fi
rm -rf "${SCODOC_DIR:?}/config/depts"
@@ -119,15 +115,12 @@ then
iconv -f iso8859-15 -t utf-8 "$SCODOC_DIR/config/scodoc_config.py.orig" > "$SCODOC_DIR/config/scodoc_config.py"
fi
-rm -rf "${INSTANCE_DIR:?}/log"
-$COPY "$SRC/log" "$INSTANCE_DIR/"
+rm -rf "${SCODOC_DIR:?}/log"
+$COPY "$SRC/log" "$SCODOC_DIR/"
# Fix file ownership and access rights
-chown -R www-data.root "$INSTANCE_DIR/log"
-chown -R www-data.root "$INSTANCE_DIR/var"
-chmod 775 "$INSTANCE_DIR./log" "$INSTANCE_DIR./var"
-chown -R www-data.root "$SCODOC_DIR"
-chmod -R 775 "$SCODOC_DIR"
+chown -R "$SCODOC_USER"."$SCODOC_GROUP" "${SCODOC_DIR}"
+chmod -R 755 "$SCODOC_DIR"
# Remove tmp directory
if [ "$IS_TMP" = "1" ]
diff --git a/config/save_scodoc_data.sh b/tools/save_scodoc_data.sh
similarity index 56%
rename from config/save_scodoc_data.sh
rename to tools/save_scodoc_data.sh
index e599525f44..8e98f2781e 100755
--- a/config/save_scodoc_data.sh
+++ b/tools/save_scodoc_data.sh
@@ -6,8 +6,9 @@
# Utile pour migrer ScoDoc d'un serveur a un autre
# Executer en tant que root sur le serveur d'origine
#
-# E. Viennet, Sept 2011, Aug 2020
+# E. Viennet, Sept 2011, Aug 2020, Jul 2021
#
+source config.sh
source utils.sh
check_uid_root "$0"
@@ -33,15 +34,6 @@ else
exit 2
fi
-INSTANCE_DIR=/opt/scodoc
-SCODOC_DIR="$INSTANCE_DIR/Products/ScoDoc"
-
-<<<<<<< HEAD
-=======
-source utils.sh
-check_uid_root "$0"
-
->>>>>>> e2a2b0f0836fc6de922c35b77b236379783e7590
echo "Stopping ScoDoc..."
scodocctl stop
@@ -51,44 +43,18 @@ chown postgres "$DEST"
su -c "pg_dumpall > \"$DEST\"/scodoc.dump.txt" postgres
if [ ! "$?" -eq 0 ]
then
-<<<<<<< HEAD
printf "Error dumping postgresql database\nPlease check that SQL server is running\nAborting.\n"
-=======
- printf "Error dumping postgresql database\nPlease check that SQL server is running\nAborting."
->>>>>>> e2a2b0f0836fc6de922c35b77b236379783e7590
exit 1
fi
chown root "$DEST"
-# Zope DB, ScoDoc archives, configuration, photos, etc.
+# ScoDoc archives, configuration, photos, etc.
echo "Copying var/ ..."
-cp -rp "$INSTANCE_DIR/var" "$DEST"
+cp -rp "$SCODOC_DIR/var" "$DEST"
-# Depts db config (now in .../var)
-shopt -s nullglob
-if [ -n "$(echo ${SCODOC_DIR}/config/depts/*.cfg)" ]
-then
- echo "Copying legacy depts configs..."
- cp -rp "$SCODOC_DIR/config/depts" "$DEST"
-fi
-
-
-
-# Photos des etudiants (now in .../var)
-if [ -e "$SCODOC_DIR/static/photos" ]
-then
- echo "Copying legacy photos..."
- cp -rp "$SCODOC_DIR/static/photos" "$DEST"
-fi
-
-echo "Copying logos..."
-cp -rp "$SCODOC_DIR/logos" "$DEST"
-
-echo "Copying configuration file..."
-cp -p "$SCODOC_DIR/config/scodoc_config.py" "$DEST"
echo "Copying server logs..."
-cp -rp "$INSTANCE_DIR/log" "$DEST"
+cp -rp "$SCODOC_DIR/log" "$DEST"
# --- Archive all files in a tarball to ease transfer
diff --git a/config/scodoc_config.py b/tools/scodoc_config.py
similarity index 98%
rename from config/scodoc_config.py
rename to tools/scodoc_config.py
index 098b85c381..7173559aaa 100644
--- a/config/scodoc_config.py
+++ b/tools/scodoc_config.py
@@ -118,7 +118,7 @@ CONFIG.CUSTOM_HTML_FOOTER_CNX = CONFIG.CUSTOM_HTML_FOOTER
# Fichier de correspondance codelycee -> noms
# (chemin relatif au repertoire d'install des sources)
-CONFIG.ETABL_FILENAME = "config/etablissements.csv"
+CONFIG.ETABL_FILENAME = "tools/etablissements.csv"
# ----------------------------------------------------
diff --git a/config/scodoc_config_tmpl.py b/tools/scodoc_config_tmpl.py
similarity index 97%
rename from config/scodoc_config_tmpl.py
rename to tools/scodoc_config_tmpl.py
index 00e5fc7358..b13b27dc31 100644
--- a/config/scodoc_config_tmpl.py
+++ b/tools/scodoc_config_tmpl.py
@@ -3,7 +3,7 @@
#
# Configuration globale de ScoDoc (version juin 2009)
-# Ce fichier est copié dans /opt/scodoc/var/scodoc/config
+# Ce fichier est copié dans /opt/scodoc8/var/scodoc/config
# par les scripts d'installation/mise à jour.
# La plupart des réglages sont stoqués en base de donnée et accessibles via le web
@@ -101,7 +101,7 @@ CONFIG = CFG()
# -----------------------------------------------------
# Fichier de correspondance codelycee -> noms
# (chemin relatif au repertoire d'install des sources)
-# CONFIG.ETABL_FILENAME = "config/etablissements.csv"
+# CONFIG.ETABL_FILENAME = "tools/etablissements.csv"
# ----------------------------------------------------
diff --git a/config/scodocutils.py b/tools/scodocutils.py
similarity index 100%
rename from config/scodocutils.py
rename to tools/scodocutils.py
diff --git a/config/upgrade.sh b/tools/upgrade.sh
similarity index 73%
rename from config/upgrade.sh
rename to tools/upgrade.sh
index 4f824165b1..0a451fd1a1 100644
--- a/config/upgrade.sh
+++ b/tools/upgrade.sh
@@ -10,7 +10,7 @@
#
# E. Viennet, sep 2013, mar 2017, jun 2019, aug 2020, dec 2020
-cd /opt/scodoc/Products/ScoDoc/config || { echo "Invalid directory"; exit 1; }
+cd /opt/scodoc8 || { echo "Invalid directory"; exit 1; }
source config.sh
source utils.sh
@@ -21,13 +21,6 @@ if [ -z "$SCODOC_UPGRADE_RUNNING" ]
apt-get update && apt-get -y dist-upgrade
fi
-# Upgrade svn working copy if possible
-svnver=$(svn --version --quiet)
-# shellcheck disable=SC2072
-if [[ ${svnver} > "1.7" ]]
-then
- (cd "$SCODOC_DIR"; find . -name .svn -type d -exec dirname {} \; | xargs svn upgrade)
-fi
scodocctl stop
@@ -39,7 +32,7 @@ SVNVERSION=$(cd ..; svnversion)
if [ ! -e "${SCODOC_VERSION_DIR}" ]; then
mkdir -p "${SCODOC_VERSION_DIR}"
- chown www-data.www-data "${SCODOC_VERSION_DIR}"
+ chown "$SCODOC_USER"."$SCODOC_GROUP" "${SCODOC_VERSION_DIR}"
fi
if [ ! -e "${SCODOC_VERSION_DIR}"/scodoc.sn ]; then
if [ -e "$SCODOC_DIR"/config/scodoc.sn ]; then
@@ -79,30 +72,14 @@ then
fi
# Fix some permissions which may have been altered in the way:
-chsh -s /bin/sh "$POSTGRES_USER" # www-data, nologin in Debian 9
-chown root.www-data "$SCODOC_DIR" # important to create .pyc
-chmod 775 "${SCODOC_DIR}"
-chmod a+r "$SCODOC_DIR"/*.py
+chown -R "$SCODOC_USER"."$SCODOC_GROUP" "${SCODOC_DIR}"
+chmod -R 775 "${SCODOC_DIR}"
-chown -R root.www-data "$SCODOC_DIR"/config
-chmod 775 "$SCODOC_DIR"/config
-chmod a+rx "$SCODOC_DIR"/config/postupgrade-db.py
-chmod a+r "$SCODOC_DIR"/config/scodocutils.py
-
-chown -R root.www-data "$SCODOC_DIR"/misc
-chmod -R a+r "$SCODOC_DIR"/misc
# depts dir:
if [ ! -e "${SCODOC_VAR_DIR}/config/depts" ]
then
mkdir "${SCODOC_VAR_DIR}/config/depts"
fi
-# ScoDoc must be able to write to var directory:
-chown -R www-data.www-data "${SCODOC_VAR_DIR}"
-chmod -R u+w "${SCODOC_VAR_DIR}"
-
-# Important to create .pyc:
-chgrp -R www-data "${SCODOC_DIR}"/ZopeProducts
-chmod -R g+w "${SCODOC_DIR}"/ZopeProducts
# Se recharge car ce fichier peut avoir change durant le svn up !
if [ -z "$SCODOC_UPGRADE_RUNNING" ]
@@ -137,8 +114,8 @@ fi
v=$(/opt/zope213/bin/python -c "import dateutil; print dateutil.__version__")
[[ "$v" < "2.8.1" ]] && /opt/zope213/bin/pip install --upgrade python-dateutil
-# Ensure www-data can duplicate databases (for dumps)
-su -c $'psql -c \'alter role "www-data" with CREATEDB;\'' "$POSTGRES_SUPERUSER"
+# Ensure scodoc can duplicate databases (for dumps)
+su -c $'psql -c \'alter role "scodoc" with CREATEDB;\'' "$POSTGRES_SUPERUSER"
#'
# post-upgrade scripts
diff --git a/config/utils.sh b/tools/utils.sh
similarity index 89%
rename from config/utils.sh
rename to tools/utils.sh
index 42ae9e2dbc..b192db7a66 100644
--- a/config/utils.sh
+++ b/tools/utils.sh
@@ -49,13 +49,13 @@ scodocctl() {
fi
}
-# --- Ensure postgres user www-data exists
+# --- Ensure postgres user scodoc exists
init_postgres_user() { # run as root
if [ -z $(echo "select usename from pg_user;" | su -c "$PSQL -d template1 -p $POSTGRES_PORT" $POSTGRES_SUPERUSER | grep $POSTGRES_USER) ]
then
# add database user
echo "Creating postgresql user $POSTGRES_USER"
- su -c "createuser -p $POSTGRES_PORT --no-superuser --no-createdb --no-adduser --no-createrole ${POSTGRES_USER}" "$POSTGRES_SUPERUSER"
+ su -c "createuser -p $POSTGRES_PORT --createdb --no-superuser --no-adduser --no-createrole ${POSTGRES_USER}" "$POSTGRES_SUPERUSER"
fi
}