diff --git a/ccache/0001-fix-blake3-segfault.patch b/ccache/0001-fix-blake3-segfault.patch deleted file mode 100644 index e55b435e..00000000 --- a/ccache/0001-fix-blake3-segfault.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ccache-4.9/src/third_party/blake3/CMakeLists.txt.orig 2024-01-07 19:44:27.592646500 +0100 -+++ ccache-4.9/src/third_party/blake3/CMakeLists.txt 2024-01-07 19:44:37.726993400 +0100 -@@ -19,7 +19,7 @@ - - if(MSVC) - set(suffix "_x86-64_windows_msvc.asm") -- elseif(WIN32) -+ elseif(WIN32 OR CYGWIN) - set(suffix "_x86-64_windows_gnu.S") - else() - set(suffix "_x86-64_unix.S") diff --git a/ccache/0002-Stop-msys2-from-hanging-forever-Problem-MSYS2-symlin.patch b/ccache/0002-Stop-msys2-from-hanging-forever-Problem-MSYS2-symlin.patch deleted file mode 100644 index d0725482..00000000 --- a/ccache/0002-Stop-msys2-from-hanging-forever-Problem-MSYS2-symlin.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 3b61a866621036b669a0a9e891702e1b0fd17bb0 Mon Sep 17 00:00:00 2001 -From: Kreijstal -Date: Sun, 17 Mar 2024 23:17:09 +0100 -Subject: [PATCH] Stop msys2 from hanging forever, Problem: MSYS2 symlinks - error if location does not exist, otherwise they work as symlinks just - 'fine'. - ---- - src/ccache/util/LockFile.cpp | 34 +++++++++++++++++++++++++++++++--- - unittest/test_Util.cpp | 5 ++--- - 2 files changed, 33 insertions(+), 6 deletions(-) - -diff --git a/src/ccache/util/LockFile.cpp b/src/ccache/util/LockFile.cpp -index 43b62cd1..d2f2a48b 100644 ---- a/src/util/LockFile.cpp -+++ b/src/util/LockFile.cpp -@@ -43,7 +43,9 @@ const uint32_t k_max_sleep_time_ms = 50; - #ifndef _WIN32 - const util::Duration k_staleness_limit(2); - #endif -- -+#ifdef __CYGWIN__ -+# include -+#endif - namespace fs = util::filesystem; - - using pstr = util::PathString; -@@ -236,16 +238,31 @@ LockFile::do_acquire(const bool blocking) - const auto now = TimePoint::now(); - const auto my_content = - FMT("{}-{}.{}", content_prefix, now.sec(), now.nsec_decimal_part()); -- -+# ifdef __CYGWIN__ -+ // Cygwin-specific file-based lock -+ int fd = open(m_lock_file.c_str(), O_WRONLY | O_CREAT | O_EXCL, 0666); -+ if (fd != -1) { -+ // Lock file successfully created, write the content and close the file -+ write(fd, my_content.c_str(), my_content.size()); -+ close(fd); // Lock acquired -+ return true; -+ } -+# else - if (fs::create_symlink(my_content, m_lock_file)) { - // We got the lock. - return true; - } -+# endif - - int saved_errno = errno; - if (saved_errno == ENOENT) { - // Directory doesn't exist? -+# ifdef __CYGWIN__ -+ if (!fs::exists(m_lock_file.parent_path()) -+ && fs::create_directories(m_lock_file.parent_path())) { -+# else - if (fs::create_directories(m_lock_file.parent_path())) { -+# endif - // OK. Retry. - continue; - } -@@ -262,7 +279,17 @@ LockFile::do_acquire(const bool blocking) - // Directory doesn't exist or isn't writable? - return false; - } -- -+# ifdef __CYGWIN__ -+ // Cygwin-specific code to read the content of the lock file -+ std::ifstream lock_file(m_lock_file); -+ if (!lock_file.is_open()) { -+ // Handle error: the lock file couldn't be opened -+ return false; -+ } -+ std::string content; -+ lock_file >> content; -+ lock_file.close(); -+# else - auto content_path = fs::read_symlink(m_lock_file); - if (!content_path) { - if (content_path.error() == std::errc::no_such_file_or_directory) { -@@ -278,6 +305,7 @@ LockFile::do_acquire(const bool blocking) - } - auto content = content_path->string(); - -+# endif - if (content == my_content) { - // Lost NFS reply? - LOG("Symlinking {} failed but we got the lock anyway", m_lock_file); -diff --git a/unittest/test_Util.cpp b/unittest/test_Util.cpp -index e670464b..6120a82a 100644 ---- a/unittest/test_Util.cpp -+++ b/unittest/test_Util.cpp -@@ -102,7 +102,7 @@ TEST_CASE("Util::make_relative_path") - - const std::string cwd = util::actual_cwd(); - const std::string actual_cwd = FMT("{}/d", cwd); --#ifdef _WIN32 -+#if defined(_WIN32) || defined(__CYGWIN__) - const std::string apparent_cwd = actual_cwd; - #else - const std::string apparent_cwd = FMT("{}/s", cwd); -@@ -114,7 +114,6 @@ TEST_CASE("Util::make_relative_path") - #endif - REQUIRE(fs::current_path("d")); - util::setenv("PWD", apparent_cwd); -- - SUBCASE("No base directory") - { - CHECK(make_relative_path("", "/a", "/a", "/a/x") == "/a/x"); -@@ -198,7 +197,7 @@ TEST_CASE("Util::normalize_abstract_absolute_path") - - TEST_CASE("Util::normalize_concrete_absolute_path") - { --#ifndef _WIN32 -+#if !defined(_WIN32) && !defined(__CYGWIN__) - TestContext test_context; - - util::write_file("file", ""); --- -2.44.0 - diff --git a/ccache/PKGBUILD b/ccache/PKGBUILD index 35f2c4cd..99c97aa6 100644 --- a/ccache/PKGBUILD +++ b/ccache/PKGBUILD @@ -2,8 +2,8 @@ # Contributor: Renato Silva pkgname=ccache -pkgver=4.9.1 -pkgrel=2 +pkgver=4.10 +pkgrel=1 pkgdesc="A compiler cache (mingw-w64)" arch=('i686' 'x86_64') url="https://ccache.samba.org/" @@ -15,25 +15,18 @@ makedepends=("cmake" "pkgconf" "zlib-devel" "libzstd-devel" + "libxxhash-devel" 'gcc') -depends=("gcc-libs" "zlib" "libzstd") +depends=("gcc-libs" "zlib" "libzstd" "fmt" "doctest" "libxxhash") options=('staticlibs' 'strip') install="${pkgname}.install" -source=(https://github.com/ccache/ccache/releases/download/v${pkgver}/ccache-${pkgver}.tar.xz{,.asc} - "0001-fix-blake3-segfault.patch" - "0002-Stop-msys2-from-hanging-forever-Problem-MSYS2-symlin.patch") +source=(https://github.com/ccache/ccache/releases/download/v${pkgver}/ccache-${pkgver}.tar.xz{,.asc}) validpgpkeys=("5A939A71A46792CF57866A51996DDA075594ADB8") #Joel Rosdahl -sha256sums=('4c03bc840699127d16c3f0e6112e3f40ce6a230d5873daa78c60a59c7ef59d25' - 'SKIP' - '0d9e9f9dd4ff87a010e017091ab503945c40b46766aaee520bca09633ab00927' - '05723222a62159fdeae0a720bbccab1a873ee931dc6a1c7327ec1317f041bba3') +sha256sums=('83630b5e922b998ab2538823e0cad962c0f956fad1fcf443dd5288269a069660' + 'SKIP') prepare() { cd "${pkgname}-${pkgver}" - - patch -Np1 -i "${srcdir}/0001-fix-blake3-segfault.patch" - # https://github.com/ccache/ccache/pull/1416 - patch -Np1 -i "${srcdir}/0002-Stop-msys2-from-hanging-forever-Problem-MSYS2-symlin.patch" } build() { @@ -45,6 +38,7 @@ build() { -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DREDIS_STORAGE_BACKEND=OFF \ + -DDEPS=LOCAL \ ../${pkgname}-${pkgver} cmake --build . diff --git a/doctest/PKGBUILD b/doctest/PKGBUILD new file mode 100644 index 00000000..a020673b --- /dev/null +++ b/doctest/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Christoph Reiter + +pkgname=doctest +pkgver=2.4.9 +pkgrel=1 +pkgdesc='The lightest feature rich C++ single header testing framework' +arch=('any') +url='https://github.com/onqtam/doctest' +license=('spdx:MIT') +makedepends=('cmake' 'gcc' 'make') +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/${pkgname}/${pkgname}/archive/refs/tags/v${pkgver}.tar.gz") +sha256sums=('19b2df757f2f3703a5e63cee553d85596875f06d91a3333acd80a969ef210856') + +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + mkdir build +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}/build" + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DDOCTEST_WITH_TESTS=off \ + -G"Unix Makefiles" \ + ../ + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}/build" + make DESTDIR="${pkgdir}" install + install -Dm 0644 ../LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/fmt/PKGBUILD b/fmt/PKGBUILD new file mode 100644 index 00000000..5cbf4770 --- /dev/null +++ b/fmt/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Christoph Reiter + +pkgname=fmt +pkgver=10.2.0 +pkgrel=1 +pkgdesc='Open-source formatting library for C++' +arch=(x86_64 i686) +url=https://fmt.dev +msys2_repository_url="https://github.com/fmtlib/fmt" +license=(spdx:MIT) +depends=(gcc-libs) +makedepends=( + cmake + ninja + gcc +) +source=("https://github.com/fmtlib/fmt/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz") +sha256sums=('3ca91733a7313a8ad41c0885929415f8ec0a2a31d4dc7e27e9331412f4ca26ac') + +build() { + cmake -S "${pkgname}-${pkgver}" -B build \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON + + cmake --build build +} + +check() { + cmake --build build --target test +} + +package() { + DESTDIR="${pkgdir}" cmake --build build --target install + install -Dm 644 "${pkgname}-${pkgver}"/LICENSE -t "${pkgdir}"/usr/share/licenses/fmt/ +}