From patchwork Thu Sep 16 05:18:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thiago Jung Bauermann X-Patchwork-Id: 32888 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 2AA8F27BBE3; Thu, 16 Sep 2021 06:19:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,T_DKIM_INVALID, URIBL_BLOCKED,URIBL_SBL,URIBL_SBL_A autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 6CB8B27BBE1 for ; Thu, 16 Sep 2021 06:19:12 +0100 (BST) Received: from localhost ([::1]:36060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mQjnj-0004bM-F2 for patchwork@mira.cbaines.net; Thu, 16 Sep 2021 01:19:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45542) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQjnb-0004bE-5P for guix-patches@gnu.org; Thu, 16 Sep 2021 01:19:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42048) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mQjna-0008Ad-Qy for guix-patches@gnu.org; Thu, 16 Sep 2021 01:19:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mQjna-0005ld-I9 for guix-patches@gnu.org; Thu, 16 Sep 2021 01:19:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#50442] [PATCH core-updates-frozen v2] gnu: xygrib: Fix finding resources in the data directory. Resent-From: Thiago Jung Bauermann Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 16 Sep 2021 05:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50442 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 50442@debbugs.gnu.org Cc: Thiago Jung Bauermann Received: via spool by 50442-submit@debbugs.gnu.org id=B50442.163176952922149 (code B ref 50442); Thu, 16 Sep 2021 05:19:02 +0000 Received: (at 50442) by debbugs.gnu.org; 16 Sep 2021 05:18:49 +0000 Received: from localhost ([127.0.0.1]:53594 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQjnI-0005l7-Jm for submit@debbugs.gnu.org; Thu, 16 Sep 2021 01:18:48 -0400 Received: from mx.kolabnow.com ([95.128.36.40]:61810 helo=ext-mx-out003.mykolab.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQjnE-0005kp-3e for 50442@debbugs.gnu.org; Thu, 16 Sep 2021 01:18:43 -0400 Received: from localhost (unknown [127.0.0.1]) by ext-mx-out003.mykolab.com (Postfix) with ESMTP id DE4FD4054F for <50442@debbugs.gnu.org>; Thu, 16 Sep 2021 07:18:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kolabnow.com; h= content-transfer-encoding:content-type:content-type:mime-version :references:in-reply-to:message-id:date:date:subject:subject :from:from:received:received:received; s=dkim20160331; t= 1631769511; x=1633583912; bh=3c55mbe0HTzkuR01djwCQ5dCPS2j0cUd2xe 2ik8vXws=; b=p7n4MaI3StdgsRvmGFxxl/JlxhG3R725GbO+S4g0dMW/DC4e1/+ nKzT5reqeOP3MxHj2meq1pq5RuxUEXsu98ncP5XlyQx7VhxYeGzyjWsOrtm+p1Dm xS2CPK2Fss0O+B9qQ+kxttXUEyrKsie1yYLbHfUF9c5ZGyuSvXnWCVmpvBwGqXl5 4Iw6+B5DrAugJJ2dxKYn8k5aCCLgUuVnvVSPSOkosTVXSvNxoj9I12hRxuHSfZBI qshRg2MCTK5NQX0VJ03Km+qiDs0YiWSQpmJTkXjWxzCZgQMrm04UpE/Hf03XOrA9 V6qgnY6Pya1V2ncfwF0B7S537sNAoIwNJuJqhfJIMm9Xyjvyif0H7e01sFB8EaCR b7YlSRs+KZ2A1aRur+HbCBACPpZlURL/fL9xlv9qU4uajMMeonrHohRxa2SlL+sp bnHj7Jza50o1jeNsmDxYzpVk6VT9lf7ALfrWYDL1VtGXfJp4Lnx557Im2sHcbfFE IpASMYYeJUVxGZaezusOABXqcsgWMDuk15Laez+vtpjiTfMrsELiFFu+YquCUSrX riGSRinb7YVUrVkzOry50ja1SXN+oF08O88bgj2U+pH255TLW/vWd8VOB/44++zN LAr+373zzJr2iPWHudG8bnirlHgllMD6Q1Bk8N1MmjAS4VnsbsEHnQ90= X-Virus-Scanned: amavisd-new at mykolab.com Received: from ext-mx-out003.mykolab.com ([127.0.0.1]) by localhost (ext-mx-out003.mykolab.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9eDacUu0x354 for <50442@debbugs.gnu.org>; Thu, 16 Sep 2021 07:18:31 +0200 (CEST) Received: from int-mx003.mykolab.com (unknown [10.9.13.3]) by ext-mx-out003.mykolab.com (Postfix) with ESMTPS id 9EDB54033B for <50442@debbugs.gnu.org>; Thu, 16 Sep 2021 07:18:31 +0200 (CEST) Received: from ext-subm002.mykolab.com (unknown [10.9.6.2]) by int-mx003.mykolab.com (Postfix) with ESMTPS id 401C0400A; Thu, 16 Sep 2021 07:18:31 +0200 (CEST) Date: Thu, 16 Sep 2021 02:18:16 -0300 Message-Id: <20210916051816.133019-1-bauermann@kolabnow.com> In-Reply-To: <20210907001857.141403-1-bauermann@kolabnow.com> References: <20210907001857.141403-1-bauermann@kolabnow.com> MIME-Version: 1.0 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" Reply-to: Thiago Jung Bauermann X-ACL-Warn: , Thiago Jung Bauermann via Guix-patches X-Patchwork-Original-From: Thiago Jung Bauermann via Guix-patches via From: Thiago Jung Bauermann X-getmail-retrieved-from-mailbox: Patches 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’. --- Hello, This is slightly changed version of the patch, meant to apply on core-updates-frozen in order to fix xygrib’s build failure on that branch. The build failure is caused by the build process’ inability to find the openjpeg-2.4 header file. Strictly speaking, it wouldn’t be necessary to backport PR 235 to fix the build failure but then there would still be the problem of XyGrib not being able to find its data files, so that would be a bit pointless. The patch is also suitable for the master branch. I also moved the comment about the purpose of the backported patch from the package definition to the patch file itself, which seems to be the preferred location for this kind of information. Thanks, Thiago gnu/local.mk | 1 + gnu/packages/geo.scm | 17 +-- .../patches/xygrib-fix-finding-data.patch | 131 ++++++++++++++++++ 3 files changed, 141 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 724ab2f67d26..ca22e9600a0f 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 5d06fe08e2cf..8d5111bea8df 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 000000000000..0b718b0eff45 --- /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