Merge pull request #71442 from jtojnar/ibus-fixes
Fix/clean up various ibus-engines
This commit is contained in:
commit
36de08ebe1
|
@ -53,9 +53,15 @@ in
|
|||
config = mkIf (config.i18n.inputMethod.enabled == "ibus") {
|
||||
i18n.inputMethod.package = ibusPackage;
|
||||
|
||||
environment.systemPackages = [
|
||||
ibusAutostart
|
||||
];
|
||||
|
||||
# Without dconf enabled it is impossible to use IBus
|
||||
environment.systemPackages = with pkgs; [
|
||||
dconf ibusAutostart
|
||||
programs.dconf.enable = true;
|
||||
|
||||
services.dbus.packages = [
|
||||
ibusAutostart
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
|
|
|
@ -29,36 +29,51 @@ let
|
|||
|
||||
# Extra flags to pass to gnome-desktop-testing-runner.
|
||||
, testRunnerFlags ? ""
|
||||
}:
|
||||
makeTest rec {
|
||||
name = tested.name;
|
||||
|
||||
meta = {
|
||||
maintainers = tested.meta.maintainers;
|
||||
};
|
||||
# Extra attributes to pass to makeTest.
|
||||
# They will be recursively merged into the attrset created by this function.
|
||||
, ...
|
||||
}@args:
|
||||
makeTest
|
||||
(recursiveUpdate
|
||||
rec {
|
||||
name = tested.name;
|
||||
|
||||
machine = { ... }: {
|
||||
imports = [
|
||||
testConfig
|
||||
] ++ optional withX11 ../common/x11.nix;
|
||||
meta = {
|
||||
maintainers = tested.meta.maintainers;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
|
||||
machine = { ... }: {
|
||||
imports = [
|
||||
testConfig
|
||||
] ++ optional withX11 ../common/x11.nix;
|
||||
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
|
||||
|
||||
testScript =
|
||||
optionalString withX11 ''
|
||||
machine.wait_for_x()
|
||||
'' +
|
||||
optionalString (preTestScript != "") ''
|
||||
${preTestScript}
|
||||
'' +
|
||||
''
|
||||
machine.succeed(
|
||||
"gnome-desktop-testing-runner ${testRunnerFlags} -d '${tested.installedTests}/share'"
|
||||
)
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
optionalString withX11 ''
|
||||
machine.wait_for_x()
|
||||
'' +
|
||||
optionalString (preTestScript != "") ''
|
||||
${preTestScript}
|
||||
'' +
|
||||
''
|
||||
machine.succeed(
|
||||
"gnome-desktop-testing-runner ${testRunnerFlags} -d '${tested.installedTests}/share'"
|
||||
)
|
||||
'';
|
||||
}
|
||||
|
||||
(removeAttrs args [
|
||||
"tested"
|
||||
"testConfig"
|
||||
"preTestScript"
|
||||
"withX11"
|
||||
"testRunnerFlags"
|
||||
])
|
||||
);
|
||||
|
||||
in
|
||||
|
||||
|
@ -73,6 +88,7 @@ in
|
|||
glib-networking = callInstalledTest ./glib-networking.nix {};
|
||||
gnome-photos = callInstalledTest ./gnome-photos.nix {};
|
||||
graphene = callInstalledTest ./graphene.nix {};
|
||||
ibus = callInstalledTest ./ibus.nix {};
|
||||
libgdata = callInstalledTest ./libgdata.nix {};
|
||||
libxmlb = callInstalledTest ./libxmlb.nix {};
|
||||
ostree = callInstalledTest ./ostree.nix {};
|
||||
|
|
20
nixos/tests/installed-tests/ibus.nix
Normal file
20
nixos/tests/installed-tests/ibus.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, makeInstalledTest, ... }:
|
||||
|
||||
makeInstalledTest {
|
||||
tested = pkgs.ibus;
|
||||
|
||||
testConfig = {
|
||||
i18n.inputMethod.enabled = "ibus";
|
||||
};
|
||||
|
||||
preTestScript = ''
|
||||
# ibus has ibus-desktop-testing-runner but it tries to manage desktop session so we just spawn ibus-daemon ourselves
|
||||
machine.succeed("ibus-daemon --daemonize --verbose")
|
||||
'';
|
||||
|
||||
withX11 = true;
|
||||
|
||||
# TODO: ibus-daemon is currently crashing or something
|
||||
# maybe make ibus systemd service that auto-restarts?
|
||||
meta.broken = true;
|
||||
}
|
27
pkgs/data/misc/cldr-emoji-annotation/default.nix
Normal file
27
pkgs/data/misc/cldr-emoji-annotation/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cldr-emoji-annotation";
|
||||
version = "36.12.120191002_0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fujiwarat";
|
||||
repo = "cldr-emoji-annotation";
|
||||
rev = version;
|
||||
sha256 = "0nxigzs3mxjgi7c8mmdaxsy5sfl7ihsc2nysaj0db198b33w9clw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Emoji annotation files in CLDR";
|
||||
homepage = "https://www.unicode.org/";
|
||||
license = licenses.free; # https://www.unicode.org/license.html
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
38
pkgs/data/misc/unicode-character-database/default.nix
Normal file
38
pkgs/data/misc/unicode-character-database/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ stdenv
|
||||
, fetchurl
|
||||
, unzip
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "unicode-character-database";
|
||||
version = "12.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.unicode.org/Public/zipped/${version}/UCD.zip";
|
||||
sha256 = "19m06iw0jl7lhlggcmghi12p6jld0qrmfpksgc243yn6sjh53fi5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
unzip
|
||||
];
|
||||
|
||||
setSourceRoot = ''
|
||||
sourceRoot=$PWD
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/unicode
|
||||
cp -r * $out/share/unicode
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Unicode Character Database";
|
||||
homepage = "https://www.unicode.org/";
|
||||
license = licenses.free; # https://www.unicode.org/license.html
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
59
pkgs/data/misc/unicode-emoji/default.nix
Normal file
59
pkgs/data/misc/unicode-emoji/default.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ stdenv
|
||||
, fetchurl
|
||||
, symlinkJoin
|
||||
, lib
|
||||
}:
|
||||
|
||||
let
|
||||
version = "12.1";
|
||||
|
||||
fetchData = { file, sha256 }: fetchurl {
|
||||
url = "https://www.unicode.org/Public/emoji/${version}/${file}";
|
||||
inherit sha256;
|
||||
downloadToTemp = true;
|
||||
recursiveHash = true;
|
||||
postFetch = ''
|
||||
installDir="$out/share/unicode/emoji"
|
||||
mkdir -p "$installDir"
|
||||
mv "$downloadedFile" "$installDir/${file}"
|
||||
'';
|
||||
};
|
||||
|
||||
srcs = {
|
||||
emoji-data = fetchData {
|
||||
file = "emoji-data.txt";
|
||||
sha256 = "17gfm5a28lsymx36prbjy2g0b27gf3rcgggy0yxdshbxwf6zpf9k";
|
||||
};
|
||||
emoji-sequences = fetchData {
|
||||
file = "emoji-sequences.txt";
|
||||
sha256 = "1fckw5hfyvz5jfp2jczzx8qcs79vf0zyq0z2942230j99arq70vc";
|
||||
};
|
||||
emoji-test = fetchData {
|
||||
file = "emoji-test.txt";
|
||||
sha256 = "0w29lva7gp9g9lf7bz1i24qdalvf440bcq8npsbwr3cpp7na95kh";
|
||||
};
|
||||
emoji-variation-sequences = fetchData {
|
||||
file = "emoji-variation-sequences.txt";
|
||||
sha256 = "0akpib3cinr8xcs045hda5wnpfj6qfdjlkzmq5vgdc50gyhrd2z3";
|
||||
};
|
||||
emoji-zwj-sequences = fetchData {
|
||||
file = "emoji-zwj-sequences.txt";
|
||||
sha256 = "0s2mvy1nr2v1x0rr1fxlsv8ly1vyf9978rb4hwry5vnr678ls522";
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
symlinkJoin rec {
|
||||
name = "unicode-emoji-${version}";
|
||||
|
||||
paths = lib.attrValues srcs;
|
||||
|
||||
passthru = srcs;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Unicode Emoji Data Files";
|
||||
homepage = "https://home.unicode.org/emoji/";
|
||||
license = licenses.free; # https://www.unicode.org/license.html
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
38
pkgs/data/misc/unihan-database/default.nix
Normal file
38
pkgs/data/misc/unihan-database/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ stdenv
|
||||
, fetchurl
|
||||
, unzip
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "unihan-database";
|
||||
version = "12.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.unicode.org/Public/zipped/${version}/Unihan.zip";
|
||||
sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
unzip
|
||||
];
|
||||
|
||||
setSourceRoot = ''
|
||||
sourceRoot=$PWD
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/unicode
|
||||
cp -r * $out/share/unicode
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Unicode Han Database";
|
||||
homepage = "https://www.unicode.org/";
|
||||
license = licenses.free; # https://www.unicode.org/license.html
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
|
@ -1,11 +1,48 @@
|
|||
{ stdenv, intltool, fetchFromGitLab, pkgconfig, gtk3, adwaita-icon-theme
|
||||
, glib, desktop-file-utils, gtk-doc, autoconf, automake, libtool
|
||||
, wrapGAppsHook, gnome3, itstool, libxml2, yelp-tools
|
||||
, docbook_xsl, docbook_xml_dtd_412, gsettings-desktop-schemas
|
||||
, callPackage, unzip, gobject-introspection }:
|
||||
{ stdenv
|
||||
, intltool
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, pkgconfig
|
||||
, gtk3
|
||||
, adwaita-icon-theme
|
||||
, glib
|
||||
, desktop-file-utils
|
||||
, gtk-doc
|
||||
, autoconf
|
||||
, automake
|
||||
, libtool
|
||||
, wrapGAppsHook
|
||||
, gnome3
|
||||
, itstool
|
||||
, libxml2
|
||||
, yelp-tools
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_412
|
||||
, gsettings-desktop-schemas
|
||||
, callPackage
|
||||
, unzip
|
||||
, unicode-character-database
|
||||
, unihan-database
|
||||
, runCommand
|
||||
, symlinkJoin
|
||||
, gobject-introspection
|
||||
}:
|
||||
|
||||
let
|
||||
unicode-data = callPackage ./unicode-data.nix {};
|
||||
# TODO: make upstream patch allowing to use the uncompressed file,
|
||||
# preferably from XDG_DATA_DIRS.
|
||||
# https://gitlab.gnome.org/GNOME/gucharmap/issues/13
|
||||
unihanZip = runCommand "unihan" {} ''
|
||||
mkdir -p $out/share/unicode
|
||||
ln -s ${unihan-database.src} $out/share/unicode/Unihan.zip
|
||||
'';
|
||||
ucd = symlinkJoin {
|
||||
name = "ucd+unihan";
|
||||
paths = [
|
||||
unihanZip
|
||||
unicode-character-database
|
||||
];
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "gucharmap";
|
||||
version = "12.0.1";
|
||||
|
@ -20,16 +57,41 @@ in stdenv.mkDerivation rec {
|
|||
sha256 = "0si3ymyfzc5v7ly0dmcs3qgw2wp8cyasycq5hmcr8frl09lr6gkw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig wrapGAppsHook unzip intltool itstool
|
||||
autoconf automake libtool gtk-doc docbook_xsl docbook_xml_dtd_412
|
||||
yelp-tools libxml2 desktop-file-utils gobject-introspection
|
||||
patches = [
|
||||
# fix build with Unicode 12.1
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/gnome-team/gucharmap/raw/de079ad494a15f662416257fca2f2b8db757f4ea/debian/patches/update-to-unicode-12.1.patch";
|
||||
sha256 = "093gqsxfpp3s0b88p1dgkskr4ng3hv8irmxc60l3fdrkl8am00xh";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ gtk3 glib gsettings-desktop-schemas adwaita-icon-theme ];
|
||||
nativeBuildInputs = [
|
||||
pkgconfig
|
||||
wrapGAppsHook
|
||||
unzip
|
||||
intltool
|
||||
itstool
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
gtk-doc
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_412
|
||||
yelp-tools
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
adwaita-icon-theme
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-unicode-data=${unicode-data}"
|
||||
"--with-unicode-data=${ucd}/share/unicode"
|
||||
"--enable-gtk-doc"
|
||||
];
|
||||
|
||||
|
@ -51,7 +113,7 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib; {
|
||||
description = "GNOME Character Map, based on the Unicode Character Database";
|
||||
homepage = https://wiki.gnome.org/Apps/Gucharmap;
|
||||
homepage = "https://wiki.gnome.org/Apps/Gucharmap";
|
||||
license = licenses.gpl3;
|
||||
maintainers = gnome3.maintainers;
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
{ fetchurl, stdenv, gnome3 }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "unicode-data";
|
||||
version = "12.0.0";
|
||||
srcs = [
|
||||
(fetchurl {
|
||||
url = "http://www.unicode.org/Public/${version}/ucd/Blocks.txt";
|
||||
sha256 = "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "http://www.unicode.org/Public/${version}/ucd/DerivedAge.txt";
|
||||
sha256 = "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "http://www.unicode.org/Public/${version}/ucd/NamesList.txt";
|
||||
sha256 = "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "http://www.unicode.org/Public/${version}/ucd/Scripts.txt";
|
||||
sha256 = "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "http://www.unicode.org/Public/${version}/ucd/UnicodeData.txt";
|
||||
sha256 = "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "http://www.unicode.org/Public/${version}/ucd/Unihan.zip";
|
||||
sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
|
||||
})
|
||||
];
|
||||
phases = "installPhase";
|
||||
installPhase = with stdenv.lib; ''
|
||||
mkdir $out
|
||||
for f in $srcs;do
|
||||
cp $f $out/$(stripHash $f)
|
||||
done
|
||||
'';
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.unicode.org/ucd/;
|
||||
description = "Unicode Character Database";
|
||||
maintainers = gnome3.maintainers;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
|
@ -1,35 +1,57 @@
|
|||
{ stdenv, fetchurl, intltool, pkgconfig
|
||||
, anthy, ibus, glib, gobject-introspection, gtk3, python3
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, gettext
|
||||
, pkgconfig
|
||||
, wrapGAppsHook
|
||||
, anthy
|
||||
, ibus
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gtk3
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ibus-anthy";
|
||||
version = "1.5.11";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
isIbusEngine = true;
|
||||
description = "IBus interface to the anthy input method";
|
||||
homepage = https://github.com/fujiwarat/ibus-anthy;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ gebner ericsagnes ];
|
||||
};
|
||||
|
||||
configureFlags = [ "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t" ];
|
||||
|
||||
buildInputs = [
|
||||
anthy glib gobject-introspection gtk3 ibus (python3.withPackages (ps: [ps.pygobject3]))
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ intltool pkgconfig python3.pkgs.wrapPython ];
|
||||
|
||||
postFixup = ''
|
||||
wrapPythonPrograms
|
||||
substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
|
||||
'';
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "1zwgswpibh67sgbza8kvg03v06maxc08ihkgm5hmh333sjq9d5c0";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
anthy
|
||||
glib
|
||||
gtk3
|
||||
ibus
|
||||
(python3.withPackages (ps: [
|
||||
ps.pygobject3
|
||||
(ps.toPythonModule ibus)
|
||||
]))
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
pkgconfig
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
isIbusEngine = true;
|
||||
description = "IBus interface to the anthy input method";
|
||||
homepage = https://github.com/fujiwarat/ibus-anthy;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ gebner ericsagnes ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ stdenv
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, intltool
|
||||
, appstream-glib
|
||||
, gettext
|
||||
, pkgconfig
|
||||
, wrapGAppsHook
|
||||
, gtk3
|
||||
|
@ -12,11 +13,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ibus-hangul";
|
||||
version = "1.5.1";
|
||||
version = "1.5.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/choehwanjin/ibus-hangul/releases/download/${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "0gha8dfdf54rx8fv3yfikbgdg6lqq6l883lhg7q68ybvkjx9bwbs";
|
||||
sha256 = "1400ba2p34vr9q285lqvjm73f6m677cgfdymmjpiwyrjgbbiqrjy";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -27,9 +28,9 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
intltool
|
||||
appstream-glib
|
||||
gettext
|
||||
pkgconfig
|
||||
python3.pkgs.wrapPython
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
|
|
|
@ -1,33 +1,54 @@
|
|||
{ stdenv, fetchFromGitHub, autoreconfHook
|
||||
, intltool, pkgconfig, sqlite, libpinyin, db
|
||||
, ibus, glib, gtk3, python3
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gettext
|
||||
, pkgconfig
|
||||
, wrapGAppsHook
|
||||
, sqlite
|
||||
, libpinyin
|
||||
, db
|
||||
, ibus
|
||||
, glib
|
||||
, gtk3
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ibus-libpinyin";
|
||||
version = "1.10.0";
|
||||
version = "1.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libpinyin";
|
||||
repo = "ibus-libpinyin";
|
||||
rev = version;
|
||||
sha256 = "0zkzz6ig74nws8phqxbsggnpf5g5f2hxi0mdyn2m3s4nm14q3ma6";
|
||||
owner = "libpinyin";
|
||||
repo = "ibus-libpinyin";
|
||||
rev = version;
|
||||
sha256 = "0b8rilk9zil9gvfhlk3rphcby6ph11dw66j175wp0na6h6hjlaf2";
|
||||
};
|
||||
|
||||
buildInputs = [ ibus glib sqlite libpinyin python3 gtk3 db ];
|
||||
nativeBuildInputs = [ autoreconfHook intltool pkgconfig python3.pkgs.wrapPython ];
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gettext
|
||||
pkgconfig
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
postAutoreconf = ''
|
||||
intltoolize
|
||||
'';
|
||||
|
||||
postFixup = "wrapPythonPrograms";
|
||||
buildInputs = [
|
||||
ibus
|
||||
glib
|
||||
sqlite
|
||||
libpinyin
|
||||
(python3.withPackages (pypkgs: with pypkgs; [
|
||||
pygobject3
|
||||
(toPythonModule ibus)
|
||||
]))
|
||||
gtk3
|
||||
db
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
isIbusEngine = true;
|
||||
description = "IBus interface to the libpinyin input method";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ ericsagnes ];
|
||||
platforms = platforms.linux;
|
||||
description = "IBus interface to the libpinyin input method";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ ericsagnes ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
{ stdenv, fetchFromGitHub
|
||||
, autoreconfHook, pkgconfig
|
||||
, ibus, m17n_lib, m17n_db, gettext, python3
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, pkgconfig
|
||||
, ibus
|
||||
, gtk3
|
||||
, m17n_lib
|
||||
, m17n_db
|
||||
, gettext
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -8,27 +16,40 @@ stdenv.mkDerivation rec {
|
|||
version = "1.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ibus";
|
||||
repo = "ibus-m17n";
|
||||
rev = version;
|
||||
owner = "ibus";
|
||||
repo = "ibus-m17n";
|
||||
rev = version;
|
||||
sha256 = "1xl7swqn46nhi43rka0zx666mpk667ykag3sz07x0zqrwi41frps";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ibus m17n_lib m17n_db gettext
|
||||
python3
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gettext
|
||||
pkgconfig
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig python3.pkgs.wrapPython ];
|
||||
buildInputs = [
|
||||
ibus
|
||||
gtk3
|
||||
m17n_lib
|
||||
m17n_db
|
||||
(python3.withPackages (ps: [
|
||||
ps.pygobject3
|
||||
(ps.toPythonModule ibus)
|
||||
]))
|
||||
];
|
||||
|
||||
postFixup = "wrapPythonPrograms";
|
||||
configureFlags = [
|
||||
"--with-gtk=3.0"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
isIbusEngine = true;
|
||||
description = "m17n engine for ibus";
|
||||
homepage = https://github.com/ibus/ibus-m17n;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ericsagnes ];
|
||||
description = "m17n engine for ibus";
|
||||
homepage = https://github.com/ibus/ibus-m17n;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ericsagnes ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -32,7 +32,6 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [
|
||||
dconf
|
||||
gtk3
|
||||
gobject-introspection
|
||||
ibus
|
||||
(python3.withPackages (pypkgs: with pypkgs; [
|
||||
pygobject3
|
||||
|
@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
|
|||
autoreconfHook
|
||||
docbook2x
|
||||
pkgconfig
|
||||
python3.pkgs.wrapPython
|
||||
gobject-introspection
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/uniemoji.xml.in b/uniemoji.xml.in
|
||||
index 5fbfd0f..6fb8ad3 100644
|
||||
--- a/uniemoji.xml.in
|
||||
+++ b/uniemoji.xml.in
|
||||
@@ -7,7 +7,7 @@
|
||||
<license>GPL</license>
|
||||
<author>Lalo Martins <lalo.martins@gmail.com></author>
|
||||
<homepage>https://github.com/salty-horse/ibus-uniemoji</homepage>
|
||||
- <exec>@PYTHON@ @DATADIR@/ibus-uniemoji/uniemoji.py --ibus</exec>
|
||||
+ <exec>@DATADIR@/ibus-uniemoji/uniemoji.py --ibus</exec>
|
||||
<textdomain>uniemoji</textdomain>
|
||||
<engines>
|
||||
<engine>
|
|
@ -1,8 +1,19 @@
|
|||
{ stdenv, fetchFromGitHub
|
||||
, python3Packages
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
, python3
|
||||
, ibus
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
let
|
||||
python = python3.withPackages (ps: with ps; [
|
||||
pygobject3
|
||||
(toPythonModule ibus)
|
||||
pyxdg
|
||||
python-Levenshtein
|
||||
]);
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "ibus-uniemoji";
|
||||
version = "0.6.0";
|
||||
|
||||
|
@ -13,25 +24,39 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "121zh3q0li1k537fcvbd4ns4jgl9bbb9gm9ihy8cfxgirv38lcfa";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ pyxdg python-Levenshtein pygobject3 ];
|
||||
patches = [
|
||||
# Do not run wrapper script with Python,
|
||||
# the wrapped script will have Python in shebang anyway.
|
||||
./allow-wrapping.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ python3Packages.wrapPython ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapGAppsHook
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
python
|
||||
ibus
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder ''out''}"
|
||||
"SYSCONFDIR=${placeholder ''out''}/etc"
|
||||
"PYTHON=${python.interpreter}"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
buildPythonPath $out
|
||||
patchPythonScript $out/share/ibus-uniemoji/uniemoji.py
|
||||
wrapGApp $out/share/ibus-uniemoji/uniemoji.py
|
||||
'';
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" "SYSCONFDIR=$(out)/etc"
|
||||
"PYTHON=${python3Packages.python.interpreter}"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
isIbusEngine = true;
|
||||
description = "Input method (ibus) for entering unicode symbols and emoji by name";
|
||||
homepage = "https://github.com/salty-horse/ibus-uniemoji";
|
||||
license = with licenses; [ gpl3 mit ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ aske ];
|
||||
description = "Input method (ibus) for entering unicode symbols and emoji by name";
|
||||
homepage = "https://github.com/salty-horse/ibus-uniemoji";
|
||||
license = with licenses; [ gpl3 mit ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ aske ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,74 +1,43 @@
|
|||
{ stdenv, substituteAll, fetchurl, fetchFromGitHub, autoreconfHook, gettext, makeWrapper, pkgconfig
|
||||
, vala, wrapGAppsHook, dbus, dconf ? null, glib, gdk-pixbuf, gobject-introspection, gtk2
|
||||
, gtk3, gtk-doc, isocodes, python3, json-glib, libnotify ? null, enablePython2Library ? false
|
||||
, enableUI ? true, withWayland ? false, libxkbcommon ? null, wayland ? null
|
||||
, buildPackages, runtimeShell }:
|
||||
{ stdenv
|
||||
, substituteAll
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gettext
|
||||
, makeWrapper
|
||||
, pkgconfig
|
||||
, vala
|
||||
, wrapGAppsHook
|
||||
, dbus
|
||||
, dconf ? null
|
||||
, glib
|
||||
, gdk-pixbuf
|
||||
, gobject-introspection
|
||||
, gtk2
|
||||
, gtk3
|
||||
, gtk-doc
|
||||
, isocodes
|
||||
, cldr-emoji-annotation
|
||||
, unicode-character-database
|
||||
, unicode-emoji
|
||||
, python3
|
||||
, json-glib
|
||||
, libnotify ? null
|
||||
, enablePython2Library ? false
|
||||
, enableUI ? true
|
||||
, withWayland ? false
|
||||
, libxkbcommon ? null
|
||||
, wayland ? null
|
||||
, buildPackages
|
||||
, runtimeShell
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
assert withWayland -> wayland != null && libxkbcommon != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
emojiSrcs = {
|
||||
data = fetchurl {
|
||||
url = "http://unicode.org/Public/emoji/5.0/emoji-data.txt";
|
||||
sha256 = "11jfz5rrvyc2ixliqfcjgmch4cn9mfy0x96qnpfcyz5fy1jvfyxf";
|
||||
};
|
||||
sequences = fetchurl {
|
||||
url = "http://unicode.org/Public/emoji/5.0/emoji-sequences.txt";
|
||||
sha256 = "09bii7f5mmladg0kl3n80fa9qaix6bv5ylm92x52j7wygzv0szb1";
|
||||
};
|
||||
variation-sequences = fetchurl {
|
||||
url = "http://unicode.org/Public/emoji/5.0/emoji-variation-sequences.txt";
|
||||
sha256 = "1wlg4gbq7spmpppjfy5zdl82sj0hc836p8gljgfrjmwsjgybq286";
|
||||
};
|
||||
zwj-sequences = fetchurl {
|
||||
url = "http://unicode.org/Public/emoji/5.0/emoji-zwj-sequences.txt";
|
||||
sha256 = "16gvzv76mjv9g81lm1m6cr3rpfqyn2k4hb9a62xd329252dhl25q";
|
||||
};
|
||||
test = fetchurl {
|
||||
url = "http://unicode.org/Public/emoji/5.0/emoji-test.txt";
|
||||
sha256 = "031qk2v8xdnba7hfinmgrmpglc9l8ll2hds6mw885p0hngdb3dgw";
|
||||
};
|
||||
};
|
||||
emojiData = stdenv.mkDerivation {
|
||||
name = "emoji-data-5.0";
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
${builtins.toString (flip mapAttrsToList emojiSrcs (k: v: "cp ${v} $out/emoji-${k}.txt;"))}
|
||||
'';
|
||||
};
|
||||
cldrEmojiAnnotation = stdenv.mkDerivation rec {
|
||||
pname = "cldr-emoji-annotation";
|
||||
version = "31.90.0_1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "fujiwarat";
|
||||
repo = "cldr-emoji-annotation";
|
||||
rev = version;
|
||||
sha256 = "1vsj32bg8ab4d80rz0fxy6sj2lv31inzyjnddjm079bnvlaf2kih";
|
||||
};
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
};
|
||||
ucdVersion = "12.0.0";
|
||||
ucdSrcs = {
|
||||
NamesList = fetchurl {
|
||||
url = "https://www.unicode.org/Public/${ucdVersion}/ucd/NamesList.txt";
|
||||
sha256 = "c17c7726f562bd9ef869096807f0297e1edef9a58fdae1fbae487378fa43586f";
|
||||
};
|
||||
Blocks = fetchurl {
|
||||
url = "https://www.unicode.org/Public/${ucdVersion}/ucd/Blocks.txt";
|
||||
sha256 = "a1a3ca4381eb91f7b65afe7cb7df615cdcf67993fef4b486585f66b349993a10";
|
||||
};
|
||||
};
|
||||
ucd = stdenv.mkDerivation {
|
||||
name = "ucd-${ucdVersion}";
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
${builtins.toString (flip mapAttrsToList ucdSrcs (k: v: "cp ${v} $out/${k}.txt;"))}
|
||||
'';
|
||||
};
|
||||
python3Runtime = python3.withPackages (ps: with ps; [ pygobject3 ]);
|
||||
python3BuildEnv = python3.buildEnv.override {
|
||||
# ImportError: No module named site
|
||||
|
@ -82,13 +51,13 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ibus";
|
||||
version = "1.5.20";
|
||||
version = "1.5.21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ibus";
|
||||
repo = "ibus";
|
||||
rev = version;
|
||||
sha256 = "1npavb896qrp6qbqayb0va4mpsi68wybcnlbjknzgssqyw2ylh9r";
|
||||
sha256 = "0fjbqj7d2g5c8i1wdggzhz269xisxv4xb1pa9swalm5p2b2vrjlx";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -99,7 +68,7 @@ stdenv.mkDerivation rec {
|
|||
})
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
outputs = [ "out" "dev" "installedTests" ];
|
||||
|
||||
postPatch = ''
|
||||
echo \#!${runtimeShell} > data/dconf/make-dconf-override-db.sh
|
||||
|
@ -116,9 +85,15 @@ stdenv.mkDerivation rec {
|
|||
(enableFeature enablePython2Library "python-library")
|
||||
(enableFeature enablePython2Library "python2") # XXX: python2 library does not work anyway
|
||||
(enableFeature enableUI "ui")
|
||||
"--with-unicode-emoji-dir=${emojiData}"
|
||||
"--with-emoji-annotation-dir=${cldrEmojiAnnotation}/share/unicode/cldr/common/annotations"
|
||||
"--with-ucd-dir=${ucd}"
|
||||
"--enable-install-tests"
|
||||
"--with-unicode-emoji-dir=${unicode-emoji}/share/unicode/emoji"
|
||||
"--with-emoji-annotation-dir=${cldr-emoji-annotation}/share/unicode/cldr/common/annotations"
|
||||
"--with-ucd-dir=${unicode-character-database}/share/unicode"
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"test_execsdir=${placeholder ''installedTests''}/libexec/installed-tests/ibus"
|
||||
"test_sourcesdir=${placeholder ''installedTests''}/share/installed-tests/ibus"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -132,7 +107,9 @@ stdenv.mkDerivation rec {
|
|||
wrapGAppsHook
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ glib ];
|
||||
propagatedBuildInputs = [
|
||||
glib
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
|
@ -154,10 +131,31 @@ stdenv.mkDerivation rec {
|
|||
|
||||
doCheck = false; # requires X11 daemon
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = "$out/bin/ibus version";
|
||||
installCheckPhase = ''
|
||||
$out/bin/ibus version
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# It has some hardcoded FHS paths and also we do not use it
|
||||
# since we set up the environment in NixOS tests anyway.
|
||||
moveToOutput "bin/ibus-desktop-testing-runner" "$installedTests"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# set necessary environment also for tests
|
||||
for f in $installedTests/libexec/installed-tests/ibus/*; do
|
||||
wrapGApp $f
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
installed-tests = nixosTests.installed-tests.ibus;
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = https://github.com/ibus/ibus;
|
||||
homepage = "https://github.com/ibus/ibus";
|
||||
description = "Intelligent Input Bus, input method framework";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -40,6 +40,6 @@
|
|||
export IBUS_DATAROOTDIR=@datarootdir@
|
||||
export IBUS_LOCALEDIR=@localedir@
|
||||
export IBUS_LIBEXECDIR=${libexecdir}
|
||||
-exec @PYTHON@ @prefix@/share/ibus/setup/main.py $@
|
||||
-exec ${PYTHON:-@PYTHON@} @prefix@/share/ibus/setup/main.py $@
|
||||
+exec @pythonInterpreter@ @prefix@/share/ibus/setup/main.py $@
|
||||
|
||||
|
|
|
@ -17129,6 +17129,8 @@ in
|
|||
|
||||
cherry = callPackage ../data/fonts/cherry { inherit (xorg) fonttosfnt mkfontdir; };
|
||||
|
||||
cldr-emoji-annotation = callPackage ../data/misc/cldr-emoji-annotation { };
|
||||
|
||||
clearlooks-phenix = callPackage ../data/themes/clearlooks-phenix { };
|
||||
|
||||
cnstrokeorder = callPackage ../data/fonts/cnstrokeorder {};
|
||||
|
@ -17740,6 +17742,12 @@ in
|
|||
|
||||
uni-vga = callPackage ../data/fonts/uni-vga { };
|
||||
|
||||
unicode-character-database = callPackage ../data/misc/unicode-character-database { };
|
||||
|
||||
unicode-emoji = callPackage ../data/misc/unicode-emoji { };
|
||||
|
||||
unihan-database = callPackage ../data/misc/unihan-database { };
|
||||
|
||||
unifont = callPackage ../data/fonts/unifont { };
|
||||
|
||||
unifont_upper = callPackage ../data/fonts/unifont_upper { };
|
||||
|
|
Loading…
Reference in a new issue