From owner-freebsd-ports@freebsd.org Mon Dec 2 07:16:27 2019 Return-Path: Delivered-To: freebsd-ports@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5CE301C81C1 for ; Mon, 2 Dec 2019 07:16:27 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org [IPv6:2610:1c1:1:606c::50:13]) by mx1.freebsd.org (Postfix) with ESMTP id 47RGcq1rWJz4kSZ for ; Mon, 2 Dec 2019 07:16:27 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by mailman.nyi.freebsd.org (Postfix) id 3F4531C81C0; Mon, 2 Dec 2019 07:16:27 +0000 (UTC) Delivered-To: ports@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3F0F21C81BE for ; Mon, 2 Dec 2019 07:16:27 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47RGcq0zQ5z4kSY; Mon, 2 Dec 2019 07:16:27 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1354) id 1AD4D11CCF; Mon, 2 Dec 2019 07:16:27 +0000 (UTC) From: Jan Beich To: ports@FreeBSD.org Cc: Alex Dupre Subject: Re: USES=cargo vs. workspaces References: Date: Mon, 02 Dec 2019 08:16:24 +0100 In-Reply-To: (Jan Beich's message of "Sun, 06 Oct 2019 15:09:11 +0200") Message-ID: <7e3f-i4dz-wny@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Dec 2019 07:16:27 -0000 Jan Beich writes: > Some projects (e.g., Servo, Veloren) bundle several packages together. > When dependencies also bundle packages it confuses "git" override. > Any tips/workarounds that scale beyond 1 port? > > For example, > > $ cat Makefile > PORTNAME= veloren > DISTVERSIONSUFFIX= v > DISTVERSION= 0.3.0 > CATEGORIES= games > > USES= cargo > USE_GITLAB= yes > GL_COMMIT= ef049607e008223d6f9d8a021dd00e1eeef44b5e > > .sinclude "${.CURDIR}/Makefile.crates" > .include > > $ make clean patch NO_CHECKSUM= > $ make cargo-crates >Makefile.crates > $ make makesum > > $ make clean all > [...] > ===> Configuring for veloren-0.3.0 > error: failed to load source for a dependency on `conrod_core` > > Caused by: > Unable to update WRKDIR/conrod-d603363488870eae9df91ba45ba795509c8a6ab4-d603363488870eae9df91ba45ba795509c8a6ab4 > > Caused by: > found a virtual manifest at `WRKDIR/conrod-d603363488870eae9df91ba45ba795509c8a6ab4-d603363488870eae9df91ba45ba795509c8a6ab4/Cargo.toml` instead of a package manifest > *** Error code 101 > > Stop. Thanks to https://svnweb.freebsd.org/changeset/ports/517982 I've got past the error using the following CARGO_GIT_SUBDIR= conrod_core:conrod_core:conrod_core \ conrod_core:conrod_winit:backends/conrod_winit Veloren doesn't build yet due to dependency on a Nightly-only feature but the progress is promising. I haven't tried Servo because it'd likely require heavy patching and probably more hacks to work as a port.