Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Mar 2019 06:28:20 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r496795 - in head: Mk/Uses audio/spotifyd devel/bingrep
Message-ID:  <201903250628.x2P6SKmv078168@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tobik
Date: Mon Mar 25 06:28:20 2019
New Revision: 496795
URL: https://svnweb.freebsd.org/changeset/ports/496795

Log:
  Mk/Uses/cargo.mk: Add GitLab support and drop CARGO_GH_CARGOTOML
  
  - Add a CARGO_USE_GITHUB equivalent for GitLab instances,
    CARGO_USE_GITLAB
  - Replace CARGO_GH_CARGOTOML with a ${FIND} and just patch
    all Cargo.toml under ${WRKDIR}.  It is too tedious to find all
    the Cargo.toml that need patching manually due to transitive
    dependencies.

Modified:
  head/Mk/Uses/cargo.mk
  head/audio/spotifyd/Makefile
  head/devel/bingrep/Makefile

Modified: head/Mk/Uses/cargo.mk
==============================================================================
--- head/Mk/Uses/cargo.mk	Mon Mar 25 06:12:34 2019	(r496794)
+++ head/Mk/Uses/cargo.mk	Mon Mar 25 06:28:20 2019	(r496795)
@@ -94,14 +94,16 @@ CARGO_BUILD?=	yes
 CARGO_CONFIGURE?=	yes
 CARGO_INSTALL?=	yes
 CARGO_TEST?=	yes
+
+# Set CARGO_USE_GIT{HUB,LAB} to yes if your application requires
+# some dependencies from git repositories hosted on GitHub or
+# GitLab instances.  All Cargo.toml files will be patched to point
+# to the right offline sources based on what is defined in
+# {GH,GL}_TUPLE.  This makes sure that cargo does not attempt to
+# access the network during the build.
 CARGO_USE_GITHUB?=	no
+CARGO_USE_GITLAB?=	no
 
-# If your application has multiple Cargo.toml files which all use
-# git-sourced dependencies and require the use of CARGO_USE_GITHUB and
-# GH_TUPLE, then you add them to CARGO_GH_CARGOTOML to also point them
-# to the correct offline sources.
-CARGO_GH_CARGOTOML?=	${CARGO_CARGOTOML}
-
 # Manage crate features.
 .if !empty(CARGO_FEATURES)
 CARGO_BUILD_ARGS+=	--features='${CARGO_FEATURES}'
@@ -213,16 +215,26 @@ cargo-extract:
 		> ${CARGO_VENDOR_DIR}/${_crate}/.cargo-checksum.json
 .endfor
 
+_CARGO_GIT_PATCH_CARGOTOML=
 .if ${CARGO_USE_GITHUB:tl} == "yes"
-_USES_patch+=	600:cargo-patch-github
-
-.for _group in ${GH_TUPLE:C@^[^:]*:[^:]*:[^:]*:(([^:/]*)?)((/.*)?)@\2@}
-_CARGO_GH_PATCH_CARGOTOML:= ${_CARGO_GH_PATCH_CARGOTOML} \
+.  for _group in ${GH_TUPLE:C@^[^:]*:[^:]*:[^:]*:(([^:/]*)?)((/.*)?)@\2@}
+_CARGO_GIT_PATCH_CARGOTOML:= ${_CARGO_GIT_PATCH_CARGOTOML} \
 	-e 's@git = "(https|http|git)://github.com/${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}(\.git)?"@path = "${WRKSRC_${_group}}"@'
-.endfor
+.  endfor
+.endif
+.if ${CARGO_USE_GITLAB:tl} == "yes"
+.  for _group in ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\8@:S/^://}
+_CARGO_GIT_PATCH_CARGOTOML:= ${_CARGO_GIT_PATCH_CARGOTOML} \
+	-e 's@git = "${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}(\.git)?"@path = "${WRKSRC_${_group}}"@'
+.  endfor
+.endif
 
-cargo-patch-github:
-	@${SED} -i.dist -E ${_CARGO_GH_PATCH_CARGOTOML} ${CARGO_GH_CARGOTOML}
+.if !empty(_CARGO_GIT_PATCH_CARGOTOML)
+_USES_patch+=	600:cargo-patch-git
+
+cargo-patch-git:
+	@${FIND} ${WRKDIR} -name Cargo.toml -type f -exec \
+		${SED} -i.dist -E ${_CARGO_GIT_PATCH_CARGOTOML} {} +
 .endif
 
 .if !target(do-configure) && ${CARGO_CONFIGURE:tl} == "yes"

Modified: head/audio/spotifyd/Makefile
==============================================================================
--- head/audio/spotifyd/Makefile	Mon Mar 25 06:12:34 2019	(r496794)
+++ head/audio/spotifyd/Makefile	Mon Mar 25 06:28:20 2019	(r496795)
@@ -293,16 +293,6 @@ CARGO_CRATES=	MacTypes-sys-2.1.0 \
 		ws2_32-sys-0.2.1 \
 		xdg-2.2.0
 CARGO_USE_GITHUB=	yes
-CARGO_GH_CARGOTOML=	${CARGO_CARGOTOML} \
-			${WRKSRC_alsa}/Cargo.toml \
-			${WRKSRC_dnsparser}/Cargo.toml \
-			${WRKSRC_librespot}/audio/Cargo.toml \
-			${WRKSRC_librespot}/Cargo.toml \
-			${WRKSRC_librespot}/connect/Cargo.toml \
-			${WRKSRC_librespot}/playback/Cargo.toml \
-			${WRKSRC_mdns}/Cargo.toml \
-			${WRKSRC_rustcrypto}/Cargo.toml \
-			${WRKSRC_tremor}/Cargo.toml
 
 CARGO_BUILD_ARGS=	--no-default-features
 CARGO_INSTALL_ARGS=	--no-default-features

Modified: head/devel/bingrep/Makefile
==============================================================================
--- head/devel/bingrep/Makefile	Mon Mar 25 06:12:34 2019	(r496794)
+++ head/devel/bingrep/Makefile	Mon Mar 25 06:28:20 2019	(r496795)
@@ -71,7 +71,6 @@ CARGO_CRATES=	aho-corasick-0.6.3 \
 		winapi-build-0.1.1 \
 		wincolor-0.1.4
 CARGO_USE_GITHUB=	yes
-CARGO_GH_CARGOTOML=	${WRKSRC}/Cargo.toml ${WRKSRC_metagoblin}/Cargo.toml
 
 PLIST_FILES=	bin/bingrep
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903250628.x2P6SKmv078168>