tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Fetching additional/optional non-patch/non-distfiles



Hey folks,

I have an infamous patch for firefox that gets rid of the (heavy, not
available for all architectures) nodejs build dependency.

The way it works is how upstream should do it *before* releasing a new
version - but they don't. Effectively a special makefile target takes
care of the nodejs run, extracts the (static) results and tars them up.
In "normal" builds the pre-generated tar is then used and no nodejs is
ever run. (Details are a bit more subtle, this is all sneaked into
the upstream build system so it believes nodejs is available.)

To get past the chicken/egg problem, there is a special make variable
that selects between the "I use nodejs and maybe later this
build will be used to extract the nodejs output" version (which is
also needed to be able to easily update the pkg), and the standard
"I just use the pregenerated output" version.

This works fine, but I have trouble finding a good place to store the
tarball. For now it is generated in ./files/, but as a big binary file
that is kind of inconvenient. I thought about putting it on
ftp.netbsd.org (adding a special upload makefile target) and using it
via cdn. This would work nicely (but I'm not sure what path to best use
on ftp for that), but I am not sure how it should be dealt with at the
pkgsrc level.

It is not a patch, so PATCHFILES doesn't fit, and it is not really for
DISTFILES (though that is probably quite close). I don't like it in DISTFILES
because that would extract it always (even in the "I use nodejs" variant).
Since it does not exist early on during updates, it would create a chicken/egg
issue again.

Is there any pkg fetching other things conditionally where I could look
for prior art? Any suggestions?

Martin


Home | Main Index | Thread Index | Old Index