Old version of abraunegg onedrive package
Hi. Noob here, trying to install the Abraunegg Onedrive client for Debian 12 as per the instructions at https://github.com/abraunegg/onedrive/blob/master/docs/ubuntu-package-install.md#distribution-debian-12.
When I enter sudo apt install --no-install-recommends --no-install-suggests onedrive, it fails to install the packages "libphobos2-ldc-shared100" and "libphobos2-ldc-shared100 onedrive", citing incorrect hashes and file sizes, and suggesting "mirror sync in progress?". The files it's trying to fetch appear to be for the older version of the client (2.4.25), which I understand won't work anymore? Do I just need to wait for the repository to be updated? Help much appreciated.
which url do you use for the repo?
It looks like a known problem when OBS rebuilds .deb packages, but a mirror still has old version with the same name. The infrastructure relies on file name uniqueness, so it doesn't check file sizes during redirect.
As workaround - you can use some mirror directly instead of download.o.o , e.g. replace in the url download.opensuse.org/repositories/ with one of: https://ftp.lysator.liu.se/pub/opensuse/repositories/ or https://mirror.aardsoft.fi/opensuse/repositories/
I used repo url as per this bit of text in those instructions:
echo 'deb https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_20.04/ ./' | sudo tee /etc/apt/sources.list.d/onedrive.list
Thanks for the workaround.
Wondering who should be notified about the file name uniqueness issue... @abraunegg?
@andrii-suse
It looks like a known problem when OBS rebuilds .deb packages, but a mirror still has old version with the same name. The infrastructure relies on file name uniqueness, so it doesn't check file sizes during redirect.
The issue here is - nothing will have been rebuilt in ~9 months now.
When a new version is released, the package name is correctly updated.
The issue actually stems from the mirror provider themselves - their cache is corrupt, and they need to rebuild their cache because for some unknown reason, the mirror fails to cache the package correctly (broken mirror / sync process)
@Burtfaceman Please look at the mirror URL you are using which is reporting the bad package and you must contact that mirror directly to have them rebuild their mirror - it is their process that is broken ......
@abraunegg @Burtfaceman
Yeah I assumed most common problem from the start, but looking at the url https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_20.04/ - I don't see packages libphobos2-ldc-shared100 . I guess they are not installed from download.opensuse.org at all? Could you confirm which url is used to retrieve this package in the problem scenario?
@andrii-suse
I guess they are not installed from download.opensuse.org
Correct - they are downloaded from the respective Debian | Ubuntu mirrors - and that is where the fault usually lies .. those distribution mirrors are corrupt and out-of-sync with their metadata.
Could you confirm which url is used to retrieve this package in the problem scenario?
I cant comment directly on this (I am the developer of the impacted software), however see below references
Example issue tickets:
- https://github.com/abraunegg/onedrive/issues/2641
- https://github.com/abraunegg/onedrive/issues/2653
- https://github.com/abraunegg/onedrive/discussions/2392
- https://github.com/abraunegg/onedrive/discussions/2572
- https://github.com/abraunegg/onedrive/discussions/2642
@abraunegg But these mentioned tickets indeed related to the problem I mentioned before: e.g. compare timestamp for Release file: 10-Feb-2024 https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/Debian_12/ 09-Nov-2023 https://provo-mirror.opensuse.org/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/
As workaround - instead of download.opensuse.org - any mirror from the list should work:
curl -s https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/Debian_12/Release.meta4 | grep /Release | grep location
<url location="DE" priority="1">https://ftp.gwdg.de/pub/opensuse/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/Release</url>
<url location="SE" priority="2">https://ftp.lysator.liu.se/pub/opensuse/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/Release</url>
<url location="FI" priority="3">https://mirror.aardsoft.fi/opensuse/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/Release</url>
<url location="KE" priority="4">https://opensuse.mirror.liquidtelecom.com/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/Release</url>
<url location="US" priority="5">https://provo-mirror.opensuse.org/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/Release</url>
<url location="ZA" priority="6">https://opensuse.mirror.ac.za/repositories/home%3A/npreining%3A/debian-ubuntu-onedrive/Debian_12/Release</url>
To fix the problem permanently - the maintainers of the project on OBS must add DEBTRANSFORM-RELEASE: 1 to have OBS append the autoincremented build number to the version of the debian package. . Please let me know if you need assistance with that.
@andrii-suse
To fix the problem permanently - the maintainers of the project on OBS must add DEBTRANSFORM-RELEASE: 1 to have OBS append the autoincremented build number to the version of the debian package. .
The OBS builds are performed by @norbusan
@norbusan
Is this something you could look into / add into the OBS process?
@abraunegg will do!
@andrii-suse I does not work. I tried adding
XS-DEBTRANSFORM-RELEASE: 1
to the debian/control which put it as
Debtransform-release: 1
into the .dsc file - no changes in the build.
Then I hand-edited the .dsc file to add all uppercase
DEBTRANSFORM-RELEASE: 1
but again the build did not change the created debs version number.
What am I missing?
What am I missing?
@norbusan I have very little experience in debian packaging, but I decided to give it a try and saw that it expects debian.* files for debtransform to start. So I just renamed *debian.tar.xz to get rid of prefix and it seems to work.
And it added some build number into the files (see bottom):
https://build.opensuse.org/package/live_build_log/home:andriinikitin:branches:home:npreining:debian-ubuntu-onedrive/onedrive/Debian_12/x86_64
I've submitted request https://build.opensuse.org/request/show/1165631 - feel free to reject it for any reasons.
Thanks @andrii-suse, I merged that to see what happens, and it seems something has changed in the version numbers.
I didn't realize that one has to have a bare debian.tar.* file, which is normally not produced by the debian tools.
My guess is also that one can remove the .dsc files now .... I will try that, too.
My guess is also that one can remove the .dsc files now .... I will try that, too.
I believe it is still required.
I didn't realize that one has to have a bare debian.tar.* file, which is normally not produced by the debian tools.
That could be true, if you wrap a request for https://github.com/openSUSE/obs-build/blob/master/build-recipe-dsc#L70 to include optional package name into the check - it might be fixed as well.