Fedora 21 includes a new set of libraries for developers of C++ and Qt applications, KDE Frameworks 5, the successor to KDE Platform 4. KDE Frameworks 5 are based on Qt 5 and provide developers with access to a broad variety of technologies and tools developed by the KDE Community, without having to depend on the entire KDE platform.
Most of the frameworks are based on the kdelibs module, which has been divided according to functionalities provided. Dependencies have been packaged into individual libraries. This allows developers and projects outside the KDE ecosystem to use these technologies and benefit from the work of the KDE Community.
It is possible to install KDE Frameworks 5 alongside KDE Platform 4 packages.
This Fedora release includes basic support for the OpenCL standard, which provides sufficient environment for the development of the OpenCL enabled software.
To enable OpenCL development, the Mesa's OpenCL state-tracker, the Portable Computing Language (pocl), and several other OpenCL packages have been added to the official Fedora repositories. The pocl language can be used on CPUs, and Mesa can be used on R600 AMD/ATI GPUs.
With this release, Python 3
has been upgraded to version 3.4, which provides various bug fixes, enhancements and security improvements over the previous version. For example, several new library modules and features have been added and multiple library modules have been significantly improved.
While the majority of Python packages are available for both Python and Python3, the default implementation of Python in Fedora is Python 2.7
The rewheel module
For version 3.4, Python upstream has decided to implement changes summarized in the
PEP 453 document. In short, these mean:
bundling archives with the setuptools
and pip
utilities in Python distribution
providing the ensurepip
module that is able to install these archives either on a system or in the virtualenv
environment.
Due to Fedora strict non-bundling policies, setuptools
and pip
are unbundled. To match the upstream functionality, the following approach has been implemented:
The python3 package now depends on the python3-setuptools and python3-pip. This means that users do not have to use the ensurepip
to install setuptools
and pip
utilities separately as they are by default installed altogether with python3
To install the setuptools
and pip
utilities in the virtualenv
environment from the system packages, a mechanism called rewheel
has been implemented to Fedora 21. When a new virtualenv
is being created, rewheel
takes the system python3-setuptools and python3-pip packages, recreates their archives and installs them in the new virtualenv
so that the upstream functionality is preserved.
One more advantage is provided by the rewheel
approach. When there is a bug, for example a security issue, in either python3-setuptools or python3-pip, Fedora maintainers of these packages fix the bug and users get the fixed packages. Therefore, virtualenvs
created after updating to fixed python3-setuptools or python3-pip will have already fixed version. With pure upstream Python, this approach is not possible, users will have to wait for upstream to release new Python version with these fixes incorporated. This means that the rewheel
patch makes the python3 package fulfill Fedora's high packaging standards and also helps to make virtualenvs
more secure.
See the
Rewheel page on GitHub for additional information about
rewheel
.
The RPM package manager has been updated to version 4.12, which brings Fedora in line with the latest upstream version.
This update brings a number of improvements, including:
Ability to package files larger than 4 GB. |
Support for weak dependencies. |
API users will be able to access file data more cleanly. |
Payload data is now accessible over the API. |
A new tool, rpm2archive , will allow converting rpm packages to tar files instead of the outdated cpio format. The new tool will work with files larger than 4 GB, while cpio and rpm2cpio do not. |
While the the underlying RPM libraries offer support for optional dependencies, soft requirements, and other weak dependencies, the packages in Fedora repositories are not yet leveraging this feature.
Using some of the new features will break forward compatibility. Packages using these features cannot be built or installed on older Fedora versions. Backward compatibility is expected to be maintained.
Ruby 2.1
is the latest stable version of Ruby, and brings major increases in speed, memory efficiency, and reliability.
The update brings a soname bump. Therefore, Ruby packages which use binary extensions should be rebuilt - and this has been done for packages in the Fedora repositories. Nevertheless, since upstream payed great attention to source compatibility, no changes to your code should be needed. Additionally, RubyGems with binary extensions need to be updated to conform to the recent package guidelines to ensure compatibility with the new RubyGems release.
In Fedora 21, TCL/TK has been upgraded to version 8.6.1, which includes numerous bug fixes and enhancements. Some of the notable features are described here.
Changes in TCL 8.6
IPv6 Support
Support for IPv6 networking for both client and server sockets.
Support for SQL Database
The bundled tdbc package, which contains the Tcl DataBase Connectivity interface, now enables writing SQL database-powered scripts decoupled from any particular database engine. The bundled sqlite3 and tdbc::sqlite3 packages supply a powerful and popular SQL database engine that is ready to use.
Support for Object Oriented Programming
The commands of the TclOO package are now part of the TCL language itself. This gives TCL a built-in fully dynamic, class-based object system and also includes advanced features such as meta-classes, filters, and mixins.
A new version 4 of the popular package Itcl (also known as "incr TCL") is also included, now built on a TclOO foundation, granting support for some traditional Object Oriented TCL programming out of the box as well.
Support for multi-thread operations
A thread-enabled default build, a bundled Thread package, and a new command interp cancel enable multi-threaded programming tasks on TCL 8.6.
Changes in TK 8.6
PNG Image Support
Photo images now supports read/write in the PNG format, with the ability to set the alpha channel.
Angled Text
The new -angle $degrees to $canvas create text option rotates the displayed text.
5.1.7. Improved Scala Ecosystem
Fedora now features significantly improved support for the Scala ecosystem with the inclusion of sbt version 0.13.1 and several other key Scala infrastructure packages. These packages include:
akka, a toolkit for developing actor-based systems
json4s, a unified interface to JSON parsers and generators
sbinary, a typed Scala interface for reading and writing binary formats
scala-stm, a software transactional memory implementation for Scala
scalacheck, a property-based testing framework for Scala
scalaz, a set of extensions to the Scala standard library to facilitate functional programming
With these packages available, Fedora has become an excellent environment for developing and distributing Scala projects.
Eclipse in Fedora 21 has had a major update to the Luna (4.4) release. Eclipse Luna, among other things, introduces support for Java 8, split editors, and a dark theme.
The official Fedora repositories now include Jenkins, an application written in Java that provides continuous integration services for software development. Jenkins allows you to build and test software projects continuously, as well as to monitor executions of jobs that were ran externally.
For additional information, refer to the
Meet Jenkins webpage.
5.2.3. Make updated to 4.0
GNU Make has been updated to version 4.0, offering several bug fixes and new features. It also includes new command line options and new variables to improve usability.
Fedora now provides Review Board 2.0, a powerful, web-based patch review and management tool.
Version 2.0 adds the ability to post committed changes from a branch directly from the web UI, adds review of text file attachments, greatly extends the capabilities of the public API and extension framework, and offers significant performance improvements, usability enhancements, and visual cleanups.
Significant enhancements have been made to the diff viewer, as well as adding support for reviews on non-code files (such as binary file formats).
Upgrading to Review Board 2.0 from a previous release will modify your database schema. The migration will be performed when you restart Apache for the first time after the upgrade, and the process is irreversible.
Back up your database before upgrading.
5.2.5. SHOGUN Machine Learning Toolbox
The machine learning toolbox's focus is on large scale kernel methods and especially on
Support Vector Machines (SVM). It provides a generic SVM object interfacing to several different SVM implementations, among them the state of the art
LibSVM. Each of the SVMs can be combined with a variety of kernels.
One of its key features is the "combined kernel" which can be constructed by a weighted linear combination of a number of sub-kernels, each of which not necessarily working on the same domain. An optimal sub-kernel weighting can be learned using Multiple Kernel Learning. Currently SVM 2-class classification and regression problems can be dealt with. However SHOGUN also implements a number of linear methods like Linear Discriminant Analysis (LDA), Linear Programming Machine (LPM), (Kernel) Perceptrons and features algorithms to train hidden Markov-models.
User customizations made to java-1.7.0-openjdk(specifically, to files under /usr/lib/jvm/java-1.7.0*/*
) will not be carried across to java-1.8.0-openjdk.
5.4.2. More efficient package dependencies
The way that Java dependencies are handled has changed in Fedora 21. Packages that do not interact with the X server or audio subsystem now depend on a new OpenJDK headless subpackage. This means installation size reduction on servers, a change that aims for efficiency.
Additionally, documentation for Java packages is now optional, saving even more space on your server. Look for the -doc
subpackage for Java packages to install the accompanying documentation.
If you need access to API documentation of Java libraries without javadoc subpackages, try using upstream web pages which should be accessible at homepage URL of the project in question. You can query for the URL of installed package with rpm -qi package| grep '^URL'
5.4.3. Improved Ivy Packaging
The way of packaging Java software that uses Apache Ivy to manage build dependencies has been improved in a similar way to the Maven packaging updates in previous Fedora releases. In particular, the following improvements have been implemented:
automatic resolution of Ivy artifacts,
integration with system Maven repository,
automatic installation of Ivy artifact metadata,
auto requires.
The PHP stack has been updated to version 5.6, the latest upstream version. The important changes in this new version include:
PHP 5.6 also features a new tool, the
PHP debugger, provided in the new php-dbg subpackage. Use the debugger with the
phpdbg
command.
5.5.2. Ruby on Rails 4.1
Fedora 21 includes
Ruby on Rails 4.1, the latest version of the well-known web application framework written in Ruby. Highlights in this release include Spring application preloader, config/secrets.yml, Action Pack variants, and Action Mailer previews. The Release Notes are at
http://guides.rubyonrails.org/4_1_release_notes.html
5.5.3. Web Application Authentication
At an operating system level, there are numerous authentication and identity lookup mechanisms, some of them using sssd
. With new Apache
modules and new sssd
, some of those mechanisms become more easily consumable by web applications. Web application environments and frameworks can then consume results of the authentication and information retrieval using environment variables similar to REMOTE_USER
. This will allow the better integration of web applications into enterprise-scale deployments.
With mod_authnz_pam
, PAM authentication and access checks are available to web applications, allowing wider combination of authentication and access controls. One specific target is host-based access control rules of FreeIPA for Kerberos SSO via mod_sss
and sssd
.
The mod_intercept_form_submit
module makes it possible to enable the PAM authentication of mod_authnz_pam
on normal logon form handling paths, which can then be consumed by web application with fairly minimal changes.
The mod_lookup_identity
uses sssd-dbus
to retrieve additional attributes like name, email address, or group membership, and populates environment variables for easy consumption of this information by web applications.
The sssd-dbus
implements new service ifp
which provides access to additional user-related pieces of information.