github: handmade vs autogenerated distibution
Sergei Vyhenski
svysh.fbsd at gmail.com
Thu Dec 14 20:43:55 UTC 2017
Hi,
Some projects on Github provide handmade distribution tarball (let us
call it H-tarball) for a release.
The contents of this H-tarball could be essentially different from the
check-out'ed source. The latter being identical to the autogenerated
tarball (let us call it A-tarball), which we get with USE_GITHUB
construct in the port's Makefile.
H-tarball could contain files, which are missing from the A-tarball,
such as:
- configure script,
- several Makefile's
- documentation prebuilt from several formats
In one example (which is expat, see below) - to build documentation
(seems like) it requires this very expat to be installed in advance,
thus bringing us to the cycle dependency. No wonder that the author of
expat went into trouble and provided the H-tarball.
Hence, building from A-tarball becomes a challenging task, which goes
far beyond from saying "USES=autoreconf gmake" and "GNU_CONFIGURE=yes".
Example for textproc/expat2 ver. 2.5.5:
H-tarball:
https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2
source:
https://github.com/libexpat/libexpat/tree/master/expat
A-tarball:
https://codeload.github.com/libexpat/libexpat/tar.gz/R_2_2_5?dummy=/R_2_2_5_GH0.tar.bz2
Playing with GH_* variables, I was able to fetch A-tarball within
guidelines of
bsd.sites.mk.
But to fetch H-tarball, I could only invent the following:
PORTNAME= expat
PORTVERSION= 2.2.5
MASTER_SITES=
https://github.com/libexpat/libexpat/releases/download/R_${PORTVERSION:S|.|_|g}/
Also, this project has declared that it moves from SF to GH. It still
publishes H-tarballs on SF. But it seems that switching of the FreeBSD
port to take distribution from GH is inevitable.
Do you think that explicit MASTER_SITES instead of USE_GITHUB (thus
using H-tarball) here contradicts to some rules of good stile?
Do you think that fighting with A-tarball is always necessary?
Regards, Sergei
More information about the freebsd-ports
mailing list