* [PATCH liburing 0/3] Fedora 31 RPM improvements
@ 2019-11-04 12:05 Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 1/3] spec: update RPM version number to 0.2 Stefan Hajnoczi
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2019-11-04 12:05 UTC (permalink / raw)
To: Jens Axboe
Cc: Aarushi Mehta, linux-block, Julia Suvorova, Jeff Moyer, Stefan Hajnoczi
Jeff Moyer and I have been working on RPMs for liburing. This patch series
contains fixes required to build Fedora 31 RPMs.
I have also tested on openSUSE Leap 15.1 to verify that these changes work on
other rpm-based distros.
Jeff Moyer (1):
spec: Fedora RPM cleanups
Stefan Hajnoczi (2):
spec: update RPM version number to 0.2
Makefile: add missing .pc dependency on .spec file
Makefile | 2 +-
liburing.spec | 49 ++++++++++++++++++++-----------------------------
2 files changed, 21 insertions(+), 30 deletions(-)
--
2.23.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH liburing 1/3] spec: update RPM version number to 0.2
2019-11-04 12:05 [PATCH liburing 0/3] Fedora 31 RPM improvements Stefan Hajnoczi
@ 2019-11-04 12:05 ` Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 2/3] Makefile: add missing .pc dependency on .spec file Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 3/3] spec: Fedora RPM cleanups Stefan Hajnoczi
2 siblings, 0 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2019-11-04 12:05 UTC (permalink / raw)
To: Jens Axboe
Cc: Aarushi Mehta, linux-block, Julia Suvorova, Jeff Moyer, Stefan Hajnoczi
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
liburing.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/liburing.spec b/liburing.spec
index 1337034..f9e9262 100644
--- a/liburing.spec
+++ b/liburing.spec
@@ -1,5 +1,5 @@
Name: liburing
-Version: 0.1
+Version: 0.2
Release: 1
Summary: Linux-native io_uring I/O access library
License: LGPLv2+
--
2.23.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH liburing 2/3] Makefile: add missing .pc dependency on .spec file
2019-11-04 12:05 [PATCH liburing 0/3] Fedora 31 RPM improvements Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 1/3] spec: update RPM version number to 0.2 Stefan Hajnoczi
@ 2019-11-04 12:05 ` Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 3/3] spec: Fedora RPM cleanups Stefan Hajnoczi
2 siblings, 0 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2019-11-04 12:05 UTC (permalink / raw)
To: Jens Axboe
Cc: Aarushi Mehta, linux-block, Julia Suvorova, Jeff Moyer, Stefan Hajnoczi
The version number is extracted from the .spec file. Make .pc depend on
.spec so that VERSION variable substitutions are always up-to-date.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index cc457bb..8af1c3a 100644
--- a/Makefile
+++ b/Makefile
@@ -31,7 +31,7 @@ ifneq ($(MAKECMDGOALS),clean)
include config-host.mak
endif
-%.pc: %.pc.in config-host.mak
+%.pc: %.pc.in config-host.mak $(SPECFILE)
sed -e "s%@prefix@%$(prefix)%g" \
-e "s%@libdir@%$(libdir)%g" \
-e "s%@includedir@%$(includedir)%g" \
--
2.23.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH liburing 3/3] spec: Fedora RPM cleanups
2019-11-04 12:05 [PATCH liburing 0/3] Fedora 31 RPM improvements Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 1/3] spec: update RPM version number to 0.2 Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 2/3] Makefile: add missing .pc dependency on .spec file Stefan Hajnoczi
@ 2019-11-04 12:05 ` Stefan Hajnoczi
2019-11-04 14:07 ` Jens Axboe
2 siblings, 1 reply; 6+ messages in thread
From: Stefan Hajnoczi @ 2019-11-04 12:05 UTC (permalink / raw)
To: Jens Axboe
Cc: Aarushi Mehta, linux-block, Julia Suvorova, Jeff Moyer, Stefan Hajnoczi
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/%{name}-%{version}.tar.gz#%{name}-%{name}-%{version}.tar.gz, 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(-)
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
--
2.23.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH liburing 3/3] spec: Fedora RPM cleanups
2019-11-04 12:05 ` [PATCH liburing 3/3] spec: Fedora RPM cleanups Stefan Hajnoczi
@ 2019-11-04 14:07 ` Jens Axboe
2019-11-04 15:53 ` Stefan Hajnoczi
0 siblings, 1 reply; 6+ messages in thread
From: Jens Axboe @ 2019-11-04 14:07 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: Aarushi Mehta, linux-block, Julia Suvorova, Jeff Moyer
On 11/4/19 5:05 AM, Stefan Hajnoczi wrote:
> 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/%{name}-%{version}.tar.gz#%{name}-%{name}-%{version}.tar.gz, 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.
This looks like a spec file changelog. Nothing wrong with that, but it
should be no wider than 72 characters to avoid making git log look like
a mess. Normally I'd just fix that up, but another comment below.
> -URL: http://git.kernel.dk/cgit/liburing/
> +URL: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz
> +BuildRequires: gcc
I enabled snapshots in cgit, so maybe we can just point at those?
Something like:
URL: https://git.kernel.dk/cgit/liburing/snapshot/%{name}-%{version}.tar.gz
Yes, and there's also https now, finally got that enabled on kernel.dk
after running that site for more than two decades.
> %changelog
> +* Thu Oct 31 2019 Jeff Moyer <jmoyer@redhat.com> - 0.2-1
> +- Initial fedora package.
> +
Maybe keep this distro agnostic?
--
Jens Axboe
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH liburing 3/3] spec: Fedora RPM cleanups
2019-11-04 14:07 ` Jens Axboe
@ 2019-11-04 15:53 ` Stefan Hajnoczi
0 siblings, 0 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2019-11-04 15:53 UTC (permalink / raw)
To: Jens Axboe; +Cc: Aarushi Mehta, linux-block, Julia Suvorova, Jeff Moyer
[-- Attachment #1: Type: text/plain, Size: 3100 bytes --]
On Mon, Nov 04, 2019 at 07:07:00AM -0700, Jens Axboe wrote:
> On 11/4/19 5:05 AM, Stefan Hajnoczi wrote:
> > 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/%{name}-%{version}.tar.gz#%{name}-%{name}-%{version}.tar.gz, 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.
>
> This looks like a spec file changelog. Nothing wrong with that, but it
> should be no wider than 72 characters to avoid making git log look like
> a mess. Normally I'd just fix that up, but another comment below.
Will fix in v2.
> > -URL: http://git.kernel.dk/cgit/liburing/
> > +URL: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz
> > +BuildRequires: gcc
>
> I enabled snapshots in cgit, so maybe we can just point at those?
> Something like:
>
> URL: https://git.kernel.dk/cgit/liburing/snapshot/%{name}-%{version}.tar.gz
>
> Yes, and there's also https now, finally got that enabled on kernel.dk
> after running that site for more than two decades.
Great news! Will switch to that.
> > %changelog
> > +* Thu Oct 31 2019 Jeff Moyer <jmoyer@redhat.com> - 0.2-1
> > +- Initial fedora package.
> > +
>
> Maybe keep this distro agnostic?
I will make the changelog cover the actual API changes in 0.2.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-11-04 15:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-04 12:05 [PATCH liburing 0/3] Fedora 31 RPM improvements Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 1/3] spec: update RPM version number to 0.2 Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 2/3] Makefile: add missing .pc dependency on .spec file Stefan Hajnoczi
2019-11-04 12:05 ` [PATCH liburing 3/3] spec: Fedora RPM cleanups Stefan Hajnoczi
2019-11-04 14:07 ` Jens Axboe
2019-11-04 15:53 ` Stefan Hajnoczi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.