scripts/mk-patch.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Apr 24 15:39:53 2011 +0200 (2011-04-24)
changeset 2408 560670f2ce09
parent 2075 edc7c7958e80
permissions -rwxr-xr-x
internals/finish: do not remove ${PREFIX}/include

gcc installs the C++ headers in ${PREFIX}/include/ but we trash
that directory at the end of the build.

We previously removed that directory as it contained the companion
libraries header files. But it's been some time now that we isntall
the companion libraries in their own dedicated place, so we do not
need to remove that directory.

Until we have a better fix, just keep that directory for now.

Reported-by: Bob Rossi <bob@brasko.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1888
     1
#!/bin/sh
yann@1888
     2
yann@1888
     3
repos="$1"
yann@1888
     4
pdir="$2"
yann@1888
     5
if [ -z "${repos}" -o ! -d "${repos}" -o -z "${pdir}" -o ! -d "${pdir}" ];then
yann@1888
     6
    printf "Usage: ${0##*/} <repos_dir> <patch_dir>\n"
yann@1888
     7
    exit 1
yann@1888
     8
fi
yann@1888
     9
yann@1888
    10
pdir="$( cd "${pdir}"; pwd)"
yann@1888
    11
version="$( echo "${pdir}" |sed -r -e 's,.*/([^/]+)/*$,\1,' )"
yann@1888
    12
branch="${version%.*}"
yann@1888
    13
n=$( ls -1 "${pdir}" 2>/dev/null |wc -l )
yann@1888
    14
yann@1888
    15
r1="$( hg -R "${repos}" log -b "${branch}"  \
yann@1888
    16
       |awk '
yann@1888
    17
            $1=="changeset:" {
yann@1888
    18
                prev=rev;
yann@1888
    19
                split($2,a,":");
yann@1888
    20
                rev=a[1];
yann@1888
    21
            }
yann@1888
    22
            $0~/^summary:[[:space:]]+'"${branch}: (bump|update) version to ${version}\+hg"'$/ {
yann@1888
    23
                printf( "%d\n", prev );
yann@1888
    24
            }
yann@1888
    25
            '
yann@1888
    26
     )"
yann@1888
    27
yann@1888
    28
i=0
yann@1888
    29
hg -R "${repos}" log -b "${branch}" -r "${r1}:tip" --template '{rev}\n'    \
yann@1888
    30
|while read rev; do
yann@1888
    31
    p="$( printf "%03d" ${i} )"
yann@1888
    32
    i=$((i+1))
yann@1888
    33
    if [ $( ls -1 "${pdir}/${p}-"*.patch 2>/dev/null |wc -l ) -ne 0 ]; then
yann@1888
    34
        continue
yann@1888
    35
    fi
yann@1888
    36
    plog=$( hg -R "${repos}" log -r ${rev} --template '{desc|firstline}\n'  \
yann@2403
    37
            |sed -r -e 's,[^[:alnum:]],_,g; s/_+/_/g;'                      \
yann@1888
    38
          )
yann@1888
    39
    pname="${p}-${plog}.patch"
yann@1888
    40
    printf "Revision '%d' --> '%s'\n" ${rev} "${pname}"
yann@1888
    41
    hg -R "${repos}" diff -c ${rev} --color=never >"${pdir}/${pname}"
yann@1888
    42
    pdate="$( hg -R "${repos}" log -r ${rev} --template '{date|isodate}\n' )"
yann@1888
    43
    touch -d "${pdate}" "${pdir}/${pname}"
yann@1888
    44
done