liblxc-dev was built with LXC_DEVEL=1 in Ubuntu Jammy/Kinetic

Bug #2039873 reported by Aleksandr Mikhalitsyn
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
lxc (Ubuntu)
New
Undecided
Unassigned

Bug Description

Dear colleagues,

As I can see from:
- https://git.launchpad.net/ubuntu/+source/lxc/tree/configure?h=applied/ubuntu/jammy
- https://git.launchpad.net/ubuntu/+source/lxc/tree/configure?h=applied/ubuntu/kinetic

LXC 5.0.0 was built with LXC_DEVEL=1 set. But for release build we should have LXC_DEVEL=0.

LXC_DEVEL is a variable that appears in the /usr/include/lxc/version.h and then can be (and actually it is) used by other projects to detect if liblxc-dev is a development build or stable.

Having LXC_DEVEL=1 makes problems for the users who want to build projects those are depend on liblxc
from source (for example, LXD, go-lxc: https://github.com/canonical/lxd/pull/12420).

Q: Why it was not a problem for so long?
A: Because LXC API was stable for a long time, but recently we have extended liblxc API (https://github.com/lxc/lxc/pull/4260) and dependant package go-lxc was updated too (https://github.com/lxc/go-lxc/pull/166).
This change was developed properly to be backward compatible with the old versions of liblxc. But, there is a problem. If LXC_DEVEL=1 then the macro check VERSION_AT_LEAST (https://github.com/lxc/go-lxc/blob/ccae595aa49e779f7ecc9250329967aa546acd31/lxc-binding.h#L7) is disabled. That's why we should *not* have LXC_DEVEL=1 for *any* release build of LXC.

And also, as I can see the source code that was used to build LXC 5.0.0 in Jammy/Kinetic is not precisely the same as in the official LXC 5.0.0 tag (https://github.com/lxc/lxc/tree/lxc-5.0.0).

I understand that Jammy is a LTS release and making any changes is a problem and we should go through the SRU process. But I believe that we have to do something at least with LXC_DEVEL to make things work properly.

Kind regards,
Alex

Revision history for this message
Simon Déziel (sdeziel) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.