mirror of
				https://git.launchpad.net/ubuntu-dev-tools
				synced 2025-11-04 07:54:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# Copyright 2007 (C) Albin Tonnerre (Lutin) <lut1n.tne@gmail.com>
 | 
						|
# 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 <ubuntu-devel-discuss@lists.ubuntu.com>"  ;;
 | 
						|
    "universe"|"multiverse")    email="Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>"           ;;
 | 
						|
    *)      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 "Modify Maintainer value to match the DebianMaintainerField specification."
 | 
						|
echo "Maintainer changed to $email."
 |