diff --git a/.travis.yml b/.travis.yml
index 924d2bb..2b169a9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -73,8 +73,17 @@ jobs:
# GitHub binary release for Linux on x86/x86_64
- stage: release
rust: stable
- env: TARGET=x86_64-unknown-linux-gnu TARGET_SIMPLE=linux-x64 DEB_ARCH=amd64
+ env: TARGET=x86_64-unknown-linux-gnu TARGET_SIMPLE=linux-x64 DEB=y
cache: cargo
+ install: &install-github-release
+ - |
+ if [ ! $TARGET == "x86_64-unknown-linux-gnu" ] && [ ! $TARGET == "x86_64-apple-darwin" ]; then
+ cargo install cross
+ fi
+ - |
+ if [ -n "$DEB" ]; then
+ cargo install cargo-deb
+ fi
script: &script-github-release
- |
if [ $TARGET == "x86_64-unknown-linux-gnu" ] || [ $TARGET == "x86_64-apple-darwin" ]; then
@@ -88,8 +97,8 @@ jobs:
fi
- tar -czvf ./ffsend-$TRAVIS_TAG-$TARGET_SIMPLE.tar.gz ffsend
- |
- if [ -n "$DEB_ARCH" ]; then
- ./pkg/create_deb
+ if [ -n "$DEB" ]; then
+ cargo deb --verbose
fi
- mv ./ffsend ./ffsend-$TRAVIS_TAG-$TARGET_SIMPLE
deploy: &deploy-github-release
@@ -99,7 +108,7 @@ jobs:
overwrite: true
file_glob: true
file:
- - ffsend_*.deb
+ - target/debian/ffsend_*.deb
- ffsend-$TRAVIS_TAG-$TARGET_SIMPLE.tar.gz
- ffsend-$TRAVIS_TAG-$TARGET_SIMPLE
on:
@@ -107,10 +116,9 @@ jobs:
branch: master
- stage: release
rust: stable
- env: TARGET=i686-unknown-linux-gnu TARGET_SIMPLE=linux-i386 DEB_ARCH=i386
+ env: TARGET=i686-unknown-linux-gnu TARGET_SIMPLE=linux-i386 DEB=y
cache: cargo
- install: &install-github-release-cross
- - cargo install cross
+ install: *install-github-release
script: *script-github-release
deploy: *deploy-github-release
@@ -119,21 +127,21 @@ jobs:
rust: stable
env: TARGET=aarch64-unknown-linux-gnu TARGET_SIMPLE=linux-aarch64
cache: cargo
- install: *install-github-release-cross
+ install: *install-github-release
script: *script-github-release
deploy: *deploy-github-release
- stage: release
rust: stable
env: TARGET=arm-unknown-linux-gnueabi TARGET_SIMPLE=linux-arm
cache: cargo
- install: *install-github-release-cross
+ install: *install-github-release
script: *script-github-release
deploy: *deploy-github-release
- stage: release
rust: stable
env: TARGET=armv7-unknown-linux-gnueabihf TARGET_SIMPLE=linux-armv7
cache: cargo
- install: *install-github-release-cross
+ install: *install-github-release
script: *script-github-release
deploy: *deploy-github-release
@@ -143,6 +151,7 @@ jobs:
os: osx
env: TARGET=x86_64-apple-darwin TARGET_SIMPLE=osx-x64
cache: cargo
+ install: *install-github-release
script: *script-github-release
deploy: *deploy-github-release
diff --git a/Cargo.lock b/Cargo.lock
index 25bdb44..a739709 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -65,7 +65,7 @@ dependencies = [
[[package]]
name = "base64"
-version = "0.9.1"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -379,7 +379,7 @@ version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"arrayref 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "base64 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"chrono 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"derive_builder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -389,7 +389,7 @@ dependencies = [
"mime_guess 2.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "reqwest 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "reqwest 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -496,7 +496,7 @@ name = "hyper"
version = "0.11.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "base64 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -976,7 +976,7 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.8.5"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -995,7 +995,7 @@ dependencies = [
"tokio-io 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"tokio-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "uuid 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1515,10 +1515,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "uuid"
-version = "0.5.1"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1629,7 +1630,7 @@ dependencies = [
"checksum atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2fc4a1aa4c24c0718a250f0681885c1af91419d242f29eb8f2ab28502d80dbd1"
"checksum backtrace 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbdd17cd962b570302f5297aea8648d5923e22e555c2ed2d8b2e34eca646bf6d"
"checksum backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)" = "bff67d0c06556c0b8e6b5f090f0eac52d950d9dfd1d35ba04e4ca3543eaf6a7e"
-"checksum base64 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9263aa6a38da271eec5c91a83ce1e800f093c8535788d403d626d8d5c3f8f007"
+"checksum base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "85415d2594767338a74a30c1d370b2f3262ec1b4ed2d7bba5b3faf4de40467d9"
"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789"
"checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
@@ -1733,7 +1734,7 @@ dependencies = [
"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
-"checksum reqwest 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "241faa9a8ca28a03cbbb9815a5d085f271d4c0168a19181f106aa93240c22ddb"
+"checksum reqwest 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2abe46f8e00792693a2488e296c593d1f4ea39bb1178cfce081d6793657575e4"
"checksum rpassword 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d127299b02abda51634f14025aec43ae87a7aa7a95202b6a868ec852607d1451"
"checksum rustc-demangle 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "76d7ba1feafada44f2d38eed812bd2489a03c0f5abb975799251518b68848649"
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
@@ -1794,7 +1795,7 @@ dependencies = [
"checksum url 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f808aadd8cfec6ef90e4a14eb46f24511824d1ac596b9682703c87056c8678b7"
"checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"
-"checksum uuid 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc7e3b898aa6f6c08e5295b6c89258d1331e9ac578cc992fb818759951bdc22"
+"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
"checksum vcpkg 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7ed0f6789c8a85ca41bbc1c9d175422116a9869bd1cf31bb08e1493ecce60380"
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
"checksum version-compare 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "78068add8bf1e4d37d13fa5867182fe4c03f8e525c831053733f83aaba942d37"
diff --git a/Cargo.toml b/Cargo.toml
index 09914fd..acccb1b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,6 +22,25 @@ exclude = [
"res/*",
]
+[package.metadata.deb]
+section = "utility"
+extended-description = """\
+Easily and securely share files and directories from the command line through
+a safe, private and encrypted link using a single simple command. \
+Files are shared using the Send service and may be up to 2GB. \
+Others are able to download these files with this tool, \
+or through their webbrowser.\n\
+\n\
+All files are always encrypted on the client, \
+and secrets are never shared with the remote host. \
+An optional password may be specified, and a default file lifetime of 1 \
+(up to 20) download or 24 hours is enforced to ensure your stuff does not \
+remain online forever. This provides a secure platform to share your files."""
+priority = "standard"
+license-file = ["LICENSE", "3"]
+depends = "$auto, xclip"
+maintainer-scripts = "pkg/deb"
+
[badges]
travis-ci = { repository = "timvisee/ffsend", branch = "master" }
diff --git a/LICENSE b/LICENSE
index 94a9ed0..af34033 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2018 Tim Visee.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff --git a/pkg/create_deb b/pkg/create_deb
index abae1ec..253d3d4 100755
--- a/pkg/create_deb
+++ b/pkg/create_deb
@@ -24,14 +24,36 @@ if [[ ! -f "$DIR/../ffsend" ]]; then
exit 1
fi
-# Copy the binary into the package directory
-mkdir -p $DIR/deb/usr/bin
-cp $DIR/../ffsend $DIR/deb/usr/bin/ffsend
+# Create an application directory, copy the binary into it
+mkdir -p $DIR/ffsend-$VERSION
+cp $DIR/../ffsend $DIR/ffsend-$VERSION/ffsend
-# Update version and architecture in the control file
-sed -i "/Version:\.*/c\\Version: $VERSION" $DIR/deb/DEBIAN/control
-sed -i "/Architecture:\.*/c\\Architecture: $DEB_ARCH" $DIR/deb/DEBIAN/control
+# Create an application tarbal
+cd $DIR/..
+git archive --format tar.gz -o $DIR/ffsend-$VERSION/ffsend-$VERSION.tar.gz $TRAVIS_TAG
+
+# Change into the app directory
+cd $DIR/ffsend-$VERSION
# Build the debian package
-echo "Building debian package..."
-dpkg-deb --verbose --build $DIR/deb .
+# TODO: define GPG?
+dh_make -e "timvisee@gmail.com" -c gpl3 -f ffsend-$VERSION.tar.gz -s -y
+rm *.ex README.Debian README.source
+
+# Remove the project tar ball, we're not using it anymore
+rm $DIR/ffsend-$VERSION/ffsend-$VERSION.tar.gz
+
+# TODO: configure the debian/control file
+# TODO: configure copyright file
+
+
+
+
+
+# # Update version and architecture in the control file
+# sed -i "/Version:\.*/c\\Version: $VERSION" $DIR/deb/DEBIAN/control
+# sed -i "/Architecture:\.*/c\\Architecture: $DEB_ARCH" $DIR/deb/DEBIAN/control
+
+# # Build the debian package
+# echo "Building debian package..."
+# dpkg-deb --verbose --build $DIR/deb .
diff --git a/pkg/deb/DEBIAN/control b/pkg/deb/DEBIAN/control
deleted file mode 100644
index a6a13e6..0000000
--- a/pkg/deb/DEBIAN/control
+++ /dev/null
@@ -1,11 +0,0 @@
-Package: ffsend
-Version: TODO
-Section: utils
-Priority: standard
-Architecture: TODO
-Recommends: xclip
-Maintainer: Tim Visée
-Description: easily and securely share files from the CLI using Send
- Easily and securely share files from the command line.
- A fully featured Firefox Send client.
-Homepage: https://github.com/timvisee/ffsend
diff --git a/pkg/deb/blah.txt b/pkg/deb/blah.txt
deleted file mode 100644
index 58486b2..0000000
--- a/pkg/deb/blah.txt
+++ /dev/null
@@ -1 +0,0 @@
-Some file contents
diff --git a/pkg/deb/DEBIAN/postinst b/pkg/deb/postinst
similarity index 100%
rename from pkg/deb/DEBIAN/postinst
rename to pkg/deb/postinst
diff --git a/pkg/deb/DEBIAN/prerm b/pkg/deb/prerm
similarity index 100%
rename from pkg/deb/DEBIAN/prerm
rename to pkg/deb/prerm
diff --git a/pkg/deb/usr/bin/ffsend b/pkg/deb/usr/bin/ffsend
deleted file mode 100755
index c22039b..0000000
Binary files a/pkg/deb/usr/bin/ffsend and /dev/null differ