From aa45fb561f574e632ef91648d6e46d6b044f60f5 Mon Sep 17 00:00:00 2001 From: Lukas Rucka Date: Fri, 15 Dec 2017 16:24:29 +0100 Subject: [PATCH] Added script to generate older versions of proprietary drivers --- package_specs/generate-patches.sh | 2 +- package_specs/outdate-drivers.sh | 115 ++++++++++++++++++ .../debian.tar.gz | Bin 1601 -> 1671 bytes .../ultragrid-proprietary-drivers.spec | 2 + 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100755 package_specs/outdate-drivers.sh diff --git a/package_specs/generate-patches.sh b/package_specs/generate-patches.sh index 898473274..314d69f32 100755 --- a/package_specs/generate-patches.sh +++ b/package_specs/generate-patches.sh @@ -3,7 +3,7 @@ scriptroot="$(dirname "$(realpath "$0")")" vendors=( deltacast blackmagick dvs aja bluefish cuda ) -subpackages=( ultragrid-nightly ultragrid ultragrid-proprietary-drivers ) +subpackages=( ultragrid-nightly ultragrid $(echo "ultragrid-proprietary-drivers"* ) ) mkdir a for pkg in ${subpackages[*]} ; do diff --git a/package_specs/outdate-drivers.sh b/package_specs/outdate-drivers.sh new file mode 100755 index 000000000..aa95def58 --- /dev/null +++ b/package_specs/outdate-drivers.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +function patch_file(){ + local filename="$2" + local entry="$1" + local lockplace="# replace this line with generated conflicts" + grep -vE '^((Provides)|(Conflicts))[:]?[[:space:]]*ultragrid-proprietary-drivers.*' "$filename" > "$filename.$$" + sed -i "s/$lockplace.*\$/$entry\n$lockplace/g" "$filename.$$" + mv "$filename.$$" "$filename" +} +function patch_pkgname(){ + local filename="$1" + local entry="$2" + sed -ri "/^Source:.*\$/b; s/ultragrid-proprietary-drivers((-rpmlintrc)?)\$/ultragrid-proprietary-drivers-$entry\1/g" "$filename" + sed -ri "s/^ultragrid-proprietary-drivers\b/ultragrid-proprietary-drivers-$entry/g" "$filename" +} +function move_file(){ + local lintfile="$1" + local lockver="$2" + mv "$lintfile" "$(echo "$lintfile" | sed "s#ultragrid-proprietary-drivers#ultragrid-proprietary-drivers-$lockver#g")" +} +function debdirpatch(){ + local prefix="$1" + local archivefile="$2" + local lockver="$3" + local conflicttext="$4" + local providetext="$5" + + if [[ "x$archivefile" != "x" ]] && [[ -f "$archivefile" ]] ; then + rm -rf debian + tar -xf "$debarchive" + fi + + if [[ -f "${prefix}control" ]] ; then + patch_file "$conflicttext\n$providetext" "${prefix}control" + patch_pkgname "${prefix}control" "$lockver" + fi + + local installfile="${prefix}ultragrid-proprietary-drivers.install" + if [[ -f "$installfile" ]] ; then + move_file "$installfile" "$lockver" + fi + + for lintfile in "${prefix}"*lintian* "${prefix}"source/*lintian* ; do + test -f "$lintfile" || continue + patch_pkgname "$lintfile" "$lockver" + done + + if [[ "x$archivefile" != "x" ]] && [[ -f "$archivefile" ]] ; then + tar -c debian -zf "$debarchive" + rm -rf debian + fi +} +function err_exit(){ + printf "%s\n" "$1" >&2 + exit $2 +} + +scriptroot="$(dirname "$(realpath "$0")")" + +driverssubdir=ultragrid-proprietary-drivers +lockver="$1" +newdir="$scriptroot/$driverssubdir-$lockver" + +[[ "x$lockver" != "x" ]] || err_exit "usage: $0 " 1 +[[ -d "$newdir" ]] && err_exit "directory $newdir allready exists, I refuse to run!" 1 + +shift + +providetext="Provides:\tultragrid-proprietary-drivers-release-$lockver" +conflicttext="Conflicts:" +sep="\t" +for version in $(printf "%s" "$*" | sed -r 's#\b([[:digit:].]+)#release-\1#g') nightly ; do + conflicttext+="${sep}ultragrid-proprietary-drivers-$version" + sep=", " +done + +cp -r "$scriptroot/$driverssubdir" "$newdir" + +pushd "$newdir" + +debdirpatch "debian." "" "$lockver" "$conflicttext" "$providetext" + +for debarchive in debian*.tar.gz ; do + debdirpatch "debian/" "$debarchive" "$lockver" "$conflicttext" "$providetext" +done + +#patch package name in rpmspec +for specfile in *.spec ; do + test -f "$specfile" || continue + sed -i "s#-rpmlintrc\$#-$lockver-rpmlintrc#g" "$specfile" + patch_file "$conflicttext\n$providetext" "$specfile" + patch_pkgname "$specfile" "$lockver" +done +#patch package name in debian file +for dscfile in *.dsc ; do + test -f "$dscfile" || continue + patch_pkgname "$dscfile" "$lockver" +done + +# process rpmlintrc +for lintfile in *-rpmlintrc ; do + test -f "$lintfile" || continue + sed -i "s#ultragrid-proprietary-drivers#ultragrid-proprietary-drivers-$lockver#g" "$lintfile" +done + +for lintfile in *rpmlintrc *.spec *.dsc ; do + test -f "$lintfile" || continue + move_file "$lintfile" "$lockver" +done + +for servicefile in _service* ; do + sed -i "s#package_specs/ultragrid-proprietary-drivers/#package_specs/ultragrid-proprietary-drivers-$lockver/#g" "$servicefile" +done +popd diff --git a/package_specs/ultragrid-proprietary-drivers/debian.tar.gz b/package_specs/ultragrid-proprietary-drivers/debian.tar.gz index ce37c7f8c376f6e6bd84c71a5036f5c0e1132d4d..e19a9300f3f372fe9e96dbee7b4f90e3f5c66ebb 100644 GIT binary patch literal 1671 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