On Thu, Dec 12, 2013 at 3:08 PM, Dirk Brünig
Hello
I try to packaging the mono application Tracer2Server for openSUSE. https://build.opensuse.org/package/show/home:dBruenig:Tracer2Server/Tracer2S... 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 rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT #install -m 755 -d $RPM_BUILD_ROOT/%{_sbindir} #ln -s ../bin/trace2server $RPM_BUILD_ROOT/%{_sbindir} ===================================================== 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. 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.
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 /usr/lib/tracer2server/GPL-v2.0.txt /usr/lib/tracer2server/GPL-v3.0.txt /usr/lib/tracer2server/README === 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 === 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. Greg -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org