build: switch to debcargo

to autogenerate crate (build)-dependencies, and correct Provides
statements.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2020-01-15 08:05:49 +01:00
parent a01491036c
commit a94de245f0
45 changed files with 144 additions and 334 deletions

View File

@ -8,3 +8,6 @@ members = [
"proxmox-tools",
"proxmox",
]
exclude = [
"build",
]

View File

@ -1,9 +1,20 @@
# Shortcut for common operations:
CRATES=proxmox proxmox-api proxmox-api-macro proxmox-sortable-macro proxmox-sys proxmox-tools
# By default we just run checks:
.PHONY: all
all: check
.PHONY: deb
deb: $(foreach c,$(CRATES), $c-deb)
echo $(foreach c,$(CRATES), $c-deb)
lintian build/*.deb
%-deb:
./build.sh $*
touch $@
.PHONY: check
check:
cargo fmt -- --check
@ -33,6 +44,7 @@ doc:
.PHONY: clean
clean:
cargo clean
rm -rf build *-deb
.PHONY: update
update:

13
build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
set -e
CRATE=$1
BUILDCMD=${BUILDCMD:-"dpkg-buildpackage -b -uc -us"}
mkdir -p build
rm -rf "build/${CRATE}"
debcargo package --config "$(pwd)/${CRATE}/debian/debcargo.toml" --changelog-ready --no-overlay-write-back --directory "$(pwd)/build/${CRATE}" "${CRATE}" "$(dpkg-parsechangelog -l "${CRATE}/debian/changelog" -SVersion | sed -e 's/-.*//')"
cd "build/${CRATE}"
${BUILDCMD}

View File

@ -3,6 +3,10 @@ name = "proxmox-api-macro"
edition = "2018"
version = "0.1.1"
authors = [ "Wolfgang Bumiller <w.bumiller@proxmox.com>" ]
license = "AGPL-3"
description = "Proxmox API macro"
exclude = [ "debian" ]
[lib]
proc-macro = true

View File

@ -1 +0,0 @@
{"package":"proxmox-api-macro","files":{}}

View File

@ -1,3 +1,9 @@
rust-proxmox-api-macro (0.1.1-1) proxmox-rust; urgency=medium
* switch packaging to debcargo with local crate support
-- Proxmox Support Team <support@proxmox.com> Mon, 13 Jan 2020 10:41:01 +0100
rust-proxmox-api-macro (0.1.1) proxmox-rust; urgency=medium
* cover all the basic struct support in the #[api] macro

View File

@ -1 +0,0 @@
12

View File

@ -1,33 +0,0 @@
Source: rust-proxmox-api-macro
Section: rust
Priority: optional
Build-Depends: debhelper (>= 12),
dh-cargo (>= 21~),
cargo:native <!nocheck>,
rustc:native <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-failure-0.1+default-dev <!nocheck>,
librust-proc-macro2-1.0+default-dev <!nocheck>,
librust-quote-1.0+default-dev <!nocheck>,
librust-syn-1.0+full-dev <!nocheck>,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.4.1
Package: librust-proxmox-api-macro-dev
Architecture: any
Depends:
${misc:Depends},
librust-failure-0.1+default-dev,
librust-proc-macro2-1.0+default-dev,
librust-quote-1.0+default-dev,
librust-syn-1.0+full-dev,
Provides:
librust-proxmox-api-macro+default-dev (= ${binary:Version}),
librust-proxmox-api-macro-0-dev (= ${binary:Version}),
librust-proxmox-api-macro-0+default-dev (= ${binary:Version}),
librust-proxmox-api-macro-0.1-dev (= ${binary:Version}),
librust-proxmox-api-macro-0.1+default-dev (= ${binary:Version}),
librust-proxmox-api-macro-0.1.1-dev (= ${binary:Version}),
librust-proxmox-api-macro-0.1.1+default-dev (= ${binary:Version}),
Description: Proxmox API Macro library - Rust source code
This package contains the source for the Rust proxmox-api-macro crate.

View File

