aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2017-10-11 21:56:53 +0200
committerAndreas K. Hüttel <dilfridge@gentoo.org>2019-10-13 05:49:12 +0200
commit80b71b7327c3e9b3199919072db63fd0c1e90141 (patch)
treea8565d767b83ce13cafa879f1b570deae3a917d1
parentGentoo: add --with-extra-soversion-suffix= option (diff)
downloadbinutils-gdb-80b71b7327c3e9b3199919072db63fd0c1e90141.tar.gz
binutils-gdb-80b71b7327c3e9b3199919072db63fd0c1e90141.tar.bz2
binutils-gdb-80b71b7327c3e9b3199919072db63fd0c1e90141.zip
[no patch] Gentoo: Add patch tarball generation script
(cherry picked from commit 90427abb2aac0cc4ebcb73397cc3ad574c6fec5d) (cherry picked from commit 8453cdd006a0457d0b3130dae98ebbdfda46673b)
-rw-r--r--scripts/gentoo/0000-Gentoo-Git-is-development12
-rw-r--r--scripts/gentoo/9999-Gentoo-We-make-a-release12
-rw-r--r--scripts/gentoo/README.Gentoo.patches31
-rwxr-xr-xscripts/gentoo/make-tarball.sh118
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 0000000000..2b9482d033
--- /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 0000000000..fea66d97b4
--- /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 0000000000..504dc67127
--- /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 0000000000..575f48bf6a
--- /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/binutils-${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}"