Distribution-wide Changes
Inherited locale settings will be reset on login if necessary
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
if such situation is detected.
Many obsolete RPM scriptlets have been removed
Plenty of installation scriplets in packages are not necessary anymore. Their removal should make installation and upgrades of packages a bit faster.
Binaries provided by the distribution have optimized linking
The link flags used for Fedora packages have been updated to skip libraries which are not used by the executable. This removes the dependencies on those librararies from various packages, making their installation slightly more efficient.
Binaries provided by the distribution have additional hardening
The link flags used for Fedora packages have been updated to make the 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 Python section for details.
SWID tags for Fedora distribution and edition
The fedora-release-common
and fedora-release-$edition
packages
ship distribution-level SWID tags under
/usr/lib/swidtag/fedoraproject.org/
that identify the Fedora
distribution, release, and edition.
The swidq
command from new package swid-tools
can be used to list
the SWID tags (swidq -a
) or show its content (swidq -i -n Fedora
,
swidq --xml -a 'org.fedoraproject.*'
).
Updated software
Please note that this only lists a small subset of all upgraded packages where there’s a significant change.
Vagrant 2.2
Vagrant 2.2 is new major release, that includes many features, improvements, and and bug fixes. Using qemu:///session instead of qemu:///system allows Vagrant to run unprivileged.
Bash 5.0
The default shell bash
has been updated to version 5.0. This release
fixes several outstanding bugs in bash 4.4 and introduces several new
features. The most significant bug fixes are an overhaul of how
nameref variables resolve and a number of potential out-of-bounds
memory errors discovered via fuzzing.
Fish 3.0
This update for one of the alternative shells contains many new features and some backwards incompatible changes. See the documentation for details.
New desktop environments
Fedora 30 adds two new desktop environments for users with a graphical interface: Pantheon and Deepin. See the Desktop section for details.
Deprecations and removals
Deprecation of BerkleyDB support in OpenLDAP server
In the next Fedora version (31) package openldap-servers
will no
longer ship with support for back-bdb
or back-hdb
. Users should
migrate data to use back-mdb
instead, which is fully supported,
developed, and encouraged as the replacement by OpenLDAP upstream.
Deprecation of old Apache Java packages
Apache Jakarta ORO, Apache Jakarta Commons Regexp, Apache Jakarta Commons HttpClient, and Apache Avalon packages are intended to be eventually removed from Fedora, but are kept in Fedora for some additional, indeterminate time for various reasons including maintaining backwards compatibility. They are now considered deprecated and no new code should use them.
Deprecation of Sonatype OSS Parent
This package is obsolete software.
sonatype-oss-parent
packages are intended to be eventually
removed from Fedora, but are kept in Fedora for some additional,
indeterminate time due to relatively large number of packages still
depending on Sonatype OSS Parent. They are now considered deprecated
and no new code should use them.
Deprecation of Apache Maven 2.x
The last upstream release of Apache Maven 2.x was in November 2009, more than 9 years ago. Upstream declares that this version of Maven has reached its end of life, is no longer supported and that security vulnerability reports will not be addressed. It is still packaged in Fedora, but is deprecated and will be removed in one of the next releases.
Removal of unsafe functions from libcrypt
The POSIX standard mandates the presence of certain encryption and
hashing functions (encrypt
, encrypt_r
, setkey
, setkey_r
,
fcrypt
) that rely on the DES encryption algorithm which today is
widely considered insecure and insufficient for applications which
require sane data encryption. Library headers have been changed so
that it is not possible to compile code using those functions.
The version of the libxcrypt
package included with Fedora 30 now
ships the libcrypt.so.2
library that omits those legacy functions.
For backwards compatibility, the libxcrypt-compat
package which
contains libcrypt.so.1
is provided. If you are using a third-party
application that links against those functions, or that is linked
against glibc’s libcrypt, you may need to install the
libxcrypt-compat
package manually.
In addition, those legacy functions have been replaced by stub implementations which immediately return an error when invoked. This means that it is still possible to execute binaries compiled to use those functions, but they cannot actually use those unsafe encryption algorithms silently.
MongoDB removal
The MongoDB database has recently changed its license from AGPL to a custom license called the Server Side Public License v1 (SSPL). Upon reviewing the new license, Fedora Project has determined that the the SSPL is not a free software license. As Fedora’s licensing policies prohibit the project from distributing non-free software, MongoDB would be impossible to update to new upstream versions, and it is therefore being removed from Fedora.
The following packages are being removed:
-
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