17b7186716
There are a couple of changes needed: 1. Package version cannot contain '-' (5.4-rc5-1.pvops.qubes is an invalid rpm version). Follow Fedora upstream idea of moving 'rc' tag into package release field, as 0.rcXX.(original rel). This way, such package will be 'older' than the final release (with just release number there - 1 in most cases). The alternative idea is using '~rcXX' in the package version, but ~ couldn't be part of a kernel version reported by the kernel itself and also qubes-dom0-update refuses ~ in a package filename. 2. Adjust kernel version to match the above - specifically clear EXTRAVERSION (-rcXX suffix), as it will be added back as package release (CONFIG_LOCALVERSION). 3. rc tarballs are available only as a git-generated .tar.gz (not .tar.xz) and there are no matching detached signatures. While it would be possible to download a signed tag via git, scripting that would be overly complex as for the task rarely used. Leave this verification as a manual step and require sha512 checksum to be committed into repository. To build an archive matching upstream one, out of a signed tag, use command like this: git archive --prefix=linux-5.4-rc5/ --output=../linux-5.4-rc5.tar.gz v5.4-rc5 While at it, remove obsolete BUILD_FLAVOR variable.
62 lines
1.8 KiB
Bash
Executable File
62 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# The Qubes OS Project, https://www.qubes-os.org
|
|
#
|
|
# Copyright (C) 2017 Simon Gaiser <simon@invisiblethingslab.com>
|
|
# Copyright (c) 2009-2010 Wind River Systems, Inc.
|
|
# Copyright 2011 Linaro
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
# published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the GNU General Public License for more details.
|
|
|
|
set -eu -o pipefail
|
|
|
|
linux_merge_config="./scripts/kconfig/merge_config.sh"
|
|
make_opts=""
|
|
|
|
if [ -n "${LINUX_UPSTREAM_VERSION:-}" ]; then
|
|
linux_merge_config="../linux-$LINUX_UPSTREAM_VERSION/scripts/kconfig/merge_config.sh"
|
|
make_opts="-C ../linux-$LINUX_UPSTREAM_VERSION O=$PWD"
|
|
fi
|
|
|
|
if [ -z "$linux_merge_config" ]; then
|
|
printf 'Error: Could not find merge_config.sh from the linux source tree!\n'
|
|
exit 1
|
|
fi
|
|
|
|
sed_config_exp='s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p'
|
|
|
|
if [ $# -ne 2 ]; then
|
|
printf 'Usage: gen-config base.config local.config\n'
|
|
exit 1
|
|
fi
|
|
|
|
base_config="$1"
|
|
local_config="$2"
|
|
|
|
grep -v '^##' "$local_config" > "$local_config.gen" || [ $? -le 1 ]
|
|
|
|
$linux_merge_config -m "$base_config" "$local_config.gen"
|
|
|
|
make $make_opts KCONFIG_ALLCONFIG=.config alldefconfig
|
|
|
|
rc=0
|
|
for cfg in $(sed -n "$sed_config_exp" "$local_config.gen"); do
|
|
requested="$(grep -w "$cfg" "$local_config.gen" || true)"
|
|
actual="$(grep -w "$cfg" .config || true)"
|
|
if [ "$requested" != "$actual" ]; then
|
|
printf 'Local config setting for %s didn'\''t make it into the final config\n' "$cfg"
|
|
rc=1
|
|
fi
|
|
done
|
|
|
|
rm "$local_config.gen"
|
|
|
|
exit $rc
|