Bug 48910 - Newly created UCS 4.4 repository can't be used without univention-repository-update
Newly created UCS 4.4 repository can't be used without univention-repository-...
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Update - Repository administration
UCS 4.4
Other Linux
: P5 normal (vote)
: UCS 4.4
Assigned To: Philipp Hahn
Stefan Gohmann
:
Depends on:
Blocks: 48941
  Show dependency treegraph
 
Reported: 2019-03-07 20:14 CET by Stefan Gohmann
Modified: 2019-03-12 13:40 CET (History)
1 user (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 4: Minor Usability: Impairs usability in secondary scenarios
Who will be affected by this bug?: 2: Will only affect a few installed domains
How will those affected feel about the bug?: 5: Blocking further progress on the daily work
User Pain: 0.229
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 Stefan Gohmann univentionstaff 2019-03-07 20:14:13 CET
I've created a local repository from the UCS 4.4 installation DVD with the following command:
 univention-repository-create

Afterwards, the sources.list file on the system is empty:

root@master451:~# grep -v '^#' /etc/apt/sources.list.d/15_ucs-online-version.list



root@master451:~# 

From the access.log:
10.201.45.1 - - [07/Mar/2019:19:58:43 +0100] "HEAD /univention-repository/4.4/ HTTP/1.1" 200 150 "-" "UCS (appliance) - 4.4-0 errata0 - e8790042-bbed-4755-b1fc-f12564804c65 - 00000000-0000-0000-0000-000000000000 -  - U:1a,R:M"
10.201.45.1 - - [07/Mar/2019:19:58:43 +0100] "HEAD /univention-repository/4.4/maintained/4.4-0/ HTTP/1.1" 200 150 "-" "UCS (appliance) - 4.4-0 errata0 - e8790042-bbed-4755-b1fc-f12564804c65 - 00000000-0000-0000-0000-000000000000 -  - U:1a,R:M"
10.201.45.1 - - [07/Mar/2019:19:58:43 +0100] "HEAD /univention-repository/4.4/maintained/4.4-0/all/Packages.gz HTTP/1.1" 404 163 "-" "UCS (appliance) - 4.4-0 errata0 - e8790042-bbed-4755-b1fc-f12564804c65 - 00000000-0000-0000-0000-000000000000 -  - U:1a,R:M"
10.201.45.1 - - [07/Mar/2019:19:58:43 +0100] "HEAD /univention-repository/4.4/maintained/4.4-0/amd64/Packages.gz HTTP/1.1" 404 163 "-" "UCS (appliance) - 4.4-0 errata0 - e8790042-bbed-4755-b1fc-f12564804c65 - 00000000-0000-0000-0000-000000000000 -  - U:1a,R:M"

The Packages.gz files are missing.

root@master451:~# ls /var/lib/univention-repository/mirror/4.4/maintained/4.4-0/all/Packages*
/var/lib/univention-repository/mirror/4.4/maintained/4.4-0/all/Packages
root@master451:~#
Comment 1 Philipp Hahn univentionstaff 2019-03-08 17:18:07 CET
There are 2 issues:

1. Bug introduced by git:7845aa168a71a7bdf73937a770a357368cb6b674 with switching from the deprecated urepo.update_indexes() to urepo.gen_indexes(), which does not generated the compressed files. The updater is explicitly testing for the "Packages.gz" files.
Patch for that is easy: git:phahn/48910-updater-repo-gz

2. The UCS-4.x-y DVD with x>=1 or y>=1 will only create exactly that 4.x-y directory, but NOT the directories for all the previous releases 4.xx-yy with xx:=0..x-1 abd y:=0..y-1. When the updater tries to determine the entries for /etc/apt/sources.list (and mirror.list), it will iterate from 4.0-0 to 4.x-y with y+=1 until failure, then x+=1,y:=0, and so on. As neither 4.0-0 nor 4.1-0 exists, the iterator aborts with not finding any repository.

"univention-repository-create" event prints a warning:
> An UCS repository must always start with minor version 0, for example
> with UCS 4.0-0. Please synchronize the repository
> by using the tool 'univention-repository-update'.

Easiest would be to always include the current UCS release while iterating.
Comment 2 Philipp Hahn univentionstaff 2019-03-10 19:36:24 CET
[4.4-0] 7963aef0ac Bug #48910 up: Create compressed Packages.gz files
 base/univention-updater/debian/changelog                         | 6 ++++++
 base/univention-updater/modules/univention/updater/repository.py | 7 ++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
[4.4-0] 7a36d5a0f4 Bug #48910 up: Improve iterating over releases
 base/univention-updater/debian/changelog           |  1 +
 .../modules/univention/updater/tools.py            | 97 ++++++++++++----------
 .../modules/univention/updater/ucs_version.py      |  8 +-
 base/univention-updater/tests/test_updater.py      | 17 ++++
 4 files changed, 76 insertions(+), 47 deletions(-)

Package: univention-updater
Version: 14.0.0-16A~4.4.0.201903101858
Branch: ucs_4.4-0
Comment 3 Philipp Hahn univentionstaff 2019-03-11 09:04:21 CET
[4.4-0] 932b07b5d3 Bug #48910 up: Prefix local repository URLs with UCS release version
 base/univention-updater/debian/changelog                         | 6 ++++++
 base/univention-updater/modules/univention/updater/repository.py | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

The generated local repository Packages files did not start with `4.4-0/$ARCH/`, but only with `$ARCH/`.

Package: univention-updater
Version: 14.0.0-17A~4.4.0.201903110851
Branch: ucs_4.4-0

QA: `apt download univention-pkgdb` works after `univention-repository-create`.
Comment 4 Stefan Gohmann univentionstaff 2019-03-11 09:27:22 CET
Tests: OK, it works again.

root@master451:~# grep -v ^# /etc/apt/sources.list.d/15_ucs-online-version.list

deb http://master451.deadlock45.intranet/univention-repository/4.4/maintained/ 4.4-0/all/
deb http://master451.deadlock45.intranet/univention-repository/4.4/maintained/ 4.4-0/amd64/

root@master451:~#

Code review: OK

Changelog: OK
Comment 5 Florian Best univentionstaff 2019-03-12 13:40:50 CET
UCS 4.4 has been released:
 https://docs.software-univention.de/release-notes-4.4-0-en.html
 https://docs.software-univention.de/release-notes-4.4-0-de.html

If this error occurs again, please use "Clone This Bug".