Index: Mk/bsd.options.mk =================================================================== --- Mk/bsd.options.mk +++ Mk/bsd.options.mk @@ -183,7 +183,7 @@ _OPTIONS_FLAGS= ALL_TARGET BROKEN CABAL_EXECUTABLES CATEGORIES CFLAGS CONFIGURE_ENV \ CONFLICTS CONFLICTS_BUILD CONFLICTS_INSTALL CPPFLAGS CXXFLAGS \ DESKTOP_ENTRIES DISTFILES EXTRA_PATCHES EXTRACT_ONLY \ - GH_ACCOUNT GH_PROJECT GH_SUBDIR GH_TAGNAME GH_TUPLE \ + GH_ACCOUNT GH_ASSET GH_PROJECT GH_SUBDIR GH_TAGNAME GH_TUPLE \ GL_ACCOUNT GL_COMMIT GL_PROJECT GL_SITE GL_SUBDIR GL_TUPLE \ IGNORE INFO INSTALL_TARGET LDFLAGS LIBS MAKE_ARGS MAKE_ENV \ MASTER_SITES PATCHFILES PATCH_SITES PLIST_DIRS PLIST_FILES \ Index: Mk/bsd.sites.mk =================================================================== --- Mk/bsd.sites.mk +++ Mk/bsd.sites.mk @@ -267,6 +267,13 @@ # possible to do GH_TAGNAME= GIT_HASH to do a snapshot. # default: ${DISTVERSIONFULL} # +# GH_ASSET - name of the release asset +# default: none +# When specified, it will be used as DISTFILES and +# they will be retrieved from the release asset directory. +# The URL for the release asset directory is defined in +# MASTER_SITE_GITHUB_ASSET. +# # GH_SUBDIR - directory relative to WRKSRC where to move this distfile's # content after extracting. # @@ -297,9 +304,16 @@ # comment #15 for explanation as to why and how to deal with it if it breaks. MASTER_SITE_GITHUB+= https://codeload.github.com/%SUBDIR% MASTER_SITE_GITHUB_CLOUD+= https://cloud.github.com/downloads/%SUBDIR% +MASTER_SITE_GITHUB_ASSET+= https://github.com/%SUBDIR% -. if !defined(MASTER_SITES) || !${MASTER_SITES:MGH} && !${MASTER_SITES:MGHC} && !${USE_GITHUB:Mnodefault} +. if !defined(MASTER_SITES) || \ + !${MASTER_SITES:MGH} && !${MASTER_SITES:MGHC} && \ + !${MASTER_SITES:MGHA} && !${USE_GITHUB:Mnodefault} +. if empty(GH_ASSET) MASTER_SITES+= GH +. else +MASTER_SITES+= GHA +. endif . endif GH_ACCOUNT_DEFAULT= ${PORTNAME} GH_ACCOUNT?= ${GH_ACCOUNT_DEFAULT} @@ -308,9 +322,10 @@ # Use full PREFIX/SUFFIX and converted DISTVERSION GH_TAGNAME_DEFAULT= ${DISTVERSIONFULL} GH_TAGNAME?= ${GH_TAGNAME_DEFAULT} -# Iterate over GH_ACCOUNT, GH_PROJECT, GH_TAGNAME and GH_SUBDIR to extract groups +# Iterate over GH_ACCOUNT, GH_PROJECT, GH_TAGNAME, GH_SUBDIR, +# and GH_ASSET to extract groups _GITHUB_GROUPS= DEFAULT -. for _gh_v in GH_ACCOUNT GH_PROJECT GH_TAGNAME GH_SUBDIR +. for _gh_v in GH_ACCOUNT GH_PROJECT GH_TAGNAME GH_SUBDIR GH_ASSET . for _v_ex in ${${_gh_v}} _GH_GROUPS= ${_v_ex:S/^${_v_ex:C@:[^/:]+$@@}//:S/^://} . if !empty(_GH_GROUPS) @@ -337,6 +352,7 @@ GH_PROJECT:= ${GH_PROJECT_DEFAULT} GH_TAGNAME:= ${GH_TAGNAME_DEFAULT} GH_SUBDIR:= ${GH_SUBDIR_DEFAULT} +GH_ASSET:= ${GH_ASSET_DEFAULT} . if defined(GH_TAGNAME) # If you change either of the _SANITIZED or _EXTRACT variables, please keep the # changes in sync with the GH_TAGNAME_${_group}_* variables 50 lines below. @@ -354,20 +370,31 @@ _GITHUB_CLONE_DIR?= ${WRKDIR}/git-clone _PORTS_DIRECTORIES+= ${_GITHUB_CLONE_DIR} . if !${USE_GITHUB:Mnodefault} && empty(MASTER_SITES:MGHC) +. if !empty(GH_ASSET) +DISTNAME_DEFAULT:= ${DISTNAME} +DISTFILE_DEFAULT= ${GH_ASSET} +WRKSRC:= ${WRKDIR}/${DISTNAME_DEFAULT} +. else +. if ${GH_TAGNAME} != ${DISTVERSIONFULL} # GH_TAGNAME defaults to DISTVERSIONFULL; Avoid adding DISTVERSIONFULL in twice -. if ${GH_TAGNAME} != ${DISTVERSIONFULL} DISTNAME= ${GH_ACCOUNT}-${GH_PROJECT}-${DISTVERSIONFULL}-${GH_TAGNAME_SANITIZED} -. else +. else DISTNAME= ${GH_ACCOUNT}-${GH_PROJECT}-${GH_TAGNAME_SANITIZED} -. endif +. endif DISTNAME_DEFAULT:= ${DISTNAME}_GH${_GITHUB_REV} DISTFILE_DEFAULT= ${DISTNAME_DEFAULT}${_GITHUB_EXTRACT_SUFX} +. endif DISTNAME:= ${DISTNAME_DEFAULT} DISTFILES+= ${DISTFILE_DEFAULT} git-clone: git-clone-DEFAULT +. if !empty(GH_ASSET) git-clone-DEFAULT: ${_GITHUB_CLONE_DIR} @git clone https://github.com/${GH_ACCOUNT_DEFAULT}/${GH_PROJECT_DEFAULT}.git ${_GITHUB_CLONE_DIR}/${GH_PROJECT_DEFAULT} @${ECHO_MSG} "Cloned the default github repository into ${_GITHUB_CLONE_DIR}/${GH_PROJECT_DEFAULT}" | ${FMT_80} +. else +git-clone-DEFAULT: + @${DO_NADA} +. endif . endif . if !empty(GH_SUBDIR) _SITES_extract:= 690:post-extract-gh-DEFAULT @@ -385,16 +412,25 @@ GH_ACCOUNT_${_group}?= ${GH_ACCOUNT_DEFAULT} GH_PROJECT_${_group}?= ${GH_PROJECT_DEFAULT} GH_TAGNAME_${_group}?= ${GH_TAGNAME_DEFAULT} +GH_ASSET_${_group}?= ${GH_ASSET_DEFAULT} # If you change either of the _SANITIZED or _EXTRACT variables, please keep the # changes in sync with the GH_TAGNAME_* variables 50 lines above. GH_TAGNAME_${_group}_SANITIZED= ${GH_TAGNAME_${_group}:S,/,-,g} GH_TAGNAME_${_group}_EXTRACT= ${GH_TAGNAME_${_group}_SANITIZED:C/^[vV]([0-9])/\1/:S/+/-/g:C/--*/-/g} _GH_TUPLE_OUT:= ${_GH_TUPLE_OUT} ${GH_ACCOUNT_${_group}}:${GH_PROJECT_${_group}}:${GH_TAGNAME_${_group}}:${_group}/${GH_SUBDIR_${_group}} +. if empty(GH_ASSET_${_group}) DISTNAME_${_group}:= ${GH_ACCOUNT_${_group}}-${GH_PROJECT_${_group}}-${GH_TAGNAME_${_group}_SANITIZED} DISTFILE_${_group}:= ${DISTNAME_${_group}}_GH${_GITHUB_REV}${_GITHUB_EXTRACT_SUFX} DISTFILES:= ${DISTFILES} ${DISTFILE_${_group}}:${_group} MASTER_SITES:= ${MASTER_SITES} ${MASTER_SITE_GITHUB:S@%SUBDIR%@${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}/tar.gz/${GH_TAGNAME_${_group}}?dummy=/:${_group}@} WRKSRC_${_group}:= ${WRKDIR}/${GH_PROJECT_${_group}}-${GH_TAGNAME_${_group}_EXTRACT} +. else +DISTNAME_${_group}:= ${GH_ASSET_${_group}:[1]:S|${EXTRACT_SUFX}$||} +DISTFILE_${_group}:= ${GH_ASSET_${_group}} +DISTFILES:= ${DISTFILES} ${DISTFILE_${_group}:S/$/:${_group}/} +MASTER_SITES:= ${MASTER_SITES} ${MASTER_SITE_GITHUB_ASSET:S@%SUBDIR%@${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}/releases/download/${GH_TAGNAME_${_group}}/:${_group}@} +WRKSRC_${_group}:= ${WRKDIR}/${DISTNAME_${_group}} +. endif . if !empty(GH_SUBDIR_${_group}) # In order to sort the subdir extraction so that foo/bar is moved in before # foo/bar/baz, we count the number of / in the path and use it to order the @@ -407,9 +443,14 @@ @${LN} -s ${WRKSRC:T}/${GH_SUBDIR_${_group}} ${WRKSRC_${_group}} . endif git-clone: git-clone-${_group} +. if empty(GH_ASSET) git-clone-${_group}: ${_GITHUB_CLONE_DIR} @git clone https://github.com/${GH_ACCOUNT_${_group}}/${GH_PROJECT_${_group}}.git ${_GITHUB_CLONE_DIR}/${GH_PROJECT_${_group}} @${ECHO_MSG} "Cloned the ${_group} github repository into ${_GITHUB_CLONE_DIR}/${GH_PROJECT_${_group}}" | ${FMT_80} +. else +git-clone-${_group}: + @${DO_NADA} +. endif . endfor . endif convert-to-gh-tuple: @@ -1089,6 +1130,7 @@ MASTER_SITES_ABBREVS= CPAN:PERL_CPAN \ GH:GITHUB \ + GHA:GITHUB_ASSET \ GHC:GITHUB_CLOUD \ LODEV:LIBREOFFICE_DEV \ NL:NETLIB \ @@ -1107,6 +1149,7 @@ GENTOO:distfiles \ GIMP:${PORTNAME}/${PORTVERSION:R}/ \ GITHUB:${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/ \ + GITHUB_ASSET:${GH_ACCOUNT}/${GH_PROJECT}/releases/download/${GH_TAGNAME}/ \ GITHUB_CLOUD:${GH_ACCOUNT}/${GH_PROJECT}/ \ GNOME:sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} \ GNU:${PORTNAME} \ Index: accessibility/speech-dispatcher/Makefile =================================================================== --- accessibility/speech-dispatcher/Makefile +++ accessibility/speech-dispatcher/Makefile @@ -2,7 +2,6 @@ DISTVERSION= 0.11.2 PORTREVISION= 1 CATEGORIES?= accessibility audio -MASTER_SITES= https://github.com/brailcom/speechd/releases/download/${PORTVERSION}/ PATCH_SITES= https://github.com/brailcom/speechd/commit/ PATCHFILES= c204a23db76345d0bce2cdf395517c99699a8a4a.diff:-p1 @@ -14,6 +13,11 @@ LICENSE= GPLv2 LGPL21 LICENSE_COMB= multi +USE_GITHUB= yes +GH_ACCOUNT= brailcom +GH_PROJECT= speechd +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} + BUILD_DEPENDS= help2man:misc/help2man LIB_DEPENDS= libdotconf.so:devel/dotconf \ libltdl.so:devel/libltdl \ Index: archivers/advancecomp/Makefile =================================================================== --- archivers/advancecomp/Makefile +++ archivers/advancecomp/Makefile @@ -1,7 +1,6 @@ PORTNAME= advancecomp DISTVERSION= 2.4 CATEGORIES= archivers -MASTER_SITES= https://github.com/amadvance/advancecomp/releases/download/v${DISTVERSION}/ MAINTAINER= fuz@fuz.su COMMENT= Recompression utilities for .ZIP, .PNG, .MNG, and .GZ files @@ -14,6 +13,10 @@ USES= autoreconf cpe CPE_VENDOR= advancemame +USE_GITHUB= yes +GH_ACCOUNT= amadvance +GH_TAGNAME= v${DISTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} GNU_CONFIGURE= yes TEST_TARGET= check Index: archivers/laszip/Makefile =================================================================== --- archivers/laszip/Makefile +++ archivers/laszip/Makefile @@ -1,8 +1,7 @@ PORTNAME= laszip DISTVERSION= 3.4.3 +DISTVERSIONPREFIX= src- CATEGORIES= archivers -MASTER_SITES= https://github.com/LASzip/LASzip/releases/download/${DISTVERSION}/ -DISTNAME= ${PORTNAME}-src-${DISTVERSION} MAINTAINER= rhurlin@FreeBSD.org COMMENT= Library for lossless LAS compression @@ -13,5 +12,9 @@ USES= cmake compiler:c++0x tar:bz2 USE_LDCONFIG= yes +USE_GITHUB= yes +GH_ACCOUNT= LASzip +GH_PROJECT= LASzip +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} .include Index: archivers/libarchive/Makefile =================================================================== --- archivers/libarchive/Makefile +++ archivers/libarchive/Makefile @@ -3,8 +3,6 @@ PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= archivers -MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${DISTVERSION}/ \ - https://libarchive.org/downloads/ PATCH_SITES= https://github.com/${PORTNAME}/${PORTNAME}/commit/ PATCHFILES= bff38efe8c110469c5080d387bec62a6ca15b1a5.patch:-p1 @@ -18,6 +16,10 @@ LIB_DEPENDS= libexpat.so:textproc/expat2 +USE_GITHUB= yes +GH_TAGNAME= v${DISTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} + OPTIONS_DEFINE= LZ4 LZO ZSTD OPTIONS_DEFAULT=LZ4 ZSTD OPENSSL Index: archivers/libzip/Makefile =================================================================== --- archivers/libzip/Makefile +++ archivers/libzip/Makefile @@ -1,8 +1,6 @@ PORTNAME= libzip PORTVERSION= 1.9.2 CATEGORIES= archivers devel -MASTER_SITES= https://github.com/nih-at/${PORTNAME}/releases/download/v${DISTVERSION}/ \ - https://libzip.org/download/ MAINTAINER= rakuco@FreeBSD.org COMMENT= C library for reading, creating, and modifying ZIP archives @@ -17,6 +15,10 @@ CPE_VENDOR= nih USE_LDCONFIG= yes USE_PERL5= test +USE_GITHUB= yes +GH_ACCOUNT= nih-at +GH_TAGNAME= v${DISTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} TEST_TARGET= test Index: archivers/makeself/Makefile =================================================================== --- archivers/makeself/Makefile +++ archivers/makeself/Makefile @@ -1,7 +1,6 @@ PORTNAME= makeself DISTVERSION= 2.4.5 CATEGORIES= archivers -MASTER_SITES= https://github.com/megastep/makeself/releases/download/release-${PORTVERSION}/ EXTRACT_SUFX= .run MAINTAINER= eduardo@FreeBSD.org @@ -12,6 +11,10 @@ LICENSE_FILE= ${WRKSRC}/COPYING USES= makeself +USE_GITHUB= yes +GH_ACCOUNT= megastep +GH_TAGNAME= release-${DISTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} NO_ARCH= yes NO_BUILD= yes Index: archivers/peazip/Makefile =================================================================== --- archivers/peazip/Makefile +++ archivers/peazip/Makefile @@ -1,10 +1,9 @@ PORTNAME= peazip -PORTVERSION= 8.8.0 +DISTVERSION= 8.8.0 +DISTVERSIONSUFFIX= .src PORTREVISION= 1 CATEGORIES= archivers -MASTER_SITES= https://github.com/giorgiotani/PeaZip/releases/download/${PORTVERSION}/ PKGNAMESUFFIX= ${LAZARUS_PKGNAMESUFFIX} -DISTNAME= ${PORTNAME}-${PORTVERSION}.src MAINTAINER= acm@FreeBSD.org COMMENT= Free archiver and file compressor @@ -15,6 +14,11 @@ USES= cpe desktop-file-utils dos2unix fpc lazarus:flavors zip xorg USE_FPC= cairo chm fcl-base fcl-image fcl-xml pasjpeg rtl-objpas x11 USE_XORG= x11 +USE_GITHUB= yes +GH_ACCOUNT= giorgiotani +GH_PROJECT= PeaZip +GH_TAGNAME= ${PORTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} CPE_VENDOR= giorgio_tani Index: archivers/upx/Makefile =================================================================== --- archivers/upx/Makefile +++ archivers/upx/Makefile @@ -1,8 +1,7 @@ PORTNAME= upx PORTVERSION= 3.96 -MASTER_SITES= https://github.com/upx/upx/releases/download/v${PORTVERSION}/ -CATEGORIES= archivers DISTVERSIONSUFFIX= -src +CATEGORIES= archivers MAINTAINER= sunpoet@FreeBSD.org COMMENT= Ultimate Packer for eXecutables @@ -15,6 +14,9 @@ USES= cpe gmake perl5 tar:xz USE_PERL5= build +USE_GITHUB= yes +GH_TAGNAME= v${PORTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} MAKE_ENV= UPX_UCLDIR=${LOCALBASE} \ target=freebsd Index: archivers/zstd/Makefile =================================================================== --- archivers/zstd/Makefile +++ archivers/zstd/Makefile @@ -2,7 +2,6 @@ PORTVERSION= 1.5.2 PORTREVISION= 1 CATEGORIES= archivers -MASTER_SITES= https://github.com/facebook/zstd/releases/download/v${PORTVERSION}/ MAINTAINER= sunpoet@FreeBSD.org COMMENT= Fast real-time compression algorithm @@ -17,6 +16,10 @@ LIB_DEPENDS= liblz4.so:archivers/liblz4 USES= gmake localbase:ldflags tar:zst +USE_GITHUB= yes +GH_ACCOUNT= facebook +GH_TAGNAME= v${PORTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} ALL_TARGET= default BINARY_ALIAS= gmd5sum=md5sum Index: astro/erfa/Makefile =================================================================== --- astro/erfa/Makefile +++ astro/erfa/Makefile @@ -1,7 +1,6 @@ PORTNAME= erfa DISTVERSION= 2.0.0 CATEGORIES= astro -MASTER_SITES= https://github.com/liberfa/erfa/releases/download/v${DISTVERSION}/ MAINTAINER= yuri@FreeBSD.org COMMENT= Essential Routines for Fundamental Astronomy @@ -12,6 +11,10 @@ USES= autoreconf gmake libtool USE_LDCONFIG= yes +USE_GITHUB= yes +GH_ACCOUNT= liberfa +GH_TAGNAME= v${DISTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} GNU_CONFIGURE= yes Index: astro/osmosis/Makefile =================================================================== --- astro/osmosis/Makefile +++ astro/osmosis/Makefile @@ -1,7 +1,6 @@ PORTNAME= osmosis PORTVERSION= 0.48.3 CATEGORIES= astro java -MASTER_SITES= https://github.com/openstreetmap/osmosis/releases/download/${PORTVERSION}/ MAINTAINER= amdmi3@FreeBSD.org COMMENT= Command line Java app for processing OpenStreetMap data @@ -12,6 +11,9 @@ USES= tar:tgz USE_JAVA= yes +USE_GITHUB= yes +GH_ACCOUNT= openstreetmap +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} NO_BUILD= yes NO_ARCH= yes NO_WRKSUBDIR= yes Index: astro/pal/Makefile =================================================================== --- astro/pal/Makefile +++ astro/pal/Makefile @@ -1,7 +1,6 @@ PORTNAME= pal DISTVERSION= 0.9.8 CATEGORIES= astro -MASTER_SITES= https://github.com/Starlink/pal/releases/download/v${DISTVERSION}/ PKGNAMESUFFIX= -astronomical MAINTAINER= yuri@FreeBSD.org @@ -15,6 +14,10 @@ USES= gmake libtool USE_LDCONFIG= yes +USE_GITHUB= yes +GH_ACCOUNT= Starlink +GH_TAGNAME= v${DISTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} GNU_CONFIGURE= yes Index: astro/starfetch/Makefile =================================================================== --- astro/starfetch/Makefile +++ astro/starfetch/Makefile @@ -1,7 +1,6 @@ PORTNAME= starfetch DISTVERSION= 0.0.3 CATEGORIES= astro -MASTER_SITES= https://github.com/Haruno19/${PORTNAME}/releases/download/${DISTVERSION}/ MAINTAINER= DtxdF@disroot.org COMMENT= Command line tool that displays constellations @@ -10,6 +9,10 @@ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE +USE_GITHUB= yes +GH_ACCOUNT= Haruno19 +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} + CXXFLAGS+= -std=c++17 post-patch: Index: astro/stellarium/Makefile =================================================================== --- astro/stellarium/Makefile +++ astro/stellarium/Makefile @@ -1,8 +1,6 @@ PORTNAME= stellarium PORTVERSION= 1.2 CATEGORIES= astro -MASTER_SITES= https://github.com/Stellarium/stellarium/releases/download/v${PORTVERSION}/ -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} EXTRACT_ONLY= ${_DISTFILES:Nstars_*.cat:N*.pdf} MAINTAINER= danfe@FreeBSD.org @@ -13,6 +11,10 @@ USES= cmake compiler:c++11-lang desktop-file-utils \ qt:5 shared-mime-info tar:xz +USE_GITHUB= yes +GH_ACCOUNT= Stellarium +GH_TAGNAME= v${PORTVERSION} +GH_ASSET= ${DISTNAME}${EXTRACT_SUFX} USE_QT= qmake:build buildtools:build \ charts concurrent core gui network opengl \ printsupport widgets @@ -39,8 +41,8 @@ WEBENGINE_DESC= Get and show extra object information XLSX_DESC= Data export to Excel files support -DOCS_MASTER_SITES= https://github.com/Stellarium/stellarium/releases/download/v${GUIDE_VERSION}/:ug -DOCS_DISTFILES= stellarium_user_guide-${GUIDE_VERSION}-1.pdf:ug +DOCS_GH_TAGNAME= v${GUIDE_VERSION}:ug +DOCS_GH_ASSET= stellarium_user_guide-${GUIDE_VERSION}-1.pdf:ug GPS_LIB_DEPENDS= libgps.so:astro/gpsd GPS_USE= QT=location,serialport