From nobody Wed Jul 12 22:15:13 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4R1X9n54tZz4nQyd; Wed, 12 Jul 2023 22:15:25 +0000 (UTC) (envelope-from eduardo@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4R1X9n4nt2z4Llj; Wed, 12 Jul 2023 22:15:25 +0000 (UTC) (envelope-from eduardo@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1689200125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=sPl1SSthdYLtYdVP1F0U+ak0hBsYBsD0iw7Gy/ztIEA=; b=WEubR77FQsMSjl/h/dTPR4Z9ISTDplvTkyAq/aAbfTD8M2e52Rdsk5XHUkpNI7O5Sid80u EKOG/GyJEhH8I/GQnhhbKua3TBRAF/7+acJ8YeB852E8LqpqIw93KW8r9Sn+hwj9seFY19 zIOfeyYHsJ7oEhWs8QAYcxuucC/BhzoImQgU+0CgEdxq4nrQpao7p8/EFy24VZ/jGwe9PL F1riO/5wzkuBXgAeo9/9YolLYQ182PjZtT7OrY4pFZYFiaoWSsC6bbx2i9suCYRN78xFK4 IbrPqekmOoVxWj8BX3f7Ts5YjCRhNXOU2SS+ObwBbl2YNNmbzvz17TcJgL6zjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1689200125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=sPl1SSthdYLtYdVP1F0U+ak0hBsYBsD0iw7Gy/ztIEA=; b=Jz7/DLppbGM0wCirLfzHjqVYJVN6Tz9M3uoR6wp60YjrKuyHy3eiJjMJndRlpvofrJg4ci Mlv5kFKTESuqG/AdxNdgZ5HC0w4JFxGPKC63KGX9vA7mc+XiJLZOLZSt3DUmUUjy1GVsib fuppn1xktj+TjtB04RsrLY8Rn8YVbeBzJBZrMCl6nqUTtDp+k7qKR8QErhtwCH5dVHuWrr im8lCpfSxHSSmGxygD5JFVQMtSV/QcrBAMMXXfBWF11KEJPY3p5f0TJp2beMrJszVrS8kU SXE8RzJ8nj4mu/PEMeF6j0Uhol/J1rNV/kFhBd5emIC9RevLWkbcjGPHtrSwYQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1689200125; a=rsa-sha256; cv=none; b=ZDayauPYLRDSWJkOEP2mQ1IC06Q6pVx3TNdYW9mLTOYrxI5nvCNz/6q4HZhG7YhzYvd9GO s6y2z2J29P5a26qiRcSSqvfa/youM9zL6CmA/IfX0sVe+eKmoGjh/nGqcLTNu4tUkVNKLY zemHDs+0w2rwiEM9AVmAfouT48C82OeqesqDn/Zs+Pz74bagXL/st1ejFyIFeq3sYCn/Wn esCBE91DAFLV/tc06GmVdHRAg/+reSsBEtzcXVvay14pRVthZBMj73VLiChKC0g1gNmdFm CAwb7QlkpJhlVoTQolGTbJTfKb8/lT1k4XJItpynCRUghAakN+FpL2/Wua4e6Q== Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) (Authenticated sender: eduardo) by smtp.freebsd.org (Postfix) with ESMTPSA id 4R1X9n3kKrz145Q; Wed, 12 Jul 2023 22:15:25 +0000 (UTC) (envelope-from eduardo@freebsd.org) Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-4036507ddadso1003511cf.3; Wed, 12 Jul 2023 15:15:25 -0700 (PDT) X-Gm-Message-State: ABy/qLb2UqAp6528vxa5CjMMLkUZ/3UvfAopA/AdGVltokaFSi7+ZE0h xrRee+2KwMVxabYA8b6A1ml+Ra1Gh+eYZ7kcpHw= X-Google-Smtp-Source: APBJJlEfu23ODbyNcVvfUJEqnzmkh6Kz3fwQQZpK91rGuhBBpmalSHaDqxT7RlGNx+r8obJzO6fPyuCcFk/+UxDQdUc= X-Received: by 2002:ac8:5793:0:b0:402:2e84:f06e with SMTP id v19-20020ac85793000000b004022e84f06emr26031315qta.27.1689200125050; Wed, 12 Jul 2023 15:15:25 -0700 (PDT) List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 References: <202307121858.36CIw4aK074024@gitrepo.freebsd.org> In-Reply-To: <202307121858.36CIw4aK074024@gitrepo.freebsd.org> From: Nuno Teixeira Date: Wed, 12 Jul 2023 23:15:13 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: git: 16bde072b16d - main - bsd.sites.mk: Support tag names with USE_GITLAB To: Felix Palmen Cc: ports-committers@freebsd.org, dev-commits-ports-all@freebsd.org, dev-commits-ports-main@freebsd.org Content-Type: multipart/alternative; boundary="0000000000006883f80600518dc5" X-ThisMailContainsUnwantedMimeParts: N --0000000000006883f80600518dc5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Felix, Nice work! Thats nice to see clean distnames with this change: -SHA256 (libinput-libei-xxx*_GL0*.tar.gz) =3D xxx +SHA256 (libei-1.0.0.tar.bz2) =3D yyy Isn't possible to have same result with USE_GITHUB? SHA256 (ib-xarchiver-0.5.4.21*_GH0*.tar.gz) =3D xxx like we have when github static tarballs are available and we use MASTER_SITES instead of USE_GITHUB: MASTER_SITES=3D https://github.com/juzzlin/Heimer/releases/download/${DISTVERSION}/ SHA256 (heimer-4.2.0.tar.gz) =3D xxx (without *_GH0*) Thanks, Felix Palmen escreveu no dia quarta, 12/07/2023 =C3=A0= (s) 19:58: > The branch main has been updated by zirias: > > URL: > https://cgit.FreeBSD.org/ports/commit/?id=3D16bde072b16daca1c886116e602c9= 4b5fa99c20f > > commit 16bde072b16daca1c886116e602c94b5fa99c20f > Author: Felix Palmen > AuthorDate: 2022-10-21 07:10:41 +0000 > Commit: Felix Palmen > CommitDate: 2023-07-12 18:55:08 +0000 > > bsd.sites.mk: Support tag names with USE_GITLAB > > Since quite some time, it's possible to download generated tarballs > from > gitlab for a tag name without knowing the corresponding git hash. Thi= s > is preferable because you have a single source of truth about the > software version. > > Support this by replacing GL_COMMIT with GL_TAGNAME which also accept= s > a > commit hash, similar to USE_GITHUB. Unfortunately, there's a catch, t= he > DISTFILE must be named exactly: ${GL_PROJECT}-${GL_TAGNAME}.tar.bz2, > otherwise it extracts in a directory that contains the commit hash. S= o, > we can't add the gitlab account or the revision suffix to make it wor= k. > > Therefore, detect whether GL_TAGNAME contains a commit hash, and if i= t > does, use the old behavior of deriving DISTNAME and DISTFILES. > > Document in CHANGES, also add a DEV_WARNING similar to USE_GITHUB whe= n > there's an URL in MASTER_SITES that looks like a gitlab URL. With > support for tags, there shouldn't be any reason left to hardcode such > an > URL in MASTER_SITES. > > PR: 248967 > Approved by: portmgr (tcberner, mentor) > Differential Revision: https://reviews.freebsd.org/D37077 > --- > CHANGES | 16 ++++++++++++++ > Mk/Uses/kde.mk | 2 +- > Mk/Uses/xorg-cat.mk | 2 +- > Mk/bsd.options.mk | 2 +- > Mk/bsd.port.mk | 8 +------ > Mk/bsd.sites.mk | 61 > +++++++++++++++++++++++++++++++++++++---------------- > 6 files changed, 63 insertions(+), 28 deletions(-) > > diff --git a/CHANGES b/CHANGES > index 5e98b3ee86a4..25c7d5fa12a9 100644 > --- a/CHANGES > +++ b/CHANGES > @@ -10,6 +10,22 @@ in the release notes and/or placed into UPDATING. > > All ports committers are allowed to commit to this file. > > +20230712: > +AUTHOR: zirias@FreeBSD.org > + > + USE_GITLAB has been changed to allow fetching by tag name. This was > done by > + removing the GL_COMMIT variable and introducing GL_TAGNAME instead. > + > + Similar to USE_GITHUB/GH_TAGNAME, you can still use a commit hash with > + GL_TAGNAME (the full 40-character hash is required for that). If not > + specified, GL_TAGNAME defaults to DISTVERSIONFULL. > + > + Note fetching by tag name might not work on gitlab installations runni= ng > + very old versions; in that case, you must still specify a commit hash. > + > + For now, GL_COMMIT is still recognized but deprecated, using it will > issue > + a warning in developer mode. > + > 20230712: > AUTHOR: 0mp@FreeBSD.org > > diff --git a/Mk/Uses/kde.mk b/Mk/Uses/kde.mk > index aa9e2f39fbc4..863fe85d0c17 100644 > --- a/Mk/Uses/kde.mk > +++ b/Mk/Uses/kde.mk > @@ -134,7 +134,7 @@ USE_GITLAB=3D yes > GL_SITE=3D https://invent.kde.org > GL_ACCOUNT=3D ${_invent_category} > GL_PROJECT=3D ${_invent_name} > -GL_COMMIT=3D ${_invent_hash} > +GL_TAGNAME=3D ${_invent_hash} > . endif > . endif > > diff --git a/Mk/Uses/xorg-cat.mk b/Mk/Uses/xorg-cat.mk > index 3b64eecad9ae..0853fd6b3e3c 100644 > --- a/Mk/Uses/xorg-cat.mk > +++ b/Mk/Uses/xorg-cat.mk > @@ -26,7 +26,7 @@ > # * meson (experimental) > # > # > -# By defining USE_GITLAB and GL_COMMIT, it is possible to pull code > straight > +# By defining USE_GITLAB and GL_TAGNAME, it is possible to pull code > straight > # from the freedesktop.org gitlab, instead of official release tarballs. > # > #.MAINTAINER: x11@FreeBSD.org > diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk > index 90af39e1bed5..09656bb0e1e9 100644 > --- a/Mk/bsd.options.mk > +++ b/Mk/bsd.options.mk > @@ -184,7 +184,7 @@ _OPTIONS_FLAGS=3D ALL_TARGET BROKEN > CABAL_EXECUTABLES CATEGORIES CFLAGS CONFIGURE_ > CONFLICTS CONFLICTS_BUILD CONFLICTS_INSTALL CPPFLAGS > CXXFLAGS \ > DESKTOP_ENTRIES DISTFILES EXTRA_PATCHES EXTRACT_ONLY \ > GH_ACCOUNT GH_PROJECT GH_SUBDIR GH_TAGNAME GH_TUPLE \ > - GL_ACCOUNT GL_COMMIT GL_PROJECT GL_SITE GL_SUBDIR GL_TUPL= E > \ > + GL_ACCOUNT GL_PROJECT GL_SITE GL_SUBDIR GL_TAGNAME > GL_TUPLE \ > IGNORE INFO INSTALL_TARGET LDFLAGS LIBS MAKE_ARGS MAKE_EN= V > \ > MASTER_SITES PATCHFILES PATCH_SITES PLIST_DIRS PLIST_FILE= S > \ > PLIST_SUB PORTDOCS PORTEXAMPLES SUB_FILES SUB_LIST \ > diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk > index 5e3c2e7fad2f..9f6dfb0452c1 100644 > --- a/Mk/bsd.port.mk > +++ b/Mk/bsd.port.mk > @@ -1725,7 +1725,7 @@ WRKSRC?=3D > ${WRKDIR}/${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT} > . if defined(WRKSRC) > DEV_WARNING+=3D "You are using USE_GITLAB and WRKSRC is set which is > wrong. Set GL_PROJECT, GL_ACCOUNT correctly, and/or set WRKSRC_SUBDIR an= d > remove WRKSRC entirely." > . endif > -WRKSRC?=3D ${WRKDIR}/${GL_PROJECT}-${GL_COMMIT} > +WRKSRC?=3D ${WRKDIR}/${GL_PROJECT}-${GL_TAGNAME} > . endif > > # If the distname is not extracting into a specific subdirectory, have t= he > @@ -2963,12 +2963,6 @@ DEPENDS_ARGS+=3D NOCLEANDEPENDS=3Dyes > . endif > . endif > > -. if defined(USE_GITLAB) && !${USE_GITLAB:Mnodefault} && > empty(GL_COMMIT_DEFAULT) > -check-makevars:: > - @${ECHO_MSG} "GL_COMMIT is a required 40 character hash for use > USE_GITLAB" > - @${FALSE} > -. endif > - > ################################################################ > # > # Do preliminary work to detect if we need to run the config > diff --git a/Mk/bsd.sites.mk b/Mk/bsd.sites.mk > index 78cb71593c4f..c6bee3798d56 100644 > --- a/Mk/bsd.sites.mk > +++ b/Mk/bsd.sites.mk > @@ -268,10 +268,10 @@ IGNORE?=3D Using master as GH_TAGNAME is invalid. = \ > . if defined(GH_TUPLE) > . for _tuple in ${GH_TUPLE} > _t_tmp=3D${_tuple} > -. if ${_t_tmp:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\4@ > :S/://:C/[a-zA-Z0-9_]//g} > +. if ${_t_tmp:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\4@ > :S/://:C/[a-zA-Z0-9_.+-]//g} > check-makevars:: > @${ECHO_MSG} "The ${_tuple} GH_TUPLE line has" > - @${ECHO_MSG} "a tag containing something else than [a-zA-Z0-9_]" > + @${ECHO_MSG} "a tag containing something else than [a-zA-Z0-9_.+-= ]" > @${FALSE} > . endif > . endfor > @@ -405,6 +405,11 @@ WWW?=3D > https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/ > . endif # defined(USE_GITHUB) > .endif # !defined(IGNORE_MASTER_SITE_GITHUB) > > +# Keep this before USE_GITLAB > +.if !empty(MASTER_SITES:M*//*/*/*/-/archive/${DISTVERSIONFULL}/) > +DEV_WARNING+=3D "MASTER_SITES contains > ${MASTER_SITES:M*//*/*/*/-/archive/${DISTVERSIONFULL}/}, please use > USE_GITLAB instead." > +.endif > + > .if !defined(IGNORE_MASTER_SITE_GITLAB) > # > # In order to use GitLab your port must define USE_GITLAB and the > following > @@ -419,34 +424,40 @@ WWW?=3D > https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/ > # GL_PROJECT - name of the project on GitLab > # default: ${PORTNAME} > # > -# GL_COMMIT - the commit hash of the repository, must be the full > hash and > -# is a required variable for GitLab. > +# GL_TAGNAME - name of the tag to download (2.0.1, hash, ...) > +# Using the name of a branch here is incorrect. It is > +# possible to do GL_TAGNAME=3D GIT_HASH to do a snapshot= . > +# default: ${DISTVERSIONFULL} > # > # GL_SUBDIR - directory relative to WRKSRC where to move this > distfile's > # content after extracting. > # > -# GL_TUPLE - above shortened to > [site[:port][/webroot]:]account:project:commit:group[/subdir] > +# GL_TUPLE - above shortened to > [site[:port][/webroot]:]account:project:tagname:group[/subdir] > # > . if defined(USE_GITLAB) > +. if !defined(GL_TAGNAME) && defined(GL_COMMIT) > +GL_TAGNAME=3D ${GL_COMMIT} > +DEV_WARNING+=3D "GL_COMMIT is deprecated, please use GL_TAGNAME instead= " > +. endif > . if defined(GL_TUPLE) > . for _tuple in ${GL_TUPLE} > -. if ${_tuple:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\7@ > :S/^://:C/[a-f0-9]{40}//g} > +. if ${_tuple:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\7@ > :S/^://:C/[a-zA-Z0-9_.+-]//g} > check-makevars:: > @${ECHO_MSG} "The ${_tuple}" > - @${ECHO_MSG} "GL_TUPLE is improperly formatted or, the commit" > - @${ECHO_MSG} "section contains something other than [a-f0-9]" > + @${ECHO_MSG} "GL_TUPLE is improperly formatted or, the tagname" > + @${ECHO_MSG} "section contains something other than > [a-zA-Z0-9_.+-]" > @${FALSE} > . endif > . endfor > GL_SITE+=3D ${GL_TUPLE:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\1\8@ > :S@::@:@} > GL_ACCOUNT+=3D ${GL_TUPLE:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\5\8@ > } > GL_PROJECT+=3D ${GL_TUPLE:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\6\8@ > } > -GL_COMMIT+=3D ${GL_TUPLE:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\7\8@ > } > +GL_TAGNAME+=3D ${GL_TUPLE:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\7\8@ > } > GL_SUBDIR+=3D ${GL_TUPLE:C@ > ^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:= [^:/]*)((/.*)?)@\9\8@ > :M/*:S/^\///} > . endif > > . if empty(USE_GITLAB:Mnodefault) > -MASTER_SITES+=3D > ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/archive/${GL_COMMIT}.tar.gz?dumm= y=3D/ > +MASTER_SITES+=3D > ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/archive/${GL_TAGNAME:C@ > ^[a-f0-9]{40}$@\0.tar.gz?dummy=3D@}/ > . endif > GL_SITE_DEFAULT=3D https://gitlab.com > GL_SITE?=3D ${GL_SITE_DEFAULT} > @@ -454,8 +465,10 @@ GL_ACCOUNT_DEFAULT=3D ${PORTNAME} > GL_ACCOUNT?=3D ${GL_ACCOUNT_DEFAULT} > GL_PROJECT_DEFAULT=3D ${PORTNAME} > GL_PROJECT?=3D ${GL_PROJECT_DEFAULT} > +GL_TAGNAME_DEFAULT=3D ${DISTVERSIONFULL} > +GL_TAGNAME?=3D ${GL_TAGNAME_DEFAULT} > _GITLAB_GROUPS=3D DEFAULT > -. for _gl_v in GL_SITE GL_ACCOUNT GL_PROJECT GL_COMMIT GL_SUBDIR > +. for _gl_v in GL_SITE GL_ACCOUNT GL_PROJECT GL_TAGNAME GL_SUBDIR > . for _v_ex in ${${_gl_v}} > _GL_GROUPS=3D ${_v_ex:S/^${_v_ex:C@:[^/:]+$@@}//:S/^://} > . if !empty(_GL_GROUPS) > @@ -479,18 +492,24 @@ ${_gl_v}_DEFAULT=3D ${_v_ex:C@^(.*):[^/:]+$@\1@} > GL_SITE:=3D ${GL_SITE_DEFAULT} > GL_ACCOUNT:=3D ${GL_ACCOUNT_DEFAULT} > GL_PROJECT:=3D ${GL_PROJECT_DEFAULT} > -GL_COMMIT:=3D ${GL_COMMIT_DEFAULT} > +GL_TAGNAME:=3D ${GL_TAGNAME_DEFAULT} > GL_SUBDIR:=3D ${GL_SUBDIR_DEFAULT} > > _GITLAB_REV=3D 0 > > -_GITLAB_EXTRACT_SUFX=3D .tar.gz > +_GITLAB_EXTRACT_SUFX=3D .tar.gz > +_GITLAB_TAG_EXTRACT_SUFX=3D .tar.bz2 > > _GITLAB_CLONE_DIR?=3D ${WRKDIR}/git-clone > _PORTS_DIRECTORIES+=3D ${_GITLAB_CLONE_DIR} > . if !${USE_GITLAB:Mnodefault} > -DISTNAME:=3D ${GL_ACCOUNT}-${GL_PROJECT}-${GL_COMMIT}_GL${_GITLAB_RE= V} > +. if ${GL_TAGNAME:C/^[a-f0-9]{40}$//} > +DISTNAME:=3D ${GL_PROJECT}-${GL_TAGNAME} > +DISTFILES+=3D ${DISTNAME}${_GITLAB_TAG_EXTRACT_SUFX} > +. else > +DISTNAME:=3D ${GL_ACCOUNT}-${GL_PROJECT}-${GL_TAGNAME}_GL${_GITLAB_R= EV} > DISTFILES+=3D ${DISTNAME}${_GITLAB_EXTRACT_SUFX} > +. endif > git-clone: git-clone-DEFAULT > git-clone-DEFAULT: ${_GITLAB_CLONE_DIR} > @git clone > ${GL_SITE_DEFAULT}/${GL_ACCOUNT_DEFAULT}/${GL_PROJECT_DEFAULT}.git > ${_GITLAB_CLONE_DIR}/${GL_PROJECT_DEFAULT} > @@ -512,12 +531,18 @@ GL_SITE_${_group}=3D ${GL_SITE_DEFAULT} > GL_ACCOUNT_${_group}?=3D ${GL_ACCOUNT_DEFAULT} > GL_PROJECT_${_group}?=3D ${GL_PROJECT_DEFAULT} > > -_GL_TUPLE_OUT:=3D ${_GL_TUPLE_OUT} > ${GL_SITE_${_group}}:${GL_ACCOUNT_${_group}}:${GL_PROJECT_${_group}}:${GL= _COMMIT_${_group}}:${_group}/${GL_SUBDIR_${_group}} > -DISTNAME_${_group}:=3D > ${GL_ACCOUNT_${_group}}-${GL_PROJECT_${_group}}-${GL_COMMIT_${_group}}_G= L${_GITLAB_REV} > +_GL_TUPLE_OUT:=3D ${_GL_TUPLE_OUT} > ${GL_SITE_${_group}}:${GL_ACCOUNT_${_group}}:${GL_PROJECT_${_group}}:${GL= _TAGNAME_${_group}}:${_group}/${GL_SUBDIR_${_group}} > +. if ${GL_TAGNAME_${_group}:C/^[a-f0-9]{40}$//} > +DISTNAME_${_group}:=3D ${GL_PROJECT_${_group}}-${GL_TAGNAME_${_group}} > +DISTFILE_${_group}:=3D ${DISTNAME_${_group}}${_GITLAB_TAG_EXTRACT_SUFX= } > +MASTER_SITES:=3D ${MASTER_SITES} > ${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}/-/ar= chive/${GL_TAGNAME_${_group}}/:${_group} > +. else > +DISTNAME_${_group}:=3D > ${GL_ACCOUNT_${_group}}-${GL_PROJECT_${_group}}-${GL_TAGNAME_${_group}}_= GL${_GITLAB_REV} > DISTFILE_${_group}:=3D ${DISTNAME_${_group}}${_GITLAB_EXTRACT_SUFX} > +MASTER_SITES:=3D ${MASTER_SITES} > ${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}/-/ar= chive/${GL_TAGNAME_${_group}}.tar.gz?dummy=3D/:${_group} > +. endif > DISTFILES:=3D ${DISTFILES} ${DISTFILE_${_group}}:${_group} > -MASTER_SITES:=3D ${MASTER_SITES} > ${GL_SITE_${_group}}/${GL_ACCOUNT_${_group}}/${GL_PROJECT_${_group}}/-/ar= chive/${GL_COMMIT_${_group}}.tar.gz?dummy=3D/:${_group} > -WRKSRC_${_group}:=3D > ${WRKDIR}/${GL_PROJECT_${_group}}-${GL_COMMIT_${_group}} > +WRKSRC_${_group}:=3D > ${WRKDIR}/${GL_PROJECT_${_group}}-${GL_TAGNAME_${_group}} > . if !empty(GL_SUBDIR_${_group}) > _SITES_extract:=3D ${_SITES_extract} 690:post-extract-gl-${_group} > post-extract-gl-${_group}: > --=20 Nuno Teixeira FreeBSD Committer (ports) --0000000000006883f80600518dc5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Felix,

Nice work!

Thats nice to see clean distnames with this change:

-SHA256 (libinput-libei-xxx_GL0.tar.gz) = =3D xxx
+SHA256 (libei-1.0.0.tar.bz2) =3D yyy

Isn't possible to have same result with USE_GITHUB?
SHA256 (ib-xarchiver-0.5.4.21_GH0.tar.gz) =3D xxx
<= div>
like we have when github static tarballs are available a= nd we use MASTER_SITES instead of USE_GITHUB:

SHA256 (heimer-4.2.0.tar.gz) =3D xxx (withou= t _GH0)

Thanks,





Felix Palmen <zirias@freebsd.org> escreveu no dia quarta, 12/07/2023 = =C3=A0(s) 19:58:
The branch main has been updated by zirias:

URL: https://cgi= t.FreeBSD.org/ports/commit/?id=3D16bde072b16daca1c886116e602c94b5fa99c20f

commit 16bde072b16daca1c886116e602c94b5fa99c20f
Author:=C2=A0 =C2=A0 =C2=A0Felix Palmen <zirias@FreeBSD.org>
AuthorDate: 2022-10-21 07:10:41 +0000
Commit:=C2=A0 =C2=A0 =C2=A0Felix Palmen <zirias@FreeBSD.org>
CommitDate: 2023-07-12 18:55:08 +0000

=C2=A0 =C2=A0
bsd.sites.mk: Support tag names with USE_GITLAB

=C2=A0 =C2=A0 Since quite some time, it's possible to download generate= d tarballs from
=C2=A0 =C2=A0 gitlab for a tag name without knowing the corresponding git h= ash. This
=C2=A0 =C2=A0 is preferable because you have a single source of truth about= the
=C2=A0 =C2=A0 software version.

=C2=A0 =C2=A0 Support this by replacing GL_COMMIT with GL_TAGNAME which als= o accepts a
=C2=A0 =C2=A0 commit hash, similar to USE_GITHUB. Unfortunately, there'= s a catch, the
=C2=A0 =C2=A0 DISTFILE must be named exactly: ${GL_PROJECT}-${GL_TAGNAME}.t= ar.bz2,
=C2=A0 =C2=A0 otherwise it extracts in a directory that contains the commit= hash. So,
=C2=A0 =C2=A0 we can't add the gitlab account or the revision suffix to= make it work.

=C2=A0 =C2=A0 Therefore, detect whether GL_TAGNAME contains a commit hash, = and if it
=C2=A0 =C2=A0 does, use the old behavior of deriving DISTNAME and DISTFILES= .

=C2=A0 =C2=A0 Document in CHANGES, also add a DEV_WARNING similar to USE_GI= THUB when
=C2=A0 =C2=A0 there's an URL in MASTER_SITES that looks like a gitlab U= RL. With
=C2=A0 =C2=A0 support for tags, there shouldn't be any reason left to h= ardcode such an
=C2=A0 =C2=A0 URL in MASTER_SITES.

=C2=A0 =C2=A0 PR:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0248967
=C2=A0 =C2=A0 Approved by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 portmgr= (tcberner, mentor)
=C2=A0 =C2=A0 Differential Revision:=C2=A0 https://reviews.freebsd= .org/D37077
---
=C2=A0CHANGES=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 16 +++++++++= +++++
=C2=A0Mk/Uses/kde.mk=C2=A0 =C2=A0 =C2=A0 |=C2=A0 2 +-
=C2=A0Mk/Uses/xorg-cat.mk |=C2=A0 2 +-
=C2=A0Mk/bsd.options.mk=C2=A0 =C2=A0|=C2=A0 2 +-
=C2=A0Mk/bsd.port.mk=C2=A0 =C2=A0 =C2=A0 |=C2=A0 8 +------
=C2=A0Mk/bsd.sites.mk=C2=A0 =C2=A0 =C2=A0| 61 +++++++++++++++++++++++++++++++= ++++++----------------
=C2=A06 files changed, 63 insertions(+), 28 deletions(-)

diff --git a/CHANGES b/CHANGES
index 5e98b3ee86a4..25c7d5fa12a9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,22 @@ in the release notes and/or placed into UPDATING.

=C2=A0All ports committers are allowed to commit to this file.

+20230712:
+AUTHOR: zirias@FreeBSD.org
+
+=C2=A0 USE_GITLAB has been changed to allow fetching by tag name. This was= done by
+=C2=A0 removing the GL_COMMIT variable and introducing GL_TAGNAME instead.=
+
+=C2=A0 Similar to USE_GITHUB/GH_TAGNAME, you can still use a commit hash w= ith
+=C2=A0 GL_TAGNAME (the full 40-character hash is required for that). If no= t
+=C2=A0 specified, GL_TAGNAME defaults to DISTVERSIONFULL.
+
+=C2=A0 Note fetching by tag name might not work on gitlab installations ru= nning
+=C2=A0 very old versions; in that case, you must still specify a commit ha= sh.
+
+=C2=A0 For now, GL_COMMIT is still recognized but deprecated, using it wil= l issue
+=C2=A0 a warning in developer mode.
+
=C2=A020230712:
=C2=A0AUTHOR: 0mp@FreeBSD.org

diff --git a/Mk/Uses/kde.mk b/Mk/Uses/kde.mk
index aa9e2f39fbc4..863fe85d0c17 100644
--- a/Mk/Uses/kde.mk
+++ b/Mk/Uses/kde.mk
@@ -134,7 +134,7 @@ USE_GITLAB=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0yes
=C2=A0GL_SITE=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0https:/= /invent.kde.org
=C2=A0GL_ACCOUNT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ${_invent_cate= gory}
=C2=A0GL_PROJECT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ${_invent_name= }
-GL_COMMIT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0${_invent_hash= }
+GL_TAGNAME=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ${_invent_hash}
=C2=A0.=C2=A0 =C2=A0 =C2=A0 endif
=C2=A0.=C2=A0 =C2=A0 endif

diff --git a/Mk/Uses/xorg-cat.mk b/Mk/Uses/xorg-cat.mk
index 3b64eecad9ae..0853fd6b3e3c 100644
--- a/Mk/Uses/xorg-cat.mk
+++ b/Mk/Uses/xorg-cat.mk
@@ -26,7 +26,7 @@
=C2=A0#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * meson (experiment= al)
=C2=A0#
=C2=A0#
-# By defining USE_GITLAB and GL_COMMIT, it is possible to pull code straig= ht
+# By defining USE_GITLAB and GL_TAGNAME, it is possible to pull code strai= ght
=C2=A0# from the freedesktop.org gitlab, instead of official release tarba= lls.
=C2=A0#
=C2=A0#.MAINTAINER:=C2=A0 x11@FreeBSD.org
diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk
index 90af39e1bed5..09656bb0e1e9 100644
--- a/Mk/bsd.options.mk
+++ b/Mk/bsd.options.mk
@@ -184,7 +184,7 @@ _OPTIONS_FLAGS=3D=C2=A0 =C2=A0 =C2=A0ALL_TARGET BROKEN = CABAL_EXECUTABLES CATEGORIES CFLAGS CONFIGURE_
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 CONFLICTS CONFLICTS= _BUILD CONFLICTS_INSTALL CPPFLAGS CXXFLAGS \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 DESKTOP_ENTRIES DIS= TFILES EXTRA_PATCHES EXTRACT_ONLY \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 GH_ACCOUNT GH_PROJE= CT GH_SUBDIR GH_TAGNAME GH_TUPLE \
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GL_ACCOUNT GL_COMMI= T GL_PROJECT GL_SITE GL_SUBDIR GL_TUPLE \
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GL_ACCOUNT GL_PROJE= CT GL_SITE GL_SUBDIR GL_TAGNAME GL_TUPLE \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 IGNORE INFO INSTALL= _TARGET LDFLAGS LIBS MAKE_ARGS MAKE_ENV \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 MASTER_SITES PATCHF= ILES PATCH_SITES PLIST_DIRS PLIST_FILES \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PLIST_SUB PORTDOCS = PORTEXAMPLES SUB_FILES SUB_LIST \
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 5e3c2e7fad2f..9f6dfb0452c1 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -1725,7 +1725,7 @@ WRKSRC?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WRKDIR= }/${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}
=C2=A0.=C2=A0 =C2=A0 =C2=A0 if defined(WRKSRC)
=C2=A0DEV_WARNING+=3D=C2=A0 "You are using USE_GITLAB and WRKSRC is se= t which is wrong.=C2=A0 Set GL_PROJECT, GL_ACCOUNT correctly, and/or set WR= KSRC_SUBDIR and remove WRKSRC entirely."
=C2=A0.=C2=A0 =C2=A0 =C2=A0 endif
-WRKSRC?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0${WRKDIR}= /${GL_PROJECT}-${GL_COMMIT}
+WRKSRC?=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0${WRKDIR}= /${GL_PROJECT}-${GL_TAGNAME}
=C2=A0.=C2=A0 =C2=A0 endif

