[FFe] Update lcm to 1.5 for Noble

Bug #2053256 reported by Jose Luis Rivero
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
lcm (Debian)
New
Unknown
lcm (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Version bump for the lcm package to latest version 1.5.0+repack-0ubuntu1

Git changes and Package PPA:
 - Ubuntu/devel git fork:
   https://code.launchpad.net/~j-rivero/ubuntu/+source/lcm/+git/lcm/+ref/ubuntu/devel
 - PPA
   https://launchpad.net/~j-rivero/+archive/ubuntu/lcm-1.5
   1.5.0+repack1-0ubuntu1
 - Debian Git Merge request
   https://salsa.debian.org/debian/lcm/-/merge_requests/1

Build logs for all architectures are available in the PPA.

[Justification]

Current lcm version 1.3.1 comes from 2016 and is quite broken for different use cases when using the tools provided by the package with modern versions of java and/or python, see https://bugs.launchpad.net/ubuntu/+source/lcm/+bug/1956368 as an example.

Running a quick test for lcm-logplayer-gui in a Noble docker container:
--------------------- 8< ----------------------------------------
jrivero@86d205b40951:~$ lcm-logplayer-gui
Unrecognized option: -Xincgc
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
--------------------- 8< ----------------------------------------

[Other info]

I have the version bump ready on Debian but the 64bit_time transition[1] is preventing the
packages to go through the lib transition since two weeks before the Import Freeze.

https://salsa.debian.org/debian/lcm/-/merge_requests/1

Changes done in the packaging:

 * New upstream version 1.5.0+repack
 * Formatter changes
 * Bump standards to 4.6.2
 * Use default-jdk package for java support
 * Bump version to 1.5.0+repack1
 * Rediff patches:
 * PATCH: use gnuinstalldirs in CMake
 * PATCH: use gtest from system
 * PATCH: use java system dependencies instead of embedded files
 * PATCH: Encode utf8 characters to fix the java build
 * PATCH: fix manpages name to make lintian happy
 * Add CMake to d/control
 * Use --no-parallel for testing
 * Cleanup d/rules
 * Update liblcm-doc.docs for new paths
 * Generalize d/liblcm-dev.install
 * Convert package to use pybuild. Change d/rules heavily.
 * Update java dependencies in d/control
 * Update d/copyright file
 * Keep lcm-java.pc only in the java package
 * Remove .doctrees from the -docs package
 * Add bindnow to DEB_BUILD_MAINT_OPTIONS
 * Replace embedded fonts and jquery with system dependencies
 * Remove .gitignore from liblcm-doc installation
 * Update existing patch for javadoc generation
 * Update d/changelog
 * Rework java patch to use offline generation
 * Reorder java dependencies: in -bin and -java
 * Adding Section: to packages
 * Added autotest: install and build-cpp

[Risk analysis - Library transition]
There is no package depending on lcm currently in the Ubuntu repository. No library transition needs to performed.

[Testing done]
In the same Noble container I added the PPA and check the upgrade:
------- 8< -----------------------------
The following additional packages will be installed:
  libapache-pom-java libcommons-io-java libcommons-logging-java libcommons-parent-java libhamcrest-java libjchart2d-java libjide-oss-java liblcm-bin liblcm-java liblcm1
  libxmlgraphics-commons-java
Suggested packages:
  libcommons-io-java-doc libavalon-framework-java libexcalibur-logkit-java liblog4j1.2-java libjchart2d-java-doc libjide-oss-java-doc libxmlgraphics-commons-java-doc
The following NEW packages will be installed:
  libapache-pom-java libcommons-io-java libcommons-logging-java libcommons-parent-java libhamcrest-java libjchart2d-java libjide-oss-java liblcm-dev liblcm-java libxmlgraphics-commons-java
The following packages will be upgraded:
  liblcm-bin liblcm1
2 upgraded, 10 newly installed, 0 to remove and 5 not upgraded.
28 not fully installed or removed.
Need to get 3283 kB of archives.
After this operation, 4298 kB of additional disk space will be used.
Do you want to continue? [Y/n]
------- 8< -----------------------------

Run fine and now I can execute the binaries:
------- 8< -----------------------------
jrivero@86d205b40951:~$ lcm-logplayer-gui
LC: Disabling IPV6 support
LCM: Disabling IPV6 support
LCM: TTL set to zero, traffic will not leave localhost.
------- 8< -----------------------------

Related branches

tags: added: upgrade-software-version
Changed in lcm (Debian):
status: Unknown → New
tags: added: fr-6676
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

This now needs a feature freeze exception, as described in https://wiki.ubuntu.com/FreezeExceptionProcess.

Please follow that process, and after the FFe is granted, subscribe ubuntu-sponsors again.

Regarding how you are providing the package to be sponsored, I personally would prefer a git branch against pkg/ubuntu/devel. For these cases where we go ahead of debian, what I would do is have the first commit on top of pkg/ubuntu/devel be the new upstream version, and then whatever changes are needed in the packaging to get that built for noble.

Revision history for this message
Jose Luis Rivero (j-rivero) wrote :

Diff of upstream changes from version 1.3.1 to 1.5.0

description: updated
summary: - Update lcm to 1.5 for Noble
+ [FFe] Update lcm to 1.5 for Noble
Revision history for this message
Jose Luis Rivero (j-rivero) wrote :

> Regarding how you are providing the package to be sponsored, I personally would prefer a git branch against pkg/ubuntu/devel. For these cases where we go ahead of debian, what I would do is have the first commit on top of pkg/ubuntu/devel be the new upstream version, and then whatever changes are needed in the packaging to get that built for noble.

I did that and published https://code.launchpad.net/~j-rivero/ubuntu/+source/lcm/+git/lcm/+ref/ubuntu/devel

description: updated
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in lcm (Ubuntu):
status: New → Confirmed
Revision history for this message
Steve Langasek (vorlon) wrote :

universe package with no reverse-dependencies, and current package arguably in an unusable state; FFe approved

Changed in lcm (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

> I did that and published https://code.launchpad.net/~j-rivero/ubuntu/+source/lcm/+git/lcm/+ref/ubuntu/devel

Please create a merge proposal against pkg/ubuntu/devel, and there has been a new upload to noble since you pushed. It will be easier to review in an MP.

I started a quick review, here are some notes:
- I ran uscan --download-current-version, that produced ../lcm_1.5.0+repack.orig.tar.xz. But d/changelog is expecting the name 1.5.0+repack1 (note the "1").
- d/changelog still has UNRELEASED as the ubuntu name, it should be noble
- new version should have suffix 0ubuntu1, not 0ubuntu2
- you need to run update-maintainer, to update the maintainer in d/control
- the source package still doesn't build, there is a mismatch between the git tree and the orig tarball produced by uscan:
dpkg-source: info: local changes detected, the modified files are:
 lcm/NEWS.md
 lcm/docs/Doxyfile.in
 lcm/docs/content/lcm-type-ref.md
 lcm/docs/content/lua-api.md
 lcm/docs/content/multicast-setup.md
 lcm/docs/content/tutorial-c.md
 lcm/docs/content/tutorial-cpp.md
 lcm/docs/content/tutorial-dotnet.md
 lcm/docs/content/tutorial-go.md
 lcm/docs/content/tutorial-java.md
 lcm/docs/content/tutorial-lua.md
 lcm/docs/content/tutorial-matlab.md
 lcm/docs/content/tutorial-python.md
 lcm/docs/make.bat
 lcm/examples/cpp/lcm_log_writer/pronto_joint_state_t.lcm
 lcm/lcm-cmake/lcmUtilities.cmake
 lcm/lcm-java/lcm/lcm/LCM.java
 lcm/lcm-java/lcm/logging/LogPlayer.java
 lcm/lcm-java/lcm/spy/Spy.java
 lcm/lcm/dbg.h
 lcm/lcm/windows/WinLCM.cpp
dpkg-source: info: Hint: make sure the version in debian/changelog matches the unpacked source tree
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/lcm_1.5.0+repack1-0ubuntu2.diff.KA4DhE
dpkg-buildpackage: error: dpkg-source -I -i -b . subprocess returned exit status 2

- in this commit, do you state that you verified you could to the standards bump without any other changes? Usually when that's the case we see something like "Bump standard to 4.6.2 (no changes needed)". Or, if there are changes needed, in a follow-up commit, they would be grouped together in this commit:
commit 5e06aefc24b36cbbbd5d8f5a9bdd2b94ee705694
Author: Jose Luis Rivero <email address hidden>
Date: Tue Jan 23 19:33:46 2024 +0100

    Bump standards to 4.6.2

- d/changelog could use some changes. You should try to group the changes to the same file that go together, mentioning the files that you changed. And no need to document in d/changelog that d/changelog was updated, for example :). It's hard to mention it all here, and it will be better in the MP when it's done.

Revision history for this message
Vladimir Petko (vpa1977) wrote :

I will be happy to review once MP is up.

Revision history for this message
Jose Luis Rivero (j-rivero) wrote :

Thanks Andres, Vladimir. I'll try to get the merge request ready in the next couple of days.

Revision history for this message
Jose Luis Rivero (j-rivero) wrote :

I think I've answered the feedback in the last 5 commits and the MR is ready:
https://code.launchpad.net/~j-rivero/ubuntu/+source/lcm/+git/lcm/+merge/463155

P.D: Vladimir I added you as a reviewer, I hope it is fine for you.

Revision history for this message
Vladimir Petko (vpa1977) wrote :

Package uploaded, unsubscribing Sponsors.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lcm - 1.5.0~repack1-0ubuntu1

---------------
lcm (1.5.0~repack1-0ubuntu1) noble; urgency=medium

  [ Jose Luis Rivero ]
  * New upstream version 1.5.0~repack
    (LP: #1956368, #2053256)
  * Formatter changes
  * Bump standards to 4.6.2 (no changes needed)
  * Use default-jdk package for java support
  * Bump version to 1.5.0~repack1
  * Rediff patches:
  * PATCH: use gnuinstalldirs in CMake
  * PATCH: use gtest from system
  * PATCH: use java system dependencies instead of embedded files
  * PATCH: Encode utf8 characters to fix the java build
  * PATCH: fix manpages name to make lintian happy
  * Add CMake to d/control
  * Use --no-parallel for testing
  * Cleanup d/rules
  * Update liblcm-doc.docs for new paths
  * Generalize d/liblcm-dev.install
  * Convert package to use pybuild. Change d/rules heavily.
  * Update java dependencies in d/control
  * Update d/copyright file
  * Keep lcm-java.pc only in the java package
  * Remove .doctrees from the -docs package
  * Add bindnow to DEB_BUILD_MAINT_OPTIONS
  * Replace embedded fonts and jquery with system dependencies
  * Remove .gitignore from liblcm-doc installation
  * Update existing patch for javadoc generation
  * Rework java patch to use offline generation
  * Reorder java dependencies: in -bin and -java
  * Adding Section: to packages
  * Added autotest: install and build-cpp

  [ Vladimir Petko ]
  * Use javahelper to package jar file
  * PATCH: fix build error due to the quotes around pythonpath

 -- Jose Luis Rivero <email address hidden> Wed, 10 Apr 2024 13:28:38 +0200

Changed in lcm (Ubuntu):
status: Triaged → Fix Released
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.