Packaging
This commit is contained in:
parent
2baece0122
commit
956aea50ef
@ -6,6 +6,7 @@ authors = ["Hardcore Sushi <hardcore.sushi@disroot.org>"]
|
|||||||
license = "GPL-3.0-or-later"
|
license = "GPL-3.0-or-later"
|
||||||
description = "Simple, secure and lightweight symmetric encryption from the command line"
|
description = "Simple, secure and lightweight symmetric encryption from the command line"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
repository = "https://forge.chapril.org/hardcoresushi/doby"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
24
README.md
24
README.md
@ -1,6 +1,6 @@
|
|||||||
# doby
|
# doby
|
||||||
|
|
||||||
Secure symmetric encryption from the command line.
|
Simple, secure and lightweight symmetric encryption from the command line
|
||||||
|
|
||||||
doby started as a fork of [aef](https://github.com/wyhaya/aef) by [wyhaya](https://github.com/wyhaya) with the goal of becoming a simple, fast and lightweight CLI utility for symmetric encryption. It aims to be an alternative to the old [ccrypt](http://ccrypt.sourceforge.net) tool by using modern cryptography and authenticated encryption.
|
doby started as a fork of [aef](https://github.com/wyhaya/aef) by [wyhaya](https://github.com/wyhaya) with the goal of becoming a simple, fast and lightweight CLI utility for symmetric encryption. It aims to be an alternative to the old [ccrypt](http://ccrypt.sourceforge.net) tool by using modern cryptography and authenticated encryption.
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ ARGS:
|
|||||||
# Installation
|
# Installation
|
||||||
You can download doby from the "Releases" section in this repo.
|
You can download doby from the "Releases" section in this repo.
|
||||||
|
|
||||||
All binaries MUST be signed with my PGP key available on keyservers. To import it:
|
All releases MUST be signed with my PGP key available on keyservers. To import it:
|
||||||
```bash
|
```bash
|
||||||
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 007F84120107191E
|
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 007F84120107191E
|
||||||
```
|
```
|
||||||
@ -96,15 +96,25 @@ gpg --verify <the file>
|
|||||||
```
|
```
|
||||||
__Don't continue if the verification fails!__
|
__Don't continue if the verification fails!__
|
||||||
|
|
||||||
If everything goes fine, you can compute the SHA-256 hash of the binary file you want to verify:
|
If everything goes fine, you can download the package corresponding to your distribution. To verify it, compute its SHA-256 hash:
|
||||||
```bash
|
```bash
|
||||||
sha256sum <doby binary file>
|
sha256sum <file>
|
||||||
```
|
```
|
||||||
Compare this output and the hash in the PGP-signed message. __Don't execute the file if the hashes don't match!__
|
Compare the output and the hash in the PGP-signed message. If the hashes match, the file is authenticated and you can continue the installation.
|
||||||
|
|
||||||
You can make doby available in your `$PATH` by running:
|
On debian:
|
||||||
```bash
|
```bash
|
||||||
sudo cp <doby binary file> /usr/local/bin/
|
sudo dpkg -i doby-*.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
On Arch:
|
||||||
|
```bash
|
||||||
|
sudo pacman -U doby-*.pkg.tar.zst
|
||||||
|
```
|
||||||
|
|
||||||
|
On other distros:
|
||||||
|
```bash
|
||||||
|
tar -xzf doby-*.tar.gz && sudo doby/install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
|
3
packaging/.gitignore
vendored
Normal file
3
packaging/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.deb
|
||||||
|
*.gz
|
||||||
|
*.pkg.tar.zst
|
7
packaging/deb/doby/DEBIAN/control
Normal file
7
packaging/deb/doby/DEBIAN/control
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Package: doby
|
||||||
|
Version: VERSION
|
||||||
|
Depends: libc6
|
||||||
|
Homepage: https://forge.chapril.org/hardcoresushi/doby
|
||||||
|
Maintainer: Hardcore Sushi <hardcore.sushi@disroot.org>
|
||||||
|
Architecture: amd64
|
||||||
|
Description: Simple, secure and lightweight symmetric encryption from the command line
|
71
packaging/package.sh
Executable file
71
packaging/package.sh
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set_version() {
|
||||||
|
cp $1 /tmp/$(basename $1).original &&
|
||||||
|
sed -i "s/VERSION/$version/g" $1
|
||||||
|
}
|
||||||
|
|
||||||
|
restore() {
|
||||||
|
mv /tmp/$(basename $1).original $1
|
||||||
|
}
|
||||||
|
|
||||||
|
package_deb() {(
|
||||||
|
mkdir -p deb/doby/usr/bin deb/doby/usr/share/man/man1 \
|
||||||
|
deb/doby/usr/share/bash-completion/completions \
|
||||||
|
deb/doby/usr/share/zsh/vendor-completions &&
|
||||||
|
cp ../target/release/doby deb/doby/usr/bin &&
|
||||||
|
cp ../man/doby.1.gz deb/doby/usr/share/man/man1 &&
|
||||||
|
cp ../completions/bash deb/doby/usr/share/bash-completion/completions/doby &&
|
||||||
|
cp ../completions/zsh deb/doby/usr/share/zsh/vendor-completions/_doby &&
|
||||||
|
cd deb && set_version doby/DEBIAN/control && dpkg -b doby &&
|
||||||
|
restore doby/DEBIAN/control && mv doby.deb ../doby-$version-x86_64.deb &&
|
||||||
|
rm -r doby/usr
|
||||||
|
)}
|
||||||
|
|
||||||
|
package_pkg() {(
|
||||||
|
mkdir pkg/src &&
|
||||||
|
cp ../target/release/doby pkg/src &&
|
||||||
|
cp ../man/doby.1.gz pkg/src &&
|
||||||
|
cp -r ../completions pkg/src &&
|
||||||
|
cd pkg && set_version PKGBUILD &&
|
||||||
|
makepkg && restore PKGBUILD &&
|
||||||
|
mv doby-*.pkg.tar.zst ../doby-$version-x86_64.pkg.tar.zst && rm -r src pkg
|
||||||
|
)}
|
||||||
|
|
||||||
|
package_tarball() {(
|
||||||
|
cp ../target/x86_64-unknown-linux-musl/release/doby tarball/doby &&
|
||||||
|
cp ../man/doby.1.gz tarball/doby &&
|
||||||
|
cd tarball && tar -chzf ../doby-$version-x86_64.tar.gz doby &&
|
||||||
|
rm doby/doby*
|
||||||
|
)}
|
||||||
|
|
||||||
|
if [ "$#" -eq 1 ]; then
|
||||||
|
cargo_toml="../Cargo.toml"
|
||||||
|
|
||||||
|
if [ ! -f $cargo_toml ]; then
|
||||||
|
echo "Error: $cargo_toml not found." >&2;
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
version=$(grep "^version = " ../Cargo.toml | cut -d "\"" -f 2)
|
||||||
|
echo "Packaging doby v$version..."
|
||||||
|
case $1 in
|
||||||
|
"deb")
|
||||||
|
package_deb
|
||||||
|
;;
|
||||||
|
"pkg")
|
||||||
|
package_pkg
|
||||||
|
;;
|
||||||
|
"tarball")
|
||||||
|
package_tarball
|
||||||
|
;;
|
||||||
|
"all")
|
||||||
|
package_deb
|
||||||
|
package_pkg
|
||||||
|
package_tarball
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "usage: $0 <deb|pkg|tarball|all>" >&2
|
||||||
|
exit 1;
|
||||||
|
fi
|
18
packaging/pkg/PKGBUILD
Normal file
18
packaging/pkg/PKGBUILD
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Maintainer: Hardcore Sushi <hardcore.sushi@disroot.org>
|
||||||
|
pkgname=doby
|
||||||
|
pkgver=VERSION
|
||||||
|
pkgrel=0
|
||||||
|
depends=("glibc")
|
||||||
|
arch=("x86_64")
|
||||||
|
pkgdesc="Simple, secure and lightweight symmetric encryption from the command line"
|
||||||
|
url="https://forge.chapril.org/hardcoresushi/doby"
|
||||||
|
license=("GPL-3.0-or-later")
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p $pkgdir/usr/bin $pkgdir/usr/share/man/man1 \
|
||||||
|
$pkgdir/usr/share/bash-completion/completions $pkgdir/usr/share/zsh/vendor-completions
|
||||||
|
cp $srcdir/doby $pkgdir/usr/bin
|
||||||
|
cp $srcdir/doby.1.gz $pkgdir/usr/share/man/man1
|
||||||
|
cp $srcdir/completions/bash $pkgdir/usr/share/bash-completion/completions/doby
|
||||||
|
cp $srcdir/completions/zsh $pkgdir/usr/share/zsh/vendor-completions/_doby
|
||||||
|
}
|
1
packaging/tarball/doby/completions
Symbolic link
1
packaging/tarball/doby/completions
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../completions
|
28
packaging/tarball/doby/install.sh
Executable file
28
packaging/tarball/doby/install.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ROOT=$(dirname $0)
|
||||||
|
|
||||||
|
if [ $(id -u) -ne 0 ]; then
|
||||||
|
echo "Error: root access required" >&2
|
||||||
|
exit 1
|
||||||
|
elif [ ! -f $ROOT/doby ]; then
|
||||||
|
echo "Error: doby binary not found in $ROOT" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
install -v -g 0 -o 0 $ROOT/doby /usr/bin
|
||||||
|
|
||||||
|
MAN_FOLDER=/usr/share/man/man1
|
||||||
|
if [ -d $MAN_FOLDER ]; then
|
||||||
|
install -v -g 0 -o 0 -m 0644 $ROOT/doby.1.gz $MAN_FOLDER
|
||||||
|
fi
|
||||||
|
|
||||||
|
BASH_COMPLETION_FOLDER=/usr/share/bash-completion/completions
|
||||||
|
if [ -d $BASH_COMPLETION_FOLDER ]; then
|
||||||
|
install -v -g 0 -o 0 -m 0644 $ROOT/completions/bash $BASH_COMPLETION_FOLDER/doby
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_COMPLETION_FOLDER=/usr/share/zsh/vendor-completions
|
||||||
|
if [ -d $ZSH_COMPLETION_FOLDER ]; then
|
||||||
|
install -v -g 0 -o 0 -m 0644 $ROOT/completions/zsh $ZSH_COMPLETION_FOLDER/_doby
|
||||||
|
fi
|
11
packaging/tarball/doby/uninstall.sh
Executable file
11
packaging/tarball/doby/uninstall.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ $(id -u) -ne 0 ]; then
|
||||||
|
echo "Error: root access required" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -v /usr/bin/doby
|
||||||
|
rm -v /usr/share/man/man1/doby.1.gz 2>/dev/null
|
||||||
|
rm -v /usr/share/bash-completion/completions/doby 2>/dev/null
|
||||||
|
rm -v /usr/share/zsh/vendor-completions/_doby 2>/dev/null
|
Loading…
Reference in New Issue
Block a user