Skip to contentSkip to conversation

Andrei Gherzan : gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/ gdbm

oe-commits Martin Jansa 4 participants 5 messages Apr 10, 2012 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): 20120406001738.706A810217@opal

#1 lore raw
Quoted 10 lines · On Fri, Apr 06, 2012 at 12:17:38AM +0000, [email protected] wrote:
Module: openembedded-core.git
Branch: master
Commit: e4d2ee00419f675ba8b7fb5d75256762253d8b32
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e4d2ee00419f675ba8b7fb5d75256762253d8b32
Author: Andrei Gherzan <[email protected]>
Date:   Fri Mar 23 17:56:29 2012 +0200

gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm

Quoted 8 lines

ndbm.h is needed by python for dbm module. This is why -enable-libgdbm-compat was added to configure.
The second change is because python is looking for the gdbm headers in include/gdbm. The easiest way to solve this issue is to add symlinks in include/gdbm.

[YOCTO #1937]

This breaks every package in feed which depends on old package name libgdbm4 (>= 1.10)

Because now there are 2 .so files in ${PN} and no LEAD_SONAME defined.

Are you going to

1) send PR bumps to all packages which depends on libgdbm4
(e.g. apr-util python pulseaudio perl gst-plugins-good and probably more)
2) define LEAD_SONAME and bump PR in gdbm recipe
3) move -compat libs to ${PN}-compat or some other package name, so that old libgdbm4 still exists (and maybe + 1) because some people could build those with gdbm as dependency now)

Cheers,

Quoted 41 lines

---

 meta/recipes-support/gdbm/gdbm_1.10.bb |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)
meta/recipes-support/gdbm/gdbm_1.10.bb +12 -1
index 9b2fde4..26b8009 100644
@@ -4,7 +4,7 @@ SECTION = "libs"
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
 
-PR = "r1" 
+PR = "r2"
 
 SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz"
 
@@ -13,4 +13,15 @@ SRC_URI[sha256sum] = "23f8134c5b94bbfb06d756a6b78f074fba6e6028cf2fe01341d40b26db
 
 inherit autotools gettext lib_package
 
+# Needed for dbm python module
+EXTRA_OECONF = "-enable-libgdbm-compat"
+
 BBCLASSEXTEND = "native nativesdk"
+
+do_install_append () {
+    # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
+    # these headers
+    install -d ${D}${includedir}/gdbm
+    ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
+    ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
+}

_______________________________________________
Openembedded-commits mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#2 lore raw
Quoted 25 lines · Martin Jansa
Quoted 10 lines · On Fri, Apr 06, 2012 at 12:17:38AM +0000, [email protected] wrote:
Module: openembedded-core.git
Branch: master
Commit: e4d2ee00419f675ba8b7fb5d75256762253d8b32
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e4d2ee00419f675ba8b7fb5d75256762253d8b32
Author: Andrei Gherzan <[email protected]>
Date:   Fri Mar 23 17:56:29 2012 +0200

gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm

Quoted 8 lines

ndbm.h is needed by python for dbm module. This is why -enable-libgdbm-compat was added to configure.
The second change is because python is looking for the gdbm headers in include/gdbm. The easiest way to solve this issue is to add symlinks in include/gdbm.

[YOCTO #1937]

This breaks every package in feed which depends on old package name libgdbm4 (>= 1.10)

Because now there are 2 .so files in ${PN} and no LEAD_SONAME defined.

Quoted 8 lines

Are you going to

1) send PR bumps to all packages which depends on libgdbm4
(e.g. apr-util python pulseaudio perl gst-plugins-good and probably more)
2) define LEAD_SONAME and bump PR in gdbm recipe
3) move -compat libs to ${PN}-compat or some other package name, so that old libgdbm4 still exists (and maybe + 1) because some people could build those with gdbm as dependency now)

And there is also broken upgrade path on target
SHR root@qemux86-64 ~ $ opkg info libgdbm4
Package: libgdbm4
Version: 1.10-r1
Depends: libc6 (>= 2.15)
Provides:
Status: install ok installed
Architecture: x86_64
Installed-Time: 1332937981

SHR root@qemux86-64 ~ $ opkg info gdbm
Package: gdbm
Version: 1.10-r2
Depends: libc6 (>= 2.15)
Provides:
Status: unknown ok not-installed
Section: libs
Architecture: x86_64
Maintainer: OE-Core Developers <[email protected]>
MD5Sum: 7dc17a86738b55b5df2e5ee67cccc2ac
Size: 20062
Filename: gdbm_1.10-r2_x86_64.ipk
Source: ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz
Description: gdbm version 1.10-r2 GNU dbm is a set of database routines that use
extensible hashing.

And gdbm conflicts with libgdbm4, so if you decide to go with just 1) then add also RCONFLICTS/RREPLACES to ${PN} to fix upgrade path.. but I think that 3) is much better option..

Cheers,

Quoted 46 lines
Quoted 43 lines

---

 meta/recipes-support/gdbm/gdbm_1.10.bb |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)
meta/recipes-support/gdbm/gdbm_1.10.bb +12 -1
index 9b2fde4..26b8009 100644
@@ -4,7 +4,7 @@ SECTION = "libs"
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
 
-PR = "r1" 
+PR = "r2"
 
 SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz"
 
