diff options
-rw-r--r-- | gnu/local.mk | 3 | ||||
-rw-r--r-- | gnu/packages/direct-connect.scm | 87 | ||||
-rw-r--r-- | gnu/packages/games.scm | 74 | ||||
-rw-r--r-- | gnu/packages/lesstif.scm | 23 | ||||
-rw-r--r-- | gnu/packages/messaging.scm | 65 | ||||
-rw-r--r-- | gnu/packages/patches/linuxdcpp-openssl-1.1.patch | 26 | ||||
-rw-r--r-- | gnu/packages/patches/zig-0.15-fix-runpath.patch | 122 | ||||
-rw-r--r-- | gnu/packages/zig.scm | 68 |
8 files changed, 191 insertions, 277 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 1814c7da68..dc9c2069d4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -245,7 +245,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/dictionaries.scm \ %D%/packages/diffoscope.scm \ %D%/packages/digest.scm \ - %D%/packages/direct-connect.scm \ %D%/packages/disk.scm \ %D%/packages/distributed.scm \ %D%/packages/display-managers.scm \ @@ -1815,7 +1814,6 @@ dist_patch_DATA = \ %D%/packages/patches/linux-libre-arm64-mnt-reform-revert-vop2-display-modes.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/linux-pam-unix_chkpwd.patch \ - %D%/packages/patches/linuxdcpp-openssl-1.1.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-reproducible-build.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ @@ -2509,6 +2507,7 @@ dist_patch_DATA = \ %D%/packages/patches/zig-0.14-fix-runpath.patch \ %D%/packages/patches/zig-0.14-use-baseline-cpu-by-default.patch \ %D%/packages/patches/zig-0.14-use-system-paths.patch \ + %D%/packages/patches/zig-0.15-fix-runpath.patch \ %D%/packages/patches/zsh-egrep-failing-test.patch \ %D%/packages/patches/zuo-bin-sh.patch \ %D%/packages/patches/zxing-cpp-1.2.0-gcc-14.patch \ diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm deleted file mode 100644 index 8c816ce714..0000000000 --- a/gnu/packages/direct-connect.scm +++ /dev/null @@ -1,87 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr> -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (gnu packages direct-connect) - #:use-module (guix build-system scons) - #:use-module (guix deprecation) - #:use-module (guix gexp) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (gnu packages) - #:use-module (gnu packages boost) - #:use-module (gnu packages build-tools) - #:use-module (gnu packages compression) - #:use-module (gnu packages gettext) - #:use-module (gnu packages gnome) - #:use-module (gnu packages gtk) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages tls) - #:use-module (gnu packages version-control)) - -;; TODO Remove on the next python-team iteration. -;; Unmaintained for 14 years, tried updating it here: -;; https://lists.sr.ht/~ngraves/devel/patches/60080 -;; but it's too hard for most likely no users. -;; If you use this package, let python-team know or try to fix it. -(define-deprecated/public linuxdcpp #f - (package - (name "linuxdcpp") - (version "1.1.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://launchpad.net/linuxdcpp/1.1/1.1.0/+download/linuxdcpp-" - version ".tar.bz2")) - (sha256 - (base32 "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6")) - (patches (search-patches "linuxdcpp-openssl-1.1.patch")) - (modules '((guix build utils))) - (snippet - #~(begin - (substitute* "SConstruct" - ;; This compares single char[]acters in the version string, and - ;; broke when GCC went into double digits. - (("conf.CheckCXXVersion\\([^\\)]*\\)") - "True") - ;; Not all valid C++98 code is valid C++14 (and higher) code. - (("'-D_REENTRANT'" match) - (string-append match ", '-std=gnu++98'"))))))) - (build-system scons-build-system) - (arguments - `(#:scons ,scons-python2 - #:scons-flags (list (string-append "PREFIX=" %output)) - #:tests? #f)) ; no tests - (inputs - (list boost - bzip2 - gtk+-2 - libglade - libnotify - openssl)) - (native-inputs - (list bazaar gettext-minimal pkg-config)) - (home-page "https://launchpad.net/linuxdcpp/") - (synopsis "Direct Connect client") - (description "LinuxDC++ is a Direct Connect (DC) client. Direct Connect -is a peer-to-peer file-sharing protocol. Clients connect to a central hub -where they can chat or share files with one another. Users can view other -users' list of shared files or search the hub for files.") - (license license:gpl2+))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 0d3d663ab8..d8ec14af1c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -12476,80 +12476,6 @@ game.") ;thanks to Debian for description computer opponents or against real players online.") (license license:agpl3+))) -(define-public xblackjack - (package - (name "xblackjack") - (version "2.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://www.ibiblio.org/pub/X11/contrib/games/" - "xblackjack-" version ".tar.gz")) - (sha256 - (base32 "05h93rya7zwnx2l58f0a7wkjadymkj4y77clcr2hryhrhhy1vwjx")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((imake (assoc-ref inputs "imake")) - (out (assoc-ref outputs "out"))) - (substitute* "Imakefile" - (("EXTRA_LIBRARIES = -lXm \\$\\(DEPLIBS\\) -lbsd") - "EXTRA_LIBRARIES = -lXm -lXt -lXmu -lXext -lX11") - (("^#define NonStandardInstallTargets NO") - "#define NonStandardInstallTargets YES") - (("BINDIR = /usr/local/bin") - (string-append "BINDIR = " out "/bin")) - (("MANDIR = /usr/local/man/cat1") - (string-append "MANDIR = " out "/share/man/man1")) - (("XAPPLOADDIR = /usr/local/lib/app-defaults") - (string-append "XAPPLOADDIR = " out "/lib/X11/app-defaults"))) - - (invoke "xmkmf") ; Generate Makefile. - (substitute* "Makefile" - ((imake) out) - (("ETCX11DIR = /etc/X11") - (string-append "ETCX11DIR = " out "/etc/X11")) - ;; Fix incorrect argument given to gcc. Error message: - ;; "gcc: error: DefaultGcc2AMD64Opt: No such file or directory" - (("CDEBUGFLAGS = [^\n]*") "")) - - ;; Fix header paths. - (substitute* '("Draw.c" - "Strategy.c") - (("^#include <X11/Xm/Xm.h>") - "#include <Xm/Xm.h>")) - (substitute* "Strategy.c" - (("^#include <X11/Xm/Label.h>") - "#include <Xm/Label.h>")) - - ;; Fix compilation errors. - (substitute* "Table.c" - (("/\\* focus_moved_proc \\*/\tXtInheritFocusMovedProc,") "") - (("_XmMoveObject\\(\\(RectObj\\) w, rx, ry\\);") - "_XmMoveObject(w, rx, ry);") - (("_XmResizeObject\\(\\(RectObj\\) managed->locs[i].w, nw, nh,") - "_XmResizeObject(managed->locs[i].w, nw, nh,"))))) - (add-after 'install 'install-man-pages - (lambda _ - (invoke "make" "install.man")))) - #:tests? #f)) ; No check target. - (inputs - (list lesstif libx11 libxext libxmu libxt)) - (native-inputs - (list imake)) - (home-page "https://www.ibiblio.org/pub/X11/contrib/games/") - (synopsis "X11/Motif blackjack game") - (description - "Xblackjack is a MOTIF/OLIT based tool constructed to get you ready for -the casino. It was inspired by a book called \"Beat the Dealer\" by Edward -O. Thorp, Ph.D. of UCLA. A number of important statistics are maintained -for display, and used by the program to implement Thorp's \"Complete Point -System\" (high-low system).") - (license (license:x11-style "" "See file headers.")))) - (define-public xevil ;; This game is old. Use a maintained fork that builds with modern toolchains ;; on modern, 64-bit hardware. diff --git a/gnu/packages/lesstif.scm b/gnu/packages/lesstif.scm index 2c435d999b..f0ef220742 100644 --- a/gnu/packages/lesstif.scm +++ b/gnu/packages/lesstif.scm @@ -32,29 +32,6 @@ #:use-module (gnu packages xorg)) -(define-public lesstif - (package - (name "lesstif") - (version "0.95.2") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/lesstif/lesstif/" version - "/lesstif-" version ".tar.bz2")) - (sha256 - (base32 - "1qzpxjjf7ri1jzv71mvq5m9g8hfaj5yzwp30rwxlm6n2b24a6jpb")))) - (build-system gnu-build-system) - (propagated-inputs - (list printproto)) - (inputs - (list libxext libxt)) - (home-page "https://lesstif.sourceforge.net/") - (synopsis "Clone of the Motif toolkit for the X window system") - (description "Clone of the Motif toolkit for the X window system.") - (license license:gpl2+))) ; some files are lgpl2.1+ or x11 - (define-public motif ;; This commit is from February 2023 and v2.3.8 from 2017. (let ((commit "0f556b0873c72ba1152a12fd54c3198ee039e413") diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 299ee0d55c..9c09350c21 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -3539,71 +3539,6 @@ a persistent connection to an IRC server, acting as a proxy and buffer for a number of clients.") (license license:gpl3+))) -(define-public weechat-matrix - (package - (name "weechat-matrix") - (version "0.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/poljar/weechat-matrix") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1iv55n4k05139f7jzkhczgw4qp6qwilrvfsy3c6v2m1kxffj12d3")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'build) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((weechat-python (string-append (assoc-ref outputs "out") - "/share/weechat/python"))) - ;; Avoid circular import by renaming the matrix module to - ;; weechat_matrix. - (substitute* (cons "main.py" - (append (find-files "matrix") - (find-files "tests"))) - (("from matrix") "from weechat_matrix") - (("import matrix") "import weechat_matrix")) - ;; Install python modules. - (invoke "make" "install-lib" - (string-append "INSTALLDIR=" - (site-packages inputs outputs) - "/weechat_matrix")) - ;; Extend PYTHONPATH to find installed python modules. - (add-installed-pythonpath inputs outputs) - ;; Augment sys.path so that dependencies are found. - (substitute* "main.py" - (("import os\n" all) - (apply string-append - all - "import sys\n" - (map (lambda (path) - (string-append "sys.path.append('" path "')\n")) - (string-split (getenv "GUIX_PYTHONPATH") #\:))))) - ;; Install script. - (mkdir-p weechat-python) - (copy-file "main.py" - (string-append weechat-python "/matrix.py"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest"))))))) - (inputs - (list python-matrix-nio python-pygments python-pyopenssl - python-webcolors)) - (native-inputs - (list python-pytest)) - (home-page "https://github.com/poljar/weechat-matrix") - (synopsis "Weechat Matrix protocol script") - (description "@code{weechat-matrix} is a Python plugin for Weechat that lets -Weechat communicate over the Matrix protocol.") - (license license:isc))) - (define-public weechat-wee-slack (package (name "weechat-wee-slack") diff --git a/gnu/packages/patches/linuxdcpp-openssl-1.1.patch b/gnu/packages/patches/linuxdcpp-openssl-1.1.patch deleted file mode 100644 index 6f9912afd8..0000000000 --- a/gnu/packages/patches/linuxdcpp-openssl-1.1.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/dcpp/CryptoManager.cpp.orig 2011-04-17 17:57:09 UTC -+++ b/dcpp/CryptoManager.cpp -@@ -107,12 +107,20 @@ CryptoManager::CryptoManager() - }; - - if(dh) { -- dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0); -- dh->g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0); -+ BIGNUM *p, *g; - -- if (!dh->p || !dh->g) { -+ p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0); -+ g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0); -+ -+ if (!p || !g) { - dh.reset(); - } else { -+#if OPENSSL_VERSION_NUMBER < 0x10100005L -+ dh->p = p; -+ dh->g = g; -+#else -+ DH_set0_pqg(dh, p, NULL, g); -+#endif - SSL_CTX_set_options(serverContext, SSL_OP_SINGLE_DH_USE); - SSL_CTX_set_options(serverVerContext, SSL_OP_SINGLE_DH_USE); - SSL_CTX_set_tmp_dh(serverContext, (DH*)dh); diff --git a/gnu/packages/patches/zig-0.15-fix-runpath.patch b/gnu/packages/patches/zig-0.15-fix-runpath.patch new file mode 100644 index 0000000000..7216c97b57 --- /dev/null +++ b/gnu/packages/patches/zig-0.15-fix-runpath.patch @@ -0,0 +1,122 @@ +From d35c341322f6e84607350058007bd5be3d1d294a Mon Sep 17 00:00:00 2001 +From: Hilton Chain <hako@ultrarare.space> +Date: Fri, 29 Nov 2024 14:13:46 +0800 +Subject: [PATCH] Fix RUNPATH issue. + +Add needed libraries and libc to RUNPATH when CROSS_LIBRARY_PATH or LIBRARY_PATH +is set. +--- + lib/std/Build/Step/Compile.zig | 2 ++ + src/link/Elf.zig | 7 +++++++ + src/link/Lld.zig | 7 +++++++ + src/main.zig | 34 +++++++++++++++++++++++++++++++++- + 4 files changed, 49 insertions(+), 1 deletion(-) + +diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig +index 79d3694c02..7f6bddbea6 100644 +--- a/lib/std/Build/Step/Compile.zig ++++ b/lib/std/Build/Step/Compile.zig +@@ -794,6 +794,8 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8) !PkgConfigResult { + try zig_cflags.append(arg); + } else if (mem.startsWith(u8, arg, wl_rpath_prefix)) { + try zig_cflags.appendSlice(&[_][]const u8{ "-rpath", arg[wl_rpath_prefix.len..] }); ++ } else if (mem.startsWith(u8, arg, "-Wl,-rpath=")) { ++ try zig_libs.appendSlice(&[_][]const u8{ "-L", arg["-Wl,-rpath=".len..] }); + } else if (b.debug_pkg_config) { + return compile.step.fail("unknown pkg-config flag '{s}'", .{arg}); + } +diff --git a/src/link/Elf.zig b/src/link/Elf.zig +index 99d0ad71b0..8017f4c088 100644 +--- a/src/link/Elf.zig ++++ b/src/link/Elf.zig +@@ -988,6 +988,13 @@ fn dumpArgvInit(self: *Elf, arena: Allocator) !void { + try argv.appendSlice(gpa, &.{ "-rpath", rpath }); + } + ++ if (std.zig.system.NativePaths.isGuix(arena) and comp.config.link_libc and comp.config.link_mode == .dynamic) { ++ if (self.base.comp.libc_installation) |libc_installation| { ++ try argv.append(gpa, "-rpath"); ++ try argv.append(gpa, libc_installation.crt_dir.?); ++ } ++ } ++ + try argv.appendSlice(gpa, &.{ + "-z", + try std.fmt.allocPrint(arena, "stack-size={d}", .{self.base.stack_size}), +diff --git a/src/link/Lld.zig b/src/link/Lld.zig +index 48872f7077..814f661692 100644 +--- a/src/link/Lld.zig ++++ b/src/link/Lld.zig +@@ -1071,6 +1071,13 @@ fn elfLink(lld: *Lld, arena: Allocator) !void { + } + } + ++ if (std.zig.system.NativePaths.isGuix(arena) and comp.config.link_libc and link_mode == .dynamic) { ++ if (comp.libc_installation) |libc_installation| { ++ try argv.append("-rpath"); ++ try argv.append(libc_installation.crt_dir.?); ++ } ++ } ++ + if (have_dynamic_linker and + (comp.config.link_libc or comp.root_mod.resolved_target.is_explicit_dynamic_linker)) + { +diff --git a/src/main.zig b/src/main.zig +index 02b1b8f84b..ddc4ae8014 100644 +--- a/src/main.zig ++++ b/src/main.zig +@@ -3910,7 +3910,7 @@ fn createModule( + create_module.want_native_include_dirs = true; + } + +- if (create_module.each_lib_rpath orelse resolved_target.is_native_os) { ++ if (create_module.each_lib_rpath orelse false) { + try create_module.rpath_list.ensureUnusedCapacity(arena, create_module.lib_directories.items.len); + for (create_module.lib_directories.items) |lib_directory| { + create_module.rpath_list.appendAssumeCapacity(lib_directory.path.?); +@@ -3982,6 +3982,28 @@ fn createModule( + else => {}, + }; + ++ if (std.zig.system.NativePaths.isGuix(arena)) { ++ for (create_module.link_inputs.items) |link_input| { ++ if (link_input.path()) |lib| { ++ const lib_name = lib.sub_path; ++ if (Compilation.classifyFileExt(lib_name) == .shared_library) { ++ if (fs.path.isAbsolute(lib_name)) { ++ const lib_dir_path = fs.path.dirname(lib_name).?; ++ try create_module.rpath_list.append(arena, lib_dir_path); ++ continue; ++ } ++ for (create_module.lib_directories.items) |lib_dir| { ++ const lib_dir_path = lib_dir.path.?; ++ if (try libPathExists(arena, lib_dir_path, lib_name)) { ++ try create_module.rpath_list.append(arena, lib_dir_path); ++ break; ++ } ++ } ++ } ++ } ++ } ++ } ++ + create_module.resolved_options = Compilation.Config.resolve(create_module.opts) catch |err| switch (err) { + error.WasiExecModelRequiresWasi => fatal("only WASI OS targets support execution model", .{}), + error.SharedMemoryIsWasmOnly => fatal("only WebAssembly CPU targets support shared memory", .{}), +@@ -7633,3 +7655,13 @@ fn addLibDirectoryWarn2( + .path = path, + }); + } ++ ++fn libPathExists(arena: Allocator, lib_dir_path: []const u8, lib_name: []const u8) !bool { ++ const lib_path = try std.fmt.allocPrint(arena, "{s}{s}{s}", .{ ++ lib_dir_path, ++ fs.path.sep_str, ++ lib_name, ++ }); ++ fs.cwd().access(lib_path, .{}) catch return false; ++ return true; ++} +-- +2.50.1 + diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm index a77b204fe2..82484d652d 100644 --- a/gnu/packages/zig.scm +++ b/gnu/packages/zig.scm @@ -2004,4 +2004,72 @@ toolchain. Among other features it provides (modify-inputs (package-native-inputs base) (replace "zig" `(,base "out"))))))) +(define zig-0.15-libc-abi-tools + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ziglang/libc-abi-tools") + (commit "21993a6036cc165485b20229589340dff9d4fc3c"))) + (file-name "libc-abi-tools") + (sha256 + (base32 "0miwb0zfgfmm4bh2bs7982wpk0wp5vj2mz10x9c3m8fw7zzcyvbh")) + (modules '((guix build utils))) + (snippet + #~(substitute* "netbsd/consolidate.zig" + ((".write_buffer = buffer") ".write_buffer = &buffer"))))) + +(define-public zig-0.15 + (package + (inherit zig-0.14) + (name "zig") + (version "0.15.1") + (source + (origin + (inherit (zig-source + version version + "1cp18plf0x5wip4rnxiqavaqnqxnqzhipb34in6zd3y7wihwjmj4")) + (patches + (search-patches + "zig-0.14-use-baseline-cpu-by-default.patch" + "zig-0.14-use-system-paths.patch" + "zig-0.15-fix-runpath.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments zig-0.14) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (delete 'install-glibc-abilists) + ;; TODO: Remove newly-added abilists files in zig-source. + (add-before 'check 'install-abilists + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (mkdir-p "/tmp/libc-abi-tools") + (with-directory-excursion "/tmp/libc-abi-tools" + (copy-recursively + (dirname (search-input-file + (or native-inputs inputs) "list.zig")) + ".") + (for-each make-file-writable (find-files ".")) + (for-each + (lambda (libc) + (with-directory-excursion libc + (invoke (string-append #$output "/bin/zig") + "run" "consolidate.zig") + (install-file + "abilists" + (string-append #$output "/lib/zig/libc/" libc)))) + '("freebsd" + "glibc" + "netbsd"))))))))) + (inputs + (modify-inputs (package-inputs zig-0.14) + (replace "clang" clang-20) + (replace "lld" lld-20))) + (native-inputs + (modify-inputs (package-native-inputs zig-0.14) + (delete "glibc-abi-tool") + (prepend zig-0.15-libc-abi-tools) + (replace "llvm" llvm-20) + (replace "zig" `(,zig-0.14.0-1197 "zig1")))) + (properties `((max-silent-time . 9600) + ,@(clang-compiler-cpu-architectures "20"))))) + (define-public zig zig-0.13) |