Mailinglist Archive: opensuse-packaging (114 mails)

< Previous Next >
Re: [opensuse-packaging] EXE-File of mono application is not included in OBS generated package

Am 12.12.2013 21:50, schrieb Greg Freemyer:
On Thu, Dec 12, 2013 at 3:08 PM, Dirk Brünig <dirk@xxxxxxxxxx> wrote:

I try to packaging the mono application Tracer2Server for openSUSE.
But I still have some issues I don't understand.

1. EXE-File of mono application is not included
The generation of i586 package ends with succeeded. But in the RPM file the
tracer2server.exe is not included. I don't know way this happens. Because
the compilation succeeded (13 warnings).

To be included the binary has to be both built and installed. You say
the compile worked, so the install must not have.

Your specfile has:


#install -m 755 -d $RPM_BUILD_ROOT/%{_sbindir}
#ln -s ../bin/trace2server $RPM_BUILD_ROOT/%{_sbindir}

I found this in a spec file some were else.

It looks you (or someone) tried to explicitly install trace2server,
but then changed their mind. That effort may have failed because "ln
-s" makes a symbolic link which is not what you want in this case.
You want the file to be copied. The typical explicit tool for that
would be "install" without the -d argument on the second call.

This isn't working.
install: missing destination file operand after '/home/abuild/rpmbuild/BUILDROOT/tracer2server-1.2-85.1.i386/usr/sbin'

Anyway, either "make install" has to but the binary in the final
install location (eg. $RPM_BUILD_ROOT/%{_sbindir}) or you have to do
it by calling "install" explicitly.

Can you give me a more detailed description how this can be done via install. Because the make file is generated by MonoDevelop. And I don't fond a switch to turn it on.

2. Package generation for x86_64 failed
While the generation for i586 succeeded. The generation for x86_64 failed.
So where are the difference between these too.

64 bit and 32 bit libraries end up in different directories. Thus
%{_libdir} is different based on architecture. I'm guessing that is
causing your explicit references to /usr/lib to fail. /usr/lib is the
directory for 32-bit libraries thus only 32-bit builds are putting
anything there.

%dir /usr/lib/tracer2server

The reality is none of those 3 files should be in %{_libdir} (eg.
/usr/lib*) anyway. They belong in the documentation support
directory. Assuming all 3 of those files are in the root of your
tarball you should replace those 4 lines with this I think:

%doc GPL-v2.0.txt GPL-v3.0.txt README
%exclude %{_libdir}/tracer2server

This done it.

The first line will copy the doc files to the right final location and
cause them to be included in the RPM. The last line I think will keep
the wrongly installed files from being included.

Once the RPM builds and you do a test install, you should find the 3
doc files in /usr/share/doc/packages/tracer2server/*

I've never known "make install" to put anything in that directory, so
if you happen to be the maintainer of the makefile, just quit doing
anything with those 3 files. Leave it to the %doc macro to do the
magic for you.

I am a newbie in Linux, so please help me to get this working.

Welcome to the community.


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

< Previous Next >