What is new in Ubuntu 13.10 (Saucy Salamander) Desktop
As with every new release, packages--applications and software of all kinds--are being updated at a rapid pace. Many of these packages came from an automatic sync from Debian's unstable branch; others have been explicitly pulled in for Ubuntu 13.10.
Linux kernel 3.11
Ubuntu 13.10 includes the 3.11.0-12.19 Ubuntu Linux kernel which was based on the v3.11.3 upstream Linux kernel.
This release provides a new bridge, the upstart-file-bridge(8) that allows jobs to react to filesystem changes. For example, to have a job start when a particular file is created:
start on file FILE=/var/log/foo.log EVENT=create
Or to start a job when a file matching a glob pattern is deleted:
start on file FILE=/var/app/*.foo EVENT=delete
Additionally, a new upstart-monitor tool is available that allows event flows to be observed in real-time. This tool can run as a graphical or console application.
CUPS 1.6.2 and cups-filters 1.0.34
We had already switched to CUPS 1.6.x in Quantal (12.10) but had to apply a huge, awkward Ubuntu-specific patch to avoid regressions. Now we are up to all new standards without needing to do anything Ubuntu-specific.
Most important change here is the way how network printing works. Formerly, a CUPS-specific mechanism was used. The server broadcasted information about the printers it shares and the clients listen to these broadcasts making the printers available on the client side, looking like local print queues for the applications.
Recently, the Printer Working Group (PWG), an association of printer and software industry for developing standards related to digital printing, has created a standard for broadcasting information about shared printers. This standard is broadcasting the information via Bonjour, a protocol also used for many other network services, like shared files systems, screens, music/video servers, ...
CUPS has adopted this standard in 1.6.x, but only broadcasts and does not listen to broadcasts of CUPS daemons (or generally print servers using Bonjour) on other machines, letting remote printers not automatically get available locally. CUPS also dropped the old broadcasting protocol without transition period.
To overcome the problems and keeping network printing as easy as before (this is why 10 years ago the distros switched to CUPS) the cups-filters project of OpenPrinting introduced cups-browsed, an extra daemon which by default listens to Bonjour broadcasts of remote CUPS daemons (of IPP printers coming soon) and automatically creates local print queues pointing to the shared printers making pure CUPS 1.6.x networks working out-of-the-box.
If your network still contains machines running CUPS 1.5.x and older, cups-browsed also has legacy support for the old CUPS broadcasting, browsing (listening), and BrowsePoll. Please see the comments in /etc/cups/cups-browsed.conf, edit the file appropriately, and restart cups-browsed ("sudo restart cups-browsed") or reboot. When upgrading to Raring, BrowsePoll directives are overtaken from CUPS to cups-browsed automatically.
For everyone developing embedded or mobile systems based on Ubuntu, the CUPS package is split up into more binary packages to get a minimum client-only printing stack, of the packages cups-daemon, libcups2, and cups-browsed, occupying only ~1 MB. This only listens for Bonjour broadcasts (legacy CUPS broadcasts and BrowsePoll optional) of remote CUPS servers and makes the printers available locally. No drivers and filters for locally connected printers are available then.
Another thing to mention which was available before but never told about in release notes: When sharing local printers they are automatically available also for Apple's iOS devices (iPhone, iPad, iPod touch).
We eventually intend to ship only Python 3 with the Ubuntu desktop image, not Python 2. The Ubuntu 13.10 image continues this process, although we will not be able to convert everything to Python 3 for the Ubuntu 13.10 release.
If you have your own programs based on Python 2, fear not! Python 2 will continue to be available (as the python package) for the foreseeable future. However, to best support future versions of Ubuntu you should consider porting your code to Python 3. Python/3 has some advice and resources on this.
AppArmor has a number of new features in Ubuntu 13.10. Notably:
Support for fine-grained DBus mediation for bus, binding name, object path, interface and member/method
The return of named AF_UNIX socket mediation
Integration with several services as part of the ApplicationConfinement work in support of click packages and the Ubuntu appstore
Better support for policy generation via the aa-easyprof tool and apparmor-easyprof-ubuntu policy
AppArmor policy has been adjusted for packages that ship it to work with these changes, but local policy may need to be adjusted, especially for named AF_UNIX sockets where policy created after Ubuntu 8.04 LTS may have missing ‘rw' rules allowing the access. For DBus policy, as a transitional step, existing policy for packages that use DBus will continue to have full access to DBus, but future Ubuntu releases may provide fine-grained DBus rules for this software.
LibreOffice has been updated to version 4.1.2~rc3 which misses no fixes from the upstream 4.1.2 final release. New features in LibreOffice 4.1 include:
rotation of images in Writer
font embedding in Writer, Calc and Impress documents should severely improve rendering fidelity across different machines and platforms
Photo Album creator
stepped lines charts
lots of interoperability improvements with Mircosoft Office
see LibreOffice 4.1 New Features and Fixes for more details ...
64-bit ARM architecture
Ubuntu 13.10 includes a new port to 64-bit ARM systems (the "arm64" architecture, also known as AArch64 or ARMv8) as a developer preview. This is an incomplete port which we expect to develop further in the future, but it is useful today for development work and for experimenting with server workloads. The Ubuntu Core arm64 image provides a root filesystem which may be booted in the ARMv8 Foundation Model, with the addition of a kernel (not provided in Ubuntu 13.10).
Due to time constraints, only a subset of the Ubuntu archive has been built for arm64; compared to armhf, 94% of the binary packages in the "main" component are available, and 69% of the binary packages in the archive as a whole. We expect this to be much more complete for Ubuntu 14.04.
Ubuntu Upstart User Sessions
This Ubuntu release includes Upstart User Sessions by default, allowing Upstart to supervise a user's desktop session.
To see details of the running Upstart session, either echo $UPSTART_SESSION to see the D-Bus address the Session Init process is listening to, or run the following command which lists the process id of the Upstart session along with the value of $UPSTART_SESSION:
$ initctl list-sessions
The normal suite of Upstart commands is available (such as initctl, start, and stop). For example, to list all session jobs, run:
$ initctl list
To list system jobs from within a user session, run one of the following two commands:
$ initctl --system list
$ sudo initctl list
Session jobs are read from /usr/share/upstart/sessions/ and $XDG_CONFIG_HOME/upstart/ (or $HOME/.config/upstart if $XDG_CONFIG_HOME is not set).
Session job output is logged to $XDG_CACHE_HOME/upstart/ (or $HOME/.cache/upstart/ if $XDG_CACHE_HOME is not set).