From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Soo Subject: rust-build-system: Unvendor *-sys libraries in phase? Date: Fri, 24 Jan 2020 13:49:21 -0800 Message-ID: <6C5117EB-3049-4DDA-A343-3BDFAFB24CE0@asu.edu> Mime-Version: 1.0 (1.0) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:37181) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iv6pS-0007XE-EV for guix-devel@gnu.org; Fri, 24 Jan 2020 16:49:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iv6pQ-0002Ca-SH for guix-devel@gnu.org; Fri, 24 Jan 2020 16:49:25 -0500 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]:37014) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iv6pQ-00029q-FR for guix-devel@gnu.org; Fri, 24 Jan 2020 16:49:24 -0500 Received: by mail-pj1-x1029.google.com with SMTP id m13so416074pjb.2 for ; Fri, 24 Jan 2020 13:49:24 -0800 (PST) Received: from ?IPv6:2600:380:6c5e:2447:5c4:708f:1f28:541a? ([2600:380:6c5e:2447:5c4:708f:1f28:541a]) by smtp.gmail.com with ESMTPSA id z26sm7423332pgu.80.2020.01.24.13.49.21 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Jan 2020 13:49:22 -0800 (PST) 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-mx.org@gnu.org Sender: "Guix-devel" To: Guix-devel Hi guix, After working on a few rust packages, it looks like there could be another s= tep on the process. There are a number of libraries in the crates registry t= hat wrap and vendor c libraries - libgit2, openssl, or jemalloc for example.= The wrapping libraries, for reference, are usually called -= sys - libgit2-sys for example. In the current rust-build-system, the onus of removing the vendored code fal= ls on the ultimate consumer of the library. So, for instance, cbindgen would= have to define a phase to remove the vendored code in a *-sys library even i= f that library is a transitive dependency. What would you all think about adding a phase to the standard phases of the r= ust-build-system? I=E2=80=99m imagining some phase that would delete the ven= dored code and performed the other necessary steps to use the c libraries in= /gnu/store. Wdyt? John=