This commit is contained in:
2022-05-17 01:56:44 +03:00
commit 3a9b8c8468
117 changed files with 7175 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
#!/bin/bash
set -e
usage()
{
cat << EOF
usage: $0 options
OPTIONS:
-h Show this message
-f Filename
-r Remove version postfix
-a Add version postfix
EOF
}
filename=''
remove_postfix=''
add_postfix=''
while getopts 'f:r:a:' OPTION
do
case $OPTION in
h)
usage
exit 1
;;
f)
filename=$OPTARG
;;
r)
remove_postfix=$OPTARG
;;
a)
add_postfix=$OPTARG
;;
?)
usage
exit
;;
esac
done
if [ -z "$filename" ]; then
usage
exit 1
fi
set -x
cp "$filename" .
spackage=$(echo "$filename" | awk -F '/' '{print $NF}')
package=$(echo "$spackage" | awk -F '_' '{print $1}')
version=$(echo "$spackage" | awk -F '_' '{print $2}')
rm -Rf "$package" control changelog
# Set variables
export DH_ALWAYS_EXCLUDE="CVS:.svn:.git"
# Extract package content
dpkg-deb -x $spackage $package/
# Extract package control
dpkg-deb -e $spackage $package/DEBIAN
# Extract package changelog
changelog=$(find $package/usr/share/doc -name 'changelog*.gz' 2>/dev/null| head -n 1)
if [ -n "$changelog" -a -f "$changelog" ]; then
rm -f "$changelog"
fi
old_version=$version
if [ -n "$remove_postfix" ]; then
version=$(echo $version | sed -e "s|+$remove_postfix||g")
old_version=$version"+"$remove_postfix
fi
new_version=$version
if [ -n "$add_postfix" ]; then
new_version=$new_version"+"$add_postfix
fi
dch --create --force-distribution --distribution unstable --package "$package" --newversion "$new_version" -c changelog 'Package rebuilt'
# Fix control
section=$(awk '/Section:/ {print $NF}' $package/DEBIAN/control 2>/dev/null || echo 'misc')
priority=$(awk '/Priority:/ {print $NF}' $package/DEBIAN/control 2>/dev/null || echo 'extra')
echo "$(echo $spackage | sed "s/$old_version/$new_version/") $section $priority" > files
echo "Source: $package" > control
grep -iv "Source:" $package/DEBIAN/control >> control
cp control $package/DEBIAN/control
# Build package
sed -i "s/$old_version/$new_version/g" $package/DEBIAN/control
dpkg-deb -b $package/ ./
# Remove source package
rm -f "./$spackage"