Chapitre 5. Problèmes à connaître pour Stretch

Table des matières

5.1. Upgrade specific items for stretch
5.1.1. Le montage tardif de /usr n'est plus pris en charge
5.1.2. Suppression de l'accès par FTP aux miroirs hébergés par Debian
5.1.3. Paquets obsolètes
5.1.4. Deprecated components for stretch
5.1.5. Choses à faire avant de redémarrer après la mise à niveau
5.1.6. Les binaires sont maintenant compilés par défaut comme des exécutables indépendants de l'emplacement (PIE).
5.1.7. Most LSB compatibility packages have been removed
5.2. Limitations de la prise en charge de sécurité
5.2.1. État de sécurité des navigateurs web
5.2.2. Manque de prise en charge de sécurité pour l'écosystème autour de libv8 et Node.js
5.3. Problèmes spécifiques à des paquets
5.3.1. Anciens algorithmes de chiffrement et protocole SSH1 désactivés dans OpenSSH par défaut
5.3.2. Possibles modifications non rétrocompatibles dans APT
5.3.3. Changes to the Xorg graphical environment
5.3.4. Upstart supprimé
5.3.5. The debhelper tool now generates dbgsym packages by default
5.3.6. Modifications liées à OpenSSL
5.3.7. Modifications de Perl pouvant casser des logiciels tiers
5.3.8. PostgreSQL PL/Perl incompatibility
5.3.9. net-tools will be deprecated in favor of iproute2
5.3.10. The _netdev mount option is recommended when using AoE (ATA over ethernet) devices
5.3.11. Harmeless « Unespaced ... in regex is deprecated, ... » warnings during upgrade

Sometimes, changes introduced in a new release have side-effects we cannot reasonably avoid, or they expose bugs somewhere else. This section documents issues we are aware of. Please also read the errata, the relevant packages' documentation, bug reports, and other information mentioned in Section 6.1, « Lectures pour aller plus loin ».

5.1. Upgrade specific items for stretch

This section covers items related to the upgrade from jessie to stretch.

5.1.1. Le montage tardif de /usr n'est plus pris en charge

[Note]Note

Cette section ne s'applique qu'aux systèmes utilisant un noyau personnalisé, où /usr se trouve dans un point de montage séparé de /. Si vous utilisez les paquets du noyau fournis par Debian, ce problème ne vous affecte pas.

Le montage de /usr en n'utilisant que des outils trouvés dans / n'est plus pris en charge. Cela n'a fonctionné dans le passé que pour quelques configurations spécifiques et est désormais explicitement non pris en charge.

This means that for stretch all systems where /usr is a separate partition need to use an initramfs generator that will mount /usr. All initramfs generators in stretch do so.

5.1.2. Suppression de l'accès par FTP aux miroirs hébergés par Debian

Debian hosted mirrors will stop providing FTP access. If you have been using the ftp: protocol in your sources.list, please migrate to http:. Please consider the following example for migrating:

deb http://deb.debian.org/debian          stretch         main
deb http://deb.debian.org/debian-security stretch/updates main

# variante tor (nécessite apt-transport-tor)
# deb  tor+http://vwakviie2ienjx6t.onion/debian          stretch            main
# deb  tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates    main

Les exemples ci-dessus ne comprennent pas non-free ni contrib. N'oubliez pas de les inclure si vous avez besoin de ces composants.

Pour davantage d'informations, veuillez consulter l'annonce : Shutting down public FTP services.

5.1.3. Paquets obsolètes

La liste suivante contient des paquets connus et obsolètes (voir Section 4.8, « Paquets obsolètes » pour une description).

La liste des paquets obsolètes contient :

5.1.4. Deprecated components for stretch

With the next release of Debian 10 (codenamed buster) some features will be deprecated. Users will need to migrate to other alternatives to prevent trouble when updating to 10.

Cela comprend les fonctionnalités suivantes :

  • TODO: Add items if any

5.1.5. Choses à faire avant de redémarrer après la mise à niveau

Lorsque apt-get dist-upgrade a terminé, la mise à niveau « formelle » est complète, mais certaines choses devraient être prises en compte avant le redémarrage suivant.


      add list of items here
      
    

5.1.6. Les binaires sont maintenant compilés par défaut comme des exécutables indépendants de l'emplacement (PIE).

Par défaut, le compilateur GNU GCC 6 fourni par Debian Stretch compilera tous les exécutables pour être indépendants de l'emplacement. Cela fournit une limitation de toute une classe de vulnérabilités.

Unfortunately, the Linux kernel provided in Debian 8 (up to 8.7) has an issue that can cause some programs compiled as position independent executables to crash with a non-descriptive issue like segmentation fault. This issue is solved in the Linux version provided in 8.8 (version 3.16.43 or later) and in the kernel provided in Debian 9 (version 4.9 or later).

