On Monday, June 16, 2014 8:44:43 AM UTC-4, Volker Braun wrote:
>
> Some questions from playing around with hashdist a bit:
>
> * How do I build packages in parallel?
> * I can't build Python on Fedora 20? What are the actual hashdist 
> dependencies?
>  
> On Monday, June 16, 2014 5:53:36 AM UTC+1, Chris Kees wrote:
>>
>> * Modular, allowing for easy experimentation with per-package backends
>>>
>> not sure I understand this point
>>
>
> By which I mean: You don't have to drink the cool-aid all the way if you 
> don't want to.. Packages can define alternative builders, (a Python class 
> named by the builder.type key) that handles the package. For example there 
> is a:
>
> --------------------------
> name:
>     sage_c_library
>
> category:
>     standard
>
> source:
>     - src/c_lib
>         
> builder:
>     type:     ShellCommands
>     workdir:    src/c_lib
>     commands:  
>         - source ../bin/sage-env && scons -Q install
>
> depends:
>     compile:
>         - scons
>     hard:
>         - mpir
>         - ntl
>         - pari
>         - python
> --------------------------
>


Hi Volker,

Chris pointed me at this thread.  Thanks for taking a look at hashdist.  In 
response to your questions:

* How do I build packages in parallel?

This isn't currently enabled, but it would not be hard to make an option. 
 Right now we build up a list of packages that we would like to install, 
then execute parallel installation on each package.  Since the dependency 
graphs tend to be fairly narrow for many of our longest environment builds, 
I suspect it's actually faster to do it this way (but have not measured).  

* I can't build Python on Fedora 20? What are the actual hashdist 
dependencies?

 What profile are you using and what error are you getting?  The example 
Python profile we use assumes a few things may already be on the host 
system to simplify builds (and also verifies that a few of Python's 
optional components are installed).  This is admittedly not great practice, 
and in the future, we'll explicitly enumerate the Python package 
dependencies we assume may be on the host.  One thing I *don't* like doing 
is building my own openssl in hashdist, since crypto software should really 
be handled by the operating system, not an overlay package manager.  

I am assuming you don't have sqlite or bzip2 installed on your core Fedora 
20 system.  Try this install profile:

  python:
    host: false
    build_with: |
      bzip2, sqlite

Regarding modular packages, hashdist defines the concept of a profile 
(think of it like a pip requirements.txt) as well as a package (which 
describes how to build a given package).  Profiles can define parameters, 
which then modify how a package is built.  Profiles can also specify 
alternative package providers, such as a BLAS from the system or built by 
the hoser.

Happy to answer more questions on this mailing list if I'm not derailing 
your RFC.  From your initial proposal, it does look like you're interested 
in many of the same features.

-A

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to