=C2=A0# If the distname is not extracting into a specific subdirectory, hav= e the
@@ -2963,12 +2963,6 @@ DEPENDS_ARGS+=3D=C2=A0 =C2=A0NOCLEANDEPENDS=3Dyes =C2=A0.=C2=A0 =C2=A0 =C2=A0 endif
=C2=A0.=C2=A0 =C2=A0 endif

-.=C2=A0 =C2=A0 if defined(USE_GITLAB) && !${USE_GITLAB:Mnodefault}= && empty(GL_COMMIT_DEFAULT)
-check-makevars::
-=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "GL_COMMIT is a required 40 c= haracter hash for use USE_GITLAB"
-=C2=A0 =C2=A0 =C2=A0 =C2=A0@${FALSE}
-.=C2=A0 =C2=A0 endif
-
=C2=A0################################################################
=C2=A0#
=C2=A0# Do preliminary work to detect if we need to run the config
diff --git a/Mk/bsd.sites.mk b/Mk/bsd.sites.mk
index 78cb71593c4f..c6bee3798d56 100644
--- a/Mk/bsd.sites.mk
+++ b/Mk/bsd.sites.mk
@@ -268,10 +268,10 @@ IGNORE?=3D=C2=A0 Using master as GH_TAGNAME is invali= d. \
=C2=A0.=C2=A0 =C2=A0 if defined(GH_TUPLE)
=C2=A0.=C2=A0 =C2=A0 =C2=A0 for _tuple in ${GH_TUPLE}
=C2=A0_t_tmp=3D${_tuple}
-.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ${_t_tmp:C@^([^:]*):([^:]*):([^:]*)((:[^:/= ]*)?)((/.*)?)@\4@:S/://:C/[a-zA-Z0-9_]//g}
+.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ${_t_tmp:C@^([^:]*):([^:]*):([^:]*)((:[^:/= ]*)?)((/.*)?)@\4@:S/://:C/[a-zA-Z0-9_.+-]//g}
=C2=A0check-makevars::
=C2=A0 =C2=A0 =C2=A0 =C2=A0 @${ECHO_MSG} "The ${_tuple} GH_TUPLE line = has"
-=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "a tag containing something e= lse than [a-zA-Z0-9_]"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "a tag containing something e= lse than [a-zA-Z0-9_.+-]"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 @${FALSE}
=C2=A0.=C2=A0 =C2=A0 =C2=A0 =C2=A0 endif
=C2=A0.=C2=A0 =C2=A0 =C2=A0 endfor
@@ -405,6 +405,11 @@ WWW?=3D=C2=A0 =C2=A0 =C2=A0 https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/
=C2=A0.=C2=A0 endif # defined(USE_GITHUB)
=C2=A0.endif # !defined(IGNORE_MASTER_SITE_GITHUB)

+# Keep this before USE_GITLAB
+.if !empty(MASTER_SITES:M*//*/*/*/-/archive/${DISTVERSIONFULL}/)
+DEV_WARNING+=3D=C2=A0 "MASTER_SITES contains ${MASTER_SITES:M*//*/*/*= /-/archive/${DISTVERSIONFULL}/}, please use USE_GITLAB instead."
+.endif
+
=C2=A0.if !defined(IGNORE_MASTER_SITE_GITLAB)
=C2=A0#
=C2=A0# In order to use GitLab your port must define USE_GITLAB and the fol= lowing
@@ -419,34 +424,40 @@ WWW?=3D=C2=A0 =C2=A0 =C2=A0https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/
=C2=A0# GL_PROJECT=C2=A0 =C2=A0 - name of the project on GitLab
=C2=A0#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0defaul= t: ${PORTNAME}
=C2=A0#
-# GL_COMMIT=C2=A0 =C2=A0 =C2=A0- the commit hash of the repository, must b= e the full hash and
-#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0is a requir= ed variable for GitLab.
+# GL_TAGNAME=C2=A0 =C2=A0 - name of the tag to download (2.0.1, hash, ...)=
+#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Using the n= ame of a branch here is incorrect. It is
+#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0possible to= do GL_TAGNAME=3D GIT_HASH to do a snapshot.
+#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default: ${= DISTVERSIONFULL}
=C2=A0#
=C2=A0# GL_SUBDIR=C2=A0 =C2=A0 =C2=A0- directory relative to WRKSRC where t= o move this distfile's
=C2=A0#=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0conten= t after extracting.
=C2=A0#
-# GL_TUPLE=C2=A0 =C2=A0 =C2=A0 - above shortened to [site[:port][/webroot]= :]account:project:commit:group[/subdir]
+# GL_TUPLE=C2=A0 =C2=A0 =C2=A0 - above shortened to [site[:port][/webroot]= :]account:project:tagname:group[/subdir]
=C2=A0#
=C2=A0.=C2=A0 if defined(USE_GITLAB)
+.=C2=A0 =C2=A0 if !defined(GL_TAGNAME) && defined(GL_COMMIT)
+GL_TAGNAME=3D=C2=A0 =C2=A0 ${GL_COMMIT}
+DEV_WARNING+=3D=C2=A0 "GL_COMMIT is deprecated, please use GL_TAGNAME= instead"
+.=C2=A0 =C2=A0 endif
=C2=A0.=C2=A0 =C2=A0 if defined(GL_TUPLE)
=C2=A0.=C2=A0 =C2=A0 =C2=A0 for _tuple in ${GL_TUPLE}
-.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ${_tuple:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?= (/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7@:S/^://:C/[a-f= 0-9]{40}//g}
+.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ${_tuple:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?= (/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7@:S/^://:C/[a-z= A-Z0-9_.+-]//g}
=C2=A0check-makevars::
=C2=A0 =C2=A0 =C2=A0 =C2=A0 @${ECHO_MSG} "The ${_tuple}"
-=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "GL_TUPLE is improperly forma= tted or, the commit"
-=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "section contains something o= ther than [a-f0-9]"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "GL_TUPLE is improperly forma= tted or, the tagname"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0@${ECHO_MSG} "section contains something o= ther than [a-zA-Z0-9_.+-]"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 @${FALSE}
=C2=A0.=C2=A0 =C2=A0 =C2=A0 =C2=A0 endif
=C2=A0.=C2=A0 =C2=A0 =C2=A0 endfor
=C2=A0GL_SITE+=3D=C2=A0 =C2=A0 =C2=A0 ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]= {1,5})?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\1\8@:S@::= @:@}
=C2=A0GL_ACCOUNT+=3D=C2=A0 =C2=A0${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5}= )?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\5\8@}
=C2=A0GL_PROJECT+=3D=C2=A0 =C2=A0${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5}= )?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\6\8@}
-GL_COMMIT+=3D=C2=A0 =C2=A0 ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[= ^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7\8@}
+GL_TAGNAME+=3D=C2=A0 =C2=A0${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5})?(/[= ^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\7\8@}
=C2=A0GL_SUBDIR+=3D=C2=A0 =C2=A0 ${GL_TUPLE:C@^(([^:]*://[^:/]*(:[0-9]{1,5}= )?(/[^:]*[^/])?:)?)([^:]*):([^:]*):([^:]*)(:[^:/]*)((/.*)?)@\9\8@:M/*:S/^\/= //}
=C2=A0.=C2=A0 =C2=A0 endif

=C2=A0.=C2=A0 =C2=A0 if empty(USE_GITLAB:Mnodefault)
-MASTER_SITES+=3D ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/archive/${GL_COM= MIT}.tar.gz?dummy=3D/
+MASTER_SITES+=3D ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/archive/${GL_TAG= NAME:C@^[a-f0-9]{40}$@\0.tar.gz?dummy=3D@}/
=C2=A0.=C2=A0 =C2=A0 endif
=C2=A0GL_SITE_DEFAULT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0https://gitlab.com
=C2=A0GL_SITE?=3D=C2=A0 =C2=A0 =C2=A0 ${GL_SITE_DEFAULT}
@@ -454,8 +465,10 @@ GL_ACCOUNT_DEFAULT=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${POR= TNAME}
=C2=A0GL_ACCOUNT?=3D=C2=A0 =C2=A0${GL_ACCOUNT_DEFAULT}
=C2=A0GL_PROJECT_DEFAULT=3D=C2=A0 =C2=A0 ${PORTNAME}
=C2=A0GL_PROJECT?=3D=C2=A0 =C2=A0${GL_PROJECT_DEFAULT}
+GL_TAGNAME_DEFAULT=3D=C2=A0 =C2=A0 ${DISTVERSIONFULL}
+GL_TAGNAME?=3D=C2=A0 =C2=A0${GL_TAGNAME_DEFAULT}
=C2=A0_GITLAB_GROUPS=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 DEFAULT
-.=C2=A0 =C2=A0 for _gl_v in GL_SITE GL_ACCOUNT GL_PROJECT GL_COMMIT GL_SUB= DIR
+.=C2=A0 =C2=A0 for _gl_v in GL_SITE GL_ACCOUNT GL_PROJECT GL_TAGNAME GL_SU= BDIR
=C2=A0.=C2=A0 =C2=A0 =C2=A0 for _v_ex in ${${_gl_v}}
=C2=A0_GL_GROUPS=3D=C2=A0 =C2=A0 ${_v_ex:S/^${_v_ex:C@:[^/:]+$@@}//:S/^://}=
=C2=A0.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if !empty(_GL_GROUPS)
@@ -479,18 +492,24 @@ ${_gl_v}_DEFAULT=3D ${_v_ex:C@^(.*):[^/:]+$@\1@}
=C2=A0GL_SITE:=3D=C2=A0 =C2=A0 =C2=A0 ${GL_SITE_DEFAULT}
=C2=A0GL_ACCOUNT:=3D=C2=A0 =C2=A0${GL_ACCOUNT_DEFAULT}
=C2=A0GL_PROJECT:=3D=C2=A0 =C2=A0${GL_PROJECT_DEFAULT}
-GL_COMMIT:=3D=C2=A0 =C2=A0 ${GL_COMMIT_DEFAULT}
+GL_TAGNAME:=3D=C2=A0 =C2=A0${GL_TAGNAME_DEFAULT}
=C2=A0GL_SUBDIR:=3D=C2=A0 =C2=A0 ${GL_SUBDIR_DEFAULT}

=C2=A0_GITLAB_REV=3D=C2=A0 =C2=A00

-_GITLAB_EXTRACT_SUFX=3D=C2=A0 .tar.gz
+_GITLAB_EXTRACT_SUFX=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .tar.gz
+_GITLAB_TAG_EXTRACT_SUFX=3D=C2=A0 =C2=A0 =C2=A0 .tar.bz2

=C2=A0_GITLAB_CLONE_DIR?=3D=C2=A0 =C2=A0 ${WRKDIR}/git-clone
=C2=A0_PORTS_DIRECTORIES+=3D=C2=A0 =C2=A0${_GITLAB_CLONE_DIR}
=C2=A0.=C2=A0 =C2=A0 if !${USE_GITLAB:Mnodefault}
-DISTNAME:=3D=C2=A0 =C2=A0 =C2=A0${GL_ACCOUNT}-${GL_PROJECT}-${GL_COMMIT}_G= L${_GITLAB_REV}
+.=C2=A0 =C2=A0 =C2=A0 if ${GL_TAGNAME:C/^[a-f0-9]{40}$//}
+DISTNAME:=3D=C2=A0 =C2=A0 =C2=A0${GL_PROJECT}-${GL_TAGNAME}
+DISTFILES+=3D=C2=A0 =C2=A0 ${DISTNAME}${_GITLAB_TAG_EXTRACT_SUFX}
+.=C2=A0 =C2=A0 =C2=A0 else
+DISTNAME:=3D=C2=A0 =C2=A0 =C2=A0${GL_ACCOUNT}-${GL_PROJECT}-${GL_TAGNAME}_= GL${_GITLAB_REV}
=C2=A0DISTFILES+=3D=C2=A0 =C2=A0 ${DISTNAME}${_GITLAB_EXTRACT_SUFX}
+.=C2=A0 =C2=A0 =C2=A0 endif
=C2=A0git-clone: git-clone-DEFAULT
=C2=A0git-clone-DEFAULT: ${_GITLAB_CLONE_DIR}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 @git clone ${GL_SITE_DEFAULT}/${GL_ACCOUNT_DEFA= ULT}/${GL_PROJECT_DEFAULT}.git ${_GITLAB_CLONE_DIR}/${GL_PROJECT_DEFAULT} @@ -512,12 +531,18 @@ GL_SITE_${_group}=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${GL_= SITE_DEFAULT}
=C2=A0GL_ACCOUNT_${_group}?=3D ${GL_ACCOUNT_DEFAULT}
=C2=A0GL_PROJECT_${_group}?=3D ${GL_PROJECT_DEFAULT}

-_GL_TUPLE_OUT:=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${_GL_TUPLE_OUT} ${GL_SITE_${= _group}}:${GL_ACCOUNT_${_group}}:${GL_PROJECT_${_group}}:${GL_COMMIT_${_gro= up}}:${_group}/${GL_SUBDIR_${_group}}
-DISTNAME_${_group}:=3D=C2=A0 =C2=A0${GL_ACCOUNT_${_group}}-${GL_PROJECT_${= _group}}-${GL_COMMIT_${_group}}_GL${_GITLAB_REV}
+_GL_TUPLE_OUT:=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${_GL_TUPLE_OUT} ${GL_SITE_${= _group}}:${GL_ACCOUNT_${_group}}:${GL_PROJECT_${_group}}:${GL_TAGNAME_${_gr= oup}}:${_group}/${GL_SUBDIR_${_group}}
+.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ${GL_TAGNAME_${_group}:C/^[a-f0-9]{40}$//}=
+DISTNAME_${_group}:=3D=C2=A0 =C2=A0${GL_PROJECT_${_group}}-${GL_TAGNAME_${= _group}}
+DISTFILE_${_group}:=3D=C2=A0 =C2=A0${DISTNAME_${_group}}${_GITLAB_TAG_EXTR= ACT_SUFX}
+MASTER_SITES:=3D ${MASTER_SITES} ${GL_SITE_${_group}}/${GL_ACCOUNT_${_grou= p}}/${GL_PROJECT_${_group}}/-/archive/${GL_TAGNAME_${_group}}/:${_group} +.=C2=A0 =C2=A0 =C2=A0 =C2=A0 else
+DISTNAME_${_group}:=3D=C2=A0 =C2=A0${GL_ACCOUNT_${_group}}-${GL_PROJECT_${= _group}}-${GL_TAGNAME_${_group}}_GL${_GITLAB_REV}
=C2=A0DISTFILE_${_group}:=3D=C2=A0 =C2=A0${DISTNAME_${_group}}${_GITLAB_EXT= RACT_SUFX}
+MASTER_SITES:=3D ${MASTER_SITES} ${GL_SITE_${_group}}/${GL_ACCOUNT_${_grou= p}}/${GL_PROJECT_${_group}}/-/archive/${GL_TAGNAME_${_group}}.tar.gz?dummy= =3D/:${_group}
+.=C2=A0 =C2=A0 =C2=A0 =C2=A0 endif
=C2=A0DISTFILES:=3D=C2=A0 =C2=A0 ${DISTFILES} ${DISTFILE_${_group}}:${_grou= p}
-MASTER_SITES:=3D ${MASTER_SITES} ${GL_SITE_${_group}}/${GL_ACCOUNT_${_grou= p}}/${GL_PROJECT_${_group}}/-/archive/${GL_COMMIT_${_group}}.tar.gz?dummy= =3D/:${_group}
-WRKSRC_${_group}:=3D=C2=A0 =C2=A0 =C2=A0${WRKDIR}/${GL_PROJECT_${_group}}-= ${GL_COMMIT_${_group}}
+WRKSRC_${_group}:=3D=C2=A0 =C2=A0 =C2=A0${WRKDIR}/${GL_PROJECT_${_group}}-= ${GL_TAGNAME_${_group}}
=C2=A0.=C2=A0 =C2=A0 =C2=A0 =C2=A0 if !empty(GL_SUBDIR_${_group})
=C2=A0_SITES_extract:=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0${_SITES_extract} 690:po= st-extract-gl-${_group}
=C2=A0post-extract-gl-${_group}:


--
Nuno Teixeira
FreeBSD Committ= er (ports)
--0000000000006883f80600518dc5--