diff mbox series

[liburing,v2,3/3] spec: Fedora RPM cleanups

Message ID 20191104155524.58422-4-stefanha@redhat.com (mailing list archive)
State New, archived
Headers show
Series Fedora 31 RPM improvements | expand

Commit Message

Stefan Hajnoczi Nov. 4, 2019, 3:55 p.m. UTC
From: Jeff Moyer <jmoyer@redhat.com>

Cole Robinson and Fabio Valenti made a number of suggestions for the
.spec file:
https://bugzilla.redhat.com/show_bug.cgi?id=1766157

 * Release should be Release: 1%{?dist} so the .fcXX bits get appended
   to the version string
 * Source: should be a pointer to the upstream URL that hosts the
   release. In this case I think it should be
   https://github.com/axboe/liburing/archive/...
   the ending weirdness is due to github renaming the archive strangely.
   You might need to pass '-n %{name}-%{name}-%{version}' to
   %setup/%autosetup to tell it what the extracted archive name is
 * The %defattr lines should be removed:
   https://pagure.io/packaging-committee/issue/77
 * The Group: lines should be removed
 * All the BuildRoot and RPM_BUILD_ROOT lines should be removed. %clean
   should be removed
 * The ./configure line should be replaced with just %configure
 * The 'make' call should be %make_build
 * The 'make install' call should be %make_install
 * The %pre and %post sections can be entirely removed, ldconfig is
   done automatically:
   https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
 * The devel package 'Requires: liburing' should instead be: Requires:
   %{name} = %{version}-%{release}
 * The devel package should also have Requires: pkgconfig
 * I think all the %attr usage can be entirely removed, unless they are
   doing something that the build system isn't doing.
 * The Provides: liburing.so.1 shouldn't be necessary, I'm pretty sure
   RPM automatically adds annotations like this
 * Replace %setup with %autosetup, which will automatically apply any
   listed Patch: in the spec if anything is backported in the future.
   It's a small maintenace optimization

These changes work on Fedora 31 and openSUSE Leap 15.1.  Therefore they
are likely to work on other rpm-based distributions too.

Tested-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 liburing.spec | 47 +++++++++++++++++++----------------------------
 1 file changed, 19 insertions(+), 28 deletions(-)

Comments

Jens Axboe Nov. 4, 2019, 3:59 p.m. UTC | #1
On 11/4/19 8:55 AM, Stefan Hajnoczi wrote:
>   %changelog
> +* Thu Oct 31 2019 Jeff Moyer <jmoyer@redhat.com> - 0.2-1
> +- Initial fedora package.
> +

Rest looks good now, but I think you forgot this one!
Stefan Hajnoczi Nov. 5, 2019, 7:40 a.m. UTC | #2
On Mon, Nov 04, 2019 at 08:59:22AM -0700, Jens Axboe wrote:
> On 11/4/19 8:55 AM, Stefan Hajnoczi wrote:
> >   %changelog
> > +* Thu Oct 31 2019 Jeff Moyer <jmoyer@redhat.com> - 0.2-1
> > +- Initial fedora package.
> > +
> 
> Rest looks good now, but I think you forgot this one!

I forgot to commit my changes before sending v2 >_<

Will fix in v3

Stefan
diff mbox series

Patch

diff --git a/liburing.spec b/liburing.spec
index f9e9262..08d46f4 100644
--- a/liburing.spec
+++ b/liburing.spec
@@ -1,12 +1,11 @@ 
 Name: liburing
 Version: 0.2
-Release: 1
+Release: 1%{?dist}
 Summary: Linux-native io_uring I/O access library
 License: LGPLv2+
-Group:  System Environment/Libraries
 Source: %{name}-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-root
-URL: http://git.kernel.dk/cgit/liburing/
+URL: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz
+BuildRequires: gcc
 
 %description
 Provides native async IO for the Linux kernel, in a fast and efficient
@@ -14,47 +13,39 @@  manner, for both buffered and O_DIRECT.
 
 %package devel
 Summary: Development files for Linux-native io_uring I/O access library
-Group: Development/System
-Requires: liburing
-Provides: liburing.so.1
+Requires: %{name} = %{version}-%{release}
+Requires: pkgconfig
 
 %description devel
 This package provides header files to include and libraries to link with
 for the Linux-native io_uring.
 
 %prep
-%setup
+%autosetup
 
 %build
-./configure --prefix=/usr --libdir=/%{_libdir} --mandir=/usr/share/man
-make
+./configure --prefix=%{_prefix} --libdir=/%{_libdir} --mandir=%{_mandir} --includedir=%{_includedir}
 
-%install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-make install DESTDIR=$RPM_BUILD_ROOT
-
-%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+%make_build
 
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
+%install
+%make_install
 
 %files
-%defattr(-,root,root)
 %attr(0755,root,root) %{_libdir}/liburing.so.*
 %doc COPYING
 
 %files devel
-%defattr(-,root,root)
-%attr(-,root,root) %{_includedir}/liburing/
-%attr(0644,root,root) %{_includedir}/liburing.h
-%attr(0755,root,root) %{_libdir}/liburing.so
-%attr(0644,root,root) %{_libdir}/liburing.a
-%attr(0644,root,root) %{_libdir}/pkgconfig/*
-%attr(0644,root,root) %{_mandir}/man2/*
+%{_includedir}/liburing/
+%{_includedir}/liburing.h
+%{_libdir}/liburing.so
+%{_libdir}/liburing.a
+%{_libdir}/pkgconfig/*
+%{_mandir}/man2/*
 
 %changelog
+* Thu Oct 31 2019 Jeff Moyer <jmoyer@redhat.com> - 0.2-1
+- Initial fedora package.
+
 * Tue Jan 8 2019 Jens Axboe <axboe@kernel.dk> - 0.1
 - Initial version