#321 286 - Avoid Fedora-specific build flags in non-RPM Python extensions
Merged 4 years ago by pbokoc. Opened 4 years ago by pbokoc.
fedora-docs/ pbokoc/release-notes iss286  into  f30

@@ -30,12 +30,37 @@ 

  == 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].

@@ -9,7 +9,7 @@ 

  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 @@ 

  (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 @@ 

  

  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`