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"
|
||||
description = "Simple, secure and lightweight symmetric encryption from the command line"
|
||||
readme = "README.md"
|
||||
repository = "https://forge.chapril.org/hardcoresushi/doby"
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
|
24
README.md
24
README.md
@ -1,6 +1,6 @@
|
||||
# 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.
|
||||
|
||||
@ -83,7 +83,7 @@ ARGS:
|
||||
# Installation
|
||||
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
|
||||
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!__
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
|
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