[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rust build system, building libc crate
From: |
ng0 |
Subject: |
Re: rust build system, building libc crate |
Date: |
Sat, 03 Feb 2018 22:45:30 +0000 |
On Sat, 03 Feb 2018, address@hidden wrote:
> Now I'm going to sleep on this:
>
> ;; Rust doesn't have a stable ABI yet. Because of this
> ;; Cargo doesn't have a search path for binaries yet.
> ;; Until this changes we are working around this by
> ;; distributing crates as source and replacing
> ;; references in Cargo.toml with store paths.
> (copy-recursively "src" (string-append rsrc "/src"))
> (touch (string-append rsrc "/.cargo-ok"))
> (generate-checksums rsrc src)
> (install-file "Cargo.toml" rsrc)
> ;; When the package includes executables we install
> ;; it using cargo install. This fails when the crate
> ;; doesn't contain an executable.
> (if (file-exists? "Cargo.lock")
> (zero? (system* "cargo" "install" "--root" out))
> (begin
> (mkdir out)
> #t))))
>
>
> ... and look into libc after the 8th again.
> Maybe someone of you has an epiphany on the libc crate until
> then.
One more thing before I take this break:
Can someone explain to me what the purpose of the Cargo.lock
is? Apparently libs ignore it and binaries track it.
> http://crates.io/faq.html#why-do-binaries-have-cargo.lock-in-version-control,-but-not-libraries?
> says:
>
> The purpose of a Cargo.lock is to describe the state of the world at the
> time of a successful build. It is then used to provide deterministic
> builds across whatever machine is building the project by ensuring that
> the exact same dependencies are being compiled.
and the Cargo.lock of libc is long. My assumption was it has no
real dependencies. 0. Nada. Nichts.
I think I have to read more into rust packaging, in the meantime
it would be good if someone with reference to the first email and
the email I referenced in there could reply about their knowledge
of the rust/cargo build system. I'm okay with stabbing in the
dark, but shared expertise is good.
--
ng0 :: https://ea.n0.is
A88C8ADD129828D7EAC02E52E22F9BBFEE348588 :: https://ea.n0.is/keys/