Search code examples
debiandebbintray

bintray: Unable to upload files: Could not extract metadata for artifact (from .deb)


I use Bintray as an APT debian repository which worked fine before. But I have now an issue when uploading debian packages (.deb file)

Push to https://api.bintray.com/content/amurzeau/streamlink-debian/streamlink/0.9.0-59-g9435397+dfsg-1/pool/main/s/streamlink/livestreamer_1.12.2+streamlink+0.9.0-59-g9435397+dfsg-1_all.deb;deb_distribution=experimental;deb_component=main;deb_architecture=amd64,i386;publish=0;override=1
Response: {"message":"Unable to upload files: Could not extract metadata for artifact 'pool/main/s/streamlink/livestreamer_1.12.2+streamlink+0.9.0-59-g9435397+dfsg-1_all.deb', content might be malformed."}

I found that the issue was related to the content of .deb files:

  • If the .deb file has control.tar.gz and data.tar.gz, it works
  • If the .deb file has control.tar.xz and data.tar.xz, it fails

So the questions:

  • Does bintray supports .deb package using XZ-compressed control.tar.xz and data.tar.xz ?
  • Or is there something I need to do to fix the error (beside telling dpkg-deb to use GZ compression instead of XZ) ?

Note: to push debian packages to bintray from a .changes file, I use this script https://github.com/amurzeau/debian-travis/blob/c1aa5e895dc78ad44b8ae76a89871af3b93a6e23/travis-build/bintray_upload_changes.py.


Solution

  • The difference is indeed related to the content of .deb, the compression method to be exactly.

    Bintray still doesn't support packages created on Ubuntu 18.04 as of today.

    It is possible to workaround this issue by specifying options to dh_builddeb in the debian/rules file:

    override_dh_builddeb:
            dh_builddeb -- --no-uniform-compression