Mailinglist Archive: opensuse-packaging (114 mails)

< Previous Next >
Re: [opensuse-packaging] EXE-File of mono application is not included in OBS generated package
  • From: Greg Freemyer <greg.freemyer@xxxxxxxxx>
  • Date: Sat, 14 Dec 2013 15:11:57 -0500
  • Message-id: <CAGpXXZJV-b-SVQTxUpBL0w7tW9afxvR9OQ8aDSUHr8NT=BbYEw@mail.gmail.com>
On Sat, Dec 14, 2013 at 5:06 AM, Dirk Brünig <dirk@xxxxxxxxxx> wrote:


Am 12.12.2013 21:50, schrieb Greg Freemyer:

On Thu, Dec 12, 2013 at 3:08 PM, Dirk Brünig <dirk@xxxxxxxxxx> wrote:

Hello

I try to packaging the mono application Tracer2Server for openSUSE.

https://build.opensuse.org/package/show/home:dBruenig:Tracer2Server/Tracer2Server
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}
=====================================================


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.

If you're going to package RPMs for openSUSE (or any linux) you will
need to learn to read a man page (eg. man install)

In this case this might work for you:

#create the /usr/sbin directory
install -m 755 -d $RPM_BUILD_ROOT/%{_sbindir}
# put trace2server in /usr/sbin
install -m 744 ../bin/trace2server $RPM_BUILD_ROOT/%{_sbindir}

I picked 744 because 7 means read/write/execute for "root". The 4's
mean read only for group and all. If this is going into /usr/sbin,
then I assume it should be executable by root only. If it is should
be executable by all, then it should go into %{_bindir} and have
permissions 755.

Also, I'm just assuming that ../bin/trace2server is the right place to
find the pre-installed copy.

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

< Previous Next >
Follow Ups