Hey everyone! I am new to Guix, guile, make and trying to create a package.
I have a functioning patch, attached, but it is not writing to the correct location. Currently, it is writing to out/usr/local/, which makes sense, because I can see in the makefile for libpg_query the following on line 311 of its makefile: prefix = /usr/local libdir = $(prefix)/lib includedir = $(prefix)/include I know I need to change the prefix to be the guix out directory, but I am not sure how I can substitute these lines. As you can see in the patch I attached, I tried to set it as a build flag. However, this did not work. Any helpers on how to resolve this? :) Sincerely, Marc --- gnu/packages/libpg_query.scm | 63 ++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 gnu/packages/libpg_query.scm diff --git a/gnu/packages/libpg_query.scm b/gnu/packages/libpg_query.scm new file mode 100644 index 0000000000..353762554b --- /dev/null +++ b/gnu/packages/libpg_query.scm @@ -0,0 +1,63 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Marc Coquand <[email protected]> +;;; +;;; 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 libpg_query) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages commencement) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + ) + +(define-public libpg-query + (package + (name "libpg-query") + (version "16-5.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/pganalyze/libpg_query/archive/refs/tags/" + version ".tar.gz")) + (sha256 + (base32 "1xvdcnqxrvb90kcndxmspnm07p8clnq160rbfsy6djd17mbmpwii")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "build" (string-append "prefix=" (assoc-ref %outputs "out"))) + + #:phases (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-before 'build 'set-additional-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CC" "gcc"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (setenv "DESTDIR" + (string-append (assoc-ref %outputs "out") "/")) + (invoke "make" "install")))))) + (inputs (list tar which gcc-toolchain)) + (home-page "https://github.com/pganalyze/libpg_query") + (synopsis + "C library for accessing the PostgreSQL parser outside of the server environment") + (description + "C library for accessing the PostgreSQL parser outside of the server. This library uses the actual PostgreSQL server source to parse SQL queries and return the internal PostgreSQL parse tree.") + (license license:bsd-3))) base-commit: fdbf4192f5eaa7fdb5e6e2e98ada0726c8104824 -- 2.43.2
