scripts/mk-patch.sh
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Thu Jul 28 22:09:31 2011 +0200 (2011-07-28)
changeset 2573 424fa2092ace
parent 2075 edc7c7958e80
permissions -rwxr-xr-x
scripts/libc: do not build add-ons by default

Currently, no --enable-add-ons option is passed to libc configure when
"$(do_libc_add_ons_list ,)" is empty, which makes configure automatically search
for present add-ons. In that case, all present add-ons are built, although
no add-on was selected by the user in the config. Moreover, this can make the
configure fail if some non-standard add-ons like eglibc-localedef are present.

This behavior also leads to an inconsistency from a user point of view between
the following cases:
- LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS="none" in the config,
which makes "$(do_libc_add_ons_list ,)" return "", so all present add-ons
are built.
- LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS!="none" in the
config, which makes "$(do_libc_add_ons_list ,)" return the add-on supporting
the chosen threading implementation, e.g. "nptl", so only this add-on is
built.

This patch disables the building of all add-ons in that case.

It is still possible to build all present add-ons by adding --enable-add-ons to
LIBC_GLIBC_EXTRA_CONFIG_ARRAY.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
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