|
Michal Marek |
e2501c |
#!/bin/bash
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
#############################################################################
|
|
Michal Marek |
95ddf7 |
# Copyright (c) 2003-2009 Novell, Inc.
|
|
Michal Marek |
95ddf7 |
# All Rights Reserved.
|
|
Michal Marek |
95ddf7 |
#
|
|
Michal Marek |
95ddf7 |
# This program is free software; you can redistribute it and/or
|
|
Michal Marek |
95ddf7 |
# modify it under the terms of version 2 of the GNU General Public License as
|
|
Michal Marek |
95ddf7 |
# published by the Free Software Foundation.
|
|
Michal Marek |
95ddf7 |
#
|
|
Michal Marek |
95ddf7 |
# This program is distributed in the hope that it will be useful,
|
|
Michal Marek |
95ddf7 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Michal Marek |
95ddf7 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Michal Marek |
95ddf7 |
# GNU General Public License for more details.
|
|
Michal Marek |
95ddf7 |
#
|
|
Michal Marek |
95ddf7 |
# You should have received a copy of the GNU General Public License
|
|
Michal Marek |
95ddf7 |
# along with this program; if not, contact Novell, Inc.
|
|
Michal Marek |
95ddf7 |
#
|
|
Michal Marek |
95ddf7 |
# To contact Novell about this file by physical or electronic mail,
|
|
Michal Marek |
95ddf7 |
# you may find current contact information at www.novell.com
|
|
Michal Marek |
95ddf7 |
#############################################################################
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# generate a kernel-source rpm package
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
. ${0%/*}/wd-functions.sh
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
26b24c |
sort()
|
|
Michal Marek |
26b24c |
{
|
|
Michal Marek |
26b24c |
LC_ALL=C command sort "$@"
|
|
Michal Marek |
26b24c |
}
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
rpm_release_timestamp=
|
|
Michal Marek |
95ddf7 |
rpm_release_string=
|
|
Michal Marek |
95ddf7 |
source_timestamp=
|
|
Michal Marek |
95ddf7 |
tolerate_unknown_new_config_options=0
|
|
Michal Marek |
95ddf7 |
ignore_kabi=
|
|
Michal Marek |
95ddf7 |
ignore_unsupported_deps=
|
|
Michal Marek |
f49222 |
source rpm/config.sh
|
|
Michal Marek |
95ddf7 |
until [ "$#" = "0" ] ; do
|
|
Michal Marek |
95ddf7 |
case "$1" in
|
|
Michal Marek |
95ddf7 |
--dir=*)
|
|
Michal Marek |
95ddf7 |
build_dir=${1#*=}
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-d|--dir)
|
|
Michal Marek |
95ddf7 |
build_dir=$2
|
|
Michal Marek |
95ddf7 |
shift 2
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
--embargo)
|
|
Michal Marek |
95ddf7 |
embargo_filter=1
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-nf|--tolerate-unknown-new-config-options)
|
|
Michal Marek |
95ddf7 |
tolerate_unknown_new_config_options=1
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-i|--ignore-kabi)
|
|
Michal Marek |
95ddf7 |
ignore_kabi=1
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-iu|--ignore-unsupported-deps)
|
|
Michal Marek |
95ddf7 |
ignore_unsupported_deps=1
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-rs|--release-string)
|
|
Michal Marek |
95ddf7 |
case "$2" in
|
|
Michal Marek |
95ddf7 |
*[' '-]*)
|
|
Michal Marek |
95ddf7 |
echo "$1 option argument must not contain dashes or spaces" >&2
|
|
Michal Marek |
95ddf7 |
exit 1
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
esac
|
|
Michal Marek |
95ddf7 |
rpm_release_string="$2"
|
|
Michal Marek |
95ddf7 |
shift 2
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-ts|--timestamp)
|
|
Michal Marek |
95ddf7 |
rpm_release_timestamp=yes
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-k|--kbuild|--source-timestamp)
|
|
Michal Marek |
95ddf7 |
source_timestamp=1
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-h|--help|-v|--version)
|
|
Michal Marek |
95ddf7 |
cat <
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
${0##*/} perpares a 'kernel-source' package for submission into autobuild
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
these options are recognized:
|
|
Michal Marek |
95ddf7 |
-rs <string> to append specified string to rpm release number
|
|
Michal Marek |
95ddf7 |
-ts to use the current date as rpm release number
|
|
Michal Marek |
95ddf7 |
-nf to proceed if a new unknown .config option is found during make oldconfig
|
|
Michal Marek |
95ddf7 |
-i ignore kabi failures
|
|
Michal Marek |
95ddf7 |
--source-timestamp to autogenerate a release number based on branch and timestamp (overrides -rs/-ts)
|
|
Michal Marek |
fc1894 |
-d, --dir=DIR create package in DIR instead of default kernel-source$VARIANT
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
EOF
|
|
Michal Marek |
95ddf7 |
exit 1
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
*)
|
|
Michal Marek |
95ddf7 |
echo "unknown option '$1'" >&2
|
|
Michal Marek |
95ddf7 |
exit 1
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
esac
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
export LANG=POSIX
|
|
Michal Marek |
892b7b |
if test -e scripts/compute-PATCHVERSION.sh; then
|
|
Michal Marek |
892b7b |
PATCHVERSION=$($(dirname $0)/compute-PATCHVERSION.sh)
|
|
Michal Marek |
892b7b |
|
|
Michal Marek |
892b7b |
case "$PATCHVERSION" in
|
|
Michal Marek |
892b7b |
*-*)
|
|
Michal Marek |
892b7b |
RPMVERSION=${PATCHVERSION%%-*}
|
|
Michal Marek |
892b7b |
RELEASE_PREFIX=${PATCHVERSION#*-}.
|
|
Michal Marek |
892b7b |
RELEASE_PREFIX=${RELEASE_PREFIX//-/.}
|
|
Michal Marek |
892b7b |
;;
|
|
Michal Marek |
892b7b |
*)
|
|
Michal Marek |
892b7b |
RPMVERSION=$PATCHVERSION
|
|
Michal Marek |
892b7b |
RELEASE_PREFIX=
|
|
Michal Marek |
892b7b |
;;
|
|
Michal Marek |
892b7b |
esac
|
|
Michal Marek |
892b7b |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
if [ -n "$rpm_release_timestamp" ]; then
|
|
Michal Marek |
95ddf7 |
if test $(( ${#RPMVERSION} + 10 + 2 + 8 + ${#rpm_release_string})) -gt 64
|
|
Michal Marek |
95ddf7 |
then
|
|
Michal Marek |
95ddf7 |
echo "${RPMVERSION}-${rpm_release_string}-\${flavour} exceeds the 64 byte 'uname -r' limit. Use a shorter string."
|
|
Michal Marek |
95ddf7 |
exit 1
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
rpm_release_string="\`env -i - TZ=GMT date +%Y%m%d\`${rpm_release_string:+_$rpm_release_string}"
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
8f65b2 |
case "$build_dir" in
|
|
Michal Marek |
8f65b2 |
"")
|
|
Michal Marek |
8f65b2 |
build_dir=kernel-source$VARIANT
|
|
Michal Marek |
8f65b2 |
;;
|
|
Michal Marek |
8f65b2 |
/* | ./*) ;;
|
|
Michal Marek |
8f65b2 |
*)
|
|
Michal Marek |
8f65b2 |
build_dir=./$build_dir
|
|
Michal Marek |
8f65b2 |
esac
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
check_for_merge_conflicts() {
|
|
Michal Marek |
95ddf7 |
set -- $(grep -lP '^<{7}(?!<)|^>{7}(?!>)' "$@" 2> /dev/null)
|
|
Michal Marek |
95ddf7 |
if [ $# -gt 0 ]; then
|
|
Michal Marek |
95ddf7 |
printf "Merge conflicts in %s\n" "$@" >&2
|
|
Michal Marek |
95ddf7 |
return 1
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
}
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
e6728e |
# Dot files are skipped by intention, in order not to break osc working
|
|
Michal Marek |
e6728e |
# copies. The linux tarball is not deleted if it is already there
|
|
Michal Marek |
e6728e |
for f in "$build_dir"/*; do
|
|
Michal Marek |
e6728e |
case "$f" in
|
|
Michal Marek |
e56f67 |
"$build_dir/linux-$SRCVERSION.tar.bz2")
|
|
Michal Marek |
e6728e |
continue
|
|
Michal Marek |
e56f67 |
;;
|
|
Michal Suchanek |
cb2465 |
"$build_dir/linux-$SRCVERSION.tar.sign")
|
|
Michal Suchanek |
cb2465 |
continue
|
|
Michal Suchanek |
cb2465 |
;;
|
|
Michal Marek |
e56f67 |
"$build_dir"/patches.*)
|
|
Michal Marek |
e56f67 |
rm -rf "$f"
|
|
Michal Marek |
e6728e |
esac
|
|
Michal Marek |
e6728e |
rm -f "$f"
|
|
Michal Marek |
e6728e |
done
|
|
Michal Marek |
e6728e |
mkdir -p "$build_dir"
|
|
Michal Marek |
73a373 |
echo "linux-$SRCVERSION.tar.bz2"
|
|
Michal Marek |
73a373 |
get_tarball "$SRCVERSION" "tar.bz2" "$build_dir"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
a2559d |
# list of patches to include.
|
|
Michal Marek |
a2559d |
install -m 644 series.conf $build_dir/
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# All config files and patches used
|
|
Michal Marek |
95ddf7 |
referenced_files="$( {
|
|
Michal Marek |
95ddf7 |
$(dirname $0)/guards --list < $build_dir/series.conf
|
|
Michal Marek |
95ddf7 |
$(dirname $0)/guards --prefix=config --list < config.conf
|
|
Michal Marek |
95ddf7 |
} | sort -u )"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
03d141 |
for file in $referenced_files; do
|
|
Michal Marek |
03d141 |
case $file in
|
|
Michal Marek |
03d141 |
config/* | patches.*/*)
|
|
Michal Marek |
03d141 |
;;
|
|
Michal Marek |
03d141 |
*)
|
|
Michal Marek |
03d141 |
echo "Error: Patches must be placed in the patches.*/ subdirectories: $file" >&2
|
|
Michal Marek |
03d141 |
exit 1
|
|
Michal Marek |
03d141 |
esac
|
|
Michal Marek |
03d141 |
done
|
|
Michal Marek |
95ddf7 |
inconsistent=false
|
|
Michal Marek |
95ddf7 |
check_for_merge_conflicts $referenced_files kernel-source.changes{,.old} || \
|
|
Michal Marek |
95ddf7 |
inconsistent=true
|
|
Michal Marek |
95ddf7 |
scripts/check-conf || inconsistent=true
|
|
Michal Marek |
95ddf7 |
scripts/check-cvs-add --committed || inconsistent=true
|
|
Michal Marek |
03d141 |
# FIXME: someone should clean up the mess and make this check fatal
|
|
Michal Marek |
95ddf7 |
if $inconsistent; then
|
|
Michal Marek |
95ddf7 |
echo "Inconsistencies found."
|
|
Michal Marek |
95ddf7 |
echo "Please clean up series.conf and/or the patches directories!"
|
|
Michal Marek |
95ddf7 |
echo
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
a2559d |
tsfile=build-source-timestamp
|
|
Michal Marek |
a2559d |
if ! scripts/cvs-wd-timestamp > $build_dir/$tsfile; then
|
|
Michal Marek |
95ddf7 |
exit 1
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
if $using_git; then
|
|
Michal Marek |
95ddf7 |
# Always include the git revision
|
|
Michal Marek |
a2559d |
echo "GIT Revision: $(git rev-parse HEAD)" >> $build_dir/$tsfile
|
|
Michal Marek |
95ddf7 |
tag=$(get_branch_name)
|
|
Michal Marek |
95ddf7 |
if test -n "$tag"; then
|
|
Michal Marek |
a2559d |
echo "GIT Branch: $tag" >>$build_dir/$tsfile
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# List all used configurations
|
|
Michal Marek |
95ddf7 |
config_files="$(
|
|
Michal Marek |
95ddf7 |
for arch in $(scripts/arch-symbols --list) ; do
|
|
Michal Marek |
95ddf7 |
scripts/guards $(scripts/arch-symbols $arch) < config.conf \
|
|
Michal Marek |
95ddf7 |
| sed -e "s,^,$arch ,"
|
|
Michal Marek |
95ddf7 |
done)"
|
|
Michal Marek |
95ddf7 |
flavors="$(echo "$config_files" | sed -e 's,.*/,,' | sort -u)"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
for flavor in $flavors ; do
|
|
Michal Marek |
95ddf7 |
echo "kernel-$flavor.spec"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
e2501c |
extra_needs=
|
|
Michal Marek |
e2501c |
case $flavor in
|
|
Michal Marek |
e2501c |
um)
|
|
Michal Marek |
e2501c |
extra_needs="BuildRequires: libpcap xorg-x11-devel" ;;
|
|
Michal Marek |
e2501c |
esac
|
|
Michal Marek |
e2501c |
|
|
Michal Marek |
95ddf7 |
# Find all architectures for this spec file
|
|
Michal Marek |
95ddf7 |
set -- $(
|
|
Michal Marek |
95ddf7 |
echo "$config_files" \
|
|
Michal Marek |
892b7b |
| sed -e "/\/$flavor\$/!d" \
|
|
Michal Marek |
95ddf7 |
-e "s, .*,,g" \
|
|
Michal Marek |
95ddf7 |
| sort -u)
|
|
Michal Marek |
95ddf7 |
archs="$*"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# Compute @PROVIDES_OBSOLETES@ expansion
|
|
Michal Marek |
95ddf7 |
head="" ; tail=""
|
|
Michal Marek |
95ddf7 |
for arch in $archs ; do
|
|
Michal Marek |
95ddf7 |
p=( $(scripts/guards $(scripts/arch-symbols $arch) $flavor p \
|
|
Michal Marek |
95ddf7 |
< rpm/old-packages.conf) )
|
|
Michal Marek |
95ddf7 |
o=( $(scripts/guards $(scripts/arch-symbols $arch) $flavor o \
|
|
Michal Marek |
95ddf7 |
< rpm/old-packages.conf) )
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# Do we have an override config file or an additional patch?
|
|
Michal Marek |
95ddf7 |
if [ -e $arch-$flavor.conf ]; then
|
|
Michal Marek |
95ddf7 |
echo "Override config: $arch-$flavor.conf"
|
|
Michal Marek |
95ddf7 |
cp $arch-$flavor.conf $build_dir/
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
if [ -e $arch-$flavor.diff ]; then
|
|
Michal Marek |
95ddf7 |
echo "Extra patch: $arch-$flavor.diff"
|
|
Michal Marek |
95ddf7 |
cp $arch-$flavor.diff $build_dir/
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
[ $arch = i386 ] && arch="%ix86"
|
|
Michal Marek |
95ddf7 |
nl=$'\n'
|
|
Michal Marek |
95ddf7 |
if [ ${#p[@]} -o ${#p[@]} ]; then
|
|
Michal Marek |
95ddf7 |
[ -n "$head" ] && head="${head}%else$nl"
|
|
Michal Marek |
95ddf7 |
head="${head}%ifarch $arch$nl"
|
|
Michal Marek |
95ddf7 |
[ -n "$p" ] && head="${head}Provides: ${p[@]}$nl"
|
|
Michal Marek |
95ddf7 |
[ -n "$o" ] && head="${head}Obsoletes: ${o[@]}$nl"
|
|
Michal Marek |
95ddf7 |
tail="%endif$nl$tail"
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
prov_obs="$head${tail%$'\n'}"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# If we build this spec file for only one architecture, the
|
|
Michal Marek |
95ddf7 |
# enclosing if is not needed
|
|
Michal Marek |
95ddf7 |
if [ $(set -- $archs ; echo $#) -eq 1 ]; then
|
|
Michal Marek |
95ddf7 |
prov_obs="$(echo "$prov_obs" | grep -v '%ifarch\|%endif')"
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
892b7b |
# Special km modules for this kernel (SLES9)
|
|
Michal Marek |
892b7b |
if test -e rpm/km.conf; then
|
|
Michal Marek |
892b7b |
set -- $(scripts/guards $(
|
|
Michal Marek |
892b7b |
for arch in $archs; do
|
|
Michal Marek |
892b7b |
scripts/arch-symbols $arch
|
|
Michal Marek |
892b7b |
done
|
|
Michal Marek |
892b7b |
) $flavor < rpm/km.conf)
|
|
Michal Marek |
892b7b |
extra_kms=$*
|
|
Michal Marek |
892b7b |
else
|
|
Michal Marek |
892b7b |
extra_kms=
|
|
Michal Marek |
892b7b |
fi
|
|
Michal Marek |
892b7b |
|
|
Michal Marek |
95ddf7 |
# In ExclusiveArch in the spec file, we must specify %ix86 instead
|
|
Michal Marek |
95ddf7 |
# of i386.
|
|
Michal Marek |
95ddf7 |
archs="$(echo $archs | sed -e 's,i386,%ix86,g')"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
d21cbe |
# Summary and description
|
|
Michal Marek |
d21cbe |
if test -e rpm/package-descriptions; then
|
|
Michal Marek |
d21cbe |
description=$(sed "1,/^=== kernel-$flavor ===/d; /^===/,\$ d" rpm/package-descriptions)
|
|
Michal Marek |
d21cbe |
if test -z "$description"; then
|
|
Michal Marek |
d21cbe |
echo "warning: no description for kernel-$flavor found" >&2
|
|
Michal Marek |
d21cbe |
summary="The Linux Kernel"
|
|
Michal Marek |
d21cbe |
description="The Linux Kernel."
|
|
Michal Marek |
d21cbe |
else
|
|
Michal Marek |
d21cbe |
summary=$(echo "$description" | head -n 1)
|
|
Michal Marek |
d21cbe |
# escape newlines for the sed 's' command
|
|
Michal Marek |
d21cbe |
description=$(echo "$description" | tail -n +3 | \
|
|
Michal Marek |
d21cbe |
sed 's/$/\\/; $ s/\\$//')
|
|
Michal Marek |
d21cbe |
fi
|
|
Michal Marek |
d21cbe |
else
|
|
Michal Marek |
d21cbe |
summary="The Linux Kernel"
|
|
Michal Marek |
d21cbe |
description="The Linux Kernel."
|
|
Michal Marek |
d21cbe |
fi
|
|
Michal Marek |
d21cbe |
|
|
Michal Marek |
95ddf7 |
# Generate spec file
|
|
Michal Marek |
892b7b |
sed -r -e "s,@NAME@,kernel-$flavor,g" \
|
|
Michal Marek |
d21cbe |
-e "s,@SUMMARY@,$summary,g" \
|
|
Michal Marek |
d21cbe |
-e "s~@DESCRIPTION@~$description~g" \
|
|
Michal Marek |
892b7b |
-e "s,@(FLAVOR|CFGNAME)@,$flavor,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@VARIANT@,$VARIANT,g" \
|
|
Michal Marek |
892b7b |
-e "s,@(SRC)?VERSION@,$SRCVERSION,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@PATCHVERSION@,$PATCHVERSION,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@RPMVERSION@,$RPMVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@PRECONF@,1,g" \
|
|
Michal Marek |
892b7b |
-e "s,@NO_DEBUG@,,g" \
|
|
Michal Marek |
892b7b |
-e "s,@KERNEL_MODULE_PACKAGES@,kernel-module-packages,g" \
|
|
Michal Marek |
892b7b |
-e "s,@EXTRA_KMS@,$extra_kms,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@ARCHS@,$archs,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@PROVIDES_OBSOLETES@,${prov_obs//$'\n'/\\n},g" \
|
|
Michal Marek |
e2501c |
-e "s,@EXTRA_NEEDS@,$extra_needs,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@TOLERATE_UNKNOWN_NEW_CONFIG_OPTIONS@,$tolerate_unknown_new_config_options,g" \
|
|
Michal Marek |
95ddf7 |
-e "s,@RELEASE_PREFIX@,$RELEASE_PREFIX,g" \
|
|
Michal Marek |
95ddf7 |
< rpm/kernel-binary.spec.in \
|
|
Michal Marek |
95ddf7 |
> $build_dir/kernel-$flavor.spec
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
install_changes() {
|
|
Michal Marek |
95ddf7 |
local changes=$1
|
|
Michal Marek |
e2501c |
cat kernel-source.changes > "$changes"
|
|
Michal Marek |
e2501c |
if test -e kernel-source.changes.old; then
|
|
Michal Marek |
e2501c |
cat "$_" >>"$changes"
|
|
Michal Marek |
e2501c |
fi
|
|
Michal Marek |
95ddf7 |
chmod 644 $changes
|
|
Michal Marek |
95ddf7 |
}
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
for flavor in $flavors ; do
|
|
Michal Marek |
95ddf7 |
install_changes $build_dir/kernel-$flavor.changes
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
binary_spec_files=$(
|
|
Michal Marek |
95ddf7 |
n=50
|
|
Michal Marek |
95ddf7 |
for flavor in syms $flavors ; do
|
|
Michal Marek |
95ddf7 |
printf "%-14s%s\n" "Source$n:" "kernel-$flavor.spec"
|
|
Michal Marek |
95ddf7 |
n=$[$n+1]
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
)
|
|
Michal Marek |
95ddf7 |
binary_spec_files=${binary_spec_files//$'\n'/\\n}
|
|
Michal Marek |
95ddf7 |
binary_spec_files_list=$(
|
|
Michal Marek |
95ddf7 |
for flavor in syms $flavors; do
|
|
Michal Marek |
95ddf7 |
echo -n "kernel-$flavor.spec "
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
)
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
CLEANFILES=()
|
|
Michal Marek |
95ddf7 |
trap 'if test -n "$CLEANFILES"; then rm -rf "${CLEANFILES[@]}"; fi' EXIT
|
|
Michal Marek |
95ddf7 |
tmpdir=$(mktemp -dt ${0##*/}.XXXXXX)
|
|
Michal Marek |
95ddf7 |
CLEANFILES=("${CLEANFILES[@]}" "$tmpdir")
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
EXTRA_SYMBOLS=$([ -e extra-symbols ] && cat extra-symbols)
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# Compute @BUILD_REQUIRES@ expansion
|
|
Michal Marek |
95ddf7 |
prepare_source_and_syms() {
|
|
Michal Marek |
95ddf7 |
local name=$1
|
|
Michal Marek |
95ddf7 |
local head="" tail="" nl ARCH_SYMBOLS packages flavor av arch build_req
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
archs=
|
|
Michal Marek |
95ddf7 |
build_requires=
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
for arch in $(scripts/arch-symbols --list); do
|
|
Michal Marek |
95ddf7 |
ARCH_SYMBOLS=$(scripts/arch-symbols $arch)
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# Exclude flavors that have a different set of patches: we assume that
|
|
Michal Marek |
95ddf7 |
# the user won't change series.conf so much that two flavors that differ
|
|
Michal Marek |
95ddf7 |
# at tar-up.sh time will become identical later.
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
set -- $ARCH_SYMBOLS $EXTRA_SYMBOLS
|
|
Michal Marek |
95ddf7 |
case $name in
|
|
Michal Marek |
95ddf7 |
(*-rt)
|
|
Michal Marek |
95ddf7 |
set -- RT "$@"
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
esac
|
|
Michal Marek |
95ddf7 |
scripts/guards "$@" < series.conf > $tmpdir/$name.patches
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
packages=
|
|
Michal Marek |
e2501c |
for arch_flavor in $(scripts/guards $ARCH_SYMBOLS $EXTRA_SYMBOLS syms \
|
|
Michal Marek |
95ddf7 |
< config.conf); do
|
|
Michal Marek |
95ddf7 |
flavor=${arch_flavor#*/}
|
|
Michal Marek |
95ddf7 |
av=${arch_flavor//\//_}
|
|
Michal Marek |
95ddf7 |
set -- kernel-$flavor $flavor \
|
|
Michal Marek |
95ddf7 |
$(case $flavor in (rt|rt_*) echo RT ;; esac)
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# The patch selection for kernel-vanilla is a hack.
|
|
Michal Marek |
95ddf7 |
[ $flavor = vanilla ] && continue
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
scripts/guards $* $ARCH_SYMBOLS $EXTRA_SYMBOLS < series.conf \
|
|
Michal Marek |
95ddf7 |
> $tmpdir/kernel-$av.patches
|
|
Michal Marek |
95ddf7 |
diff -q $tmpdir/{$name,kernel-$av}.patches > /dev/null \
|
|
Michal Marek |
95ddf7 |
|| continue
|
|
Michal Marek |
95ddf7 |
packages="$packages kernel-$flavor"
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
set -- $packages
|
|
Michal Marek |
95ddf7 |
if [ $# -gt 0 ]; then
|
|
Michal Marek |
95ddf7 |
[ $arch = i386 ] && arch="%ix86"
|
|
Michal Marek |
95ddf7 |
nl=$'\n'
|
|
Michal Marek |
95ddf7 |
[ -n "$head" ] && head="${head}%else$nl"
|
|
Michal Marek |
95ddf7 |
head="${head}%ifarch $arch$nl"
|
|
Michal Marek |
95ddf7 |
head="${head}BuildRequires: $*$nl"
|
|
Michal Marek |
95ddf7 |
tail="%endif$nl$tail"
|
|
Michal Marek |
95ddf7 |
archs="$archs $arch"
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
build_requires="$head${tail%$'\n'}"
|
|
Michal Marek |
95ddf7 |
build_requires="${build_requires//$'\n'/\\n}"
|
|
Michal Marek |
95ddf7 |
archs=${archs# }
|
|
Michal Marek |
95ddf7 |
}
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
e2501c |
echo "kernel-source.spec"
|
|
Michal Marek |
e2501c |
prepare_source_and_syms kernel-syms # compute archs and build_requires
|
|
Michal Marek |
892b7b |
sed -r -e "s,@NAME@,kernel-source,g" \
|
|
Michal Marek |
892b7b |
-e "s,@(SRC)?VERSION@,$SRCVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@PATCHVERSION@,$PATCHVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@RPMVERSION@,$RPMVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@PRECONF@,1,g" \
|
|
Michal Marek |
e2501c |
-e "s,@ARCHS@,$archs,g" \
|
|
Michal Marek |
e2501c |
-e "s,@BINARY_SPEC_FILES@,$binary_spec_files,g" \
|
|
Michal Marek |
e2501c |
-e "s,@BINARY_SPEC_FILES_LIST@,$binary_spec_files_list,g" \
|
|
Michal Marek |
e2501c |
-e "s,@TOLERATE_UNKNOWN_NEW_CONFIG_OPTIONS@,$tolerate_unknown_new_config_options," \
|
|
Michal Marek |
e2501c |
-e "s,@RELEASE_PREFIX@,$RELEASE_PREFIX,g" \
|
|
Michal Marek |
e2501c |
< rpm/kernel-source.spec.in \
|
|
Michal Marek |
e2501c |
> $build_dir/kernel-source.spec
|
|
Michal Marek |
e2501c |
install_changes $build_dir/kernel-source.changes
|
|
Michal Marek |
e2501c |
|
|
Michal Marek |
e2501c |
echo "kernel-syms.spec"
|
|
Michal Marek |
892b7b |
sed -r -e "s,@NAME@,kernel-syms,g" \
|
|
Michal Marek |
e2501c |
-e "s,@VARIANT@,,g" \
|
|
Michal Marek |
892b7b |
-e "s,@(SRC)?VERSION@,$SRCVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@PATCHVERSION@,$PATCHVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@RPMVERSION@,$RPMVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@PRECONF@,1,g" \
|
|
Michal Marek |
e2501c |
-e "s,@ARCHS@,$archs,g" \
|
|
Michal Marek |
e2501c |
-e "s,@BUILD_REQUIRES@,$build_requires,g" \
|
|
Michal Marek |
e2501c |
-e "s,@RELEASE_PREFIX@,$RELEASE_PREFIX,g" \
|
|
Michal Marek |
e2501c |
< rpm/kernel-syms.spec.in \
|
|
Michal Marek |
e2501c |
> $build_dir/kernel-syms.spec
|
|
Michal Marek |
e2501c |
install_changes $build_dir/kernel-syms.changes
|
|
Michal Marek |
e2501c |
|
|
Michal Marek |
e2501c |
echo "kernel-dummy.spec"
|
|
Michal Marek |
892b7b |
sed -r -e "s,@NAME@,kernel-dummy,g" \
|
|
Michal Marek |
892b7b |
-e "s,@(SRC)?VERSION@,$SRCVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@PATCHVERSION@,$PATCHVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@RPMVERSION@,$RPMVERSION,g" \
|
|
Michal Marek |
e2501c |
-e "s,@RELEASE_PREFIX@,$RELEASE_PREFIX,g" \
|
|
Michal Marek |
e2501c |
< rpm/kernel-dummy.spec.in \
|
|
Michal Marek |
e2501c |
> $build_dir/kernel-dummy.spec
|
|
Michal Marek |
e2501c |
install_changes $build_dir/kernel-dummy.changes
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
echo "Copying various files..."
|
|
Michal Marek |
e2501c |
cp -a \
|
|
Michal Marek |
e2501c |
config.conf \
|
|
Michal Marek |
e2501c |
supported.conf \
|
|
Michal Marek |
e2501c |
rpm/* \
|
|
Michal Marek |
e2501c |
scripts/guards \
|
|
Michal Marek |
e2501c |
scripts/arch-symbols \
|
|
Michal Marek |
e2501c |
doc/README.SUSE \
|
|
Michal Marek |
e2501c |
$build_dir
|
|
Michal Marek |
e2501c |
rm -f "$build_dir"/*spec.in "$build_dir"/get_release_number.sh.in \
|
|
Michal Marek |
e77f0d |
"$build_dir"/old-packages.conf "$build_dir"/km.conf \
|
|
Michal Marek |
e77f0d |
"$build_dir"/package-descriptions
|
|
Michal Marek |
892b7b |
# Not all files are in all branches
|
|
Michal Marek |
892b7b |
for f in misc/extract-modaliases scripts/kabi-checks; do
|
|
Michal Marek |
892b7b |
if test -e "$f"; then
|
|
Michal Marek |
892b7b |
cp -a "$f" "$build_dir"
|
|
Michal Marek |
892b7b |
fi
|
|
Michal Marek |
892b7b |
done
|
|
Brandon Philips |
644fec |
if grep -q '^Source.*:[[:space:]]*log\.sh[[:space:]]*$' rpm/kernel-source.spec.in; then
|
|
Brandon Philips |
644fec |
cp -p scripts/rpm-log.sh "$build_dir"/log.sh
|
|
Brandon Philips |
644fec |
fi
|
|
Michal Marek |
e2501c |
|
|
Michal Marek |
e2501c |
if [ -e extra-symbols ]; then
|
|
Michal Marek |
e2501c |
install -m 755 \
|
|
Michal Marek |
e2501c |
extra-symbols \
|
|
Michal Marek |
e2501c |
$build_dir
|
|
Michal Marek |
e2501c |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
if [ -x /work/src/bin/tools/convert_changes_to_rpm_changelog ]; then
|
|
Michal Marek |
e2501c |
/work/src/bin/tools/convert_changes_to_rpm_changelog \
|
|
Michal Marek |
e2501c |
"$build_dir"/kernel-source*.changes >"$build_dir"/rpm_changelog
|
|
Michal Marek |
95ddf7 |
for spec in "$build_dir"/*.spec; do
|
|
Michal Marek |
95ddf7 |
(echo "%changelog"; cat "$build_dir"/rpm_changelog) >>"$spec"
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
rm -f "$build_dir"/rpm_changelog
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
if [ -n "$source_timestamp" ]; then
|
|
Michal Marek |
a2559d |
ts="$(head -n 1 $build_dir/$tsfile)"
|
|
Michal Marek |
95ddf7 |
branch=$(sed -nre 's/^(CVS|GIT) Branch: //p' \
|
|
Michal Marek |
a2559d |
$build_dir/$tsfile)
|
|
Michal Marek |
95ddf7 |
rpm_release_string=${branch:-HEAD}_$(date --utc '+%Y%m%d%H%M%S' -d "$ts")
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
19bc12 |
sed -e "s:@RELEASE_PREFIX@:$RELEASE_PREFIX:" \
|
|
Michal Marek |
19bc12 |
-e "s:@RELEASE_SUFFIX@:$rpm_release_string:" \
|
|
Michal Marek |
19bc12 |
rpm/get_release_number.sh.in \
|
|
Michal Marek |
19bc12 |
> $build_dir/get_release_number.sh
|
|
Michal Marek |
19bc12 |
chmod 755 $build_dir/get_release_number.sh
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# Usage:
|
|
Michal Marek |
95ddf7 |
# stable_tar [-t <timestamp>] [-C <dir>] [--exclude=...] <tarball> <files> ...
|
|
Michal Marek |
95ddf7 |
# if -t is not given, files must be within a git repository
|
|
Michal Marek |
95ddf7 |
stable_tar() {
|
|
Michal Marek |
c56654 |
local tarball mtime chdir="." tar_opts=()
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
while test $# -gt 2; do
|
|
Michal Marek |
95ddf7 |
case "$1" in
|
|
Michal Marek |
95ddf7 |
-t)
|
|
Michal Marek |
c56654 |
mtime=$2
|
|
Michal Marek |
95ddf7 |
shift 2
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
-C)
|
|
Michal Marek |
95ddf7 |
chdir=$2
|
|
Michal Marek |
c56654 |
tar_opts=("${tar_opts[@]}" -C "$2")
|
|
Michal Marek |
95ddf7 |
shift 2
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
--exclude=*)
|
|
Michal Marek |
95ddf7 |
tar_opts=("${tar_opts[@]}" "$1")
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
--exclude)
|
|
Michal Marek |
95ddf7 |
tar_opts=("${tar_opts[@]}" "$1" "$2")
|
|
Michal Marek |
95ddf7 |
shift 2
|
|
Michal Marek |
95ddf7 |
;;
|
|
Michal Marek |
95ddf7 |
*)
|
|
Michal Marek |
95ddf7 |
break
|
|
Michal Marek |
95ddf7 |
esac
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
tarball=$1
|
|
Michal Marek |
95ddf7 |
shift
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
c56654 |
if test -z "$mtime" && $using_git; then
|
|
Michal Marek |
c82a3b |
local dirs=$(printf '%s\n' "$@" | sed 's:/.*::' | sort -u)
|
|
Michal Marek |
c56654 |
mtime="$(cd "$chdir"
|
|
Michal Marek |
c82a3b |
echo "${dirs[@]}" | xargs git log -1 --pretty=tformat:%ct -- | sort -n | \
|
|
Michal Marek |
ba50b2 |
tail -n 1)"
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
28e83c |
if test -n "$mtime"; then
|
|
Michal Marek |
28e83c |
tar_opts=("${tar_opts[@]}" --mtime "$mtime")
|
|
Michal Marek |
28e83c |
fi
|
|
Michal Marek |
f49222 |
case "$IBS_PROJECT" in
|
|
Michal Marek |
f49222 |
SUSE:SLE-9*)
|
|
Michal Marek |
df842b |
tar_opts=("${tar_opts[@]}" --no-paxheaders)
|
|
Michal Marek |
df842b |
esac
|
|
Michal Marek |
8cb5b4 |
printf '%s\n' "$@" | \
|
|
Michal Marek |
4cdfd1 |
scripts/stable-tar.pl "${tar_opts[@]}" -T - | bzip2 -9 >"$tarball"
|
|
Michal Marek |
4cdfd1 |
case "${PIPESTATUS[*]}" in
|
|
Michal Marek |
4cdfd1 |
*[1-9]*)
|
|
Michal Marek |
4cdfd1 |
exit 1
|
|
Michal Marek |
4cdfd1 |
esac
|
|
Michal Marek |
95ddf7 |
}
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
7016bd |
# create the *.tar.bz2 files in parallel: Spawn a job for each cpu
|
|
Michal Marek |
7016bd |
# present; wait for all of them to finish; submit a new set of jobs.
|
|
Michal Marek |
7016bd |
# This is not a very efficient algorithm and it can result in anomalies
|
|
Michal Marek |
7016bd |
# where adding a cpu slows the script down, so improvements are welcome.
|
|
Michal Marek |
7016bd |
slots=$(getconf _NPROCESSORS_ONLN)
|
|
Michal Marek |
7016bd |
if test 0$slots -lt 1; then
|
|
Michal Marek |
7016bd |
slots=1
|
|
Michal Marek |
7016bd |
fi
|
|
Michal Marek |
7016bd |
used=0
|
|
Michal Marek |
7016bd |
wait_archives()
|
|
Michal Marek |
7016bd |
{
|
|
Michal Marek |
7016bd |
if test $used -gt 0; then
|
|
Michal Marek |
7016bd |
wait
|
|
Michal Marek |
7016bd |
if grep -q '[^0]' "$tmpdir"/result-*; then
|
|
Michal Marek |
7016bd |
exit 1
|
|
Michal Marek |
7016bd |
fi
|
|
Michal Marek |
7016bd |
used=0
|
|
Michal Marek |
7016bd |
rm -f "$tmpdir"/result-*
|
|
Michal Marek |
7016bd |
fi
|
|
Michal Marek |
7016bd |
}
|
|
Michal Marek |
7016bd |
do_archive()
|
|
Michal Marek |
7016bd |
{
|
|
Michal Marek |
7016bd |
if test $slots -eq 1; then
|
|
Michal Marek |
7016bd |
stable_tar "$@"
|
|
Michal Marek |
7016bd |
return
|
|
Michal Marek |
7016bd |
fi
|
|
Michal Marek |
7016bd |
if test $used -eq $slots; then
|
|
Michal Marek |
7016bd |
wait_archives
|
|
Michal Marek |
7016bd |
fi
|
|
Michal Marek |
7016bd |
(stable_tar "$@"; echo $? >"$tmpdir/result-$used") &
|
|
Michal Marek |
7016bd |
let used++
|
|
Michal Marek |
7016bd |
}
|
|
Michal Marek |
7016bd |
|
|
Michal Marek |
95ddf7 |
# The first directory level determines the archive name
|
|
Michal Marek |
95ddf7 |
all_archives="$(
|
|
Michal Marek |
95ddf7 |
echo "$referenced_files" \
|
|
Michal Marek |
95ddf7 |
| sed -e 's,/.*,,' \
|
|
Michal Marek |
95ddf7 |
| uniq )"
|
|
Michal Marek |
95ddf7 |
for archive in $all_archives; do
|
|
Michal Marek |
95ddf7 |
echo "$archive.tar.bz2"
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
6d5c47 |
files="$(echo "$referenced_files" | sed -ne "\:^${archive//./\\.}/:p")"
|
|
Michal Marek |
95ddf7 |
if [ -n "$files" ]; then
|
|
Michal Marek |
7016bd |
do_archive $build_dir/$archive.tar.bz2 $files
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
83a948 |
if test -d kabi; then
|
|
Michal Marek |
83a948 |
echo "kabi.tar.bz2"
|
|
Michal Marek |
7016bd |
do_archive $build_dir/kabi.tar.bz2 kabi
|
|
Michal Marek |
83a948 |
fi
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
892b7b |
for kmp in novell-kmp hello; do
|
|
Michal Marek |
892b7b |
if test ! -d "doc/$kmp"; then
|
|
Michal Marek |
892b7b |
continue
|
|
Michal Marek |
892b7b |
fi
|
|
Michal Marek |
892b7b |
echo "$kmp.tar.bz2"
|
|
Michal Marek |
7016bd |
do_archive -C doc --exclude='*.o' --exclude='*.ko' --exclude='*.*.cmd' \
|
|
Michal Marek |
892b7b |
"$build_dir/$kmp.tar.bz2" "$kmp"
|
|
Michal Marek |
892b7b |
done
|
|
Michal Marek |
7016bd |
wait_archives
|
|
Michal Marek |
e2501c |
|
|
Michal Marek |
95ddf7 |
# Create empty dummys for any *.tar.bz2 archive mentioned in the spec file
|
|
Michal Marek |
95ddf7 |
# not already created: patches.addon is empty by intention; others currently
|
|
Michal Marek |
95ddf7 |
# may contain no patches.
|
|
Michal Marek |
95ddf7 |
archives=$(sed -ne 's,^Source[0-9]*:.*[ \t/]\([^/]*\)\.tar\.bz2$,\1,p' \
|
|
Michal Marek |
95ddf7 |
$build_dir/*.spec | sort -u)
|
|
Michal Marek |
95ddf7 |
for archive in $archives; do
|
|
Michal Marek |
892b7b |
case "$archive" in
|
|
Michal Marek |
892b7b |
*%*)
|
|
Michal Marek |
a2559d |
# skip archive names with macros
|
|
Michal Marek |
892b7b |
continue
|
|
Michal Marek |
892b7b |
esac
|
|
Michal Marek |
892b7b |
if test -e "$build_dir/$archive.tar.bz2"; then
|
|
Michal Marek |
892b7b |
continue
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
892b7b |
echo "$archive.tar.bz2 (empty)"
|
|
Michal Marek |
892b7b |
tmpdir2=$(mktemp -dt ${0##*/}.XXXXXX)
|
|
Michal Marek |
892b7b |
CLEANFILES=("${CLEANFILES[@]}" "$tmpdir2")
|
|
Michal Marek |
892b7b |
mkdir -p $tmpdir2/$archive
|
|
Michal Marek |
c56654 |
stable_tar -C $tmpdir2 -t 1234567890 $build_dir/$archive.tar.bz2 $archive
|
|
Michal Marek |
95ddf7 |
done
|
|
Michal Marek |
95ddf7 |
|
|
Michal Marek |
95ddf7 |
# Force mbuild to choose build hosts with enough memory available:
|
|
Michal Marek |
95ddf7 |
echo $((1024*1024)) > $build_dir/minmem
|
|
Michal Marek |
95ddf7 |
# Force mbuild to choose build hosts with enough disk space available:
|
|
Michal Marek |
95ddf7 |
echo $((6*1024)) > $build_dir/needed_space_in_mb
|
|
Michal Marek |
95ddf7 |
if [ -n "$ignore_kabi" ]; then
|
|
Michal Marek |
a2559d |
echo > $build_dir/IGNORE-KABI-BADNESS
|
|
Michal Marek |
95ddf7 |
fi
|
|
Michal Marek |
95ddf7 |
if [ -n "$ignore_unsupported_deps" ]; then
|
|
Michal Marek |
a2559d |
echo > $build_dir/IGNORE-UNSUPPORTED-DEPS
|
|
Michal Marek |
95ddf7 |
fi
|