From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0@n0.is Subject: Re: rust build system, building libc crate Date: Sat, 03 Feb 2018 22:45:30 +0000 Message-ID: <87po5litf9.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> References: <87mv0psszk.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> <87a7wpre6i.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> <87vafditw7.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ei6Z4-0000ne-Tf for guix-devel@gnu.org; Sat, 03 Feb 2018 17:45:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ei6Z0-0006zf-W6 for guix-devel@gnu.org; Sat, 03 Feb 2018 17:45:42 -0500 Received: from aibo.runbox.com ([91.220.196.211]:37250) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ei6Z0-0006zN-Oe for guix-devel@gnu.org; Sat, 03 Feb 2018 17:45:38 -0500 Received: from [10.9.9.212] (helo=mailfront12.runbox.com) by mailtransmit03.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1ei6Yy-0006Sc-Iy for guix-devel@gnu.org; Sat, 03 Feb 2018 23:45:36 +0100 Received: from dslb-178-006-001-011.178.006.pools.vodafone-ip.de ([178.6.1.11] helo=localhost) by mailfront12.runbox.com with esmtpsa (uid:892961 ) (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) id 1ei6Yp-00066f-0m for guix-devel@gnu.org; Sat, 03 Feb 2018 23:45:27 +0100 In-Reply-To: <87vafditw7.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> (ng0@n0.is's message of "Sat, 03 Feb 2018 22:35:20 +0000") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org On Sat, 03 Feb 2018, ng0@n0.is 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/