Skip to content

Error patching during cmake #669

Description

@winks

First of all, this is trying to build using the Archlinux AUR package, because I have not yet had time to recreate the build env from scratch, but bear with me.

Also the PKGBUILD is one of the most "boring" ones I have ever seen: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=textadept

The only thing that could be wrong or non-standard would be the cmake flags, but this shoudl not apply.

So I get this error:

[ 33%] No update step for 'termkey-populate'
[ 44%] Performing patch step for 'termkey-populate'
patching file driver-win-pdcurses.c
patching file termkey-internal.h
patching file termkey.c
Hunk #7 succeeded at 520 (offset -6 lines).
File termkey.h is read-only; trying to patch anyway
patching file termkey.h
make[2]: *** [CMakeFiles/termkey-populate.dir/build.make:118: termkey-populate-prefix/src/termkey-populate-stamp/termkey-populate-patch] Error 2
make[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/termkey-populate.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
CMake Error at /usr/share/cmake/Modules/FetchContent.cmake:1928 (message):
  Build step for termkey failed: 2
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FetchContent.cmake:1619 (__FetchContent_populateSubbuild)
  /usr/share/cmake/Modules/FetchContent.cmake:2155:EVAL:2 (__FetchContent_doPopulation)
  /usr/share/cmake/Modules/FetchContent.cmake:2155 (cmake_language)
  /usr/share/cmake/Modules/FetchContent.cmake:2394 (__FetchContent_Populate)
  CMakeLists.txt:102 (FetchContent_MakeAvailable)


-- Configuring incomplete, errors occurred!
==> ERROR: A failure occurred in build().
    Aborting...

And lo and behold, when I download the termkey release from https://www.leonerd.org.uk/code/libtermkey/libtermkey-0.22.tar.gz and unpack it manually, the to-be-patched termkey.h is actually not writable.

I have never seen patch fail on this anywhere, but maybe I also never tried it on read-only files.

So the problem should be there in any build - but I am wondering why it would fail here and nowhere else. I dug through this bug tracker and also the arch one, and textadept has been packaged for a logn time.

In the end I fixed it with my own patch wrapper shell script in CMakeLists.txt that would chmod termkey.h and then it built just fine.

So TLDR: I have no idea how this ever worked, I faintly remember building textadept myself after 2019 and before 2024 but I don't have access to that machine anymore.

And sorry I'm posting this here first but it feels like a potential upstream issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions