From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id CA9241382C5 for ; Thu, 26 Apr 2018 11:21:37 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id F06D8E083B; Thu, 26 Apr 2018 11:21:35 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id B7063E083B for ; Thu, 26 Apr 2018 11:21:35 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3FAD4335C30 for ; Thu, 26 Apr 2018 11:21:34 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 4567F28B for ; Thu, 26 Apr 2018 11:21:32 +0000 (UTC) From: "Jason Zaman" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jason Zaman" Message-ID: <1524741548.abe6a848889dabe8e4ac100e2999a402913302a2.perfinion@gentoo> Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: gentoo/ X-VCS-Repository: proj/hardened-refpolicy X-VCS-Files: gentoo/release-userspace.sh X-VCS-Directories: gentoo/ X-VCS-Committer: perfinion X-VCS-Committer-Name: Jason Zaman X-VCS-Revision: abe6a848889dabe8e4ac100e2999a402913302a2 X-VCS-Branch: master Date: Thu, 26 Apr 2018 11:21:32 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 9bde0679-d12e-4006-aaf2-59cfe4a8d49c X-Archives-Hash: 933636fb9ba598a632392d3b0c1d2c07 commit: abe6a848889dabe8e4ac100e2999a402913302a2 Author: Jason Zaman perfinion com> AuthorDate: Wed Jul 12 04:41:00 2017 +0000 Commit: Jason Zaman gentoo org> CommitDate: Thu Apr 26 11:19:08 2018 +0000 URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=abe6a848 gentoo: Add script to make userspace releases gentoo/release-userspace.sh | 137 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) diff --git a/gentoo/release-userspace.sh b/gentoo/release-userspace.sh new file mode 100644 index 00000000..be7924a1 --- /dev/null +++ b/gentoo/release-userspace.sh @@ -0,0 +1,137 @@ +#!/bin/sh + +# Copyright 2013,2014 Sven Vermeulen +# Copyright 2017-2018 Jason Zaman +# Licensed under the GPL-3 license + +RELEASEDATE="${1}"; +NEWVERSION="${2}"; + +PACKAGES=" +sys-libs/libsepol +sys-libs/libselinux +sys-libs/libsemanage +sys-apps/checkpolicy +sys-apps/policycoreutils +sys-apps/selinux-python +sys-apps/semodule-utils +sys-apps/secilc +sys-apps/mcstrans +sys-apps/restorecond +" +# app-admin/setools not released together +# dev-python/sepolgen became selinux-python in 2.7 release + +usage() { + echo "Usage: $0 "; + echo ""; + echo "Example: $0 20170101 2.7_rc1" + echo ""; + echo "The script will update the live ebuilds then copy towards the"; + echo "." + echo ""; + echo "The following environment variables must be declared correctly for the script"; + echo "to function properly:"; + echo " - GENTOOX86 should point to the gentoo-x86 checkout"; + echo " E.g. export GENTOOX86=\"/usr/portage/\""; +} + +assertDirEnvVar() { + VARNAME="${1}"; + eval VARVALUE='$'${VARNAME}; + if [ -z "${VARVALUE}" ] || [ ! -d "${VARVALUE}" ]; + then + echo "Variable ${VARNAME} (value \"${VARVALUE}\") does not point to a valid directory."; + exit 1; + fi +} + +die() { + printf "\n"; + echo "!!! Error: $*"; + exit 2; +}; + +# set the release date in the live ebuilds so it will be correct when copying to the new version +setLiveReleaseDate() { + local PKG + local PN + cd ${GENTOOX86} + echo "Setting release date var in live ebuilds... " + + for PKG in $PACKAGES; + do + cd "${GENTOOX86}/${PKG}" + PN="${PKG#*/}" + [[ -f "${PN}-9999.ebuild" ]] || continue; + + # make sure the tree is clean so we dont commit anything else by mistake + [[ -z "$(git status --porcelain -- .)" ]] || die + git diff --cached --exit-code >/dev/null 2>&1 || die "Uncommitted changes" + + # update header and release date + sed -i "s@Copyright 1999-201. Gentoo Foundation@Copyright 1999-$(date '+%Y') Gentoo Foundation@" "${PN}-9999.ebuild" + sed -i "/^MY_RELEASEDATE=/s/.*/MY_RELEASEDATE=\"${RELEASEDATE}\"/" "${PN}-9999.ebuild" + + # commit changes + git add "${PN}-9999.ebuild" + git --no-pager diff --cached + repoman -q full + if [[ $? -eq 0 ]]; then + repoman -q commit -m "$PKG: update live ebuild" + else + git reset -- . + fi + done + echo -e "\ndone ${PN}\n" +} + +# Create the new ebuilds +createEbuilds() { + local PKG + local PN + cd ${GENTOOX86} + echo "Creating new ebuilds based on 9999 version... " + + for PKG in $PACKAGES; + do + cd "${GENTOOX86}/${PKG}" + PN="${PKG#*/}" + [[ -f "${PN}-9999.ebuild" ]] || continue + [[ -f "Manifest" ]] || continue + + # make sure the tree is clean so we dont commit anything else by mistake + [[ -z "$(git status --porcelain -- .)" ]] || die + git diff --cached --exit-code >/dev/null 2>&1 || die "Uncommitted changes" + + sed -i -e "/${PN}-${NEWVERSION//_/-}/d" Manifest || die + cp ${PN}-9999.ebuild ${PN}-${NEWVERSION}.ebuild || die + + repoman -q manifest + git add Manifest ${PN}-${NEWVERSION}.ebuild + + #git --no-pager diff --cached + repoman -q full + if [[ $? -eq 0 ]]; then + repoman -q commit -m "$PKG: bump to ${NEWVERSION}" + else + git reset -- . + fi + done + echo -e "\ndone ${PN}\n" +} + +if [ $# -ne 2 ]; +then + usage; + exit 3; +fi + +# Assert that all needed information is available +assertDirEnvVar GENTOOX86; + +setLiveReleaseDate + +# Create ebuilds +createEbuilds; +