Re: [OE-core] [PATCH 0/2] Split glibc and libcrypt

2018-04-06 Thread Richard Purdie
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

2018-04-06 Thread Khem Raj
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.

> 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

2018-04-06 Thread Richard Purdie
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

2018-04-06 Thread Khem Raj
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 Couret
 wrote:
> 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

2018-04-06 Thread Charles-Antoine Couret
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