diff --git a/docs/manual/migrating.adoc b/docs/manual/migrating.adoc index 5a09c852c7..ed2be1c6c9 100644 --- a/docs/manual/migrating.adoc +++ b/docs/manual/migrating.adoc @@ -138,42 +138,49 @@ The download backends have been extended in various ways. * The git download backend now properly expands the `export-subst` https://git-scm.com/docs/gitattributes[git attribute] when generating archives. +* A newer +tar+ version, _1.35_, is required to generate the archives. + For compatibility reasons, +tar+ 1.35 changes the way it stores some + fields (`devmajor` and `devminor`), which has an impact in the metadata + stored in the archives (but the content of files is not affected). To accomodate those changes, the archive suffix has been updated or added: -* for git: +-git3+ -* for subversion: +-svn4+ -* for cargo (rust) packages: +-cargo1+ -* for go packages: +-go1+ +* for git: +-git4+ +* for subversion: +-svn5+ +* for cargo (rust) packages: +-cargo2+ +* for go packages: +-go2+ Note that, if two such prefixes would apply to a generated archive, like for a cargo package downloaded from git, both suffixes need to be added, first the one for the download mechanism, then the one for the vendoring, -e.g.: +libfoo-1.2.3-git3-cargo1.tar.gz+. +e.g.: +libfoo-1.2.3-git4-cargo2.tar.gz+. Because of this, the hash file of any custom packages or custom versions -for kernel and bootloaders must be updated. In most cases, the hash itself -will not have changed. In that case, the following sed scripts can automate -the rename in the hash file (assuming such files are kept under git). +for kernel and bootloaders must be updated. The following sed scripts can +automate the rename in the hash file (assuming such files are kept under +git): ---- # For git and svn packages, which originally had -br2 resp. -br3 suffix -sed -r -i -e 's/-br2/-git3/; s/-br3/-svn4/' $( +sed -r -i -e 's/-br2/-git4/; s/-br3/-svn5/' $( git grep -l -E -- '-br2|-br3' -- '*.hash' ) # For go packages, which originally had no suffix -sed -r -i -e 's/(\.tar\.gz)$/-go1\1/' $( +sed -r -i -e 's/(\.tar\.gz)$/-go2\1/' $( git grep -l -E '\$\(eval \$\((host-)?golang-package\)\)' -- '*.mk' \ |sed -r -e 's/\.mk$/.hash/' \ |sort -u ) # For cargo packages, which originally had no suffix -sed -r -i -e 's/(\.tar\.gz)$/-cargo1\1/' $( +sed -r -i -e 's/(\.tar\.gz)$/-cargo2\1/' $( git grep -l -E '\$\(eval \$\((host-)?cargo-package\)\)' -- '*.mk' \ |sed -r -e 's/\.mk$/.hash/' \ |sort -u ) ---- + +Note that the hash _will_ have changed, so that needs to be updated +(manually) as well.