#!/bin/bash # Copyright 2007 (C) Albin Tonnerre (Lutin) # License: GPLv2 # # This script is used to update the maintainer field of an Ubuntu package # to match the DebianMaintainerField specification. for argv in "$@"; do param=${argv%=*} value=${argv#*=} case $param in "--path") path="$value" ;; "--section") section=$value ;; "--help") echo -e "Options: \n --path=PATH : specify the path of the source folder\n --section=SECTION : specify the section of the package (if the package is not yet in the archive or if you don't have the gutsy source repo in your sources.list)"; exit 0 ;; *) echo "Bad parameter, please use --help" >&2; exit 1 ;; esac done cd ${path-.} # look for the debian directory if [ -f debian/control -a -f debian/changelog ]; then DEBIANDIR=debian elif [ -f control -a -f changelog ]; then DEBIANDIR=. else echo "Please execute «$0» in the source folder." >&2 && exit 1 fi [ -n "$(head -1 $DEBIANDIR/changelog | grep -E '\(*ubuntu.*\)')" ] && ! grep -E "^Maintainer: .*@.*ubuntu.*>" $DEBIANDIR/control >/dev/null || \ { echo "Not an Ubuntu package or already maintained by the Ubuntu team." >&2; \ exit 1; } if [ -z "$section" ]; then DISTRO=$(sed -r '1!d;s/.*\) (.*);.*/\1/' $DEBIANDIR/changelog|cut -d'-' -f1) pkgline=$(apt-cache madison $(head -1 $DEBIANDIR/changelog| cut -d' ' -f1)|\ grep -m 1 "$DISTRO.*Sources") if [ -z "$pkgline" ]; then echo "You don't have $DISTRO in your source repos." >&2 exit 1 fi section=$(echo $pkgline | grep -Eo "main|universe|multiverse|restricted") fi case $section in "main"|"restricted") email="Ubuntu Core Developers " ;; "universe"|"multiverse") email="Ubuntu MOTU Developers " ;; *) echo "No section found for this package; aborting" >&2; exit 1 ;; esac for file in control{,.in,.real}; do [ -f $DEBIANDIR/$file ] && sed -ri "s/(^Maintainer:) (.*)/\1 $email\nXSBC-Original-\1 \2/" $DEBIANDIR/$file done dch --changelog $DEBIANDIR/changelog "Modify Maintainer value to match the DebianMaintainerField specification." echo "Maintainer changed to $email."