>What are your thoughts on (a) and (b)?

>being marked as superficial won't block a migration if it fails (IIRC:
at least, it's definitely not a hard error). And we do want this to
"stop the line" if it fails, right?

Ideally, it's better to block upload of package if this fails, yes.
Because it's really bad to have LXC_DEVEL = 1 in the production release.

>b) it's checking something from the source code, which could be later
changed via d/rules during build. What I mean is that this is not the
place users will get the value of LXC_DEVEL from.

Yeah, ideally, yes. But I have just gone with the simplest possible
solution to check this.

>A DEP8 test is awesome, thanks for that. But it might too close to a
release for such a check. Imagine an SRU gets sponsored, then reviewed,
then accepted, and then we get the DEP8 result that says "oops,
LXC_DEVEL=1 is leaking again". How about also checking it during package
build? I won't block the upload on this, though, but it would be good to
have I think, even if later.

Ah, to be honest I was sure that this check will be performed before
uploading this change to the Ubuntu package repositories. Can you give
me a hint or send me to the manual about how to make this check during
the package build?

>I won't block the upload on this, though, but it would be good to have
I think, even if later.

Thanks for that. Yeah, I think that if everything seems generally fine
to you to upload this as it is I can do this further improvements and
modification in a later patches. As we anyways want (ideally) to rebase
this on top of debian/sid.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to lxc in Ubuntu.
https://bugs.launchpad.net/bugs/2039873

Title:
  liblxc-dev was built with LXC_DEVEL=1 in Ubuntu 22.04 and later
  releases

Status in lxc package in Ubuntu:
  Confirmed
Status in lxc source package in Jammy:
  Confirmed
Status in lxc source package in Mantic:
  Confirmed
Status in lxc source package in Noble:
  Confirmed

Bug description:
  [ Impact ]

  LXC 5.0.0 was built with LXC_DEVEL=1 set for Jammy. 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.

  [ Test Plan ]

  Install liblxc-dev package and check /usr/include/lxc/version.h file
  LXC_DEVEL should be 0

  [ Where problems could occur ]

  Theoretically, build of a software which depends on liblxc-dev may start to 
fail
  if it assumes that LXC_DEVEL is 1.

  [ Other Info ]

  -

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/2039873/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to