2 # Run this script in an unpacked upstream tarball directory, and it will update
3 # (i.e. overwrite) the "unused deps" part of Files-Excluded in d/copyright.
7 scriptdir
=$
(dirname "$(dirname "$
(readlink
-f "$0")")")
8 had_config_toml
=$
(if test -e "$scriptdir/debian/config.toml"; then echo true
; else echo false
; fi)
10 ( cd "$scriptdir" && debian
/rules debian
/config.toml
)
11 cp "$scriptdir/debian/config.toml" config.toml
13 for i
in "$scriptdir/debian/patches"/d-00
*.
patch; do
14 "$scriptdir/debian/ensure-patch" -N "$i"
17 test -f Cargo.lock.orig ||
cp Cargo.lock Cargo.lock.orig
18 test -f src
/bootstrap
/Cargo.lock.orig ||
cp src
/bootstrap
/Cargo.lock src
/bootstrap
/Cargo.lock.orig
19 test -f src
/tools
/rust-analyzer
/Cargo.lock.orig ||
cp src
/tools
/rust-analyzer
/Cargo.lock src
/tools
/rust-analyzer
/Cargo.lock.orig
20 test -f src
/tools
/cargo
/Cargo.lock.orig ||
cp src
/tools
/cargo
/Cargo.lock src
/tools
/cargo
/Cargo.lock.orig
21 rm -f Cargo.lock src
/bootstrap
/Cargo.lock src
/tools
/rust-analyzer
/Cargo.lock src
/tools
/cargo
/Cargo.lock
23 find vendor
-name .cargo-checksum.json
-execdir "$scriptdir/debian/prune-checksums" "{}" +
25 # re-generate Cargo.lock after patching
26 cargo update
--offline
28 # re-generate src/bootstrap/Cargo.lock after patching
29 (cd src
/bootstrap
&& cargo update
--offline)
31 # re-generate src/tools/rust-analyzer/Cargo.lock after patching
32 ( cd src
/tools
/rust-analyzer
&& cargo update
--offline )
34 # re-generate src/tools/cargo/Cargo.lock after patching
35 ( cd src
/tools
/cargo
&& cargo update
--offline )
39 src
/bootstrap
/Cargo.lock \
40 src
/tools
/rust-analyzer
/Cargo.lock \
41 src
/tools
/cargo
/Cargo.lock \
42 |
sed -z -e 's/\nname = /name = /g' -e 's/\nversion = /version = /g' \
43 |
sed -ne 's/\[\[package\]\]name = "\(.*\)"version = "\(.*\)"/\1 \2/gp'
46 ghetto_parse_cargo
() {
49 |
sed -e 's/\t\[/\n[/g' \
50 | perl
-ne 'print if s/^\[(?:package|project)\].*\tname\s*=\s*"(.*?)".*\tversion\s*=\s*"(.*?)".*/\1 \2/g'
54 for i
in vendor
/*/Cargo.toml
; do
56 pkgnamever
=$
(ghetto_parse_cargo
"$i")
57 if [ -z "$pkgnamever" ]; then
58 echo >&2 "failed to parse: $i"
62 done |
grep -v -F -f <(needed_crates
) | cut
'-d ' -f3 |
while read x
; do
67 header
='# DO NOT EDIT below, AUTOGENERATED'
68 footer
='# DO NOT EDIT above, AUTOGENERATED'
73 } > $scriptdir/debian
/copyright.unused-deps
76 sed -i -e "/^$header/,/^$footer/d" -e '/^# unused dependencies/rcopyright.unused-deps' copyright
77 rm copyright.unused-deps
78 $had_config_toml ||
rm "$scriptdir/debian/config.toml"