unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#68001] [PATCH] gnu: Add pacman.
@ 2023-12-24  2:16 Justin Veilleux
  0 siblings, 0 replies; only message in thread
From: Justin Veilleux @ 2023-12-24  2:16 UTC (permalink / raw)
  To: 68001

[-- Attachment #1: Type: text/plain, Size: 297 bytes --]


This is a patch to add arch linux's pacman package manager to guix. I
was experimenting with having pacman as a package manager for regular
FHS programs (on a guix system host), but there were too many dynamic
library problems.

In any case, the package manager itself works perfectly.

Cheers.


[-- Attachment #2: 0001-gnu-Add-pacman.patch --]
[-- Type: text/x-patch, Size: 4860 bytes --]

From 5d3be174c4e7fbd1db05f73147e1da2f17b6deb2 Mon Sep 17 00:00:00 2001
Message-ID: <5d3be174c4e7fbd1db05f73147e1da2f17b6deb2.1703383755.git.terramorpha@cock.li>
From: terramorpha <terramorpha@cock.li>
Date: Sat, 23 Dec 2023 21:07:55 -0500
Subject: [PATCH] gnu: Add pacman.

* gnu/packages/package-management.scm (pacman): New variable.

Change-Id: I2cedb84fc648ee5c4c07bee8bfb516861ffc1c22
---
 gnu/packages/package-management.scm           | 46 ++++++++++++++++++
 .../patches/pacman-fix-meson-build.diff       | 48 +++++++++++++++++++
 2 files changed, 94 insertions(+)
 create mode 100644 gnu/packages/patches/pacman-fix-meson-build.diff

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 97ea41df66..4d9b5f666f 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2022, 2023 Zhu Zihao <all_but_last@163.com>
 ;;; Copyright © 2023 jgart <jgart@dismail.de>
 ;;; Copyright © 2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2023 Justin Veilleux <terramorpha@cock.li>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,6 +67,7 @@ (define-module (gnu packages package-management)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages flex)
@@ -2326,3 +2328,47 @@ (define-public modules
 used on high-performance clusters to dynamically add and remove paths
 to specific versions of applications.")
     (license license:gpl2+)))
+
+(define-public pacman
+  (package
+   (name "pacman")
+   (version "6.0.2")
+   (source (origin
+            (method git-fetch)
+            (uri
+             (git-reference
+              (url "https://gitlab.archlinux.org/pacman/pacman.git")
+              (commit (string-append "v" version))))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "0yxh6kljy19bc4wiphss3jq2nv7h3hw6vnrwbway5kbyqhbahx7p"))
+            (patches
+             (list
+              (search-patch "pacman-fix-meson-build.diff")))))
+   (build-system meson-build-system)
+   (arguments
+    (list
+     #:tests? #f))
+(inputs
+    (list
+     curl
+     libarchive
+     gpgme
+     openssl))
+   (native-inputs
+    (list
+     asciidoc
+     perl
+     python-3
+     gnu-gettext
+     coreutils
+     pkg-config))
+   (home-page "https://archlinux.org/pacman/")
+   (synopsis "Simple library-based package manager")
+   (description
+    "pacman is a utility which manages software packages in Linux.  It uses
+simple compressed files as a package format, and maintains a text-based
+package database (more of a hierarchy), just in case some hand tweaking is
+necessary.")
+   (license license:gpl2)))
diff --git a/gnu/packages/patches/pacman-fix-meson-build.diff b/gnu/packages/patches/pacman-fix-meson-build.diff
new file mode 100644
index 0000000000..47ce74739e
--- /dev/null
+++ b/gnu/packages/patches/pacman-fix-meson-build.diff
@@ -0,0 +1,48 @@
+diff --git a/doc/meson.build b/doc/meson.build
+index 5a8eb3a4..74ccf53e 100644
+--- a/doc/meson.build
++++ b/doc/meson.build
+@@ -100,7 +100,7 @@ foreach page: manpages + sitepages
+ endforeach
+ 
+ run_target('html',
+-           command : ['/bin/true'],
++           command : ['true'],
+            depends : html_targets)
+ 
+ custom_target(
+diff --git a/meson.build b/meson.build
+index 37523b01..6c568020 100644
+--- a/meson.build
++++ b/meson.build
+@@ -396,13 +396,13 @@ configure_file(
+   input : 'etc/makepkg.conf.in',
+   output : 'makepkg.conf',
+   configuration : substs,
+-  install_dir : SYSCONFDIR)
++  install_dir : join_paths(PREFIX, 'etc'))
+ 
+ configure_file(
+   input : 'etc/pacman.conf.in',
+   output : 'pacman.conf',
+   configuration : substs,
+-  install_dir : SYSCONFDIR)
++  install_dir : join_paths(PREFIX, 'etc'))
+ 
+ install_data(
+   'proto/PKGBUILD-split.proto',
+@@ -411,14 +411,6 @@ install_data(
+   'proto/proto.install',
+   install_dir : join_paths(DATAROOTDIR, 'pacman'))
+ 
+-foreach path : [
+-	join_paths(LOCALSTATEDIR, 'lib/pacman/'),
+-	join_paths(LOCALSTATEDIR, 'cache/pacman/pkg/'),
+-	join_paths(DATAROOTDIR, 'makepkg-template/'),
+-	join_paths(DATAROOTDIR, 'libalpm/hooks/'),
+-	]
+-	meson.add_install_script('sh', '-c', 'mkdir -p "$DESTDIR/@0@"'.format(path))
+-endforeach
+ 
+ TEST_ENV = environment()
+ TEST_ENV.set('PMTEST_SCRIPTLIB_DIR', join_paths(meson.source_root(), 'scripts/library/'))

base-commit: a8196632647b343f8e03c8f12fbdc0cc84ff90f6
-- 
2.41.0


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-24  2:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-24  2:16 [bug#68001] [PATCH] gnu: Add pacman Justin Veilleux

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).