Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

latest dpkg-deb zstd compression is not supported by reprepro #20

Open
jean-christophe-manciot opened this issue Jul 20, 2021 · 15 comments

Comments

@jean-christophe-manciot

Ubuntu impish
reprepro: 5.3.0-1.1 multiple-versions (630bb1e)
dpkg: 1.20.9ubuntu2

Ubuntu has switched default dpkg-deb compression from xz to zstd: cf. changelog.
Adding a deb package built using the latest dpkg-deb to a repository managed by reprepro now leads to:

reprepro --component stable -Vb . includedeb impish ../../linux-buildinfo-5.13.0-12-generic_5.13.0-12.12_amd64.deb
Could not find a suitable control.tar file within '../../linux-buildinfo-5.13.0-12-generic_5.13.0-12.12_amd64.deb'!
There have been errors!

There is no such issue when adding packages built with dpkg 1.20.9.
Unfortunately, downgrading dpkg to the latter prevents any further installation of binary packages built and distributed by Ubuntu.

@jean-christophe-manciot
Copy link
Author

There has been a recent change also to reprepro in debian to add support for Zstd compressed debs: cf. changelog.

@bdrung
Copy link
Contributor

bdrung commented Jul 20, 2021

I rebased the multiple-versions-debian on the Debian package version 5.3.0-1.3 to pick up zstd support and verified that the shunit2 tests still pass. Please test.

@jean-christophe-manciot
Copy link
Author

I've built 3908caf using latest dpkg-deb on Ubuntu impish.

So far, multiple versions reprepro 5.3.0-1.4 works like a charm as can be seen on this reprepro deb repository.

I'd like to test it for a couple of complete build sessions before closing this issue.

@jean-christophe-manciot
Copy link
Author

3908caf has passed the tests on:

  • Ubuntu 21.10 impish with dpkg-deb 1.20.9ubuntu2
  • Debian 11.0 bullseye with dpkg-deb 1.20.9

@jean-christophe-manciot
Copy link
Author

jean-christophe-manciot commented Aug 5, 2021

Actually, I've just happened to see the following error message:

reprepro --component stable -Vb . includedeb impish gns3-gui_2.2.23-21.10_amd64.deb
zstd: error 70 : Write error : cannot write decoded block : Broken pipe

Maybe it's worth noting that the deb file is signed.

@svengit
Copy link

svengit commented Dec 13, 2021

Actually, I've just happened to see the following error message:

reprepro --component stable -Vb . includedeb impish gns3-gui_2.2.23-21.10_amd64.deb
zstd: error 70 : Write error : cannot write decoded block : Broken pipe

Maybe it's worth noting that the deb file is signed.

Just ran into this exact problem on 5.3.0 (stable on Ubuntu 20.04), which means reprepro is unusable. Are there any news on this?

@jean-christophe-manciot
Copy link
Author

jean-christophe-manciot commented Dec 13, 2021

Just ran into this exact problem on 5.3.0 (stable on Ubuntu 20.04), which means reprepro is unusable. Are there any news on this?

I wouldn't say 'reprepro is unusable': despite the previous error message showing up from time to time:

  • the affected binary packages are correctly inserted into the repository; for instance, one affected package is available online within the repository
  • the reprepro repository is running correctly
# Checking if all packages in Ubuntu impish distribution have all files needed properly registered
reprepro -Vb . check impish
Checking impish...

# Checking if all files believed to be in pool are actually still there and have the known md5sum, sha1 & sha256
reprepro -Vb . checkpool

@svengit
Copy link

svengit commented Dec 13, 2021

I wouldn't say 'reprepro is unusable': despite the previous error message showing up from time to time:

