unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Circular dependency with LDC and Phobos
@ 2015-12-25 16:51 Pjotr Prins
  2015-12-25 17:06 ` Roel Janssen
  0 siblings, 1 reply; 5+ messages in thread
From: Pjotr Prins @ 2015-12-25 16:51 UTC (permalink / raw)
  To: guix-devel

We are trying to build the LLVM D-compiler (ldc). The problem is a
circular dependency on a D-library (Phobos). The D-compiler source
won't compile without the Phobos sources which are in a separate
repository. Normally it is handled by git --recurse, but I think it
would be better to download the tar balls of the releases (I think git
recurse submodules is not working in Guix anyway, last time I tried).

How best to deal with this? Should I write a package which unpacks
Phobos tarball and make the source available to ldc? ldc won't build
without Phobos and Phobos won't build without ldc. 

From the source:

LDC currently needs custom forks of druntime and Phobos. They are
integrated with the main repository using Git submodules. To build
them, make sure you have up-to-date copies of the submodules in your
local repository:

$ git submodule update -i

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Circular dependency with LDC and Phobos
  2015-12-25 16:51 Circular dependency with LDC and Phobos Pjotr Prins
@ 2015-12-25 17:06 ` Roel Janssen
  2015-12-25 18:19   ` Pjotr Prins
  0 siblings, 1 reply; 5+ messages in thread
From: Roel Janssen @ 2015-12-25 17:06 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel


Pjotr Prins writes:

> We are trying to build the LLVM D-compiler (ldc). The problem is a
> circular dependency on a D-library (Phobos). The D-compiler source
> won't compile without the Phobos sources which are in a separate
> repository. Normally it is handled by git --recurse, but I think it
> would be better to download the tar balls of the releases (I think git
> recurse submodules is not working in Guix anyway, last time I tried).
>
> How best to deal with this? Should I write a package which unpacks
> Phobos tarball and make the source available to ldc? ldc won't build
> without Phobos and Phobos won't build without ldc. 
>
>From the source:
>
> LDC currently needs custom forks of druntime and Phobos. They are
> integrated with the main repository using Git submodules. To build
> them, make sure you have up-to-date copies of the submodules in your
> local repository:
>
> $ git submodule update -i

I think this specific case can be easily solved by the LDC developers by
providing proper tarballs with the *complete* source code to build LDC.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Circular dependency with LDC and Phobos
  2015-12-25 17:06 ` Roel Janssen
@ 2015-12-25 18:19   ` Pjotr Prins
  2015-12-25 21:18     ` Ricardo Wurmus
  0 siblings, 1 reply; 5+ messages in thread
From: Pjotr Prins @ 2015-12-25 18:19 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel

On Fri, Dec 25, 2015 at 06:06:22PM +0100, Roel Janssen wrote:
> > $ git submodule update -i
> 
> I think this specific case can be easily solved by the LDC developers by
> providing proper tarballs with the *complete* source code to build LDC.

Asking upstream developers may or may not solve it, depending on
whether they honour our ideas. But there are more cases, e.g.,
freebayes, sambamba and the list goes on of packages that use git
recursive modules as part of their build instructions.

Either we fix git recurse submodules - and I think there is no reason
we should not - or we allow importing multiple sources before the
build phase.

My question is how to do this last one in the best way because I don't
see any precedents in the gnu/package sources.

I would like to hear the thoughts of the Guix architects. What would
be the preferred policy:

1. Write a source package for phobos and make it available in the build phase of
   the other package ldc
2. Fix git recursive downloads
3. Allow multiple source downloads in one package

Pj.
-- 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Circular dependency with LDC and Phobos
  2015-12-25 18:19   ` Pjotr Prins
@ 2015-12-25 21:18     ` Ricardo Wurmus
  2015-12-26  5:04       ` Pjotr Prins
  0 siblings, 1 reply; 5+ messages in thread
From: Ricardo Wurmus @ 2015-12-25 21:18 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel


Pjotr Prins <pjotr.public12@thebird.nl> writes:

> My question is how to do this last one in the best way because I don't
> see any precedents in the gnu/package sources.

> 1. Write a source package for phobos and make it available in the build phase of
>    the other package ldc
> 2. Fix git recursive downloads
> 3. Allow multiple source downloads in one package

Take a look at the “icedtea7” package in “java.scm”.  There we download
a bunch of additional sources.  They are simply added to the inputs.

~~ Ricardo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Circular dependency with LDC and Phobos
  2015-12-25 21:18     ` Ricardo Wurmus
@ 2015-12-26  5:04       ` Pjotr Prins
  0 siblings, 0 replies; 5+ messages in thread
From: Pjotr Prins @ 2015-12-26  5:04 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

On Fri, Dec 25, 2015 at 10:18:37PM +0100, Ricardo Wurmus wrote:
> 
> Pjotr Prins <pjotr.public12@thebird.nl> writes:
> 
> > My question is how to do this last one in the best way because I don't
> > see any precedents in the gnu/package sources.
> 
> > 1. Write a source package for phobos and make it available in the build phase of
> >    the other package ldc
> > 2. Fix git recursive downloads
> > 3. Allow multiple source downloads in one package
> 
> Take a look at the “icedtea7” package in “java.scm”.  There we download
> a bunch of additional sources.  They are simply added to the inputs.
> 
> ~~ Ricardo

Thanks Ricardo. That is an interesting package! Talking about
complicated deployment...

Pj.
-- 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-12-26  5:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-25 16:51 Circular dependency with LDC and Phobos Pjotr Prins
2015-12-25 17:06 ` Roel Janssen
2015-12-25 18:19   ` Pjotr Prins
2015-12-25 21:18     ` Ricardo Wurmus
2015-12-26  5:04       ` Pjotr Prins

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).