1*4882a593SmuzhiyunRelease 3.1 (dunfell) 2*4882a593Smuzhiyun===================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto 5*4882a593SmuzhiyunProject 3.1 Release (codename "dunfell") from the prior release. 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun.. _migration-3.1-minimum-system-requirements: 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunMinimum system requirements 10*4882a593Smuzhiyun--------------------------- 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunThe following versions / requirements of build host components have been 13*4882a593Smuzhiyunupdated: 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun- gcc 5.0 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun- python 3.5 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun- tar 1.28 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun- ``rpcgen`` is now required on the host (part of the ``libc-dev-bin`` 22*4882a593Smuzhiyun package on Ubuntu, Debian and related distributions, and the 23*4882a593Smuzhiyun ``glibc`` package on RPM-based distributions). 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunAdditionally, the ``makeinfo`` and ``pod2man`` tools are *no longer* 26*4882a593Smuzhiyunrequired on the host. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun.. _migration-3.1-mpc8315e-rdb-removed: 29*4882a593Smuzhiyun 30*4882a593Smuzhiyunmpc8315e-rdb machine removed 31*4882a593Smuzhiyun---------------------------- 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunThe MPC8315E-RDB machine is old/obsolete and unobtainable, thus given 34*4882a593Smuzhiyunthe maintenance burden the ``mpc8315e-rdb`` machine configuration that 35*4882a593Smuzhiyunsupported it has been removed in this release. The removal does leave a 36*4882a593Smuzhiyungap in official PowerPC reference hardware support; this may change in 37*4882a593Smuzhiyunfuture if a suitable machine with accompanying support resources is 38*4882a593Smuzhiyunfound. 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun.. _migration-3.1-python-2-removed: 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunPython 2 removed 43*4882a593Smuzhiyun---------------- 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunDue to the expiration of upstream support in January 2020, support for 46*4882a593SmuzhiyunPython 2 has now been removed; it is recommended that you use Python 3 47*4882a593Smuzhiyuninstead. If absolutely needed there is a meta-python2 community layer 48*4882a593Smuzhiyuncontaining Python 2, related classes and various Python 2-based modules, 49*4882a593Smuzhiyunhowever it should not be considered as supported. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun.. _migration-3.1-reproducible-builds: 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunReproducible builds now enabled by default 54*4882a593Smuzhiyun------------------------------------------ 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunIn order to avoid unnecessary differences in output files (aiding binary 57*4882a593Smuzhiyunreproducibility), the Poky distribution configuration 58*4882a593Smuzhiyun(``DISTRO = "poky"``) now inherits the ``reproducible_build`` class by 59*4882a593Smuzhiyundefault. 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun.. _migration-3.1-ptest-feature-impact: 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunImpact of ptest feature is now more significant 64*4882a593Smuzhiyun----------------------------------------------- 65*4882a593Smuzhiyun 66*4882a593SmuzhiyunThe Poky distribution configuration (``DISTRO = "poky"``) enables ptests 67*4882a593Smuzhiyunby default to enable runtime testing of various components. In this 68*4882a593Smuzhiyunrelease, a dependency needed to be added that has resulted in a 69*4882a593Smuzhiyunsignificant increase in the number of components that will be built just 70*4882a593Smuzhiyunwhen building a simple image such as core-image-minimal. If you do not 71*4882a593Smuzhiyunneed runtime tests enabled for core components, then it is recommended 72*4882a593Smuzhiyunthat you remove "ptest" from 73*4882a593Smuzhiyun:term:`DISTRO_FEATURES` to save a significant 74*4882a593Smuzhiyunamount of build time e.g. by adding the following in your configuration:: 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun DISTRO_FEATURES_remove = "ptest" 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun.. _migration-3.1-removed-recipes: 79*4882a593Smuzhiyun 80*4882a593SmuzhiyunRemoved recipes 81*4882a593Smuzhiyun--------------- 82*4882a593Smuzhiyun 83*4882a593SmuzhiyunThe following recipes have been removed: 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun- ``chkconfig``: obsolete 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun- ``console-tools``: obsolete 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun- ``enchant``: replaced by ``enchant2`` 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun- ``foomatic-filters``: obsolete 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun- ``libidn``: no longer needed, moved to meta-oe 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun- ``libmodulemd``: replaced by ``libmodulemd-v1`` 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun- ``linux-yocto``: drop 4.19, 5.2 version recipes (5.4 now provided) 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun- ``nspr``: no longer needed, moved to meta-oe 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun- ``nss``: no longer needed, moved to meta-oe 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun- ``python``: Python 2 removed (Python 3 preferred) 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun- ``python-setuptools``: Python 2 version removed (python3-setuptools 106*4882a593Smuzhiyun preferred) 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun- ``sysprof``: no longer needed, moved to meta-oe 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun- ``texi2html``: obsolete 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun- ``u-boot-fw-utils``: functionally replaced by ``libubootenv`` 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun.. _migration-3.1-features-check: 115*4882a593Smuzhiyun 116*4882a593Smuzhiyunfeatures_check class replaces distro_features_check 117*4882a593Smuzhiyun--------------------------------------------------- 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunThe ``distro_features_check`` class has had its functionality expanded, 120*4882a593Smuzhiyunnow supporting ``ANY_OF_MACHINE_FEATURES``, 121*4882a593Smuzhiyun``REQUIRED_MACHINE_FEATURES``, ``CONFLICT_MACHINE_FEATURES``, 122*4882a593Smuzhiyun``ANY_OF_COMBINED_FEATURES``, ``REQUIRED_COMBINED_FEATURES``, 123*4882a593Smuzhiyun``CONFLICT_COMBINED_FEATURES``. As a result the class has now been 124*4882a593Smuzhiyunrenamed to ``features_check``; the ``distro_features_check`` class still 125*4882a593Smuzhiyunexists but generates a warning and redirects to the new class. In 126*4882a593Smuzhiyunpreparation for a future removal of the old class it is recommended that 127*4882a593Smuzhiyunyou update recipes currently inheriting ``distro_features_check`` to 128*4882a593Smuzhiyuninherit :ref:`features_check <ref-classes-features_check>` instead. 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun.. _migration-3.1-removed-classes: 131*4882a593Smuzhiyun 132*4882a593SmuzhiyunRemoved classes 133*4882a593Smuzhiyun--------------- 134*4882a593Smuzhiyun 135*4882a593SmuzhiyunThe following classes have been removed: 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun- ``distutils-base``: moved to meta-python2 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun- ``distutils``: moved to meta-python2 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun- ``libc-common``: merged into the glibc recipe as nothing else used 142*4882a593Smuzhiyun it. 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun- ``python-dir``: moved to meta-python2 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun- ``pythonnative``: moved to meta-python2 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun- ``setuptools``: moved to meta-python2 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun- ``tinderclient``: dropped as it was obsolete. 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun.. _migration-3.1-src-uri-checksums: 153*4882a593Smuzhiyun 154*4882a593SmuzhiyunSRC_URI checksum behaviour 155*4882a593Smuzhiyun-------------------------- 156*4882a593Smuzhiyun 157*4882a593SmuzhiyunPreviously, recipes by tradition included both SHA256 and MD5 checksums 158*4882a593Smuzhiyunfor remotely fetched files in :term:`SRC_URI`, even 159*4882a593Smuzhiyunthough only one is actually mandated. However, the MD5 checksum does not 160*4882a593Smuzhiyunadd much given its inherent weakness; thus when a checksum fails only 161*4882a593Smuzhiyunthe SHA256 sum will now be printed. The md5sum will still be verified if 162*4882a593Smuzhiyunit is specified. 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun.. _migration-3.1-npm: 165*4882a593Smuzhiyun 166*4882a593Smuzhiyunnpm fetcher changes 167*4882a593Smuzhiyun------------------- 168*4882a593Smuzhiyun 169*4882a593SmuzhiyunThe npm fetcher has been completely reworked in this release. The npm 170*4882a593Smuzhiyunfetcher now only fetches the package source itself and no longer the 171*4882a593Smuzhiyundependencies; there is now also an npmsw fetcher which explicitly 172*4882a593Smuzhiyunfetches the shrinkwrap file and the dependencies. This removes the 173*4882a593Smuzhiyunslightly awkward ``NPM_LOCKDOWN`` and ``NPM_SHRINKWRAP`` variables which 174*4882a593Smuzhiyunpointed to local files; the lockdown file is no longer needed at all. 175*4882a593SmuzhiyunAdditionally, the package name in ``npm://`` entries in 176*4882a593Smuzhiyun:term:`SRC_URI` is now specified using a ``package`` 177*4882a593Smuzhiyunparameter instead of the earlier ``name`` which overlapped with the 178*4882a593Smuzhiyungeneric ``name`` parameter. All recipes using the npm fetcher will need 179*4882a593Smuzhiyunto be changed as a result. 180*4882a593Smuzhiyun 181*4882a593SmuzhiyunAn example of the new scheme:: 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun SRC_URI = "npm://registry.npmjs.org;package=array-flatten;version=1.1.1 \ 184*4882a593Smuzhiyun npmsw://${THISDIR}/npm-shrinkwrap.json" 185*4882a593Smuzhiyun 186*4882a593SmuzhiyunAnother example where the sources are fetched from git rather than an npm repository:: 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun SRC_URI = "git://github.com/foo/bar.git;protocol=https \ 189*4882a593Smuzhiyun npmsw://${THISDIR}/npm-shrinkwrap.json" 190*4882a593Smuzhiyun 191*4882a593Smuzhiyundevtool and recipetool have also been updated to match with the npm 192*4882a593Smuzhiyunfetcher changes. Other than producing working and more complete recipes 193*4882a593Smuzhiyunfor npm sources, there is also a minor change to the command line for 194*4882a593Smuzhiyundevtool: the ``--fetch-dev`` option has been renamed to ``--npm-dev`` as 195*4882a593Smuzhiyunit is npm-specific. 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun.. _migration-3.1-packaging-changes: 198*4882a593Smuzhiyun 199*4882a593SmuzhiyunPackaging changes 200*4882a593Smuzhiyun----------------- 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun- ``intltool`` has been removed from ``packagegroup-core-sdk`` as it is 203*4882a593Smuzhiyun rarely needed to build modern software - gettext can do most of the 204*4882a593Smuzhiyun things it used to be needed for. ``intltool`` has also been removed 205*4882a593Smuzhiyun from ``packagegroup-core-self-hosted`` as it is not needed to for 206*4882a593Smuzhiyun standard builds. 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun- git: ``git-am``, ``git-difftool``, ``git-submodule``, and 209*4882a593Smuzhiyun ``git-request-pull`` are no longer perl-based, so are now installed 210*4882a593Smuzhiyun with the main ``git`` package instead of within ``git-perltools``. 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun- The ``ldconfig`` binary built as part of glibc has now been moved to 213*4882a593Smuzhiyun its own ``ldconfig`` package (note no ``glibc-`` prefix). This 214*4882a593Smuzhiyun package is in the :term:`RRECOMMENDS` of the main 215*4882a593Smuzhiyun ``glibc`` package if ``ldconfig`` is present in 216*4882a593Smuzhiyun :term:`DISTRO_FEATURES`. 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun- ``libevent`` now splits each shared library into its own package (as 219*4882a593Smuzhiyun Debian does). Since these are shared libraries and will be pulled in 220*4882a593Smuzhiyun through the normal shared library dependency handling, there should 221*4882a593Smuzhiyun be no impact to existing configurations other than less unnecessary 222*4882a593Smuzhiyun libraries being installed in some cases. 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun- linux-firmware now has a new package for ``bcm4366c`` and includes 225*4882a593Smuzhiyun available NVRAM config files into the ``bcm43340``, ``bcm43362``, 226*4882a593Smuzhiyun ``bcm43430`` and ``bcm4356-pcie`` packages. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun- ``harfbuzz`` now splits the new ``libharfbuzz-subset.so`` library 229*4882a593Smuzhiyun into its own package to reduce the main package size in cases where 230*4882a593Smuzhiyun ``libharfbuzz-subset.so`` is not needed. 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun.. _migration-3.1-package-qa-warnings: 233*4882a593Smuzhiyun 234*4882a593SmuzhiyunAdditional warnings 235*4882a593Smuzhiyun------------------- 236*4882a593Smuzhiyun 237*4882a593SmuzhiyunWarnings will now be shown at ``do_package_qa`` time in the following 238*4882a593Smuzhiyuncircumstances: 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun- A recipe installs ``.desktop`` files containing ``MimeType`` keys but 241*4882a593Smuzhiyun does not inherit the new ``mime-xdg`` class 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun- A recipe installs ``.xml`` files into ``${datadir}/mime/packages`` 244*4882a593Smuzhiyun but does not inherit the :ref:`mime <ref-classes-mime>` class 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun.. _migration-3.1-x86-live-wic: 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun``wic`` image type now used instead of ``live`` by default for x86 249*4882a593Smuzhiyun------------------------------------------------------------------ 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun``conf/machine/include/x86-base.inc`` (inherited by most x86 machine 252*4882a593Smuzhiyunconfigurations) now specifies ``wic`` instead of ``live`` by default in 253*4882a593Smuzhiyun:term:`IMAGE_FSTYPES`. The ``live`` image type will 254*4882a593Smuzhiyunlikely be removed in a future release so it is recommended that you use 255*4882a593Smuzhiyun``wic`` instead. 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun.. _migration-3.1-misc: 258*4882a593Smuzhiyun 259*4882a593SmuzhiyunMiscellaneous changes 260*4882a593Smuzhiyun--------------------- 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun- The undocumented ``SRC_DISTRIBUTE_LICENSES`` variable has now been 263*4882a593Smuzhiyun removed in favour of a new ``AVAILABLE_LICENSES`` variable which is 264*4882a593Smuzhiyun dynamically set based upon license files found in 265*4882a593Smuzhiyun ``${COMMON_LICENSE_DIR}`` and ``${LICENSE_PATH}``. 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun- The tune definition for big-endian microblaze machines is now 268*4882a593Smuzhiyun ``microblaze`` instead of ``microblazeeb``. 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun- ``newlib`` no longer has built-in syscalls. ``libgloss`` should then 271*4882a593Smuzhiyun provide the syscalls, ``crt0.o`` and other functions that are no 272*4882a593Smuzhiyun longer part of ``newlib`` itself. If you are using 273*4882a593Smuzhiyun ``TCLIBC = "newlib"`` this now means that you must link applications 274*4882a593Smuzhiyun with both ``newlib`` and ``libgloss``, whereas before ``newlib`` 275*4882a593Smuzhiyun would run in many configurations by itself. 276