Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch from the unmaintained pcre to pcre2 #2945

Closed
evelikov opened this issue May 26, 2023 · 8 comments
Closed

Switch from the unmaintained pcre to pcre2 #2945

evelikov opened this issue May 26, 2023 · 8 comments

Comments

@evelikov
Copy link

Description

Currently renderdoc is using pcre aka https://www.pcre.org/. That version is no longer maintained and the vast majority of projects have migrated to pcre2. Would be great if renderdoc also gets ported. Thanks

From the website:

This version of PCRE is now at end of life, and is no longer being actively maintained. Version 8.45 is expected to be the final release of the older PCRE library, and new projects should use PCRE2 instead.

Environment

  • RenderDoc version: d132b57
  • Operating System: linux
  • Graphics API: vulkan
@baldurk
Copy link
Owner

baldurk commented May 26, 2023

RenderDoc does not depend directly on the pcre library or link against it in its actual binaries, it's only used as a build time dependency for swig for a couple of minor uses.

For that reason it's fine if the pcre library is not maintained since it's effectively a fixed target on renderdoc's fork of swig and is already working, so if 8.45 is the final release it can continue to be used. I agree that a new project shouldn't start using a deprecated library, or a project with heavy use of pcre, but this is effectively a minor uncomplicated dependency in RenderDoc's build process.

@baldurk baldurk closed this as completed May 26, 2023
@evelikov
Copy link
Author

What if distributions want to remove (or have removed) pcre? How can one build renderdoc in that case?

I understand that this is low priority, yet outright closing the topic seems odd. Hope you'll reconsider, thanks again o/

@baldurk
Copy link
Owner

baldurk commented May 29, 2023

I would hope that distributions do not remove the library, since that would break any projects that aren't going to be updated and especially any binaries that are linked against it. The two libraries are separate packages and separate files so it's not a case where one version can't be present at the same time as the other.

If a distribution did do that, someone could download and build the pcre source themselves as it's a comparatively simple project to build.

I closed the issue because I do not plan to make this change as I don't see a compelling reason to switch libraries. If it were something that I would do at some point then I would leave the feature request open.

@evelikov
Copy link
Author

As a person who knows basically nothing about pcre or it's v2 sibling, I don't see the "download and build it yourself" approach as the most scaleable or palatable.

That said, are you open to a MR from third parties (myself or others) to get there? I'm not trying to make any promises here, despite being somewhat tempted to give it a try.

@baldurk
Copy link
Owner

baldurk commented May 29, 2023

Honestly I also don't know anything about the library as I don't use it myself, but I would hope and assume that given its nature it has few if any required dependencies so would be easy to build. If it became necessary for someone to manually build it then it could either be included into the repository here or instructions could be given for how to compile it. If that need is widespread then at that point we could consider another solution like changing library.

My point is that it is a theoretical discussion as no distro has removed this library - it would be an unfortunate choice if they did rather than simply letting it remain as a fixed legacy/deprecated library. For that reason I don't think I would accept such a PR as it does not currently have a sufficient justification - there is no benefit I can see aside from a future-proofing in principle, and potentially it could introduce bugs or maintenance/compatibility issues (e.g. if there is some distro that doesn't have the new library). Until there is a reason to make that change and pay that cost I don't see a reason to change what works fine.

@evelikov
Copy link
Author

So if I understood correctly, you stand firm that switching to pcre2 is unjustified and/or unwarranted until distributions start removing pcre. Even though the pcre team seemingly suggesting otherwise.

Rather interestingly, upstream swig has switched to pcre2 over 1 year ago. Perhaps a wiser move is it actually coordinate with swig team to integrate the renderdoc changes and use swig upstream all together? But i digress 😅

Thank you for the time and input.

@jljusten
Copy link
Contributor

It does appear that renderdoc is going to be dropped from Debian (and most likely Ubuntu will follow) due to this:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=999924

@jljusten
Copy link
Contributor

renderdoc was removed from debian testing due to the old pcre dependency:

https://tracker.debian.org/news/1445223/renderdoc-removed-from-testing/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants