unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* License Problem and Other Questions defining new package Geant4 from CERN for Partical Physcis Simulation
@ 2021-02-18  7:04 Sebastian
  2021-02-18 12:18 ` Leo Prikler
  2021-02-25 18:37 ` zimoun
  0 siblings, 2 replies; 3+ messages in thread
From: Sebastian @ 2021-02-18  7:04 UTC (permalink / raw)
  To: guix-devel

Dear developers at Guix,

I am a physics student willing to use  the Geant4 simulation toolkit from the European Organization for Nuclear Research (CERN). 
https://geant4.web.cern.ch/
The Geant4 code is distributied under its own licence, Geant4 Software License Version 1.0. 
https://geant4.web.cern.ch/license/LICENSE.html
Let's call this license G4SL1.0. After some searching, finding it is NOT listed by FSF or GNU in their license list.
https://www.gnu.org/licenses/license-list.html
But from a personal perspective, G4SL1.0 do seems like a free software license.
So, may it be included into the Guix proper (gnu packages)?

I am currently testing the package under a custom channel,using cmake-build-system.
https://git.nju.edu.cn/nju/chngix/-/blob/master/gix/packages/geant4.scm

Here is another problem:
during configuring command "cmake" on a non-Guix system, 
-- Geant4 has been pre-configured to look for datasets in the directory:
-- /usr/local/share/Geant4-10.7.1/data
the user needs to download datasets and unpack them under that directory.
https://geant4.web.cern.ch/support/download
Or, set flag -DGEANT4_INSTALL_DATA=ON to automatically download the datasets during building.
On Guix however,
-- Geant4 has been pre-configured to look for datasets in the directory:
-- /gnu/store/byprhqa1qq6s0ksgdpjgwv58ak25kprd-geant4-10.07.p01/share/Geant4-10.7.1/data
the building process is sandboxed, and does not allow download during building that causing non-repuduciable build result.
Cmake flag  GEANT4_INSTALL_DATADIR defaults to "share", a path relative to CMAKE_INSTALL_PREFIX,
and it can be set to define the directory storing datasets other than ....../share, but datastes should always be under "GEANT4_INSTALL_DATADIR/Geant4-10.7.1/data".
https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/installguide.html#geant4buildoptions
But the (source origin) denotes "a file" only,
https://guix.gnu.org/manual/en/html_node/package-Reference.html
is it possible to define a package fetching multiple files and extracts them into the desired directory, using the Guix package definition?

I am not familiar with trivial-build-system. 
The build and install of the geant4 without datasets using cmake-build-system seems to be successful. 
Your help would be much appreciated.

With best regards,
Sebastian

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

* Re: License Problem and Other Questions defining new package Geant4 from CERN for Partical Physcis Simulation
  2021-02-18  7:04 License Problem and Other Questions defining new package Geant4 from CERN for Partical Physcis Simulation Sebastian
@ 2021-02-18 12:18 ` Leo Prikler
  2021-02-25 18:37 ` zimoun
  1 sibling, 0 replies; 3+ messages in thread
From: Leo Prikler @ 2021-02-18 12:18 UTC (permalink / raw)
  To: Sebastian, guix-devel

Hello Sebastian,
Am Donnerstag, den 18.02.2021, 15:04 +0800 schrieb Sebastian:
> Dear developers at Guix,
> 
> I am a physics student willing to use  the Geant4 simulation toolkit
> from the European Organization for Nuclear Research (CERN). 
> https://geant4.web.cern.ch/
> The Geant4 code is distributied under its own licence, Geant4
> Software License Version 1.0. 
> https://geant4.web.cern.ch/license/LICENSE.html
> Let's call this license G4SL1.0. After some searching, finding it is
> NOT listed by FSF or GNU in their license list.
> https://www.gnu.org/licenses/license-list.html
> But from a personal perspective, G4SL1.0 do seems like a free
> software license.
> So, may it be included into the Guix proper (gnu packages)?
You should drop a mail to licensing@fsf.org.  On a quick glance, it
appears as though the Geant4 devs had a look at the original BSD
license and thought to themselves "I want that, but harder".