@ -0,0 +1,8 @@
overlay = "."
crate_src_path = ".."
[source]
# TODO: update once public
vcs_git = ""
vcs_browser = ""
maintainer = "Proxmox Support Team <support@proxmox.com>"

View File

@ -1,3 +0,0 @@
#!/usr/bin/make -f
%:
dh $@ --buildsystem cargo

View File

@ -3,6 +3,10 @@ name = "proxmox-api"
edition = "2018"
version = "0.1.1"
authors = [ "Wolfgang Bumiller <w.bumiller@proxmox.com>" ]
license = "AGPL-3"
description = "Proxmox API library"
exclude = [ "debian" ]
[dependencies]
bytes = "0.5"

View File

@ -1 +0,0 @@
{"package":"proxmox-api","files":{}}

View File

@ -1,3 +1,9 @@
rust-proxmox-api (0.1.1-1) proxmox-rust; urgency=medium
* switch packaging to debcargo with local crate support
-- Proxmox Support Team <support@proxmox.com> Mon, 13 Jan 2020 10:41:01 +0100
rust-proxmox-api (0.1.1) proxmox-rust; urgency=medium
* bump proxmox-tools dependency

View File

@ -1 +0,0 @@
12

View File

@ -1,62 +0,0 @@
Source: rust-proxmox-api
Section: rust
Priority: optional
Build-Depends: debhelper (>= 12),
dh-cargo (>= 21~),
cargo:native <!nocheck>,
rustc:native <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-bytes-0.5+default-dev <!nocheck>,
librust-failure-0.1+default-dev <!nocheck>,
librust-futures-0.3+default-dev <!nocheck>,
librust-http-0.2+default-dev <!nocheck>,
librust-proxmox-tools-0.1.1+default-dev <!nocheck>,
librust-regex-1.2+default-dev <!nocheck>,
librust-rustyline-5.0.5+default-dev <!nocheck>,
librust-serde-1.0+default-dev <!nocheck>,
librust-serde-derive-1.0+default-dev <!nocheck>,
librust-serde-json-1.0+default-dev <!nocheck>,
librust-textwrap-0.11+default-dev <!nocheck>,
librust-url-2.1+default-dev <!nocheck>,
librust-tokio-0.2-dev <!nocheck>,
librust-hyper-0.13+default-dev <!nocheck>,
librust-lazy-static-1.4+default-dev <!nocheck>,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.4.1
Package: librust-proxmox-api-dev
Architecture: any
Depends:
${misc:Depends},
librust-bytes-0.5+default-dev,
librust-failure-0.1+default-dev,
librust-futures-0.3+default-dev,
librust-http-0.2+default-dev,
librust-proxmox-tools-0.1.1+default-dev,
librust-regex-1.2+default-dev,
librust-rustyline-5.0.5+default-dev,
librust-serde-1.0+default-dev,
librust-serde-derive-1.0+default-dev,
librust-serde-json-1.0+default-dev,
librust-textwrap-0.11+default-dev,
librust-url-2.1+default-dev,
librust-tokio-0.2-dev,
librust-hyper-0.13+default-dev,
Provides:
librust-proxmox-api+default-dev (= ${binary:Version}),
librust-proxmox-api+router-dev (= ${binary:Version}),
librust-proxmox-api+cli-dev (= ${binary:Version}),
librust-proxmox-api-0-dev (= ${binary:Version}),
librust-proxmox-api-0+default-dev (= ${binary:Version}),
librust-proxmox-api-0+router-dev (= ${binary:Version}),
librust-proxmox-api-0+cli-dev (= ${binary:Version}),
librust-proxmox-api-0.1-dev (= ${binary:Version}),
librust-proxmox-api-0.1+default-dev (= ${binary:Version}),
librust-proxmox-api-0.1+router-dev (= ${binary:Version}),
librust-proxmox-api-0.1+cli-dev (= ${binary:Version}),
librust-proxmox-api-0.1.1-dev (= ${binary:Version}),
librust-proxmox-api-0.1.1+default-dev (= ${binary:Version}),
librust-proxmox-api-0.1.1+router-dev (= ${binary:Version}),
librust-proxmox-api-0.1.1+cli-dev (= ${binary:Version}),
Description: Proxmox API library - Rust source code
This package contains the source for the Rust proxmox-api crate.

