diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3e01f45..16511e90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,9 @@ stages: - deploy before_script: - - echo "deb http://deb.debian.org/debian/ experimental main" > /etc/apt/sources.list.d/experimental.list +# Workaround for unavailable dependencies + - mv debian/control.debian-testing debian/control +# End of workaround for unavailable dependencies - apt-get -y update - apt-get -y install ca-certificates @@ -46,7 +48,6 @@ build_meson: - _build expire_in: 3h script: - - apt-get -y install -t experimental librust-serde-yaml-dev - apt-get -y build-dep . - meson . _build/ -Ddepdatadir=/usr/share -Dfind_orphans=true --werror - ninja -C _build install @@ -63,9 +64,18 @@ build_deb: - '*.deb' script: - rm -f ../*.deb - - apt-get -y install -t experimental librust-serde-yaml-dev - apt-get -y build-dep . - apt-get -y install devscripts +# Workaround for unavailable dependencies +# TODO: Port Squeekboard to GTK4/GTK4-layer-shell +# https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/64 + - echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list + - echo "deb http://deb.debian.org/debian/ experimental main" > /etc/apt/sources.list.d/experimental.list + - apt-get -y update + - apt-get -y --no-upgrade install librust-gio-dev librust-glib-dev librust-glib-sys-dev + librust-gtk-dev librust-gtk-sys-dev + - apt-get -y --no-upgrade install -t experimental librust-serde-yaml-dev +# End of workaround for unavailable dependencies - REV=$(git log -1 --format=%h) - VER=$(dpkg-parsechangelog -SVersion) - DEBFULLNAME="Librem5 CI" @@ -83,7 +93,6 @@ build_reference: paths: - _build/doc script: - - apt-get -y install -t experimental librust-serde-yaml-dev - apt-get -y build-dep . - apt-get -y install cargo - cd _build @@ -98,7 +107,6 @@ test: - job: build_meson artifacts: true script: - - apt-get -y install -t experimental librust-serde-yaml-dev - apt-get -y build-dep . - apt-get -y install clang-tidy - ninja -C _build test @@ -111,7 +119,6 @@ test_style: stage: test needs: [] script: - - apt-get -y install -t experimental librust-serde-yaml-dev - apt-get -y build-dep . - tools/style-check_source except: diff --git a/debian/control.debian-testing b/debian/control.debian-testing new file mode 100644 index 00000000..ac719bf9 --- /dev/null +++ b/debian/control.debian-testing @@ -0,0 +1,71 @@ +Source: squeekboard +Section: x11 +Priority: optional +Maintainer: Dorota Czaplejewicz +Build-Depends: + cargo, + debhelper-compat (= 13), + meson (>=0.51.0), + ninja-build, + pkg-config, + libbsd-dev, + libfeedback-dev, + libglib2.0-dev, + libgnome-desktop-3-dev, + libgtk-3-dev, + librust-aho-corasick-dev, + librust-bitflags-1-dev (>= 1.0), + librust-clap-4+std-dev (>= 4.0), +# TODO: Port to GTK4/GTK4-layer-shell +# https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/64 +# These dependencies have been removed from Debian Testing. +# Building with dependencies from "crates.io" still works without these. +# librust-gio+v2-58-dev (>= 0.18), +# librust-glib+v2-58-dev (>= 0.18), +# librust-glib-sys-dev (>= 0.18), +# librust-gtk+v3-24-dev (>= 0.18), +# librust-gtk-sys-dev (>= 0.18), + librust-maplit-1-dev (>= 1.0), + librust-serde-derive-1-dev (>= 1.0), +# Currently in Debian Experimental +# librust-serde-yaml-0.9-dev (>= 0.9), + librust-thread-local-dev, + librust-xkbcommon-dev (>= 0.5), + librust-zbus-1-dev (>= 1.9), + librust-zvariant-2-dev (>= 2.10), + librust-zvariant-derive-2-dev (>= 2.10), + libwayland-dev (>= 1.16), + lsb-release, + python3, + python3-ruamel.yaml, + rustc, + wayland-protocols (>= 1.14), +Standards-Version: 4.1.3 +Homepage: https://gitlab.gnome.org/World/Phosh/squeekboard + +Package: squeekboard +Architecture: linux-any +Depends: +# for Greek polytonic readability + fonts-gfs-didot-classic, +# for the Adwaita-dark theme + gnome-themes-extra-data, + ${shlibs:Depends}, + ${misc:Depends}, +Breaks: + librem5-base (<< 24), +Description: On-screen keyboard for Wayland + Virtual keyboard supporting Wayland, built primarily for the Librem 5 phone. + +Package: squeekboard-devel +Architecture: linux-any +Depends: + python3, + python3-gi, + ${shlibs:Depends}, + ${misc:Depends}, +Description: Resources for making Squeekboard layouts + Tools for creating and testing Squeekboard layouts: + . + * squeekboard-entry + * squeekboard-test-layout diff --git a/doc/hacking.md b/doc/hacking.md index eb32c452..0950a164 100644 --- a/doc/hacking.md +++ b/doc/hacking.md @@ -58,6 +58,12 @@ sudo apt-get -y build-dep . For an explicit list of dependencies check the `Build-Depends` entry in the [`debian/control`](debian/control) file. +Note: Some build-dependencies are currently unavailable in Debian Testing. +To be able to install the build-dependencies with the previously mentioned commands anyway, +rename `control` in the `debian`-folder to `control.original`, +and `control.debian-testing` to `control` before using those commands. +The remaining dependencies will then be downloaded by `cargo` when building Squeekboard. + Testing -------