Add rudimentary Debian packaging for binaries
This is very much not up to the standards of an official Debian package. To make a proper package of Radicle will require packaging all the dependencies first, and the Radicle crates need to be published to crates.io, among other things. This is just a lazy first cut to see if there's any interest in a .deb.
This commit is contained in:
parent
15cf5c6100
commit
d67f9ea9bb
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
rm -f ../radicle*_*
|
||||||
|
git clean -fdx
|
||||||
|
|
||||||
|
# Get name and version of source package.
|
||||||
|
name="$(dpkg-parsechangelog -SSource)"
|
||||||
|
version="$(dpkg-parsechangelog -SVersion)"
|
||||||
|
|
||||||
|
# Get upstream version: everything before the last dash.
|
||||||
|
uv="$(echo "$version" | sed 's/-[^-]*$//')"
|
||||||
|
orig="${name}_${uv}.orig.tar.xz"
|
||||||
|
|
||||||
|
# Create a tar ball without the Debian packaging.
|
||||||
|
tmp="$(mktemp -d)"
|
||||||
|
trap 'rm -rf "$tmp"' EXIT
|
||||||
|
git archive HEAD | tar -C "$tmp" -xf -
|
||||||
|
rm -rf "$tmp/debian"
|
||||||
|
tar -C "$tmp" -cf - . | xz >"../$orig"
|
||||||
|
|
||||||
|
# Actually build the package, without signing the .changes file.
|
||||||
|
dpkg-buildpackage -us -uc
|
||||||
|
|
||||||
|
# Dump some information to make it easier to visually verify
|
||||||
|
# everything looks OK. Also, test the package with the lintian tool.
|
||||||
|
arch="$(dpkg --print-architecture)"
|
||||||
|
deb="../${name}_${version}_${arch}.deb"
|
||||||
|
changes="../${name}_${version}_${arch}.changes"
|
||||||
|
|
||||||
|
ls -l "$deb"
|
||||||
|
dpkg -c "$deb"
|
||||||
|
lintian -i "$changes"
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/* This file needs to exist, but can be empty. */
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
radicle (0.8.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New release.
|
||||||
|
|
||||||
|
-- Lars Wirzenius <liw@liw.fi> Mon, 25 Sep 2023 08:34:08 +0300
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
10
|
||||||
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
Source: radicle
|
||||||
|
Maintainer: The Radicle Team <team@radicle.xyz>
|
||||||
|
Uploaders: Lars Wirzenius <liw@liw.fi>
|
||||||
|
Section: vcs
|
||||||
|
Priority: optional
|
||||||
|
Standards-Version: 4.6.2
|
||||||
|
Build-Depends: debhelper (>= 10~),
|
||||||
|
dh-cargo,
|
||||||
|
asciidoctor
|
||||||
|
Homepage: https://radicle.xyz/
|
||||||
|
|
||||||
|
Package: radicle
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${misc:Depends}, ${shlibs:Depends}, git
|
||||||
|
Description: peer-to-peer, distributed git hosting
|
||||||
|
Radicle is a secure, decentralized and powerful alternative to code
|
||||||
|
forges such as GitHub and GitLab that preserves user sovereignty and
|
||||||
|
freedom.
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: heartwood
|
||||||
|
Upstream-Contact: https://radicle.xyz/
|
||||||
|
Source: https://app.radicle.xyz/seeds/seed.radicle.xyz
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2019-2021, The Radicle Foundation
|
||||||
|
License: Apache-2 or Expat
|
||||||
|
License texts omitted, see LICENSE-APACHE and LICENSE-MIT in the
|
||||||
|
source tree.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
*.1 usr/share/man/man1
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
radicle binary: initial-upload-closes-no-bugs
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --buildsystem cargo
|
||||||
|
|
||||||
|
override_dh_auto_build:
|
||||||
|
scripts/build-man-pages.sh . *.adoc
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
cargo install --locked --path=radicle-cli --root=debian/radicle
|
||||||
|
cargo install --locked --path=radicle-node --root=debian/radicle
|
||||||
|
cargo install --locked --path=radicle-remote-helper --root=debian/radicle
|
||||||
|
cargo install --locked --path=radicle-httpd --root=debian/radicle
|
||||||
|
rm -f debian/*/.crates*.*
|
||||||
|
|
||||||
|
override_dh_auto_test:
|
||||||
|
echo tests are disabled, for now
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
= git-remote-rad(1)
|
||||||
|
The Radicle Team <team@radicle.xyz>
|
||||||
|
:doctype: manpage
|
||||||
|
:revnumber: 0.8.0
|
||||||
|
:revdate: 2023-10-12
|
||||||
|
:mansource: rad {revnumber}
|
||||||
|
:manmanual: Radicle CLI Manual
|
||||||
|
|
||||||
|
== Name
|
||||||
|
|
||||||
|
git-remote-rad - Git remote helper for Radicle
|
||||||
|
|
||||||
|
== Synopsis
|
||||||
|
|
||||||
|
*git-remote-rad* *
|
||||||
|
|
||||||
|
== Description
|
||||||
|
|
||||||
|
**git-remote-rad** is a **git**(1) remote helper program to allow git
|
||||||
|
to interact with the local Radicle storage. git will use this program
|
||||||
|
automatically, when using a remote repository with the "rad" protocol.
|
||||||
|
It is never invoked directly.
|
||||||
|
|
||||||
|
== SEE ALSO ==
|
||||||
|
|
||||||
|
*git-remote-helpers*(1), *rad*(1)
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
= radicle-httpd(1)
|
||||||
|
The Radicle Team <team@radicle.xyz>
|
||||||
|
:doctype: manpage
|
||||||
|
:revnumber: 0.8.0
|
||||||
|
:revdate: 2023-10-12
|
||||||
|
:mansource: rad {revnumber}
|
||||||
|
:manmanual: Radicle CLI Manual
|
||||||
|
|
||||||
|
== Name
|
||||||
|
|
||||||
|
radicle-httpd - Radicle HTTP daemon
|
||||||
|
|
||||||
|
== Synopsis
|
||||||
|
|
||||||
|
*radicle-httpd* --help
|
||||||
|
|
||||||
|
== Description
|
||||||
|
|
||||||
|
A Radicle HTTP daemon exposing a JSON HTTP API that allows someone to browse local
|
||||||
|
repositories on a Radicle node via their web browser. This manual page is a
|
||||||
|
placeholder to point you at the *--help* option.
|
||||||
|
|
||||||
|
== SEE ALSO ==
|
||||||
|
|
||||||
|
*rad*(1)
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
= radicle-node(1)
|
||||||
|
The Radicle Team <team@radicle.xyz>
|
||||||
|
:doctype: manpage
|
||||||
|
:revnumber: 0.8.0
|
||||||
|
:revdate: 2023-10-12
|
||||||
|
:mansource: rad {revnumber}
|
||||||
|
:manmanual: Radicle CLI Manual
|
||||||
|
|
||||||
|
== Name
|
||||||
|
|
||||||
|
radicle-node - Radicle node
|
||||||
|
|
||||||
|
== Synopsis
|
||||||
|
|
||||||
|
*radicle-node* --help
|
||||||
|
|
||||||
|
== Description
|
||||||
|
|
||||||
|
A Radicle node synchronizes its Git repositories with other nodes.
|
||||||
|
This manual page is a placeholder to point you at the *--help**
|
||||||
|
option.
|
||||||
|
|
||||||
|
== SEE ALSO ==
|
||||||
|
|
||||||
|
*rad*(1)
|
||||||
Loading…
Reference in New Issue