From: Thiago Jung Bauermann via Guix-patches via <guix-patches@gnu.org>
To: 50442@debbugs.gnu.org
Cc: Thiago Jung Bauermann <bauermann@kolabnow.com>
Subject: [bug#50442] [PATCH] gnu: xygrib: Fix finding resources in the data directory
Date: Mon, 6 Sep 2021 21:18:57 -0300 [thread overview]
Message-ID: <20210907001857.141403-1-bauermann@kolabnow.com> (raw)
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 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’.
---
Hi,
This patch isn’t related to either powerpc64le-linux nor
‘core-updates-frozen’, for a change. :-)
gnu/local.mk | 1 +
gnu/packages/geo.scm | 22 +--
.../patches/xygrib-fix-finding-data.patch | 125 ++++++++++++++++++
3 files changed, 140 insertions(+), 8 deletions(-)
create mode 100644 gnu/packages/patches/xygrib-fix-finding-data.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index f848a8c61fdd..a3c5f7344489 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1897,6 +1897,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 bf864f246c0c..bbf7bb166a54 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -1228,6 +1228,12 @@ 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
+ ;; Fix 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.
+ "xygrib-fix-finding-data.patch"))
(sha256
(base32
"0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
@@ -1242,18 +1248,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.
@@ -1262,8 +1265,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)))
@@ -1276,6 +1278,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 000000000000..f712153061a1
--- /dev/null
+++ b/gnu/packages/patches/xygrib-fix-finding-data.patch
@@ -0,0 +1,125 @@
+This i 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
+
+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.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
next reply other threads:[~2021-09-07 0:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-07 0:18 Thiago Jung Bauermann via Guix-patches via [this message]
2021-09-16 5:18 ` [bug#50442] [PATCH core-updates-frozen v2] gnu: xygrib: Fix finding resources in the data directory Thiago Jung Bauermann via Guix-patches via
2021-09-16 7:58 ` bug#50442: " Guillaume Le Vaillant
2021-09-16 15:42 ` [bug#50442] " Thiago Jung Bauermann via Guix-patches via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210907001857.141403-1-bauermann@kolabnow.com \
--to=guix-patches@gnu.org \
--cc=50442@debbugs.gnu.org \
--cc=bauermann@kolabnow.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).