gnu: Transmission: Fix localization of transmission-gtk.
authorSimon South <simon@simonsouth.net>
Fri, 27 Nov 2020 21:35:46 +0000 (16:35 -0500)
committerLeo Famulari <leo@famulari.name>
Sat, 28 Nov 2020 04:40:53 +0000 (23:40 -0500)
* gnu/packages/bittorrent.scm (transmission)[source]: Add patch to make
Transmission honor the "localedir" option to its configure script.
[arguments]<configure-flags>: Use "localedir" to set the "gui" output as the
location for (GTK-specific) localization data.
<phases>: Update "move-gui" to remove a now-superfluous call to "mkdir" and omit
"share/locale" from the list of directories needing to be moved between outputs.
* gnu/packages/patches/transmission-honor-localedir.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Leo Famulari <leo@famulari.name>
gnu/local.mk
gnu/packages/bittorrent.scm
gnu/packages/patches/transmission-honor-localedir.patch [new file with mode: 0644]

index 289f510..fe94bcf 100644 (file)
@@ -1656,6 +1656,7 @@ dist_patch_DATA =                                         \
   %D%/packages/patches/tipp10-remove-license-code.patch                \
   %D%/packages/patches/tk-find-library.patch                   \
   %D%/packages/patches/transcode-ffmpeg.patch  \
+  %D%/packages/patches/transmission-honor-localedir.patch      \
   %D%/packages/patches/ttf2eot-cstddef.patch                   \
   %D%/packages/patches/tup-unbundle-dependencies.patch         \
   %D%/packages/patches/tuxpaint-stamps-path.patch              \
index ab44caa..08e61d7 100644 (file)
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i"))))
+                "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i"))
+              (patches (search-patches "transmission-honor-localedir.patch"))))
     (build-system glib-or-gtk-build-system)
     (outputs '("out"                      ; library and command-line interface
                "gui"))                    ; graphical user interface
     (arguments
-     '(#:glib-or-gtk-wrap-excluded-outputs '("out")
+     '(#:configure-flags
+       (list (string-append "--localedir="
+                            (assoc-ref %outputs "gui")
+                            "/share/locale"))
+       #:glib-or-gtk-wrap-excluded-outputs '("out")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'move-gui
                (rename-file (string-append out "/bin/transmission-gtk")
                             (string-append gui "/bin/transmission-gtk"))
 
-               (mkdir (string-append gui "/share"))
                (for-each
                 (lambda (dir)
                   (rename-file (string-append out "/share/" dir)
                                (string-append gui "/share/" dir)))
-                '("appdata" "applications" "icons" "locale" "pixmaps"))
+                '("appdata" "applications" "icons" "pixmaps"))
 
                (mkdir-p (string-append gui "/share/man/man1"))
                (rename-file
diff --git a/gnu/packages/patches/transmission-honor-localedir.patch b/gnu/packages/patches/transmission-honor-localedir.patch
new file mode 100644 (file)
index 0000000..70c66bf
--- /dev/null
@@ -0,0 +1,34 @@
+This patch modifies Transmission so it honors the "localedir" option
+passed to its configure script, allowing GTK-specific localization
+data to be placed in the package's "gui" output.
+
+Without this patch, localization of transmission-gtk can break as the
+application will expect to find this data in the package's default
+output (as a result of the call to bindtextdomain in gtk/main.c).
+
+diff --git a/configure b/configure
+index a29e24f..3ae8ef4 100755
+--- a/configure
++++ b/configure
+@@ -21305,7 +21305,7 @@ $as_echo "$LINGUAS" >&6; }
+    sed -e "/^#/d" -e "/^\$/d" -e "s,.*,       $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+       < $srcdir/po/POTFILES.in > po/POTFILES
+-    transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
++    transmissionlocaledir='${localedir}'
+ fi
+diff --git a/configure.ac b/configure.ac
+index 57d3cae..ab62093 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -563,7 +563,7 @@ if test "x$enable_nls" = "xyes" ; then
+     AC_SUBST(GETTEXT_PACKAGE)
+     AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
+     AM_GLIB_GNU_GETTEXT
+-    transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
++    transmissionlocaledir='${localedir}'
+     AC_SUBST(transmissionlocaledir)
+ fi
+ AC_SUBST(INTLLIBS)