From nobody Mon Jun 24 18:38:37 2024 X-Original-To: dev-commits-ports-main@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 4W7Gv21wJVz5PQwm; Mon, 24 Jun 2024 18:38:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4W7Gv20FGmz4lKP; Mon, 24 Jun 2024 18:38:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1719254318; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BzAcabhrxcmmz1yoSevG96AFDXcsJl7u5az8GKe0WZY=; b=C692fbDAmFvSc0S49e1xGDfecVczt2u6+xONhzL2IcV16wMiKJc4kAeB2Ahn0S0YzYSwBd UBP9T1n7kv9ftsDTGIzY8xtMIs/wvcnPMX/8qkw1AxLsJ6P9+XSX4YAeTw8zSK33VXhhzq BxTExwwSU0dkkGXLOXbvecBseZGh0KWZidAD4yIGlIDvzVH2rZj2RKssgDMah76t8Fc6g+ 0g6sIGl+VKyftNmcT1HOC6FnZvwRj70WsmOtcFC1f9LYZfVwOtrAgpk1Bsk2liTdTrx2Ih nwWnZvGbwAFEnn5DDwYKazUyynidgamNUsgv0plTE6zbHdMXXXorTC+eTrrVaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1719254318; a=rsa-sha256; cv=none; b=wy0spXJmzqBkiRjTYHn4AHPYksY303DOYZlphpso5sHtALoHh/LWwHFQ9g0o5d4ZMPPvqA LdR+pkdClyQOs+4lgVH0SAbhL7hfddcnPH8h+RDXSs7xYenazSBxJ/IYmq2W+Eoj2KDy0H X4Gz54vvZ+nPSnkWT1zjodyKhhRDQtpIjVE41/Zuux6fsxUAN12YMNX4Q8L8Tg22RWwYiG Kv3oPMWO+H8CF8RgEIm+tg9TV7qunXh214ZEtP0mtQgHfGnwJ4VlPN0ibevwedY16+cvLu RIdZChFq+gx396gaq/h/jOymEmmR/ykz2R/SX5uVVz2zJuESjpbI6FhuQw02vw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1719254318; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BzAcabhrxcmmz1yoSevG96AFDXcsJl7u5az8GKe0WZY=; b=tOxqlvQbsrtW4RFWGzLtQA7vBLerfwTtgY75LfDmJ3YOGFbsfxtmzmB56D3+76P3tHGaMJ YQieLl4WzVhDfSbNEuqGhSK42wyiAoMblwfVap0oqXWW7CaZRMffENLvZMfoyfh95jScLp N9mDyOnULL1UFWBfj95M77wn4HrfLmYqF6BMugdsSq9m4/F7E8MY37K/RkS9zjf6Q66PvA og+wm0sy877V3xyR4sMld2tp1bo3NlVn8E8ygj3jpAByRyqhBe/DV6ER2CyIAMEY2PpTGn fBrESM7WlhafTqdvPGG9MBKbUm11vquax3EfQEkEkXX22TyG/8s1iwFaTB2B0Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4W7Gv16yhDzVDj; Mon, 24 Jun 2024 18:38:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 45OIcbN7079346; Mon, 24 Jun 2024 18:38:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 45OIcbRk079343; Mon, 24 Jun 2024 18:38:37 GMT (envelope-from git) Date: Mon, 24 Jun 2024 18:38:37 GMT Message-Id: <202406241838.45OIcbRk079343@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Gleb Popov Subject: git: 274cd4df4dcc - main - Framework: Introduce bsd.sponsor.mk List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arrowd X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 274cd4df4dcce0a9aa78da47bb6e35ab3dbcbf8c Auto-Submitted: auto-generated The branch main has been updated by arrowd: URL: https://cgit.FreeBSD.org/ports/commit/?id=274cd4df4dcce0a9aa78da47bb6e35ab3dbcbf8c commit 274cd4df4dcce0a9aa78da47bb6e35ab3dbcbf8c Author: Gleb Popov AuthorDate: 2024-03-17 09:04:33 +0000 Commit: Gleb Popov CommitDate: 2024-06-24 18:37:42 +0000 Framework: Introduce bsd.sponsor.mk Differential Revision: https://reviews.freebsd.org/D44487 --- Mk/bsd.port.mk | 2 + Mk/bsd.sponsor.db.mk | 9 +++++ Mk/bsd.sponsor.mk | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 1604a1c7fd3d..c9b657230c25 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -1994,6 +1994,8 @@ ERROR+= "Unknown USES=${f:C/\:.*//}" . endif . endif +.include "${PORTSDIR}/Mk/bsd.sponsor.mk" + . if defined(USE_LOCALE) WRK_ENV+= LANG=${USE_LOCALE} LC_ALL=${USE_LOCALE} . endif diff --git a/Mk/bsd.sponsor.db.mk b/Mk/bsd.sponsor.db.mk new file mode 100644 index 000000000000..bf8ac051db2a --- /dev/null +++ b/Mk/bsd.sponsor.db.mk @@ -0,0 +1,9 @@ +Sponsor_db_Include_MAINTAINER= portmgr@FreeBSD.org + +# +# bsd.sponsor.db.mk - Sponsorship info database for FreeBSD Ports commiters +# +# Please keep descriptions sorted alphabetically by variable name. + +arrowd_at_freebsd_org_SPONSORSHIP_PLATFORMS= CARDANO +arrowd_at_freebsd_org_CARDANO_SPONSOR_HANDLE= addr1qy95v6rlgjchrqc7cae9g7vtrmsevdaty8hnl9p5kv0xtajpts7278jw0y9nh9n26y0dfa97j0zkjxxnut8ahg3hs02sth533h diff --git a/Mk/bsd.sponsor.mk b/Mk/bsd.sponsor.mk new file mode 100644 index 000000000000..9fa916ecb894 --- /dev/null +++ b/Mk/bsd.sponsor.mk @@ -0,0 +1,112 @@ +# These variables are used in Ports framework to define the ways to support +# port maintainers. +# +# SPONSORSHIP_PLATFORMS - List of ways to endorse the port's maintainer +# Currently supported values are: +# BOOSTY +# CARDANO +# GITHUB +# OPENCOLLECTIVE +# PATREON +# +# Each platform may have ":upstream" suffix to allow +# sponsoring project's upstream instead of a +# downstream maintainer. +# +# To define an additional platform the following +# vars should be defined: +# ${plat}_SPONSOR_HANDLE - Account name or some other handle for the +# given platform +# ${plat}_UPSTREAM_SPONSOR_HANDLE - The same as ${plat}_SPONSOR_HANDLE for +# the ":upstream" case. +# ${plat}_SPONSOR_URL - URL leading to the site that allows to make +# to make a donation +# +# Variables listed above may be either put into a port's Makefile directly or +# set automatically based on the MAINTAINER knob value and the data from +# bsd.sponsor.db.mk +# +# An auxiliary "make sponsor" target points the user to appropriate web page. +# An auxiliary "make sponsor-describe" target prints a machine-readable description +# of the sponsorship data. + +.if !defined(SPONSORMKINCLUDED) +SPONSORMKINCLUDED= bsd.sponsor.mk + +BOOSTY_SPONSOR_URL= https://boosty.to/%%HANDLE%% +CARDANO_SPONSOR_URL= https://cexplorer.io/address/%%HANDLE%% +GITHUB_SPONSOR_URL= https://github.com/sponsors/%%HANDLE%% +OPENCOLLECTIVE_SPONSOR_URL= https://opencollective.com/%%HANDLE%% +PATREON_SPONSOR_URL= https://www.patreon.com/%%HANDLE%% + +GITHUB_SPONSOR_HANDLE?= ${GH_PROJECT} +GITHUB_UPSTREAM_SPONSOR_HANDLE?= ${GH_PROJECT} + +.include "${PORTSDIR}/Mk/bsd.sponsor.db.mk" +_MAINTAINER_KEY= ${MAINTAINER:S/@FreeBSD.org/_at_freebsd_org/:S/@freebsd.org/_at_freebsd_org/} +. if defined(${_MAINTAINER_KEY}_SPONSORSHIP_PLATFORMS) +SPONSORSHIP_PLATFORMS+= ${${_MAINTAINER_KEY}_SPONSORSHIP_PLATFORMS} +. for plat in ${SPONSORSHIP_PLATFORMS} +. if defined(${_MAINTAINER_KEY}_${plat}_SPONSOR_HANDLE) +${plat}_SPONSOR_HANDLE= ${${_MAINTAINER_KEY}_${plat}_SPONSOR_HANDLE} +. endif +. endfor +. endif + +. for plat in ${SPONSORSHIP_PLATFORMS} +. for plat_w_u plat_wo_u in ${plat:S/:upstream/_UPSTREAM/} ${plat:S/:upstream//} +. if !defined(${plat_w_u}_SPONSOR_HANDLE) || empty(${plat_w_u}_SPONSOR_HANDLE) +.error Missing ${plat_w_u}_SPONSOR_HANDLE value +. endif +. if !defined(${plat_wo_u}_SPONSOR_URL) || empty(${plat_wo_u}_SPONSOR_URL) +.error Missing ${plat_wo_u}_SPONSOR_URL value +. endif +. endfor +. endfor + +SPONSOR_DIALOG= ${DIALOG} --backtitle "Sponsorship options" \ + --menu "Support options for ${PORTNAME}" 0 0 0 + +. for plat in ${SPONSORSHIP_PLATFORMS} +. for plat_w_u plat_wo_u in ${plat:S/:upstream/_UPSTREAM/} ${plat:S/:upstream//} +SPONSOR_DIALOG_ARGS+= ${plat_w_u} "${${plat_wo_u}_SPONSOR_URL:S/%%HANDLE%%/${${plat_w_u}_SPONSOR_HANDLE}/}" +PKG_NOTE_sponsor+= ${plat_w_u:tl}=${${plat_wo_u}_SPONSOR_URL:S/%%HANDLE%%/${${plat_w_u}_SPONSOR_HANDLE}/} +. endfor +. endfor + +. if exists(${LOCALBASE}/bin/xdg-open) +SPONSOR_CMD= ${LOCALBASE}/bin/xdg-open %%URL%% +. else +SPONSOR_CMD= ${ECHO_CMD} To sponsor the ${PORTNAME} project visit %%URL%% +. endif + +. if !empty(SPONSORSHIP_PLATFORMS) +PKG_NOTES+= sponsor + +sponsor: + @(_selected_platform_w_u=$$( { ${SPONSOR_DIALOG} ${SPONSOR_DIALOG_ARGS} 2>&1 >&3; } 3>&2 ) 2>&1 ;\ + _selected_platform_wo_u=$$(${ECHO_CMD} $$_selected_platform_w_u | sed 's/_UPSTREAM//') ;\ + _url=$$(${MAKE} -C ${.CURDIR} -v $${_selected_platform_wo_u}_SPONSOR_URL) ;\ + _handle=$$(${MAKE} -C ${.CURDIR} -v $${_selected_platform_w_u}_SPONSOR_HANDLE) ;\ + _url=$$(${ECHO_CMD} $$_url | sed "s|%%HANDLE%%|$$_handle|") ;\ + `${ECHO_CMD} ${SPONSOR_CMD} | sed "s|%%URL%%|$$_url|"` ;\ + ) +. else +sponsor: + @${ECHO_CMD} No sponsorship platforms defined for ${PORTNAME} maintainer + @${FALSE} +. endif + +# The format is +# distribution-name|maintainer|sponsorship_platform|sponsorship_type|sponsorship_url +sponsor-describe: ${SPONSORSHIP_PLATFORMS:tl:S/:upstream/-upstream/:S/^/sponsor-describe-/} + @${DO_NADA} + +. for plat in ${SPONSORSHIP_PLATFORMS} +. for plat_w_u plat_wo_u in ${plat:S/:upstream/_UPSTREAM/} ${plat:S/:upstream//} +sponsor-describe-${plat:tl:S/:upstream/-upstream/}: + @${ECHO_CMD} "${PKGNAME}|${MAINTAINER}|${plat_wo_u}|${"${plat_w_u:M*_UPSTREAM}":?Upstream:Maintainer}|${${plat_wo_u}_SPONSOR_URL:S/%%HANDLE%%/${${plat_w_u}_SPONSOR_HANDLE}/}" +. endfor +. endfor + +.endif