guix-devel
[Top][All Lists]
Advanced

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

Re: Guix and Clojure [how to bootstrap javacc?]


From: Alex Vong
Subject: Re: Guix and Clojure [how to bootstrap javacc?]
Date: Mon, 26 Jun 2017 19:06:32 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Hello Nico,

Nico Rikken <address@hidden> writes:

> Hi Alex,
>
> Building offline is certainly possible, as long as the dependencies are 
> available on the
> classpath, or perhaps in the local maven repository. I'm not sure how that 
> would work in Guix,
> but I saw some java dependency statements, so it might just work.
> I converted the subset of Leiningen, namend leiningen-core, to ant using `mvn 
> ant:ant` It the
> seemingly built succesfully with ant, but I haven't tested it thoroughly.
>
I haven't used maven before. Do you mean that maven can convert pom.xml
to ant.xml and then we can run ant to build leiningen-core? I suppose
some binary jars need to be downloaded in the process since
leiningen-core depends on other java libraries, right?

> Do you have a Clojure project in mind that is worthwhile to bring over to 
> GuixSD as a package?
> That might be an initial project.
>
I guess Leiningen itself would be a good candidate. It is a widely used
and important project.

> How do you use Guix? As GuixSD, or on a different OS? I intend to install it 
> on Debian in the
> near future, or start dual-booting.
>
I personally run debian + guix. I start using guix about 1.5 years
ago. Back then, guixsd was still in alpha and it was not very stable. So
I picked the debian + guix approach. Of course, things are different
now. So it is better to ask other guixsd users on their experience with
guixsd.

> We can indeed move this discussion to the mailinglist. Perhaps we can try 
> something out to
> have concrete discussion points?
>
Since I don't know maven, yesterday, I used the dumb way to recursively
identify dependencies of java library:

1. go to src/java/ directory
2. run $ javac `find -name \*.java` |& head
3. search for the first error of the form "package foo does not exist"
4. find the source for library foo in the internet
5. recur on step 1 with library foo

So far I find out that Leiningen has the following dependencies
(including recursive ones):

aether-core animal-sniffer aopalliance asm-5.2
asomov-snakeyaml-623d46a03844 beanshell brotli cglib com.hypirion.io
commons-compress commons-csv commons-logging disruptor error-prone
geronimo-xbean guava guice j2objc jackson-annotations jackson-core
jackson-databind jackson-dataformat-xml jackson-dataformat-yaml
jackson-module-jaxb-annotations jansi javacc JavaHamcrest javamail
javax-inject javax.jms-api-2.0-sources javax.persistence jcommander
JCTools jeromq jffi jnr-ffi jnr-x86asm jsr-305 junit4 kafka kalium
logging-log4j2 lz4-java maven-wagon org.eclipse.sisu.inject
org.osgi.annotation.versioning-1.0.0-sources org.osgi.dto-1.0.0-sources
org.osgi.framework-1.8.0-sources org.osgi.resource-1.0.0-sources
org.osgi.util.tracker-1.5.1-sources plexus-classworlds plexus-containers
plexus-utils pomegranate servlet-spec sisu.plexus slf4j stax2-api testng
xz-java

Wow! That's many dependencies!

Although the the above is tedious, it is still doable. However,
eventually I run into a problem - javacc depends on itself to build. It
is analogous to how ghc is built. Does anyone know to bootstrap javacc
from source?

> Nico
>
> Alex Vong <address@hidden> schreef op 24 juni 2017 12:25:44 CEST:
>
>  Hi Nico,
>
> Nico Rikken <address@hidden> writes:
>
>   Hi Alex,
>
>  I assume you are the contributer who introduced Clojure to Guix:
> https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01125.html
>
> Yes, at that time, I was trying to learn clojure. So I introduced
> Clojure to Guix. Then I got busy in study and stopped working on it.
>
> I must say at the moment, I am still very new to clojure and java.
>
>   I'm a professional Clojure developer, and I have an interest in Guix
>  for it's functional and reproducibility aspect. Yet I see no real
>  packaging emerging for Clojure in Guix. There is the ant-build-system
>  for Java packages. Of course one should be able to build Clojure
>  packages with Ant, but I haven't done so.
>
>  Assuming you have looked into this issue as well, what do you think of
>  the current state, and possibilities, of Clojure packages in Guix?
>
> My last thought was, instead of using ant-build-system directly, we
> should first package Leiningen and create leiningen-build-system.
>
> However, I am completely new to Leiningen and the *-build-system stuff
> in Guix. I don't know if this is the right thing to do. One of the
> concerns is that Leiningen may not support offline building.
>
> If you wish, we can continue the discussion on <address@hidden>. I am
> currently on summer holiday and thus have more spare time.
>
>   Kind regards,
>  Nico Rikken (NL)
>
> Cheers,
> Alex

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]