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

Attachment: snakeyaml.tgz
Description: GNU Zip compressed data

Reply via email to