From owner-svn-ports-head@freebsd.org Tue Aug 6 08:12:40 2019 Return-Path: Delivered-To: svn-ports-head@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 488F9BC384; Tue, 6 Aug 2019 08:12:40 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 462nS81HJNz3JDX; Tue, 6 Aug 2019 08:12:40 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E00F29185; Tue, 6 Aug 2019 08:12:40 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x768Cdp3019692; Tue, 6 Aug 2019 08:12:39 GMT (envelope-from tobik@FreeBSD.org) Received: (from tobik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x768CdoN019690; Tue, 6 Aug 2019 08:12:39 GMT (envelope-from tobik@FreeBSD.org) Message-Id: <201908060812.x768CdoN019690@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tobik set sender to tobik@FreeBSD.org using -f From: Tobias Kortkamp Date: Tue, 6 Aug 2019 08:12:39 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r508234 - in head/Mk: Scripts Uses X-SVN-Group: ports-head X-SVN-Commit-Author: tobik X-SVN-Commit-Paths: in head/Mk: Scripts Uses X-SVN-Commit-Revision: 508234 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Aug 2019 08:12:40 -0000 Author: tobik Date: Tue Aug 6 08:12:39 2019 New Revision: 508234 URL: https://svnweb.freebsd.org/changeset/ports/508234 Log: Mk/Uses/cargo.mk: Add support for CARGO_USE_GITLAB/GL_TUPLE to cargo-crates Modified: head/Mk/Scripts/cargo-crates.awk head/Mk/Uses/cargo.mk Modified: head/Mk/Scripts/cargo-crates.awk ============================================================================== --- head/Mk/Scripts/cargo-crates.awk Tue Aug 6 08:07:16 2019 (r508233) +++ head/Mk/Scripts/cargo-crates.awk Tue Aug 6 08:12:39 2019 (r508234) @@ -3,8 +3,14 @@ BEGIN { gh_tuple_len = 0 + gl_tuple_len = 0 crates_len = 0 package_name = "" + + gitlab_sites["https://gitlab.com"] = 1 + gitlab_sites["https://gitlab.freedesktop.org"] = 1 + gitlab_sites["https://gitlab.gnome.org"] = 1 + gitlab_sites["https://gitlab.redox-os.org"] = 1 } /^"checksum .* .* \(registry\+.*\)" = ".*"/ { @@ -50,23 +56,41 @@ function split_url(s) { url["port"] = url_host[2] } -!gh_tuple_seen[$0] && /^source = "git\+(https|http|git):\/\/github.com\/.*#.*"/ { +!gh_tuple_seen[$0] && /^source = "git\+(https|http|git):\/\/.*\/.*#.*"/ { gh_tuple_seen[$0] = 1 - split_url(substr($3, 1, length($3) - 1)) - + split_url(substr($3, 1 + length("\"git+"), length($3) - 1 - length("\"git+"))) + split(url["path"], path, "/") account = path[2] project = path[3] gsub("\.git$", "", project) - + if (match(url["query"], "^tag=")) { split(url["query"], tag_, "=") tag = tag_[2] } else { tag = url["fragment"] } - gh_tuple[gh_tuple_len++] = sprintf(\ - "%s:%s:%s:%s", account, project, tag, package_name) + + if (url["host"] == "github.com") { + gh_tuple[gh_tuple_len++] = sprintf(\ + "%s:%s:%s:%s", account, project, tag, package_name) + } else { + repo_site = sprintf("%s://%s", url["scheme"], url["host"]) + for (site in gitlab_sites) { + if (repo_site != site) { + continue + } + if (ENVIRON["GL_SITE"] == site) { + gl_tuple[gl_tuple_len++] = sprintf(\ + "%s:%s:%s:%s", account, project, tag, package_name) + } else { + gl_tuple[gl_tuple_len++] = sprintf(\ + "%s:%s:%s:%s:%s", site, account, project, tag, package_name) + } + break + } + } } function print_array(start, arr, arrlen) { @@ -85,8 +109,15 @@ END { printf "USE_GITHUB=\tnodefault\n" } print_array("GH_TUPLE=", gh_tuple, gh_tuple_len) + if (gl_tuple_len > 0 && ENVIRON["USE_GITLAB"] == "") { + printf "USE_GITLAB=\tnodefault\n" + } + print_array("GL_TUPLE=", gl_tuple, gl_tuple_len) print_array("CARGO_CRATES=", crates, crates_len) if (gh_tuple_len > 0) { printf "CARGO_USE_GITHUB=\tyes\n" + } + if (gl_tuple_len > 0) { + printf "CARGO_USE_GITLAB=\tyes\n" } } Modified: head/Mk/Uses/cargo.mk ============================================================================== --- head/Mk/Uses/cargo.mk Tue Aug 6 08:07:16 2019 (r508233) +++ head/Mk/Uses/cargo.mk Tue Aug 6 08:12:39 2019 (r508234) @@ -289,7 +289,7 @@ cargo-crates: extract --manifest-path ${CARGO_CARGOTOML} \ --verbose; \ fi - @${SETENV} USE_GITHUB=${USE_GITHUB} \ + @${SETENV} USE_GITHUB=${USE_GITHUB} USE_GITLAB=${USE_GITLAB} GL_SITE=${GL_SITE} \ ${AWK} -f ${SCRIPTSDIR}/cargo-crates.awk ${CARGO_CARGOLOCK} # cargo-crates-licenses will try to grab license information from