Adds deb building scripts
This commit is contained in:
25
core/Dockerfile.deb
Normal file
25
core/Dockerfile.deb
Normal file
@@ -0,0 +1,25 @@
|
||||
FROM debian:bookworm
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
build-essential \
|
||||
make \
|
||||
pkg-config \
|
||||
libssl-dev \
|
||||
libsqlite3-dev \
|
||||
libdbus-1-dev \
|
||||
libsystemd-dev \
|
||||
dpkg \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||
|
||||
RUN cargo install cargo-deb
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
COPY . .
|
||||
|
||||
CMD ["make", "deb"]
|
||||
@@ -15,6 +15,14 @@ rpm:
|
||||
strip -s target/release/kptui
|
||||
cargo generate-rpm -p kordophoned
|
||||
|
||||
.PHONY: deb
|
||||
deb:
|
||||
cargo build --release --workspace
|
||||
strip -s target/release/kordophoned
|
||||
strip -s target/release/kpcli
|
||||
strip -s target/release/kptui
|
||||
cargo deb -p kordophoned --no-build
|
||||
|
||||
.PHONY: pi-zero
|
||||
pi-zero:
|
||||
CARGO_TARGET_DIR=target/cross/arm-unknown-linux-gnueabihf \
|
||||
|
||||
@@ -91,6 +91,16 @@ strip -s target/release/kordophoned
|
||||
cargo generate-rpm
|
||||
```
|
||||
|
||||
### Packaging (DEB example)
|
||||
|
||||
`kordophoned` is configured for Debian packaging via `cargo-deb`.
|
||||
|
||||
```bash
|
||||
cargo install cargo-deb
|
||||
cd core
|
||||
cargo deb -p kordophoned
|
||||
```
|
||||
|
||||
## `kpcli` (CLI)
|
||||
|
||||
Useful for quick testing and interacting with the daemon/cache.
|
||||
|
||||
@@ -50,3 +50,14 @@ assets = [
|
||||
{ source = "../target/release/kptui", dest = "/usr/bin/kptui", mode = "755" },
|
||||
{ source = "include/net.buzzert.kordophonecd.service", dest = "/usr/share/dbus-1/services/net.buzzert.kordophonecd.service", mode = "644" },
|
||||
]
|
||||
|
||||
[package.metadata.deb]
|
||||
maintainer = "James Magahern <james@magahern.com>"
|
||||
section = "net"
|
||||
priority = "optional"
|
||||
assets = [
|
||||
["../target/release/kordophoned", "usr/libexec/kordophoned", "755"],
|
||||
["../target/release/kpcli", "usr/bin/kpcli", "755"],
|
||||
["../target/release/kptui", "usr/bin/kptui", "755"],
|
||||
["include/net.buzzert.kordophonecd.service", "usr/share/dbus-1/services/net.buzzert.kordophonecd.service", "644"],
|
||||
]
|
||||
|
||||
@@ -14,6 +14,17 @@ strip -s target/release/kordophoned
|
||||
cargo generate-rpm
|
||||
```
|
||||
|
||||
# Building DEB
|
||||
|
||||
Make sure cargo-deb is installed, `cargo install cargo-deb`.
|
||||
|
||||
Then:
|
||||
|
||||
```bash
|
||||
cd core
|
||||
cargo deb -p kordophoned
|
||||
```
|
||||
|
||||
## Running on macOS
|
||||
|
||||
Before any client can talk to the kordophone daemon on macOS, the XPC service needs to be manually registered with launchd.
|
||||
@@ -34,4 +45,3 @@ and the following in Info.plist:
|
||||
<key>MachServices</key><dict><key>net.buzzert.kordophonecd</key><true/></dict>
|
||||
<key>KeepAlive</key><true/>
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user