By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 1730 - libept-trinity doesn't build any more in Debian/Jessie
Summary: libept-trinity doesn't build any more in Debian/Jessie
Status: RESOLVED FIXED
Alias: None
Product: TDE
Classification: Unclassified
Component: non-core programs (show other bugs)
Version: R14.0.0 [Trinity]
Hardware: All Other
: P1 blocker
Assignee: Michele Calgaro
URL:
Depends on:
Blocks:
 
Reported: 2013-11-24 06:51 CST by Michele Calgaro
Modified: 2013-12-03 10:49 CST (History)
4 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments
patch for libept-trinity_0.5.26+1.orig.tar.xz (6.90 KB, patch)
2013-11-24 06:52 CST, Michele Calgaro
Details | Diff
patch for libept-trinity_0.5.26+1-0debian8.0.0+0.debian.tar.xz (1.55 KB, patch)
2013-11-24 06:52 CST, Michele Calgaro
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michele Calgaro 2013-11-24 06:51:56 CST
In Debian/Jessie libwibble-dev has been upgraded from version 0.1.28 to version 1.1. Because of this, libept-trinity doesn't build any more.
I have updated libept-trinity to build using the new version of libwibble-dev.
The changes are as follow:
1) a lot of simple renames/substitutions
2) one ostream& operator<< (..) needed to be moved inside the namespace ept
3) a piece of code was commented.

The last change requires some explanations.
The file ept/core/desktop.h defines a function called 'grouplist' at line 244. The code with the old version of libwibble-dev compiles without problem, but with the new version it doesn't, the reason being in my opinion a bug in libwibble-dev.
Comparing the two versions of libwibble-dev at the file wibble/list.h line 252 and 255, we can see:

OLD CODE:
return *(F *)f_space;
return *(const F *)f_space;

NEW CODE:
return *static_cast<F *>(f_space);
return *static_cast<const F *>(f_space);

Studying the code of libwibble-dev, IMO the static_cast in the new version should have been a reinterpret_cast instead, since f_space is a char array used to store the F element passed to the template. The old C-style cast probably default to a bit reinterpretation cast, so it works. The new C++-style static_cast fails, since there is no defined conversion between a char* and a std::ptr_fun (plus as an additinal node, a static_cast to a const element from a non const element is wrong by definition, because that's why const_cast was added to C++).
I searched through the TDE source code and the function commented out from libept doesn't seem to be used. So the new version should be safe.

As soon as I have enough time (probably next week though) I will fix libapt-front (which has the same dependency problem from libwibble-dev) and fireflies (which has a linking problem) and then do a full rebuild, to verify that everything is ok with the new libept-version.

Alternatively we could take the code of libwibble-dev 0.1.28 and maintain that ourself, even though I would prefer to stick to libraries currently supported by Debian as long as we can.

This bug only applies to Debian/Jessie. Debian/Wheezy still has version 0.1.28 and has no problem. Not sure about Ubuntu
Comment 1 Michele Calgaro 2013-11-24 06:52:35 CST
Created attachment 1664 [details]
patch for libept-trinity_0.5.26+1.orig.tar.xz
Comment 2 Michele Calgaro 2013-11-24 06:52:59 CST
Created attachment 1665 [details]
patch for libept-trinity_0.5.26+1-0debian8.0.0+0.debian.tar.xz
Comment 3 Timothy Pearson 2013-11-30 01:48:11 CST
(In reply to comment #0)
<snip>
> Alternatively we could take the code of libwibble-dev 0.1.28 and maintain that
> ourself, even though I would prefer to stick to libraries currently supported
> by Debian as long as we can.
> 
> This bug only applies to Debian/Jessie. Debian/Wheezy still has version 0.1.28
> and has no problem. Not sure about Ubuntu

I would like to stick to the Debian libraries as well, as it is bad enough we have to maintain libapt-front for Adept due to lack of features in its replacement.  Sounds like you are on the right track!
Comment 5 Slávek Banko 2013-12-02 08:24:02 CST
Note: For Ubuntu update relates to version 14.04 (Trusty), for which packages was not build yet.
Comment 6 Timothy Pearson 2013-12-02 14:20:27 CST
(In reply to comment #4)
> Updated package is ready to copy into official nightly-build-dependencies:
> 
> https://quickbuild.pearsoncomputing.net/~slavek-banko/+archive/deps-r14/+copy-packages?field.name_filter=libept&field.series_filter=jessie&field.include_binaries=COPY_BINARIES

Copied.

Thanks!

Tim