Bug 53782 - Configure repository + apt pinning for UCS@school 5.0 upgrade
Configure repository + apt pinning for UCS@school 5.0 upgrade
Status: CLOSED FIXED
Product: UCS@school
Classification: Unclassified
Component: General
UCS@school 4.4
Other Linux
: P5 normal (vote)
: UCS@school 5.0 v1
Assigned To: Felix Botner
Florian Best
:
Depends on:
Blocks: 53711
  Show dependency treegraph
 
Reported: 2021-09-13 16:21 CEST by Florian Best
Modified: 2022-05-13 17:27 CEST (History)
1 user (show)

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Best univentionstaff 2021-09-13 16:21:25 CEST
We need several fixes in UCS packages for the upgrade of UCS@school 5.0 to complete the upgrade successfully.

(because this is the first UCS@school release which is done after the UCS release).

As the upgrade from UCS 4.4 to UCS 5.5 upgrades all packages from UCS 5.0 first and then the packages of all (app-center) components we need to add a `Releases` file to the component containing a label which can be pinned with a priority higher than the UCS 5.0 release.

(In reply to Felix Botner from Bug #53711 comment #14)
> for the 5.0-0 update we set 
> 
> [ -f /etc/apt/preferences.d/99ucs500.pref ] ||
> cat >/etc/apt/preferences.d/99ucs500.pref <<__PREF__
> Package: *
> Pin: release l=Univention Corporate Server, v=5.0.0
> Pin-Priority: 1001
> __PREF__
> [ -f /etc/apt/apt.conf.d/99ucs500 ] ||
> 	echo 'APT::Get::Allow-Downgrades "true";' >/etc/apt/apt.conf.d/99ucs500
> 
> what this means (as far as i understand) is, for all packages use the 5.0-0
> release even if that is a downgrade or there are higher versions from other
> sources
> 
> that is why the univention package from the app's repo are not installed
> during the update to 5.0-0
> 
> just for testing i added 
> 
> Package: *
> Pin: origin appcenter-test.software-univention.de
> Pin-Priority: 1002
Comment 2 Florian Best univentionstaff 2021-09-13 16:41:17 CEST
We need to ship the following UCS source packages / bugs within the UCS@school 5.0 release: 

Bug #53553: broken search filters in UDM causes that no UCS@school computers are found anymore.
univention-directory-manager-modules
→ dependency on univention-python

Bug #53459: The self service still runs with Python 2, but Python 2 compatibility was broken.
univention-self-service

Bug #53071: during the upgrade no tracebacks are logged into the listener.log
univention-directory-listener

Bug #53712: radius service has no config and is not running after upgrade to UCS 5.0
univention-freeradius

Bug #53458 - samba-shares.py listener: TypeError: cannot use a string pattern on a bytes-like object. Error in the postup.sh during listener-ctrl resync of the module with a ACL feature only used in UCS@school.
univention-samba4

Bug #53779 - UMCP doesn't support mimetypes containing "+" (e.g. image/svg+xml)) which is now required by the Coputerroom module
univention-management-console

Bug #53742: UCR variables cannot contain Umlauts anymore, which is required by the UCS@school internetrules
univention-config-registry

Bug #53705: re-add CLI argument --binddn and --bindpwdfile to msgpo.py tool, which is used in UCS@school
univention-s4-connector

Bug #50593: Prevent removal of exam mode users in the S4-Connector
univention-s4-connector

Bug #53665: fix various issues regarding the new UMC Design, and the light theme, required for the UCS@school UMC modules design
univention-admin-diary
univention-appcenter
univention-management-console-module-services
univention-management-console-module-top
univention-management-console-module-ucr
univention-management-console-module-udm
univention-management-console
univention-pkgdb
univention-printserver
univention-quota
univention-system-setup
univention-updater
univention-web
Comment 3 Felix Botner univentionstaff 2021-09-13 22:12:08 CEST
added 
 * Release Files
 * preup (to pin the school repo with 1002)
 * postup (to remove the pin config)

to ucsschool/release-postup-preup

There are several manual steps involved, added a helper update-release-pup.sh for the creation and signing of the Release/post/preup files.

Please check if the update still works and the readme is understandable.

!! Every time we change the package files in the school repo, we have to (re) create the Release Files!!

TODO:
copy the ucs packages into the school repo and update the Release files.
Comment 4 Florian Best univentionstaff 2021-09-14 08:49:46 CEST
Binary packages:

grep -h ^Package: */{univention-directory-manager-modules,univention-python,univention-self-service,univention-directory-listener,univention-radius,univention-samba4,univention-management-console,univention-config-registry,univention-s4-connector,univention-admin-diary,univention-appcenter,univention-management-console-module-services,univention-management-console-module-top,univention-management-console-module-ucr,univention-management-console-module-udm,univention-management-console,univention-pkgdb,univention-printserver,univention-quota,univention-system-setup,univention-updater,univention-web}/debian/control | sed 's#Package: ##g' | tr '\n' ','

→

python-univention-directory-manager,python-univention-directory-manager-cli,python3-univention-directory-manager,python3-univention-directory-manager-cli,univention-directory-manager-tools,python-univention-namespace,python-univention,python3-univention,univention-self-service,univention-self-service-master,univention-self-service-passwordreset-umc,univention-self-service-invitation,univention-directory-listener,univention-radius,python-univention-radius,python3-univention-radius,univention-samba4,univention-samba4-sysvol-sync,univention-management-console,univention-management-console-server,python-univention-management-console,python3-univention-management-console,univention-management-console-dev,univention-management-console-frontend,univention-management-console-web-server,univention-management-console-login,univention-config-registry,univention-config,univention-config-dev,libunivention-config0,libunivention-config-dev,python-univention-config-registry,python3-univention-config-registry,python-univention-connector-s4,python3-univention-connector-s4,univention-s4-connector,univention-admin-diary-backend,python-univention-admin-diary-backend,python3-univention-admin-diary-backend,univention-management-console-module-admindiary,univention-admin-diary-client,python-univention-admin-diary,python3-univention-admin-diary,univention-management-console-module-appcenter,univention-appcenter,python-univention-appcenter,python3-univention-appcenter,univention-appcenter-dev,python-univention-appcenter-dev,python3-univention-appcenter-dev,univention-appcenter-docker,python-univention-appcenter-docker,python3-univention-appcenter-docker,univention-management-console-module-apps,univention-management-console-module-services,univention-management-console-module-top,univention-management-console-module-ucr,univention-management-console-module-udm,univention-management-console,univention-management-console-server,python-univention-management-console,python3-univention-management-console,univention-management-console-dev,univention-management-console-frontend,univention-management-console-web-server,univention-management-console-login,univention-pkgdb,python-univention-pkgdb,python3-univention-pkgdb,univention-pkgdb-tools,univention-management-console-module-pkgdb,univention-printserver,univention-printserver-pdf,univention-management-console-module-printers,univention-quota,univention-management-console-module-quota,univention-system-setup,univention-system-setup-boot,di-univention-system-setup,univention-management-console-module-setup,univention-updater,python-univention-updater,python3-univention-updater,univention-management-console-module-updater,univention-web-js,univention-web-style,univention-web-src

Copy command:

curl https://provider-portal.software-univention.de/appcenter-selfservice/univention-appcenter-control | python - upload 5.0/ucsschool --username "$USER" /var/univention/buildsystem2/apt/ucs_5.0-0-errata5.0-0/{all,amd64}/{$INSERT_PACKAGES_HERE}_*.deb
Comment 5 Florian Best univentionstaff 2021-09-14 08:58:30 CEST
Together with all UCS@school packages:

time curl https://provider-portal.software-univention.de/appcenter-selfservice/univention-appcenter-control | python - upload 5.0/ucsschool --username fbest /var/univention/buildsystem2/apt/ucs_5.0-0-ucs-school-5.0/{all,amd64}/*.deb /var/univention/buildsystem2/apt/ucs_5.0-0-errata5.0-0/{all,amd64}/{python-univention-directory-manager,python-univention-directory-manager-cli,python3-univention-directory-manager,python3-univention-directory-manager-cli,univention-directory-manager-tools,python-univention-namespace,python-univention,python3-univention,univention-self-service,univention-self-service-master,univention-self-service-passwordreset-umc,univention-self-service-invitation,univention-directory-listener,univention-radius,python-univention-radius,python3-univention-radius,univention-samba4,univention-samba4-sysvol-sync,univention-management-console,univention-management-console-server,python-univention-management-console,python3-univention-management-console,univention-management-console-dev,univention-management-console-frontend,univention-management-console-web-server,univention-management-console-login,univention-config-registry,univention-config,univention-config-dev,libunivention-config0,libunivention-config-dev,python-univention-config-registry,python3-univention-config-registry,python-univention-connector-s4,python3-univention-connector-s4,univention-s4-connector,univention-admin-diary-backend,python-univention-admin-diary-backend,python3-univention-admin-diary-backend,univention-management-console-module-admindiary,univention-admin-diary-client,python-univention-admin-diary,python3-univention-admin-diary,univention-management-console-module-appcenter,univention-appcenter,python-univention-appcenter,python3-univention-appcenter,univention-appcenter-dev,python-univention-appcenter-dev,python3-univention-appcenter-dev,univention-appcenter-docker,python-univention-appcenter-docker,python3-univention-appcenter-docker,univention-management-console-module-apps,univention-management-console-module-services,univention-management-console-module-top,univention-management-console-module-ucr,univention-management-console-module-udm,univention-management-console,univention-management-console-server,python-univention-management-console,python3-univention-management-console,univention-management-console-dev,univention-management-console-frontend,univention-management-console-web-server,univention-management-console-login,univention-pkgdb,python-univention-pkgdb,python3-univention-pkgdb,univention-pkgdb-tools,univention-management-console-module-pkgdb,univention-printserver,univention-printserver-pdf,univention-management-console-module-printers,univention-quota,univention-management-console-module-quota,univention-system-setup,univention-system-setup-boot,di-univention-system-setup,univention-management-console-module-setup,univention-updater,python-univention-updater,python3-univention-updater,univention-management-console-module-updater,univention-web-js,univention-web-style,univention-web-src}_*.deb
Comment 6 Felix Botner univentionstaff 2021-09-14 10:14:15 CEST
Updated the release files.

during the update is see

-> apt policy 
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://updates-test.knut.univention.de/5.0/maintained/component ucsschool_DEVEL/amd64/ Packages
     release v=ucsschool_DEVEL,o=Univention,n=ucsschool_DEVEL/amd64,l=Univention,c=
     origin updates-test.knut.univention.de
 500 http://updates-test.knut.univention.de/5.0/maintained/component ucsschool_DEVEL/all/ Packages
     release v=ucsschool_DEVEL,o=Univention,n=ucsschool_DEVEL/all,l=Univention,c=
     origin updates-test.knut.univention.de
1002 https://appcenter-test.software-univention.de/univention-repository/5.0/maintained/component ucsschool_20201208103021/amd64/ Packages
     release v=ucsschool_20201208103021,o=Univention,a=apt,n=ucsschool_20201208103021/amd64,l=ucs@school,c=
     origin appcenter-test.software-univention.de
1002 https://appcenter-test.software-univention.de/univention-repository/5.0/maintained/component ucsschool_20201208103021/all/ Packages
     release v=ucsschool_20201208103021,o=Univention,a=apt,n=ucsschool_20201208103021/all,l=ucs@school,c=
     origin appcenter-test.software-univention.de
1001 http://updates-test.knut.univention.de ucs500/main amd64 Packages
     release v=5.0.0,o=Univention,a=ucs500,n=ucs500,l=Univention Corporate Server,c=main,b=amd64
     origin updates-test.knut.univention.de

updater.log:
  Holen:20 https://appcenter-test.software-univention.de/univention-repository/5.0/maintained/component ucsschool_20201208103021/amd64/ univention-directory-listener 14.0.5-3A~5.0.0.202108021751 [97,7 kB]


-> cat /etc/apt/preferences.d/99ucsschool500.pref 
Package: *
Pin: release ucs@school, o=Univention, l=ucs@school, v=ucsschool_20201208103021
Pin-Priority: 1002

after update:

-> cat /etc/apt/preferences.d/99ucsschool500.pref 
cat: /etc/apt/preferences.d/99ucsschool500.pref: Datei oder Verzeichnis nicht gefunden

-> apt policy
Paketdateien:
 100 /var/lib/dpkg/status
     release a=now
 500 https://appcenter-test.software-univention.de/univention-repository/5.0/maintained/component ucsschool_20201208103021/amd64/ Packages
     release v=ucsschool_20201208103021,o=Univention,a=apt,n=ucsschool_20201208103021/amd64,l=ucs@school,c=
     origin appcenter-test.software-univention.de
 500 https://appcenter-test.software-univention.de/univention-repository/5.0/maintained/component ucsschool_20201208103021/all/ Packages
     release v=ucsschool_20201208103021,o=Univention,a=apt,n=ucsschool_20201208103021/all,l=ucs@school,c=
     origin appcenter-test.software-univention.de
 500 http://updates-test.knut.univention.de ucs500/main amd64 Packages
     release v=5.0.0,o=Univention,a=ucs500,n=ucs500,l=Univention Corporate Server,c=main,b=amd64
     origin updates-test.knut.univention.de
Mit Pinning verwaltete Pakete:


preup -> creates /etc/apt/preferences.d/99ucsschool500.pref 
postup -> rm /etc/apt/preferences.d/99ucsschool500.pref 


!!! Once again, we have to update the release files every time we add/remove a package form the school app.
Comment 7 Florian Best univentionstaff 2021-09-16 18:09:55 CEST
OK
Comment 8 Florian Best univentionstaff 2021-10-15 22:24:34 CEST
https://forge.univention.org/bugzilla/show_bug.cgi?id=53927 - displayName of computer objects can only contain ASCII, not UTF-8 anymore.
Comment 9 Jürn Brodersen univentionstaff 2021-11-29 17:19:50 CET
UCS@school 5.0 v1 has been released.

https://docs.software-univention.de/release-notes-ucsschool-5.0v1-de.html

If this error occurs again, please clone this bug.
Comment 10 Sönke Schwardt-Krummrich univentionstaff 2022-05-13 17:27:46 CEST
IMPORTANT NOTE: 
this did not work (in the first attempt) because the Release file did not match the APT pinning! → bug 54756