wok-next annotate glibc/receipt @ rev 20025

Up opencv (3.3.0)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Oct 22 13:30:25 2017 +0200 (2017-10-22)
parents 0abbdf485a8d
children 90a5eb560fd6
rev   line source
al@19743 1 # SliTaz package receipt v2.
pankso@9 2
pankso@9 3 PACKAGE="glibc"
al@19743 4 VERSION="2.25"
pankso@3475 5 CATEGORY="meta"
al@19743 6 SHORT_DESC="The GNU C libraries"
pankso@9 7 MAINTAINER="pankso@slitaz.org"
pascal@15000 8 LICENSE="GPL2"
al@19561 9 WEB_SITE="http://www.gnu.org/software/libc/"
al@19561 10
pankso@9 11 TARBALL="$PACKAGE-$VERSION.tar.gz"
pankso@9 12 WGET_URL="$GNU_MIRROR/$PACKAGE/$TARBALL"
pankso@9713 13
al@19743 14 BUILD_DEPENDS="linux-api-headers autoconf bash gawk gettext bison \
al@19577 15 texinfo"
al@19743 16 # slitaz-i18n should present in wok
al@19743 17 SPLIT="glibc-base glibc-locale nscd glibc-dev"
al@19743 18
al@19743 19 # Locales include to glibc-base package by default, other locales are in: locale-** and glibc-locale
al@19743 20 DEFAULT_LOCALE="en_US en_GB"
al@19743 21
al@19743 22 # Handle multiarch compilation.
al@19743 23 case "$ARCH" in
al@19743 24 arm*|x86_64) VERSION="2.13";;
al@19743 25 esac
al@19743 26
al@19743 27 # Handle multiarch installation.
al@19743 28 case "$SLITAZ_ARCH" in
al@19743 29 arm*|x86_64) VERSION="2.13";;
al@19743 30 esac
al@19743 31
al@18922 32
gokhlayeh@8189 33 # Rules to compile & install the temporary toolchain.
gokhlayeh@8189 34 cook_tmp_toolchain()
gokhlayeh@8189 35 {
slaxemulator@10420 36 unset CFLAGS CXXFLAGS
pascal@19744 37 echo "CFLAGS += -O2 -march=${ARCH/i386/i486} -mtune=${ARCH/i386/i486}" > configparms
gokhlayeh@8189 38
al@19561 39 {
al@19561 40 # Build in a separate directory.
al@19561 41 mkdir glibc-build
al@19561 42 cd glibc-build
al@19561 43
al@19561 44 ../configure \
al@19561 45 --host=$HOST_SYSTEM \
al@19561 46 --build=$($src/scripts/config.guess) \
al@19561 47 --disable-profile \
al@19561 48 --enable-add-ons \
al@19561 49 --enable-kernel=2.6.32 \
al@19561 50 --with-headers=/tools/include \
al@19561 51 libc_cv_forced_unwind=yes \
al@19561 52 libc_cv_c_cleanup=yes &&
al@19561 53 make -j1 &&
al@19561 54 make install
gokhlayeh@8189 55 } || return 1
gokhlayeh@8189 56
gokhlayeh@8189 57 # Link compiler to this new glibc.
al@19577 58 SPECS=$(dirname $($HOST_SYSTEM-gcc -print-libgcc-file-name))/specs
slaxemulator@10420 59 $HOST_SYSTEM-gcc -dumpspecs | sed \
gokhlayeh@8189 60 -e 's@/lib\(64\)\?/ld@/tools&@g' \
al@19577 61 -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS
gokhlayeh@8189 62 unset SPECS
gokhlayeh@8189 63 }
pankso@9 64
pankso@9 65 # Rules to configure and make the package.
pankso@9 66 compile_rules()
pankso@9 67 {
pankso@10031 68 # Glibc needs ld.so.conf in the install destdir.
al@19743 69 mkdir -p $install/etc
al@19743 70 touch $install/etc/ld.so.conf
al@19561 71
al@19743 72 # Read the INSTALL file in glibc. Also Glibc don't build with -Os flag.
pankso@10031 73 # --enale-kernel use latest SliTaz Kernel version. From Glibc INSTALL:
pankso@10031 74 # "The higher the VERSION number is, the less compatibility code is
pankso@10031 75 # added, and the faster the code gets."
pankso@10031 76 unset CFLAGS CXXFLAGS
pascal@19744 77 echo "CFLAGS += -O2 -march=${ARCH/i386/i486} -mtune=${ARCH/i386/i486}" > configparms
al@19561 78
al@19561 79 {
al@19561 80 mkdir build
al@19561 81 cd build
al@19561 82 $src/configure \
al@19561 83 --disable-profile \
al@19561 84 --enable-add-ons \
al@19581 85 --enable-obsolete-rpc \
al@19561 86 --enable-kernel=2.6.32 \
al@19561 87 --libexecdir=/usr/lib/glibc \
al@19561 88 --build=$HOST_SYSTEM \
al@19561 89 --host=$HOST_SYSTEM \
al@19561 90 --target=$BUILD_SYSTEM &&
al@19561 91 make -j1 && make install_root=$DESTDIR install
gokhlayeh@8189 92 } || return 1
al@19561 93
al@19743 94 # nscd
al@19743 95 mkdir -p $install/etc/init.d $install/var/db
al@19743 96 cp $stuff/nscd $install/etc/init.d
al@19756 97 chmod +x $install/etc/init.d/nscd
al@19743 98
al@19743 99 # nsswitch.conf
al@19743 100 cp $stuff/nsswitch.conf $install/etc
gokhlayeh@8189 101
pankso@10031 102 # If temporary toolchain was previously used, switch to regular toolchain.
al@19578 103 if [ -d /tools ]; then
al@19577 104 mv /tools/bin/ld /tools/bin/ld-old
al@19577 105 mv /tools/$(gcc -dumpmachine)/bin/ld /tools/$(gcc -dumpmachine)/bin/ld-old
al@19577 106 mv /tools/bin/ld-new /tools/bin/ld
al@19577 107 ln -s /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld
al@19577 108 gcc -dumpspecs | sed -e 's@/tools@@g' \
al@19577 109 -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
al@19577 110 -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
al@19577 111 $(dirname $(gcc --print-libgcc-file-name))/specs
al@19577 112 fi
pankso@9 113 }
pankso@9 114
al@19743 115 # i18n
al@19743 116 get_locales()
al@19743 117 {
al@19743 118 local path=$1
al@19743 119 for i in $DEFAULT_LOCALE; do
al@19743 120 cp $install/$path/i18n/locales/$i $fs/usr/share/i18n/locales
al@19743 121 done
al@19743 122 }
al@19743 123
al@19743 124 mk_dirs()
al@19743 125 {
al@19743 126 mkdir -p \
al@19743 127 $fs/etc \
al@19743 128 $fs/lib \
al@19743 129 $fs/usr/bin \
al@19743 130 $fs/usr/lib/gconv \
al@19743 131 $fs/usr/lib/locale \
al@19743 132 $fs/usr/share/zoneinfo/America \
al@19743 133 $fs/usr/share/zoneinfo/Europe \
al@19743 134 $fs/usr/share/i18n/locales \
al@19743 135 $fs/usr/share/i18n/charmaps \
al@19743 136 $fs/usr/share/locale
al@19743 137 }
al@19743 138
pankso@9 139 # Rules to gen a SliTaz package suitable for Tazpkg.
pankso@9 140 genpkg_rules()
pankso@9 141 {
al@19743 142 case $PACKAGE in
al@19743 143 glibc)
al@19743 144 LOCALE=""
al@19790 145 CAT="meta|meta-package"
al@19790 146 DEPENDS="glibc-base glibc-locale glibc-dev"
al@19743 147 ;;
al@19743 148 glibc-base)
al@19743 149 case "$ARCH" in
al@19743 150 arm*)
al@19743 151 # Eglibc is cross compiled by cross to have a toolchain so we can
al@19743 152 # use these files instead of recooking it. ARM use Eglibc
al@19743 153 echo "Using cross compiled Eglibc..."
al@19743 154 install="/cross/$ARCH/sysroot"
al@19743 155 copy libc_nonshared.a libpthread_nonshared.a
al@19743 156 ;;
al@19743 157 x86_64)
al@19743 158 # EXPERIMENTAL: Glibc is cross compiled by cross to have a
al@19743 159 # toolchain so we can use these files instead of recooking it.
al@19743 160 echo "Using cross compiled Glibc..."
al@19743 161 install="/usr/cross/$ARCH"
al@19743 162 copy libc_nonshared.a libpthread_nonshared.a
al@19743 163 ;;
al@19743 164 esac
al@19743 165 copy \
al@19743 166 ld-*.so* ld.so* \
al@19743 167 libanl-*.so* libanl.so* \
al@19743 168 libc-*.so* libc.so* \
al@19743 169 libcrypt-*.so* libcrypt.so* \
al@19743 170 libdl-*.so* libdl.so* \
al@19743 171 libm-*.so* libm.so* \
al@19743 172 libnsl-*.so* libnsl.so* \
al@19743 173 libnss_compat-*.so* libnss_compat.so* \
al@19743 174 libnss_dns-*.so* libnss_dns.so* \
al@19743 175 libnss_files-*.so* libnss_files.so* \
al@19743 176 libpthread-*.so* libpthread.so* \
al@19743 177 libresolv-*.so* libresolv.so* \
al@19743 178 librt-*.so* librt.so* \
al@19743 179 libthread_db-*.so* libthread_db.so* \
al@19743 180 libutil-*.so* libutil.so* \
al@19743 181 \
al@19743 182 UNICODE.so gconv-modules ANSI_X3.110.so ISO8859-1.so \
al@19743 183 ISO8859-15.so UTF-16.so CP1252.so IBM437.so IBM850.so \
al@19743 184 \
al@19743 185 i18n iso14651_t1 iso14651_t1_common \
al@19743 186 translit_neutral translit_combining translit_circle \
al@19743 187 translit_cjk_compat translit_compat translit_font \
al@19743 188 translit_fraction translit_narrow translit_small \
al@19743 189 translit_wide \
al@19743 190 \
al@19743 191 locale localedef locale.alias UTF-8.gz UTC rpc \
al@19743 192 nsswitch.conf \
al@19743 193 $DEFAULT_LOCALE
gokhlayeh@8189 194
al@19743 195 case "$ARCH" in
al@19743 196 x86_64)
al@19743 197 # Fix libraries search path
al@19743 198 sed -i "s|/usr/cross/$ARCH||g" $fs/lib/libc.so
al@19743 199 sed -i "s|/usr/cross/$ARCH||g" $fs/lib/libpthread.so
al@19743 200 ;;
al@19743 201 esac
al@19743 202 CAT="base-system|minimal libraries and UTF-8 support for SliTaz"
al@19790 203 DEPENDS=" "
al@19743 204 ;;
al@19743 205 glibc-locale)
al@19743 206 copy gconv/ locale/ i18n/ iconv tzselect
al@19743 207 # Remove glibc-base files
al@19743 208 remove_already_packed
al@19743 209
al@19743 210 # Remove files provided by locale-pack.
al@19743 211 . $WOK/slitaz-i18n/stuff/locale-pack.conf
al@19743 212 echo -n "Removing locale: "
al@19743 213 for i in $LOCALE_PACK; do
al@19743 214 echo -n "$i "
al@19743 215 rm -rf $fs/usr/share/locale/$i
al@19743 216 done
al@19743 217 status
al@19790 218 CAT="system-tools|misc. locale files and utilities"
al@19743 219 DEPENDS="glibc-base"
al@19743 220 ;;
al@19743 221 nscd)
al@19743 222 copy /var/db/ nscd getent nscd.conf
al@19743 223 CAT="base-system|name-server caching daemon"
al@19790 224 DEPENDS=" "
al@19743 225 ;;
al@19743 226 glibc-dev)
al@19760 227 copy @std @dev
al@19743 228 remove_already_packed
al@19743 229 DEPENDS="glibc-base"
al@19743 230 ;;
al@19743 231 esac
pankso@9 232 }