Spec URL: http://people.redhat.com/johnp/files/dbus/dbus-sharp.spec SRPM URL: http://people.redhat.com/johnp/files/dbus/dbus-sharp-0.63-1.src.rpm Description: Mono bindings for dbus. The Source is not a full URL because the mono bindings are unmaintained and I just made a quick build enviornment in the git repo. Unfortunatly if we ship mono we need to include this or all the interesting apps won't build or install. I specificly did not do a release because I want the mono devs to fix the situation in the future.
Okay, couple of comments on the install section of the spec file # dbus installs mono files in libdir, not in prefix/lib, fixup: perl -pi -e 's,/gacdir \$\(libdir\),/gacdir /usr/lib,g' mono/Makefile perl -pi -e "s,/root \\\$\\(DESTDIR\\)\\\$\(libdir\\),/root $RPM_BUILD_ROOT/usr/lib,g" mono/Makefile perl -pi -e "s,/usr/lib64,/usr/lib,g" dbus-sharp.pc mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/mono make install DESTDIR=$RPM_BUILD_ROOT I'm not sure here. If the files are being installed in %_libdir rather than %{_prefix}/lib, why have you got the mkdir -p line? When you run the make install, the directories are created for you by the makefile (unless in this case, they're not of course!) The other problem is that the .pc file is going into %_libdir/pkgconfig. I've seen this on 64 bit architecture failing miserably, but not if it's in %_prefix/lib (yes, I am aware of the packaging guidelines!) The .pc file should be in a devel package by itself. Should the Source0 not point to a URL rather than on a local machine? You're missing the %{?dist} tag on the Release line Finally, is the define arch required?
Paul, On the first point - this is just something I copied from the old dbus package. I assume on 64bit archs everything is still installed into /usr/lib but the pc file needs to be installed into /usr/lib64. I would ask Alex who packaged Mono but he is on vacation right now. On the second point %_libdir/pkgconfig is the correct place to put pc files. Third point (.pc in devel) I'll fix that. On the fourth point as I said in the initial comment, there is no URL because this package has not been released. It is a streight build from the git repo. If it were up to me wouldn't even be packaging this but mono apps need it for now. Fifth point (dist tag) I'll add it On the sixth point I just picked that up from the old spec file. Does that define all of our arch's? Not sure why it was still there. Fouth point (.pc in devel) I'll fix that.
Oh wait, ppc64 isn't listed. There is most likely problems building mono on that arch.
On the forth point, could the tarball not have been uploaded to your redhat space and Source0 become Source1 with Source0 becoming a link to your webspace (or some comment made saying it's a grab from git). As it stands, I'm not sure it complies with the packaging guidelines. Second point : I know %_libdir/pkgconfig is the correct place for .pc files. However, from my experience of building monodevelop (and as a general rule for mono, any package relying on another mono lib), .pc files on 64 bit architectures tend not to be picked up when you run the configure file. There is an easy fix, just add %libdir/pkgconfig to the pkgconfig PATH variable. Sixth point : Again, when I've created packages for FE on mono, the buildarchs are not usually included in the spec file, so I'm not sure as to their value anymore.
Source doesn't always have to be a URL. Especially if its pre-release snapshotting. Also for RH projects, our "preferred" method of distribution is directly in srpms so there are many projects that don't have tarball releases, so the srpm referrs to itself. (I'll step out of the way of the rest of this review unless needed)
Thanks for that clarification :-)
*** Bug 199490 has been marked as a duplicate of this bug. ***
new package and spec uploaded Spec URL: http://people.redhat.com/johnp/files/dbus/dbus-sharp.spec SRPM URL: http://people.redhat.com/johnp/files/dbus/dbus-sharp-0.63-2.src.rpm I kept the libdir the same just because this is how it has worked in the past and when alex gets back he can fix it up if need be. I need to drop an intern off at home. I'll check back later and build if it is approved.
That's the old spec file and the src rpm is giving a 404
I've noticed that one of todays rawhide updates is relying on dbus-sharp. How many applications currently in core also rely on dbus-sharp?
Woops, I uploaded them but forgot to move them to the webdir, moved now. Currently f-spot and tomboy use it.
Name: dbus-sharp Version: 0.63 Obsoletes: dbus-sharp < 0.63 I think this Obsoletes is unnecessary, am I wrong? Otherwise everything else looks OK. APPROVED
Note, things are not perfect here but good enough. I am pushing this through in order to fix rawhide a day sooner. Please submit more spec improvements here if you think it should be improved further.
The Obsoletes is a precaution since we are moving from a subpackage to an actuall package.
I'm pretty sure it doesn't work this way, and there is no actual problem here.
Minor... Requires: %name = %{version}-%{release} Should this not be %{name}? Can the spec unify how it uses $RPM_BUILD_ROOT? It should be either entirely %{buildroot} or $RPM_BUILD_ROOT but not a mix of the two. Also, why is the mkdir -p %{_prefix}/lib/mono in the install? The make install step creates it. Thanks
(In reply to comment #16) > Requires: %name = %{version}-%{release} > > Should this not be %{name}? Not necessarily. It should not make a different. %{name} is the quoted version of %name. This is similar to ${var} vs. $var in /bin/sh.
Okay, thanks for that clarification. I was just making sure after the problem I had with NAnt recently.