all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Theodoros Foradis <theodoros.for@openmailbox.org>
To: Guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH v2 1/1] gnu: Add plantuml.
Date: Wed, 02 Nov 2016 02:07:55 +0200	[thread overview]
Message-ID: <874m3qu4kk.fsf@openmailbox.org> (raw)
In-Reply-To: <87pomiakvk.fsf@elephly.net>


Ricardo Wurmus writes:

> Theodoros Foradis <theodoros.for@openmailbox.org> writes:
>
>>>> +(define-public plantuml
>
> […]
>
>>>> +       (modify-phases %standard-phases
>>>> +         (add-before 'build 'delete-extra-from-cp
>
> BTW: the phase name is a little hard to understand.  We don’t mind
> slightly longer phase names if that improves readability.
>

I'll change that to delete-extra-from-classpath.

>>>> +                     (lambda _
>>>> +                       (substitute* "build.xml"
>>>> +                         (("1.6") "1.7")
>>>> +                         (("<attribute name=\"Class-Path\"") "<!--")
>>>> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />")
>>>> "-->"))
>
> Another thing I forgot: is this jar bundled?  If so, it should be
> removed in a snippet.
>

The jar is not bundled. With those substitutions, I comment out all the
extra jars (not included anyway) from the classpath. 

>>>> +                       #t))
>>>> +         (add-before 'install 'gen-install
>>>> +                  (lambda* (#:key outputs #:allow-other-keys)
>>>> +                    (mkdir-p "build/jar")
>>>> +                    (system* "mv" "plantuml.jar" "build/jar")
>>>> +                    ((@@ (guix build ant-build-system) default-build.xml)
>>>> +                     "plantuml.jar"
>>>> +                     (string-append (assoc-ref outputs "out")
>>>> +                                    "/share/java"))))
>>>
>>> I don’t understand this.  Do you only use “default-build.xml” to add an
>>> install target?  In the previous phase you use the included “build.xml”.
>>> I find this a little odd and think it would be clearer to just install
>>> the files manually instead of using “default-build.xml” here.
>>

Right, I should install manually instead. Generating the
default-build.xml is unneeded.

>> The build.xml that our ant-build-system generates, does not generate a
>> correct manifest attribute with the Main-Class, so the produced jar file
>> cannot be run. Instead of generating the required text manually, I use
>> the default build.xml for the build phase.
>>
>> The default build.xml does not include an install phase, so I generate
>> it after compilation, with our ant-build-system.
>>
>> Feedback is welcome, if there is a better way to do this, before I
>> reformat the patch.
>
> (I’m a little confused.  When you write “default build.xml” you mean the
> included “build.xml”, not the one generated by the procedure
> “default-build.xml”, right?)

Right.

>
> Should the “default-build.xml” procedure be changed to (conditionally)
> add the “Main-Class” attribute?
>

I am not very knowledgeable about the ant-build-system, but I think it
would be a useful addition, as runnable jars need that "Main-Class"
attibute.

> In this case I think using “default-build.xml” just for the install
> phase is a little over the top.  All it does is copy the jars to the
> target directory:
>
> (target (@ (name "install"))
>         (copy (@ (todir "${dist.dir}"))
>               (fileset (@ (dir "${jar.dir}"))
>                        (include (@ (name "**/*.jar"))))))
>
> That’s something you could do with Scheme directly:
>
>     (replace 'install
>       (lambda* (#:key outputs #:allow-other-keys)
>         (for-each (lambda … install-file …)
>                   (find-files … "\\.jar$"))
>         #t))
>
> I find that a lot clearer than accessing a private procedure from
> “ant-build-system”.
>

Thanks for the hint. I'll skip the "default-build.xml" and do it with
Scheme directly.

>>>
>>>> +         (add-after 'install 'make-wrapper
>>>> +                    (lambda* (#:key inputs outputs #:allow-other-keys)
>>>
>>> Please check the indentation for all phases.  That’s too far to the
>>> right.
>>>
>>
>> I will fix that. This is the default indentation emacs does with this,
>> so I forgot to fix it manually.
>
> Actually, we have a “.dir-locals.el” file that Emacs should respect.
> Using the settings in that file will tell Emacs to indent these things
> correctly.  (Many of us here are using Emacs and we don’t fix
> indentation manually.)
>
> ~~ Ricardo

Thanks for letting me know. I thought I had been using that
".dir-locals.el", and that this indentation wasn't included, but I should
have made some mistake.

Regards,
-- 
Theodoros Foradis

  reply	other threads:[~2016-11-02  0:11 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-24 13:12 [PATCH] gnu: Add plantuml Theodoros Foradis
2016-10-27 10:13 ` Efraim Flashner
2016-10-27 11:18   ` [PATCH v2 0/1] " Theodoros Foradis
2016-10-27 11:18     ` [PATCH v2 1/1] " Theodoros Foradis
2016-10-27 17:29       ` Ricardo Wurmus
2016-10-28 11:19         ` Theodoros Foradis
2016-10-29 21:46           ` Ricardo Wurmus
2016-11-02  0:07             ` Theodoros Foradis [this message]
2016-11-02 11:03             ` [PATCH v4 " Theodoros Foradis
2016-11-02 13:58               ` Roel Janssen
2016-11-03 14:29                 ` Theodoros Foradis
2016-11-04 14:46                   ` Roel Janssen
2016-11-07 13:21                     ` [PATCH v5 0/1] " Theodoros Foradis
2016-11-07 13:21                       ` [PATCH v5 1/1] " Theodoros Foradis
2016-11-08 14:03                       ` [PATCH v5 0/1] " Roel Janssen
2016-10-28 19:12         ` [PATCH v2 1/1] " Theodoros Foradis
2016-10-28 19:12           ` [PATCH v3 " Theodoros Foradis
2016-10-29 10:39             ` Theodoros Foradis
2016-10-27 10:21 ` [PATCH] " Marius Bakke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874m3qu4kk.fsf@openmailbox.org \
    --to=theodoros.for@openmailbox.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.