View File

@ -0,0 +1,8 @@
overlay = "."
crate_src_path = ".."
[source]
# TODO: update once public
vcs_git = ""
vcs_browser = ""
maintainer = "Proxmox Support Team <support@proxmox.com>"

View File

@ -1,7 +0,0 @@
#!/usr/bin/make -f
%:
dh $@ --buildsystem cargo
override_dh_auto_build:
sed -ie 's/, path = ".*"//' Cargo.toml
dh_auto_build

View File

@ -3,6 +3,10 @@ name = "proxmox-sortable-macro"
version = "0.1.0"
authors = ["Wolfgang Bumiller <w.bumiller@proxmox.com>"]
edition = "2018"
license = "AGPL-3"
description = "Proxmox sortable macro"
exclude = [ "debian" ]
[lib]
proc-macro = true

View File

@ -1 +0,0 @@
{"package":"proxmox-sortable-macro","files":{}}

View File

@ -1,3 +1,9 @@
rust-proxmox-sortable-macro (0.1.0-1) proxmox-rust; urgency=medium
* switch packaging to debcargo with local crate support
-- Proxmox Support Team <support@proxmox.com> Mon, 13 Jan 2020 10:41:01 +0100
rust-proxmox-sortable-macro (0.1.0) proxmox-rust; urgency=medium
* Initial packaging.

View File

@ -1 +0,0 @@
12

View File

@ -1,35 +0,0 @@
Source: rust-proxmox-sortable-macro
Section: rust
Priority: optional
Build-Depends: debhelper (>= 12),
dh-cargo (>= 21~),
cargo:native <!nocheck>,
rustc:native <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-failure-0.1+default-dev <!nocheck>,
librust-proc-macro2-1.0+default-dev <!nocheck>,
librust-quote-1.0+default-dev <!nocheck>,
librust-syn-1.0+full-dev <!nocheck>,
librust-syn-1.0+visit-mut-dev <!nocheck>,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.4.1
Package: librust-proxmox-sortable-macro-dev
Architecture: any
Depends:
${misc:Depends},
librust-failure-0.1+default-dev,
librust-proc-macro2-1.0+default-dev,
librust-quote-1.0+default-dev,
librust-syn-1.0+full-dev,
librust-syn-1.0+visit-mut-dev,
Provides:
librust-proxmox-sortable-macro+default-dev (= ${binary:Version}),
librust-proxmox-sortable-macro-0-dev (= ${binary:Version}),
librust-proxmox-sortable-macro-0+default-dev (= ${binary:Version}),
librust-proxmox-sortable-macro-0.1-dev (= ${binary:Version}),
librust-proxmox-sortable-macro-0.1+default-dev (= ${binary:Version}),
librust-proxmox-sortable-macro-0.1.0-dev (= ${binary:Version}),
librust-proxmox-sortable-macro-0.1.0+default-dev (= ${binary:Version}),
Description: Proxmox Sortable Macro - Rust source code
This package contains the source for the Rust proxmox-sortable-macro crate.

View File

@ -0,0 +1,8 @@
overlay = "."
crate_src_path = ".."
[source]
# TODO: update once public
vcs_git = ""
vcs_browser = ""
maintainer = "Proxmox Support Team <support@proxmox.com>"

View File

@ -1,3 +0,0 @@
#!/usr/bin/make -f
%:
dh $@ --buildsystem cargo

View File

@ -6,6 +6,10 @@ authors = [
"Dietmar Maurer <dietmar@proxmox.com>",
"Wolfgang Bumiller <w.bumiller@proxmox.com>",
]
license = "AGPL-3"
description = "Proxmox system library"
exclude = [ "debian" ]
[dependencies]
failure = "0.1"

View File

@ -1 +0,0 @@
{"package":"proxmox-sys","files":{}}

