File debian.rules of Package kime
#!/usr/bin/make -f export DH_VERBOSE = 1 export LIBCLANG_PATH = $(shell llvm-config --libdir) export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) %: dh $@ override_dh_auto_configure: # Extract vendor (try multiple locations) if [ -f ../vendor.tar.xz ]; then tar xf ../vendor.tar.xz; \ elif [ -f ../vendor.tar.zst ]; then tar xf ../vendor.tar.zst; \ elif [ -f /usr/src/packages/SOURCES/vendor.tar.xz ]; then tar xf /usr/src/packages/SOURCES/vendor.tar.xz; \ elif [ -f /usr/src/packages/SOURCES/vendor.tar.zst ]; then tar xf /usr/src/packages/SOURCES/vendor.tar.zst; \ elif [ -d vendor ]; then echo "vendor already exists"; \ else echo "ERROR: vendor tarball not found!" && exit 1; fi mkdir -p .cargo echo '[source.crates-io]' > .cargo/config.toml echo 'replace-with = "vendored-sources"' >> .cargo/config.toml echo '[source.vendored-sources]' >> .cargo/config.toml echo 'directory = "vendor"' >> .cargo/config.toml override_dh_auto_build: # Build Rust components cargo build --release --locked -p kime-engine-capi -p kime-engine-cffi export LIBRARY_PATH="$(CURDIR)/target/release:$$LIBRARY_PATH" && \ cargo build --release --locked \ -p kime -p kime-check -p kime-indicator \ -p kime-candidate-window -p kime-xim -p kime-wayland # Build GTK/Qt modules mkdir -p build && cd build && \ cmake ../src \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \ -DENABLE_GTK3=ON -DENABLE_GTK4=ON \ -DENABLE_QT5=ON -DENABLE_QT6=ON && \ $(MAKE) override_dh_auto_install: # Install binaries install -Dm755 target/release/kime debian/kime/usr/bin/kime install -Dm755 target/release/kime-check debian/kime/usr/bin/kime-check install -Dm755 target/release/kime-indicator debian/kime/usr/bin/kime-indicator install -Dm755 target/release/kime-candidate-window debian/kime/usr/bin/kime-candidate-window install -Dm755 target/release/kime-xim debian/kime/usr/bin/kime-xim install -Dm755 target/release/kime-wayland debian/kime/usr/bin/kime-wayland install -Dm755 res/kime-xdg-autostart debian/kime/usr/bin/kime-xdg-autostart # Install library install -Dm755 target/release/libkime_engine.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/libkime_engine.so # Install desktop files install -Dm644 res/kime.desktop debian/kime/usr/share/applications/kime.desktop install -Dm644 res/kime.desktop debian/kime/etc/xdg/autostart/kime.desktop install -Dm644 res/icons/64x64/*.png -t debian/kime/usr/share/icons/hicolor/64x64/apps/ # Install docs install -Dm644 res/default_config.yaml debian/kime/usr/share/doc/kime/default_config.yaml # Install dev files (included in main package) install -Dm644 src/engine/cffi/kime_engine.h debian/kime/usr/include/kime_engine.h install -Dm644 src/engine/cffi/kime_engine.hpp debian/kime/usr/include/kime_engine.hpp # Install GTK3 module (included in main package) install -Dm755 build/lib/libkime-gtk3.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/gtk-3.0/3.0.0/immodules/im-kime.so # Install GTK4 module (included in main package) install -Dm755 build/lib/libkime-gtk4.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/gtk-4.0/4.0.0/immodules/libkime-gtk4.so # Install Qt5 module (included in main package) install -Dm755 build/lib/libkime-qt5.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so # Install Qt6 module (included in main package) install -Dm755 build/lib/libkime-qt6.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/qt6/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so override_dh_auto_clean: rm -rf target build vendor .cargo override_dh_auto_test: # Skip tests