[packages/cargo] - added helper scripts to build cargo vendor tarball
baggins
baggins at pld-linux.org
Tue Jun 27 21:16:46 CEST 2017
commit 61d3b52c3fbb51b4031728bbcb19931baeaa8df4
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Tue Jun 27 21:16:16 2017 +0200
- added helper scripts to build cargo vendor tarball
build-cargo-vendor.sh | 21 +++++++++++++++++++++
cargo-checksums-prune.py | 28 ++++++++++++++++++++++++++++
vendor-tarball-filter.txt | 9 +++++++++
3 files changed, 58 insertions(+)
---
diff --git a/build-cargo-vendor.sh b/build-cargo-vendor.sh
new file mode 100755
index 0000000..74e382d
--- /dev/null
+++ b/build-cargo-vendor.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Script to build vendor tarball
+#
+# Prerequisites:
+# - installed cargo and rust
+# - installed cargo-vendor from https://github.com/alexcrichton/cargo-vendor
+
+CARGO_VER=$1
+VENDOR_FILTER=../vendor-tarball-filter.txt
+
+tar xzf cargo-${CARGO_VER}.tar.gz
+cd cargo-${CARGO_VER}
+cargo vendor --explicit-version --verbose
+
+grep -v '^#' ${VENDOR_FILTER} | xargs -I% sh -c 'rm -rf vendor/%'
+for i in vendor/* ; do
+ ../cargo-checksums-prune.py "$i"
+done
+
+tar cJvf cargo-${CARGO_VER}-vendor.tar.xz vendor
diff --git a/cargo-checksums-prune.py b/cargo-checksums-prune.py
new file mode 100755
index 0000000..5589799
--- /dev/null
+++ b/cargo-checksums-prune.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+
+# Copyright: 2015 The Debian Project
+# License: MIT-License or Apache-2.0
+#
+# Helper to remove removed-files from .cargo-checksum
+# TODO: rewrite to perl and add to dh-cargo, maybe?
+
+from collections import OrderedDict
+import json
+import os
+import sys
+
+def main(pkgdir):
+ os.chdir(pkgdir)
+ with open(".cargo-checksum.json") as fp:
+ sums = json.load(fp, object_pairs_hook=OrderedDict)
+
+ oldfiles = sums["files"]
+ newfiles = OrderedDict([entry for entry in oldfiles.items() if os.path.exists(entry[0])])
+ sums["files"] = newfiles
+
+ if len(oldfiles) > len(newfiles):
+ with open(".cargo-checksum.json", "w") as fp:
+ json.dump(sums, fp, separators=(',', ':'))
+
+if __name__ == "__main__":
+ main(sys.argv[1] if len(sys.argv) > 1 else ".")
diff --git a/vendor-tarball-filter.txt b/vendor-tarball-filter.txt
new file mode 100644
index 0000000..0b9ffd3
--- /dev/null
+++ b/vendor-tarball-filter.txt
@@ -0,0 +1,9 @@
+# This is a list of files and dirs that should be filtered from
+# deps tarball for copyright/duplication reasons
+curl-sys-*/curl/
+libgit2-sys-*/libgit2*/
+libssh2-sys-*/libssh2*/
+libz-sys-*/src/zlib-*/
+
+# To clean deps before making a new tarball, run
+# grep -v '^#' debian/deps-tarball-filter.txt | xargs -I% sh -c 'rm -rf %'
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/cargo.git/commitdiff/61d3b52c3fbb51b4031728bbcb19931baeaa8df4
More information about the pld-cvs-commit
mailing list