View File

@ -1,3 +1,9 @@
rust-proxmox-sys (0.1.1-1) proxmox-rust; urgency=medium
* switch packaging to debcargo with local crate support
-- Proxmox Support Team <support@proxmox.com> Mon, 13 Jan 2020 10:41:01 +0100
rust-proxmox-sys (0.1.1) proxmox-rust; urgency=medium
* added: various helpers for dealing with nix and io errors

View File

@ -1 +0,0 @@
12

View File

@ -1,35 +0,0 @@
Source: rust-proxmox-sys
Section: rust
Priority: optional
Build-Depends: debhelper (>= 12),
dh-cargo (>= 21~),
cargo:native <!nocheck>,
rustc:native <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-failure-0.1+default-dev <!nocheck>,
librust-lazy-static-1.4+default-dev <!nocheck>,
librust-libc-0.2+default-dev <!nocheck>,
librust-nix-0.16+default-dev <!nocheck>,
librust-proxmox-tools-0.1.1+default-dev <!nocheck>,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.4.1
Package: librust-proxmox-sys-dev
Architecture: any
Depends:
${misc:Depends},
librust-failure-0.1+default-dev,
librust-lazy-static-1.4+default-dev,
librust-libc-0.2+default-dev,
librust-nix-0.16+default-dev,
librust-proxmox-tools-0.1.1+default-dev,
Provides:
librust-proxmox-sys+default-dev (= ${binary:Version}),
librust-proxmox-sys-0-dev (= ${binary:Version}),
librust-proxmox-sys-0+default-dev (= ${binary:Version}),
librust-proxmox-sys-0.1-dev (= ${binary:Version}),
librust-proxmox-sys-0.1+default-dev (= ${binary:Version}),
librust-proxmox-sys-0.1.1-dev (= ${binary:Version}),
librust-proxmox-sys-0.1.1+default-dev (= ${binary:Version}),
Description: Proxmox system library - Rust source code
This package contains the source for the Rust proxmox-sys crate.

View File

@ -0,0 +1,8 @@
overlay = "."
crate_src_path = ".."
[source]
# TODO: update once public
vcs_git = ""
vcs_browser = ""
maintainer = "Proxmox Support Team <support@proxmox.com>"

View File

@ -1,7 +0,0 @@
#!/usr/bin/make -f
%:
dh $@ --buildsystem cargo
override_dh_auto_build:
sed -ie 's/proxmox-tools = { path = "\.\.\/proxmox-tools" }/proxmox-tools = "0.1.0"/' Cargo.toml
dh_auto_build

View File

@ -6,6 +6,10 @@ authors = [
"Dietmar Maurer <dietmar@proxmox.com>",
"Wolfgang Bumiller <w.bumiller@proxmox.com>",
]
license = "AGPL-3"
description = "Proxmox tools"
exclude = [ "debian" ]
[dependencies]
base64 = "0.10"

View File

@ -1 +0,0 @@
{"package":"proxmox-tools","files":{}}

View File

@ -1,3 +1,9 @@
rust-proxmox-tools (0.1.1-1) proxmox-rust; urgency=medium
* switch packaging to debcargo with local crate support
-- Proxmox Support Team <support@proxmox.com> Mon, 13 Jan 2020 10:41:01 +0100
rust-proxmox-tools (0.1.1) proxmox-rust; urgency=medium
* correctly default to mode 0644 in replace_file

View File

@ -1 +0,0 @@
12

View File

