summaryrefslogtreecommitdiff
path: root/functions
blob: 410afef57f124925eb1a6568be959dc0c9633723 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
bp() {
    local release_name=$1  # where to backport to
    local package_name=$2  # source package name to backport
    local old_version=$3   # version number we're backporting from
    local new_version=$4   # version number we're backporting to
    local new_source_package_name=$5  # if renaming the source package, the new source package name to rename to
    local release_version

    case $release_name in
        trusty) release_version=14.04;;
        utopic) release_version=14.10;;
        vivid)  release_version=15.04;;
        *) echo "Unknown release $release_name" >&2; exit 1;;
    esac

    # use a patched version of backportpackage with new options --changelog-entry and --new-version
    ./backportpackage -d $release_name -S '~ppa1' --dont-sign -s wily -v $old_version -w workdir -r --changelog-entry "Backport to Ubuntu $release_version to support Docker SRU (LP: #1454719)." --new-version $new_version $package_name >"$package_name-$old_version-$release_name".log 2>&1

    if [ "$new_source_package_name" != "" ]; then
        cd workdir
        mkdir new-orig
        for f in *.orig.tar.*; do
            ln "$f" new-orig/"$f"
        done
        cd new-orig
        rename s/^${package_name}/${new_source_package_name}/ *
        cd ..
        mv new-orig/* .
        rmdir new-orig
        dpkg-source -x "${package_name}_${new_version}.dsc" src
        cd src
            # Rename source package name
            sed -i 1s/${package_name}/${new_source_package_name}/ debian/changelog
            sed -i "s/^Source: ${package_name}/Source: ${new_source_package_name}/" debian/control

            # Add changelog entry to describe renamed source package
            sed -i 1s/$release_name/UNRELEASED/ debian/changelog
            dch "Rename source package to ${new_source_package_name} to align to ${release_version}."
            dch -r -D $release_name ''

            dpkg-buildpackage -us -uc -nc -d -S -sa
        cd ..
        rm ${package_name}_${new_version}_*
        rm ${package_name}_${new_version}.*
        rm -rf src
        cd ..
    fi

    mkdir -p upload
    mv workdir/* upload/
}