Dne pondělí 14. ledna 2019 13:17:53 CET, Christian Goll napsal(a):
On Sat, 2019-01-12 at 18:43 +0100, Vojtěch Zeisek wrote:
Dne pátek 4. ledna 2019 13:55:56 CET jste napsal(a):
Vojtěch Zeisek writes: The short answer would be: if all you need to do is just 'configure; make; make install' it is problably not too difficult. The more in-depth answer would be: it depends - there are quite a few guidelines about the installation to be followed and make to sure that 'rpmlint' is reasonably happy, thus files may have to be moved around after a 'make install' - at least if you plan to bring the package into oS:Factory later. Generally, when you pick up an existing package most of the things have been done already - often it just to update the source tarball or fix a build. On most of the guidelines there is pretty good documentation around - like: https://en.opensuse.org/openSUSE:Package_maintainership_guide https://en.opensuse.org/openSUSE:Specfile_guidelines https://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros The simplest way to get started is to start with an existing package or use a similar type of package as a guide and only worry about the documentation if there are issues. Of course, you can always ask here (there are other MLs for packaging questions, but they have a lot more traffic).
Hi, thank You for the introduction. I forked UGENE to https://build.opensuse.org/package/show/home: vojtaeus/UGENE but it seems to be too complicated building for newbie. So I tried with https://github.com/stamatak/standard-RAxML in https://github.com/stamatak/standard-RAxML which has really trivial compilation. But the problem is this software (and many others I use) doesn't define 'make install' (very often it is enough to run just 'make' and then copy manually binary to ~/bin/). So my question is what what to write to %install section of the specfile. I "just" need to copy raxmlHPC* to /usr/bin/ or so. As documentation of this popular tool is, ehm, very brief, I have honestly no idea what is the license of it, if I need gcc or gcc-c++ and what I need to compile pthreads and mpi versions... Vojtěch
Hello, Christian.
Hello Vojtěch, as I contributed some optimization to RAxML when I worked at the institute where it was developed I know the build system quite well.
Cool :)
The main problem for packaging this software is that it relies quite heavy on the vector registers of the used CPUs and the optimization for it. So we would have binaries which would not run on all x86 systems, which may be problematic for the packaging policy.
I thought this should be solved by having multiple RAxML binaries, e.g. SSE3, AVX and AVX2 version. User then runs version according to his CPU. Or are You saying that two CPUs supporting e.g. AVX have so different implementation, that the software wouldn't run? It has multiple Makefiles, so I thought this shouldn't be problem. Of course, it's not elegant, but one could make (and add to the package) simple script checking user's CPU and selecting respective binary. I do it when running RAxML on https://www.metacentrum.cz/en/ Something like # Determine which CPU is available and which binary use then if grep -iq avx2 /proc/cpuinfo; then # Does the CPU support AVX2? RAXML='raxmlHPC-AVX2' # Select appropriate binary elif grep -iq avx /proc/cpuinfo; then # Does the CPU support AVX? RAXML='raxmlHPC-AVX' # Select appropriate binary elif grep -iq sse3 /proc/cpuinfo; then # Does the CPU support SSE3? RAXML='raxmlHPC-SSE3' # Select appropriate binary else # The very last option RAXML='raxmlHPC' # Slowest oldest CPU... fi # End of branching $RAXML -s $INPUT # All the parameters as usually...
A solution would be the HPC modularized version using multibuild. I can look into this when I have some more time.
Could You point me to some documentation or so? Do You thing the "my way" isn't correct?
One questions sill arises, as RAxML itself is deprecated. Do you have plans to use ExaML?
One day yes. I tried with RAxML at it has no dependencies and extremely fast compilation. In OBS I "just" struggle with %install section here. This can be more general point, as many software I use just produces one binary after 'make' and that's all.
kind regards, Christian
Sincerely, Vojtěch -- Vojtěch Zeisek Komunita openSUSE GNU/Linuxu Community of the openSUSE GNU/Linux https://www.opensuse.org/ https://trapa.cz/