@ -1,67 +0,0 @@
Source: rust-proxmox-tools
Section: rust
Priority: optional
Build-Depends: debhelper (>= 12),
dh-cargo (>= 21~),
cargo:native <!nocheck>,
rustc:native <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-base64-0.10+default-dev <!nocheck>,
librust-chrono-0.4+default-dev <!nocheck>,
librust-endian-trait-0.6+arrays-dev <!nocheck>,
librust-failure-0.1+default-dev <!nocheck>,
librust-lazy-static-1.4+default-dev <!nocheck>,
librust-libc-0.2+default-dev <!nocheck>,
librust-nix-0.16+default-dev <!nocheck>,
librust-regex-1.2+default-dev <!nocheck>,
librust-serde-1.0+derive-dev <!nocheck>,
librust-serde-json-1.0+default-dev <!nocheck>,
# not compatible with stable rustc
# librust-valgrind-request-1.1.0+default-dev <!nocheck>,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.4.1
Package: librust-proxmox-tools-dev
Architecture: any
Depends:
${misc:Depends},
librust-base64-0.10+default-dev,
librust-chrono-0.4+default-dev,
librust-endian-trait-0.6+arrays-dev,
librust-failure-0.1+default-dev,
librust-libc-0.2+default-dev,
librust-nix-0.16+default-dev,
librust-regex-1.2+default-dev,
librust-serde-1.0+derive-dev,
librust-serde-json-1.0+default-dev,
Provides:
librust-proxmox-tools+default-dev (= ${binary:Version}),
librust-proxmox-tools-0-dev (= ${binary:Version}),
librust-proxmox-tools-0+default-dev (= ${binary:Version}),
librust-proxmox-tools-0.1-dev (= ${binary:Version}),
librust-proxmox-tools-0.1+default-dev (= ${binary:Version}),
librust-proxmox-tools-0.1.1-dev (= ${binary:Version}),
librust-proxmox-tools-0.1.1+default-dev (= ${binary:Version}),
Description: Proxmox tools library - Rust source code
This package contains the source for the Rust proxmox-tools crate.
# not compatible with stable rustc
# Package: librust-proxmox-tools+valgrind-dev
# Architecture: any
# Depends:
# ${misc:Depends},
# librust-base64-0.10+default-dev,
# librust-chrono-0.4+default-dev,
# librust-endian-trait-0.6+arrays-dev,
# librust-failure-0.1+default-dev,
# librust-lazy-static-1.3+default-dev,
# librust-libc-0.2+default-dev,
# librust-nix-0.15+default-dev,
# librust-regex-1.2+default-dev,
# librust-serde-1.0+derive-dev,
# librust-serde-json-1.0+default-dev,
# librust-valgrind-request-1.1.0+default-dev,
# Provides:
# librust-proxmox-tools-0+valgrind-dev (= ${binary:Version}),
# librust-proxmox-tools-0.1+valgrind-dev (= ${binary:Version}),
# librust-proxmox-tools-0.1.1+valgrind-dev (= ${binary:Version}),

View File

@ -0,0 +1,8 @@
overlay = "."
crate_src_path = ".."
[source]
# TODO: update once public
vcs_git = ""
vcs_browser = ""
maintainer = "Proxmox Support Team <support@proxmox.com>"

View File

@ -1,3 +0,0 @@
#!/usr/bin/make -f
%:
dh $@ --buildsystem cargo

View File

@ -6,13 +6,17 @@ authors = [
"Dietmar Maurer <dietmar@proxmox.com>",
"Wolfgang Bumiller <w.bumiller@proxmox.com>",
]
license = "AGPL-3"
description = "Proxmox library"
exclude = [ "debian" ]
[dependencies]
proxmox-api = { path = "../proxmox-api", default-features = false }
proxmox-api-macro = { path = "../proxmox-api-macro", optional = true }
proxmox-sys = { path = "../proxmox-sys" }
proxmox-tools = { path = "../proxmox-tools" }
proxmox-sortable-macro = { path = "../proxmox-sortable-macro", optional = true }
proxmox-api = { path = "../proxmox-api", default-features = false, version = "0.1.1" }
proxmox-api-macro = { path = "../proxmox-api-macro", optional = true, version = "0.1.1" }
proxmox-sys = { path = "../proxmox-sys", version = "0.1.1" }
proxmox-tools = { path = "../proxmox-tools", version = "0.1.1" }
proxmox-sortable-macro = { path = "../proxmox-sortable-macro", optional = true, version = "0.1.0" }
[features]
api-macro = ["proxmox-api-macro"]