@@ -13,4 +13,15 @@ SRC_URI[sha256sum] = "23f8134c5b94bbfb06d756a6b78f074fba6e6028cf2fe01341d40b26db
 
 inherit autotools gettext lib_package
 
+# Needed for dbm python module
+EXTRA_OECONF = "-enable-libgdbm-compat"
+
 BBCLASSEXTEND = "native nativesdk"
+
+do_install_append () {
+    # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
+    # these headers
+    install -d ${D}${includedir}/gdbm
+    ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
+    ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
+}

_______________________________________________
Openembedded-commits mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#3 lore raw
In reply to Martin Jansa
Quoted 25 lines · Martin Jansa
Quoted 10 lines · On Fri, Apr 06, 2012 at 12:17:38AM +0000, [email protected] wrote:
Module: openembedded-core.git
Branch: master
Commit: e4d2ee00419f675ba8b7fb5d75256762253d8b32
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e4d2ee00419f675ba8b7fb5d75256762253d8b32
Author: Andrei Gherzan <[email protected]>
Date:   Fri Mar 23 17:56:29 2012 +0200

gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm

Quoted 8 lines

ndbm.h is needed by python for dbm module. This is why -enable-libgdbm-compat was added to configure.
The second change is because python is looking for the gdbm headers in include/gdbm. The easiest way to solve this issue is to add symlinks in include/gdbm.

[YOCTO #1937]

This breaks every package in feed which depends on old package name libgdbm4 (>= 1.10)

Because now there are 2 .so files in ${PN} and no LEAD_SONAME defined.

Quoted 8 lines

Are you going to

1) send PR bumps to all packages which depends on libgdbm4
(e.g. apr-util python pulseaudio perl gst-plugins-good and probably more)
2) define LEAD_SONAME and bump PR in gdbm recipe
3) move -compat libs to ${PN}-compat or some other package name, so that old libgdbm4 still exists (and maybe + 1) because some people could build those with gdbm as dependency now)

I like the idea of putting the compat libs into a separate package...

Cheers,

Richard

#4 lore raw

Op 10 apr. 2012, om 11:06 heeft Richard Purdie het volgende geschreven:

Quoted 28 lines · Martin Jansa
Quoted 27 lines · On Fri, Apr 06, 2012 at 12:17:38AM +0000, [email protected] wrote:
Quoted 10 lines
Module: openembedded-core.git
Branch: master
Commit: e4d2ee00419f675ba8b7fb5d75256762253d8b32
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e4d2ee00419f675ba8b7fb5d75256762253d8b32
Author: Andrei Gherzan <[email protected]>
Date:   Fri Mar 23 17:56:29 2012 +0200

gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm

Quoted 8 lines

ndbm.h is needed by python for dbm module. This is why -enable-libgdbm-compat was added to configure.
The second change is because python is looking for the gdbm headers in include/gdbm. The easiest way to solve this issue is to add symlinks in include/gdbm.

[YOCTO #1937]

This breaks every package in feed which depends on old package name libgdbm4 (>= 1.10)

Because now there are 2 .so files in ${PN} and no LEAD_SONAME defined.

Are you going to

Quoted 8 lines
Quoted 6 lines

1) send PR bumps to all packages which depends on libgdbm4 (e.g. apr-util python pulseaudio perl gst-plugins-good and probably more)
2) define LEAD_SONAME and bump PR in gdbm recipe
3) move -compat libs to ${PN}-compat or some other package name, so that old libgdbm4 still exists (and maybe + 1) because some people could build those with gdbm as dependency now)

I like the idea of putting the compat libs into a separate package...

me too

regards,

Koen

#5 lore raw

Thanks a lot for your observations. I will go with the third option as the majority voted. :)

Quoted 55 lines · Koen Kooi

Op 10 apr. 2012, om 11:06 heeft Richard Purdie het volgende geschreven:

Quoted 6 lines · Martin Jansa
Quoted 5 lines · On Fri, Apr 06, 2012 at 12:17:38AM +0000, [email protected]:
Quoted 4 lines

Module: openembedded-core.git
Branch: master
Commit: e4d2ee00419f675ba8b7fb5d75256762253d8b32
URL:

http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e4d2ee00419f675ba8b7fb5d75256762253d8b32

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Author: Andrei Gherzan <[email protected]>
Date:   Fri Mar 23 17:56:29 2012 +0200

gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in

include/gdbm

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

ndbm.h is needed by python for dbm module. This is why

-enable-libgdbm-compat was added

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

to configure.
The second change is because python is looking for the gdbm headers in

include/gdbm.

Quoted 9 lines
Quoted 9 lines
Quoted 5 lines

The easiest way to solve this issue is to add symlinks in include/gdbm.

[YOCTO #1937]

This breaks every package in feed which depends on old package name libgdbm4 (>= 1.10)

Quoted 6 lines
Quoted 6 lines

Because now there are 2 .so files in ${PN} and no LEAD_SONAME defined.

Are you going to

1) send PR bumps to all packages which depends on libgdbm4 (e.g. apr-util python pulseaudio perl gst-plugins-good and probably

more)

Quoted 6 lines
Quoted 4 lines

2) define LEAD_SONAME and bump PR in gdbm recipe
3) move -compat libs to ${PN}-compat or some other package name, so that old libgdbm4 still exists (and maybe + 1) because some people could build those with gdbm as dependency now)

I like the idea of putting the compat libs into a separate package...

me too

regards,

Koen
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core