← Back to team overview

yade-dev team mailing list archive

Re: Packages for Gentoo Linux

 

Hi Janek


Janek Kozicki wrote:
> Tiziano Müller said:     (by the date of Sun, 30 Jul 2006 01:04:28 +0200)
>
>   
>> Hi
>>
>> I'm trying to make packages for Gentoo Linux. While trying this, I
>> encountered some problems with the current build-system and I would like
>> to make some suggestions. I already reported a bug in the
>> berlios-bugtracker about that.
>>     
>
> Wow! Hello, I'm very happy about your input.
>
> Current build system is flawed, I'm aware of that. First of all those
> INSTALL_DIR and PREFIX_DIR in fact still do not work in the same way as
> they work in numerous other packages. In fact I'm still learning how to
> do that :) Czesiu helped me with that a bit, but it is still not done...
>
> In fact, if you are working on a gentoo package I would be vary happy,
> to make it a bit more official and put your name in 'Authors - Package
> Maintainers' section on the webpage. And give you acces to subversion
> repository, so that all your valuable work will not be lost. There is
> already a directory for that: yade/trunk/packaging/gentoo
>
> Even if you don't want to get involved too much in yade (eg. you are
> afraid of having subversion access) - you can send us what you have done
> to make gentoo package and I will put it in that directory in the
> repository, so then, someone else will be able to start from your work.
>   
I'm sure not afraid of having subversion access, but I don't think I
need it right now. Gentoo Packages ideally consist of only one file
(called "ebuild") plus additional patches if needed. And I'm looking
forward to include the ebuilds in the Gentoo Sunrise Project.
>  
>   
>> a) Instead of a handwritten Makefile in the top-folder of each
>> package/lib/whatever, you can just put a .pro-file with the following
>> content:
>>
>> TEMPLATE=subdirs
>> SUBDIRS=src/yade-lib-wm3-math
>> CONFIG  += release thread warn_on
>>     
>
>
> Looks reasonable. I can't remember now why I haven't done it like that.
> I think it was at the time when we were splitting yade into separate
> packages, and wasn't sure how to perform that split effectively.
>
>
>   
>> b) Instead of using the YADE_QMAKE_PATH, you can use a variable PREFIX
>> as follows (in src/yade-lib-wm3-math/yade-lib-wm3-math.pro):
>>
>> isEmpty ( PREFIX ) {
>>         PREFIX = /usr/local
>> }
>>     
>
> yes, thanks! I'm still learning qmake :)
>
>   
>> c) ... and together with the following, you get the "install"-target in
>> the makefile (in src/yade-lib-wm3-math/yade-lib-wm3-math.pro),
>> which can again be controlled by passing INSTALL_ROOT to make.
>>
>> INCLUDEPATH += $${PREFIX}/include
>> LIBS += -L$${PREFIX}/lib/yade
>>
>> target.path += $${PREFIX}/lib/yade
>> headers.path += $${PREFIX}/include/yade/yade-lib-wm3-math
>> headers.files = $${HEADERS}
>> INSTALLS += target headers
>>     
>
> indeed I haven't thought about that.
>   
Well, took me some time to figure it out too :-)
>  
>   
>> d) ... and to pass additional INCLUDES and/or LIBS variables to ALL
>> .pro-files, you can create a ".qmake.cache" file in the top-folder of
>> each project or the AllInOne-package with the needed variables, which
>> will be passed by qmake to all subdirs.
>>     
>
> about this one I'm not sure. those packages are also supposed to be
> compilable separately. Will this work then? Also - the number of
>   
Yes, I think so. I made Gentoo packages for the "splitted" packages and
it seems to work.
If somebody wants the AllInOne-Package, the following has to be in
.cmake.cache:
LIBS+= -Lyade-lib/yade-lib-wm3-math/bin -Lyade-lib/yade-lib-algorithms ...
INCLUDES+=-Iyade-lib/yade-lib-wm3-math/src/yade-lib-wm3-math -I...
And then you should be able to build everything before installing.
> packages will drastically decrease for next release. I have already laid
> out plans for that:
>
> yade-lib-loki 	                       - delete and use boost::fusion, boost::function
> yade-lib-wm3-math                      - delete and use math from libOpenSceneGraph (GPL license)
> yade-lib-algorithms                    - merge with computational-geometry
> yade-lib-factory                       + simplify, only DynLib interface remains.
> yade-lib-multimethods                  + rewrite with boost::fusion
> yade-lib-serialization     \           + rewrite, remove singleton.
> yade-lib-serialization-xml  |          + SaxParser should use boost::spirit for XML
> yade-lib-serialization-bin   > merge!  + add binary stream compression
> yade-lib-serialization-txt  |          + write
> yade-lib-serialization-qt  /           + add containers and pointers support
> yade-lib-threads                       - already removed ;)
> yade-lib-computational-geometry	       + add sphere volume, cylinder, etc..., later swith to boost::geometry once it is written.
> yade-lib-time 	                       - delete, and use boost::timer
> yade-lib-opengl                        + add TinyGLViewer. change lib name, remove FPSTracker and OpenGLWindowManager
> yade-lib-qhull                         - delete
> yade-lib-swiftpp                       - delete
>
> If all those changes will be succesfull, yade will have just 5
> libraries. And I really hope that they will be reusable by other
> unrelated projects.
>   
That's good news!
> If you will decide to have access to subversion and put your gentoo
> stuff there, then maybe also you will want to experiment with the
> current build system :) This week I have a deadline to write an article
> to journal about lattice model, so I will be able to use your
> suggestions next week (or a bit later..). So you try try earlier if you
> want to ;)
>
> There is no way that you could break something - we have subversion
> history and can revert back to any point in the past :)
>
>   
I would be interested to help since I'm studying Physics which is
somehow related :-)

Greets,
Tiziano





References