From patchwork Thu Feb 13 02:55:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "pelzflorian (Florian Pelz)" X-Patchwork-Id: 38526 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 637D527BBE2; Thu, 13 Feb 2025 02:56:27 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 851A027BBE9 for ; Thu, 13 Feb 2025 02:56:23 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tiPOX-0002su-46; Wed, 12 Feb 2025 21:56:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tiPOW-0002sO-9k for guix-patches@gnu.org; Wed, 12 Feb 2025 21:56:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tiPOV-0001yl-VK for guix-patches@gnu.org; Wed, 12 Feb 2025 21:56:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=JepmIc1qzcB/0p6rQ29fbE3QrvywR2MG8YRk7OvjPDk=; b=X2xIdxoiXi5lT9+ERo/uHxFHoZ9XM8UsgOA4ouik4EF0MN/rOCFfGr+hXQJrrBXf3G3h553ETMsBmxfPKEvlMVeGpklVC4UylFVNB1J7IzpozDiftBuR5J1wIsm808PtVr2r8yCVOIq+ejV7jKESr1X+WrytzwdPjBv/TYhqlIa0++je8ZR0zbfoo0ksTjSnwpWS8/TZBuMj1wQfN6dmDZNBiUPbRiycJifMLiNmWIGEk0OjbDXH68DcKihlKSfShZReswhpBTdACbaNjY1MZhUp/6LFZ3u9xr6ON6SCDcsBh7gRyf+wyZoYISuLZJyNIsPBOoM0paWjuQepQ947+g==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tiPOU-0007TA-LR; Wed, 12 Feb 2025 21:56:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#76246] [PATCH 1/2] gnu: Add guile-cairo-next. Resent-From: Florian Pelz Original-Sender: "Debbugs-submit" Resent-CC: liliana.prikler@gmail.com, maxim.cournoyer@gmail.com, vivien@planete-kraus.eu, guix-patches@gnu.org Resent-Date: Thu, 13 Feb 2025 02:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 76246 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 76246@debbugs.gnu.org Cc: "pelzflorian \(Florian Pelz\)" , Liliana Marie Prikler , Maxim Cournoyer , Vivien Kraus X-Debbugs-Original-Xcc: Liliana Marie Prikler , Maxim Cournoyer , Vivien Kraus Received: via spool by 76246-submit@debbugs.gnu.org id=B76246.173941535428686 (code B ref 76246); Thu, 13 Feb 2025 02:56:02 +0000 Received: (at 76246) by debbugs.gnu.org; 13 Feb 2025 02:55:54 +0000 Received: from localhost ([127.0.0.1]:39223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tiPOF-0007SQ-34 for submit@debbugs.gnu.org; Wed, 12 Feb 2025 21:55:53 -0500 Received: from relay.yourmailgateway.de ([188.68.61.103]:35543) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tiPO8-0007S7-OA for 76246@debbugs.gnu.org; Wed, 12 Feb 2025 21:55:44 -0500 Received: from mors-relay-8403.netcup.net (localhost [127.0.0.1]) by mors-relay-8403.netcup.net (Postfix) with ESMTPS id 4Ytftz1dhpz86Vq for <76246@debbugs.gnu.org>; Thu, 13 Feb 2025 03:55:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=pelzflorian.de; s=key2; t=1739415339; bh=7mUs4S0BwYipfogIYZY4I/3WB1lTJItPmK6U0oN3gZ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BHaP8q+ljkHI1JJLBX5NWIJJr5wd5ejq9Vfkc1e5KsEbHq8P2B8D2z3edvbmn6z5a CN+xtPJqhLJYJFWKSo9zphWYk8EuuYZbi88iohxrMzk2DArgWklfdpqAd/9wU8SKtG 8AkEeYd7TRRDd8mR0FUNthB1/h77VSLzcou69/q/TeV0priOEe3Tp1IUeNDoB1pU6c AhHxXerDc7wj7C7TNuI63FI7dwoFmcAQEUpvfcOhDaH2oehJn8z2QcclcEQmvXuicK uCCWmppz6R2kOaMq9kV5E8fVz5Fh/3Pktdus5F0/4kgbugEP1t8BL0QcEER+ki5DsI j/qYuUez2Dyww== Received: from policy01-mors.netcup.net (unknown [46.38.225.35]) by mors-relay-8403.netcup.net (Postfix) with ESMTPS id 4Ytftz1FBrz86V8 for <76246@debbugs.gnu.org>; Thu, 13 Feb 2025 03:55:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at policy01-mors.netcup.net Received: from mxe217.netcup.net (unknown [10.243.12.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by policy01-mors.netcup.net (Postfix) with ESMTPS id 4Ytftv28qKz8tXN for <76246@debbugs.gnu.org>; Thu, 13 Feb 2025 03:55:35 +0100 (CET) Received: from florianhp.fritz.box (ipb21a5dbf.dynamic.kabel-deutschland.de [178.26.93.191]) by mxe217.netcup.net (Postfix) with ESMTPSA id D2ED884497; Thu, 13 Feb 2025 03:55:29 +0100 (CET) From: Florian Pelz Date: Thu, 13 Feb 2025 03:55:11 +0100 Message-ID: <315e4d5e141cc2cade7b65bd0b6d5ed28a41184d.1739413638.git.pelzflorian@pelzflorian.de> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: MIME-Version: 1.0 X-Rspamd-Queue-Id: D2ED884497 X-Rspamd-Server: rspamd-worker-8404 X-NC-CID: QfK82CWzB218ZFL15cCbAKNbAltpeeJuDa4X0WsBlvTyjsv0lVabqLbd X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From: "pelzflorian (Florian Pelz)" * gnu/packages/patches/guile-cairo-fix-make-check.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register patch. * gnu/packages/gtk.scm (guile-cairo-next): New variable. Change-Id: I328afe58d46e60243e075edead12afc0d1c4a98a --- gnu/local.mk | 1 + gnu/packages/gtk.scm | 23 ++ .../patches/guile-cairo-fix-make-check.patch | 352 ++++++++++++++++++ 3 files changed, 376 insertions(+) create mode 100644 gnu/packages/patches/guile-cairo-fix-make-check.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9e192f1e4f..70cc51152f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1535,6 +1535,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-3.0-linux-syscalls.patch \ %D%/packages/patches/guile-ac-d-bus-fix-tests.patch \ + %D%/packages/patches/guile-cairo-fix-make-check.patch \ %D%/packages/patches/guile-lib-fix-tests-for-guile2.2.patch \ %D%/packages/patches/guile-fibers-cross-build-fix.patch \ %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 7ed7d7b7df..4d2356d8cf 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen ;;; Copyright © 2024 John Kehayias +;;; Copyright © 2025 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -1495,6 +1496,28 @@ (define-public guile2.2-cairo ,@(fold alist-delete (package-inputs guile-cairo) '("guile" "guile-lib")))))) +(define-public guile-cairo-next + (package + (inherit guile-cairo) + (name "guile-cairo-next") + ;; A commit with cairo-pointer->context, missing from guile-cairo@1.11.2 + ;; and needed by animated-paintable from g-golf-gtk-4-examples. + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.nongnu.org/guile-cairo.git") + (commit "30da459d7a4380174ff243b1560d5512a4bca86e"))) + (sha256 + (base32 + "0dslfldzgxis8g0g3xaffcqnd1njzz23fjy0v3lc0r2694ra4ny4")) + ;; A patch to allow running the check phase before install. + (patches (search-patches "guile-cairo-fix-make-check.patch")) + (file-name (string-append "guile-cairo-next")))) + (inputs + (list guile-lib guile-3.0 gettext-minimal)) + (native-inputs + (list autoconf-2.71 automake libtool pkg-config texinfo)))) + (define-public guile-rsvg ;; Use a recent snapshot that supports Guile 2.2 and beyond. (let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678") diff --git a/gnu/packages/patches/guile-cairo-fix-make-check.patch b/gnu/packages/patches/guile-cairo-fix-make-check.patch new file mode 100644 index 0000000000..d14de7717e --- /dev/null +++ b/gnu/packages/patches/guile-cairo-fix-make-check.patch @@ -0,0 +1,352 @@ +From 1de7b5e994fd99e20849d9372963c2aadf782ed1 Mon Sep 17 00:00:00 2001 +From: David Pirotte +Date: Tue, 21 Mar 2023 01:54:04 -0300 +Subject: [PATCH] Fixing make check and make distcheck + + Notes: the main goal of this patch is to remove the hard coded + libguile-cairo path, which makes it impossible to run 'make check', + unless you actualy first install the version you are working + on/checking [which is 'none sense']. + + Also, even with the above problem fixed, there were still a few + nitpick things to solve so that make distcheck pass. + + Finally, while workig on this patch, I also made a few cosmetic + changes, mostly adding a space before and after '=' in Makefile.am + targets, as well as having each filename on its own line for targets + that requires filenames. Those changes are not commented here below. + +* Makefile.am: (1) removing the env target, as we update env.in + this is not only not necessary anymore, but would actually + raise an error; (2) the CLEANFILES target misses $(GOBJECTS); + (3) using $(AM_V_GEN) in .scm.go target; (4) the EXTRA_DIST + target misses $(SOURCES), and does not need to ship autogen.sh + nor build-aux/git-version-gen. + +* cairo.scm: Call (dynamic-link "libguile-cairo"), + not (dynamic-link *cairo-lib-path*). + +* cairo/Makefile.am: (1) using $(AM_V_GEN) in .scm.go target; (2) in the + config.scm target, removing the @cairolibpath@ substitution; (3) the + EXTRA_DIST target misses vector-types.scm and $(NOCOMP_SOURCES). + +* cairo/config.scm.in: Removing the *cairo-lib-path* definition. + +* env.in: (1) define and use abs_top_srcdir and abs_top_builddir; (2) + define and export GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH and + LTDL_LIBRARY_PATH. + +* tests/unit-tests/Makefile.am: (1) add context-pointer.scm to the TESTS + target; (2) add a TEST_EXTENSIONS = .scm target; (3) update the + TESTS_ENVIRONMENT to use $(abs_top_builddir); (4) remove the %.check + target (unecessary in 'modern' autotools). +--- + Makefile.am | 26 ++++++++----- + cairo.scm | 4 +- + cairo/Makefile.am | 30 ++++++++++----- + cairo/config.scm.in | 8 ++-- + env.in | 75 +++++++++++++++++++++++++++++++++--- + tests/unit-tests/Makefile.am | 21 +++++----- + 6 files changed, 125 insertions(+), 39 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 82e41b2..514b758 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,5 +1,6 @@ + # guile-cairo + # Copyright (C) 2007,2011 Andy Wingo ++# Copyright (C) 2023 David Pirotte + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU Lesser General Public License as +@@ -15,18 +16,20 @@ + # License along with this program. If not, see + # . + +-SUBDIRS = guile-cairo cairo examples tests doc +- +-env: Makefile env.in +- sed -e "s|@top_srcdir\@|$(shell cd $(top_srcdir) && pwd)|" \ +- $(srcdir)/env.in > env +- chmod +x env ++SUBDIRS = \ ++ guile-cairo \ ++ cairo \ ++ examples \ ++ tests \ ++ doc + + BUILT_SOURCES = env + + ACLOCAL_AMFLAGS = -I m4 + +-CLEANFILES = env ++CLEANFILES = \ ++ env \ ++ $(GOBJECTS) + + GOBJECTS = $(SOURCES:%.scm=%.go) + +@@ -39,7 +42,8 @@ nobase_nodist_obj_DATA = $(GOBJECTS) + GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat + SUFFIXES = .scm .go + .scm.go: +- $(top_builddir)/env $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<" ++ $(AM_V_GEN) $(top_builddir)/env \ ++ $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<" + + SOURCES = cairo.scm + +@@ -58,4 +62,8 @@ gen-ChangeLog: + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi + +-EXTRA_DIST = env.in autogen.sh build-aux/git-version-gen HACKING COPYING.LESSER $(scm_DATA) ++EXTRA_DIST = \ ++ env.in \ ++ HACKING \ ++ COPYING.LESSER \ ++ $(SOURCES) +diff --git a/cairo.scm b/cairo.scm +index 1361d85..2cb2793 100644 +--- a/cairo.scm ++++ b/cairo.scm +@@ -1,5 +1,6 @@ + ;; guile-cairo + ;; Copyright (C) 2007, 2011 Andy Wingo ++;; Copyright (C) 2023 David Pirotte + + ;; This program is free software; you can redistribute it and/or modify + ;; it under the terms of the GNU Lesser General Public License as +@@ -31,9 +32,10 @@ + (module-use! (module-public-interface (current-module)) + (resolve-interface '(cairo vector-types))) + ++ + ;; This will export many things + (dynamic-call "scm_init_cairo" +- (dynamic-link *cairo-lib-path*)) ++ (dynamic-link "libguile-cairo")) + + (if (not (member *cairo-documentation-path* documentation-files)) + (set! documentation-files (cons *cairo-documentation-path* +diff --git a/cairo/Makefile.am b/cairo/Makefile.am +index 05b5973..0299d34 100644 +--- a/cairo/Makefile.am ++++ b/cairo/Makefile.am +@@ -1,5 +1,6 @@ + # guile-cairo + # Copyright (C) 2007,2011 Andy Wingo ++# Copyright (C) 2023 David Pirotte + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU Lesser General Public License as +@@ -15,11 +16,15 @@ + # License along with this program. If not, see + # . + +-moddir=$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)/cairo +-objdir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache/cairo ++moddir = $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)/cairo ++objdir = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache/cairo + +-SOURCES = config.scm vector-types.scm +-NOCOMP_SOURCES = cairo-procedures.txt ++SOURCES = \ ++ config.scm \ ++ vector-types.scm ++ ++NOCOMP_SOURCES = \ ++ cairo-procedures.txt + + GOBJECTS = $(SOURCES:%.scm=%.go) + +@@ -29,12 +34,12 @@ nobase_nodist_obj_DATA = $(GOBJECTS) + GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat + SUFFIXES = .scm .go + .scm.go: +- $(top_builddir)/env $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<" ++ $(AM_V_GEN) $(top_builddir)/env \ ++ $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<" + + config.scm: Makefile config.scm.in +- sed -e "s|@cairolibpath\@|$(libdir)/libguile-cairo|" \ +- -e "s|@cairodocumentationpath\@|$(moddir)/cairo-procedures.txt|" \ +- $(srcdir)/config.scm.in > config.scm ++ sed -e "s|\@cairodocumentationpath\@|$(moddir)/cairo-procedures.txt|" \ ++ $(srcdir)/config.scm.in > config.scm + + cairo-procedures.txt.update: + echo "Generated from upstream documentation; see COPYING.docs for info." \ +@@ -42,6 +47,11 @@ cairo-procedures.txt.update: + $(top_srcdir)/doc/docbook-to-guile-doc $(CAIRO_XML_DIR)/*.xml \ + >> $(srcdir)/cairo-procedures.txt + +-CLEANFILES = config.scm $(GOBJECTS) ++CLEANFILES = \ ++ config.scm \ ++ $(GOBJECTS) + +-EXTRA_DIST = config.scm.in ++EXTRA_DIST = \ ++ config.scm.in \ ++ vector-types.scm \ ++ $(NOCOMP_SOURCES) +diff --git a/cairo/config.scm.in b/cairo/config.scm.in +index ab008fb..92895b9 100644 +--- a/cairo/config.scm.in ++++ b/cairo/config.scm.in +@@ -1,5 +1,6 @@ + ;; guile-cairo + ;; Copyright (C) 2007, 2011 Andy Wingo ++;; Copyright (C) 2023 David Pirotte + + ;; This program is free software; you can redistribute it and/or modify + ;; it under the terms of the GNU Lesser General Public License as +@@ -22,8 +23,7 @@ + ;;; Code: + + (define-module (cairo config) +- :export (*cairo-lib-path* +- *cairo-documentation-path*)) ++ :export (*cairo-documentation-path*)) + +-(define *cairo-lib-path* "@cairolibpath@") +-(define *cairo-documentation-path* "@cairodocumentationpath@") ++(define *cairo-documentation-path* ++ "@cairodocumentationpath@") +diff --git a/env.in b/env.in +index eb9d020..e93d212 100644 +--- a/env.in ++++ b/env.in +@@ -2,6 +2,7 @@ + + # guile-cairo + # Copyright (C) 2007,2011 Andy Wingo ++# Copyright (C) 2023 David Pirotte + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU Lesser General Public License as +@@ -17,15 +18,77 @@ + # License along with this program. If not, see + # . + +-this_dir=$(cd $(dirname $0) && pwd) +-src_dir="@top_srcdir@" + +-if [ "$src_dir" != "$this_dir" ]; then +- GUILE_LOAD_PATH=$src_dir/$pkg:$this_dir/$pkg:$GUILE_LOAD_PATH ++abs_top_srcdir="@abs_top_srcdir@" ++abs_top_builddir="@abs_top_builddir@" ++ ++[ x"$abs_top_srcdir" = x -o ! -d "$abs_top_srcdir" -o \ ++ x"$abs_top_builddir" = x -o ! -d "$abs_top_builddir" ] && { ++ echo $0: bad environment ++ echo abs_top_srcdir=$abs_top_srcdir ++ echo abs_top_builddir=$abs_top_builddir ++ exit 1 ++} ++ ++ ++### ++### GUILE_LOAD_PATH ++### ++ ++if [ x"$GUILE_LOAD_PATH" = x ] ++then ++ GUILE_LOAD_PATH="${abs_top_srcdir}" ++ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then ++ GUILE_LOAD_PATH="${abs_top_builddir}:$GUILE_LOAD_PATH" ++ fi + else +- GUILE_LOAD_PATH=$this_dir/$pkg:$GUILE_LOAD_PATH ++ GUILE_LOAD_PATH="${abs_top_srcdir}:$GUILE_LOAD_PATH" ++ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then ++ GUILE_LOAD_PATH="${abs_top_builddir}:$GUILE_LOAD_PATH" ++ fi + fi +- ++## echo $GUILE_LOAD_PATH + export GUILE_LOAD_PATH + ++ ++### ++### GUILE_LOAD_COMPILED_PATH ++### ++ ++if [ x"$GUILE_LOAD_COMPILED_PATH" = x ] ++then ++ GUILE_LOAD_COMPILED_PATH="${abs_top_srcdir}" ++ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then ++ GUILE_LOAD_COMPILED_PATH="${abs_top_builddir}:$GUILE_LOAD_COMPILED_PATH" ++ fi ++else ++ GUILE_LOAD_COMPILED_PATH="${abs_top_srcdir}:$GUILE_LOAD_COMPILED_PATH" ++ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then ++ GUILE_LOAD_COMPILED_PATH="${abs_top_builddir}:$GUILE_LOAD_COMPILED_PATH" ++ fi ++fi ++ ++## echo $GUILE_LOAD_COMPILED_PATH ++export GUILE_LOAD_COMPILED_PATH ++ ++ ++### ++### LTDL_LIBRARY_PATH ++### ++ ++if [ x"$LTDL_LIBRARY_PATH" = x ] ++then ++ LTDL_LIBRARY_PATH="${abs_top_srcdir}/guile-cairo:${abs_top_srcdir}/guile-cairo/.libs" ++ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then ++ LTDL_LIBRARY_PATH="${abs_top_builddir}/guile-cairo:${abs_top_builddir}/guile-cairo/.libs:$LTDL_LIBRARY_PATH" ++ fi ++else ++ LTDL_LIBRARY_PATH="${abs_top_srcdir}/guile-cairo:${abs_top_srcdir}/guile-cairo/.libs:$LTDL_LIBRARY_PATH" ++ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then ++ LTDL_LIBRARY_PATH="${abs_top_builddir}/guile-cairo:${abs_top_builddir}/guile-cairo/.libs:$LTDL_LIBRARY_PATH" ++ fi ++fi ++## echo $LTDL_LIBRARY_PATH ++export LTDL_LIBRARY_PATH ++ + exec "$@" +diff --git a/tests/unit-tests/Makefile.am b/tests/unit-tests/Makefile.am +index 3ba6af9..9b13bbd 100644 +--- a/tests/unit-tests/Makefile.am ++++ b/tests/unit-tests/Makefile.am +@@ -16,18 +16,21 @@ + # License along with this program. If not, see + # . + +-TESTS= \ +- context-pointer.scm \ ++TESTS = \ + api-stability.scm \ ++ context-pointer.scm \ + version.scm + +-TESTS_ENVIRONMENT=\ +- API_FILE=$(srcdir)/cairo.api $(top_builddir)/env guile -s ++TEST_EXTENSIONS = .scm + +-%.api.update: +- $(top_builddir)/env $(srcdir)/update-api $(subst ., ,$*) > $(srcdir)/$*.api ++TESTS_ENVIRONMENT = \ ++ API_FILE=$(srcdir)/cairo.api \ ++ $(abs_top_builddir)/env $(GUILE) --no-auto-compile + +-%.check: % +- $(TESTS_ENVIRONMENT) $* ++%.api.update: ++ $(abs_top_builddir)/env \ ++ $(srcdir)/update-api $(subst ., ,$*) > $(srcdir)/$*.api + +-EXTRA_DIST=$(TESTS) cairo.api ++EXTRA_DIST = \ ++ $(TESTS) \ ++ cairo.api +-- +2.39.2 + From patchwork Thu Feb 13 02:55:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "pelzflorian (Florian Pelz)" X-Patchwork-Id: 38527 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id E729027BBEA; Thu, 13 Feb 2025 02:57:15 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 510F127BBE2 for ; Thu, 13 Feb 2025 02:57:15 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tiPPW-00034c-EE; Wed, 12 Feb 2025 21:57:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tiPPU-000348-63 for guix-patches@gnu.org; Wed, 12 Feb 2025 21:57:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tiPPS-00025s-L7 for guix-patches@gnu.org; Wed, 12 Feb 2025 21:57:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=Fbq1SFlqn1haCKJBAcpG3vggxHRLZIkxIS3Izcve1lU=; b=LcAVTXZr55tBkIOzuGjxd2R7iIsTUJTKtjhUToeJUO/Jp9KhYrGFCrUg87dRh1xG0lLpyxLU3Ml4ef7pMJ7durc5dCiUdG0DVbXXn15F8nmho7rECZvt0DzcvEdr3V2jia5RW0JuV9fu1G6Vq+7e/zVdbnRLbJkvOVqpRimN02+Fmt1ZefDhj2C9E1qo/9iBU5VoyFIk0BYXLx/oxPUw0ULv/cKEugtWEYo/VG39j44flUP2nyZ8Ioi2tv5Eh34r1U7L1/qYGhFfi1zMpDkejzPPh+gwmXtpDl0owM8mh+Yert898d8H5qnvFTcAMp/ihNo+pNPStwAhbh/2F/H80A==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tiPPS-0007Vq-F3 for guix-patches@gnu.org; Wed, 12 Feb 2025 21:57:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#76246] [PATCH 2/2] UNFINISHED gnu: Add G-Golf's GTK-4 examples. Resent-From: Florian Pelz Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 13 Feb 2025 02:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 76246 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 76246@debbugs.gnu.org Cc: "pelzflorian \(Florian Pelz\)" Received: via spool by 76246-submit@debbugs.gnu.org id=B76246.173941536928786 (code B ref 76246); Thu, 13 Feb 2025 02:57:02 +0000 Received: (at 76246) by debbugs.gnu.org; 13 Feb 2025 02:56:09 +0000 Received: from localhost ([127.0.0.1]:39236 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tiPOb-0007UB-7t for submit@debbugs.gnu.org; Wed, 12 Feb 2025 21:56:09 -0500 Received: from relay.yourmailgateway.de ([188.68.63.162]:48231) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tiPOY-0007To-H2 for 76246@debbugs.gnu.org; Wed, 12 Feb 2025 21:56:07 -0500 Received: from mors-relay-8201.netcup.net (localhost [127.0.0.1]) by mors-relay-8201.netcup.net (Postfix) with ESMTPS id 4YtfvR4CDrz41FZ for <76246@debbugs.gnu.org>; Thu, 13 Feb 2025 03:56:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=pelzflorian.de; s=key2; t=1739415363; bh=f/sPQRP1Yy60d1wKkmth7nwYAI8cGewBpbUMOQYousk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZkelmBPBnt96ct4WMVdEanXoiLsybVhueZyrico6oD/iwI3RnKIa1IaPqk/Ua65Hn 3m5AFhlR78+kZ/PaMgRz9EC1kWW8ZKZpSEdU+CZb2fgkFVVa7jWV4zwEpY/6XiIPxt VmfeNLQg0Gozghpe3Nt1tCoCdC/qyu55KB0rJRioQ8ZSOyzRWVSXGTu0kf+NkS3IEu xg/TDCw3YYXzTnKmYuGlj0hIFdV6KzoGFkdxYkUagTvDnjOeUzTlNum/qf4zXIHe/r VyFEncy6IZrervU99jEdLuoYtslSS57sSJznkv+PDMc+uhz/gES+Uv8Gc4C0KpHDtg LRpiZLrU317SA== Received: from policy01-mors.netcup.net (unknown [46.38.225.35]) by mors-relay-8201.netcup.net (Postfix) with ESMTPS id 4YtfvR3VfMz41FN for <76246@debbugs.gnu.org>; Thu, 13 Feb 2025 03:56:03 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at policy01-mors.netcup.net Received: from mxe217.netcup.net (unknown [10.243.12.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by policy01-mors.netcup.net (Postfix) with ESMTPS id 4YtfvQ6ljnz8tX7 for <76246@debbugs.gnu.org>; Thu, 13 Feb 2025 03:56:02 +0100 (CET) Received: from florianhp.fritz.box (ipb21a5dbf.dynamic.kabel-deutschland.de [178.26.93.191]) by mxe217.netcup.net (Postfix) with ESMTPSA id BC4E384497; Thu, 13 Feb 2025 03:55:56 +0100 (CET) From: Florian Pelz Date: Thu, 13 Feb 2025 03:55:13 +0100 Message-ID: <3e44e34b7a32f6c1adad22ab36c303e93226f320.1739413638.git.pelzflorian@pelzflorian.de> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: MIME-Version: 1.0 X-Rspamd-Queue-Id: BC4E384497 X-Rspamd-Server: rspamd-worker-8404 X-NC-CID: IM7YA0ygdgAB2QGxdtQdpubiI+z2/zOO2IoXt026ulzJdOjjHNNzACbq X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From: "pelzflorian (Florian Pelz)" * gnu/packages/guile-xyz.scm (g-golf-gtk-4-examples): New variable. Change-Id: I19b182eb71095ca2deacdb4011c8f50dfcfc8476 --- gnu/packages/guile-xyz.scm | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 92d5d90194..520d1b9f87 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -53,6 +53,7 @@ ;;; Copyright © 2024 Alec Barreto ;;; Copyright © 2024 Josep Bigorra ;;; Copyright © 2024 Ashish SHUKLA +;;; Copyright © 2025 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -2618,6 +2619,78 @@ (define-public guile2.2-g-golf (replace "guile" guile-2.2) (replace "guile-lib" guile2.2-lib))))) +(define-public g-golf-gtk-4-examples + (package + (inherit guile-g-golf) + (name "g-golf-gtk-4-examples") + (arguments + (list + #:modules `(((guix build guile-build-system) + #:select + (target-guile-effective-version)) + ,@%default-gnu-modules) + #:tests? #f ;there are no tests for examples + ;; XXX: Maybe Guix should ship a reftest on its own? + #:phases + (with-imported-modules `((guix build guile-build-system) + ,@%default-gnu-imported-modules) + #~(modify-phases %standard-phases + (add-after 'unpack 'prepare-examples + (lambda _ + (chdir "examples/gtk-4") + ;; Re-use the existing Makefile for its wildcard syntax. + (rename-file "Makefile.am" "Makefile") + ;; Add a rule to install the examples. This also + ;; installs UI, CSS and Scheme files to /bin, but + ;; better keep how G-Golf packages them. + (let ((port (open-file "Makefile" "al"))) + (format port " +prefix = ~a +bindir = $(prefix)/bin +.PHONY: install +install: + mkdir -p $(bindir) + for f in $(EXTRA_DIST); do \\ + install $$f $(bindir); \\ + done +" #$output) + (close-port port)))) + (delete 'configure) + (add-after 'install 'wrap-binaries + (lambda* (#:key inputs #:allow-other-keys) + (let* ((version (target-guile-effective-version)) + (g-golf (assoc-ref inputs "guile-g-golf")) + (scm (string-append "/share/guile/site/" version)) + (go (string-append "/lib/guile/" + version "/site-ccache")) + (binaries + (find-files "." (lambda (file stat) ;only executables + (= (stat:perms stat) #o755))))) + (map (lambda (binary) + ;; The `current-filename' calls in examples are broken. + (system* "sed" "-i" "s/(add-to-load-path.*//g" binary) + ;;TODO DOES NOT WORK (substitute* binary + ;; (("add-to-load-path.*") + ;; "")) DOES NOT WORK NEITHER + (wrap-program (string-append #$output "/bin/" binary) + `("GUILE_LOAD_PATH" prefix + (,(string-append g-golf scm) + ));,(string-append #$output "/bin"))) ;not nice, + ; ;but better than `add-to-load-path' + `("GUILE_LOAD_COMPILED_PATH" prefix + (,(string-append g-golf go))) + `("GI_TYPELIB_PATH" prefix + (,(getenv "GI_TYPELIB_PATH"))))) + binaries)))))))) + (inputs + (list bash-minimal gtk guile-3.0 guile-cairo-next guile-g-golf)) + (native-inputs (list)) + (propagated-inputs (list)) + (synopsis "Example GTK apps written in Guile with G-Golf") + (description + "Example applications to show what can be done in G-Golf and how to wrap +the applications in a Guix package."))) + (define-public g-wrap (package (name "g-wrap")