0

Cleanup sysroot_scripts

- Remove UpdatePackageLists* since this functionality was already performed by
  BuildSysroot*.
- Remove the "Revision" key from sysroots.json since the "Sha1Sum" key is enough
  to uniquely identify each sysroot.
- Move packagelist.* into generated_package_lists/*.  There were at least 2
  occasions where folks tried to manually update these files.

R=thestig
BUG=None

Change-Id: Id7f8ea9ade6b2f445997f445412ec2120b3f7770
Reviewed-on: https://chromium-review.googlesource.com/c/1268942
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598043}
This commit is contained in:
Tom Anderson
2018-10-09 19:46:36 +00:00
committed by Commit Bot
parent b0587ce32c
commit 0cfed476d6
11 changed files with 28 additions and 164 deletions

@@ -35,14 +35,10 @@ def get_proc_output(args):
return subprocess.check_output(args).strip() return subprocess.check_output(args).strip()
def build_and_upload(script_path, distro, release, arch, lock): def build_and_upload(script_path, distro, release, arch, lock):
# TODO(thomasanderson): Find out which revision 'git-cl upload' uses to
# calculate the diff against and use that instead of HEAD.
script_dir = os.path.dirname(os.path.realpath(__file__)) script_dir = os.path.dirname(os.path.realpath(__file__))
revision = get_proc_output(['git', '-C', script_dir, 'rev-parse', 'HEAD'])
run_script([script_path, 'UpdatePackageLists%s' % arch]) run_script([script_path, 'BuildSysroot' + arch])
run_script([script_path, 'BuildSysroot%s' % arch]) run_script([script_path, 'UploadSysroot' + arch])
run_script([script_path, 'UploadSysroot%s' % arch, revision])
tarball = '%s_%s_%s_sysroot.tar.xz' % (distro, release, arch.lower()) tarball = '%s_%s_%s_sysroot.tar.xz' % (distro, release, arch.lower())
tarxz_path = os.path.join(script_dir, "..", "..", "..", "out", tarxz_path = os.path.join(script_dir, "..", "..", "..", "out",
@@ -51,10 +47,9 @@ def build_and_upload(script_path, distro, release, arch, lock):
sysroot_dir = '%s_%s_%s-sysroot' % (distro, release, arch.lower()) sysroot_dir = '%s_%s_%s-sysroot' % (distro, release, arch.lower())
sysroot_metadata = { sysroot_metadata = {
'Revision': revision,
'Tarball': tarball, 'Tarball': tarball,
'Sha1Sum': sha1sum, 'Sha1Sum': sha1sum,
'SysrootDir': sysroot_dir 'SysrootDir': sysroot_dir,
} }
with lock: with lock:
with open(os.path.join(script_dir, 'sysroots.json'), 'rw+') as f: with open(os.path.join(script_dir, 'sysroots.json'), 'rw+') as f:

@@ -106,7 +106,6 @@ def GetSysrootDict(target_platform, target_arch):
def InstallSysroot(target_platform, target_arch): def InstallSysroot(target_platform, target_arch):
sysroot_dict = GetSysrootDict(target_platform, target_arch) sysroot_dict = GetSysrootDict(target_platform, target_arch)
revision = sysroot_dict['Revision']
tarball_filename = sysroot_dict['Tarball'] tarball_filename = sysroot_dict['Tarball']
tarball_sha1sum = sysroot_dict['Sha1Sum'] tarball_sha1sum = sysroot_dict['Sha1Sum']
# TODO(thestig) Consider putting this elsewhere to avoid having to recreate # TODO(thestig) Consider putting this elsewhere to avoid having to recreate
@@ -114,7 +113,8 @@ def InstallSysroot(target_platform, target_arch):
linux_dir = os.path.dirname(SCRIPT_DIR) linux_dir = os.path.dirname(SCRIPT_DIR)
sysroot = os.path.join(linux_dir, sysroot_dict['SysrootDir']) sysroot = os.path.join(linux_dir, sysroot_dict['SysrootDir'])
url = '%s/%s/%s/%s' % (URL_PREFIX, URL_PATH, revision, tarball_filename) url = '%s/%s/%s/%s' % (URL_PREFIX, URL_PATH, tarball_sha1sum,
tarball_filename)
stamp = os.path.join(sysroot, '.stamp') stamp = os.path.join(sysroot, '.stamp')
if os.path.exists(stamp): if os.path.exists(stamp):

@@ -61,12 +61,12 @@ readonly PACKAGES_EXT=xz
readonly RELEASE_FILE="Release" readonly RELEASE_FILE="Release"
readonly RELEASE_FILE_GPG="Release.gpg" readonly RELEASE_FILE_GPG="Release.gpg"
readonly DEBIAN_DEP_LIST_AMD64="packagelist.${DIST}.amd64" readonly DEBIAN_DEP_LIST_AMD64="generated_package_lists/${DIST}.amd64"
readonly DEBIAN_DEP_LIST_I386="packagelist.${DIST}.i386" readonly DEBIAN_DEP_LIST_I386="generated_package_lists/${DIST}.i386"
readonly DEBIAN_DEP_LIST_ARM="packagelist.${DIST}.arm" readonly DEBIAN_DEP_LIST_ARM="generated_package_lists/${DIST}.arm"
readonly DEBIAN_DEP_LIST_ARM64="packagelist.${DIST}.arm64" readonly DEBIAN_DEP_LIST_ARM64="generated_package_lists/${DIST}.arm64"
readonly DEBIAN_DEP_LIST_MIPS="packagelist.${DIST}.mipsel" readonly DEBIAN_DEP_LIST_MIPS="generated_package_lists/${DIST}.mipsel"
readonly DEBIAN_DEP_LIST_MIPS64EL="packagelist.${DIST}.mips64el" readonly DEBIAN_DEP_LIST_MIPS64EL="generated_package_lists/${DIST}.mips64el"
###################################################################### ######################################################################
@@ -265,17 +265,6 @@ StripChecksumsFromPackageList() {
sed -i 's/ [a-f0-9]\{64\}$//' "$package_file" sed -i 's/ [a-f0-9]\{64\}$//' "$package_file"
} }
VerifyPackageFilesMatch() {
local downloaded_package_file="$1"
local stored_package_file="$2"
diff -u "$downloaded_package_file" "$stored_package_file"
if [ "$?" -ne "0" ]; then
echo "ERROR: downloaded package files does not match $2."
echo "You may need to run UpdatePackageLists."
exit 1
fi
}
###################################################################### ######################################################################
# #
###################################################################### ######################################################################
@@ -500,11 +489,10 @@ BuildSysrootAmd64() {
return return
fi fi
ClearInstallDir ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_amd64" local package_file="${DEBIAN_DEP_LIST_AMD64}"
GeneratePackageListAmd64 "$package_file" GeneratePackageListAmd64 "$package_file"
local files_and_sha256sums="$(cat ${package_file})" local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file" StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_AMD64"
InstallIntoSysroot ${files_and_sha256sums} InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks CleanupJailSymlinks
HacksAndPatchesAmd64 HacksAndPatchesAmd64
@@ -521,11 +509,10 @@ BuildSysrootI386() {
return return
fi fi
ClearInstallDir ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_i386" local package_file="${DEBIAN_DEP_LIST_I386}"
GeneratePackageListI386 "$package_file" GeneratePackageListI386 "$package_file"
local files_and_sha256sums="$(cat ${package_file})" local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file" StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_I386"
InstallIntoSysroot ${files_and_sha256sums} InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks CleanupJailSymlinks
HacksAndPatchesI386 HacksAndPatchesI386
@@ -542,11 +529,10 @@ BuildSysrootARM() {
return return
fi fi
ClearInstallDir ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_arm" local package_file="${DEBIAN_DEP_LIST_ARM}"
GeneratePackageListARM "$package_file" GeneratePackageListARM "$package_file"
local files_and_sha256sums="$(cat ${package_file})" local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file" StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM"
InstallIntoSysroot ${files_and_sha256sums} InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks CleanupJailSymlinks
HacksAndPatchesARM HacksAndPatchesARM
@@ -563,11 +549,10 @@ BuildSysrootARM64() {
return return
fi fi
ClearInstallDir ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_arm64" local package_file="${DEBIAN_DEP_LIST_ARM64}"
GeneratePackageListARM64 "$package_file" GeneratePackageListARM64 "$package_file"
local files_and_sha256sums="$(cat ${package_file})" local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file" StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM64"
InstallIntoSysroot ${files_and_sha256sums} InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks CleanupJailSymlinks
HacksAndPatchesARM64 HacksAndPatchesARM64
@@ -575,7 +560,6 @@ BuildSysrootARM64() {
CreateTarBall CreateTarBall
} }
#@ #@
#@ BuildSysrootMips #@ BuildSysrootMips
#@ #@
@@ -585,11 +569,10 @@ BuildSysrootMips() {
return return
fi fi
ClearInstallDir ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_mips" local package_file="${DEBIAN_DEP_LIST_MIPS}"
GeneratePackageListMips "$package_file" GeneratePackageListMips "$package_file"
local files_and_sha256sums="$(cat ${package_file})" local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file" StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_MIPS"
InstallIntoSysroot ${files_and_sha256sums} InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks CleanupJailSymlinks
HacksAndPatchesMips HacksAndPatchesMips
@@ -597,7 +580,6 @@ BuildSysrootMips() {
CreateTarBall CreateTarBall
} }
#@ #@
#@ BuildSysrootMips64el #@ BuildSysrootMips64el
#@ #@
@@ -607,11 +589,10 @@ BuildSysrootMips64el() {
return return
fi fi
ClearInstallDir ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_mips64el" local package_file="${DEBIAN_DEP_LIST_MIPS64EL}"
GeneratePackageListMips64el "$package_file" GeneratePackageListMips64el "$package_file"
local files_and_sha256sums="$(cat ${package_file})" local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file" StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_MIPS64EL"
InstallIntoSysroot ${files_and_sha256sums} InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks CleanupJailSymlinks
HacksAndPatchesMips64el HacksAndPatchesMips64el
@@ -633,19 +614,15 @@ BuildSysrootAll() {
} }
UploadSysroot() { UploadSysroot() {
local rev=$1 local sha=$(sha1sum "${TARBALL}" | awk '{print $1;}')
if [ -z "${rev}" ]; then
echo "Please specify a revision to upload at."
exit 1
fi
set -x set -x
gsutil cp -a public-read "${TARBALL}" \ gsutil cp -a public-read "${TARBALL}" \
"gs://chrome-linux-sysroot/toolchain/$rev/" "gs://chrome-linux-sysroot/toolchain/$sha/"
set +x set +x
} }
#@ #@
#@ UploadSysrootAmd64 <revision> #@ UploadSysrootAmd64
#@ #@
UploadSysrootAmd64() { UploadSysrootAmd64() {
if [ "$HAS_ARCH_AMD64" = "0" ]; then if [ "$HAS_ARCH_AMD64" = "0" ]; then
@@ -655,7 +632,7 @@ UploadSysrootAmd64() {
} }
#@ #@
#@ UploadSysrootI386 <revision> #@ UploadSysrootI386
#@ #@
UploadSysrootI386() { UploadSysrootI386() {
if [ "$HAS_ARCH_I386" = "0" ]; then if [ "$HAS_ARCH_I386" = "0" ]; then
@@ -665,7 +642,7 @@ UploadSysrootI386() {
} }
#@ #@
#@ UploadSysrootARM <revision> #@ UploadSysrootARM
#@ #@
UploadSysrootARM() { UploadSysrootARM() {
if [ "$HAS_ARCH_ARM" = "0" ]; then if [ "$HAS_ARCH_ARM" = "0" ]; then
@@ -675,7 +652,7 @@ UploadSysrootARM() {
} }
#@ #@
#@ UploadSysrootARM64 <revision> #@ UploadSysrootARM64
#@ #@
UploadSysrootARM64() { UploadSysrootARM64() {
if [ "$HAS_ARCH_ARM64" = "0" ]; then if [ "$HAS_ARCH_ARM64" = "0" ]; then
@@ -685,7 +662,7 @@ UploadSysrootARM64() {
} }
#@ #@
#@ UploadSysrootMips <revision> #@ UploadSysrootMips
#@ #@
UploadSysrootMips() { UploadSysrootMips() {
if [ "$HAS_ARCH_MIPS" = "0" ]; then if [ "$HAS_ARCH_MIPS" = "0" ]; then
@@ -695,7 +672,7 @@ UploadSysrootMips() {
} }
#@ #@
#@ UploadSysrootMips64el <revision> #@ UploadSysrootMips64el
#@ #@
UploadSysrootMips64el() { UploadSysrootMips64el() {
if [ "$HAS_ARCH_MIPS64EL" = "0" ]; then if [ "$HAS_ARCH_MIPS64EL" = "0" ]; then
@@ -705,7 +682,7 @@ UploadSysrootMips64el() {
} }
#@ #@
#@ UploadSysrootAll <revision> #@ UploadSysrootAll
#@ #@
#@ Upload sysroot image for all architectures #@ Upload sysroot image for all architectures
UploadSysrootAll() { UploadSysrootAll() {
@@ -802,98 +779,6 @@ GeneratePackageList() {
sort "$output_file" -o "$output_file" sort "$output_file" -o "$output_file"
} }
#@
#@ UpdatePackageListsAmd64
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For amd64)
UpdatePackageListsAmd64() {
if [ "$HAS_ARCH_AMD64" = "0" ]; then
return
fi
GeneratePackageListAmd64 "$DEBIAN_DEP_LIST_AMD64"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_AMD64"
}
#@
#@ UpdatePackageListsI386
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For i386)
UpdatePackageListsI386() {
if [ "$HAS_ARCH_I386" = "0" ]; then
return
fi
GeneratePackageListI386 "$DEBIAN_DEP_LIST_I386"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_I386"
}
#@
#@ UpdatePackageListsARM
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For arm)
UpdatePackageListsARM() {
if [ "$HAS_ARCH_ARM" = "0" ]; then
return
fi
GeneratePackageListARM "$DEBIAN_DEP_LIST_ARM"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_ARM"
}
#@
#@ UpdatePackageListsARM64
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For arm64)
UpdatePackageListsARM64() {
if [ "$HAS_ARCH_ARM64" = "0" ]; then
return
fi
GeneratePackageListARM64 "$DEBIAN_DEP_LIST_ARM64"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_ARM64"
}
#@
#@ UpdatePackageListsMips
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For mips)
UpdatePackageListsMips() {
if [ "$HAS_ARCH_MIPS" = "0" ]; then
return
fi
GeneratePackageListMips "$DEBIAN_DEP_LIST_MIPS"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_MIPS"
}
#@
#@ UpdatePackageListsMips64el
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For mips64el)
UpdatePackageListsMips64el() {
if [ "$HAS_ARCH_MIPS64EL" = "0" ]; then
return
fi
GeneratePackageListMips64el "$DEBIAN_DEP_LIST_MIPS64EL"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_MIPS64EL"
}
#@
#@ UpdatePackageListsAll
#@
#@ Regenerate the package lists for all architectures.
UpdatePackageListsAll() {
RunCommand UpdatePackageListsAmd64
RunCommand UpdatePackageListsI386
RunCommand UpdatePackageListsARM
RunCommand UpdatePackageListsARM64
RunCommand UpdatePackageListsMips
RunCommand UpdatePackageListsMips64el
}
#@ #@
#@ PrintArchitectures #@ PrintArchitectures
#@ #@

@@ -1,36 +1,30 @@
{ {
"sid_amd64": { "sid_amd64": {
"Revision": "5758428cde52994cc3e383e603fbd88fe321d42c",
"Sha1Sum": "e7c53f04bd88d29d075bfd1f62b073aeb69cbe09", "Sha1Sum": "e7c53f04bd88d29d075bfd1f62b073aeb69cbe09",
"SysrootDir": "debian_sid_amd64-sysroot", "SysrootDir": "debian_sid_amd64-sysroot",
"Tarball": "debian_sid_amd64_sysroot.tar.xz" "Tarball": "debian_sid_amd64_sysroot.tar.xz"
}, },
"sid_arm": { "sid_arm": {
"Revision": "5758428cde52994cc3e383e603fbd88fe321d42c",
"Sha1Sum": "ef5c4f84bcafb7a3796d36bb1db7826317dde51c", "Sha1Sum": "ef5c4f84bcafb7a3796d36bb1db7826317dde51c",
"SysrootDir": "debian_sid_arm-sysroot", "SysrootDir": "debian_sid_arm-sysroot",
"Tarball": "debian_sid_arm_sysroot.tar.xz" "Tarball": "debian_sid_arm_sysroot.tar.xz"
}, },
"sid_arm64": { "sid_arm64": {
"Revision": "5758428cde52994cc3e383e603fbd88fe321d42c",
"Sha1Sum": "953c2471bc7e71a788309f6c2d2003e8b703305d", "Sha1Sum": "953c2471bc7e71a788309f6c2d2003e8b703305d",
"SysrootDir": "debian_sid_arm64-sysroot", "SysrootDir": "debian_sid_arm64-sysroot",
"Tarball": "debian_sid_arm64_sysroot.tar.xz" "Tarball": "debian_sid_arm64_sysroot.tar.xz"
}, },
"sid_i386": { "sid_i386": {
"Revision": "5758428cde52994cc3e383e603fbd88fe321d42c",
"Sha1Sum": "9e6279438ece6fb42b5333ca90d5e9d0c188a403", "Sha1Sum": "9e6279438ece6fb42b5333ca90d5e9d0c188a403",
"SysrootDir": "debian_sid_i386-sysroot", "SysrootDir": "debian_sid_i386-sysroot",
"Tarball": "debian_sid_i386_sysroot.tar.xz" "Tarball": "debian_sid_i386_sysroot.tar.xz"
}, },
"sid_mips": { "sid_mips": {
"Revision": "5758428cde52994cc3e383e603fbd88fe321d42c",
"Sha1Sum": "958731a68a169631c0450efb15410ccc4135ef2a", "Sha1Sum": "958731a68a169631c0450efb15410ccc4135ef2a",
"SysrootDir": "debian_sid_mips-sysroot", "SysrootDir": "debian_sid_mips-sysroot",
"Tarball": "debian_sid_mips_sysroot.tar.xz" "Tarball": "debian_sid_mips_sysroot.tar.xz"
}, },
"sid_mips64el": { "sid_mips64el": {
"Revision": "5758428cde52994cc3e383e603fbd88fe321d42c",
"Sha1Sum": "51ca1f4092ac76ad1a1da953f0f3ce1aea947a42", "Sha1Sum": "51ca1f4092ac76ad1a1da953f0f3ce1aea947a42",
"SysrootDir": "debian_sid_mips64el-sysroot", "SysrootDir": "debian_sid_mips64el-sysroot",
"Tarball": "debian_sid_mips64el_sysroot.tar.xz" "Tarball": "debian_sid_mips64el_sysroot.tar.xz"

@@ -29,17 +29,7 @@ new packages, skip to `Using build_and_upload.py`.
### Adding new packages ### Adding new packages
To add a new package, edit the `sysroot-creator-*.sh` scripts and modify the To add a new package, edit the `sysroot-creator-*.sh` scripts and modify the
`DEBIAN_PACKAGES` list, then run the update step (`UpdatePackageListsAll`). The `DEBIAN_PACKAGES` list.
steps below will use `sysroot-creator-stretch.sh` as an example.
### Updating existing package list
To update packages to the latest versions run:
$ ./sysroot-creator-stretch.sh UpdatePackageListsAll
This command will update the package lists that are stored alongside the script.
If no packages have changed then this script will have no effect.
### Rebuilding ### Rebuilding
@@ -61,7 +51,7 @@ the one on Google Cloud Storage.
To upload images to Google Cloud Storage run the following command: To upload images to Google Cloud Storage run the following command:
$ ./sysroot-creator-stretch.sh UploadSysrootAll <SHA1> $ ./sysroot-creator-stretch.sh UploadSysrootAll
Here you should use the SHA1 of the git revision at which the images were Here you should use the SHA1 of the git revision at which the images were
created. created.