diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2017-10-11 21:56:53 +0200 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2019-02-16 10:10:47 +0000 |
commit | c708dc5a84503d580cb23e21699184809cef4f9a (patch) | |
tree | bf2df658fa3ce673d731face0eec9ed8247e2cff | |
parent | Gentoo: add --with-extra-soversion-suffix= option (diff) | |
download | binutils-gdb-gentoo/binutils-2.32-1.tar.gz binutils-gdb-gentoo/binutils-2.32-1.tar.bz2 binutils-gdb-gentoo/binutils-2.32-1.zip |
[no patch] Gentoo: Add patch tarball generation scriptgentoo/binutils-2.32-1
(cherry picked from commit 90427abb2aac0cc4ebcb73397cc3ad574c6fec5d)
-rw-r--r-- | scripts/gentoo/0000-Gentoo-Git-is-development | 12 | ||||
-rw-r--r-- | scripts/gentoo/9999-Gentoo-We-make-a-release | 12 | ||||
-rw-r--r-- | scripts/gentoo/README.Gentoo.patches | 31 | ||||
-rwxr-xr-x | scripts/gentoo/make-tarball.sh | 118 |
4 files changed, 173 insertions, 0 deletions
diff --git a/scripts/gentoo/0000-Gentoo-Git-is-development b/scripts/gentoo/0000-Gentoo-Git-is-development new file mode 100644 index 00000000000..2b9482d0331 --- /dev/null +++ b/scripts/gentoo/0000-Gentoo-Git-is-development @@ -0,0 +1,12 @@ +Gentoo: Git is development + +--- a/bfd/development.sh ++++ b/bfd/development.sh +@@ -16,5 +16,5 @@ + # along with this program. If not, see <http://www.gnu.org/licenses/>. + + # Controls whether to enable development-mode features by default. +-development=false ++development=true + + diff --git a/scripts/gentoo/9999-Gentoo-We-make-a-release b/scripts/gentoo/9999-Gentoo-We-make-a-release new file mode 100644 index 00000000000..fea66d97b4a --- /dev/null +++ b/scripts/gentoo/9999-Gentoo-We-make-a-release @@ -0,0 +1,12 @@ +Gentoo: We make a release, so switch development flag off + +--- a/bfd/development.sh ++++ b/bfd/development.sh +@@ -16,5 +16,5 @@ + # along with this program. If not, see <http://www.gnu.org/licenses/>. + + # Controls whether to enable development-mode features by default. +-development=true ++development=false + + diff --git a/scripts/gentoo/README.Gentoo.patches b/scripts/gentoo/README.Gentoo.patches new file mode 100644 index 00000000000..504dc671271 --- /dev/null +++ b/scripts/gentoo/README.Gentoo.patches @@ -0,0 +1,31 @@ + ============ + === What === + ============ + +Gentoo patchsets for binutils are maintained as vendor branches of the upstream +binutils-glb git repository. From there, we bundle all the commits into a tarball +and distribute it via our public mirroring system. + +If you want specific info about a patch (like what it does or whose great idea +it was to change the code), read the patch! We try to fill out the commit +messages with useful info such as what it does, why it's needed, bug reports, +original creators, etc... + + ============= + === Where === + ============= + +Currently, https://github.com/gentoo/binutils-gdb + + =========== + === How === + =========== + +The patch naming convention is precisely as generated by "git format-patch". + +All patches should apply with -p1 (so they can be used both with the legacy +epatch function and the new, more strict eapply function). + +Commits where the commit message starts with "[no patch]" will not be included +in the patch tarball. This is useful for changes to the tarball generation +script, or for the addition of extra files that are not patches. diff --git a/scripts/gentoo/make-tarball.sh b/scripts/gentoo/make-tarball.sh new file mode 100755 index 00000000000..36bb74baebe --- /dev/null +++ b/scripts/gentoo/make-tarball.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +PN="binutils" +PV=$1 +pver=$2 + +if [[ -z ${PV} ]] ; then + echo "Usage: $0 binutils-version patchset-version-to-be-created" + echo "Please read the script before trying to use it :)" + exit 1 +fi + +# check that we're in the root of a binutils-gdb git repo + +if [[ ! -f COPYING.LIBGLOSS ]] || [[ ! -d .git ]] ; then + echo "Error: You need to call this script in the main directory of a Gentoo binutils-gdb git clone" + exit 1 +fi + +# check that we're on a branch gentoo/${PV} + +mybranchinfo=$(git status --porcelain -b|grep '^##') +mybranch=$(echo ${mybranchinfo}|sed -e 's:^## ::' -e 's:\.\.\..*$::') +if [[ ! "gentoo/binutils-${PV}" == "${mybranch}" ]] ; then + echo "Error: Your git repository is on the incorrect branch ${mybranch}; should be gentoo/binutils-${PV}" + exit 1 +fi + +# check that the working directory is clean + +mystatusinfo=$(git status --porcelain) +if [[ ! -z "${mystatusinfo}" ]] ; then + echo "Error: Your working directory is not clean" + exit 1 +fi + +# check if the tag already exists + +mytaginfo=$(git tag -l|grep "gentoo/binutils-${PV}-${pver}") +if [[ ! -z "${mytaginfo}" ]] ; then + echo "Error: A tag corresponding to this patch level already exists (gentoo/glibc-${PV}-${pver})" + exit 1 +fi + +# luckily binutils git has no /tmp dir and no tar.xz files, but let's better check and be pathologically careful + +if [[ -e tmp ]] || [[ -e ${PN}-${PV}-patches-${pver}.tar.xz ]] ; then + echo "Error: tmp or ${PN}-${PV}-patches-${pver}.tar.xz exists in git" + exit 1 +fi +rm -rf tmp +rm -f ${PN}-${PV}-*.tar.bz2 + +for myname in 0*.patch ; do + if [[ -e "${myname}" ]]; then + echo "Error: ${myname} exists in git" + exit 1 + fi +done +rm -f 0*.patch + +# check if we have to override the upstream tag + +mytaginfo=$(git tag -l|grep "gentoo/binutils-${PV}-upstream") +if [[ ! -z "${mytaginfo}" ]] ; then + starttag="gentoo/binutils-${PV}-upstream" +else + starttag="binutils-${PV//./_}" +fi +if [[ "${PV}" == "9999" ]]; then + starttag="master" +fi +echo "Starting from tag ${starttag}" + +mkdir -p tmp/patch + +# copy README.Gentoo.patches + +cp scripts/gentoo/README.Gentoo.patches tmp/ || exit 1 + +# create and rename patches + +git format-patch ${starttag}..HEAD > /dev/null || exit 1 + +# remove all patches where the summary line starts with: +# - [no-tarball]: not related to upstream tarball +# - [no-patch]: not related to upstream patches +# - "Automatic date update in version.in": daily bumps +rm -f 0???-no-tarball-*.patch +rm -f 0???-no-patch-*.patch +rm -f 0???-Automatic-date-update-in-version.in.patch + +for myname in 0*.patch ; do + mv ${myname} tmp/patch/ || exit 1 +done + +# add the extra patch if needed + +if [[ "${PV}" != "9999" ]]; then + cp scripts/gentoo/0000-Gentoo-Git-is-development tmp/patch/0000-Gentoo-Git-is-development.patch || exit 1 + cp scripts/gentoo/9999-Gentoo-We-make-a-release tmp/patch/9999-Gentoo-We-make-a-release.patch || exit 1 +fi + +# add a history file + +git log --stat --decorate ${starttag}..HEAD > tmp/patch/README.history || exit 1 + +# package everything up + +tar -Jcf ${PN}-${PV}-patches-${pver}.tar.xz \ + -C tmp patch README.Gentoo.patches || exit 1 +rm -r tmp + +du -b *.tar.xz + +# tag the commit + +git tag -s -m "Gentoo patchset binutils-${PV}-${pver}" "gentoo/binutils-${PV}-${pver}" |