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

Reply via email to