From: Matthias Klose <doko@ubuntu.com>
To: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: [patch] build xz (instead of bz2) compressed tarballs and diffs
Date: Mon, 15 May 2017 01:35:00 -0000 [thread overview]
Message-ID: <421aad71-31d2-ec16-9c8b-4b1eaefda201@ubuntu.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 447 bytes --]
As discussed on IRC with Jakub and Richard here are is a small patch which
builds xz compressed tarballs and diff files.
Tested with
maintainer-scripts/gcc_release \
-s snap:trunk -p <old bz2 tarball> diffs sources tarfiles
maintainer-scripts/gcc_release \
-s snap:trunk -p <old xz tarball> diffs sources tarfiles
and checked that the new tarball and diff files are compressed using xz.
Ok for the trunk and the gcc-7-branch?
Matthias
[-- Attachment #2: xz-releases.diff --]
[-- Type: text/plain, Size: 5027 bytes --]
maintainer-scripts/
2017-05-14 Matthias Klose <doko@ubuntu.com>
* gcc_release (build_gzip): Build xz tarball instead of bz2 tarball.
(build_diffs): Handle building diffs from either bz2 or xz tarballs,
compress diffs using xz instead of bz2.
(build_diff): Likewise.
(upload_files): Check for *.xz files instead of *.bz2 files.
(announce_snapshot): Announce xz tarball instead of bz2 tarball.
(XZ): New definition.
(<toplevel>): Look for both bz2 and xz compressed old tarballs.
Index: maintainer-scripts/gcc_release
===================================================================
--- maintainer-scripts/gcc_release (revision 248041)
+++ maintainer-scripts/gcc_release (working copy)
@@ -221,7 +221,7 @@
# Create a "MD5SUMS" file to use for checking the validity of the release.
echo \
"# This file contains the MD5 checksums of the files in the
-# gcc-"${RELEASE}".tar.bz2 tarball.
+# gcc-"${RELEASE}".tar.xz tarball.
#
# Besides verifying that all files in the tarball were correctly expanded,
# it also can be used to determine if any files have changed since the
@@ -244,11 +244,11 @@
build_tarfile() {
# Get the name of the destination tar file.
- TARFILE="$1.tar.bz2"
+ TARFILE="$1.tar.xz"
shift
# Build the tar file itself.
- (${TAR} cf - "$@" | ${BZIP2} > ${TARFILE}) || \
+ (${TAR} cf - "$@" | ${XZ} > ${TARFILE}) || \
error "Could not build tarfile"
FILE_LIST="${FILE_LIST} ${TARFILE}"
}
@@ -273,8 +273,8 @@
# Build .gz files.
build_gzip() {
for f in ${FILE_LIST}; do
- target=${f%.bz2}.gz
- (${BZIP2} -d -c $f | ${GZIP} > ${target}) || error "Could not create ${target}"
+ target=${f%.xz}.gz
+ (${XZ} -d -c $f | ${GZIP} > ${target}) || error "Could not create ${target}"
done
}
@@ -282,12 +282,19 @@
build_diffs() {
old_dir=${1%/*}
old_file=${1##*/}
- old_vers=${old_file%.tar.bz2}
+ case "$old_file" in
+ *.tar.xz) old_vers=${old_file%.tar.xz};;
+ *) old_vers=${old_file%.tar.bz2};;
+ esac
old_vers=${old_vers#gcc-}
inform "Building diffs against version $old_vers"
for f in gcc; do
- old_tar=${old_dir}/${f}-${old_vers}.tar.bz2
- new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.bz2
+ if [ -e ${old_dir}/${f}-${old_vers}.tar.xz ]; then
+ old_tar=${old_dir}/${f}-${old_vers}.tar.xz
+ else
+ old_tar=${old_dir}/${f}-${old_vers}.tar.bz2
+ fi
+ new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.xz
if [ ! -e $old_tar ]; then
inform "$old_tar not found; not generating diff file"
elif [ ! -e $new_tar ]; then
@@ -294,7 +301,7 @@
inform "$new_tar not found; not generating diff file"
else
build_diff $old_tar gcc-${old_vers} $new_tar gcc-${RELEASE} \
- ${f}-${old_vers}-${RELEASE}.diff.bz2
+ ${f}-${old_vers}-${RELEASE}.diff.xz
fi
done
}
@@ -305,13 +312,20 @@
tmpdir=gccdiff.$$
mkdir $tmpdir || error "Could not create directory $tmpdir"
changedir $tmpdir
- (${BZIP2} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs"
- (${BZIP2} -d -c $3 | ${TAR} xf - ) || error "Could not unpack $3 for diffs"
- ${DIFF} $2 $4 > ../${5%.bz2}
+ case "$1" in
+ *.tar.bz2)
+ (${BZIP2} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs"
+ ;;
+ *.tar.xz)
+ (${XZ} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs"
+ ;;
+ esac
+ (${XZ} -d -c $3 | ${TAR} xf - ) || error "Could not unpack $3 for diffs"
+ ${DIFF} $2 $4 > ../${5%.xz}
if [ $? -eq 2 ]; then
error "Trouble making diffs from $1 to $3"
fi
- ${BZIP2} ../${5%.bz2} || error "Could not generate ../$5"
+ ${XZ} ../${5%.xz} || error "Could not generate ../$5"
changedir ..
rm -rf $tmpdir
FILE_LIST="${FILE_LIST} $5"
@@ -335,7 +349,7 @@
fi
# Then copy files to their respective (sub)directories.
- for x in gcc*.gz gcc*.bz2; do
+ for x in gcc*.gz gcc*.xz; do
if [ -e ${x} ]; then
# Make sure the file will be readable on the server.
chmod a+r ${x}
@@ -410,7 +424,7 @@
<table>" > ${SNAPSHOT_INDEX}
- snapshot_print gcc-${RELEASE}.tar.bz2 "Complete GCC"
+ snapshot_print gcc-${RELEASE}.tar.xz "Complete GCC"
echo \
"Diffs from "${BRANCH}"-"${LAST_DATE}" are available in the diffs/ subdirectory.
@@ -528,12 +542,13 @@
MODE_TARFILES=0
MODE_UPLOAD=0
-# List of archive files generated; used to create .gz files from .bz2.
+# List of archive files generated; used to create .gz files from .xz.
FILE_LIST=""
# Programs we use.
BZIP2="${BZIP2:-bzip2}"
+XZ="${XZ:-xz --best}"
CVS="${CVS:-cvs -f -Q -z9}"
DIFF="${DIFF:-diff -Nrcpad}"
ENV="${ENV:-env}"
@@ -644,6 +659,9 @@
if [ $MODE_DIFFS -ne 0 ] && [ $LOCAL -ne 0 ] && [ -z "${OLD_TARS}" ]; then
LAST_DATE=`cat ~/.snapshot_date-${BRANCH}`
OLD_TARS=${SNAPSHOTS_DIR}/${BRANCH}-${LAST_DATE}/gcc-${BRANCH}-${LAST_DATE}.tar.bz2
+ if [ ! -e $OLD_TARS ]; then
+ OLD_TARS=${SNAPSHOTS_DIR}/${BRANCH}-${LAST_DATE}/gcc-${BRANCH}-${LAST_DATE}.tar.xz
+ fi
fi
fi
next reply other threads:[~2017-05-15 1:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-15 1:35 Matthias Klose [this message]
2017-05-15 14:11 ` Joseph Myers
2017-05-15 14:15 ` Markus Trippelsdorf
2017-05-15 18:38 ` Jakub Jelinek
2017-05-15 19:13 ` Markus Trippelsdorf
2017-05-23 23:22 ` Matthias Klose
2017-05-18 10:41 ` Richard Biener
2017-05-23 23:56 ` Matthias Klose
2017-05-24 7:23 ` Richard Biener
2017-05-24 19:21 ` Gerald Pfeifer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=421aad71-31d2-ec16-9c8b-4b1eaefda201@ubuntu.com \
--to=doko@ubuntu.com \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).