> I am currently testing the package under a custom channel,using
> cmake-build-system.
> https://git.nju.edu.cn/nju/chngix/-/blob/master/gix/packages/geant4.scm
> 
> Here is another problem:
> during configuring command "cmake" on a non-Guix system, 
> -- Geant4 has been pre-configured to look for datasets in the
> directory:
> -- /usr/local/share/Geant4-10.7.1/data
> the user needs to download datasets and unpack them under that
> directory.
> https://geant4.web.cern.ch/support/download
> Or, set flag -DGEANT4_INSTALL_DATA=ON to automatically download the
> datasets during building.
> On Guix however,
> -- Geant4 has been pre-configured to look for datasets in the
> directory:
> -- /gnu/store/byprhqa1qq6s0ksgdpjgwv58ak25kprd-geant4-
> 10.07.p01/share/Geant4-10.7.1/data
> the building process is sandboxed, and does not allow download during
> building that causing non-repuduciable build result.
> Cmake flag  GEANT4_INSTALL_DATADIR defaults to "share", a path
> relative to CMAKE_INSTALL_PREFIX,
> and it can be set to define the directory storing datasets other than
> ....../share, but datastes should always be under
> "GEANT4_INSTALL_DATADIR/Geant4-10.7.1/data".
> https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/installguide.html#geant4buildoptions
> But the (source origin) denotes "a file" only,
> https://guix.gnu.org/manual/en/html_node/package-Reference.html
> is it possible to define a package fetching multiple files and
> extracts them into the desired directory, using the Guix package
> definition?
The "proper" way of fixing this would be to patch Geant, so that it
takes data from a configurable directory or path (e.g.
GEANT4_DATA_PATH), so that this can be set through a native-search
path, or alternatively honor XDG_DATA_DIRS, depending on what makes
more sense.

However, if fixing the narrower problem of lacking some important files
is all, that is needed, you can specify an origin to the data as an
input.  Assuming that you add ("geant-data" ,(origin ...)) to your
inputs, you then simply need to add a phase, which recursively copies
(assoc-ref inputs "geant-data") to wherever you need it.  

Note, that either way you should probably make it so that you're not
relying on such a specific version in your install paths.

> I am not familiar with trivial-build-system. 
> The build and install of the geant4 without datasets using cmake-
> build-system seems to be successful. 
> Your help would be much appreciated.
This should be doable with cmake-build-system.  Alternatively, if you
want the data as an extra package, you can use copy-build-system for
it.

Regards,
Leo



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

* Re: License Problem and Other Questions defining new package Geant4 from CERN for Partical Physcis Simulation
  2021-02-18  7:04 License Problem and Other Questions defining new package Geant4 from CERN for Partical Physcis Simulation Sebastian
  2021-02-18 12:18 ` Leo Prikler
@ 2021-02-25 18:37 ` zimoun
  1 sibling, 0 replies; 3+ messages in thread
From: zimoun @ 2021-02-25 18:37 UTC (permalink / raw)
  To: Sebastian; +Cc: Guix Devel

Hi Sebastian,


On Thu, 18 Feb 2021 at 10:30, Sebastian <njuemail@126.com> wrote:
>
> Dear developers at Guix,
>
> I am a physics student willing to use  the Geant4 simulation toolkit from the European Organization for Nuclear Research (CERN).
> https://geant4.web.cern.ch/
> The Geant4 code is distributied under its own licence, Geant4 Software License Version 1.0.
> https://geant4.web.cern.ch/license/LICENSE.html
> Let's call this license G4SL1.0. After some searching, finding it is NOT listed by FSF or GNU in their license list.
> https://www.gnu.org/licenses/license-list.html
> But from a personal perspective, G4SL1.0 do seems like a free software license.
> So, may it be included into the Guix proper (gnu packages)?

Even if it cannot be included in Guix proper because of license, it
could be included in specific Scientific channels,

   <https://hpc.guix.info/about/>

examples:
https://github.com/guix-science/guix-science
https://gitlab.inria.fr/guix-hpc/guix-hpc
https://github.com/BIMSBbioinfo/guix-bimsb
https://github.com/UMCUGenetics/guix-additions
etc.


> I am currently testing the package under a custom channel,using cmake-build-system.
> https://git.nju.edu.cn/nju/chngix/-/blob/master/gix/packages/geant4.scm

Are substitutes available for this channel?


> is it possible to define a package fetching multiple files and extracts them into the desired directory, using the Guix package definition?

You mean fetch from multiple URLs, right?  If yes, AFAIK, it is not
possible but there are workarounds.  For example, you can define the
package A for the data and another one B for the code where A is an
input of B.  Or you can define an origin directly in the inputs; see
r-shinytree as an example:

--8<---------------cut here---------------start------------->8---
    (native-inputs
     `(("uglify-js" ,uglify-js)
       ("js-jquery"
        ,(origin
           (method url-fetch)
           (uri "https://code.jquery.com/jquery-3.3.1.js")
           (sha256
            (base32
             "1b8zxrp6xwzpw25apn8j4qws0f6sr7qr7h2va5h1mjyfqvn29anq"))))))
--8<---------------cut here---------------end--------------->8---


All the best,
simon


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

end of thread, other threads:[~2021-02-25 18:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-18  7:04 License Problem and Other Questions defining new package Geant4 from CERN for Partical Physcis Simulation Sebastian
2021-02-18 12:18 ` Leo Prikler
2021-02-25 18:37 ` zimoun

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).