Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1194559

Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using

From Maytham Alsudany <maytha8thedev@gmail.com>
Newsgroups linux.debian.bugs.dist, linux.debian.devel, linux.debian.policy
Subject Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using
Date 2024-04-18 22:40 +0200
Message-ID <IuGI1-7dex-1@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Cross-posted to 3 groups.

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Package: debian-policy
Version: 4.7.0.0
Severity: normal
X-Debbugs-Cc: debian-devel@lists.debian.org

Dear Policymakers,

With the increasing amount of programs in Debian that Build-Depend and
statically link with Golang and Rust libraries, it's important that the
Debian Policy clearly sets out the requirements for declaring these
statically-linked libraries.

Currently, section 7.8 of the policy is a bit vague regarding stating static
libraries. It begins with saying:

  Some binary packages incorporate parts of other packages when built but do
  not have to depend on those packages. Examples include linking with static
  libraries or incorporating source code from another package during the build.

It then states:

  [The Built-Using field] should be used only when there are license or DFSG
  requirements to retain the referenced source packages. It should not be added
  solely as a way to locate packages that need to be rebuilt against newer
  versions of their build dependencies.

This makes it seem that Built-Using shouldn't be used to declare
statically-linked dependencies, though that is not the case[1].

In early 2022, Guillem added support for a new Static-Built-Using field to
dpkg, encouraging packagers to use it over Built-Using to specify
statically-linked dependencies [2]. The commit message states the following:

  This field mimics the previous Built-Using field semantics, but is
  specifically intended for shadow dependencies stemming from static builds.
  
  In Debian, the Rust and Go teams agreed to use this language agnostic field,
  instead of one for each of the languages. This means it can be easily
  supported by dpkg, and can be used by other languages and run-times.

This was also added to the deb-control(5) manpage, specifically differentiating
it from Built-Using as a field to be used "for static building purposes (for
example linking against static libraries, builds for source-centered languages
such as Go or Rust[...])".

The proposed change is to clarify and formally mandate the requirement to
declare statically-linked libraries used to build packages containing binaries
in Static-Built-Using. Attached is a draft patch of the proposed change.
Feedback is welcome!

Kind regards,
Maytham

[1]: The Go team requires that Built-Using is specified for packages containing
     binary programs, and this is evident in the templates outputted by
     dh-make-golang. (This is being migrated over to Static-Built-Using, the
     correct field for this purpose.)

     Similarly, the Rust team also requires that
     Static-Built-Using are specified, as evident in debcargo's output when
     generating d/control files. (X-Cargo-Built-Using is currently being used
     but will soon be replaced by Static-Built-Using with the next upload.)

     The Rust team also uses Built-Using when required, where dh-cargo/cargo
     will check for and collate a list of any packages with copyleft licenses
     in the dependency tree that require accompanying source.

[2]: https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=16c412439c5eac5f32930946df9006dfc13efc02
     https://lists.debian.org/debian-devel-changes/2022/03/msg03007.html

Back to linux.debian.bugs.dist | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using Maytham Alsudany <maytha8thedev@gmail.com> - 2024-04-18 22:40 +0200
  Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using Simon Josefsson <simon@josefsson.org> - 2024-04-19 10:30 +0200
  Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using Chris Hofstaedtler <zeha@debian.org> - 2024-04-20 11:50 +0200
  Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using Guillem Jover <guillem@debian.org> - 2024-04-20 20:30 +0200
  Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using Peter B <peter@pblackman.plus.com> - 2024-04-24 16:40 +0200
  Bug#1069256: Fwd: Bug#1069256: debian-policy: clarify requirement for use of Static-Built-Using Maytham Alsudany <maytha8thedev@gmail.com> - 2024-05-08 10:10 +0200

csiph-web