guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: gnu: ibus-anthy: Prepare for tests.


From: guix-commits
Subject: 02/02: gnu: ibus-anthy: Prepare for tests.
Date: Wed, 14 Jun 2023 11:19:22 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit 4e60cbe5bbcf425442952de0e8eb6410e9304d1d
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Wed Jun 14 08:06:21 2023 -0400

    gnu: ibus-anthy: Prepare for tests.
    
    * gnu/packages/patches/ibus-anthy-fix-tests.patch: New patch.
    * gnu/packages/ibus.scm (ibus-anthy): Register it.
    * gnu/packages/ibus.scm (ibus-anthy) [source]: Apply patch.
    [arguments]: Clarify #:tests? comment.  Add a fix-check,
    do-not-override-GI_TYPELIB_PATH and prepare-for-tests phases.
    [native-inputs]: Add procps, python-pycotap, util-linux and
    xorg-server-for-tests.
---
 gnu/local.mk                                    |  1 +
 gnu/packages/ibus.scm                           | 38 +++++++++++++++++--
 gnu/packages/patches/ibus-anthy-fix-tests.patch | 49 +++++++++++++++++++++++++
 3 files changed, 85 insertions(+), 3 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 209556b56d..3d3e54406b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -897,6 +897,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/akonadi-not-relocatable.patch           \
   %D%/packages/patches/akonadi-timestamps.patch                \
   %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch     \
+  %D%/packages/patches/ibus-anthy-fix-tests.patch              \
   %D%/packages/patches/anki-mpv-args.patch                     \
   %D%/packages/patches/antiword-CVE-2014-8123.patch                    \
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch  \
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index d880956c56..e9294fab1e 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -59,10 +59,12 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages serialization)
@@ -348,18 +350,44 @@ Chinese pinyin input methods.")
                     version "/ibus-anthy-" version ".tar.gz"))
               (sha256
                (base32
-                "16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8"))))
+                "16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8"))
+              (patches (search-patches "ibus-anthy-fix-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
      (list
+      ;; The test suite hangs (see:
+      ;; https://github.com/ibus/ibus-anthy/issues/28).
+      #:tests? #f
       #:configure-flags
       ;; Use absolute exec path in the anthy.xml.
       #~(list (string-append "--libexecdir=" #$output "/libexec"))
       ;; The test suite fails (see:
       ;; https://github.com/ibus/ibus-anthy/issues/28).
-      #:tests? #f
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-check
+            (lambda _
+              (substitute* "data/Makefile.in"
+                ;; Use a year current at the time the release was made, to
+                ;; avoid the "This year 2023 is not included in era.y"
+                ;; error.
+                (("`date '\\+%Y'`")
+                 "2021"))))
+          (add-after 'unpack 'do-not-override-GI_TYPELIB_PATH
+            ;; Do not override the GI_TYPELIB_PATH to avoid the pygobject
+            ;; error: "ValueError: Namespace Gdk not available".
+            (lambda _
+              (substitute* "tests/test-build.sh"
+                (("GI_TYPELIB_PATH=\\$BUILDDIR/../gir" all)
+                 (string-append all ":$GI_TYPELIB_PATH")))))
+          (add-before 'check 'prepare-for-tests
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; IBus requires write access to the HOME directory.
+                (setenv "HOME" "/tmp")
+                ;; The single test is skipped if no actual display is found.
+                (system "Xvfb :1 &")
+                (setenv "DISPLAY" ":1"))))
           (add-after 'install 'wrap-programs
             (lambda* (#:key inputs #:allow-other-keys)
               (for-each
@@ -376,7 +404,11 @@ Chinese pinyin input methods.")
            `(,glib "bin")
            intltool
            pkg-config
-           python))
+           procps                       ;for ps
+           python
+           python-pycotap
+           util-linux                   ;for getopt
+           xorg-server-for-tests))
     (inputs
      (list anthy
            gtk+
diff --git a/gnu/packages/patches/ibus-anthy-fix-tests.patch 
b/gnu/packages/patches/ibus-anthy-fix-tests.patch
new file mode 100644
index 0000000000..6934358980
--- /dev/null
+++ b/gnu/packages/patches/ibus-anthy-fix-tests.patch
@@ -0,0 +1,49 @@
+Submitted upstream: https://github.com/ibus/ibus-anthy/pull/35
+
+diff --git a/tests/test-build.sh b/tests/test-build.sh
+index e83b78f..a0efe32 100755
+--- a/tests/test-build.sh
++++ b/tests/test-build.sh
+@@ -63,26 +63,27 @@ parse_args()
+     done;
+ }
+ 
++maybe_install_pycotap() {
++    # Check if pycotap is already available.
++    python3 -m pycotap >/dev/null && return 0
++
++    # Red Hat specific hint.
++    if test -f /etc/redhat-release ; then
++        if ! rpm -q --quiet python3-pycotap; then
++            echo "Please install python3-pycotap"
++            exit -1
++        fi
++    fi;
++}
++
+ init_environment()
+ {
+     if test x$FORCE_TEST != x ; then
+         RUN_ARGS="$RUN_ARGS --force";
+     fi;
+-    HAS_TAP=0;
+-    if test -f /etc/redhat-release ; then
+-        rpm -q --quiet python3-pycotap
+-        if test $? -ne 0 ; then
+-            echo "Not found python3-pycotap";
+-            exit -1;
+-      fi;
+-        HAS_TAP=1;
+-    fi;
+-    TAP_DIR=`python -m site --user-site`/pycotap;
+-    if test $HAS_TAP -ne 1 && \
+-       test x"$TAP_DIR" != x && test ! -d "$TAP_DIR" ; then
+-            echo "pip install pycotap --user";
+-            pip install pycotap --user;
+-    fi;
++
++    maybe_install_pycotap
++
+     if test ! -f $BUILDDIR/../data/$ANTHY_SCHEMA_FILE ; then
+         echo "Not found $BUILDDIR/../data/$ANTHY_SCHEMA_FILE";
+         exit -1;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]