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

Migrate from PCRE to PCRE2 #356387

Open
emilazy opened this issue Nov 16, 2024 · 4 comments
Open

Migrate from PCRE to PCRE2 #356387

emilazy opened this issue Nov 16, 2024 · 4 comments
Labels
0.kind: bug Something is broken 1.severity: security Issues which raise a security issue, or PRs that fix one 3.skill: sprintable A larger issue which is split into distinct actionable tasks 5. scope: tracking Long-lived issue tracking long-term fixes or multiple sub-problems

Comments

@emilazy
Copy link
Member

emilazy commented Nov 16, 2024

PCRE2 was released in 2015. The original PCRE is end‐of‐life and will not receive further bug fixes. Debian decided to remove it years ago (they called their original‐PCRE package pcre3 for historical reasons), filed mass bug reports against packages still using it, and it has been gone entirely since the release of Bookworm last year. We should follow suit, upgrading packages to PCRE2 where possible and considering dropping obsolete software that won’t get updated to a supported version, especially if it processes untrusted input.

Issues and PRs

@emilazy emilazy added 0.kind: bug Something is broken 1.severity: security Issues which raise a security issue, or PRs that fix one 3.skill: sprintable A larger issue which is split into distinct actionable tasks 5. scope: tracking Long-lived issue tracking long-term fixes or multiple sub-problems labels Nov 16, 2024
@emilazy emilazy changed the title Migrate away from PCRE Migrate from PCRE to PCRE2 Nov 16, 2024
@emilazy emilazy moved this from To do to In progress in Picking up garbage Nov 17, 2024
@emilazy emilazy mentioned this issue Nov 18, 2024
13 tasks
@SuperSandro2000
Copy link
Member

We need to be careful with services that have systemd hardening because they can block the PCRE2 jit like eg #179444

@pluiedev
Copy link
Contributor

pluiedev commented Nov 30, 2024

Here's a list of all the packages in pkgs/by-name that still refer to pcre (may not be complete):

  • adriconf
  • aegisub
  • ansel
  • apvlv
  • argyllcms
  • atheme
  • audacity
  • bambu-studio
  • blendfarm
  • chow-kick
  • chow-phaser
  • chow-tape-model
  • classads
  • contour
  • cppcheck
  • cppcms
  • cpu-x
  • createrepo_c
  • dablin
  • darktable
  • dico
  • edbrowse
  • ethtool
  • ettercap
  • evolution-data-server
  • ezquake
  • fastfetch
  • fntsample
  • frei0r
  • gmt
  • gromit-mpx
  • gsmartcontrol
  • haka
  • hardinfo
  • hashlink
  • hybridreverb2
  • hyperscan
  • hyprpaper
  • igprof
  • infamousPlugins
  • inspircd
  • io
  • ivan
  • jiten
  • kamailio
  • kermit-terminal
  • kismet
  • lemminx
  • libgaminggear
  • liblognorm
  • libmp3splt
  • libr3
  • lightdm-enso-os-greeter
  • lightspark
  • logstalgia
  • luastatus
  • maildrop
  • megacmd
  • memtier-benchmark
  • min
  • miraclecast
  • mkbootimage
  • modsecurity_standalone
  • mosdepth
  • mpfr
  • mutt
  • mydumper
  • neko
  • neocomp
  • ngrep
  • nim-2_2
  • nim-unwrapped-2_2
  • nimmm
  • nnn
  • nrpl
  • omxplayer
  • oobicpl
  • opencollada
  • openscap
  • pnmixer
  • poke
  • polybar
  • pplatex
  • prboom-plus
  • proxysql
  • rcon
  • rdup
  • renderdoc
  • rewritefs
  • root5
  • root
  • rpm-ostree
  • rspamd
  • serd
  • shadowsocks-libev
  • silver-searcher
  • simh
  • slang
  • smuview
  • sngrep
  • sniproxy
  • snort
  • solvespace
  • sonarlint-ls
  • sratom
  • swig3
  • swig
  • syslogng
  • taterclient-ddnet
  • ted
  • tenacity
  • thc-hydra
  • the-foundation
  • tintin
  • tiscamera
  • touchegg
  • trafficserver
  • transmission_3
  • ucg
  • ultrastardx
  • uwsgi
  • vectorscan
  • vimpc
  • wget: wget: modernize and use PCRE2 instead of PCRE1 #360567
  • whatsapp-for-linux
  • xastir
  • xautoclick
  • xneur
  • yara
  • yoshimi
  • zoneminder

This is probably going to be much harder than expected.

@Sigmanificient
Copy link
Member

Sigmanificient commented Jan 5, 2025

@pluiedev I tried to gather a more complete list of the packages. Here the command I have used:

grep -Pr "(,|\s)pcre($|\s|,)" $(find . -name "*.nix") | nix run nixpkgs\#filterpath | uniq

It reports a total of 235 path: https://gist.github.com/Sigmanificient/ddeb121b250c6d8ac79ec604a3c54640

@gepbird gepbird mentioned this issue Jan 5, 2025
13 tasks
@ehmry
Copy link
Contributor

ehmry commented Feb 10, 2025

Nim is not using PCRE2 yet. If necessary we can remove pcre from the compiler closure and require downstream packages to explicitly provide an old pcre library if they need it. nim-lang/Nim#23668

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: bug Something is broken 1.severity: security Issues which raise a security issue, or PRs that fix one 3.skill: sprintable A larger issue which is split into distinct actionable tasks 5. scope: tracking Long-lived issue tracking long-term fixes or multiple sub-problems
Projects
Status: In progress
Development

No branches or pull requests

5 participants