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

Add Hurl to official Debian repository #366

Open
fabricereix opened this issue Nov 23, 2021 · 19 comments
Open

Add Hurl to official Debian repository #366

fabricereix opened this issue Nov 23, 2021 · 19 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed linux open-to-contribution Open to external contributers

Comments

@fabricereix
Copy link
Collaborator

No description provided.

@fabricereix fabricereix added the enhancement New feature or request label Nov 23, 2021
@jcamiel jcamiel added the linux label Nov 23, 2021
@lepapareil
Copy link
Collaborator

21/12/15 > Mail sent to [email protected]

@stappersg
Copy link

stappersg commented Dec 15, 2021 via email

@jcamiel
Copy link
Collaborator

jcamiel commented Dec 15, 2021

Hi @stappersg

It's just a note to ourself to keep an update on trying to add Hurl to official Debian repo.

We've 0 experience in this domain and struggle a bit to know where to start.
We've send a first mail to [email protected], as described in https://wiki.debian.org/DebianMentorsFaq#:~:text=File%20an%20ITP%20(intent%20to%20package)%20bug%20using%20reportbug to make a official request to propose Hurl.
Do you think you can help us ? Or share any experience/tips to guide us ?
Thanks,

Jc

@jcamiel jcamiel added the help wanted Extra attention is needed label Dec 15, 2021
@stappersg
Copy link

stappersg commented Dec 15, 2021 via email

@lepapareil
Copy link
Collaborator

Hi @stappersg, here is the bug report number https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001779.

@lepapareil
Copy link
Collaborator

lepapareil commented Mar 24, 2022

Hi @stappersg, we probably need some help here...

Like @jcamiel said it's our first experience attempting to create a Debian package, so i wonder if we have forgotten something to move it forward since our bug report seems to be on hold for almost 3 months ?

Thks for your help :)

@lepapareil lepapareil self-assigned this Mar 24, 2022
@stappersg
Copy link

stappersg commented Mar 24, 2022 via email

@lepapareil
Copy link
Collaborator

thks @stappersg

@jcamiel jcamiel pinned this issue Sep 6, 2023
@jcamiel jcamiel unpinned this issue May 27, 2024
@jcamiel jcamiel pinned this issue Feb 4, 2025
@jcamiel jcamiel added the open-to-contribution Open to external contributers label Feb 13, 2025
@jcamiel
Copy link
Collaborator

jcamiel commented Feb 15, 2025

Doing small progress here. We can start by looking at packaging hurl-core. With cargo-debstatus, we can look which crate is available on Debian Unstable:

$ cargo debstatus --package hurl_core
 🔴 hurl_core v6.1.0-SNAPSHOT (/Users/jc/Documents/Dev/hurl/packages/hurl_core)
 ⌛ ├── colored v3.0.0 (outdated, 2.1.0 in debian)
 🔴 ├── libxml v0.3.3
    │   └── libc v0.2.169 (in debian)
    │   [build-dependencies]
    │   └── pkg-config v0.3.31 (in debian)
    └── regex v1.11.1 (in debian)

List of Rust packets available on Debian unstable (sid): https://packages.debian.org/sid/rust/.

Check that a foo crate is available : https://packages.debian.org/sid/rust/librust-foo-dev

=> We can see that the crate libxml is not in Debian Unstable. A really good first step would be to packetize libxml crate, this is a mandatory step for hurl_core to be available as a Debian packet.

We can do the same with libxml:

$ cargo debstatus
 🔴 libxml v0.3.3 (/Users/jc/Documents/Dev/rust-libxml)
    └── libc v0.2.169 (in debian)
    [build-dependencies]
    └── pkg-config v0.3.31 (in debian)
    [dev-dependencies]
    ├── criterion v0.5.1 (in debian)
    └── rayon v1.10.0 (in debian)

Every dependency crate of libxml crate is available on Debian unstable. We can try to make a first packet for it.

Regarding hurl

This is the list of crate that are not available in Debin Unstable:

cargo debstatus --package hurl
 🔴 hurl v6.1.0-SNAPSHOT (/Users/jc/Documents/Dev/hurl/packages/hurl)
 🔴 ├── hurl_core v6.1.0-SNAPSHOT (/Users/jc/Documents/Dev/hurl/packages/hurl_core)
 ⌛ │   ├── colored v3.0.0 (outdated, 2.1.0 in debian)
 🔴 │   ├── libxml v0.3.3
    │   │   └── libc v0.2.169 (in debian)
    │   │   [build-dependencies]
    │   │   └── pkg-config v0.3.31 (in debian)
    │   └── regex v1.11.1 (in debian)
    ├── base64 v0.22.1 (in debian)
 ⌛ ├── brotli v7.0.0 (outdated, 6.0.0 in debian)
    │   ├── alloc-no-stdlib v2.0.4 (in debian)
    │   ├── alloc-stdlib v0.2.2 (in debian)
    │   └── brotli-decompressor v4.0.2 (4.0.1 in debian)
    ├── chrono v0.4.39 (in debian)
    ├── clap v4.5.29 (4.5.23 in debian)
    ├── curl-sys v0.4.79+curl-8.12.0 (0.4.67 in debian)
    ├── curl v0.4.47 (0.4.44 in debian)
    ├── encoding v0.2.33 (in debian)
    ├── glob v0.3.2 (in debian)
    ├── hex v0.4.3 (in debian)
    ├── lazy_static v1.5.0 (in debian)
 ⌛ ├── libflate v2.1.0 (outdated, 0.1.25 in debian)
    │   ├── adler32 v1.2.0 (in debian)
    │   ├── core2 v0.4.0 (in debian)
    │   ├── crc32fast v1.4.2 (in debian)
    │   ├── dary_heap v0.3.7 (0.3.6 in debian)
 ⌛ │   └── libflate_lz77 v2.1.0 (outdated, 1.1.0 in debian)
    │       ├── core2 v0.4.0 (in debian)
    │       ├── hashbrown v0.14.5 (in debian)
    │       └── rle-decode-fast v1.0.3 (in debian)
 🔴 ├── libxml v0.3.3
    │   └── libc v0.2.169 (in debian)
    │   [build-dependencies]
    │   └── pkg-config v0.3.31 (in debian)
    ├── md5 v0.7.0 (in debian)
    ├── percent-encoding v2.3.1 (in debian)
    ├── regex v1.11.1 (in debian)
    ├── serde v1.0.217 (in debian)
    ├── serde_json v1.0.138 (1.0.134 in debian)
    ├── sha2 v0.10.8 (in debian)
    ├── similar v2.7.0 (2.6.0 in debian)
    ├── terminal_size v0.4.1 (in debian)
 ⌛ ├── termion v4.0.3 (outdated, 1.5.6 in debian)
    │   ├── libc v0.2.169 (in debian)
    │   └── numtoa v0.2.4 (in debian)
    ├── url v2.5.4 (2.5.2 in debian)
    ├── uuid v1.13.1 (1.10.0 in debian)
    └── xml-rs v0.8.25 (0.8.19 in debian)
    [build-dependencies]
    └── cc v1.2.13 (1.1.14 in debian)

Not regarding the version number, only hurl_core and libxml are not in Debian Unstable.

@wetneb
Copy link

wetneb commented Feb 28, 2025

I've started packaging libxml.

@wetneb
Copy link

wetneb commented Feb 28, 2025

I have made a merge request for packaging libxml. Once this gets merged, someone needs to do the upload, after which it will take a while for the package to go through the NEW queue. Only after that we'll be able to do the same dance for hurl

@stappersg
Copy link

stappersg commented Feb 28, 2025 via email

@wetneb
Copy link

wetneb commented Feb 28, 2025

Hi @stappersg,

Quoting https://wiki.debian.org/Teams/RustPackaging:

Binary packages (such as applications) should be maintained also with the rust team if they are available as crates. Please file an ITP for those, not for regular crates. Examples: lsd, exa, bat ...

Since my merge request is only packaging libxml, a crate which doesn't expose a binary on its own, I didn't file an ITP.

@jcamiel
Copy link
Collaborator

jcamiel commented Feb 28, 2025

Hi @stappersg

As one of the maintainer of this package, I'm trying really hard to understand your messages:

Thing is that I would like to help, but I can't help.

English is not my primarily language so maybe there is some misunderstanding. Any help on packaging Hurl for Debian is welcome. But if you think you can't help us, what's the point of your message, besides confusing us?

I do hope for a response like "I'm following the process described
at ...some_URL...".:

I do not understand this sentence at all, unless we're being trolled. You seem to know a lot about packaging for Debian and willing to help us, but, at this point, it's counter productive.

@stappersg
Copy link

stappersg commented Feb 28, 2025 via email

@jcamiel
Copy link
Collaborator

jcamiel commented Feb 28, 2025

Hi @wetneb

Any help is welcome on this issue thanks a lot. We've packaged Hurl for a lot of platforms and I've to confess that we're struggling with Debian. Something that is not clear in my mind: let's say we manage to get all the necessary crates packages for Hurl as Debian packages. How do you deal with version? For instance, current Hurl 6.0.0 version depends on colored 3.0.0 but the Debian package is only at 2.1.0.

How do we deal with it? Do we need to package a less recent version of Hurl (let's say 4.0.0) for which each crate is packaged at a sufficient version?

Thanks a lot!

@nc7s
Copy link

nc7s commented Feb 28, 2025

Geert: ITP #1001779 has been filed for hurl (the conversation history is a bit messy). Maytham Alsudany currently owns it, maytham on IRC.

@jcamiel: No, we can relax the version requirements and patch relevant usage accordingly at our end.

@jcamiel
Copy link
Collaborator

jcamiel commented Feb 28, 2025

@nc7s thanks for the information, it's still a little unclear how this will works (for instance, if Hurl needs a major breaking dependency 2.x while there is only a 1.x in Debian).

On our side (upstream maintainers) we're going to remove, in the next Hurl version, two dependencies (colored and termion) to reduce the crates we depends on.

@nc7s
Copy link

nc7s commented Feb 28, 2025

Taking your example of colored: we can patch hurl to downgrade to colored 2.1.0 (in Debian) from 3.0.0 (upstream).

There's no need from us, and I hope the decision is not because of us, to remove dependencies to ease packaging, at the cost of functionalities. If some dependencies are really complicated to package that they need to be temporarily disabled, we would do that ourselves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed linux open-to-contribution Open to external contributers
Projects
None yet
Development

No branches or pull requests

6 participants