guix-commits
[Top][All Lists]
Advanced

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

branch core-updates-frozen updated: gnu: xygrib: Fix finding resources i


From: guix-commits
Subject: branch core-updates-frozen updated: gnu: xygrib: Fix finding resources in the data directory.
Date: Thu, 16 Sep 2021 03:58:11 -0400

This is an automated email from the git hooks/post-receive script.

glv pushed a commit to branch core-updates-frozen
in repository guix.

The following commit(s) were added to refs/heads/core-updates-frozen by this 
push:
     new b3ee04c  gnu: xygrib: Fix finding resources in the data directory.
b3ee04c is described below

commit b3ee04cde70579f84061342d62d86fcc2093dd6c
Author: Thiago Jung Bauermann via Guix-patches via <guix-patches@gnu.org>
AuthorDate: Thu Sep 16 02:18:16 2021 -0300

    gnu: xygrib: Fix finding resources in the data directory.
    
    Currently, if you start up XyGrib it will not show icons in the toolbar
    buttons, translated strings in the UI nor the map in the main view.  These
    are all items stored in the data directory, which XyGrib can’t find.
    
    Backport upstream PR 235 (already merged upstream) which makes it use XDG
    directories correctly.
    
    As a bonus, the PR also contains a fix to find libjpeg, so we don’t need
    the substitution for that anymore.
    
    * gnu/packages/patches/xygrib-fix-finding-data.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
    * gnu/packages/geo.scm (xygrib)[source]: Use it.
      [arguments]<#:configure-flags>: Pass ‘-DGNU_PACKAGE=ON’.
      [arguments]<#:phases>{patch-directories}: Remove fix to find libjpeg.
      Remove trailing ‘#t’.
    [native-search-paths]: Add ‘XDG_DATA_DIRS’.
    
    Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/local.mk                                       |   1 +
 gnu/packages/geo.scm                               |  17 +--
 gnu/packages/patches/xygrib-fix-finding-data.patch | 131 +++++++++++++++++++++
 3 files changed, 141 insertions(+), 8 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 724ab2f..ca22e96 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1884,6 +1884,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch  \
   %D%/packages/patches/xsane-support-ipv6.patch                        \
   %D%/packages/patches/xsane-tighten-default-umask.patch       \
+  %D%/packages/patches/xygrib-fix-finding-data.patch           \
   %D%/packages/patches/yggdrasil-extra-config.patch    \
   %D%/packages/patches/ytfzf-programs.patch        \
   %D%/packages/patches/ytfzf-updates.patch        \
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 5d06fe0..8d5111b 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -1217,6 +1217,7 @@ map display.  Downloads map data from a number of 
websites, including
                      (url "https://github.com/opengribs/XyGrib";)
                      (commit (string-append "v" version))))
               (file-name (git-file-name name version))
+              (patches (search-patches "xygrib-fix-finding-data.patch"))
               (sha256
                (base32
                 "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
@@ -1231,18 +1232,15 @@ map display.  Downloads map data from a number of 
websites, including
                   #t))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags (list "-DGNU_PACKAGE=ON")
+
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-directories
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((jpeg (assoc-ref inputs "openjpeg"))
                    (font (assoc-ref inputs "font-liberation")))
                (substitute* "CMakeLists.txt"
-                 ;; Find libjpeg.
-                 (("/usr") jpeg)
-                 ;; Fix install locations.
-                 (("set\\(PREFIX_BIN.*") "set(PREFIX_BIN \"bin\")\n")
-                 (("set\\(PREFIX_PKGDATA.*") "set(PREFIX_PKGDATA 
\"share/${PROJECT_NAME}\")\n")
                  ;; Skip looking for the static library.
                  (("\"libnova.a\"") ""))
                ;; Don't use the bundled font-liberation.
@@ -1251,8 +1249,7 @@ map display.  Downloads map data from a number of 
websites, including
                   (string-append "\"" font "/share/fonts/truetype/\"")))
                (substitute* "src/util/Util.h"
                  (("pathData\\(\\)\\+\"data/fonts/\"")
-                  (string-append "\"" font "/share/fonts/\""))))
-             #t)))
+                  (string-append "\"" font "/share/fonts/\"")))))))
        #:tests? #f)) ; no tests
     (native-inputs
      `(("qttools" ,qttools)))
@@ -1265,6 +1262,10 @@ map display.  Downloads map data from a number of 
websites, including
        ("proj.4" ,proj.4)
        ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))))
     (synopsis "Weather Forecast Visualization")
     (description
      "XyGrib is a Grib file reader and visualizes meteorological data providing
diff --git a/gnu/packages/patches/xygrib-fix-finding-data.patch 
b/gnu/packages/patches/xygrib-fix-finding-data.patch
new file mode 100644
index 0000000..0b718b0
--- /dev/null
+++ b/gnu/packages/patches/xygrib-fix-finding-data.patch
@@ -0,0 +1,131 @@
+This is a backport of the commits in PR 235 (“Fixes for packaging on
+linux-like systems”), which was merged upstream:
+
+https://github.com/opengribs/XyGrib/pull/235
+
+It fixes finding resources such as icons, maps and translations installed in
+the data directory.  This patch has been merged upstream and can be removed
+with the next release.
+
+Sightly adapted to find openjpg-2.4.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 64059ab65dae..00cc5d6aea6f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,9 @@ set(VERSION_PATCH 6)
+ set(XYGRIB_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
+ set(XYGRIB_VERSION_DATE "2019-07-05")
+ 
++option(GNU_PACKAGE "Install into GNU standard directories" OFF)
++option(GEN_TRANSLATIONS "Generate translations" ON)
++
+ set(CMAKE_VERBOSE_MAKEFILE ON)
+ 
+ # Find includes in corresponding build directories
+@@ -25,7 +28,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_CXX_STANDARD 11)
+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
+ if(UNIX AND NOT APPLE)
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC")
++add_compile_options(-Wall -fPIC)
+ endif()
+ 
+ # Add support for address etc sanitizers, part 1/2 (other half after 
ADD_EXECUTABLE)
+@@ -108,17 +111,12 @@ find_path(OPENJPEG_INCLUDE_DIR
+      ~/Library/Frameworks/include
+      /Library/Frameworks/include
+      /usr/local/include
+-     /usr/local/include/openjpeg-2.3
+-     /usr/include/openjpeg-2.3
+-     /usr/local/include/openjpeg-2.1
+-     /usr/include/openjpeg-2.1
+-     /usr/local/include/openjpeg-2.2
+-     /usr/include/openjpeg-2.2
+      /usr/include
+      /sw/include # Fink
+      /opt/local/include # DarwinPorts
+      /opt/csw/include # Blastwave
+      /opt/include
++     PATH_SUFFIXES openjpeg-2.4 openjpeg-2.3 openjpeg-2.2 openjpeg-2.1
+      REQUIRED
+  )
+ include_directories(${OPENJPEG_INCLUDE_DIR})
+@@ -212,22 +210,24 @@ include_directories(${PNG_INCLUDE_DIR})
+ configure_file(cmake/Version.h.in 
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include/Version.h)
+ 
include_directories(${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include)
+ 
+-if(APPLE)
+-set(PREFIX_BIN ${PROJECT_NAME})
+-set(PREFIX_PKGDATA ${PROJECT_NAME})
+-endif()
+-if(WIN32)
+-set(PREFIX_BIN ".")
+-set(PREFIX_PKGDATA ".")
+-endif()
+-if(UNIX AND NOT APPLE)
+-# This is not exactly a good idea on linux - the code should be changed so 
that the executable would go to /usr/local/bin and the data to 
/usr/local/share/XyGrib
+-set(PREFIX_BIN ${PROJECT_NAME})
+-set(PREFIX_PKGDATA ${PROJECT_NAME})
++if(GNU_PACKAGE)
++    include(GNUInstallDirs)
++    set(PREFIX_BIN ${CMAKE_INSTALL_FULL_BINDIR})
++    set(PREFIX_PKGDATA 
${CMAKE_INSTALL_FULL_DATADIR}/openGribs/${PROJECT_NAME})
++else()
++    if(WIN32)
++        set(PREFIX_BIN ".")
++        set(PREFIX_PKGDATA ".")
++    else()
++        set(PREFIX_BIN ${PROJECT_NAME})
++        set(PREFIX_PKGDATA ${PROJECT_NAME})
++    endif()
+ endif()
+ 
+ add_subdirectory(src)
+-add_subdirectory(data/tr)
++if(GEN_TRANSLATIONS)
++    add_subdirectory(data/tr)
++endif()
+ 
+ # Installation
+ # macOS bundle parameters
+@@ -241,4 +241,14 @@ set_target_properties(${PROJECT_NAME} PROPERTIES 
MACOSX_BUNDLE_SHORT_VERSION_STR
+ set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION 
"${XYGRIB_VERSION}")
+ set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE_COPYRIGHT 
"${PROJECT_NAME} Authors")
+ # Install data
+-install(DIRECTORY data DESTINATION ${PREFIX_PKGDATA})
++install(DIRECTORY data DESTINATION ${PREFIX_PKGDATA}
++        PATTERN "CMakeFiles" EXCLUDE
++        PATTERN "CMakeLists.txt" EXCLUDE
++        PATTERN "Makefile" EXCLUDE
++        PATTERN "cmake_install.cmake" EXCLUDE)
++if(GNU_PACKAGE)
++    install(FILES debian/xygrib.desktop
++            DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/applications)
++    install(FILES debian/xygrib.png
++            DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/pixmaps)
++endif()
+diff --git a/INSTALL.md b/INSTALL.md
+index 2c9d3ab4da03..1190cc780182 100644
+--- a/INSTALL.md
++++ b/INSTALL.md
+@@ -22,7 +22,19 @@ https://gihub.com/opengribs/XyGrib/releases or on 
https://opengribs.org in the d
+   - openSUSE Tumbleweed: `sudo zypper install gcc git cmake 
libqt5-qtbase-devel libpng-devel openjpeg2-devel libnova-devel libproj-devel 
zlib-devel libbz2-devel
+ 
+ ## Build and package
++### Options
+ 
++XyGrib has two CMake options
++- GNU_PACKAGE (DEFAULT: OFF)
++```
++Files will be installed in GNU standard installation directories such as 
prefix/bin and prefix/share.
++Packagers are recommended to test this option.
++```
++- GEN_TRANSLATION (DEFAULT: ON)
++```
++Create targets to generate translation files.
++Turning this off removes the need for qt-linguist, part of qttools qt5 
submodule, during build.
++```
+ ### macOS
+ 
+ - Get the source



reply via email to

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