Porters, please read re GitHub auto-generated tarballs vs releases

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Porters, please read re GitHub auto-generated tarballs vs releases

Stuart Henderson
Many ports are using github's on-the-fly generated source-code tarballs
via the GH_ variables in Makefiles.

These are *not* guaranteed to be stable, they can change as github
update software and caches expire (this has happened at some point over
the last few months so we have been seeing a number of hash failures
recently). Due to local caches at the github clusters, these files
can be different depending on which cluster you're connecting to,
so if you regenerate distinfo to match the file which you see
locally, it may cause breakage elsewhere in the world.

:   "It is not meant to be reliable or a way to distribute software
:   releases and nothing in the software stack is made to try to
:   produce consistent archives."

Sometimes upstream *only* provides these auto generated files, but in
other cases they use github's releases infrastructure and upload "normal"
generated distfiles which are not then subject to change.

To identify this, go to the project's "releases" page.
Using an example of a port I've just fixed:

https://github.com/rdoeffinger/iec16022/releases/.

Under "Assets" on this page, you might see files with a "box" icon
which are uploads.

On the iec16022 page I'm using as an example, Assets has these:

iec16022-0.3.0.exe <- uploaded windows binary
iec16022-0.3.0.tar.xz <- uploaded source tarball
iec16022-0.3.0.tar.xz.asc <- uploaded gpg sig
Source code (zip) <- auto generated
Source code (tar.gz) <- auto generated

If there are only entries for "Source code (zip)" and "Source code
(tar.gz)" the only options are to use GH_TAGNAME or ask upstream to
upload a file.

But in the case above, a proper distfile is available, so I've
switched the graphics/iec16022 port across to use it.

This is done by avoiding the GH_* variables and reducing the amount
of magic in the ports Makefile: just use DISTNAME and MASTER_SITES
as standard, and set HOMEPAGE if needed (it's provided automatically
when GH_* are set).

You will also often find that these uploaded tarballs have autoconf
scripts etc. generated, whereas they aren't present in the auto-
generated tarballs, so you may be able to remove make targets and
dependencies needed to generate these.

If you are publishing your own software to github, please do use
the releases infrastructure and upload distfiles that you have
generated yourself!

I've done a query of the github releases API for all ports that are
currently using GH_TAGNAME and looked at assets for these. I have skipped
the ones where the assets are clearly only for distributing binaries and
listed the others: it is quite likely that the following ports do have
source tarballs available which can be used instead of the auto-generated
ones.

archivers/deutex
astro/stellarium
audio/audiality2
audio/cantata
audio/mumble
audio/puddletag
devel/cpp-hocon
devel/leatherman
devel/lua-tz
devel/msgpack
devel/ocaml-extlib
devel/protobuf-c
fonts/fantasque-sans
fonts/overpass
games/fs2open
games/megaglest/base
games/megaglest/data
games/unknown-horizons
geo/osm-gps-map
graphics/ffmpegthumbnailer
graphics/glm
graphics/py-cairo
graphics/vigra
inputmethods/ibus
inputmethods/ibus-anthy
mail/mu
math/libtommath
misc/redshift
multimedia/streamlink
net/avahi
net/libproxy
net/libstrophe
net/lua-mmdb
net/lua-psl
net/nagios/check_rabbitmq
net/rabbitmq-c
net/rsnapshot
print/cups
print/system-config-printer
security/gopass
security/opensc
security/plaso
security/py-dfdatetime
security/py-dfvfs
security/py-dfwinreg
sysutils/consolekit
sysutils/exfat-fuse
sysutils/fleetctl
sysutils/opam
sysutils/riemann-c-client
sysutils/rofi
sysutils/tree
textproc/enchant
textproc/libical
www/kore
www/liferea
www/py-jinja2
www/wp-cli
x11/compton
x11/xdotool
x11/xwallpaper

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Landry Breuil-5
On Tue, Feb 27, 2018 at 12:28:07PM +0000, Stuart Henderson wrote:

> Many ports are using github's on-the-fly generated source-code tarballs
> via the GH_ variables in Makefiles.
>
> These are *not* guaranteed to be stable, they can change as github
> update software and caches expire (this has happened at some point over
> the last few months so we have been seeing a number of hash failures
> recently). Due to local caches at the github clusters, these files
> can be different depending on which cluster you're connecting to,
> so if you regenerate distinfo to match the file which you see
> locally, it may cause breakage elsewhere in the world.
>
> :   "It is not meant to be reliable or a way to distribute software
> :   releases and nothing in the software stack is made to try to
> :   produce consistent archives."
>
> Sometimes upstream *only* provides these auto generated files, but in
> other cases they use github's releases infrastructure and upload "normal"
> generated distfiles which are not then subject to change.
>
> To identify this, go to the project's "releases" page.
> Using an example of a port I've just fixed:
>
> https://github.com/rdoeffinger/iec16022/releases/.
>
> Under "Assets" on this page, you might see files with a "box" icon
> which are uploads.
>
> On the iec16022 page I'm using as an example, Assets has these:
>
> iec16022-0.3.0.exe <- uploaded windows binary
> iec16022-0.3.0.tar.xz <- uploaded source tarball
> iec16022-0.3.0.tar.xz.asc <- uploaded gpg sig
> Source code (zip) <- auto generated
> Source code (tar.gz) <- auto generated
>
> If there are only entries for "Source code (zip)" and "Source code
> (tar.gz)" the only options are to use GH_TAGNAME or ask upstream to
> upload a file.
>
> But in the case above, a proper distfile is available, so I've
> switched the graphics/iec16022 port across to use it.
>
> This is done by avoiding the GH_* variables and reducing the amount
> of magic in the ports Makefile: just use DISTNAME and MASTER_SITES
> as standard, and set HOMEPAGE if needed (it's provided automatically
> when GH_* are set).

So that gives, for audio/cantata:

Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/cantata/Makefile,v
retrieving revision 1.11
diff -u -r1.11 Makefile
--- Makefile 3 Jan 2018 08:02:26 -0000 1.11
+++ Makefile 27 Feb 2018 12:37:18 -0000
@@ -2,9 +2,11 @@
 
 COMMENT = Qt-based MPD client
 
-GH_ACCOUNT= CDrummond
-GH_PROJECT= cantata
-GH_TAGNAME= v2.2.0
+V = 2.2.0
+DISTNAME = cantata-${V}
+MASTER_SITES = https://github.com/CDrummond/cantata/releases/download/v${V}/
+EXTRACT_SUFX = .tar.bz2
+HOMEPAGE = https://github.com/CDrummond/cantata
 
 CATEGORIES = audio
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/audio/cantata/distinfo,v
retrieving revision 1.3
diff -u -r1.3 distinfo
--- distinfo 3 Jan 2018 08:02:26 -0000 1.3
+++ distinfo 27 Feb 2018 12:37:18 -0000
@@ -1,2 +1,2 @@
-SHA256 (cantata-2.2.0.tar.gz) = AA96hWFmf8jRX607i/CtqPaTp2/tCvr6FmoCJcyT6d4=
-SIZE (cantata-2.2.0.tar.gz) = 2955660
+SHA256 (cantata-2.2.0.tar.bz2) = yEaR6xdxERjTxRLXDLQiJn96E3KQCCzdH/CocbSo5cA=
+SIZE (cantata-2.2.0.tar.bz2) = 2251649

Does this look right ? Is there a way to make it look nicer ? GH_ACCOUNT &
GH_PROJECT is useful to avoid repeating values....

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Stuart Henderson
On 2018/02/27 13:39, Landry Breuil wrote:

> On Tue, Feb 27, 2018 at 12:28:07PM +0000, Stuart Henderson wrote:
> > Many ports are using github's on-the-fly generated source-code tarballs
> > via the GH_ variables in Makefiles.
> >
> > These are *not* guaranteed to be stable, they can change as github
> > update software and caches expire (this has happened at some point over
> > the last few months so we have been seeing a number of hash failures
> > recently). Due to local caches at the github clusters, these files
> > can be different depending on which cluster you're connecting to,
> > so if you regenerate distinfo to match the file which you see
> > locally, it may cause breakage elsewhere in the world.
> >
> > :   "It is not meant to be reliable or a way to distribute software
> > :   releases and nothing in the software stack is made to try to
> > :   produce consistent archives."
> >
> > Sometimes upstream *only* provides these auto generated files, but in
> > other cases they use github's releases infrastructure and upload "normal"
> > generated distfiles which are not then subject to change.
> >
> > To identify this, go to the project's "releases" page.
> > Using an example of a port I've just fixed:
> >
> > https://github.com/rdoeffinger/iec16022/releases/.
> >
> > Under "Assets" on this page, you might see files with a "box" icon
> > which are uploads.
> >
> > On the iec16022 page I'm using as an example, Assets has these:
> >
> > iec16022-0.3.0.exe <- uploaded windows binary
> > iec16022-0.3.0.tar.xz <- uploaded source tarball
> > iec16022-0.3.0.tar.xz.asc <- uploaded gpg sig
> > Source code (zip) <- auto generated
> > Source code (tar.gz) <- auto generated
> >
> > If there are only entries for "Source code (zip)" and "Source code
> > (tar.gz)" the only options are to use GH_TAGNAME or ask upstream to
> > upload a file.
> >
> > But in the case above, a proper distfile is available, so I've
> > switched the graphics/iec16022 port across to use it.
> >
> > This is done by avoiding the GH_* variables and reducing the amount
> > of magic in the ports Makefile: just use DISTNAME and MASTER_SITES
> > as standard, and set HOMEPAGE if needed (it's provided automatically
> > when GH_* are set).
>
> So that gives, for audio/cantata:
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/cantata/Makefile,v
> retrieving revision 1.11
> diff -u -r1.11 Makefile
> --- Makefile 3 Jan 2018 08:02:26 -0000 1.11
> +++ Makefile 27 Feb 2018 12:37:18 -0000
> @@ -2,9 +2,11 @@
>  
>  COMMENT = Qt-based MPD client
>  
> -GH_ACCOUNT= CDrummond
> -GH_PROJECT= cantata
> -GH_TAGNAME= v2.2.0
> +V = 2.2.0
> +DISTNAME = cantata-${V}
> +MASTER_SITES = https://github.com/CDrummond/cantata/releases/download/v${V}/
> +EXTRACT_SUFX = .tar.bz2
> +HOMEPAGE = https://github.com/CDrummond/cantata
>  
>  CATEGORIES = audio
>  
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/audio/cantata/distinfo,v
> retrieving revision 1.3
> diff -u -r1.3 distinfo
> --- distinfo 3 Jan 2018 08:02:26 -0000 1.3
> +++ distinfo 27 Feb 2018 12:37:18 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (cantata-2.2.0.tar.gz) = AA96hWFmf8jRX607i/CtqPaTp2/tCvr6FmoCJcyT6d4=
> -SIZE (cantata-2.2.0.tar.gz) = 2955660
> +SHA256 (cantata-2.2.0.tar.bz2) = yEaR6xdxERjTxRLXDLQiJn96E3KQCCzdH/CocbSo5cA=
> +SIZE (cantata-2.2.0.tar.bz2) = 2251649
>
> Does this look right ?

That looks right though I would probably bump REVISION to be safe.

> Is there a way to make it look nicer ? GH_ACCOUNT &
> GH_PROJECT is useful to avoid repeating values....

I had a play with bsd.port.mk to look at doing this with an additional
GH_ variable and keep using GH_ACCOUNT/PROJECT. I tried GH_RELEASE=<tag>
working similar to GH_TAGNAME, I also tried it reusing GH_TAGNAME and
adding GH_RELEASE=Yes as a flag.

The bsd.port.mk changes for those are easy, but when I tried documenting
them I found I couldn't come up with a simple and clear way to describe
them, which suggested that it would hard for other porters to grasp too :)
I'm open to suggestions, but my general feeling is that we're better off
with less rather than more magic.

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Rafael Sadowski
In reply to this post by Stuart Henderson
On Tue Feb 27, 2018 at 12:28:07PM +0000, Stuart Henderson wrote:

> Many ports are using github's on-the-fly generated source-code tarballs
> via the GH_ variables in Makefiles.
>
> These are *not* guaranteed to be stable, they can change as github
> update software and caches expire (this has happened at some point over
> the last few months so we have been seeing a number of hash failures
> recently). Due to local caches at the github clusters, these files
> can be different depending on which cluster you're connecting to,
> so if you regenerate distinfo to match the file which you see
> locally, it may cause breakage elsewhere in the world.
>
> :   "It is not meant to be reliable or a way to distribute software
> :   releases and nothing in the software stack is made to try to
> :   produce consistent archives."
>
> Sometimes upstream *only* provides these auto generated files, but in
> other cases they use github's releases infrastructure and upload "normal"
> generated distfiles which are not then subject to change.
>
> To identify this, go to the project's "releases" page.
> Using an example of a port I've just fixed:
>
> https://github.com/rdoeffinger/iec16022/releases/.
>
> Under "Assets" on this page, you might see files with a "box" icon
> which are uploads.
>
> On the iec16022 page I'm using as an example, Assets has these:
>
> iec16022-0.3.0.exe <- uploaded windows binary
> iec16022-0.3.0.tar.xz <- uploaded source tarball
> iec16022-0.3.0.tar.xz.asc <- uploaded gpg sig
> Source code (zip) <- auto generated
> Source code (tar.gz) <- auto generated
>
> If there are only entries for "Source code (zip)" and "Source code
> (tar.gz)" the only options are to use GH_TAGNAME or ask upstream to
> upload a file.
>
> But in the case above, a proper distfile is available, so I've
> switched the graphics/iec16022 port across to use it.
>
> This is done by avoiding the GH_* variables and reducing the amount
> of magic in the ports Makefile: just use DISTNAME and MASTER_SITES
> as standard, and set HOMEPAGE if needed (it's provided automatically
> when GH_* are set).
>
> You will also often find that these uploaded tarballs have autoconf
> scripts etc. generated, whereas they aren't present in the auto-
> generated tarballs, so you may be able to remove make targets and
> dependencies needed to generate these.
>
> If you are publishing your own software to github, please do use
> the releases infrastructure and upload distfiles that you have
> generated yourself!
>
> I've done a query of the github releases API for all ports that are
> currently using GH_TAGNAME and looked at assets for these. I have skipped
> the ones where the assets are clearly only for distributing binaries and
> listed the others: it is quite likely that the following ports do have
> source tarballs available which can be used instead of the auto-generated
> ones.
>
> x11/compton
> x11/xdotool
> x11/xwallpaper
>

ok for x11?

Index: compton/Makefile
===================================================================
RCS file: /cvs/ports/x11/compton/Makefile,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 Makefile
--- compton/Makefile 23 May 2015 16:34:40 -0000 1.3
+++ compton/Makefile 28 Feb 2018 10:47:39 -0000
@@ -2,13 +2,14 @@
 
 COMMENT = lightweight compositor for X, forked from xcompmgr-dana
 
-VERSION = 0.1_beta2
-GH_ACCOUNT = chjj
-GH_PROJECT = compton
-GH_TAGNAME = v${VERSION}
-DISTNAME = compton-${VERSION:S/_//}
+V = 0.1_beta2
+PKGNAME = compton-${V}
+DISTNAME = compton-git-v0.1_beta2-2013-10-21
+REVISION = 1
+
 CATEGORIES = x11
-REVISION = 0
+
+HOMEPAGE = https://github.com/chjj/compton
 
 MAINTAINER = Sunil Nimmagadda <[hidden email]>
 
@@ -18,6 +19,9 @@ PERMIT_PACKAGE_CDROM = Yes
 WANTLIB += GL X11 Xcomposite Xdamage Xext Xfixes Xinerama Xrandr
 WANTLIB += Xrender c config dbus-1 m pcre pthread
 
+MASTER_SITES = https://github.com/chjj/compton/releases/download/v${V}/
+EXTRACT_SUFX = .tar.xz
+
 BUILD_DEPENDS = textproc/asciidoc
 RUN_DEPENDS = devel/desktop-file-utils
 LIB_DEPENDS = devel/libconfig \
@@ -26,7 +30,7 @@ LIB_DEPENDS = devel/libconfig \
 
 USE_GMAKE = Yes
 MAKE_FLAGS = CC="${CC}" \
- COMPTON_VERSION="${VERSION}" \
+ COMPTON_VERSION="${V}" \
  APPDIR="${PREFIX}/share/applications" \
  BINDIR="${PREFIX}/bin" \
  MANDIR="${PREFIX}/man/man1"
Index: compton/distinfo
===================================================================
RCS file: /cvs/ports/x11/compton/distinfo,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 distinfo
--- compton/distinfo 27 Oct 2014 11:21:49 -0000 1.1.1.1
+++ compton/distinfo 28 Feb 2018 10:47:39 -0000
@@ -1,2 +1,2 @@
-SHA256 (compton-0.1beta2.tar.gz) = e5zVKlcyYRb7XbP1+Jt9UOF3FSUtn9ebcLRazjCmsAk=
-SIZE (compton-0.1beta2.tar.gz) = 144239
+SHA256 (compton-git-v0.1_beta2-2013-10-21.tar.xz) = O71C5niAwONVyzQQoxLl3xrBo+zqISl0N2Y3lFqw79Y=
+SIZE (compton-git-v0.1_beta2-2013-10-21.tar.xz) = 128352
Index: xdotool/Makefile
===================================================================
RCS file: /cvs/ports/x11/xdotool/Makefile,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 Makefile
--- xdotool/Makefile 16 Mar 2016 16:46:33 -0000 1.14
+++ xdotool/Makefile 28 Feb 2018 10:47:42 -0000
@@ -2,9 +2,9 @@
 
 COMMENT= fake keyboard and mouse input
 
-GH_TAGNAME= v3.20150503.1
-GH_PROJECT= xdotool
-GH_ACCOUNT= jordansissel
+V = 3.20150503.1
+DISTNAME = xdotool-${V}
+REVISION = 1
 EPOCH= 0
 
 SHARED_LIBS= xdo 0.1 # 1.1
@@ -19,6 +19,8 @@ PERMIT_PACKAGE_CDROM= Yes
 USE_GMAKE= Yes
 
 WANTLIB += X11 Xinerama Xtst c m xkbcommon
+
+MASTER_SITES = https://github.com/jordansissel/xdotool/releases/download/v${V}/
 
 LIB_DEPENDS= x11/xkbcommon
 
Index: xdotool/distinfo
===================================================================
RCS file: /cvs/ports/x11/xdotool/distinfo,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 distinfo
--- xdotool/distinfo 6 Jan 2016 09:49:42 -0000 1.5
+++ xdotool/distinfo 28 Feb 2018 10:47:42 -0000
@@ -1,2 +1,2 @@
-SHA256 (xdotool-3.20150503.1.tar.gz) = sJfvDjiX0aJOP0Xw+u1YMpdC09lDS5tG65frEED5mb8=
-SIZE (xdotool-3.20150503.1.tar.gz) = 103128
+SHA256 (xdotool-3.20150503.1.tar.gz) = 6DJog71ekb7eczbL7hhubpFD9As/thyEr8m7Mbh+ltE=
+SIZE (xdotool-3.20150503.1.tar.gz) = 102125
Index: xwallpaper/Makefile
===================================================================
RCS file: /cvs/ports/x11/xwallpaper/Makefile,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 Makefile
--- xwallpaper/Makefile 23 Oct 2017 17:11:07 -0000 1.5
+++ xwallpaper/Makefile 28 Feb 2018 10:47:42 -0000
@@ -2,13 +2,14 @@
 
 COMMENT = wallpaper setting utility for X
 
-GH_ACCOUNT = stoeckmann
-GH_PROJECT = xwallpaper
-GH_TAGNAME = v0.3.0
-REVISION= 0
+V = 0.3.0
+DISTNAME = xwallpaper-${V}
+REVISION = 1
 
 CATEGORIES = x11 graphics
 
+HOMEPAGE = https://github.com/stoeckmann/xwallpaper
+
 MAINTAINER = Rafael Sadowski <[hidden email]>
 
 # ISC
@@ -17,6 +18,8 @@ PERMIT_PACKAGE_CDROM = Yes
 # uses pledge()
 WANTLIB += X11 Xpm c jpeg pixman-1 png xcb xcb-image
 WANTLIB += xcb-randr xcb-shm xcb-util z
+
+MASTER_SITES = https://github.com/stoeckmann/xwallpaper/releases/download/v${V}/
 
 LIB_DEPENDS += graphics/jpeg \
  graphics/png
Index: xwallpaper/distinfo
===================================================================
RCS file: /cvs/ports/x11/xwallpaper/distinfo,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 distinfo
--- xwallpaper/distinfo 23 Oct 2017 06:30:14 -0000 1.3
+++ xwallpaper/distinfo 28 Feb 2018 10:47:42 -0000
@@ -1,2 +1,2 @@
-SHA256 (xwallpaper-0.3.0.tar.gz) = QZOfr3su+ShuOYX71hR8507BOYwR7IUUVK2+9aNulsU=
-SIZE (xwallpaper-0.3.0.tar.gz) = 14199
+SHA256 (xwallpaper-0.3.0.tar.gz) = DdInuQftzZjwlY6MdDo0L8PYWExaMO+M+Yc59O0oRgA=
+SIZE (xwallpaper-0.3.0.tar.gz) = 104300

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Stuart Henderson
> -SHA256 (xdotool-3.20150503.1.tar.gz) = sJfvDjiX0aJOP0Xw+u1YMpdC09lDS5tG65frEED5mb8=
> +SHA256 (xdotool-3.20150503.1.tar.gz) = 6DJog71ekb7eczbL7hhubpFD9As/thyEr8m7Mbh+ltE=

> -SHA256 (xwallpaper-0.3.0.tar.gz) = QZOfr3su+ShuOYX71hR8507BOYwR7IUUVK2+9aNulsU=
> +SHA256 (xwallpaper-0.3.0.tar.gz) = DdInuQftzZjwlY6MdDo0L8PYWExaMO+M+Yc59O0oRgA=

For these, please see my mail about distfiles changing under the same name.

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Rafael Sadowski
In reply to this post by Stuart Henderson
On Tue Feb 27, 2018 at 12:28:07PM +0000, Stuart Henderson wrote:
>
> archivers/deutex
> astro/stellarium
> textproc/enchant
> textproc/libical
>


Index: textproc/enchant/Makefile
===================================================================
RCS file: /cvs/ports/textproc/enchant/Makefile,v
retrieving revision 1.39
diff -u -p -r1.39 Makefile
--- textproc/enchant/Makefile 29 Dec 2017 08:30:05 -0000 1.39
+++ textproc/enchant/Makefile 28 Feb 2018 13:45:20 -0000
@@ -5,15 +5,8 @@ PORTROACH= limit:^1
 COMMENT= generic spell checking library
 
 V= 1.6.1
-GH_ACCOUNT= AbiWord
-GH_PROJECT= enchant
-GH_TAGNAME= enchant-${V:S/./-/g}
-REVISION= 1
-
-# XXX needed for portroach (DISTNAME must match the GH_PROJECT-GH_TAGNAME)
-MASTER_SITES= https://github.com/AbiWord/enchant/releases/download/${GH_PROJECT}-${V:S/./-/g}/
-DISTNAME= ${GH_PROJECT}-${V}
-WRKDIST= ${WRKDIR}/${DISTNAME}
+DISTNAME = enchant-${V}
+REVISION= 2
 
 SHARED_LIBS +=  enchant              6.1      # 7.1
 
@@ -29,6 +22,9 @@ PERMIT_PACKAGE_CDROM= Yes
 WANTLIB += aspell c glib-2.0 gmodule-2.0 hunspell-1.6 iconv intl
 WANTLIB += m pcre pthread ${LIBCXX}
 
+MASTER_SITES= https://github.com/AbiWord/enchant/releases/download/${DISTNAME:S/./-/g}/
+WRKDIST= ${WRKDIR}/${DISTNAME}
+
 # c++11
 COMPILER = base-clang ports-gcc
 
@@ -50,7 +46,7 @@ CONFIGURE_ARGS= --with-aspell-prefix=${
  --disable-uspell \
  --disable-hspell
 
-###
+
 AUTOCONF_VERSION= 2.69
 AUTOMAKE_VERSION= 1.15
 BUILD_DEPENDS += ${MODGNU_AUTOCONF_DEPENDS} \
@@ -62,7 +58,6 @@ pre-configure:
  AUTOCONF_VERSION=${AUTOCONF_VERSION} \
  AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
  autoreconf -fi
-###
 
 post-install:
  rm ${PREFIX}/lib/enchant/*.{a,la}
Index: textproc/libical/Makefile
===================================================================
RCS file: /cvs/ports/textproc/libical/Makefile,v
retrieving revision 1.32
diff -u -p -r1.32 Makefile
--- textproc/libical/Makefile 18 Feb 2018 08:53:50 -0000 1.32
+++ textproc/libical/Makefile 28 Feb 2018 13:45:20 -0000
@@ -3,12 +3,13 @@
 COMMENT-main= implementation of the iCalendar protocols and data units
 COMMENT-glib= GObject wrapper for libical library
 
-GH_ACCOUNT= libical
-GH_PROJECT= libical
-GH_TAGNAME= v3.0.2
+V= 3.0.2
+DISTNAME = libical-${V}
 
-PKGNAME-main= ${PKGNAME}
-PKGNAME-glib= ${GH_PROJECT}-glib-${GH_TAGNAME:C/^v//}
+DISTNAME-main= ${DISTNAME}
+DISTNAME-glib= libical-glib-${V}
+REVISION-glib= 0
+REVISION-main= 0
 
 SHARED_LIBS +=  ical                 4.0
 SHARED_LIBS +=  icalss               4.0
@@ -19,16 +20,18 @@ SHARED_LIBS +=  ical-glib            0.0
 
 CATEGORIES= textproc
 
-MAINTAINER= Antoine Jacoutot <[hidden email]>
-
 HOMEPAGE= https://libical.github.io/libical/
 
+MAINTAINER= Antoine Jacoutot <[hidden email]>
+
 # dual MPLv2, LGPLv2.1
 PERMIT_PACKAGE_CDROM= Yes
 
 WANTLIB += icui18n icuuc
 WANTLIB-main += ${WANTLIB} ${COMPILER_LIBCXX} m lib/db4/db
 WANTLIB-glib += ${WANTLIB} ical glib-2.0 gobject-2.0 intl pthread
+
+MASTER_SITES = https://github.com/libical/libical/releases/download/v${V}/
 
 MULTI_PACKAGES= -main -glib
 
Index: textproc/libical/distinfo
===================================================================
RCS file: /cvs/ports/textproc/libical/distinfo,v
retrieving revision 1.10
diff -u -p -r1.10 distinfo
--- textproc/libical/distinfo 18 Feb 2018 08:53:50 -0000 1.10
+++ textproc/libical/distinfo 28 Feb 2018 13:45:20 -0000
@@ -1,2 +1,2 @@
-SHA256 (libical-3.0.2.tar.gz) = +Wmb6FIeGuoZCnyHgCgF0ziOCj9Zqbn67exJD1loB6A=
+SHA256 (libical-3.0.2.tar.gz) = DLw/1jCWbh2u0t0cONI2Ig0WbBSfJFv9o8itdF4rZA4=
 SIZE (libical-3.0.2.tar.gz) = 865856
Index: archivers/deutex/Makefile
===================================================================
RCS file: /cvs/ports/archivers/deutex/Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile
--- archivers/deutex/Makefile 16 Jan 2018 08:51:34 -0000 1.2
+++ archivers/deutex/Makefile 28 Feb 2018 13:45:21 -0000
@@ -5,6 +5,7 @@ COMMENT = WAD composer for Doom, Heretic
 GH_ACCOUNT = Doom-Utils
 GH_PROJECT = deutex
 GH_TAGNAME = v5.1.1
+REVISION = 0
 
 CATEGORIES = archivers
 
@@ -24,9 +25,7 @@ AUTOCONF_VERSION = 2.69
 AUTOMAKE_VERSION = 1.15
 
 pre-configure:
- cd ${WRKDIST} && \
- AUTOCONF_VERSION="${AUTOCONF_VERSION}" \
- AUTOMAKE_VERSION="${AUTOMAKE_VERSION}" \
- autoreconf -i
+ cd ${WRKSRC} && ${SETENV} AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
+ AUTOCONF_VERSION=${AUTOCONF_VERSION} autoreconf -fiv
 
 .include <bsd.port.mk>
Index: astro/stellarium/Makefile
===================================================================
RCS file: /cvs/ports/astro/stellarium/Makefile,v
retrieving revision 1.53
diff -u -p -r1.53 Makefile
--- astro/stellarium/Makefile 22 Dec 2017 14:36:29 -0000 1.53
+++ astro/stellarium/Makefile 28 Feb 2018 13:45:21 -0000
@@ -2,15 +2,17 @@
 
 COMMENT= free open source planetarium
 
-GH_TAGNAME= v0.17.0
-GH_ACCOUNT= Stellarium
-GH_PROJECT= stellarium
+V = 0.17.0
+DISTNAME = stellarium-${V}
+REVISION = 0
 
 CATEGORIES= astro x11
 
 HOMEPAGE= http://www.stellarium.org/
 
 MAINTAINER= Antoine Jacoutot <[hidden email]>
+
+MASTER_SITES = https://github.com/Stellarium/stellarium/releases/download/v${V}/
 
 # GPLv2
 PERMIT_PACKAGE_CDROM= Yes
Index: astro/stellarium/distinfo
===================================================================
RCS file: /cvs/ports/astro/stellarium/distinfo,v
retrieving revision 1.30
diff -u -p -r1.30 distinfo
--- astro/stellarium/distinfo 22 Dec 2017 14:36:29 -0000 1.30
+++ astro/stellarium/distinfo 28 Feb 2018 13:45:21 -0000
@@ -1,2 +1,2 @@
-SHA256 (stellarium-0.17.0.tar.gz) = xb4nP4gN4GvwLQQy0sr44r64sWlb7ahs5+t1mI8jdDY=
-SIZE (stellarium-0.17.0.tar.gz) = 252733565
+SHA256 (stellarium-0.17.0.tar.gz) = zCHi2vVDOwuZxugRARcbR9p7J4tsPk5DPN5FVbQbyzQ=
+SIZE (stellarium-0.17.0.tar.gz) = 252377198

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Stuart Henderson
> -SHA256 (libical-3.0.2.tar.gz) = +Wmb6FIeGuoZCnyHgCgF0ziOCj9Zqbn67exJD1loB6A=
> +SHA256 (libical-3.0.2.tar.gz) = DLw/1jCWbh2u0t0cONI2Ig0WbBSfJFv9o8itdF4rZA4=

Same problem again.

> -SHA256 (stellarium-0.17.0.tar.gz) = xb4nP4gN4GvwLQQy0sr44r64sWlb7ahs5+t1mI8jdDY=
> -SIZE (stellarium-0.17.0.tar.gz) = 252733565
> +SHA256 (stellarium-0.17.0.tar.gz) = zCHi2vVDOwuZxugRARcbR9p7J4tsPk5DPN5FVbQbyzQ=
> +SIZE (stellarium-0.17.0.tar.gz) = 252377198

And again.

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Antoine Jacoutot-7
In reply to this post by Rafael Sadowski
On Wed, Feb 28, 2018 at 01:49:44PM +0000, Rafael Sadowski wrote:
> On Tue Feb 27, 2018 at 12:28:07PM +0000, Stuart Henderson wrote:
> >
> > archivers/deutex
> > astro/stellarium
> > textproc/enchant
> > textproc/libical
>

Please keep your changes to a minimum. i.e only the github stuff changes.


>
> >
>
>
> Index: textproc/enchant/Makefile
> ===================================================================
> RCS file: /cvs/ports/textproc/enchant/Makefile,v
> retrieving revision 1.39
> diff -u -p -r1.39 Makefile
> --- textproc/enchant/Makefile 29 Dec 2017 08:30:05 -0000 1.39
> +++ textproc/enchant/Makefile 28 Feb 2018 13:45:20 -0000
> @@ -5,15 +5,8 @@ PORTROACH= limit:^1
>  COMMENT= generic spell checking library
>  
>  V= 1.6.1
> -GH_ACCOUNT= AbiWord
> -GH_PROJECT= enchant
> -GH_TAGNAME= enchant-${V:S/./-/g}
> -REVISION= 1
> -
> -# XXX needed for portroach (DISTNAME must match the GH_PROJECT-GH_TAGNAME)
> -MASTER_SITES= https://github.com/AbiWord/enchant/releases/download/${GH_PROJECT}-${V:S/./-/g}/
> -DISTNAME= ${GH_PROJECT}-${V}
> -WRKDIST= ${WRKDIR}/${DISTNAME}
> +DISTNAME = enchant-${V}
> +REVISION= 2
>  
>  SHARED_LIBS +=  enchant              6.1      # 7.1
>  
> @@ -29,6 +22,9 @@ PERMIT_PACKAGE_CDROM= Yes
>  WANTLIB += aspell c glib-2.0 gmodule-2.0 hunspell-1.6 iconv intl
>  WANTLIB += m pcre pthread ${LIBCXX}
>  
> +MASTER_SITES= https://github.com/AbiWord/enchant/releases/download/${DISTNAME:S/./-/g}/
> +WRKDIST= ${WRKDIR}/${DISTNAME}
> +
>  # c++11
>  COMPILER = base-clang ports-gcc
>  
> @@ -50,7 +46,7 @@ CONFIGURE_ARGS= --with-aspell-prefix=${
>   --disable-uspell \
>   --disable-hspell
>  
> -###
> +
>  AUTOCONF_VERSION= 2.69
>  AUTOMAKE_VERSION= 1.15
>  BUILD_DEPENDS += ${MODGNU_AUTOCONF_DEPENDS} \
> @@ -62,7 +58,6 @@ pre-configure:
>   AUTOCONF_VERSION=${AUTOCONF_VERSION} \
>   AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
>   autoreconf -fi
> -###
>  
>  post-install:
>   rm ${PREFIX}/lib/enchant/*.{a,la}
> Index: textproc/libical/Makefile
> ===================================================================
> RCS file: /cvs/ports/textproc/libical/Makefile,v
> retrieving revision 1.32
> diff -u -p -r1.32 Makefile
> --- textproc/libical/Makefile 18 Feb 2018 08:53:50 -0000 1.32
> +++ textproc/libical/Makefile 28 Feb 2018 13:45:20 -0000
> @@ -3,12 +3,13 @@
>  COMMENT-main= implementation of the iCalendar protocols and data units
>  COMMENT-glib= GObject wrapper for libical library
>  
> -GH_ACCOUNT= libical
> -GH_PROJECT= libical
> -GH_TAGNAME= v3.0.2
> +V= 3.0.2
> +DISTNAME = libical-${V}
>  
> -PKGNAME-main= ${PKGNAME}
> -PKGNAME-glib= ${GH_PROJECT}-glib-${GH_TAGNAME:C/^v//}
> +DISTNAME-main= ${DISTNAME}
> +DISTNAME-glib= libical-glib-${V}
> +REVISION-glib= 0
> +REVISION-main= 0
>  
>  SHARED_LIBS +=  ical                 4.0
>  SHARED_LIBS +=  icalss               4.0
> @@ -19,16 +20,18 @@ SHARED_LIBS +=  ical-glib            0.0
>  
>  CATEGORIES= textproc
>  
> -MAINTAINER= Antoine Jacoutot <[hidden email]>
> -
>  HOMEPAGE= https://libical.github.io/libical/
>  
> +MAINTAINER= Antoine Jacoutot <[hidden email]>
> +
>  # dual MPLv2, LGPLv2.1
>  PERMIT_PACKAGE_CDROM= Yes
>  
>  WANTLIB += icui18n icuuc
>  WANTLIB-main += ${WANTLIB} ${COMPILER_LIBCXX} m lib/db4/db
>  WANTLIB-glib += ${WANTLIB} ical glib-2.0 gobject-2.0 intl pthread
> +
> +MASTER_SITES = https://github.com/libical/libical/releases/download/v${V}/
>  
>  MULTI_PACKAGES= -main -glib
>  
> Index: textproc/libical/distinfo
> ===================================================================
> RCS file: /cvs/ports/textproc/libical/distinfo,v
> retrieving revision 1.10
> diff -u -p -r1.10 distinfo
> --- textproc/libical/distinfo 18 Feb 2018 08:53:50 -0000 1.10
> +++ textproc/libical/distinfo 28 Feb 2018 13:45:20 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (libical-3.0.2.tar.gz) = +Wmb6FIeGuoZCnyHgCgF0ziOCj9Zqbn67exJD1loB6A=
> +SHA256 (libical-3.0.2.tar.gz) = DLw/1jCWbh2u0t0cONI2Ig0WbBSfJFv9o8itdF4rZA4=
>  SIZE (libical-3.0.2.tar.gz) = 865856
> Index: archivers/deutex/Makefile
> ===================================================================
> RCS file: /cvs/ports/archivers/deutex/Makefile,v
> retrieving revision 1.2
> diff -u -p -r1.2 Makefile
> --- archivers/deutex/Makefile 16 Jan 2018 08:51:34 -0000 1.2
> +++ archivers/deutex/Makefile 28 Feb 2018 13:45:21 -0000
> @@ -5,6 +5,7 @@ COMMENT = WAD composer for Doom, Heretic
>  GH_ACCOUNT = Doom-Utils
>  GH_PROJECT = deutex
>  GH_TAGNAME = v5.1.1
> +REVISION = 0
>  
>  CATEGORIES = archivers
>  
> @@ -24,9 +25,7 @@ AUTOCONF_VERSION = 2.69
>  AUTOMAKE_VERSION = 1.15
>  
>  pre-configure:
> - cd ${WRKDIST} && \
> - AUTOCONF_VERSION="${AUTOCONF_VERSION}" \
> - AUTOMAKE_VERSION="${AUTOMAKE_VERSION}" \
> - autoreconf -i
> + cd ${WRKSRC} && ${SETENV} AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
> + AUTOCONF_VERSION=${AUTOCONF_VERSION} autoreconf -fiv
>  
>  .include <bsd.port.mk>
> Index: astro/stellarium/Makefile
> ===================================================================
> RCS file: /cvs/ports/astro/stellarium/Makefile,v
> retrieving revision 1.53
> diff -u -p -r1.53 Makefile
> --- astro/stellarium/Makefile 22 Dec 2017 14:36:29 -0000 1.53
> +++ astro/stellarium/Makefile 28 Feb 2018 13:45:21 -0000
> @@ -2,15 +2,17 @@
>  
>  COMMENT= free open source planetarium
>  
> -GH_TAGNAME= v0.17.0
> -GH_ACCOUNT= Stellarium
> -GH_PROJECT= stellarium
> +V = 0.17.0
> +DISTNAME = stellarium-${V}
> +REVISION = 0
>  
>  CATEGORIES= astro x11
>  
>  HOMEPAGE= http://www.stellarium.org/
>  
>  MAINTAINER= Antoine Jacoutot <[hidden email]>
> +
> +MASTER_SITES = https://github.com/Stellarium/stellarium/releases/download/v${V}/
>  
>  # GPLv2
>  PERMIT_PACKAGE_CDROM= Yes
> Index: astro/stellarium/distinfo
> ===================================================================
> RCS file: /cvs/ports/astro/stellarium/distinfo,v
> retrieving revision 1.30
> diff -u -p -r1.30 distinfo
> --- astro/stellarium/distinfo 22 Dec 2017 14:36:29 -0000 1.30
> +++ astro/stellarium/distinfo 28 Feb 2018 13:45:21 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (stellarium-0.17.0.tar.gz) = xb4nP4gN4GvwLQQy0sr44r64sWlb7ahs5+t1mI8jdDY=
> -SIZE (stellarium-0.17.0.tar.gz) = 252733565
> +SHA256 (stellarium-0.17.0.tar.gz) = zCHi2vVDOwuZxugRARcbR9p7J4tsPk5DPN5FVbQbyzQ=
> +SIZE (stellarium-0.17.0.tar.gz) = 252377198

--
Antoine

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Remi Pointel
In reply to this post by Stuart Henderson
Le 27-02-2018 13:28, Stuart Henderson a écrit :

> security/plaso
> security/py-dfdatetime
> security/py-dfvfs
> security/py-dfwinreg

Hello,

these are the diff for these 4 ports.

Ok?

Cheers,

Remi.

plaso-20180127.diff (1K) Download Attachment
py-dfdatetime-20180110.diff (1K) Download Attachment
py-dfvfs-20171230.diff (1K) Download Attachment
py-dfwinreg-20170706.diff (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

Stuart Henderson
On 2018/02/28 18:03, Remi Pointel wrote:

Most of them look ok, but for plaso:

> -SHA256 (plaso-20180127.tar.gz) = i7wASIbQIw3HtlYU9DatjwI3/DYyx5S/zDGVzsgx1L8=
> -SIZE (plaso-20180127.tar.gz) = 110251128
> +SHA256 (plaso-20180127.tar.gz) = kA10e1j2UrkTxhSf3YnSGTPf++3KaktvT5W2OE+C8nU=
> +SIZE (plaso-20180127.tar.gz) = 109492062


----- Forwarded message from Stuart Henderson <[hidden email]> -----

From: Stuart Henderson <[hidden email]>
Date: Tue, 27 Feb 2018 22:36:51 +0000
To: Thomas Frohwein <[hidden email]>
Cc: [hidden email]
User-Agent: Mutt/1.9.3 (2018-01-21)
Subject: Re: fs2open - switch to release
Mail-Followup-To: Thomas Frohwein <[hidden email]>, [hidden email]

On 2018/02/27 10:16, Thomas Frohwein wrote:
> This diff switches fs2open to the release tarball. Simplifies things a ton
> because now it doesn't need to fetch the git submodules separately. Includes
> REVISION bump and new HOMEPAGE line.
>
> Builds and runs as before on a quick test run.

This is a big improvement imho. Only problem is that the distfile name
is unchanged which isn't handled very well in bulk builds at the moment
(distfiles are shared between multiple arches, which are building from
different versions of the tree - we could easily have 2 or 3 fast-arch
builds, then a slow arch tries to build it and wants the old version,
then fast arches build again, then another slow one, etc).

Obviously this is not just going to affect fs2open but some other ports
which are moved to /releases too, so let's pick a standard method to
handle it before proceeding.

> +DISTFILES = ${DISTNAME}${EXTRACT_SUFX}

This line is the default so could normally be removed. But due to the
distfile issue above I would propose this instead for now, and remove at
next update:

DISTFILES = ${DISTNAME}_1{${DISTNAME}}${EXTRACT_SUFX}

And with this the distinfo would change to:

SHA256 (fs2_open_3_8_0-source-Unix_1.tar.gz) = 0m/4tma9rh6fQquvL0mNs2EJPyKJ2nhVXx9vu6dWIic=
SIZE (fs2_open_3_8_0-source-Unix_1.tar.gz) = 9040907

Does that make sense?


----- End forwarded message -----

Reply | Threaded
Open this post in threaded view
|

Re: Porters, please read re GitHub auto-generated tarballs vs releases

trondd-2
In reply to this post by Stuart Henderson
Stuart Henderson <[hidden email]> wrote:

> Many ports are using github's on-the-fly generated source-code tarballs
> via the GH_ variables in Makefiles.
>
> ...
>
> www/liferea

Below is the update for www/liferea to use the release source tarball.

Tim.


Index: Makefile
===================================================================
RCS file: /cvs/ports/www/liferea/Makefile,v
retrieving revision 1.98
diff -u -p -r1.98 Makefile
--- Makefile 30 Dec 2017 09:21:49 -0000 1.98
+++ Makefile 4 Mar 2018 01:43:30 -0000
@@ -4,9 +4,9 @@ BROKEN-i386= hangs during build while r
 
 COMMENT= simple GTK desktop news aggregator
 
-GH_ACCOUNT= lwindolf
-GH_PROJECT= liferea
-GH_TAGNAME= v1.12.1
+V= 1.12.1
+DISTNAME= liferea-${V}
+REVISION= 0
 
 CATEGORIES= www news x11
 
@@ -32,6 +32,10 @@ WANTLIB += secret-1 soup-2.4 sqlite3 tas
 WANTLIB += xcb xcb-dri2 xcb-glx xcb-render xcb-shm xcb-xfixes
 WANTLIB += xml2 xslt z
 
+MASTER_SITES= https://github.com/lwindolf/liferea/releases/download/v${V}/
+
+EXTRACT_SUFX= .tar.bz2
+
 MODULES= devel/dconf \
  lang/python \
  textproc/intltool
@@ -63,12 +67,6 @@ AUTOMAKE_VERSION= 1.15
 BUILD_DEPENDS += ${MODGNU_AUTOCONF_DEPENDS} \
  ${MODGNU_AUTOMAKE_DEPENDS} \
  devel/libtool
-
-pre-configure:
- cd ${WRKSRC} && \
- AUTOCONF_VERSION=${AUTOCONF_VERSION} \
- AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
- NOCONFIGURE=1 ./autogen.sh
 
 post-install:
  rm ${PREFIX}/lib/liferea/web-extension/*.{a,la}
Index: distinfo
===================================================================
RCS file: /cvs/ports/www/liferea/distinfo,v
retrieving revision 1.42
diff -u -p -r1.42 distinfo
--- distinfo 30 Dec 2017 09:21:49 -0000 1.42
+++ distinfo 4 Mar 2018 01:43:30 -0000
@@ -1,2 +1,2 @@
-SHA256 (liferea-1.12.1.tar.gz) = zQ1/gpzjRc2WT52mnlUGFmYMGJCCu+nvnZ2ifVzE3lg=
-SIZE (liferea-1.12.1.tar.gz) = 1529678
+SHA256 (liferea-1.12.1.tar.bz2) = uO1bx+7bOFhyWoTKxb88WsE7DFNtI1UJa94y2UUfHZM=
+SIZE (liferea-1.12.1.tar.bz2) = 1490079