diff --git a/fcitx5-5.1.10_dict.tar.zst b/fcitx5-5.1.10_dict.tar.zst new file mode 100644 index 0000000000000000000000000000000000000000..19712d4bc6ba0ab4fdf5ea1d9ece01ae447ed9ef Binary files /dev/null and b/fcitx5-5.1.10_dict.tar.zst differ diff --git a/fcitx5-xinput b/fcitx5-xinput new file mode 100644 index 0000000000000000000000000000000000000000..e1ca1a964e01a1ce0019d8398f3a4b484b7b8a33 --- /dev/null +++ b/fcitx5-xinput @@ -0,0 +1,22 @@ +IMSETTINGS_IGNORE_SESSION=*-wayland +XIM=fcitx5 +XIM_PROGRAM=/usr/bin/fcitx5 +ICON="fcitx5" +XIM_ARGS="-D" +PREFERENCE_PROGRAM=/usr/bin/fcitx5-configtool +SHORT_DESC="fcitx5" +GTK_IM_MODULE=fcitx +if test -f /usr/lib/qt4/plugins/inputmethods/qtim-fcitx5.so || \ + test -f /usr/lib64/qt4/plugins/inputmethods/qtim-fcitx5.so || \ + test -f /usr/lib/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so || \ + test -f /usr/lib64/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so; +then + QT_IM_MODULE=fcitx +else + QT_IM_MODULE=xim +fi + +# workaround for gnome users +if [ "$XDG_SESSION_DESKTOP" = "gnome" ]; then + /usr/bin/systemd-run --user --unit=$XIM $XIM_PROGRAM $XIM_ARGS +fi diff --git a/fcitx5.sh b/fcitx5.sh new file mode 100755 index 0000000000000000000000000000000000000000..f1212133ecf0b6bdf9c67d39d66b3b6342559c9e --- /dev/null +++ b/fcitx5.sh @@ -0,0 +1,10 @@ +if [ ! "$XDG_SESSION_TYPE" = "tty" ] # if this is a gui session (not tty) +then + # let's use fcitx instead of fcitx5 to make flatpak happy + # this may break behavior for users who have installed both + # fcitx and fcitx5, let then change the file on their own + export INPUT_METHOD=fcitx + export GTK_IM_MODULE=fcitx + export QT_IM_MODULE=fcitx + export XMODIFIERS=@im=fcitx +fi diff --git a/fcitx5.spec b/fcitx5.spec new file mode 100644 index 0000000000000000000000000000000000000000..de19428840c9571dc6c54a07f59257b764de1f96 --- /dev/null +++ b/fcitx5.spec @@ -0,0 +1,189 @@ +%global _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/fcitx5.conf + +Name: fcitx5 +Version: 5.1.10 +Release: 1 +Summary: Next generation of fcitx +License: LGPLv2+ +URL: https://github.com/fcitx/fcitx5 +Source0: https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-%{version}_dict.tar.zst +Source1: fcitx5-xinput +Source2: fcitx5.sh + +BuildRequires: cmake +BuildRequires: ninja-build +BuildRequires: gnupg2 +BuildRequires: desktop-file-utils +BuildRequires: extra-cmake-modules +BuildRequires: gcc-c++ +BuildRequires: systemd +BuildRequires: pkgconfig(cairo) +BuildRequires: cldr-emoji-annotation-devel +BuildRequires: pkgconfig(dri) +BuildRequires: pkgconfig(enchant-2) +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(fmt) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +BuildRequires: pkgconfig(iso-codes) +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(uuid) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xkbcommon-x11) +BuildRequires: pkgconfig(xkbfile) +BuildRequires: pkgconfig(xcb-ewmh) +BuildRequires: pkgconfig(xcb-imdkit) +BuildRequires: pkgconfig(xcb-icccm) +BuildRequires: pkgconfig(xcb-keysyms) +BuildRequires: pkgconfig(xkeyboard-config) +BuildRequires: /usr/bin/appstream-util +Requires: dbus-common +Requires: %{name}-data = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: setup +Requires(post): %{_sbindir}/alternatives +Requires(postun): %{_sbindir}/alternatives + +Recommends: (fcitx5-gtk if (gtk2 or gtk3 or gtk4)) +Recommends: (fcitx5-qt if (qt5-qtbase or qt6-qtbase)) +Recommends: (fcitx5-qt-module if (qt5-qtbase or qt6-qtbase)) +Recommends: fcitx5-configtool + +%description +Fcitx 5 is a generic input method framework released under LGPL-2.1+. + +%package libs +Summary: Libraries for %{name} + +%description libs +The %{name}-libs package contains runtime shared libraries necessary for +running programs using Fcitx5 libraries. + +%package data +Summary: Data files of Fcitx5 +BuildArch: noarch +# require with isa will lead to problem on koji build +Requires: %{name} = %{version}-%{release} +Requires: hicolor-icon-theme +Requires: dbus + +%description data +The %{name}-data package provides shared data for Fcitx5. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files necessary for +developing programs using Fcitx5 libraries. + +%package autostart +Summary: This package will make fcitx5 start with your GUI session +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description autostart +This package will setup autostart and environment needed for fcitx5 to work properly. + +%prep +%autosetup -p1 + +%build +mkdir %{_target_platform} +pushd %{_target_platform} +%cmake .. -GNinja +popd + +%__cmake --build %{_target_platform} %{?_smp_mflags} + +%install +DESTDIR=%{buildroot} %__cmake --install %{_target_platform} + +install -pm 644 -D %{S:1} %{buildroot}%{_xinputconf} +install -pm 644 -D %{S:2} %{buildroot}%{_sysconfdir}/profile.d/fcitx5.sh +install -d %{buildroot}%{_datadir}/%{name}/inputmethod +install -d %{buildroot}%{_datadir}/%{name}/table +desktop-file-install --delete-original \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/%{name}-configtool.desktop + +desktop-file-install --delete-original \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/org.fcitx.Fcitx5.desktop + +desktop-file-install --delete-original \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/%{name}-wayland-launcher.desktop + +# convert symlinked icons to copied icons, this will help co-existing with +# fcitx4 +for iconfile in $(find %{buildroot}%{_datadir}/icons -type l) +do + origicon=$(readlink -f ${iconfile}) + rm -f ${iconfile} + cp ${origicon} ${iconfile} +done +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml +%find_lang %{name} + +%check +ctest --test-dir %{_target_platform} --output-on-failure --force-new-ctest-process + +%post +%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_xinputconf} 55 || : + +%postun +if [ "$1" = "0" ]; then + %{_sbindir}/alternatives --remove xinputrc %{_xinputconf} || : + # if alternative was set to manual, reset to auto + [ -L %{_sysconfdir}/alternatives/xinputrc -a "`readlink %{_sysconfdir}/alternatives/xinputrc`" = "%{_xinputconf}" ] && %{_sbindir}/alternatives --auto xinputrc || : +fi + +%files -f %{name}.lang +%license LICENSES/LGPL-2.1-or-later.txt +%doc README.md +%config %{_xinputconf} +%{_bindir}/%{name} +%{_bindir}/%{name}-configtool +%{_bindir}/%{name}-remote +%{_bindir}/%{name}-diagnose +%{_libdir}/%{name}/ +%{_libexecdir}/fcitx5-wayland-launcher +%{_sysconfdir}/xdg/Xwayland-session.d/20-fcitx-x11 + +%files libs +%license LICENSES/LGPL-2.1-or-later.txt +%{_libdir}/libFcitx5*.so.*.* +%{_libdir}/libFcitx5Config.so.6 +%{_libdir}/libFcitx5Core.so.7 +%{_libdir}/libFcitx5Utils.so.2 + +%files devel +%{_includedir}/Fcitx5/ +%{_libdir}/cmake/Fcitx5* +%{_libdir}/libFcitx5*.so +%{_libdir}/pkgconfig/Fcitx5*.pc + + +%files data +%{_datadir}/%{name} +%{_datadir}/dbus-1/services/org.fcitx.Fcitx5.service +%{_datadir}/applications/org.fcitx.Fcitx5.desktop +%{_metainfodir}/org.fcitx.Fcitx5.metainfo.xml +%{_datadir}/applications/%{name}-configtool.desktop +%{_datadir}/applications/%{name}-wayland-launcher.desktop +%{_datadir}/icons/hicolor/*/apps/* + +%files autostart +%config %{_sysconfdir}/xdg/autostart/org.fcitx.Fcitx5.desktop +%config %{_sysconfdir}/profile.d/fcitx5.sh + +%changelog +* Wed Aug 14 2024 liu-hengjian <411918005@qq.com> - 5.1.10-1 +- Init package version to 5.1.10 + diff --git a/fcitx5.yaml b/fcitx5.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c09a4629f7a1c20d4b86d2cf60647930616114d7 --- /dev/null +++ b/fcitx5.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: fcitx/fcitx5 +tag_prefix: ^ +separator: "."