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
