Build dependency on proprietary rpm

If I want to create a package that has a build dependency on a proprietary rpm file, how do I handle this in OBS? I made a workaround to repackage all files from the proprietary rpm (tared it, created a spec file and uploaded it into OBS) so that OBS was able to properly build my package.
But this is not the way to go - how is it done properly?

You build this RPM in your project; then it will be used for building other RPMs as well (as long as you name it in BuildRequires of course).

Are you sure the proprietary software license allows redistribution (if you are using the public OBS, not a private instance)?

They’re pretty strict about not distributing any proprietary/binary blobs in OBS.

I am using a private instance and have people for dealing with licensing stuff ^^

But how do I “build the rpm in my project”? I have no sources, only their rpm file containing the shared libs and includes that my package depends on. Simply adding the rpm to the package does not help and adding the rpm to a new package having the same name does not work either.

On Thu 07 Sep 2017 08:16:01 AM CDT, dsamx wrote:

I am using a private instance and have people for dealing with licensing
stuff ^^

But how do I “build the rpm in my project”? I have no sources, only
their rpm file containing the shared libs and includes that my package
depends on. Simply adding the rpm to the package does not help and
adding the rpm to a new package having the same name does not work
either.

Hi
Just extract the rpm and add the shared libs (.so) and includes into a
package called blah-devel then use these for the build.


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE Leap 42.2|GNOME 3.20.2|4.4.79-18.26-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

blah-devel, LMFO

I used this workaround already but it has two issues:

  • I have to recreate a package which costs time and introduces errors
  • The build service creates a repo of all built rpms and includes my package instead of the original one which I would not like to deliver

On Fri 08 Sep 2017 07:36:01 AM CDT, dsamx wrote:

I used this workaround already but it has two issues:

  • I have to recreate a package which costs time and introduces errors
  • The build service creates a repo of all built rpms and includes my
    package instead of the original one which I would not like to deliver

Hi
Set that package to not publish.


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE Leap 42.2|GNOME 3.20.2|4.4.79-18.26-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

that prevents my own package to be delivered, but I’d like to use and publish the original package directly. Can this be achieved with obs? As in creating a new package that contains the rpm file already and does not require a build process.

An alternative would probably be to add the rpms to the repository containing the rpms for the build environment and manually use repomd to create an additional repo containing all 3rd party rpms. But including the 3rd party stuff directly into one single repo created by obs would be much nicer.

Hi
No, you would need to extract the third party rpm and create a new package/spec file etc, then build that so it just installs all the files.

But at this point you could then split out and create a development package as well as a main package.

I found out, how to do it! Here is an example: https://build.opensuse.org/package/show/home:matthewdva:build:RedHat:RHEL-7/libXpm-TO-libXt-devel
Upload the original rpm and create a spec file that installs the rpm into the %{_rpmdir}, then it is added to the repository. Awesome :slight_smile:

The package builder seemed to have used a program called “import-rpms 1.0.0” but google did not find any usable results. Anyone knows about this?