mirror of
https://github.com/RGBCube/Site
synced 2025-07-30 12:37:50 +00:00
dump(build-systems.no-gnulib): move to blog
This commit is contained in:
parent
a851f5b317
commit
7a7eb76262
1 changed files with 8 additions and 8 deletions
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
title: Say NO to Gnulib
|
title: Say NO to Gnulib
|
||||||
description: ...and Debian.
|
description: ...and Debian.
|
||||||
date: 2025-07-19
|
|
||||||
---
|
---
|
||||||
|
|
||||||
If you are a GNU maintainer and are not willing to be critizied by people sick
|
If you are a GNU maintainer and are not willing to be critizied by people sick
|
||||||
|
@ -38,7 +37,7 @@ of Gnulib.
|
||||||
I do however trust the average distro (not Debian, they are lower than average
|
I do however trust the average distro (not Debian, they are lower than average
|
||||||
and suck at packaging [(Yes, really.)](#debian-sucks-at-packaging) to build
|
and suck at packaging [(Yes, really.)](#debian-sucks-at-packaging) to build
|
||||||
Uutils tools & any other Rust tool correctly, because it is pretty relatively
|
Uutils tools & any other Rust tool correctly, because it is pretty relatively
|
||||||
straightforward compared to hundreds of thounsands of lines of ancient m4. Much
|
straightforward compared to hundreds of thousands of lines of ancient m4. Much
|
||||||
easier to audit too & it doesn't misbehave or segfault.
|
easier to audit too & it doesn't misbehave or segfault.
|
||||||
|
|
||||||
I hope Uutils coreutils & Uutils findutils and so on achieves near perfect
|
I hope Uutils coreutils & Uutils findutils and so on achieves near perfect
|
||||||
|
@ -85,11 +84,12 @@ and you should not be anyway.
|
||||||
The way you should package any programming language that has a widely used and
|
The way you should package any programming language that has a widely used and
|
||||||
generally well-defined and static build system is to generate (unlisted) package
|
generally well-defined and static build system is to generate (unlisted) package
|
||||||
definitions from packages using a script or tool (such as
|
definitions from packages using a script or tool (such as
|
||||||
`cargo metdata -> parse json -> puke out package manifests`), and only add extra
|
`cargo metadata -> parse json -> puke out package manifests`), and only add
|
||||||
configuration to packages that depend on anything external (such as a C library,
|
extra configuration to packages that depend on anything external (such as a C
|
||||||
or CMake, or perl, or Go for some godforsaken reason (Why, `aws-lc-sys`, why?)).
|
library, or CMake, or perl, or Go for some godforsaken reason (Why,
|
||||||
|
`aws-lc-sys`, why?)).
|
||||||
|
|
||||||
It's also not hard to use a dependency solver algoritm to try and deduplicate
|
It's also not hard to use a dependency solver algorithm to try and deduplicate
|
||||||
all crates required in the whole package repository using a pre-made library,
|
all crates required in the whole package repository using a pre-made library,
|
||||||
such as [`lib.rs/pubgrub`](https://lib.rs/crates/pubgrub). You can have the best
|
such as [`lib.rs/pubgrub`](https://lib.rs/crates/pubgrub). You can have the best
|
||||||
of all worlds.
|
of all worlds.
|
||||||
|
@ -133,12 +133,12 @@ derivations (build units, but in a fancy Nix / Functional Software Deployment
|
||||||
Model way), these generated definitions won't pollute search or interfere with
|
Model way), these generated definitions won't pollute search or interfere with
|
||||||
users. It's just a plus in almost every way imagineable.[^A negative would be
|
users. It's just a plus in almost every way imagineable.[^A negative would be
|
||||||
the sandbox creation overhead of `nix-daemon`, but that shouldn't be significant
|
the sandbox creation overhead of `nix-daemon`, but that shouldn't be significant
|
||||||
most of Rust builds from scratch, and for those that are, the already-cached
|
for most of Rust builds from scratch, and for those that are, the already-cached
|
||||||
crates will mitigate the losses pretty easily.]
|
crates will mitigate the losses pretty easily.]
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
|
|
||||||
You can actaully use this right now with
|
You can actually use this right now with
|
||||||
[`cargo2nix`](https://github.com/cargo2nix/cargo2nix) or
|
[`cargo2nix`](https://github.com/cargo2nix/cargo2nix) or
|
||||||
[`crate2nix`](https://github.com/nix-community/crate2nix), though expect some
|
[`crate2nix`](https://github.com/nix-community/crate2nix), though expect some
|
||||||
headaches. (I recently spent a few hours getting `crate2nix` to work on a huge
|
headaches. (I recently spent a few hours getting `crate2nix` to work on a huge
|
Loading…
Add table
Add a link
Reference in a new issue