2010-08-06 02:38:06 +00:00
#
# For now, we will skip building of a gcc package if it is a uclibc one
2014-08-28 06:00:54 +00:00
# and our build is not a uclibc one, and we skip a glibc one if our build
2010-08-06 02:38:06 +00:00
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb , re
2012-03-03 10:59:25 +00:00
uc_os = ( re . match ( '.*uclibc*' , d . getVar ( 'TARGET_OS' , True )) != None )
2010-08-06 02:38:06 +00:00
if uc_os :
raise bb . parse . SkipPackage ( " incompatible with target %s " %
2012-03-03 10:59:25 +00:00
d . getVar ( 'TARGET_OS' , True ))
2010-08-06 02:38:06 +00:00
}
# Set this to zero if you don't want ldconfig in the output package
USE_LDCONFIG ? = " 1 "
2015-06-19 09:09:40 +00:00
INHIBIT_SYSROOT_STRIP = " 1 "
2014-08-28 06:00:54 +00:00
PACKAGES = " ${ PN } -dbg catchsegv sln nscd ldd tzcode ${ PN } -utils glibc-thread-db ${ PN } -pic libcidn libmemusage libsegfault ${ PN } -pcprofile libsotruss ${ PN } glibc-extra-nss ${ PN } -dev ${ PN } -staticdev ${ PN } -doc "
# The ld.so in this glibc supports the GNU_HASH
RPROVIDES_ $ { PN } = " eglibc rtld(GNU_HASH) "
RPROVIDES_ $ { PN } - utils = " eglibc-utils "
RPROVIDES_ $ { PN } - mtrace = " eglibc-mtrace libc-mtrace "
RPROVIDES_ $ { PN } - pic = " eglibc-pic "
RPROVIDES_ $ { PN } - dev = " eglibc-dev libc6-dev virtual-libc-dev "
RPROVIDES_ $ { PN } - staticdev = " eglibc-staticdev "
RPROVIDES_ $ { PN } - doc = " eglibc-doc "
RPROVIDES_glibc - extra - nss = " eglibc-extra-nss "
RPROVIDES_glibc - thread - db = " eglibc-thread-db "
RPROVIDES_ $ { PN } - pcprofile = " eglibc-pcprofile "
RPROVIDES_ $ { PN } - dbg = " eglibc-dbg "
2015-07-24 21:55:30 +00:00
libc_baselibs = " ${ base_libdir } /libcrypt*.so.* ${ base_libdir } /libcrypt-*.so ${ base_libdir } /libc.so.* ${ base_libdir } /libc-*.so ${ base_libdir } /libm*.so.* ${ base_libdir } /libm-*.so ${ base_libdir } /libmvec-*.so ${ base_libdir } /ld*.so.* ${ base_libdir } /ld-*.so ${ base_libdir } /libpthread*.so.* ${ base_libdir } /libpthread-*.so ${ base_libdir } /libresolv*.so.* ${ base_libdir } /libresolv-*.so ${ base_libdir } /librt*.so.* ${ base_libdir } /librt-*.so ${ base_libdir } /libutil*.so.* ${ base_libdir } /libutil-*.so ${ base_libdir } /libnsl*.so.* ${ base_libdir } /libnsl-*.so ${ base_libdir } /libnss_files*.so.* ${ base_libdir } /libnss_files-*.so ${ base_libdir } /libnss_compat*.so.* ${ base_libdir } /libnss_compat-*.so ${ base_libdir } /libnss_dns*.so.* ${ base_libdir } /libnss_dns-*.so ${ base_libdir } /libdl*.so.* ${ base_libdir } /libdl-*.so ${ base_libdir } /libanl*.so.* ${ base_libdir } /libanl-*.so ${ base_libdir } /libBrokenLocale*.so.* ${ base_libdir } /libBrokenLocale-*.so "
2014-12-18 08:51:13 +00:00
libc_baselibs_append_aarch64 = " /lib/ld-linux-aarch64*.so.1 "
2015-08-18 13:55:47 +00:00
INSANE_SKIP_ $ { PN } _append_aarch64 = " libdir "
2010-08-06 02:38:06 +00:00
2010-12-23 15:50:31 +00:00
FILES_ $ { PN } = " ${ libc_baselibs } ${ libexecdir } /* $ { @base_conditional('USE_LDCONFIG', '1', ' ${ base_sbindir } /ldconfig ${ sysconfdir } /ld.so.conf', '', d)} "
2011-12-22 17:43:33 +00:00
FILES_ldd = " ${ bindir } /ldd "
FILES_libsegfault = " ${ base_libdir } /libSegFault* "
FILES_libcidn = " ${ base_libdir } /libcidn-*.so ${ base_libdir } /libcidn.so.* "
FILES_libmemusage = " ${ base_libdir } /libmemusage.so "
2014-08-28 06:00:54 +00:00
FILES_glibc - extra - nss = " ${ base_libdir } /libnss_*-*.so ${ base_libdir } /libnss_*.so.* "
2014-06-19 08:33:59 +00:00
FILES_sln = " ${ base_sbindir } /sln "
2012-01-27 17:13:40 +00:00
FILES_ $ { PN } - pic = " ${ libdir } /*_pic.a ${ libdir } /*_pic.map ${ libdir } /libc_pic/*.o "
2011-12-22 17:43:33 +00:00
FILES_libsotruss = " ${ libdir } /audit/sotruss-lib.so "
2012-06-05 12:05:51 +00:00
FILES_SOLIBSDEV = " ${ libdir}/lib*${SOLIBSDEV } "
FILES_ $ { PN } - dev += " ${ bindir } /rpcgen ${ libdir } /*_nonshared.a ${ base_libdir } /*_nonshared.a ${ base_libdir } /*.o ${ datadir } /aclocal "
FILES_ $ { PN } - staticdev += " ${ libdir } /*.a ${ base_libdir } /*.a "
2015-08-19 09:25:30 +00:00
FILES_nscd = " ${ sbindir } /nscd* ${ sysconfdir } /init.d/nscd ${ systemd_unitdir } /system/nscd* ${ sysconfdir } /tmpfiles.d/nscd.conf \
$ { sysconfdir } / nscd . conf $ { sysconfdir } / default / volatiles / 98_ nscd $ { localstatedir } / db / nscd "
2012-05-15 16:31:32 +00:00
FILES_ $ { PN } - mtrace = " ${ bindir } /mtrace "
2014-07-17 05:53:10 +00:00
FILES_tzcode = " ${ bindir } /tzselect ${ sbindir } /zic ${ sbindir } /zdump "
2011-08-02 10:42:21 +00:00
FILES_ $ { PN } - utils = " ${ bindir } /* ${ sbindir } /* "
2011-06-28 06:58:15 +00:00
FILES_ $ { PN } - dbg += " ${ libexecdir } /*/.debug ${ libdir } /audit/.debug "
2011-12-22 17:43:33 +00:00
FILES_catchsegv = " ${ bindir } /catchsegv "
RDEPENDS_catchsegv = " libsegfault "
2011-08-02 10:42:21 +00:00
FILES_ $ { PN } - pcprofile = " ${ base_libdir } /libpcprofile.so "
2014-08-28 06:00:54 +00:00
FILES_glibc - thread - db = " ${ base_libdir } /libthread_db.so.* ${ base_libdir } /libthread_db-*.so "
2011-08-02 10:42:21 +00:00
RPROVIDES_ $ { PN } - dev += " libc-dev "
2012-01-21 00:07:38 +00:00
RPROVIDES_ $ { PN } - staticdev += " libc-staticdev "
2010-08-06 02:38:06 +00:00
2014-02-19 15:13:54 +00:00
SUMMARY_sln = " The static ln "
2010-09-27 14:44:05 +00:00
DESCRIPTION_sln = " Similar to the 'ln' utility, but statically linked. sln is useful to make symbolic links to dynamic libraries if the dynamic linking system, for some reason, is not functional. "
SUMMARY_nscd = " Name service cache daemon "
DESCRIPTION_nscd = " nscd, name service cache daemon, caches name service lookups for the passwd, group and hosts information. It can damatically improvide performance with remote, such as NIS or NIS+, name services. "
2014-08-28 06:00:54 +00:00
SUMMARY_glibc - extra - nss = " hesiod, NIS and NIS+ nss libraries "
DESCRIPTION_glibc - extra - nss = " glibc: nis, nisplus and hesiod search services. "
2010-09-27 14:44:05 +00:00
SUMMARY_ldd = " print shared library dependencies "
2012-09-25 12:56:41 +00:00
DESCRIPTION_ldd = " ${ bindir } /ldd prints shared library dependencies for each program or shared library specified on the command line. "
2014-08-28 06:00:54 +00:00
SUMMARY_ $ { PN } - utils = " Miscellaneous utilities provided by glibc "
2014-08-17 16:22:55 +00:00
DESCRIPTION_ $ { PN } - utils = " Miscellaneous utilities including getconf, iconv, locale, gencat, rpcgen, ... "
2011-06-22 00:55:33 +00:00
DESCRIPTION_libsotruss = " Library to support sotruss which traces calls through PLTs "
2014-07-17 05:53:10 +00:00
DESCRIPTION_tzcode = " tzcode, timezone zoneinfo utils -- zic, zdump, tzselect "
2010-08-06 02:38:06 +00:00
2011-07-26 19:17:11 +00:00
inherit libc - common multilib_header
2010-08-06 02:38:06 +00:00
2011-07-07 16:17:49 +00:00
do_install_append () {
rm - f $ { D } $ { sysconfdir } / localtime
2012-04-28 15:23:23 +00:00
rm - rf $ { D } $ { localstatedir }
2011-07-26 19:17:11 +00:00
2014-08-28 06:00:54 +00:00
# remove empty glibc dir
if [ - d $ { D } $ { libdir } / glibc - a ! - e $ { D } $ { libdir } / glibc / pt_chown ]; then
rmdir $ { D } $ { libdir } / glibc
2013-08-21 05:45:23 +00:00
fi
2011-07-26 19:17:11 +00:00
oe_multilib_header bits / syscall . h
2012-04-14 08:59:05 +00:00
if [ - f $ { D } $ { bindir } / mtrace ]; then
2012-07-18 17:38:05 +00:00
sed - i - e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' - e '2s,exec.*perl,exec ${USRBINPATH}/env perl,' $ { D } $ { bindir } / mtrace
2012-04-14 08:59:05 +00:00
fi
2012-08-31 20:52:41 +00:00
rm - rf $ { D } $ { includedir } / rpcsvc / rquota *
2013-01-25 19:42:53 +00:00
# Info dir listing isn't interesting at this point so remove it if it exists.
if [ - e " ${ D}${infodir } /dir " ]; then
rm - f $ { D } $ { infodir } / dir
fi
2013-04-24 16:39:59 +00:00
if [ " ${ USE_LDCONFIG } " != " 1 " ]; then
2014-10-24 16:24:57 +00:00
# We won't ship these files (see FILES above) so let's not install them
2013-04-24 16:39:59 +00:00
rm - f $ { D } $ { sysconfdir } / ld . so . conf
2014-10-24 16:24:57 +00:00
rm - f $ { D } $ { base_sbindir } / ldconfig
2013-04-24 16:39:59 +00:00
# This directory will be empty now so remove it too.
2014-08-28 06:00:54 +00:00
# But check whether it exists first, since it won't for glibc-initial.
2013-04-24 16:39:59 +00:00
if [ - d $ { D } $ { sysconfdir } ]; then
rmdir $ { D } $ { sysconfdir }
fi
fi
2015-08-19 09:25:30 +00:00
if echo $ { PN } | grep - q " glibc-initial " ; then
return
fi
install - d $ { D } $ { sysconfdir } / init . d
install - d $ { D } $ { localstatedir } / db / nscd
install - m 0755 $ { S } / nscd / nscd . init $ { D } $ { sysconfdir } / init . d / nscd
install - m 0755 $ { S } / nscd / nscd . conf $ { D } $ { sysconfdir } / nscd . conf
sed - i " s%daemon%start-stop-daemon --start --exec%g " $ { D } $ { sysconfdir } / init . d / nscd
install - d $ { D } $ { systemd_unitdir } / system
install - m 0644 $ { S } / nscd / nscd . service $ { D } $ { systemd_unitdir } / system /
if $ { @ bb . utils . contains ( 'DISTRO_FEATURES' , 'systemd' , 'true' , 'false' , d )}; then
install - d $ { D } $ { sysconfdir } / tmpfiles . d
echo " d /run/nscd 755 root root - " \
> $ { D } $ { sysconfdir } / tmpfiles . d / nscd . conf
else
install - d $ { D } $ { sysconfdir } / default / volatiles
echo " d root root 0755 /var/run/nscd none " \
> $ { D } $ { sysconfdir } / default / volatiles / 98_ nscd
fi
2011-07-07 16:17:49 +00:00
}
2014-12-18 08:51:13 +00:00
do_install_append_aarch64 () {
if [ " ${ base_libdir } " != " /lib " ] ; then
# The aarch64 ABI says the dynamic linker -must- be /lib/ld-linux-aarch64[_be].so.1
install - d $ { D } / lib
if [ - e $ { D } $ { base_libdir } / ld - linux - aarch64 . so . 1 ]; then
ln - s $ { @ base_path_relative ( '/lib' , '${base_libdir}' )} / ld - linux - aarch64 . so . 1 \
$ { D } / lib / ld - linux - aarch64 . so . 1
elif [ - e $ { D } $ { base_libdir } / ld - linux - aarch64_be . so . 1 ]; then
ln - s $ { @ base_path_relative ( '/lib' , '${base_libdir}' )} / ld - linux - aarch64_be . so . 1 \
$ { D } / lib / ld - linux - aarch64_be . so . 1
fi
fi
}
2011-06-28 12:30:47 +00:00
do_install_locale () {
2014-08-28 06:00:54 +00:00
dest = $ { D } / $ { includedir } / glibc - locale - internal - $ { MULTIMACH_TARGET_SYS }
2011-06-30 15:41:49 +00:00
install - d $ { dest } $ { base_libdir } $ { dest } $ { bindir } $ { dest } $ { libdir } $ { dest } $ { datadir }
2011-07-08 19:48:39 +00:00
if [ " ${ base_libdir } " != " ${ libdir } " ]; then
cp - fpPR $ { D } $ { base_libdir } /* $ { dest } $ { base_libdir }
fi
2011-08-26 11:41:18 +00:00
if [ - e $ { D } $ { bindir } / localedef ]; then
2011-07-19 16:51:10 +00:00
mv - f $ { D } $ { bindir } / localedef $ { dest } $ { bindir }
fi
2011-08-26 11:41:18 +00:00
if [ - e $ { D } $ { libdir } / gconv ]; then
2011-07-19 16:51:10 +00:00
mv - f $ { D } $ { libdir } / gconv $ { dest } $ { libdir }
fi
2012-09-24 19:00:41 +00:00
if [ - e $ { D } $ { exec_prefix } / lib ]; then
cp - fpPR $ { D } $ { exec_prefix } / lib $ { dest } $ { exec_prefix }
fi
2012-02-15 08:49:07 +00:00
if [ - e $ { D } $ { datadir } / i18n ]; then
mv $ { D } $ { datadir } / i18n $ { dest } $ { datadir }
fi
2011-06-30 15:41:49 +00:00
cp - fpPR $ { D } $ { datadir } /* $ { dest } $ { datadir }
2012-07-19 13:14:20 +00:00
rm - rf $ { D } $ { datadir } / locale /
2011-06-28 12:30:47 +00:00
cp - fpPR $ { WORKDIR } / SUPPORTED $ { dest }
}
2011-06-30 15:45:20 +00:00
addtask do_install_locale after do_install before do_populate_sysroot do_package
2011-06-28 12:30:47 +00:00
2012-09-25 12:56:41 +00:00
bashscripts = " mtrace sotruss xtrace "
do_evacuate_scripts () {
2014-08-28 06:00:54 +00:00
target = $ { D } $ { includedir } / glibc - scripts - internal - $ { MULTIMACH_TARGET_SYS }
2012-09-25 12:56:41 +00:00
mkdir - p $target
for i in $ { bashscripts }; do
2013-01-25 14:42:26 +00:00
if [ - f $ { D } $ { bindir } / $i ]; then
cp $ { D } $ { bindir } / $i $target /
fi
2012-09-25 12:56:41 +00:00
done
}
addtask evacuate_scripts after do_install before do_populate_sysroot do_package
2014-08-28 06:00:54 +00:00
PACKAGE_PREPROCESS_FUNCS += " glibc_package_preprocess "
2011-06-30 15:41:49 +00:00
2014-08-28 06:00:54 +00:00
glibc_package_preprocess () {
rm - rf $ { PKGD } / $ { includedir } / glibc - locale - internal - $ { MULTIMACH_TARGET_SYS }
rm - rf $ { PKGD } / $ { includedir } / glibc - scripts - internal - $ { MULTIMACH_TARGET_SYS }
2012-09-25 12:56:41 +00:00
for i in $ { bashscripts }; do
rm - f $ { PKGD } $ { bindir } / $i
done
2012-09-24 19:00:41 +00:00
rm - rf $ { PKGD } / $ { localedir }
if [ " ${ libdir } " != " ${ exec_prefix } /lib " ]; then
# This dir only exists to hold locales
rm - rf $ { PKGD } $ { exec_prefix } / lib
fi
2011-06-30 15:41:49 +00:00
}
2015-08-19 09:25:30 +00:00
pkg_postinst_nscd () {
if [ - z " $D " ]; then
if command - v systemd - tmpfiles >/ dev / null ; then
systemd - tmpfiles -- create $ { sysconfdir } / tmpfiles . d / nscd . conf
elif [ - e $ { sysconfdir } / init . d / populate - volatile . sh ]; then
$ { sysconfdir } / init . d / populate - volatile . sh update
fi
fi
}
CONFFILES_nscd = " ${ sysconfdir } /nscd.conf "
SYSTEMD_PACKAGES = " nscd "
SYSTEMD_SERVICE_nscd = " nscd.service "