From ff6af5ea8ff750ee47946643a1d702475582c307 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Mon, 5 Aug 2013 22:33:13 -0400 Subject: [PATCH 1/4] feat(set_lsb_release): Add special "sdk" track without an update server. I want to start including version info in SDK builds as an alternative scheme to the existing "chroot_version_hooks" system which always assumes freshly unpacked SDKs are the latest regardless of what version they actually were. --- build_library/set_lsb_release | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build_library/set_lsb_release b/build_library/set_lsb_release index 93bb9cc737..27a54f40aa 100755 --- a/build_library/set_lsb_release +++ b/build_library/set_lsb_release @@ -36,7 +36,11 @@ if [[ -n "${FLAGS_production_track}" ]]; then COREOS_VERSION_TRACK="${FLAGS_production_track}" COREOS_VERSION_DESCRIPTION="${COREOS_VERSION_STRING} (Official Build) \ ${COREOS_VERSION_TRACK} $FLAGS_board test" - COREOS_VERSION_AUSERVER="https://api.core-os.net/v1/update/" + if [[ "${FLAGS_production_track}" != "sdk" ]]; then + COREOS_VERSION_AUSERVER="https://api.core-os.net/v1/update/" + else + COREOS_VERSION_AUSERVER="" + fi COREOS_VERSION_DEVSERVER="" else # Developer hand-builds From a21a545f2e16c64cdbba71e7a9ef782b88bc1048 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Mon, 5 Aug 2013 22:38:34 -0400 Subject: [PATCH 2/4] fix(set_lsb_release): Make sure $ROOT/etc exists. Useful for generating a root filesystem overlay that catalyst can apply. --- build_library/set_lsb_release | 1 + 1 file changed, 1 insertion(+) diff --git a/build_library/set_lsb_release b/build_library/set_lsb_release index 27a54f40aa..2d67b20870 100755 --- a/build_library/set_lsb_release +++ b/build_library/set_lsb_release @@ -67,6 +67,7 @@ fi # COREOS_RELEASE_TRACK and COREOS_RELEASE_VERSION are used by the software # update service. # DISTRIB_* are the standard names for the same values. +sudo mkdir -p "${ROOT_FS_DIR}/etc" sudo_clobber "${ROOT_FS_DIR}/etc/lsb-release" < Date: Mon, 5 Aug 2013 22:44:27 -0400 Subject: [PATCH 3/4] fix(bootstrap_sdk): skip final release goo if stage4 wasn't built --- bootstrap_sdk | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/bootstrap_sdk b/bootstrap_sdk index 30b4e7c378..25f161b306 100755 --- a/bootstrap_sdk +++ b/bootstrap_sdk @@ -57,32 +57,34 @@ catalyst_init "$@" check_gsutil_opts catalyst_build -info "Build complete! Changing output name to something more sensible." -build_name="stage4-${ARCH}-${FLAGS_version}.tar.bz2" -release_name="${TYPE}-${ARCH}-${FLAGS_version}.tar.bz2" -ln -f "$BUILDS/${build_name}" "$BUILDS/${release_name}" -ln -f "$BUILDS/${build_name}.CONTENTS" "$BUILDS/${release_name}.CONTENTS" -sed -e "s/${build_name}/${release_name}/" \ - "$BUILDS/${build_name}.DIGESTS" > "$BUILDS/${release_name}.DIGESTS" +if [[ "$STAGES" =~ stage4 ]]; then + info "Build complete! Changing output name to something more sensible." + build_name="stage4-${ARCH}-${FLAGS_version}.tar.bz2" + release_name="${TYPE}-${ARCH}-${FLAGS_version}.tar.bz2" + ln -f "$BUILDS/${build_name}" "$BUILDS/${release_name}" + ln -f "$BUILDS/${build_name}.CONTENTS" "$BUILDS/${release_name}.CONTENTS" + sed -e "s/${build_name}/${release_name}/" \ + "$BUILDS/${build_name}.DIGESTS" > "$BUILDS/${release_name}.DIGESTS" -# Validate we didn't break the DIGESTS with sed -for hash_type in md5 sha1 sha512; do - info "Validating ${hash_type} DIGESTS" - # shash is what's used to generate these multi-hash digests but it - # doesn't exit with non-zero on failure. I mean seriously... - #shash -c "$BUILDS/${release_name}.DIGESTS" -a "${hash_type}" - # So we do it the hard way... - grep -qi "^# ${hash_type} HASH$" "$BUILDS/${release_name}.DIGESTS" - (cd "$BUILDS" && grep -A1 -i "^# ${hash_type} HASH$" \ - "${release_name}.DIGESTS" | grep -v '^--$' | \ - ${hash_type}sum -c - --strict) -done + # Validate we didn't break the DIGESTS with sed + for hash_type in md5 sha1 sha512; do + info "Validating ${hash_type} DIGESTS" + # shash is what's used to generate these multi-hash digests but it + # doesn't exit with non-zero on failure. I mean seriously... + #shash -c "$BUILDS/${release_name}.DIGESTS" -a "${hash_type}" + # So we do it the hard way... + grep -qi "^# ${hash_type} HASH$" "$BUILDS/${release_name}.DIGESTS" + (cd "$BUILDS" && grep -A1 -i "^# ${hash_type} HASH$" \ + "${release_name}.DIGESTS" | grep -v '^--$' | \ + ${hash_type}sum -c - --strict) + done -info "SDK ready: $BUILDS/${release_name}" + info "SDK ready: $BUILDS/${release_name}" -def_upload_path="${UPLOAD_ROOT}/sdk/${ARCH}/${FLAGS_version}" -upload_files "tarball" "${def_upload_path}" "" "$BUILDS/${release_name}" \ - "$BUILDS/${release_name}.CONTENTS" "$BUILDS/${release_name}.DIGESTS" -upload_files "packages" "${def_upload_path}" "pkgs/" "${BINPKGS}"/* + def_upload_path="${UPLOAD_ROOT}/sdk/${ARCH}/${FLAGS_version}" + upload_files "tarball" "${def_upload_path}" "" "$BUILDS/${release_name}" \ + "$BUILDS/${release_name}.CONTENTS" "$BUILDS/${release_name}.DIGESTS" + upload_files "packages" "${def_upload_path}" "pkgs/" "${BINPKGS}"/* +fi command_completed From 9794ab32b1626bf859dd62f53abc984a9d31eb3d Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Mon, 5 Aug 2013 22:53:58 -0400 Subject: [PATCH 4/4] feat(bootstrap_sdk): Add release data to SDK tarballs. --- bootstrap_sdk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bootstrap_sdk b/bootstrap_sdk index 25f161b306..f14ade3efe 100755 --- a/bootstrap_sdk +++ b/bootstrap_sdk @@ -49,12 +49,23 @@ target: stage4 pkgcache_path: $BINPKGS stage4/packages: dev-python/setuptools dev-vcs/git app-arch/pbzip2 net-misc/curl app-admin/sudo app-shells/bash-completion sys-devel/crossdev coreos-base/hard-host-depends stage4/fsscript: ${SCRIPT_ROOT}/lib/catalyst_sdk_stage4.sh +stage4/root_overlay: ${TEMPDIR}/stage4_overlay EOF catalyst_stage_default } catalyst_init "$@" check_gsutil_opts + +if [[ "$STAGES" =~ stage4 ]]; then + info "Setting release to ${COREOS_VERSION_STRING}" + rm -rf "${TEMPDIR}/stage4_overlay" + mkdir -p "${TEMPDIR}/stage4_overlay" + "${BUILD_LIBRARY_DIR}/set_lsb_release" \ + --root "${TEMPDIR}/stage4_overlay" \ + --production_track sdk --board "${ARCH}-host" +fi + catalyst_build if [[ "$STAGES" =~ stage4 ]]; then