On Tue, 2016-03-22 at 10:35 -0400, Bryan C. Everly wrote:
> All,
> 
> Attached to this email is a port of snakeyaml, a YAML parser for Java.
> 
> The thing that makes this challenging is that the upstream build for this
> doesn't use ANT, it uses Maven.  As many of you may know, the way Maven
> works is that you fetch the upstream source, and then as it builds, it is
> accessing the internet and pulling down the additional dependency jarfiles
> it needs to successfully build the final packages.
> 
> Unfortunately, we have our build system locked down (and rightly so) so
> that during the build phase, the network is inaccessible.
> 
> My "solution" (some might say hack) to this is that I run the full build
> and test locally, and then grab the contents of my ~/.m2/repository
> directory (where maven caches those files so that they aren't re-fetched
> each time) and put it in a tarball in a separate gitHub repository that is
> solely dedicated to the port in question and is synchronized to the version
> (and version dependencies) of the upstream project.
> 
> The port then fetches the maven dependencies as a separate DISTFILES0
> source and then leverages a feature of maven to run in "offline" mode using
> a local directory as the source of the dependencies.
> 
> I've tried to do this as cleanly as my little n00b brain can manage but I
> would really appreciate some hardcore feedback on this suggested port.  If
> I can get it clean enough to where folks on the list are willing to commit
> it for me, I'd like to wade into the ports infrastructure and documentation
> and see if I can suggest a patch that would allow this to happen more
> easily so that we could have access to the large number of Maven-built open
> source packages out there (most of the JDBC drivers, some of the required
> infrastructure for a full build of OpenJDK, etc.)
> 
> I have tested this port locally to simulate the formal build process by
> first running a 'make fetch', then ifconfig down-ing my network and running
> the rest of the build and install process with no network connectivity.  It
> "works on my machine" (TM) in this mode.
> 
> I'll be doing further testing on my i386, single core sparc64 and multicore
> sparc64 boxes to ensure that this works everywhere that we have Java
> support as well; however, I wanted to get feedback now before I dive into
> that part.
> 
> Please, be as direct as you possibly can on this so that I can leverage the
> collective knowledge of the group to perhaps solve this problem in a more
> systematic way.
> 
> Thanks in advance, by the way, for all of your suggestions and thank you
> for the help you've given me to get this far.
> 
> Thanks,
> Bryan

Hi Bryan,

I have reviewed the port and agree with the approach you have taken for
preventing Maven from downloading during the build (maven.repo.local).
At the moment I don't have time to test it. However I am ok with how you
solved the problem.

Regards,
-Kurt

Reply via email to