diff --git a/Admin/components/README b/Admin/components/README --- a/Admin/components/README +++ b/Admin/components/README @@ -1,78 +1,72 @@ Notes on maintaining the Isabelle component repository at TUM ============================================================= Quick reference --------------- - * ensure that Isabelle/Scala/SSH can connect to the host specified via - system option `isabelle_components_server`; this may require to install - an unencrypted ssh host key as follows: - - $ ssh-keyscan -t rsa lxbroy10.informatik.tu-muenchen.de >> ~/.ssh/known_hosts - * local setup (and test) of component directory, e.g. in screwdriver-3.14/ * packaging (with associated SHA1 digest), e.g. $ isabelle build_components screwdriver-3.14 * publishing, e.g. $ isabelle build_components -P screwdriver-3.14.tar.gz * manual editing of Admin/components/main: screwdriver-3.14 Unique names ------------ Component names are globally unique over time and space: names of published components are never re-used. If some component needs to be re-packaged, extra indices may be added to the official version number like this: screwdriver-3.14 #default packaging/publishing, no index screwdriver-3.14-1 #another refinement of the same screwdriver-3.14-2 #yet another refinement of the same There is no standard format for the structure of component names: they are compared for equality only, without any guess at an ordering. Components are registered in Admin/components/main (or similar) for use of that particular Isabelle repository version, subject to regular Mercurial history. This allows to bisect Isabelle versions with full record of the required components for testing. Authentic archives ------------------ Isabelle components are managed as authentic .tar.gz archives in /home/isabelle/components from where they are made publicly available on https://isabelle.in.tum.de/components/. Visibility on the HTTP server depends on local Unix file permission: nonfree components should omit "read" mode for the Unix group/other; regular components should be world-readable. The file `Admin/components/components.sha1` contains SHA1 identifiers within the Isabelle repository, for integrity checking of the archives that are exposed to the public file-system. The command-line tool `isabelle build_components` maintains these hash-keys automatically. Unpacked copy ------------- A second unpacked copy is provided in `/home/isabelle/contrib/`. This allows users and administrative services within the TUM network to activate arbitrary snapshots of the repository with all standard components being available, without extra copying or unpacking of the authentic archives. The isabelle_cronjob does this routinely: it will break if the unpacked version is omitted. The command-line tool `isabelle build_components -P` takes care of uploading the .tar.gz archive and unpacking it, unless it is a special component (e.g. for multiplatform application bundling). diff --git a/Admin/cronjob/README b/Admin/cronjob/README --- a/Admin/cronjob/README +++ b/Admin/cronjob/README @@ -1,59 +1,55 @@ Administrative Isabelle cronjob =============================== - main server: virtual machine with cronjob and build_log database - backup file-system (for cumulative log files): i21isatest@lxbroy10:cronjob - backup identify job: i21isatest@lxcisa0 - jobs: manual installation on target directory: cp "$ISABELLE_HOME/Admin/cronjob/self_update "$HOME/cronjob/self_update" cp "$ISABELLE_HOME/Admin/cronjob/plain_identify "$HOME/cronjob/plain_identify" - crontab: manual update on target machine crontab -l crontab -e - $HOME/cronjob/run/ -- run-time state - $HOME/cronjob/log/ -- cumulative log area Build Log Database Server ========================= - Ubuntu 20.04 LTS Linux Server standard installation https://help.ubuntu.com/lts/serverguide - apt install unattended-upgrades - special user account: useradd -m -s /bin/bash isatest -- SSH access for jsch (on each client): - LOCALHOST$ ssh-keyscan -t rsa DBSERVER - >> ~/.ssh/known_hosts - - PostgreSQL: $ apt install postgresql $ apt install postgresql-client $ sudo -u postgres psql template1 ALTER USER postgres with encrypted password '***'; $ edit /etc/postgresql/10/main/pg_hba.conf local all postgres md5 local all all md5 $ systemctl restart postgresql.service $ createuser -U postgres --interactive isatest ALTER USER isatest with encrypted password '***'; $ createdb -E UTF8 -T template0 --locale=en_US.utf8 -U postgres -O isatest isatest - Database backup or migration: https://www.postgresql.org/docs/9.5/static/backup-dump.html pg_dump -U postgres -Fc -v -d isatest > db.dump pg_restore -U postgres -Fc -v -d isatest < db.dump