Skip to content

Log4cxx#7

Merged
nuclearsandwich merged 3 commits intoros2:latestfrom
ross-desmond:log4cxx
Feb 15, 2019
Merged

Log4cxx#7
nuclearsandwich merged 3 commits intoros2:latestfrom
ross-desmond:log4cxx

Conversation

@ross-desmond
Copy link
Copy Markdown
Contributor

@ross-desmond ross-desmond commented Dec 21, 2018

Looking to create a release with log4cxx nupack.

We've included the skeleton in choco-packages and have testing compilation with ros2 logging infrastructure when compiling with DEBUG in Windows.

The packages you will want to add for the next release are here:
https://github.com/ross-desmond/choco-packages/releases/tag/2018-12-21-1
(ignore the tag location, that was used before a final merge).

Connected to ros2/rcl_logging#3

ross-desmond and others added 3 commits December 21, 2018 10:55
Updates the apache nuspec and licenses

Modifies registry keys

Modifies cmake share to uppercase "L" in Log4cxx

Updates README with build instructions
@nburek
Copy link
Copy Markdown

nburek commented Jan 16, 2019

It'd be great if we could get this and the related log4cxx change merged in for the next ROS2 Crystal patch (ros2/ros2#647). What are the next steps for this PR? Do you need our help with anything?

@cottsay cottsay added the enhancement New feature or request label Jan 17, 2019
@nuclearsandwich nuclearsandwich self-assigned this Jan 17, 2019
@nuclearsandwich
Copy link
Copy Markdown
Member

What are the next steps for this PR?

Thanks for the re-ping. I was genuinely not prepared to receive contributions on this repository as the packages here, while in use, are little more than prototypes.

Do you need our help with anything?

While looking through the build instructions with this package a couple of things stand out.

  1. Did you look at packaging APR and apr-utils independently? That's my general preference but I haven't checked whether it adds additional technical challenges beyond needing to package more software. But if we're going to do this I'd like to do it as right as we can the first time.

  2. I see that some sed scripts are being used to patch log4cxx. Is there a reason not to use patch files with the patch utility?

  3. I'd love to get builds running with MSBuild like the tinyxml* packages do but that's pretty low on my list of priorities.

@mjcarroll
Copy link
Copy Markdown
Member

@nburek friendly ping

@ross-desmond
Copy link
Copy Markdown
Contributor Author

  1. Did you look at packaging APR and apr-utils independently? That's my general preference but I haven't checked whether it adds additional technical challenges beyond needing to package more software. But if we're going to do this I'd like to do it as right as we can the first time.
    We did look at packaging these two separately, but log4cxx is compiled into a static library, apr and apr-utils are static libraries and is only needed to compile
  2. I see that some sed scripts are being used to patch log4cxx. Is there a reason not to use patch files with the patch utility?
    We followed the recommended build procedure for log4cxx https://logging.apache.org/log4cxx/latest_stable/building/vstudio.html, which include sed scripts.
  3. I'd love to get builds running with MSBuild like the tinyxml* packages do but that's pretty low on my list of priorities.
    That would be fantastic, and make building significantly less manual. We had issues with specific apr, apr-utils, and apr-log4cxx not building properly together and it took a while to get to this point.

@nuclearsandwich
Copy link
Copy Markdown
Member

Thanks for the context @ross-desmond with that information I think it makes sense to skip packaging the package build-only dependencies for now and get this package built so we can use it while settling on a long term packaging solution for ROS 2 on Windows.

I'll try and get the instructions working with msbuild and we'll get this merged and new packages released.

Once they're released the next step will be to update the Open Robotics build hosts and the installation instructions.

@nuclearsandwich
Copy link
Copy Markdown
Member

I set up a Windows host to try these instructions. I was able to build in Debug configuration but ran into issues building for Release. Also I had to run to get the bus before I could grab any screenshots so this is just a note to say that this is moving forward.

I haven't yet tried to get anything going with msbuild since I don't yet know how to account for the solution changes made using gui config tools. My plan is to vcs the project dir and try to pinpoint config file changes between the before and after states.

@nuclearsandwich
Copy link
Copy Markdown
Member

Here's a screenshot of the error I encountered building for release.

@ross-desmond is that something you saw and mitigated? I've torn down the environment and set it up twice and hit this error both times.

release-error

@emersonknapp
Copy link
Copy Markdown

@nuclearsandwich I just went through the process myself and the "Additional dependencies on rpcrt4.lib" step is apparently configuration-specific. There's a dropdown at the top of the properties dialog - and if you switch over you can add that additional lib dependency for Release as well.

@nuclearsandwich
Copy link
Copy Markdown
Member

There's a dropdown at the top of the properties dialog - and if you switch over you can add that additional lib dependency for Release as well.

I thought I'd checked that but perhaps not. I'll give it another shot.

@nuclearsandwich
Copy link
Copy Markdown
Member

I thought I'd checked that but perhaps not. I'll give it another shot.

Scrapped the workspace and tried again. Something wasn't happy but this time it went through. I've built a package but I can't get a test package to pick it up like I do with the others.

I suppose I should try turning it off and on again.

@nuclearsandwich
Copy link
Copy Markdown
Member

After rebooting (it didn't take that long I've just been context switching all day) I am able to find the log4cxx package via CMake and build a minimal broken example.

@nuclearsandwich nuclearsandwich merged commit c3963f7 into ros2:latest Feb 15, 2019
@nuclearsandwich nuclearsandwich removed the in progress Actively being worked on (Kanban column) label Feb 15, 2019
@nuclearsandwich
Copy link
Copy Markdown
Member

🎆 The latest release contains this package 🎆 It hasn't yet been incorporated into the installation instructions as I figured we would wait until we're ready to merge the PR enabling rcl_logging_log4cxx.

@rutvih
Copy link
Copy Markdown

rutvih commented Feb 18, 2019

Thanks Steven! Is there anything pending/blocking on rcl_logging_log4cxx PR to get these both in to next patch?

@mjcarroll
Copy link
Copy Markdown
Member

@rutvih @nuclearsandwich is away for a few days, so I'll help get the PR across the line. I've kicked off a CI build over here to see where we stand: ros2/rcl_logging#3 (comment)

@rutvih
Copy link
Copy Markdown

rutvih commented Feb 19, 2019

@mjcarroll Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants