pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/py-llvmlite



Module Name:    pkgsrc
Committed By:   wiz
Date:           Thu Apr 16 06:36:45 UTC 2026

Modified Files:
        pkgsrc/devel/py-llvmlite: Makefile distinfo
Added Files:
        pkgsrc/devel/py-llvmlite: inplace.mk

Log Message:
py-llvmlite: this version only supports llvm 20

Build the necessary parts of llvm 20 in-place, according to
upstream instructions.

Bump PKGREVISION.


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 pkgsrc/devel/py-llvmlite/Makefile
cvs rdiff -u -r1.30 -r1.31 pkgsrc/devel/py-llvmlite/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/py-llvmlite/inplace.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/py-llvmlite/Makefile
diff -u pkgsrc/devel/py-llvmlite/Makefile:1.35 pkgsrc/devel/py-llvmlite/Makefile:1.36
--- pkgsrc/devel/py-llvmlite/Makefile:1.35      Thu Apr  2 13:16:49 2026
+++ pkgsrc/devel/py-llvmlite/Makefile   Thu Apr 16 06:36:45 2026
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.35 2026/04/02 13:16:49 adam Exp $
+# $NetBSD: Makefile,v 1.36 2026/04/16 06:36:45 wiz Exp $
 
 DISTNAME=      llvmlite-0.47.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
+PKGREVISION=   1
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=l/llvmlite/}
 
@@ -13,8 +14,6 @@ LICENSE=      2-clause-bsd
 TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
 TOOL_DEPENDS+= cmake-[0-9]*:../../devel/cmake
 
-# As of 0.45.0, this supports llvm 20.
-
 USE_CXX_FEATURES=      c++17
 USE_LANGUAGES=         c c++
 USE_TOOLS+=            gmake
@@ -27,6 +26,10 @@ post-install:
                ${DESTDIR}${PREFIX}/${PYSITELIB}/llvmlite/binding/libllvmlite.dylib
 .endif
 
+# As of 0.47.0, the newest version supported is llvm 20.
+# So we have to use an in-place llvm build.
+.include "inplace.mk"
+#.include "../../lang/llvm/buildlink3.mk"
+
 .include "../../lang/python/wheel.mk"
-.include "../../lang/llvm/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/devel/py-llvmlite/distinfo
diff -u pkgsrc/devel/py-llvmlite/distinfo:1.30 pkgsrc/devel/py-llvmlite/distinfo:1.31
--- pkgsrc/devel/py-llvmlite/distinfo:1.30      Thu Apr  2 13:16:49 2026
+++ pkgsrc/devel/py-llvmlite/distinfo   Thu Apr 16 06:36:45 2026
@@ -1,5 +1,17 @@
-$NetBSD: distinfo,v 1.30 2026/04/02 13:16:49 adam Exp $
+$NetBSD: distinfo,v 1.31 2026/04/16 06:36:45 wiz Exp $
 
+BLAKE2s (cmake-20.1.8.src.tar.xz) = 39070395d68854d6d9781a700093a638e304bbf68888ba1e6bfb07e2deb01b57
+SHA512 (cmake-20.1.8.src.tar.xz) = 0ff6018c0753f208e990e45403c4ae5764a0ac83a8d80d8db7d3c7dbface14a7c8339893d8f757ff2d7b3662253ba356cf157ae7072a0be170a9dc028f4d7a74
+Size (cmake-20.1.8.src.tar.xz) = 8652 bytes
+BLAKE2s (libunwind-20.1.8.src.tar.xz) = 75a1b3977136c96da2a227b5c3ddd030e4594aeaf16ab43b367e33cf1ddf4761
+SHA512 (libunwind-20.1.8.src.tar.xz) = edeac406abbf9fa98a794b9ca1a7524d10b0a43f919b4aac3c339344171d3bafe748c71bc06e709728b396779de7cabe36c2e594290dc7c1b19d29b0564efddb
+Size (libunwind-20.1.8.src.tar.xz) = 120780 bytes
+BLAKE2s (lld-20.1.8.src.tar.xz) = bbfb711cef99026bc3999bf08dd1c283ba20453c04dd0a6519c08a40efbd028d
+SHA512 (lld-20.1.8.src.tar.xz) = 305547d4eb16bf8b1c93a61463385a2467a71d3df5e1121265b806bd7563ea4549767c266a206eb55928b12b0dc13a5c67d264898231e50ebef49f1b3275d9f6
+Size (lld-20.1.8.src.tar.xz) = 1720228 bytes
+BLAKE2s (llvm-20.1.8.src.tar.xz) = 040b14dea1435ccf5b4ce08e4d2310c880f421ff5e7e0bcd686fa32e53708979
+SHA512 (llvm-20.1.8.src.tar.xz) = 4781d494fcb9a3d21cc9b76718e15f2d357573bfec53d9779c9ad6e871103beccf4023afc8f60ef1d463acde58c083e083cdc5a74001a3da361d8dbf160b01b7
+Size (llvm-20.1.8.src.tar.xz) = 72698776 bytes
 BLAKE2s (llvmlite-0.47.0.tar.gz) = 6e9f2d62e52944e84a2673ac1f7eb029be1b5d15fe51a292462635174bcf66df
 SHA512 (llvmlite-0.47.0.tar.gz) = f277528bc56f8c9857c562ac629b0795ffbd944dd80c7e3f3a160402a6754fbf98e1abfced47eb5af677a33c3f1e129b0a7a7c8358e9f05e4b60e1571187409c
 Size (llvmlite-0.47.0.tar.gz) = 193614 bytes

Added files:

Index: pkgsrc/devel/py-llvmlite/inplace.mk
diff -u /dev/null pkgsrc/devel/py-llvmlite/inplace.mk:1.1
--- /dev/null   Thu Apr 16 06:36:45 2026
+++ pkgsrc/devel/py-llvmlite/inplace.mk Thu Apr 16 06:36:45 2026
@@ -0,0 +1,94 @@
+# $NetBSD: inplace.mk,v 1.1 2026/04/16 06:36:45 wiz Exp $
+
+# This Makefile fragment is intended for those times when py-llvmlite
+# doesn't support the current pkgsrc llvm version.
+
+# Statically linking in a purpose-built LLVM as upstream urges to do.
+# They support only a certain version of LLVM per release, and that
+# with patches.
+
+LLVM_VERSION=  20.1.8
+DISTFILES=     ${DEFAULT_DISTFILES}
+DISTFILES+=    cmake-${LLVM_VERSION}.src.tar.xz
+DISTFILES+=    llvm-${LLVM_VERSION}.src.tar.xz
+DISTFILES+=    lld-${LLVM_VERSION}.src.tar.xz
+DISTFILES+=    libunwind-${LLVM_VERSION}.src.tar.xz
+
+LLVM_SITE=                                     https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/
+SITES.cmake-${LLVM_VERSION}.src.tar.xz=                ${LLVM_SITE}
+SITES.llvm-${LLVM_VERSION}.src.tar.xz=         ${LLVM_SITE}
+SITES.lld-${LLVM_VERSION}.src.tar.xz=          ${LLVM_SITE}
+SITES.libunwind-${LLVM_VERSION}.src.tar.xz=    ${LLVM_SITE}
+
+# Just for LLVM build.
+USE_TOOLS+=            cmake patch
+
+# See
+# https://github.com/numba/llvmlite/blob/main/conda-recipes/llvmdev/build.sh
+# for the procedure. This is what
+# https://llvmlite.readthedocs.io/en/latest/admin-guide/install.html
+# points to. Need to match up this to the correct llvmlite release, as
+# they do not include this in the tarball. Python people think building
+# stuff from source is hard and keep it so:-/
+# I kept some upstream comments inline.
+
+LLVM_CMAKE_CONFIGURE_ARGS=     -DCMAKE_INSTALL_PREFIX=${WRKDIR}/llvm-inst
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DCMAKE_BUILD_TYPE:STRING=Release
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_PROJECTS:STRING=lld
+# We explicitly want static linking.
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DBUILD_SHARED_LIBS:BOOL=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_BUILD_STATIC:BOOL=ON
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLINK_POLLY_INTO_TOOLS:BOOL=ON
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_FFI=ON
+
+# Urgh, llvm *really* wants to link to ncurses / terminfo and we *really* do not want it to.
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DHAVE_TERMINFO_CURSES=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_TERMINFO=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_LIBEDIT=OFF
+# Don't really require libxml2. Turn it off explicitly to avoid accidentally linking to system libs
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_LIBXML2:BOOL=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_ZSTD:BOOL=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_Z3_SOLVER=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_RTTI=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_ENABLE_ASSERTIONS:BOOL=ON
+# Not sure if this should be adapted for pkgsrc.
+#LLVM_CMAKE_CONFIGURE_ARGS+=   -DLLVM_TARGETS_TO_BUILD=all
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly
+# for llvm-lit
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_INCLUDE_UTILS=ON
+# doesn't build without the rest of LLVM project
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_INCLUDE_DOCS=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_INCLUDE_EXAMPLES=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_INCLUDE_TESTS=OFF
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DLLVM_INCLUDE_GO_TESTS=OFF
+# static build, so should be unneeded, and avoids error linking tblgen
+LLVM_CMAKE_CONFIGURE_ARGS+=    -DCMAKE_SKIP_RPATH:BOOL=TRUE
+
+#MAKE_ENV+=            LLVM_CONFIG=${WRKDIR}/llvm-inst/bin/llvm-config
+MAKE_ENV+=             LLVM_DIR=${WRKDIR}/llvm-inst
+# unable to pass LLVM bit-code files to linker
+MAKE_ENV.NetBSD+=      CXX_FLTO_FLAGS=
+MAKE_ENV.NetBSD+=      LD_FLTO_FLAGS=
+
+# The llvm build detects lots of stuff outside the build sandbox ...
+# a python it likes, git ... just hoping that this does not matter
+# much for the static lib being used by llvmlite.
+
+# sed: see https://github.com/numba/llvmlite/pull/1077
+pre-configure: llvm-configure
+.PHONY: llvm-configure
+llvm-configure:
+#      cd ${WRKDIR}/llvm-${LLVM_VERSION}.src && \
+#        for f in ${FILESDIR}/llvm*.patch; do patch -Np2 < $$f; done
+       ${LN} -s cmake-${LLVM_VERSION}.src ${WRKDIR}/cmake
+       ${LN} -s llvm-${LLVM_VERSION}.src ${WRKDIR}/llvm
+       ${LN} -s llvm-${LLVM_VERSION}.src/cmake ${WRKDIR}/cmake
+       ${LN} -s lld-${LLVM_VERSION}.src ${WRKDIR}/lld
+       ${LN} -s libunwind-${LLVM_VERSION}.src ${WRKDIR}/libunwind
+       cd ${WRKDIR} &&  mkdir build && cd build && \
+         cmake -G'Unix Makefiles' ${LLVM_CMAKE_CONFIGURE_ARGS} ../llvm && \
+         ${MAKE} ${_MAKE_JOBS} && \
+         ${MAKE} install
+
+.include "../../devel/libffi/buildlink3.mk"



Home | Main Index | Thread Index | Old Index