Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ldc for openSUSE:Factory checked in at 2026-07-07 21:01:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ldc (Old) and /work/SRC/openSUSE:Factory/.ldc.new.1982 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ldc" Tue Jul 7 21:01:54 2026 rev:27 rq:1364080 version:1.42.0 Changes: -------- --- /work/SRC/openSUSE:Factory/ldc/ldc.changes 2025-04-11 16:47:19.368595892 +0200 +++ /work/SRC/openSUSE:Factory/.ldc.new.1982/ldc.changes 2026-07-07 21:03:49.403552484 +0200 @@ -1,0 +2,54 @@ +Mon Jul 6 14:15:57 UTC 2026 - Fabian Vogt <[email protected]> + +- Adjust build to support clang using libalternatives by referencing + the versioned names explicitly +- Move ldc.conf (now a directory) into /usr/share/, needs patch: + * ldc-conf-path.patch +- Update to 1.42.0: + * Big news + - Frontend, druntime and Phobos are at version [2.112.1+](https://dlang.org/changelog/2.112.0.html), incl. new command-line options `-extI`, `-dllimport=externalOnly` and `-edition`. (#4949, #4962, #4988, #5029, #5042, #5046, #5051, #5061, #5067, #5069, #5076) + - Support for [LLVM 21](https://releases.llvm.org/21.1.0/docs/ReleaseNotes.html). The prebuilt packages use v21.1.8. (#4950, #5033) + - New prebuilt package for Alpine Linux aarch64 with musl libc, analogous to the existing x86_64 package. (#4943) + - **Breaking change for dcompute**: The special `@kernel` UDA is now a function and _**requires**_ parentheses as in `@kernel() void foo(){}`. Optionally you can provide launch dimensions, `@kernel([2,4,8])`, to specify to the compute runtime how the kernel is intended to be launched. + - ldc2.conf can now be a directory. All the files inside it, ordered naturally, will be concatenated and treated like a big config. (#4954) + - Running `ldc-build-runtime --installWithSuffix` now includes installing a target-specific .conf file to that directory. (#4978) + - **Breaking change for ldc2.conf cmake generation**: The `cmake` build process now generates the `ldc2.conf` and `ldc2_install.conf` as directories. `ldc2*.conf.in` and `ADDITIONAL_DEFAULT_LDC_SWITCHES` have been removed, if you need to add switches check out `makeConfSection` in `LdcConfig.cmake`. (#4954) + - When cross-compiling, the fallback value for the (cross) C compiler will be picked based on some heuristics. + The old behavior was to default to `cc`. + As an example, when cross-compiling for `aarch64-linux-gnu` the compilers that are checked are: + - `aarch64-linux-gnu-gcc` + - `aarch64-linux-gnu-clang` + - `clang --target=aarch64-linux-gnu` + - The prebuilt arm64/universal macOS packages additionally bundle the arm64 iOS-*simulator* libraries, for out-of-the-box cross-compilation support via e.g. `-mtriple=arm64-apple-ios12.0-simulator`. (#4974) + - New `--fdebug-prefix-map` command-line option and changed debuginfo file/directory name splitting logic (both now similar to clang), to aid reproducible builds. (#5039) + * Platform support + - Supports LLVM 15 - 21. + - PowerPC64: `real` now matches the C++ host compiler's `long double` when compiling for the native target, not just on Linux hosts. (#5054) + +- Update to 1.41.0: + * Big news + - Frontend, druntime and Phobos are at version [2.111.0+](https://dlang.org/changelog/2.111.0.html). (#4877, #4910, #4918, #4941) + - Support for [LLVM 20](https://releases.llvm.org/20.1.0/docs/ReleaseNotes.html). The prebuilt packages use v20.1.5. (#4843, #4911, #4935) + - The dynamic-compile (JIT) feature has regressed with LLVM 20. Use LLVM 18 or 19 for that feature. + - Keep frame pointers by default with `-O` for some targets, notably AArch64 (except Windows), x86_64 (except Windows and glibc Linux), Windows x86, and Android. This fixes druntime backtraces with optimized code (incl. prebuilt druntime/Phobos). (#4889) + - The prebuilt (non-musl) Linux packages are now generated on Ubuntu 22.04; the minimum glibc version has accordingly been raised from v2.31 to v2.35. (#4893) + - druntime: Optimize `core.int128` via inline IR/assembly. (#4892) + - Follow clang wrt. unwind tables emission, enabling them for most popular targets. (#4888) + - ldc2.conf: Arrays can now be appended to via the `~=` operator. (#4848, #4856) + - New `--installWithSuffix` command-line option for the `ldc-build-runtime` tool, to simplify copying the libraries to an existing LDC installation. (#4870) + - CMake changes (for building LDC itself): + - Minimum CMake version bumped to v3.16. (#4898) + - macOS: Fix weird linker error when running CMake the first time. (#3901, #4926) + - Reworked integration of the LLVM compiler-rt libraries. Package maintainers may want to see [docs/compiler_rt.md](https://github.com/ldc-developers/ldc/blob/master/docs/compiler_rt.md). (#4665) + - Somewhat simplify separate compiler and runtime builds, incl. cross-compiling LDC itself. (#4872) + * Platform support + - Supports LLVM 15 - 20. + - RISC-V: Fiber context switching is now implemented natively. (#4867) + * Bug fixes + - Prebuilt macOS packages: Fix `ldmd2` and other bundled executables crashing on macOS v15.4. (#4899, #4912) + - ImportC: Run C preprocessor in C11 mode. (#4933) + - ImportC Windows: Disable clang headers when C-preprocessing with `clang-cl`. (#4934) + - Fix ICE on invalid constant address-of expressions. (#4938, #4939) + - Allow Unicode in fully qualified label names. (#4927, #4929) + +------------------------------------------------------------------- Old: ---- ldc-1.40.1-src.tar.gz New: ---- ldc-1.42.0-src.tar.gz ldc-conf-path.patch ----------(New B)---------- New:- Move ldc.conf (now a directory) into /usr/share/, needs patch: * ldc-conf-path.patch - Update to 1.42.0: ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ldc.spec ++++++ --- /var/tmp/diff_new_pack.vuC6mO/_old 2026-07-07 21:03:50.463589187 +0200 +++ /var/tmp/diff_new_pack.vuC6mO/_new 2026-07-07 21:03:50.467589325 +0200 @@ -1,7 +1,7 @@ # # spec file for package ldc # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ # -%define so_ver 110 +%define so_ver 112 %define lname_jit libldc-jit %define lname_runtime libdruntime-%{name} %define lname_phobos libphobos2-%{name} @@ -49,7 +49,7 @@ %bcond_with ldc_tests -# JIT is available from LLVM >= 18 +# JIT is available with LLVM >= 18 < 20 # https://github.com/ldc-developers/ldc/pull/4774 %global jit_support 1 @@ -59,7 +59,7 @@ %endif Name: ldc -Version: 1.40.1 +Version: 1.42.0 Release: 0 Summary: The LLVM D Compiler License: Artistic-1.0 AND BSD-3-Clause @@ -68,21 +68,23 @@ Source0: https://github.com/ldc-developers/ldc/releases/download/v%{version}/ldc-%{version}-src.tar.gz Source1: %{name}-rpmlintrc Patch0: ldc-1.9.0-fix_arm_build.patch +Patch1: ldc-conf-path.patch BuildRequires: cmake BuildRequires: help2man BuildRequires: libconfig++-devel BuildRequires: libcurl-devel BuildRequires: libstdc++-devel -%if 0%{?suse_version} > 1550 || ( 0%{?is_opensuse} && 0%{?sle_version} > 150400 ) +BuildRequires: ncurses-devel +BuildRequires: sqlite3-devel +BuildRequires: zlib-devel +# It supports LLVM < 22, but only without JIT (LDC_DYNAMIC_COMPILE=OFF) +%if %{jit_support} BuildRequires: (cmake(Clang) >= 15.0 with cmake(Clang) < 20) BuildRequires: (cmake(LLVM) >= 15.0 with cmake(LLVM) < 20) %else -BuildRequires: llvm-clang >= 15.0 -BuildRequires: llvm-devel >= 15.0 +BuildRequires: (cmake(Clang) >= 15.0 with cmake(Clang) < 22) +BuildRequires: (cmake(LLVM) >= 15.0 with cmake(LLVM) < 22) %endif -BuildRequires: ncurses-devel -BuildRequires: sqlite3-devel -BuildRequires: zlib-devel BuildRequires: pkgconfig(bash-completion) # Should be installed, at least runtime Recommends: ldc-phobos-devel = %{version} @@ -96,6 +98,7 @@ %endif # Clang uses the newest gcc to find headers and libs BuildRequires: gcc%{?gdc_version}-c++ +BuildRequires: gcc%{?gdc_version}-PIE BuildRequires: gdmd%{?gdc_suffix} %else BuildRequires: ldc @@ -182,6 +185,10 @@ %autosetup -p1 -n ldc-%{version}-src %build +# llvmXX-devel requires llvmXX-gold, which means that clang YY != XX can't be used +# anymore for compiling. Explicitly use clang-XX for building with llvm-XX. +CLANG_VER=$(rpm -q --whatprovides 'cmake(Clang)' --qf %%{version} | cut -d. -f1) + %if %{with ldc_bootstrap} # Work around gdc bug with stdin (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105544) echo "pragma(msg, int(__VERSION__));" > feVer.d @@ -193,21 +200,17 @@ touch no-suse-rules %cmake \ -DCMAKE_USER_MAKE_RULES_OVERRIDE=./no-suse-rules \ -%if 0%{?suse_version} > 1550 || ( 0%{?is_opensuse} && 0%{?sle_version} > 150400 ) - -DCMAKE_C_COMPILER="%{_bindir}/clang" \ - -DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \ -%else - -DCMAKE_C_COMPILER="%{_bindir}/clang" \ - -DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \ -%endif + -DCMAKE_C_COMPILER="%{_bindir}/clang-$CLANG_VER" \ + -DCMAKE_CXX_COMPILER="%{_bindir}/clang++-$CLANG_VER" \ -DINCLUDE_INSTALL_DIR:PATH=%{ldcincludedir} \ -DD_COMPILER:PATH=%{_bindir}/gdmd%{?gdc_suffix} \ + -DLDC_BUNDLE_LLVM_TOOLS=OFF \ -DCMAKE_CXX_FLAGS="-std=c++11" %make_build # The bootstrap compiler is used in-place instead of installed and will # thus set an rpath on generated executables. The next/final stage will be # installed and should use its own libs, so explicitly disable the rpath. -sed -i '/rpath/d' bin/ldc2.conf +sed -i '/rpath/d' etc/ldc2.conf/50-target-default.conf export LD_LIBRARY_PATH="$PWD/%_lib" cd .. @@ -216,19 +219,18 @@ #Needs to be compiled with clang, but opensuse_rules.cmake forces gcc so disable rule touch no-suse-rules +# LDC_BUNDLE_LLVM_TOOLS=OFF: Needs LLVM libs not provided by the package. +# SYSCONF_INSTALL_DIR: ldc2.conf is not actual admin/user config, so should be in /usr. %cmake \ -DCMAKE_USER_MAKE_RULES_OVERRIDE=./no-suse-rules \ -%if 0%{?suse_version} > 1550 || ( 0%{?is_opensuse} && 0%{?sle_version} > 150400 ) - -DCMAKE_C_COMPILER="%{_bindir}/clang" \ - -DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \ -%else - -DCMAKE_C_COMPILER="%{_bindir}/clang" \ - -DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \ -%endif + -DCMAKE_C_COMPILER="%{_bindir}/clang-$CLANG_VER" \ + -DCMAKE_CXX_COMPILER="%{_bindir}/clang++-$CLANG_VER" \ -DINCLUDE_INSTALL_DIR:PATH=%{ldcincludedir} \ %if %{with ldc_bootstrap} -DD_COMPILER:PATH=$PWD/../build-bootstrap/bin/ldmd2 \ %endif + -DLDC_BUNDLE_LLVM_TOOLS=OFF \ + -DSYSCONF_INSTALL_DIR=%{_datadir} \ -DCMAKE_CXX_FLAGS="-std=c++11" %make_build @@ -269,7 +271,7 @@ %license LICENSE %doc README.md %{_mandir}/man1/*.1%{?ext_man} -%config %{_sysconfdir}/ldc2.conf +%{_datadir}/ldc2.conf/ %{_bindir}/ldc* %{_bindir}/ldmd2 %{_bindir}/timetrace2txt ++++++ ldc-1.40.1-src.tar.gz -> ldc-1.42.0-src.tar.gz ++++++ /work/SRC/openSUSE:Factory/ldc/ldc-1.40.1-src.tar.gz /work/SRC/openSUSE:Factory/.ldc.new.1982/ldc-1.42.0-src.tar.gz differ: char 12, line 1 ++++++ ldc-conf-path.patch ++++++ Index: ldc-1.42.0-src/driver/configfile.cpp =================================================================== --- ldc-1.42.0-src.orig/driver/configfile.cpp +++ ldc-1.42.0-src/driver/configfile.cpp @@ -159,6 +159,10 @@ bool ConfigFile::locate(std::string &pat // try /etc/ldc (absolute path) p = "/etc/ldc"; APPEND_FILENAME_AND_RETURN_IF_EXISTS + + // try /usr/share (absolute path) + p = "/usr/share"; + APPEND_FILENAME_AND_RETURN_IF_EXISTS #endif #undef APPEND_FILENAME_AND_RETURN_IF_EXISTS
