github fetch not working (solved, mostly)

Miroslav Lachman 000.fbsd at quip.cz
Mon Mar 19 00:13:58 UTC 2018


Gary Aitken wrote on 2018/03/19 00:02:

> fetch: 
> https://codeload.github.com/sergiomb2/ufraw/tar.gz/g20161113?dummy=/sergiomb2-ufraw-g20161113_GH0.tar.gz: 
> Not Found
>>> => Attempting to fetch
>>> http://distcache.FreeBSD.org/ports-distfiles/ufraw-devel/sergiomb2-ufraw-g20161113_GH0.tar.gz 
>>>
>>>
>>>
> fetch: 
> http://distcache.FreeBSD.org/ports-distfiles/ufraw-devel/sergiomb2-ufraw-g20161113_GH0.tar.gz: 
> Not Found
>>> => Couldn't fetch it - please try to retrieve this => port manually
>>> into ../../distfiles/ufraw-devel and try again.
>>>
>>> It was my understanding that the USE_GITHUB target would somehow 
>>> magically clone the tree and build the requisite tarball, or
>>> unpack the whole thing into distfiles.  Obviously I'm missing
>>> something. Clues?
>>>
>>> Makefile: # $FreeBSD$
>>>
>>> DISTDIR=        ../../distfiles PORTNAME=       ufraw-devel 
>>> DISTVERSION=    g20161113 CATEGORIES=     graphics #MASTER_SITES=
>>> https://github.com/sergiomb2/ufraw.git
>>>
>>> USE_GITHUB=     yes GH_ACCOUNT=     sergiomb2 GH_PROJECT=
>>> ufraw #GH_TAGNAME=    g6d3259aa
>>>
>>> DIST_SUBDIR=${PORTNAME}
>>>
>>> MAINTAINER=     freebsd at dreamchaser.org COMMENT=        Read and
>>> manipulate raw images from digital cameras LICENSE=        GPLv2
>>>
>>> .include <bsd.port.mk>
>>
>>
>> Where did you get this version number? DISTVERSION=    g20161113
> 
> I was trying to follow example 5.13 in the porter's handbook.
> However, this particular git tree has only a main branch and no
> tags, so it's not a perfect fit.
> 
>> What about this
>>
>> PORTNAME=       ufraw-devel PORTVERSION=    g20161113 CATEGORIES=
>> graphics MASTER_SITES=   GH
>>
>> MAINTAINER=     freebsd at dreamchaser.org COMMENT=        Read and
>> manipulate raw images from digital cameras
>>
>> LICENSE=        GPLv2
>>
>> USE_GITHUB=     yes GH_ACCOUNT=     sergiomb2 GH_PROJECT=     ufraw 
>> GH_TAGNAME=     6d3259a
>>
>> .include <bsd.port.mk>
> 
> Unfortunately, that yields the same results.
> However, thanks for the hints;
> I did get it to work as follows:
> 
> MASTER_SITES=   https://github.com/sergiomb2/ufraw/archive/
> DISTNAME=       master
> 
> The link shown on the website for a "Download zip file" is
>    https://github.com/sergiomb2/ufraw/archive/master.zip
> But the file fetched was
>    ufraw-devel/master.tar.gz
> 
> $ make fetch
> ...
> => Attempting to fetch 
> https://github.com/sergiomb2/ufraw/archive/master.tar.gz
> fetch: https://github.com/sergiomb2/ufraw/archive/master.tar.gz: size of 
> remote file is not known
> 
> However, I'm still puzzled because this method totally ignores all the
> special hooks that are supposed to make a git repository work.

Your first version was trying to fetch 
https://codeload.github.com/sergiomb2/ufraw/tar.gz/g20161113?dummy=/sergiomb2-ufraw-g20161113_GH0.tar.gz
But you should fetch this (note the tag 6d3259a after tar.gz/)
https://codeload.github.com/sergiomb2/ufraw/tar.gz/6d3259a?dummy=/sergiomb2-ufraw-6d3259a_GH0.tar.gz

So you need to tune your Makefile to create link like above.

According to this 
https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html#makefile-master_sites-popular
you need to set GH_ACCOUNT,  GH_PROJECT and GH_TAGNAME=6d3259a to create 
right URL:

${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/

This works for me

PORTNAME=       ufraw-devel
PORTVERSION=    g20161113
CATEGORIES=     graphics
MASTER_SITES=   GH
#DISTNAME= 
${GH_ACCOUNT}-${GH_PROJECT}-${GH_TAGNAME}${DISTVERSIONSUFFIX}

MAINTAINER=     freebsd at dreamchaser.org
COMMENT=        Read and manipulate raw images from digital cameras

LICENSE=        GPLv2

USE_GITHUB=     yes
GH_ACCOUNT=     sergiomb2
GH_PROJECT=     ufraw
GH_TAGNAME=     6d3259a

.include <bsd.port.mk>


You should create distinfo file with checksum first:

# make makesum
=> sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz doesn't seem to exist in 
/var/ports/distfiles/.
https://codeload.github.com/sergiomb2/ufraw/tar.gz/6d3259a?dummy=/ 
http://distcache.FreeBSD.org/ports-distfiles/
=> Attempting to fetch 
https://codeload.github.com/sergiomb2/ufraw/tar.gz/6d3259a?dummy=/sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz
sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz  100% of  849 kB  720 kBps 
00m01s


# cat distinfo
TIMESTAMP = 1521418152
SHA256 (sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz) = 
4a3b415bf86c7cadc71350a8f0a206cef79bb3c22a6a794a9d9894d6bc7ec6dc
SIZE (sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz) = 870086


# ls -l /var/ports/distfiles/sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz
-rw-r--r--  1 root  wheel  870086 Mar 19 00:09 
/var/ports/distfiles/sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz


# make distclean
===>  Cleaning for ufraw-devel-g20161113
===>  Deleting distfiles for ufraw-devel-g20161113


# make fetch
===>  License GPLv2 accepted by the user
===>   ufraw-devel-g20161113 depends on file: /usr/local/sbin/pkg - found
=> sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz doesn't seem to exist in 
/var/ports/distfiles/.
https://codeload.github.com/sergiomb2/ufraw/tar.gz/6d3259a?dummy=/ 
http://distcache.FreeBSD.org/ports-distfiles/
=> Attempting to fetch 
https://codeload.github.com/sergiomb2/ufraw/tar.gz/6d3259a?dummy=/sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz
sergiomb2-ufraw-g20161113-6d3259a_GH0.tar.gz  100% of  849 kB  786 kBps 
00m01s
===> Fetching all distfiles required by ufraw-devel-g20161113 for building


Miroslav Lachman


More information about the freebsd-ports mailing list