Mailinglist Archive: opensuse-packaging (104 mails)

< Previous Next >
Re: [opensuse-packaging] Splitting up binary packages for large SDKs
Hi,

On Tue, 7 Aug 2018, John Paul Adrian Glaubitz wrote:

Since I haven't built any larger packages for openSUSE before, in
particular not any SDKs or library packages which include development
files such static libraries, cmake files and header files, I'm wondering
whether anyone can give me a heads-up what the common policy is.

In Debian, we usually put all shared library files into a lib$NAME$SOVER
package where $NAME is the library name and $SOVER it's SO version.
Development files such as headers, cmake files and static library
archives go into a lib$NAME-dev package. What's the policy for openSUSE?

Specifically for shared libraries:
https://en.opensuse.org/openSUSE:Shared_library_packaging_policy
which also talks about -devel packages. Of relevance:
* There is no reason why a -devel package cannot provide development
files for multiple shared library packages.
Also the -devel package doesn't have to (but can) be named lib$NAME-devel.
It might make sense to call it aws-devel, or even package the devel files
(headers, .so links and such) into the main package (if that exists).

If the SDK supports the option of disabling static libraries do that. If
not, package the static libs separately (into xxx-devel-static for
instance), if the SDK then at least has the option of not using static
libs.

So, for something like that SDK (without knowing its details) I'd expect
these binary rpms:

- libfoo1
- libfoo2
- libfoo3 (and so on for all individual shared libs in {,/usr}/lib{,64})
- awk-sdk-cpp-devel-static (if really needed and indeed optional)
- aws-sdk-cpp-devel (if not folded into aws-sdk-cpp)
- aws-sdk-cpp (the rest)

See exceptions 4a/4b in the above policy for when also the -devel packages
need to be versioned (I'd hope it's not supported to install multiple
AWK-SDK version onto the same system).

Also, while the package built fine on my AMD EPYC machine (except for
the failing installation process due to the missing %files statements),
on OBS the package occasionally fails with out-of-memory errors or even
the compiler segfaulting.

Compiler segfaulting is no resource problem, but either a compiler bug, or
a flaky machine (usually when the compiler segfault can't be reproduced).

Is there any chance to schedule large packages onto beefier build
instances?

You want build constraints:
https://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_job_constraints.html

See e.g.
% osc cat devel:gcc/gcc8/_constraints

Careful with specifying too strong constraints, not all architectures
provide build hosts with much RAM, if you're using too large numbers your
package won't ever be scheduled for building. For curren resource usage
of build e.g.:
% osc api /build/openSUSE:Factory/standard/x86_64/gcc8/_statistics


Ciao,
Michael.
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-packaging+owner@xxxxxxxxxxxx

< Previous Next >