From eec7c87d867e9490ef49474cad9ada58b41f5004 Mon Sep 17 00:00:00 2001 From: Petr Bokoc Date: Apr 28 2019 20:03:06 +0000 Subject: 286 - Avoid Fedora-specific build flags in non-RPM Python extensions --- diff --git a/modules/release-notes/pages/developers/Development_Python.adoc b/modules/release-notes/pages/developers/Development_Python.adoc index 9a9862a..eb9f98a 100644 --- a/modules/release-notes/pages/developers/Development_Python.adoc +++ b/modules/release-notes/pages/developers/Development_Python.adoc @@ -30,12 +30,37 @@ release. == Automatically generated dependencies for Python packages The generator which generates Provides and Requires for Python RPM -packages based on the setup.py file has been enabled by default. This +packages based on the `setup.py` file has been enabled by default. This makes the packaging of Python packages easier and more automatic by reusing information provided by the upstream project, and should result -in fewer unecessary or missing dependencies in rpms. +in fewer unecessary or missing dependencies in RPMs. == Python progressbar replaced with progressbar2 -The progressbar package has been updated to use the progressbar2 fork, +The `progressbar` package has been updated to use the `progressbar2` fork, which is newer and better maitained. + +[[python-build-flags]] +== Avoid Fedora-specific build flags in non-RPM Python extensions + +The build flags (`CFLAGS`, `CXXFLAGS` and `LDFLAGS`) saved in the Python's distutils module for building extension modules are switched from: + +* `%\{build_cflags}`, +* `%\{build_cxxflags}` and +* `%\{build_ldflags}` + +to + +* `%\{extension_cflags}`, +* `%\{extension_cxxflags}` and +* `%\{extension_ldflags}`. + +This link:https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/master/f/buildflags.md#support-for-extension-builders[currently means] that no GCC plugins (such as annobin) are activated and no GCC spec files (`-specs=` arguments) are used by default when building Python extension modules (e.g. with `python3 setup.py build`). + +The `python3-devel` package will lose its runtime dependency on `redhat-rpm-config` (which was only required for annobin support and GCC spec files). + +The change affects building extension modules by users, outside of the RPM environment. The Python standard library and Fedora's Python 3 RPM packages are still built with the "traditional" set of flags (`%\{build_cflags}` etc.), unless the package uses nonstandard methods to build the extensions. + +Only Python 3.7 and 3.6 will be changed. + +For detailed information about this change, including justification and impact on Python developers and packages, see the link:https://fedoraproject.org/wiki/Changes/Python_Extension_Flags[Change page on the Wiki]. diff --git a/modules/release-notes/pages/sysadmin/Distribution.adoc b/modules/release-notes/pages/sysadmin/Distribution.adoc index 63cf846..707578a 100644 --- a/modules/release-notes/pages/sysadmin/Distribution.adoc +++ b/modules/release-notes/pages/sysadmin/Distribution.adoc @@ -9,7 +9,7 @@ include::{partialsdir}/entities.adoc[] When logging in over ssh or another mechanism, locale settings are forwarded. If the destination does not support that is configured in the source environment, various tools would generate warnings about -invalid locale settings. Now, locale is automatically reset to C.UTF-8 +invalid locale settings. Now, locale is automatically reset to `C.UTF-8` if such situation is detected. == Many obsolete RPM scriptlets have been removed @@ -32,6 +32,10 @@ array of function pointers which is used to implement dynamic linking (the GOT) read-only at runtime. This makes it harder for exploit writers to overwrite these function pointers and redirect execution. +== Changed build flags saved in Python's distutils module + +The build flags (`CFLAGS`, `CXXFLAGS` and `LDFLAGS`) saved in the Python's distutils module for building extension modules have been changed in Fedora 30. See the xref:developers/Development_Python.adoc#python-build-flags[Python section] for details. + == MongoDB removal The **MongoDB** database has recently changed its license from AGPL to a custom license called the link:https://www.mongodb.com/licensing/server-side-public-license/faq[**Server Side Public License v1** (SSPL)]. @@ -40,24 +44,24 @@ As Fedora's link:https://fedoraproject.org/wiki/Licensing:Main[licensing policie The following packages are being removed: -* mongodb -* mongodb-server -* mongodb-test +* `mongodb` +* `mongodb-server` +* `mongodb-test` Other packages will remain in Fedora but will be adapted to MongoDB removal: -* condor -* golang-github-go-mgo-mgo -* fawkes -* fawkes-devenv -* mongo-c-driver -* mongo-cxx-driver -* mongo-tools -* mongodb-test -* perl-MongoDB – adapted in 2.0.3-1.fc30 -* python-beaker -* python-pymongo -* rubygem-database_cleaner -* rubygem-mongo -* rubygem-mongoid -* php-alcaeus-mongo-php-adapter, php-mongodb +* `condor` +* `golang-github-go-mgo-mgo` +* `fawkes` +* `fawkes-devenv` +* `mongo-c-driver` +* `mongo-cxx-driver` +* `mongo-tools` +* `mongodb-test` +* `perl-MongoDB – adapted in 2.0.3-1.fc30` +* `python-beaker` +* `python-pymongo` +* `rubygem-database_cleaner` +* `rubygem-mongo` +* `rubygem-mongoid` +* `php-alcaeus-mongo-php-adapter, php-mongodb`