Re: Split Packages files based on new section "buildlibs"
Hi Antonio (and anybody else that understands the technical problem
involved here),
I've been reading the whole thread and it seems to me that the reason,
why Rust/Go build-time "libraries" need to be handled differently from
all the other existing stuff in the world and that "no user ever wants
to use" the Debian-provided build-time Rust/Go libraries has not been
spelled out in plain, comprehensible english yet.
So since you seem to understand a bit about the technical problem
involved here and I'd very much appreciate if you could spell it out. I
think it would benefit the project as then everybody would be able to
understand what this new section is about.
So let me ask a question that could maybe clear things up:
On 11.11.20 14:39, Antonio Terceiro wrote:
In the Rust world there is no such thing as installing a library
globably. A crate that provides a library can only be used to build
other stuff, and is never made available globally. "cargo install" only
applies to creates that provide binaries:
https://doc.rust-lang.org/cargo/commands/cargo-install.html
[I've read the cargo-install.html document in the past but not re-read
it now]
So let's say user joe wants to code Go software that depends on Go's
third party github.com/tazjin/kontemplate/templater package ("package"
in Go's taxonomy not in Debian's!).
Then he'd `export GOPATH=~/src/go` and `go get
github.com/tazjin/kontemplate`. Go would then `git clone` everything
under `~/src/go/src/github.com/tazjin/kontemplate/`.
So far so good and I think Rust has a similar mechanisms with cargo, right?
Now given that alice wants to package joe's software. She'll do the
above plus `go get github.com/joe/joes_app`. All will be under
`~/src/go/src/github....`.
The naive thing to do now would be to move `~/src/go/src/` to
`/usr/lib/go` and package that as `go-tazjin-kontemplate-dev_0.1.deb` or
similar.
Debian's automatic build process for "joes_app" would first install
`go-tazjin-kontemplate-dev_0.1.deb`, then make a symlink from
`~/src/go/src/github.com/tazjin` (or `~/.local/go` or whereever Go
expects its stuff by default) to `/usr/lib/go/src/github.com/tazjin` and
build and be done.
A user wanting to develop software based on tazjin's stuff would do the
same: `apt-get install go-tazjin-kontemplate-dev`, symlink, done.
This solution seems to be too trivial that nobody would have though of
it, so what is it that I (and I guess many Debianers) are missing?
*t
Reply to: