Discussion
Loading...

Discussion

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Andrew Nesbitt
Andrew Nesbitt
@andrewnez@mastodon.social  ·  activity timestamp 6 hours ago

The C-Shaped Hole in Package Management: https://nesbitt.io/2026/01/27/the-c-shaped-hole-in-package-management.html

Andrew Nesbitt

The C-Shaped Hole in Package Management

System package managers and language package managers are solving different problems that happen to overlap in the middle.
  • Copy link
  • Flag this post
  • Block
Josh Bressers
Josh Bressers
@joshbressers@infosec.exchange replied  ·  activity timestamp 2 hours ago

@andrewnez Syft also has the problem of trying to figure out what a binary blob of stuff is. This feels like maybe it's time for something bigger

We look for various strings in the binary today (yara would be even better, but there isn't a nice yara go library we could find)

https://github.com/anchore/syft/blob/main/syft/pkg/cataloger/binary/classifiers.go#L18

GitHub

syft/syft/pkg/cataloger/binary/classifiers.go at main · anchore/syft

CLI tool and library for generating a Software Bill of Materials from container images and filesystems - anchore/syft
  • Copy link
  • Flag this comment
  • Block
despicable_me
despicable_me
@despicable_me@mastodon.social replied  ·  activity timestamp 3 hours ago

> Same library, four names, no mapping between them.
Do you know about repology?
https://repology.org/project/openssl/versions
There's also an API/database: https://repology.org/api/v1

API - Repology

Multiple package repositories analyzer

openssl package versions - Repology

List of package versions for project openssl in all repositories
  • Copy link
  • Flag this comment
  • Block
soc
soc
@soc@chaos.social replied  ·  activity timestamp 3 hours ago

@andrewnez I think this touches the core issue:

> None of these mechanisms really declare
> C dependencies in a machine-readable way.

C libraries can't even express their own *API*/*ABI* in a machine-readable way¹, so no surprise that the bigger steps are also missing!

C people have been quite content with the status quo, as it's a crucial part of upholding their ABI monopoly.

¹ Outside of your package manager shipping with its own C compiler that parses C header files.

  • Copy link
  • Flag this comment
  • Block
equi
equi
@equinox@chaos.social replied  ·  activity timestamp 4 hours ago

@andrewnez the title feels weird. If Python packaging Rust dependencies has the same problem, why is it the "C-shaped" hole? Isn't it just a "other ecosystems" hole?

  • Copy link
  • Flag this comment
  • Block
Andrew Nesbitt
Andrew Nesbitt
@andrewnez@mastodon.social replied  ·  activity timestamp 4 hours ago

@equinox i also struggled picking a title, but the C bit was much bigger than all the others, even though the problem is a general one

  • Copy link
  • Flag this comment
  • Block
equi
equi
@equinox@chaos.social replied  ·  activity timestamp 4 hours ago

@andrewnez I'm German, so of course I can conjure a word for this 😂

"Tellerrandproblem"

('edge of the plate problem' or 'plate rim problem')

Or maybe the more scary sounding "Tellerrandklippe" ('edge of the plate cliff')

But yeah I can see how this is hard to slap a title on.

  • Copy link
  • Flag this comment
  • Block
Jannis Leidel
Jannis Leidel
@jezdez@publicidentity.net replied  ·  activity timestamp 4 hours ago

@andrewnez This is good and I'm stoked you're diving into this particular rabbit hole, more awareness will help build bridges and resolve the issues!

  • Copy link
  • Flag this comment
  • Block
Alyssa Coghlan
Alyssa Coghlan
@ancoghlan@mastodon.social replied  ·  activity timestamp 6 hours ago

@andrewnez Have PEPs 725 and 804 crossed your radar in the past couple of years? (they're currently stalled as far as I know, but they're Python's most recent attempt at closing the external dependency gap without relying solely on bundling)

  • Copy link
  • Flag this comment
  • Block
Andrew Nesbitt
Andrew Nesbitt
@andrewnez@mastodon.social replied  ·  activity timestamp 5 hours ago

@ancoghlan yeah I've referenced them a few times and studied it as part of this working group: https://github.com/chaoss/wg-package-metadata

GitHub

GitHub - chaoss/wg-package-metadata: The Package Metadata Working Group explores how different package managers capture, expose, and structure metadata.

The Package Metadata Working Group explores how different package managers capture, expose, and structure metadata. - chaoss/wg-package-metadata
  • Copy link
  • Flag this comment
  • Block
Anil Madhavapeddy
Anil Madhavapeddy
@avsm@amok.recoil.org replied  ·  activity timestamp 6 hours ago

@andrewnez as a data point, opam does track 'system dependencies' and helps automate their installation as part of the OCaml package installation; e.g. https://github.com/ocaml/opam-repository/blob/master/packages/conf-cairo/conf-cairo.1/opam

GitHub

opam-repository/packages/conf-cairo/conf-cairo.1/opam at master · ocaml/opam-repository

Main public package repository for opam, the source package manager of OCaml. - ocaml/opam-repository
  • Copy link
  • Flag this comment
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.2-alpha.7 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct