pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/lang/souffle
Module Name: pkgsrc
Committed By: alnsn
Date: Sat Apr 25 22:03:11 UTC 2026
Added Files:
pkgsrc/lang/souffle: DESCR Makefile PLIST distinfo options.mk
pkgsrc/lang/souffle/patches: patch-src_CMakeLists.txt
Log Message:
Initial import of lang/souffle, version 2.5.
Souffle is a variant of Datalog for tool designers crafting analyses
in Horn clauses. Souffle synthesizes a native parallel C++ program
from a logic specification.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/souffle/DESCR pkgsrc/lang/souffle/Makefile \
pkgsrc/lang/souffle/PLIST pkgsrc/lang/souffle/distinfo \
pkgsrc/lang/souffle/options.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/souffle/patches/patch-src_CMakeLists.txt
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/lang/souffle/DESCR
diff -u /dev/null pkgsrc/lang/souffle/DESCR:1.1
--- /dev/null Sat Apr 25 22:03:11 2026
+++ pkgsrc/lang/souffle/DESCR Sat Apr 25 22:03:11 2026
@@ -0,0 +1,3 @@
+Souffle� is a variant of Datalog for tool designers crafting analyses
+in Horn clauses. Souffle� synthesizes a native parallel C++ program
+from a logic specification.
Index: pkgsrc/lang/souffle/Makefile
diff -u /dev/null pkgsrc/lang/souffle/Makefile:1.1
--- /dev/null Sat Apr 25 22:03:11 2026
+++ pkgsrc/lang/souffle/Makefile Sat Apr 25 22:03:11 2026
@@ -0,0 +1,45 @@
+# $NetBSD: Makefile,v 1.1 2026/04/25 22:03:11 alnsn Exp $
+
+DISTNAME= souffle-2.5
+GITHUB_TAG= ${PKGVERSION_NOREV}
+CATEGORIES= lang
+MASTER_SITES= ${MASTER_SITE_GITHUB:=souffle-lang/}
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://souffle-lang.github.io/
+COMMENT= Souffle is a variant of Datalog
+LICENSE= upl-1.0
+
+USE_TOOLS+= flex bison pkg-config
+USE_LANGUAGES= c c++
+USE_CXX_FEATURES+= c++17
+PTHREAD_AUTO_VARS= yes
+
+CMAKE_GENERATORS_INCOMPATIBLE= make
+
+CMAKE_CONFIGURE_ARGS+= -DCMAKE_BUILD_TYPE=Release
+CMAKE_CONFIGURE_ARGS+= -DCMAKE_CXX_COMPILER=${CXX:Q}
+CMAKE_CONFIGURE_ARGS+= -DCMAKE_CXX_LINK_FLAGS=${LDFLAGS:Q}
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_COMPILE_PY_COMPILER=${CXX:Q}
+
+# XXX Find a better way of patching .buildlink
+# paths in bin/souffle-compile.py.
+CMAKE_CONFIGURE_ARGS+= -DBUILDLINK_DIR=${BUILDLINK_DIR}
+CMAKE_CONFIGURE_ARGS+= -DCOMPILER_RPATH_FLAG=${COMPILER_RPATH_FLAG}
+
+# Tests take a long time to finish, you can instead
+# run them inside a sandboxed shell and pass -j N:
+# make build-env
+# cd cmake-pkgsrc-build && ctest -j 32
+# ^D
+TEST_TARGET= test
+
+.include "options.mk"
+
+.include "../../devel/cmake/build.mk"
+.include "../../devel/libffi/buildlink3.mk"
+.include "../../devel/ncurses/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../lang/python/application.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/lang/souffle/PLIST
diff -u /dev/null pkgsrc/lang/souffle/PLIST:1.1
--- /dev/null Sat Apr 25 22:03:11 2026
+++ pkgsrc/lang/souffle/PLIST Sat Apr 25 22:03:11 2026
@@ -0,0 +1,101 @@
+@comment $NetBSD: PLIST,v 1.1 2026/04/25 22:03:11 alnsn Exp $
+bin/souffle
+bin/souffle-compile.py
+bin/souffleprof
+include/souffle/BinaryConstraintOps.h
+include/souffle/CompiledOptions.h
+include/souffle/CompiledSouffle.h
+include/souffle/RamTypes.h
+include/souffle/RecordTable.h
+include/souffle/SignalHandler.h
+include/souffle/SouffleFunctor.h
+include/souffle/SouffleInterface.h
+include/souffle/SymbolTable.h
+include/souffle/TypeAttribute.h
+include/souffle/datastructure/BTree.h
+include/souffle/datastructure/BTreeDelete.h
+include/souffle/datastructure/BTreeUtil.h
+include/souffle/datastructure/Brie.h
+include/souffle/datastructure/ConcurrentCache.h
+include/souffle/datastructure/ConcurrentFlyweight.h
+include/souffle/datastructure/ConcurrentInsertOnlyHashMap.h
+include/souffle/datastructure/EqRel.h
+include/souffle/datastructure/EquivalenceRelation.h
+include/souffle/datastructure/Graph.h
+include/souffle/datastructure/Info.h
+include/souffle/datastructure/LambdaBTree.h
+include/souffle/datastructure/Nullaries.h
+include/souffle/datastructure/PiggyList.h
+include/souffle/datastructure/RecordTableImpl.h
+include/souffle/datastructure/SymbolTableImpl.h
+include/souffle/datastructure/Table.h
+include/souffle/datastructure/UnionFind.h
+include/souffle/io/IOSystem.h
+include/souffle/io/ReadStream.h
+include/souffle/io/ReadStreamCSV.h
+include/souffle/io/ReadStreamJSON.h
+include/souffle/io/ReadStreamSQLite.h
+include/souffle/io/SerialisationStream.h
+include/souffle/io/WriteStream.h
+include/souffle/io/WriteStreamCSV.h
+include/souffle/io/WriteStreamJSON.h
+include/souffle/io/WriteStreamSQLite.h
+include/souffle/io/gzfstream.h
+include/souffle/profile/Cell.h
+include/souffle/profile/CellInterface.h
+include/souffle/profile/Cli.h
+include/souffle/profile/DataComparator.h
+include/souffle/profile/EventProcessor.h
+include/souffle/profile/HtmlGenerator.h
+include/souffle/profile/Iteration.h
+include/souffle/profile/Logger.h
+include/souffle/profile/OutputProcessor.h
+include/souffle/profile/ProfileDatabase.h
+include/souffle/profile/ProfileEvent.h
+include/souffle/profile/ProgramRun.h
+include/souffle/profile/Reader.h
+include/souffle/profile/Relation.h
+include/souffle/profile/Row.h
+include/souffle/profile/Rule.h
+include/souffle/profile/StringUtils.h
+include/souffle/profile/Table.h
+include/souffle/profile/Tui.h
+include/souffle/profile/UserInputReader.h
+include/souffle/profile/htmlCssChartist.h
+include/souffle/profile/htmlCssStyle.h
+include/souffle/profile/htmlJsChartistMin.h
+include/souffle/profile/htmlJsChartistPlugin.h
+include/souffle/profile/htmlJsMain.h
+include/souffle/profile/htmlJsTableSort.h
+include/souffle/profile/htmlJsUtil.h
+include/souffle/profile/htmlMain.h
+include/souffle/provenance/Explain.h
+include/souffle/provenance/ExplainProvenance.h
+include/souffle/provenance/ExplainProvenanceImpl.h
+include/souffle/provenance/ExplainTree.h
+include/souffle/swig/SwigInterface.h
+include/souffle/swig/SwigInterface.i
+include/souffle/utility/CacheUtil.h
+include/souffle/utility/ContainerUtil.h
+include/souffle/utility/DynamicCasting.h
+include/souffle/utility/EvaluatorUtil.h
+include/souffle/utility/FileUtil.h
+include/souffle/utility/FunctionalUtil.h
+include/souffle/utility/General.h
+include/souffle/utility/GetOptLong.h
+include/souffle/utility/GetOptLongImpl.h
+include/souffle/utility/Iteration.h
+include/souffle/utility/MiscUtil.h
+include/souffle/utility/NodeMapper.h
+include/souffle/utility/NodeMapperFwd.h
+include/souffle/utility/ParallelUtil.h
+include/souffle/utility/StreamUtil.h
+include/souffle/utility/StringUtil.h
+include/souffle/utility/SubProcess.h
+include/souffle/utility/SubsetCache.h
+include/souffle/utility/Types.h
+include/souffle/utility/Visitor.h
+include/souffle/utility/VisitorFwd.h
+include/souffle/utility/json11.h
+include/souffle/utility/span.h
+include/souffle/utility/tinyformat.h
Index: pkgsrc/lang/souffle/distinfo
diff -u /dev/null pkgsrc/lang/souffle/distinfo:1.1
--- /dev/null Sat Apr 25 22:03:11 2026
+++ pkgsrc/lang/souffle/distinfo Sat Apr 25 22:03:11 2026
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2026/04/25 22:03:11 alnsn Exp $
+
+BLAKE2s (souffle-2.5.tar.gz) = 21de29cec24486d20fd4926ff80ba2f1aba5fd9b0caac88f0893aa039fcf821f
+SHA512 (souffle-2.5.tar.gz) = a99daa9dccbf7e681115f0dc7c0a83906fd1f18735a421a8037b2f7b4bde3580c125a2d6aa9c472b2e9a54d0afcd2b34479b7680b3e4b77c79bfcc61e06acd86
+Size (souffle-2.5.tar.gz) = 9707629 bytes
+SHA1 (patch-src_CMakeLists.txt) = f12b1edc12d83eb2026ab87bcc98eaaa270591b6
Index: pkgsrc/lang/souffle/options.mk
diff -u /dev/null pkgsrc/lang/souffle/options.mk:1.1
--- /dev/null Sat Apr 25 22:03:11 2026
+++ pkgsrc/lang/souffle/options.mk Sat Apr 25 22:03:11 2026
@@ -0,0 +1,28 @@
+# $NetBSD: options.mk,v 1.1 2026/04/25 22:03:11 alnsn Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.souffle
+PKG_SUPPORTED_OPTIONS= openmp sqlite souffle-64bit
+PKG_SUGGESTED_OPTIONS= openmp sqlite
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mopenmp)
+# required to find OpenMP_gomp_LIBRARY ("../../mk/openmp.mk" doesn't work)
+.include "../../parallel/openmp/buildlink3.mk"
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_USE_OPENMP=ON
+.else
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_USE_OPENMP=OFF
+.endif
+
+.if !empty(PKG_OPTIONS:Msqlite)
+.include "../../databases/sqlite3/buildlink3.mk"
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_USE_SQLITE=ON
+.else
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_USE_SQLITE=OFF
+.endif
+
+.if !empty(PKG_OPTIONS:Msouffle-64bit)
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_DOMAIN_64BIT=ON
+.else
+CMAKE_CONFIGURE_ARGS+= -DSOUFFLE_DOMAIN_64BIT=OFF
+.endif
Index: pkgsrc/lang/souffle/patches/patch-src_CMakeLists.txt
diff -u /dev/null pkgsrc/lang/souffle/patches/patch-src_CMakeLists.txt:1.1
--- /dev/null Sat Apr 25 22:03:11 2026
+++ pkgsrc/lang/souffle/patches/patch-src_CMakeLists.txt Sat Apr 25 22:03:11 2026
@@ -0,0 +1,69 @@
+$NetBSD: patch-src_CMakeLists.txt,v 1.1 2026/04/25 22:03:11 alnsn Exp $
+
+Fixes for bin/souffle-compile.py script:
+ - Fix ${PYTHON_EXECUTABLE} shebang.
+ - Don't use .buildlink/bin/c++ wrapper.
+ - Extract rpath directories from link flags (cmake detects
+ only .buildlink paths).
+ - Extract -I flags from compile flags. Keep .buildlink/include
+ directories detected by cmake for tests.
+ - Resolve .buildlink/lib/*.so symlinks to real paths.
+
+--- src/CMakeLists.txt.orig 2025-03-24 14:18:36.000000000 +0000
++++ src/CMakeLists.txt
+@@ -537,7 +537,19 @@ endif ()
+
+ list(JOIN SOUFFLE_COMPILED_OPTS " " SOUFFLE_COMPILED_CXX_OPTIONS)
+
+-list(JOIN SOUFFLE_COMPILED_LIBS " " SOUFFLE_COMPILED_LINK_OPTIONS1)
++# Find .buildlink libraries and resolve them to real paths.
++set(SOUFFLE_COMPILED_LIBS_RESOLVED "")
++foreach (lib IN LISTS SOUFFLE_COMPILED_LIBS)
++ string(FIND "${lib}" "${BUILDLINK_DIR}" found_at)
++ if (found_at EQUAL 0)
++ file(READ_SYMLINK "${lib}" resolved)
++ list(APPEND SOUFFLE_COMPILED_LIBS_RESOLVED "${resolved}")
++ else ()
++ list(APPEND SOUFFLE_COMPILED_LIBS_RESOLVED "${lib}")
++ endif ()
++endforeach ()
++
++list(JOIN SOUFFLE_COMPILED_LIBS_RESOLVED " " SOUFFLE_COMPILED_LINK_OPTIONS1)
+ list(JOIN SOUFFLE_COMPILED_LINK_OPTS " " SOUFFLE_COMPILED_LINK_OPTIONS2)
+ set(SOUFFLE_COMPILED_LINK_OPTIONS "")
+ string(APPEND SOUFFLE_COMPILED_LINK_OPTIONS " ${SOUFFLE_COMPILED_LINK_OPTIONS1}" " ${SOUFFLE_COMPILED_LINK_OPTIONS2}")
+@@ -546,10 +558,21 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC"
+ set(SOUFFLE_COMPILED_LINK_OPTIONS "/link ${SOUFFLE_COMPILED_LINK_OPTIONS}")
+ endif ()
+
++# Extract rpaths from link flags. It overwrites already built SOUFFLE_COMPILED_RPATHS.
++separate_arguments(SOUFFLE_COMPILED_RPATHS UNIX_COMMAND "${SOUFFLE_COMPILED_CXX_LINK_FLAGS}")
++list(FILTER SOUFFLE_COMPILED_RPATHS INCLUDE REGEX "^${COMPILER_RPATH_FLAG}")
++list(TRANSFORM SOUFFLE_COMPILED_RPATHS REPLACE "${COMPILER_RPATH_FLAG}" "")
+ list(JOIN SOUFFLE_COMPILED_RPATHS "${OS_PATH_DELIMITER}" SOUFFLE_COMPILED_RPATH_LIST)
+
++# SOUFFLE_COMPILED_INCS found so far are all .buildlink/include
++# directories. We keep them only because they're required to run
++# tests. Normal ${LOCALBASE}/include directories are extracted from
++# compile flags and added to the front.
+ list(TRANSFORM SOUFFLE_COMPILED_INCS PREPEND "-I")
+-list(JOIN SOUFFLE_COMPILED_INCS " " SOUFFLE_COMPILED_INCLUDES)
++separate_arguments(SOUFFLE_COMPILED_INC_FLAGS UNIX_COMMAND ${SOUFFLE_COMPILED_CXX_FLAGS})
++list(FILTER SOUFFLE_COMPILED_INC_FLAGS INCLUDE REGEX "^-I")
++list(APPEND SOUFFLE_COMPILED_INC_FLAGS ${SOUFFLE_COMPILED_INCS})
++list(JOIN SOUFFLE_COMPILED_INC_FLAGS " " SOUFFLE_COMPILED_INCLUDES)
+
+ list(TRANSFORM SOUFFLE_COMPILED_DEFS PREPEND "-D")
+ list(JOIN SOUFFLE_COMPILED_DEFS " " SOUFFLE_COMPILED_DEFINITIONS)
+@@ -558,9 +581,9 @@ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/so
+
+ # json parameters injected at the begining of souffle-compile.py
+ set(SOUFFLE_COMPILE_PY
+-"#!/usr/bin/env python3
++"#!${PYTHON_EXECUTABLE}
+ JSON_DATA_TEXT = \"\"\"{
+- \"compiler\": \"${SOUFFLE_COMPILED_CXX_COMPILER}\",
++ \"compiler\": \"${SOUFFLE_COMPILE_PY_COMPILER}\",
+ \"compiler_id\": \"${SOUFFLE_COMPILED_CXX_COMPILER_ID}\",
+ \"compiler_version\": \"${SOUFFLE_COMPILED_CXX_COMPILER_VERSION}\",
+ \"msvc_version\": \"${MSVC_VERSION}\",
Home |
Main Index |
Thread Index |
Old Index