Re: [OE-core] [PATCH 0/2] Split glibc and libcrypt
On Fri, 2018-04-06 at 09:27 -0700, Khem Raj wrote: > On Fri, Apr 6, 2018 at 8:42 AM, Richard Purdie >wrote: > > > > On Fri, 2018-04-06 at 08:03 -0700, Khem Raj wrote: > > > > > > this series is ok. Although dont like the fact its not upstream > > > yet > > > but it reduces glibc baggage for future. > > Were you able to find out if glibc will definitely do this? > > > I have started a disucussion. Thanks. > > I think applying this nativesdk is the only thing we can do right > > now > > and it does set us up well to migrate this further if glibc do go > > for > > this. After thinking about this a bit, the patch series needs a few > > minor tweaks to avoid wider testing failures: > > > > a) libxcrypt needs to SkipRecipe in the target case and be > > nativesdk > > only > > b) We need an RDEPENDS_${PN}_append_class-nativesdk = " libxcrypto" > > in > > glibc-package.inc > > c) The override used in glibc-pacjage.inc is wrong suggesting the > > code > > can be dropped. > I think we should apply it for target case too. It will keep things > simple. We are > not losing functionality as we have libxcrypt Its not that simple sadly. These patches as they stand don't let us build anything nativesdk other that uninative. This is because anything needing crypt now needs to have a specific dependency. We can't really have glibc depend on libxcrypt either since its glibc. I think we can unravel this enough to make 2.5/sumo for nativesdk but not in the target case, its too late to require people to change recipes for dependencies. I started work on a patch to make this work for nativesdk using virtual/crypt: diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 93f57f3..60590e2 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -187,6 +187,7 @@ ASSUME_PROVIDED = "\ tar-native \ virtual/libintl-native \ virtual/libiconv-native \ +virtual/crypt-native \ texinfo-native \ bash-native \ sed-native \ diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc index 1b54dd8..c4f5f8c 100644 --- a/meta/recipes-core/glibc/glibc-package.inc +++ b/meta/recipes-core/glibc/glibc-package.inc @@ -16,7 +16,7 @@ RPROVIDES_${PN}-pcprofile = "eglibc-pcprofile" RPROVIDES_${PN}-dbg = "eglibc-dbg" 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" libc_baselibs_append_aarch64 = " /lib/ld-linux-aarch64*.so.1" -libc_baselibs_remove_class_sdk = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so" +#libc_baselibs_remove_class_sdk = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so" INSANE_SKIP_${PN}_append_aarch64 = " libdir" FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf" diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc index 361a6fd..9e02ffd 100644 --- a/meta/recipes-core/glibc/glibc.inc +++ b/meta/recipes-core/glibc/glibc.inc @@ -35,7 +35,10 @@ siteconfig_do_siteconfig_gencache_prepend = " \ DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial libgcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial" # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}" -PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" + +CRYPTPROVIDES = "virtual/crypt" +CRYPTPROVIDES_class-nativesdk = "" +PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc ${CRYPTPROVIDES}" PROVIDES += "virtual/libintl virtual/libiconv" inherit autotools texinfo distro_features_check systemd diff --git a/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb b/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb index 638e387..341bbc7 100644 --- a/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb +++ b/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb @@ -14,6 +14,8 @@ SRCBRANCH ?= "master" SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}" +PROVIDES = "virtual/crypt" + FILES_${PN} = "${libdir}/libcrypt*.so.*
Re: [OE-core] [PATCH 0/2] Split glibc and libcrypt
On Fri, Apr 6, 2018 at 8:42 AM, Richard Purdiewrote: > On Fri, 2018-04-06 at 08:03 -0700, Khem Raj wrote: >> this series is ok. Although dont like the fact its not upstream yet >> but it reduces glibc baggage for future. > > Were you able to find out if glibc will definitely do this? > I have started a disucussion. > I think applying this nativesdk is the only thing we can do right now > and it does set us up well to migrate this further if glibc do go for > this. After thinking about this a bit, the patch series needs a few > minor tweaks to avoid wider testing failures: > > a) libxcrypt needs to SkipRecipe in the target case and be nativesdk >only > b) We need an RDEPENDS_${PN}_append_class-nativesdk = " libxcrypto" in >glibc-package.inc > c) The override used in glibc-pacjage.inc is wrong suggesting the code >can be dropped. I think we should apply it for target case too. It will keep things simple. We are not losing functionality as we have libxcrypt > > Good news is a few of us tested this on f28, f27, ubuntu 1604 and 1710 > and the new uninative built with it seems to work well. > > Cheers, > > Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] Split glibc and libcrypt
On Fri, 2018-04-06 at 08:03 -0700, Khem Raj wrote: > this series is ok. Although dont like the fact its not upstream yet > but it reduces glibc baggage for future. Were you able to find out if glibc will definitely do this? I think applying this nativesdk is the only thing we can do right now and it does set us up well to migrate this further if glibc do go for this. After thinking about this a bit, the patch series needs a few minor tweaks to avoid wider testing failures: a) libxcrypt needs to SkipRecipe in the target case and be nativesdk only b) We need an RDEPENDS_${PN}_append_class-nativesdk = " libxcrypto" in glibc-package.inc c) The override used in glibc-pacjage.inc is wrong suggesting the code can be dropped. Good news is a few of us tested this on f28, f27, ubuntu 1604 and 1710 and the new uninative built with it seems to work well. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] Split glibc and libcrypt
this series is ok. Although dont like the fact its not upstream yet but it reduces glibc baggage for future. On Fri, Apr 6, 2018 at 5:53 AM, Charles-Antoine Couretwrote: > Fedora 28 is introducing a breaking change where glibc and libcrypt are split. > libcrypt is now provided by libxcrypt as external library. It is backwards > compatible, > but not the converse. > > Currently Poky could not be compiled with Fedora 28 and the official > yocto-uninative. > The purpose of these changes is to split glibc and libcrypt to use libxcrypt > only to generate the SDK > and the uninative tarball. With that, all distros are able to build Poky with > official uninative. > > The time to glibc to apply this change upstream. > > Charles-Antoine Couret (2): > glibc: split glibc and libcrypt > perl: add patch to solve libcrypt incompatibility > > meta/recipes-core/glibc/glibc-package.inc | 1 + > .../0031-nativesdk-deprecate-libcrypt.patch | 418 ++ > meta/recipes-core/glibc/glibc_2.27.bb | 1 + > .../recipes-core/libxcrypt/libxcrypt_4.0.0.bb | 24 + > meta/recipes-core/meta/uninative-tarball.bb | 1 + > .../perl/perl-native_5.24.1.bb| 1 + > .../perl-5.26.1-guard_old_libcrypt_fix.patch | 27 ++ > meta/recipes-devtools/perl/perl_5.24.1.bb | 1 + > 8 files changed, 474 insertions(+) > create mode 100644 > meta/recipes-core/glibc/glibc/0031-nativesdk-deprecate-libcrypt.patch > create mode 100644 meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb > create mode 100644 > meta/recipes-devtools/perl/perl/perl-5.26.1-guard_old_libcrypt_fix.patch > > -- > 2.17.0 > > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/2] Split glibc and libcrypt
Fedora 28 is introducing a breaking change where glibc and libcrypt are split. libcrypt is now provided by libxcrypt as external library. It is backwards compatible, but not the converse. Currently Poky could not be compiled with Fedora 28 and the official yocto-uninative. The purpose of these changes is to split glibc and libcrypt to use libxcrypt only to generate the SDK and the uninative tarball. With that, all distros are able to build Poky with official uninative. The time to glibc to apply this change upstream. Charles-Antoine Couret (2): glibc: split glibc and libcrypt perl: add patch to solve libcrypt incompatibility meta/recipes-core/glibc/glibc-package.inc | 1 + .../0031-nativesdk-deprecate-libcrypt.patch | 418 ++ meta/recipes-core/glibc/glibc_2.27.bb | 1 + .../recipes-core/libxcrypt/libxcrypt_4.0.0.bb | 24 + meta/recipes-core/meta/uninative-tarball.bb | 1 + .../perl/perl-native_5.24.1.bb| 1 + .../perl-5.26.1-guard_old_libcrypt_fix.patch | 27 ++ meta/recipes-devtools/perl/perl_5.24.1.bb | 1 + 8 files changed, 474 insertions(+) create mode 100644 meta/recipes-core/glibc/glibc/0031-nativesdk-deprecate-libcrypt.patch create mode 100644 meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb create mode 100644 meta/recipes-devtools/perl/perl/perl-5.26.1-guard_old_libcrypt_fix.patch -- 2.17.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core