<div dir="ltr">Hah, I've just noticed that my patch wasn't against the latest version of asdf-jar.lisp... I'll wait for some feedback before I spend more time on this, but I don't mind having another look at it. I'm definitely running the latest version:<div><br></div><div><div>TEMP> (lisp-implementation-version)</div><div>"1.3.3"</div><div>"Java_HotSpot(TM)_64-Bit_Server_VM-Oracle_Corporation-1.7.0_60-b19"</div><div>"x86_64-Mac_OS_X-10.9.5"</div><div><br><div class="gmail_extra"><div class="gmail_quote">On 24 November 2015 at 11:25, John Pallister <span dir="ltr"><<a href="mailto:john@synchromesh.com" target="_blank">john@synchromesh.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hello list,<div><br></div><div>I've been trying to use ABCL-JAR to package up my app for deployment to Google App Engine. I've come across a few issues; any comments would be appreciated. I've attached a patch to the ABCL-JAR:PACKAGE function that Works For Me(TM).</div><div><br></div><div>For the original code, see <a href="http://abcl.org/trac/browser/trunk/abcl/contrib/asdf-jar/asdf-jar.lisp?rev=14695" target="_blank">http://abcl.org/trac/browser/trunk/abcl/contrib/asdf-jar/asdf-jar.lisp?rev=14695</a></div><div><br></div><div>First, there was an issue where if the ROOT parameter is NIL the function would fail at line 90.</div><div><br></div><div>Second, The SYSTEM:ZIP function didn't want to nest JARs within the new JAR, so systems that depended on e.g. JSS via abcl-contrib.jar would fail. I filter out files in JARs on the assumption that one will just distribute those JARs along with the new one.</div><div><br></div><div>Third, my ASDF file includes a system that looks like:</div><div><br></div><div><div>(asdf:defsystem #:gabacle-clack-java</div><div> :defsystem-depends-on (#:abcl-asdf)</div><div> :version "0.1"</div><div> :description "Java interface classes for Gabacle/Clack."</div><div> :depends-on ()</div><div> :components ((:module java-src</div><div><span style="white-space:pre-wrap"> </span>:pathname "src/"</div><div><span style="white-space:pre-wrap"> </span>:components ((:class-file-directory "java")))))</div></div><div><br></div><div>This may or may not be good style, but it seems to be legal. When traversing the ASDF files, the class file directory component comes back with a PATHNAME-TYPE of :UNSPECIFIC, so I filter such entries out so that SYSTEM:ZIP doesn't object.</div><div><br></div><div>On a minor note, at <a href="http://abcl.org/trac/browser/trunk/abcl/src/org/armedbear/lisp/zip.java?rev=14695#L227" target="_blank">http://abcl.org/trac/browser/trunk/abcl/src/org/armedbear/lisp/zip.java?rev=14695#L227</a> "incorporation" is spelled "incoporation".</div><div><br></div><div>I hope this is useful. If people could point out where I've just got the wrong end of the stick, that would be great...</div><div><br></div><div>Cheers,</div><div><br></div><div>John :^P<span class=""><font color="#888888"><br clear="all"><div><div>-- <br>John Pallister<br><a href="mailto:john@johnp.net" target="_blank">john@johnp.net</a><br><a href="mailto:john@synchromesh.com" target="_blank">john@synchromesh.com</a></div></div><div><br></div>
</font></span></div></div>
</blockquote></div><br></div></div></div></div>