* the affected binary packages are correctly inserted into the repository; for instance, the previously affected package is [available online within the repository](https://git.sdxlive.com/PPA/commit/?id=b85bbd5c65ed56fda70ac31db52e0589e34d0587)

* the reprepro repository is running correctly

oh, amazing. I didn't realize they were imported. I ran into the problem while doing reprepro update and it just spammed the log, so I assumed it wasn't syncing properly.
Thanks!

@HougeLangley
Copy link

Same problem here.

ubuntu-21.10 reprepro -b /var/www/html/ubuntu-21.10 -C main includedeb impish /root/kernel/linux-*.deb
Could not find a suitable control.tar file within '/root/kernel/linux-headers-5.17.0-rc4-ubuntu-starfive-rc4_5.17.0-rc4-ubuntu-starfive-rc4-1_riscv64.deb'!
Could not find a suitable control.tar file within '/root/kernel/linux-image-5.17.0-rc4-ubuntu-starfive-rc4_5.17.0-rc4-ubuntu-starfive-rc4-1_riscv64.deb'!
Could not find a suitable control.tar file within '/root/kernel/linux-image-5.17.0-rc4-ubuntu-starfive-rc4-dbg_5.17.0-rc4-ubuntu-starfive-rc4-1_riscv64.deb'!
Could not find a suitable control.tar file within '/root/kernel/linux-libc-dev_5.17.0-rc4-ubuntu-starfive-rc4-1_riscv64.deb'!
There have been errors!

@jennyowen
Copy link

I've been getting this same error with packages build with ubuntu 22.04. I run reprepro in docker so it's pretty reproducible.

Here's how I'm building reprepro (where reprepro-multiple-versions-debian.zip is the zip download from github of the multiple-versions-debian branch of this repository):

FROM ubuntu:22.04
ADD reprepro-multiple-versions-debian.zip /tmp/

RUN \
	apt-get --quiet --quiet update && \
	apt-get install -y \
		curl \
		nano \
		jq \
		gcc \
                make \
		libarchive-dev  \
		libbz2-dev  \
		libdb-dev \
		libgpgme-dev \
		liblzma-dev \
		libzstd-dev \
		unzip \
		zlib1g-dev
RUN unzip /tmp/reprepro-multiple-versions-debian.zip -d /tmp && \
	cd /tmp/reprepro-multiple-versions-debian && \
	/tmp/reprepro-multiple-versions-debian/configure && \
	make install -C /tmp/reprepro-multiple-versions-debian

I redownloaded the zip yesterday and the source does contain changes mentioning zstd, so it's still an issue. Am I perhaps missing some configuration flags required to support zstd packaged debs?

@bdrung
Copy link
Contributor

bdrung commented Apr 27, 2022

Can you try installing the zstd package?

@jennyowen
Copy link

@bdrung oh that fixed it, thank you!

@agutierrm
Copy link

I am not be able to get reprepro running. I test with the @jean-christophe-manciot but I get the same message "broken pipe" :-(

@thctlo
Copy link

thctlo commented Aug 17, 2022

i build on Debian SID, and test with a local repo *( reprepro 5.3.1-1)

Then I import on a Debian Stretch server reprepro 5.3.0-1~bpo9+1 , and i get. :
Could not find a suitable control.tar file within

And importing it works fine on the debian SID/Unstable version

To be added, importing the DSC works fine, only the multichanges or changes file give above error.

zstd and libzstd1 ( 1.3.8+dfsg-3~bpo9+1) is installed on the stretch server.

i'll see if in can backport the debian sid version to stretch. i'll report it back

@thctlo
Copy link

thctlo commented Aug 17, 2022

i build on Debian SID, and test with a local repo *( reprepro 5.3.1-1)

Then I import on a Debian Stretch server reprepro 5.3.0-1~bpo9+1 , and i get. : Could not find a suitable control.tar file within

And importing it works fine on the debian SID/Unstable version

To be added, importing the DSC works fine, only the multichanges or changes file give above error.

zstd and libzstd1 ( 1.3.8+dfsg-3~bpo9+1) is installed on the stretch server.

i'll see if in can backport the debian sid version to stretch. i'll report it back

i rebuilded reprepro from debian experimental ( 5.4.0 ) and zstd (1.5.2+dfsg-1) from debian Sid to Debian Stretch.
Now it works

what i used can be found here. https://downloads.van-belle.nl/diverse/
deb and sources included in the tar.gz.

Please note..
This breaks broke the index (db) files of reprepro, so im rebuilding but with above versions.

Importing shows : zstd: /stdout: Broken pipe

but so far it all works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants