USE_GITHUB and submodules

Jonathan Anderson jonathan.robert.anderson at gmail.com
Wed May 20 13:30:21 UTC 2015


Thanks everybody for the input! With a security hat on, I definitely
concur with the policy of no fetching outside of fetch and of requiring
reproducibility/verifiability (e.g., commit hashes). With my
getting-this-darn-port-updated hat, however... :)

I think that I'll try to go with Shane's solution, if others concur that
it's a good idea. I don't want to create a rust-llvm port, since Rust's
customized version of LLVM isn't much good outside of Rust, it doesn't
expose any external libraries and it's intended to eventually go away.
So, until GitHub implements the "give me a tarball with all of the
submodules" feature, I might try hacking up MASTER_SITES as Shane suggests.

Cheers,


Jon
> Shane Ambler <mailto:FreeBSD at ShaneWare.Biz>
> May 19, 2015 at 10:16 PM
> On 20/05/2015 04:14, Jonathan Anderson wrote:
>> Hi all,
>>
>> Is there a mechanism for using the USE_GITHUB variable in a port that
>> depends on submodules? For instance, the Rust port requires an embedded
>> (and modified) version of LLVM, which it includes as a submodule. Right
>> now I'm attempting to add the following to a `post-extract` rule:
>
> While you can setup multiple files to be downloaded for a port this
> doesn't work with USE_GITHUB, see my 3 year old report -
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=172964
>
> This isn't an official port, but the workaround I came up with was to
> setup multiple files by setting MASTER_SITES using --
>
> MASTER_SITES= https://github.com/sambler/myblender/tarball/:base \
>     https://github.com/sambler/myblendertranslations/tarball/:trans \
>     https://github.com/sambler/myblenderaddons/tarball/:addons \
>     https://github.com/sambler/myblendercontrib/tarball/:contrib
> DISTFILES= sambler-${PORTVERSION}.${PORTREVISION}:base \
>     translate-${PORTVERSION}.${PORTREVISION}:trans \
>     addons-${PORTVERSION}.${PORTREVISION}:addons \
>     contrib-${PORTVERSION}.${PORTREVISION}:contrib
> DIST_SUBDIR= ${PORTNAME}
>
> The DISTFILES names are setup to match my tag format.
>
> This gives you multiple archives for the port, each will be extracted
> into the work dir, I then use post-extract to move them into place
> within the main source tree and don't depend on git for the port--
>
> post-extract:
> # tanslations
>     @${MV} ${WRKDIR}/sambler-myblendertranslations-*/*
>       ${WRKSRC}/release/datafiles/locale/
> # addons
>     @${MV} ${WRKDIR}/sambler-myblenderaddons-*/*
>       ${WRKSRC}/release/scripts/addons/
> # contrib
>     @${MV} ${WRKDIR}/sambler-myblendercontrib-*/*
>       ${WRKSRC}/release/scripts/addons_contrib/
>
>
>> post-extract:
>>      cd ${WRKSRC} && \
>>      git init && \
>>      git remote add origin
>> https://github.com/${GH_ACCOUNT}/${PORTNAME} && \
>>      git fetch && \
>>      git reset --hard ${PORTVERSION} && \
>>      git submodule init && \
>>      git submodule update --recursive
>>
>> But this seems quite hackish! It would be great if submodules Just
>> Worked... but alternatively, is there a USE_GITHUB_URL or somesuch that
>> would check things out via Git instead of tarball to save me the `git
>> init` through `git reset` steps?
>>
>> Cheers,
>>
>>
>> Jon
>> -- 
>> jonathan at FreeBSD.org
>> _______________________________________________
>> freebsd-ports at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
>> To unsubscribe, send any mail to "freebsd-ports-unsubscribe at freebsd.org"
>>
>
>

-- 
jonathan.anderson at ieee.org



More information about the freebsd-ports mailing list