We recommend that you upgrade your kernel to a fixed version and then reboot before starting the upgrade to stretch. If you are running the kernel Debian 8.8 or newer, you are not affected by this issue.

If you are running an affected version of the kernel during the upgrade, we highly recommend that you perform a reboot into the stretch kernel right after the upgrade to avoid hitting this.

5.1.6.1. Behavior changes of PIE for system administrators and developers

[Note]Note

Cette section est principalement destinée aux développeurs ou aux administrateurs système. Les utilisateurs classiques ne devraient pas être affectés par cette section.

The above also leads to some changes that are worth being aware of.

  • The file tool (among others) will classify such binaries as « shared object » rather than an « executable ». If you have filters based on binary files, these may need to be updated (e.g. spamfilters).

  • Les bibliothèques statiques compilées en exécutables doivent maintenant être compilées comme du code indépendant de l'emplacement. Le message d'erreur suivant de l'éditeur de liens en est un symptôme :

    relocation ... against '[SYMBOL]' can not be used when making a shared object; recompile with -fPIC
    

    Note that even though the error message says -fPIC, it is sufficient to recompile with -fPIE (which is the default in the GCC 6 packages that are part of stretch).

  • Historically, position independent executables have been associated with performance loss on some hardware. Notably the Debian architecture i386 (32-bit Intel machines). While GCC 5 and GCC 6 have greatly improved performance for position independent executables on 32-bit Intel, this optimization may not be applicable to all architectures. Please consider evaluating the performance of your code if you are targeting machine architectures with a very limited number of registers.

5.1.7. Most LSB compatibility packages have been removed

Due to lack of interest and testability, Debian has removed the vast majority of the Linux Standard Base (LSB) compatibility packages.

Debian will still provide a selected few key LSB utilities used internally and externally, such as lsb-release and the sysvinit init functions in lsb-base. Furthermore, Debian is still firmly standing by the Filesystem Hierarchy Standard (FHS) version 2.3 with the minor alterations described in the Debian Policy Manual.

5.2. Limitations de la prise en charge de sécurité

Il y a certains paquets pour lesquels Debian ne peut pas garantir de rétroportages minimaux pour les problèmes de sécurité. Ceux-ci sont couverts dans les sous-sections suivantes.

Note that the package debian-security-support helps to track the security support status of installed packages.

5.2.1. État de sécurité des navigateurs web

Debian 9 includes several browser engines which are affected by a steady stream of security vulnerabilities. The high rate of vulnerabilities and partial lack of upstream support in the form of long term branches make it very difficult to support these browsers with backported security fixes. Additionally, library interdependencies make it impossible to update to newer upstream releases. Therefore, browsers built upon the webkit, qtwebkit and khtml engines are included in stretch, but not covered by security support. These browsers should not be used against untrusted websites.

Pour un usage général de navigation web, nous recommandons Firefox et Chromium.

Chromium − bien qu'il soit construit sur Webkit − est un paquet sans dépendance, qui sera maintenu à jour en reconstruisant les versions actuelles de Chromium pour stable. Firefox et Thunderbird seront également maintenus à jour en reconstruisant les versions ESR actuelles pour stable.

5.2.2. Manque de prise en charge de sécurité pour l'écosystème autour de libv8 et Node.js

La plate-forme Node.js est construite sur libv8-3.14 qui souffre d'un grand nombre de problèmes de sécurité, mais le projet et l'équipe de sécurité manquent de volontaires suffisamment intéressés et souhaitant investir beaucoup de temps pour corriger ces problèmes.

Malheureusement, cela signifie que libv8-3.14, nodejs et l'écosystème de paquets node-* associé ne devraient pas être actuellement utilisés avec du contenu non sûr, par exemple des données non validées depuis Internet.

In addition, these packages will not receive any security updates during the lifetime of the stretch release.

5.3. Problèmes spécifiques à des paquets

In most cases, packages should upgrade smoothly between jessie and stretch. There are a small number of cases where some intervention may be required, either before or during the upgrade; these are detailed below on a per-package basis.

5.3.1. Anciens algorithmes de chiffrement et protocole SSH1 désactivés dans OpenSSH par défaut

The OpenSSH 7 release has disabled some older ciphers and the SSH1 protocol by default. Please be careful when upgrading machines where you only have SSH access.

Veuillez vous référer à la documentation d'OpenSSH pour plus d'informations.

5.3.2. Possibles modifications non rétrocompatibles dans APT

Cette section couvre certaines des modifications d'APT qui pourraient affecter votre système.

5.3.2.1. APT now fetches files as an unprivileged user (_apt)

APT will now attempt to discard all root privileges before fetching files from mirrors. APT can detect some common cases where this will fail and fall back to fetching things as root with a warning. However, it may fail to detect some exotic setups (e.g. UID-specific firewall rules).

If you experience issues with this feature, please change to the _apt user and check that it:

  • peut lire les fichiers dans /var/lib/apt/lists et /var/cache/apt/archives ;

  • peut lire dans le dépôt de confiance APT (/etc/apt/trusted.gpg et /etc/apt/trusted.gpg.d/) ;

  • peut résoudre les noms DNS et télécharger des fichiers. Exemples de méthodes pour tester :

    # From the dnsutils package (if using tor, please check with tor-resolve instead).
    $ nslookup debian.org >/dev/null || echo "Cannot resolve debian.org"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "Cannot download index page of debian.org"
    

    Pour les problèmes de DNS, veuillez vérifier que /etc/resolv.conf est accessible en lecture.

5.3.2.2. Nouveau moteur d'épinglage (pinning) APT

APT 1.1 a introduit un nouveau moteur d'épinglage que correspond maintenant à la description de la page de manuel.

The old engine assigned one pin priority per package; the new one assigns pin priorities per version. It then picks the version with the highest pin that is not a downgrade or that has a pin > 1000.

This changes the effect of some pins, especially negative ones. Previously, pinning a version to -1 effectively prevented the package from being installed (the package pin was -1); it now only prevents the version of this package from being installed.

5.3.2.3. Nouveaux prérequis pour les dépôts APT

[Note]Note

Cette section ne s'applique que si vous avez (ou comptez utiliser) des dépôts tiers activés ou si vous maintenez un dépôt APT.

To improve download stability and ensure security of the downloaded content, APT now requires the following from an APT repository:

  • The InRelease file must be available.

  • All metadata must include at least SHA256 checksums of all items. This includes the GPG signature of the InRelease file.

  • Signatures on the InRelease file should be done with a key size of 2048 bits or larger.

Si vous utilisez des dépôts tiers qui ne peuvent se conformer aux prérequis mentionnés, veuillez les inciter à mettre leur dépôt à jour. Plus d'informations sur le fichier InRelease sont disponibles sur le wiki Debian.

5.3.3. Changes to the Xorg graphical environment

This section describes some of the major changes related to the Xorg graphical environment. It is mostly relevant to desktop systems or other systems providing a graphical (GUI) environment to users.

5.3.3.1. Le serveur Xorg n'a plus le setuid root par défaut.

[Note]Note

This change only applies if your X Display Manager supports running X without root privileges (or if you start X manually via startx). Currently the only known display manager supporting this is gdm. Other display managers simply start X as root regardless of this change.

Cela réduit le risque d'élévation de droits à travers des bogues dans le serveur X. Cependant, il a certains prérequis pour fonctionner :

  • Il nécessite logind et libpam-systemd.

  • Il nécessite un pilote vidéo du noyau (puisque Xorg ne peut plus communiquer directement avec le matériel).

  • Il nécessite de s'exécuter dans la console virtuelle depuis laquelle il a été démarré.

Quand il est lancé en tant qu'utilisateur normal, le journal de Xorg doit être disponible dans ~/.local/share/xorg/.

If these requirements cannot be met, please install the xserver-xorg-legacy package to reinstate the setuid Xorg.

5.3.3.2. Desktops will migrate to libinput Xorg driver

[Note]Note

This section is only relevant if you have tweaked or need to change the default Xorg input configuration.

In jessie, the default input driver for Xorg is the evdev driver. In stretch, the default has changed to libinput. If you have Xorg configuration that relies on the evdev driver, you will either have to convert it to the libinput driver or reconfigure your system to use the evdev driver.

The following is an example configuration for libinput to enable the « Emulate3Buttons » feature.

Section "InputClass"
        Identifier "mouse"
        MatchIsPointer "on"
        Driver "libinput"
        Option "MiddleEmulation" "on"
EndSection

Insert it into /etc/X11/xorg.conf.d/41-middle-emulation.conf, reboot (or restart your Xserver) and it should now be enabled.

The evdev driver is still available in the xserver-xorg-input-evdev package.

5.3.4. Upstart supprimé

Due to the lack of upstream maintainers, the Upstart init system has been removed from stretch. If your system relies on this package, you should note that it will not be updated during the lifetime of Debian 9, and starting from Debian 10 (buster), Upstart jobs may be removed from packages.

Please consider switching to a supported init system, like systemd or OpenRC.

5.3.5. The debhelper tool now generates dbgsym packages by default

[Note]Note

Cette section est principalement destinée aux développeurs ou aux organisations construisant leurs propres paquets Debian.

The debhelper tool suite will now generate dbgsym packages by default for ELF binaries. If you develop and package binaries, please check that your tooling supports these extra auto-generated packages.

