Spec URL: http://denisarnaud.fedorapeople.org/boost/boost169/boost169.spec SRPM URL: http://denisarnaud.fedorapeople.org/boost/boost157/boost169-1.69.0-1.src.rpm Description: A few packages require a fairly recent Boost version, which EPEL does not provide. EPEL 6 and 7 have had Boost-1.48 and Boost-1.59 respectively for a while (as parallel installations), thanks to Robert Scheck and Haïkel Guémar. The very same way they built Boost-1.59 for EPEL 7, I therefore propose to build Boost-1.69 for EPEL 6 and 7, as a parallel installation to the currently officially supported Boost packages (Boost-1.41 on EPEL 6 and Boost-1.53 on EPEL 7). To minimise the work (and the support!) to be required, I re-start from the Boost-1.69 package on Fedora 30 and Boost-1.57 on EPEL 7, which cleanly build on EPEL 7. For EPEL 6, work-arounds of Boost148 may have to be re-injected. References: * Review request for Boost-1.59 on EPEL 7: http://bugzilla.redhat.com/show_bug.cgi?id=1391444 * Review request for Boost-1.57 on EPEL 6 and 7: http://bugzilla.redhat.com/show_bug.cgi?id=1210993 * Review request for Boost-1.48 on EPEL 5 and 6: http://bugzilla.redhat.com/show_bug.cgi?id=921134 * Review request for Boost-1.41 on EPEL 5: http://bugzilla.redhat.com/show_bug.cgi?id=673839 * Feature request for Boost-1.69 on Fedora: https://fedoraproject.org/wiki/Changes/F30Boost169
Successful build: https://koji.fedoraproject.org/koji/taskinfo?taskID=32146613
(In reply to Denis Arnaud from comment #0) > Spec URL: http://denisarnaud.fedorapeople.org/boost/boost169/boost169.spec > SRPM URL: > http://denisarnaud.fedorapeople.org/boost/boost157/boost169-1.69.0-1.src.rpm Spec URL: https://denisarnaud.fedorapeople.org/boost/boost169/boost169.spec SRPM URL: https://denisarnaud.fedorapeople.org/boost/boost169/boost169-1.69.0-1.el7.src.rpm
Successfull builds * On Koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=32153314 * On Copr: https://copr.fedorainfracloud.org/coprs/denisarnaud/boost169/build/848463/
To the best of my knowledge, no other Boost package on EPEL (than boost169) provides Python3 modules. It means that if you have an EPEL 7 package depending on Boost, currently you cannot use Python 3 and are stuck with Python 2. Thanks to boost169, Python 3 modules are delivered (alongside the more classical Python 2 modules), namely: * boost169-python3 and boost169-python3-devel * boost169-mpich-python3 and boost169-mpich-python3-devel * boost169-openmpi-python3 and boost169-openmpi-python3-devel Boost169 hence helps maintainers to migrate Python-related packages to Python 3.
Successful builds: * On Koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=32154053 * On Copr: https://copr.fedorainfracloud.org/coprs/denisarnaud/boost169/build/848479/
Package should be named "boost1.69". https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_multiple_packages_with_the_same_base_name And no package review is required in any case, though maybe it helped in this case to catch the misnamed package.
Dear Jason, Boost is particular, as it is a core package in RedHat (RHEL). As seen on the Fedora source code for Boost (https://src.fedoraproject.org/rpms/boost/commits/master), there is therefore no branch for EPEL. The current version of Boost for RHEL is 1.53, and supports only Python 2. And Fedora packagers have no control on that Boost package for RHEL. So, the idea is to bring more recent versions of Boost to RHEL/EPEL, IN PARALLEL to the currently RedHat-supported version of Boost. The "mainstream" Boost package is named "boost", and the additional parallel versions are named "boost1NN" (e.g., boost148 on EPEL 6, boost159 on EPEL 7), much like you can install "python34" in addition/parallel to python/python2 on EPEL 7. So, the naming without dot (boost169) is consistent with other such packages (e.g., python34). And, yes, we need a review request, as those specific Boost packages have to be added to the Fedora source code (such as https://src.fedoraproject.org/rpms/boost141/commits/master and https://src.fedoraproject.org/rpms/boost148/commits/master for instance). References for other such review requests in the past are: * Review request for Boost-1.59 on EPEL 7: http://bugzilla.redhat.com/show_bug.cgi?id=1391444 * Review request for Boost-1.57 on EPEL 6 and 7: http://bugzilla.redhat.com/show_bug.cgi?id=1210993 * Review request for Boost-1.48 on EPEL 5 and 6: http://bugzilla.redhat.com/show_bug.cgi?id=921134 * Review request for Boost-1.41 on EPEL 5: http://bugzilla.redhat.com/show_bug.cgi?id=673839 The particularity with Boost-1.69 on EPEL is that it allows the packages depending on it to support Python 3. Indeed, currently in EPEL, if you have a package depending on Boost (there a few hundreds of such packages today), you cannot support Python 3, as only Python 2 is supported by the current version of Boost (1.53) on RHEL/EPEL. Hence, that Boost 1.69 package brings Python 3 support to packages depending on Boost in RHEL/EPEL.
Boost may be peculiar but that doesn't invalidate anything I said: Naming the package boots169 is inconsistent with the packaging guidelines. The other packages are also misnamed, but their existence doesn't excuse including additional misnamed packages. You still aren't required to submit a review request. It's fine if you want to do that, of course; I'm not going to stop you. But you could have simply submitted the new package request under the exception policy for different versions of existing packages and have had it imported, built and on its way to stable by now. I guess it's good that you did, though, or I wouldn't have noticed and had a chance to correct the improper naming.
Understood, thanks! Here you are: Spec URL: https://denisarnaud.fedorapeople.org/boost/boost1.69/boost1.69.spec SRPM URL: https://denisarnaud.fedorapeople.org/boost/boost1.69/boost1.69-1.69.0-1.el7.src.rpm Builds: * Koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=32213472 * Copr: https://copr.fedorainfracloud.org/coprs/denisarnaud/boost1.69/build/849679/
I know Jason said this doesn't need a review, but Denis asked me to ...
The spec file looks good. It could be improved by adding some missing Requires: but those are also (currently) missing from the Boost package in Fedora. That could be done later, so I'll approve this anyway. Here's what I did for the boost-1.66.0-6.el8 package: @@ -183,6 +183,10 @@ provides a sort of cooperative multitasking on a single thread. %package coroutine Summary: Run-time component of boost coroutine library +Requires: boost-chrono%{?_isa} = %{version}-%{release} +Requires: boost-context%{?_isa} = %{version}-%{release} +Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: boost-thread%{?_isa} = %{version}-%{release} %description coroutine Run-time support for Boost.Coroutine, a library that provides @@ -202,6 +206,9 @@ on generic programming concepts. %if %{with context} %package fiber Summary: Run-time component of boost fiber library +Requires: boost-context%{?_isa} = %{version}-%{release} +Requires: boost-filesystem%{?_isa} = %{version}-%{release} +Requires: boost-system%{?_isa} = %{version}-%{release} %description fiber @@ -250,6 +257,13 @@ handling tools. %package log Summary: Run-time component of boost logging library +Requires: boost-atomic%{?_isa} = %{version}-%{release} +Requires: boost-chrono%{?_isa} = %{version}-%{release} +Requires: boost-date-time%{?_isa} = %{version}-%{release} +Requires: boost-filesystem%{?_isa} = %{version}-%{release} +Requires: boost-regex%{?_isa} = %{version}-%{release} +Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: boost-thread%{?_isa} = %{version}-%{release} %description log @@ -310,6 +324,7 @@ Shared object symbolic links for Python 3 variant of Boost.Python. %package random Summary: Run-time component of boost random library +Requires: boost-system%{?_isa} = %{version}-%{release} %description random @@ -353,6 +368,8 @@ the diagnostics support that is part of the C++11 standard library. %package test Summary: Run-time component of boost test library +Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: boost-timer%{?_isa} = %{version}-%{release} %description test @@ -385,6 +402,7 @@ with as little as one #include and one additional line of code. Summary: Run-time component of boost type erasure library Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: boost-thread%{?_isa} = %{version}-%{release} %description type_erasure @@ -1275,6 +1293,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Oct 09 2018 Jonathan Wakely <jwakely> - 1.66.0-6 +- Add explicit Requires to subpackages that depend on other parts of boost +
Excellent, thanks! I'll integrate the changes this week-end before committing the new boost1.69 module.
This part can also be simplified: %build # Dump the versions being used into the build logs. %if %{with python2} %global python2_version %(/usr/bin/python2 %{SOURCE2}) : PYTHON2_VERSION=%{python2_version} %endif %if %{with python3} %global python3_version %(/usr/bin/python3 %{SOURCE2}) %global python3_abiflags %(/usr/bin/python3-config --abiflags) : PYTHON3_VERSION=%{python3_version} : PYTHON3_ABIFLAGS=%{python3_abiflags} %endif For Fedora we just rely on %{python2_version} and %{python3_version} being defined: %build # Dump the versions being used into the build logs. %if %{with python2} : PYTHON2_VERSION=%{python2_version} %endif %if %{with python3} PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags) : PYTHON3_VERSION=%{python3_version} : PYTHON3_ABIFLAGS=${PYTHON3_ABIFLAGS} %endif But even if EPEL doesn't automatically have %{python2_version} and %{python3_version}, the ver.py script can still be replaced: %global python2_version %(/usr/bin/python2 -c 'import platform; print(".".join (platform.python_version_tuple ()[:2]))') And similarly for python3. That would get rid of the warnings produced by rpmlint etc: /usr/bin/python2: can't open file '/home/jwakely/rpmbuild/SOURCES/ver.py': [Errno 2] No such file or directory
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/boost169
boost169-1.69.0-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-853e06b03c
boost169-1.69.0-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-853e06b03c
boost169-1.69.0-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.
*** Bug 1210993 has been marked as a duplicate of this bug. ***