View File

@ -1 +0,0 @@
{"package":"proxmox","files":{}}

View File

@ -1,3 +1,9 @@
rust-proxmox (0.1.2-1) proxmox-rust; urgency=medium
* switch packaging to debcargo with local crate support
-- Proxmox Support Team <support@proxmox.com> Mon, 13 Jan 2020 10:41:01 +0100
rust-proxmox (0.1.2) proxmox-rust; urgency=medium
* api-macro: bump to 0.1.1

View File

@ -1 +0,0 @@
12

View File

@ -1,55 +0,0 @@
Source: rust-proxmox
Section: rust
Priority: optional
Build-Depends: debhelper (>= 12),
dh-cargo (>= 21~),
cargo:native <!nocheck>,
rustc:native <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-proxmox-api-0.1.1-dev <!nocheck>,
librust-proxmox-api-macro-0.1.1+default-dev <!nocheck>,
librust-proxmox-sys-0.1.1+default-dev <!nocheck>,
librust-proxmox-tools-0.1.1+default-dev <!nocheck>,
librust-proxmox-sortable-macro-0.1.0+default-dev <!nocheck>,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.4.1
# note: could be split up feature-wise if desired
Package: librust-proxmox-dev
Architecture: any
Depends:
${misc:Depends},
librust-proxmox-api-0.1.1+cli-dev,
librust-proxmox-api-0.1.1+router-dev,
librust-proxmox-api-macro-0.1.1+default-dev,
librust-proxmox-sys-0.1.1+default-dev,
librust-proxmox-tools-0.1.1+default-dev,
librust-proxmox-sortable-macro-0.1.0+default-dev,
Provides:
librust-proxmox+default-dev (= ${binary:Version}),
librust-proxmox-0-dev (= ${binary:Version}),
librust-proxmox-0+default-dev (= ${binary:Version}),
librust-proxmox-0.1-dev (= ${binary:Version}),
librust-proxmox-0.1+default-dev (= ${binary:Version}),
librust-proxmox-0.1.2-dev (= ${binary:Version}),
librust-proxmox-0.1.2+default-dev (= ${binary:Version}),
librust-proxmox+api-macro-dev (= ${binary:Version}),
librust-proxmox-0+api-macro-dev (= ${binary:Version}),
librust-proxmox-0.1+api-macro-dev (= ${binary:Version}),
librust-proxmox-0.1.2+api-macro-dev (= ${binary:Version}),
librust-proxmox+cli-dev (= ${binary:Version}),
librust-proxmox-0+cli-dev (= ${binary:Version}),
librust-proxmox-0.1+cli-dev (= ${binary:Version}),
librust-proxmox-0.1.2+cli-dev (= ${binary:Version}),
librust-proxmox+router-dev (= ${binary:Version}),
librust-proxmox-0+router-dev (= ${binary:Version}),
librust-proxmox-0.1+router-dev (= ${binary:Version}),
librust-proxmox-0.1.2+router-dev (= ${binary:Version}),
librust-proxmox+sortable-macro-dev (= ${binary:Version}),
librust-proxmox-0+sortable-macro-dev (= ${binary:Version}),
librust-proxmox-0.1+sortable-macro-dev (= ${binary:Version}),
librust-proxmox-0.1.2+sortable-macro-dev (= ${binary:Version}),
Description: Proxmox library - Rust source code
This package contains the source for the Rust proxmox crate.
# valgrind feature ignored - see proxmox-tools

View File

@ -0,0 +1,11 @@
overlay = "."
crate_src_path = ".."
[source]
# TODO: update once public
vcs_git = ""
vcs_browser = ""
maintainer = "Proxmox Support Team <support@proxmox.com>"
[packages.lib]
depends = [ "uuid-dev" ]

View File

@ -1,7 +0,0 @@
#!/usr/bin/make -f
%:
dh $@ --buildsystem cargo
override_dh_auto_build:
sed -ie 's/path = "\.\.\/proxmox-.*"/version = "0.1.0"/' Cargo.toml
dh_auto_build