diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2fac2003..6a6703e6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: debian:buster +image: debian:bullseye stages: - build @@ -11,7 +11,7 @@ stages: before_script: - apt-get -y update - apt-get -y install wget ca-certificates gnupg - - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list + - echo "deb [trusted=yes] http://ci.puri.sm/ bullseyeci main" > /etc/apt/sources.list.d/ci.list - wget -O- https://ci.puri.sm/ci-repo.key | apt-key add - - apt-get -y update @@ -27,7 +27,8 @@ build_docs: - ./doc/build.sh _build build_meson: - <<: *tags + tags: + - librem5 stage: build artifacts: paths: @@ -52,15 +53,48 @@ build_deb: - debuild -i -us -uc -b - cp ../*.deb . -build_deb:arm64: +build_deb:amber: + image: pureos/amber tags: - - librem5:arm64 - allow_failure: true + - librem5 stage: build artifacts: paths: - "*.deb" script: + - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list + - apt-get -y update + - rm -f ../*.deb + - apt-get -y build-dep . + - apt-get -y install devscripts + - debuild -i -us -uc -b + - cp ../*.deb . + +build_deb:arm64: + tags: + - librem5:arm64 + stage: build + artifacts: + paths: + - "*.deb" + script: + - rm -f ../*.deb + - apt-get -y build-dep . + - apt-get -y install devscripts + - debuild -i -us -uc -b + - cp ../*.deb . + +build_deb:arm64_buster: + image: "debian:buster" + tags: + - librem5:arm64 + stage: build + artifacts: + paths: + - "*.deb" + script: + - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list + - apt-get -y update - rm -f ../*.deb - apt-get -y build-dep . - apt-get -y install devscripts @@ -77,7 +111,8 @@ test_lintian: - lintian *.deb test: - <<: *tags + tags: + - librem5 stage: test needs: - build_meson diff --git a/Cargo.deps b/Cargo.deps new file mode 100644 index 00000000..6fe72260 --- /dev/null +++ b/Cargo.deps @@ -0,0 +1,22 @@ +# Dependencies which change based on build flags +bitflags = "1.2.*" +clap = { version = "2.33.*", default-features = false } +regex = { version = "1.3.*", default-features = false, features = ["std", "unicode-case"] } + +[dependencies.cairo-rs] +version = "0.7.*" + +[dependencies.gdk] +version = "0.11.*" + +[dependencies.gio] +version = "0.7.*" +features = ["v2_44"] + +[dependencies.glib] +version = "0.8.*" +features = ["v2_44"] + +[dependencies.gtk] +version = "0.7.*" +features = ["v3_22"] diff --git a/Cargo.deps.legacy b/Cargo.deps.legacy new file mode 100644 index 00000000..bfbb50dc --- /dev/null +++ b/Cargo.deps.legacy @@ -0,0 +1,22 @@ +# Dependencies which change based on build flags +bitflags = "1.0.*" +clap = { version = "2.32.*", default-features = false } +regex = { version = "1.1.*", default-features = false, features = ['use_std'] } + +[dependencies.cairo-rs] +version = "0.5.*" + +[dependencies.gdk] +version = "0.9.*" + +[dependencies.gio] +version = "0.5.*" +features = ["v2_44"] + +[dependencies.glib] +version = "0.6.*" +features = ["v2_44"] + +[dependencies.gtk] +version = "0.5.*" +features = ["v3_22"] diff --git a/Cargo.lock b/Cargo.lock index 2229db68..65916991 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,52 +1,55 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] -name = "aho-corasick" -version = "0.7.10" +name = "atk" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "atk-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bitflags" -version = "1.0.4" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cairo-rs" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cairo-sys-rs" -version = "0.7.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -56,11 +59,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "clap" -version = "2.32.0" +version = "2.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -76,105 +79,105 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gdk" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", - "pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gdk-pixbuf" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gdk-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", - "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gio" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gio-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glib" -version = "0.6.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glib-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", @@ -183,52 +186,54 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gtk" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", - "pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gtk-sys" -version = "0.7.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", - "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -252,11 +257,6 @@ name = "maplit" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "memchr" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "memmap" version = "0.7.0" @@ -268,25 +268,25 @@ dependencies = [ [[package]] name = "pango" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", - "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pango-sys" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -306,7 +306,7 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", @@ -314,14 +314,10 @@ dependencies = [ [[package]] name = "regex" -version = "1.1.9" +version = "1.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -333,20 +329,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "rs" version = "0.1.0" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)", "xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -364,47 +360,39 @@ version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_yaml" -version = "0.8.12" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", - "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "textwrap" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "thread_local" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "unicode-width" version = "0.1.7" @@ -415,11 +403,6 @@ name = "unicode-xid" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "utf8-ranges" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "winapi" version = "0.3.8" @@ -450,57 +433,54 @@ dependencies = [ [[package]] name = "yaml-rust" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] -"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" -"checksum atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7017e53393e713212aed7aea336b6553be4927f58c37070a56c2fe3d107e489" -"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dd940f0d609699e343ef71c4af5f66423afbf30d666f796dabd8fd15229cf5b6" -"checksum cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d25596627380be4381247dba06c69ad05ca21b3b065bd9827e416882ac41dcd2" +"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a" +"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f" +"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c" +"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63" "checksum cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)" = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311" -"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" +"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" "checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" "checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9" -"checksum gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc52c7244046df9d959df87289f1fc5cca23f9f850bab0c967963e2ecb83a96" -"checksum gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc3aa730cb4df3de5d9fed59f43afdf9e5fb2d3d10bfcbd04cec031435ce87f5" -"checksum gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08284f16ce4d909b10d785a763ba190e222d2c1557b29908bf0a661e27a8ac3b" -"checksum gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "108548ebf5329b551f2b97ab356908d14627905abb74b936c3372de1535aee81" -"checksum gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "29a44b051990573448edc80b1995237f8b97b5734d2aec05105b9242aa10af11" -"checksum gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6975ada29f7924dc1c90b30ed3b32d777805a275556c05e420da4fbdc22eb250" -"checksum glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a333edf5b9f1411c246ef14e7881b087255f04c56dbef48c64a0cb039b4b340" -"checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d" -"checksum gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08475e4a08f27e6e2287005950114735ed61cec2cb8c1187682a5aec8c69b715" -"checksum gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "56a6b30f194f09a17bb7ffa95c3ecdb405abd3b75ff981f831b1f6d18fe115ff" -"checksum gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d487d333a4b87072e6bf9f2e55befa0ebef01b9496c2e263c0f4a1ff3d6c04b1" +"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5" +"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc" +"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0" +"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb" +"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3" +"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911" +"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b" +"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" +"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" +"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60" +"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" "checksum libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)" = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" "checksum linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" "checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" -"checksum pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c2cb169402a3eb1ba034a7cc7d95b8b1c106e9be5ba4be79a5a93dc1a2795f4" -"checksum pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6eb49268e69dd0c1da5d3001a61aac08e2e9d2bfbe4ae4b19b9963c998f6453" +"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786" +"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d" "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" "checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" -"checksum quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" -"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad" +"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" "checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" "checksum serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d" "checksum serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250" -"checksum serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "16c7a592a1ec97c9c1c68d75b6e537dcbf60c7618e038e7841e00af1d9ccf0c4" -"checksum syn 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2" -"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" -"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" +"checksum serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5" +"checksum syn 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6" +"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" -"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba" "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fda0ea5f7ddabd51deeeda7799bee06274112f577da7dd3d954b8eda731b2fce" -"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" +"checksum yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d" diff --git a/Cargo.toml b/Cargo.toml.in similarity index 53% rename from Cargo.toml rename to Cargo.toml.in index e59996fc..887bca26 100644 --- a/Cargo.toml +++ b/Cargo.toml.in @@ -2,46 +2,39 @@ name = "rs" version = "0.1.0" -[dependencies] -bitflags = "1.0.*" -clap = { version = "2.32.*", default-features = false } -maplit = "1.0.*" -regex = "1.1.*" -serde = { version = "1.0.*", features = ["derive"] } -serde_yaml = "0.8.*" -xkbcommon = { version = "0.4.*", features = ["wayland"] } +[lib] +name = "rs" +path = "@path@/src/lib.rs" +crate-type = ["staticlib", "rlib"] -[dependencies.cairo-rs] -version = "0.5.*" +# Cargo can't do autodiscovery if Cargo.toml is not in the root. +[[bin]] +name = "test_layout" +path = "@path@/src/bin/test_layout.rs" +[[example]] +name = "test_layout" +path = "@path@/examples/test_layout.rs" + +[features] +gio_v0_5 = [] +gtk_v0_5 = [] + +# Dependencies which don't change based on build flags [dependencies.cairo-sys-rs] version = "" -[dependencies.gdk] -version = "" - -[dependencies.gio] -version = "" -features = ["v2_44"] - -[dependencies.glib] -version = "" -features = ["v2_44"] - [dependencies.glib-sys] version = "" features = ["v2_44"] -[dependencies.gtk] -version = "0.5.*" -features = ["v3_22"] - [dependencies.gtk-sys] version = "" features = ["v3_22"] - -[lib] -name = "rs" -path = "src/lib.rs" -crate-type = ["staticlib", "rlib"] +[dependencies] +maplit = "1.0.*" +serde = { version = "1.0.*", features = ["derive"] } +serde_yaml = "0.8.*" +xkbcommon = { version = "0.4.*", features = ["wayland"] } +# Here is inserted the Cargo.deps file diff --git a/cargo.sh b/cargo.sh index 434340b4..c4be97b4 100755 --- a/cargo.sh +++ b/cargo.sh @@ -13,5 +13,10 @@ CARGO_TARGET_DIR="$(pwd)" export CARGO_TARGET_DIR cd "$SOURCE_DIR" -cargo "$@" + +# the 'run" command takes arguments at the end, +# so --manifest-path must not be last +CMD="$1" +shift +cargo "$CMD" --manifest-path "$CARGO_TARGET_DIR"/Cargo.toml "$@" diff --git a/debian/rules b/debian/rules index fa33deb5..8e5b6bd6 100755 --- a/debian/rules +++ b/debian/rules @@ -3,13 +3,20 @@ export CARGO_HOME = $(CURDIR)/debian/cargo export DEB_BUILD_MAINT_OPTIONS = hardening=+all +distrel := $(shell lsb_release --codename --short) +ifneq (,$(filter $(distrel),buster amber)) + legacy = true +else + legacy = false +endif + %: dh $@ --builddirectory=_build --buildsystem=meson # The Debian version of linked-hash-map doesn't provide any hash, # causing Cargo to refuse to build with a crates.io copy -build-arch: +override_dh_auto_configure: [ ! -f Cargo.lock ] || rm Cargo.lock - dh $@ --builddirectory=_build --buildsystem=meson + dh_auto_configure -- -Dlegacy=$(legacy) override_dh_autoreconf: diff --git a/doc/hacking.md b/doc/hacking.md index 7b016f63..551b701b 100644 --- a/doc/hacking.md +++ b/doc/hacking.md @@ -175,10 +175,11 @@ All Cargo dependencies must be selected in the version available in PureOS, and Dependencies must be specified in `Cargo.toml` with 2 numbers: "major.minor". Since bugfix version number is meant to not affect the interface, this allows for safe updates. -`Cargo.lock` is used for remembering the revisions of all Rust dependencies. It should be updated often, preferably with each bugfix revision, and in a commit on its own: +`Cargo.lock` is used for remembering the revisions of all Rust dependencies. It must correspond to the default dependency configuration: without flags to use older or newer versions of dependencies. It should be updated often, preferably with each bugfix revision, and in a commit on its own: ``` cd build_dir +ninja build src/Cargo.toml sh /source_path/cargo.sh update ninja test ``` diff --git a/meson.build b/meson.build index a4311737..810d3bdb 100644 --- a/meson.build +++ b/meson.build @@ -61,6 +61,32 @@ summary = [ ] message('\n'.join(summary)) +# Rust deps are changing, depending on compile flags. Cargo can't handle it alone. +cargo_toml_in = files('Cargo.toml.in') +path_data = configuration_data() +path_data.set('path', meson.source_root()) +cargo_toml_base = configure_file( + input: 'Cargo.toml.in', + output: 'Cargo.toml.base', + configuration: path_data, +) + + +cargo_deps = files('Cargo.deps') + +if get_option('legacy') == true + cargo_build_flags += ['--features', 'gtk_v0_5,gio_v0_5'] + cargo_deps = files('Cargo.deps.legacy') +endif + +cat = find_program('cat') +cargo_toml = custom_target( + 'Cargo.toml', + output: 'Cargo.toml', + command: [cat, cargo_toml_base, cargo_deps], + capture: true, +) + dep_cargo = find_program('cargo') cargo_script = find_program('cargo.sh') cargo_build = find_program('cargo_build.sh') diff --git a/meson_options.txt b/meson_options.txt index 339e1ba3..180f12f3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,3 +6,7 @@ option('depdatadir', option('tests', type: 'boolean', value: true, description: 'Whether to compile unit tests') + +option('legacy', + type: 'boolean', value: false, + description: 'Build with Deban Buster versions of dependencies') diff --git a/src/data.rs b/src/data.rs index 163b7b30..4ff7cc2d 100644 --- a/src/data.rs +++ b/src/data.rs @@ -741,10 +741,19 @@ mod tests { use std::error::Error as ErrorTrait; use ::logging::ProblemPanic; + const THIS_FILE: &str = file!(); + + fn path_from_root(file: &'static str) -> PathBuf { + PathBuf::from(THIS_FILE) + .parent().unwrap() + .parent().unwrap() + .join(file) + } + #[test] fn test_parse_path() { assert_eq!( - Layout::from_file(PathBuf::from("tests/layout.yaml")).unwrap(), + Layout::from_file(path_from_root("tests/layout.yaml")).unwrap(), Layout { margins: Margins { top: 0f64, bottom: 0f64, side: 0f64 }, views: hashmap!( @@ -771,7 +780,7 @@ mod tests { /// Check if the default protection works #[test] fn test_empty_views() { - let out = Layout::from_file(PathBuf::from("tests/layout2.yaml")); + let out = Layout::from_file(path_from_root("tests/layout2.yaml")); match out { Ok(_) => assert!(false, "Data mistakenly accepted"), Err(e) => { @@ -789,7 +798,7 @@ mod tests { #[test] fn test_extra_field() { - let out = Layout::from_file(PathBuf::from("tests/layout3.yaml")); + let out = Layout::from_file(path_from_root("tests/layout3.yaml")); match out { Ok(_) => assert!(false, "Data mistakenly accepted"), Err(e) => { @@ -808,7 +817,7 @@ mod tests { #[test] fn test_layout_punctuation() { - let out = Layout::from_file(PathBuf::from("tests/layout_key1.yaml")) + let out = Layout::from_file(path_from_root("tests/layout_key1.yaml")) .unwrap() .build(ProblemPanic).0 .unwrap(); @@ -823,7 +832,7 @@ mod tests { #[test] fn test_layout_unicode() { - let out = Layout::from_file(PathBuf::from("tests/layout_key2.yaml")) + let out = Layout::from_file(path_from_root("tests/layout_key2.yaml")) .unwrap() .build(ProblemPanic).0 .unwrap(); @@ -839,7 +848,7 @@ mod tests { /// Test multiple codepoints #[test] fn test_layout_unicode_multi() { - let out = Layout::from_file(PathBuf::from("tests/layout_key3.yaml")) + let out = Layout::from_file(path_from_root("tests/layout_key3.yaml")) .unwrap() .build(ProblemPanic).0 .unwrap(); @@ -916,7 +925,7 @@ mod tests { #[test] fn test_layout_margins() { - let out = Layout::from_file(PathBuf::from("tests/layout_margins.yaml")) + let out = Layout::from_file(path_from_root("tests/layout_margins.yaml")) .unwrap() .build(ProblemPanic).0 .unwrap(); diff --git a/src/meson.build b/src/meson.build index 1502dd31..7cc3ce73 100644 --- a/src/meson.build +++ b/src/meson.build @@ -55,7 +55,8 @@ rslibs = custom_target( output: ['librs.a'], install: false, console: true, - command: [cargo_build] + cargo_build_flags + ['@OUTPUT@', '--lib'] + command: [cargo_build] + ['@OUTPUT@', '--lib'] + cargo_build_flags, + depends: cargo_toml, ) build_rstests = custom_target( @@ -69,17 +70,17 @@ build_rstests = custom_target( output: ['src'], install: false, console: true, - command: [cargo_script, 'test', '--no-run'], - depends: rslibs, # no point building tests if the code itself fails + command: [cargo_script, 'test', '--no-run'] + cargo_build_flags, + depends: [rslibs, cargo_toml], # no point building tests if the code itself fails ) test( 'rstest', cargo_script, - args: ['test'], + args: ['test'] + cargo_build_flags, # this is a whole Carg-based test suite, let it run for a while timeout: 900, - depends: build_rstests, + depends: [build_rstests, cargo_toml], ) libsqueekboard = static_library('libsqueekboard', diff --git a/src/popover.rs b/src/popover.rs index 96d3a971..65551a23 100644 --- a/src/popover.rs +++ b/src/popover.rs @@ -11,11 +11,15 @@ use ::logging; use ::manager; use ::resources; +// Traits use gio::ActionMapExt; use gio::SettingsExt; +#[cfg(feature = "gio_v0_5")] use gio::SimpleActionExt; use glib::translate::FromGlibPtrNone; use glib::variant::ToVariant; +#[cfg(not(feature = "gtk_v0_5"))] +use gtk::BuilderExtManual; use gtk::PopoverExt; use gtk::WidgetExt; use std::io::Write; diff --git a/tests/meson.build b/tests/meson.build index aeb0b146..67b7983b 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -69,7 +69,9 @@ foreach layout : [ test( 'test_layout_' + layout, cargo_script, - args: ['run', '--example', 'test_layout', layout] + args: ['run'] + cargo_build_flags + + [ '--example', 'test_layout', '--', layout], + workdir: meson.build_root(), ) endforeach diff --git a/tools/meson.build b/tools/meson.build index 9246326a..75a7e179 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -12,8 +12,9 @@ test_layout = custom_target('squeekboard-test-layout', build_always_stale: true, output: ['squeekboard-test-layout'], console: true, - command: [cargo_build] + cargo_build_flags - + ['--rename', 'test_layout', '@OUTPUT@', '--bin', 'test_layout'], + command: [cargo_build, '--rename', 'test_layout', '@OUTPUT@', '--bin', 'test_layout'] + + cargo_build_flags, install: true, install_dir: bindir, + depends: cargo_toml, )