Re: [opensuse-science] Non-building packages in Science and Education to be removed
Hi Vojtěch, Vojtěch Zeisek writes:
Well, my packaging experience is zero. My Linux experience is considerable, but I'm not programmer. As a biologist, I'd like to see some packages included. From the original list namely ugene. And some more, of course. I wonder if I'd be able (by means of skills and time/effort required) to package software I need for my work (some is not very well written). Well, now I just compile what I need. So... If we consider software with simple (or no) dependences, I use to follow steps in README - (./congifue), make, (make install); is packaging in OBS significantly more difficult...?
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). Cheers, Egbert. -- Egbert Eich (Res. & Dev.) SUSE LINUX GmbH SUSE Labs - Project Manager HPC Tel: +49 911-740 53 0 http://www.suse.com ----------------------------------------------------------------- SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) Maxfeldstraße 5, D90409 Nürnberg, Germany-- To unsubscribe, e-mail: opensuse-science+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-science+owner@opensuse.org
Dne pátek 4. ledna 2019 13:55:56 CET jste napsal(a):
Hi Vojtěch,
Vojtěch Zeisek writes:
Well, my packaging experience is zero. My Linux experience is considerable, but I'm not programmer. As a biologist, I'd like to see some packages included. From the original list namely ugene. And some more, of course. I wonder if I'd be able (by means of skills and time/effort required) to package software I need for my work (some is not very well written). Well, now I just compile what I need. So... If we consider software with simple (or no) dependences, I use to follow steps in README - (./congifue), make, (make install); is packaging in OBS significantly more difficult...?
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 -- Vojtěch Zeisek Komunita openSUSE GNU/Linuxu Community of the openSUSE GNU/Linux https://www.opensuse.org/ https://trapa.cz/
Dne sobota 12. ledna 2019 18:43:05 CET jste napsal(a):
Dne pátek 4. ledna 2019 13:55:56 CET jste napsal(a):
Hi Vojtěch,
Vojtěch Zeisek writes:
Well, my packaging experience is zero. My Linux experience is considerable, but I'm not programmer. As a biologist, I'd like to see some packages included. From the original list namely ugene. And some more, of course. I wonder if I'd be able (by means of skills and time/effort required) to package software I need for my work (some is not very well written). Well, now I just compile what I need. So... If we consider software with simple (or no) dependences, I use to follow steps in README - (./congifue), make, (make install); is packaging in OBS significantly more difficult...?
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
Well, I made some advances with UGENE, but building keeps falling. :-) As my experience with compiling Qt applications is exactly zero, I'm afraid my knowledge here is exhausted. TW https://build.opensuse.org/package/live_build_log/home:vojtaeus/UGENE/ openSUSE_Tumbleweed/x86_64 seems to me like some syntax in Trimmomatic (in UGENE as 3rd party plugin, otherwise written in Java, I normally use it standalone, but pre-combiled JAR) which is not supported in current Qt (instructions to compile UGENE speaks about Qt < 5.6, which seems to be unrealistic in TW); while Leap 15.0 https://build.opensuse.org/package/ live_build_log/home:vojtaeus/UGENE/openSUSE_Leap_15.0/x86_64 and 42.3 https:// build.opensuse.org/package/live_build_log/home:vojtaeus/UGENE/ openSUSE_Leap_42.3/x86_64 I don't understand very well, but it seems to me like some problem with the install section. I'm sorry to bother here, I'd like to contribute by some packages, I hope I'll learn it at some point of time. ;-) Sincerely, Vojtěch -- Vojtěch Zeisek Komunita openSUSE GNU/Linuxu Community of the openSUSE GNU/Linux https://www.opensuse.org/ https://trapa.cz/
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):
Hi Vojtěch,
Well, my packaging experience is zero. My Linux experience is considerable, but I'm not programmer. As a biologist, I'd like to see some
Vojtěch Zeisek writes: packages
included. From the original list namely ugene. And some more, of course. I wonder if I'd be able (by means of skills and time/effort required) to package software I need for my work (some is not very well written). Well, now I just compile what I need. So... If we consider software with simple (or no) dependences, I use to follow steps in README - (./congifue), make, (make install); is packaging in OBS significantly more difficult...?
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:vojtae us/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 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. 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. A solution would be the HPC modularized version using multibuild. I can look into this when I have some more time. One questions sill arises, as RAxML itself is deprecated. Do you have plans to use ExaML? kind regards, Christian -- Christian Goll CGoll@suse.de SUSE Linux GmbH GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg)
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/
participants (3)
-
Christian Goll
-
Egbert Eich
-
Vojtěch Zeisek