Merge branch 'workaround-for-unavailable-dependencies' into 'main'

CI: Add workaround for unavailable dependencies

See merge request World/Phosh/squeekboard!633
This commit is contained in:
Marge Bot
2024-04-03 19:27:57 +00:00
3 changed files with 90 additions and 6 deletions

View File

@ -23,7 +23,9 @@ stages:
- deploy - deploy
before_script: 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 update
- apt-get -y install ca-certificates - apt-get -y install ca-certificates
@ -46,7 +48,6 @@ build_meson:
- _build - _build
expire_in: 3h expire_in: 3h
script: script:
- apt-get -y install -t experimental librust-serde-yaml-dev
- apt-get -y build-dep . - apt-get -y build-dep .
- meson . _build/ -Ddepdatadir=/usr/share -Dfind_orphans=true --werror - meson . _build/ -Ddepdatadir=/usr/share -Dfind_orphans=true --werror
- ninja -C _build install - ninja -C _build install
@ -63,9 +64,18 @@ build_deb:
- '*.deb' - '*.deb'
script: script:
- rm -f ../*.deb - rm -f ../*.deb
- apt-get -y install -t experimental librust-serde-yaml-dev
- apt-get -y build-dep . - apt-get -y build-dep .
- apt-get -y install devscripts - 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) - REV=$(git log -1 --format=%h)
- VER=$(dpkg-parsechangelog -SVersion) - VER=$(dpkg-parsechangelog -SVersion)
- DEBFULLNAME="Librem5 CI" - DEBFULLNAME="Librem5 CI"
@ -83,7 +93,6 @@ build_reference:
paths: paths:
- _build/doc - _build/doc
script: script:
- apt-get -y install -t experimental librust-serde-yaml-dev
- apt-get -y build-dep . - apt-get -y build-dep .
- apt-get -y install cargo - apt-get -y install cargo
- cd _build - cd _build
@ -98,7 +107,6 @@ test:
- job: build_meson - job: build_meson
artifacts: true artifacts: true
script: script:
- apt-get -y install -t experimental librust-serde-yaml-dev
- apt-get -y build-dep . - apt-get -y build-dep .
- apt-get -y install clang-tidy - apt-get -y install clang-tidy
- ninja -C _build test - ninja -C _build test
@ -111,7 +119,6 @@ test_style:
stage: test stage: test
needs: [] needs: []
script: script:
- apt-get -y install -t experimental librust-serde-yaml-dev
- apt-get -y build-dep . - apt-get -y build-dep .
- tools/style-check_source - tools/style-check_source
except: except:

71
debian/control.debian-testing vendored Normal file
View File

@ -0,0 +1,71 @@
Source: squeekboard
Section: x11
Priority: optional
Maintainer: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
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

View File

@ -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. 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 Testing
------- -------