If you use reprepro, you want to upgrade it to at least version 4.17.0. For aptly, you will need at least version 1.0.0, which is unfortunately not available in Debian stretch.

Should your tooling be unable to cope with these gracefully, you can ask debhelper to disable this feature by adding « noautodbgsym » in the DEB_BUILD_OPTIONS variable of your build service. Please see the dh_strip manpage for more information.

5.3.6. Modifications liées à OpenSSL

L'application openssl attend les arguments optionnels avant les arguments obligatoires. Par exemple, ceci ne fonctionne plus :

openssl dsaparam 2048 -out file

mais ceci fonctionne toujours :

openssl dsaparam -out file 2048

The openssl enc command changed the default digest (used to create the key from passphrase) from MD5 to SHA256. The digest can be specified with the -md option in case old files need to be decrypted with newer OpenSSL (or the other way around).

The 3DES and RC4 ciphers are no longer available for TLS/SSL communication. Servers linked against OpenSSL can't offer them and clients can't connect to servers which offer only those. This means that OpenSSL and Windows XP share no common cipher.

The package libssl-dev provides header files to compile against OpenSSL 1.1.0. The API changed a lot and it is possible that the software won't compile anymore. There is an overview of the changes. If you can't update your software, there is also libssl1.0-dev which provides headers against OpenSSL 1.0.2.

5.3.7. Modifications de Perl pouvant casser des logiciels tiers

[Note]Note

This section applies to code maintained outside Debian - local, third-party, or legacy Perl scripts and modules.

  • Certains modules ont été supprimés du cœur de Perl et sont maintenant livrés dans des paquets séparés. Les exemples notables sont CGI, disponible dans le paquet libcgi-pm-perl, et Module::Build, disponible dans le paquet libmodule-build-perl.

  • The current working directory (.) has been removed from the default list of include directories, @INC. This may affect usage of require(), do(), etc., where the arguments are files in the current directory.

    All perl programs and module shipped by Debian should have been fixed to address any incompatibilities caused by the above; please file bugs if this is not the case. As the change has now been made in perl 5.26.0, third-party software should also start to be fixed. Information about how to fix this issue for developers is provided in the perl 5.26 release notes (see the SECURITY section).

    If needed you can temporarily reinstate . in @INC globally by commenting out the line in /etc/perl/sitecustomize.pl but you should only do this with a understanding of the potential risks. This workaround will be removed in Debian 10. You can also set the PERL_USE_UNSAFE_INC environment variable in a specific context which will have the same effect.

  • La liste complète des modifications dans Perl depuis la version de Debian 8 est disponible dans perl522delta et perl524delta.

5.3.8. PostgreSQL PL/Perl incompatibility

The PostgreSQL PL/Perl procedural language package in jessie is incompatible with the Perl version in stretch. The postgresql-plperl-9.4 package will be removed during the update, rendering server-side Perl procedures dysfunctional. Upgrading to PostgreSQL 9.6 should be unaffected; the procedures will work in the new PostgreSQL cluster if the postgresql-plperl-9.6 package is installed. If unsure, take a backup of your PostgreSQL 9.4 clusters before upgrading to stretch.

5.3.9. net-tools will be deprecated in favor of iproute2

The net-tools package is no longer part of new installations by default, since its priority has been lowered from important to optional. Users are instead advised to use the modern iproute2 toolset (which has been part of new installs for several releases already). If you still prefer to continue using the net-tools programs you can simply install it via

apt install net-tools

[Avertissement]Avertissement

Please keep in mind that net-tools may be uninstalled during the upgrade if it was only installed to satisfy a dependency. If you rely on net-tools, please remember to mark it as a manual installed package before the upgrade via:

apt-mark manual net-tools

Voici une liste des commandes de net-tools, avec la commande équivalente dans iproute2 :

anciennes commandes net-toolscommandes iproute2 de remplacement
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (pour netstat -r), ip -s link (pour netstat -i), ip maddr (pour netstat -g)
routeip r (ip route)

5.3.10. The _netdev mount option is recommended when using AoE (ATA over ethernet) devices

[Note]Note

This only applies to systems that have ATA over ethernet (AoE) devices mounted. If the system does not mount any network shares, you can safely skip this section.

Due to a cleanup in the handling of network deconfiguration, AoE devices in use are no longer handled as expected during shutdown, possibly resulting in hangs and/or data loss. To mitigate that situation, it is suggested to mount such devices using the _netdev mount option. That option is available when using swap over AoE as well.

5.3.11. Harmeless « Unespaced ... in regex is deprecated, ... » warnings during upgrade

During the upgrade, you may see some warning like:

Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ ≶-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.

These are harmless and happens if perl-base is upgraded before the debconf package.