[PR #1922] [MERGED] [FIX]: utf8proc include path for system library builds #2717

Open
opened 2026-01-29 17:23:35 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/CCExtractor/ccextractor/pull/1922
Author: @x15sr71
Created: 12/29/2025
Status: Merged
Merged: 12/29/2025
Merged by: @cfsmp3

Base: masterHead: fix/utf8proc-include-path


📝 Commits (1)

  • a18eaa2 fix: utf8proc include path for system library builds

📊 Changes

3 files changed (+6 additions, -9 deletions)

View changed files

📝 docs/CHANGES.TXT (+1 -0)
📝 linux/build (+1 -8)
📝 src/lib_ccx/params.c (+4 -1)

📄 Description

In raising this pull request, I confirm the following (please check boxes):

  • I have read and understood the contributors guide.
  • I have checked that another pull request for this purpose does not exist.
  • I have considered, and confirmed that this submission will be valuable to others.
  • I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  • I give this submission freely, and claim no ownership to its content.
  • I have mentioned this change in the changelog.

My familiarity with the project is as follows (check one):

  • I have never used CCExtractor.
  • I have used CCExtractor just a couple of times.
  • I absolutely love CCExtractor, but have not contributed previously.
  • I am an active contributor to CCExtractor.

Problem

CCExtractor uses a non-standard include path for utf8proc in src/lib_ccx/params.c:

  • #include <utf8proc/utf8proc.h>

However, utf8proc is installed as <utf8proc.h> (without a subdirectory) on all major platforms:

  • Debian/Ubuntu: /usr/include/utf8proc.h
  • Fedora/RHEL: /usr/include/utf8proc.h
  • Homebrew: $(brew --prefix)/include/utf8proc.h
  • Nix: $out/include/utf8proc.h
  • vcpkg: installed/<triplet>/include/utf8proc.h

This caused build failures when using the -system-libs flag on Homebrew Linux.

Solution

This PR uses __has_include() to support both paths:

  • System builds: Uses <utf8proc.h> (standard location)
  • Vendored builds: Uses <utf8proc/utf8proc.h> (CCExtractor's vendored copy)

Also removes the temporary symlink workaround from linux/build as it's no longer needed.

Testing

  • Builds with -system-libs and without on Linux
  • Docker builds work (vendored)
  • macOS builds pass
  • windows build pass

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/CCExtractor/ccextractor/pull/1922 **Author:** [@x15sr71](https://github.com/x15sr71) **Created:** 12/29/2025 **Status:** ✅ Merged **Merged:** 12/29/2025 **Merged by:** [@cfsmp3](https://github.com/cfsmp3) **Base:** `master` ← **Head:** `fix/utf8proc-include-path` --- ### 📝 Commits (1) - [`a18eaa2`](https://github.com/CCExtractor/ccextractor/commit/a18eaa2c9626945e09f4213ea0237b91955b0428) fix: utf8proc include path for system library builds ### 📊 Changes **3 files changed** (+6 additions, -9 deletions) <details> <summary>View changed files</summary> 📝 `docs/CHANGES.TXT` (+1 -0) 📝 `linux/build` (+1 -8) 📝 `src/lib_ccx/params.c` (+4 -1) </details> ### 📄 Description <!-- Please prefix your pull request with one of the following: **[FEATURE]** **[FIX]** **[IMPROVEMENT]**. --> **In raising this pull request, I confirm the following (please check boxes):** - [X] I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md). - [X] I have checked that another pull request for this purpose does not exist. - [X] I have considered, and confirmed that this submission will be valuable to others. - [X] I accept that this submission may not be used, and the pull request closed at the will of the maintainer. - [X] I give this submission freely, and claim no ownership to its content. - [X] **I have mentioned this change in the [changelog](https://github.com/CCExtractor/ccextractor/blob/master/docs/CHANGES.TXT).** **My familiarity with the project is as follows (check one):** - [ ] I have never used CCExtractor. - [ ] I have used CCExtractor just a couple of times. - [ ] I absolutely love CCExtractor, but have not contributed previously. - [X] I am an active contributor to CCExtractor. --- ## Problem CCExtractor uses a non-standard include path for `utf8proc` in `src/lib_ccx/params.c`: - `#include <utf8proc/utf8proc.h>` However, utf8proc is installed as `<utf8proc.h>` (without a subdirectory) on all major platforms: - **Debian/Ubuntu**: `/usr/include/utf8proc.h` - **Fedora/RHEL**: `/usr/include/utf8proc.h` - **Homebrew**: `$(brew --prefix)/include/utf8proc.h` - **Nix**: `$out/include/utf8proc.h` - **vcpkg**: `installed/<triplet>/include/utf8proc.h` This caused build failures when using the `-system-libs` flag on Homebrew Linux. ## Solution This PR uses `__has_include()` to support both paths: - **System builds**: Uses `<utf8proc.h>` (standard location) - **Vendored builds**: Uses `<utf8proc/utf8proc.h>` (CCExtractor's vendored copy) Also removes the temporary symlink workaround from `linux/build` as it's no longer needed. ## Testing - Builds with `-system-libs` and without on Linux - Docker builds work (vendored) - macOS builds pass - windows build pass --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 17:23:35 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#2717