2022-03-29 22:57:38 +00:00
|
|
|
{ lib, stdenv, fetchFromGitLab, fetchFromGitHub
|
2016-03-20 00:50:05 +00:00
|
|
|
, file, libxslt, docbook_xml_dtd_412, docbook_xsl, xmlto
|
2019-09-24 20:07:47 +00:00
|
|
|
, w3m, gnugrep, gnused, coreutils, xset, perlPackages
|
2022-10-21 20:16:49 +00:00
|
|
|
, mimiSupport ? false, gawk
|
|
|
|
, withXdgOpenUsePortalPatch ? true }:
|
2015-08-15 19:01:46 +00:00
|
|
|
|
|
|
|
let
|
|
|
|
# A much better xdg-open
|
|
|
|
mimisrc = fetchFromGitHub {
|
|
|
|
owner = "march-linux";
|
|
|
|
repo = "mimi";
|
2017-01-04 14:01:35 +00:00
|
|
|
rev = "8e0070f17bcd3612ee83cb84e663e7c7fabcca3d";
|
|
|
|
sha256 = "15gw2nyrqmdsdin8gzxihpn77grhk9l97jp7s7pr7sl4n9ya2rpj";
|
2015-08-15 19:01:46 +00:00
|
|
|
};
|
2019-09-24 20:07:47 +00:00
|
|
|
|
|
|
|
perlPath = with perlPackages; makePerlPath [
|
|
|
|
NetDBus XMLTwig XMLParser X11Protocol
|
|
|
|
];
|
|
|
|
|
2015-08-15 19:01:46 +00:00
|
|
|
in
|
2010-03-25 19:48:06 +00:00
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2019-08-15 12:41:18 +00:00
|
|
|
pname = "xdg-utils";
|
2020-12-16 19:25:01 +00:00
|
|
|
version = "unstable-2020-10-21";
|
2014-11-06 00:44:33 +00:00
|
|
|
|
2022-03-29 22:57:38 +00:00
|
|
|
src = fetchFromGitLab {
|
|
|
|
domain = "gitlab.freedesktop.org";
|
|
|
|
owner = "xdg";
|
|
|
|
repo = "xdg-utils";
|
2020-12-16 19:25:01 +00:00
|
|
|
rev = "d11b33ec7f24cfb1546f6b459611d440013bdc72";
|
|
|
|
sha256 = "sha256-8PtXfI8hRneEpnUvIV3M+6ACjlkx0w/NEiJFdGbbHnQ=";
|
2010-03-25 19:48:06 +00:00
|
|
|
};
|
2012-10-04 11:38:26 +00:00
|
|
|
|
2022-10-21 20:16:49 +00:00
|
|
|
patches = lib.optionals withXdgOpenUsePortalPatch [
|
|
|
|
# Allow forcing the use of XDG portals using NIXOS_XDG_OPEN_USE_PORTAL environment variable.
|
|
|
|
# Upstream PR: https://github.com/freedesktop/xdg-utils/pull/12
|
|
|
|
./allow-forcing-portal-use.patch
|
|
|
|
];
|
|
|
|
|
2015-02-07 06:30:05 +00:00
|
|
|
# just needed when built from git
|
2022-05-29 10:54:03 +00:00
|
|
|
nativeBuildInputs = [ libxslt docbook_xml_dtd_412 docbook_xsl xmlto w3m ];
|
2015-01-25 13:30:27 +00:00
|
|
|
|
2021-01-15 09:19:50 +00:00
|
|
|
postInstall = lib.optionalString mimiSupport ''
|
2015-08-15 19:01:46 +00:00
|
|
|
cp ${mimisrc}/xdg-open $out/bin/xdg-open
|
2017-06-05 23:37:35 +00:00
|
|
|
'' + ''
|
|
|
|
sed '2s#.#\
|
|
|
|
sed() { ${gnused}/bin/sed "$@"; }\
|
|
|
|
grep() { ${gnugrep}/bin/grep "$@"; }\
|
|
|
|
egrep() { ${gnugrep}/bin/egrep "$@"; }\
|
|
|
|
file() { ${file}/bin/file "$@"; }\
|
|
|
|
awk() { ${gawk}/bin/awk "$@"; }\
|
2018-03-20 19:15:56 +00:00
|
|
|
xset() { ${xset}/bin/xset "$@"; }\
|
2019-09-24 20:07:47 +00:00
|
|
|
perl() { PERL5LIB=${perlPath} ${perlPackages.perl}/bin/perl "$@"; }\
|
2019-11-01 14:31:59 +00:00
|
|
|
mimetype() { ${perlPackages.FileMimeInfo}/bin/mimetype "$@"; }\
|
2020-08-16 21:04:18 +00:00
|
|
|
PATH=$PATH:'$out'/bin:${coreutils}/bin\
|
2017-06-05 23:37:35 +00:00
|
|
|
&#' -i "$out"/bin/*
|
2016-03-14 09:57:08 +00:00
|
|
|
|
2016-03-20 00:50:39 +00:00
|
|
|
substituteInPlace $out/bin/xdg-open \
|
|
|
|
--replace "/usr/bin/printf" "${coreutils}/bin/printf"
|
|
|
|
|
|
|
|
substituteInPlace $out/bin/xdg-mime \
|
|
|
|
--replace "/usr/bin/file" "${file}/bin/file"
|
|
|
|
|
2017-08-27 02:11:38 +00:00
|
|
|
substituteInPlace $out/bin/xdg-email \
|
|
|
|
--replace "/bin/echo" "${coreutils}/bin/echo"
|
|
|
|
|
2020-08-16 21:04:18 +00:00
|
|
|
sed 's|\bwhich\b|type -P|g' -i "$out"/bin/*
|
2012-10-04 11:38:26 +00:00
|
|
|
'';
|
2014-11-06 00:44:33 +00:00
|
|
|
|
2021-01-11 07:54:33 +00:00
|
|
|
meta = with lib; {
|
2020-04-01 01:11:51 +00:00
|
|
|
homepage = "https://www.freedesktop.org/wiki/Software/xdg-utils/";
|
2010-03-25 19:48:06 +00:00
|
|
|
description = "A set of command line tools that assist applications with a variety of desktop integration tasks";
|
2015-08-15 19:01:46 +00:00
|
|
|
license = if mimiSupport then licenses.gpl2 else licenses.free;
|
|
|
|
maintainers = [ maintainers.eelco ];
|
2015-10-28 17:49:04 +00:00
|
|
|
platforms = platforms.all;
|
2010-03-25 19:48:06 +00:00
|
|
|
};
|
|
|
|
}
|