* [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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).