• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

rayonパッケージ


Commit MetaInfo

Revisãof28ea4cea75c219d44c625064e8c97ad8dd5fe3e (tree)
Hora2020-04-08 06:35:28
Autordyknon <dyknon@user...>
Commiterdyknon

Mensagem de Log

debian files

Mudança Sumário

Diff

--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
1+rust-rayon (1.3.0-1) unstable; urgency=medium
2+
3+ * Initial release
4+
5+ -- dyknon <dyknon@users.osdn.me> Tue, 07 Apr 2020 20:54:50 +0900
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,42 @@
1+Source: rust-rayon
2+Priority: optional
3+Maintainer: dyknon <dyknon@users.osdn.me>
4+Build-Depends: debhelper-compat (= 12),
5+ cargo, python3:native, libjson-perl,
6+ librust-crossbeam-deque-0.7+default-dev (>= 0.7.2),
7+ librust-crossbeam-queue-0.2+default-dev (>= 0.2),
8+ librust-crossbeam-utils+std-dev (>= 0.7),
9+ librust-doc-comment-0.3+default-dev (>= 0.3),
10+ librust-docopt-1+default-dev (>= 1),
11+ librust-either-1-dev (>= 1.0),
12+ librust-lazy-static-1+default-dev (>= 1),
13+ librust-libc-0.2+default-dev (>= 0.2),
14+ librust-num-cpus-1+default-dev (>= 1.2),
15+ librust-rand-0.7+default-dev (>= 0.7),
16+ librust-rand-xorshift-0.2+default-dev (>= 0.2),
17+ librust-scoped-tls-1+default-dev (>= 1.0),
18+ librust-serde-1+default-dev (>= 1.0.85),
19+ librust-serde-1+derive-dev (>= 1.0.85)
20+Standards-Version: 4.5.0
21+Section: rust
22+Homepage: https://github.com/rayon-rs/rayon
23+#Vcs-Browser: https://salsa.debian.org/debian/rust-rayon
24+#Vcs-Git: https://salsa.debian.org/debian/rust-rayon.git
25+
26+Package: librust-rayon-core-dev
27+Architecture: any
28+Multi-Arch: same
29+Depends: ${cargo:dep}, ${misc:Depends}
30+Recommends: ${cargo:rec}
31+Provides: ${cargo:prov}
32+Description: rust library crate rayon-core
33+ Core APIs for Rayon
34+
35+Package: librust-rayon-dev
36+Architecture: any
37+Multi-Arch: same
38+Depends: ${cargo:dep}, ${misc:Depends}
39+Recommends: ${cargo:rec}
40+Provides: ${cargo:prov}
41+Description: rust library crate rayon
42+ Simple work-stealing parallelism for Rust
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,35 @@
1+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2+Upstream-Name: rayon
3+Source: <https://github.com/rayon-rs/rayon>
4+
5+Files: *
6+Copyright: Copyright (c) 2010 The Rust Project Developers
7+License: Apache-2 or Expat
8+
9+Files: rayon-demo/src/nbody/nbody.rs
10+Copyright: Rust source (c) 2016 by the Rayon developers
11+ Copyright (c) 2011, Intel Corporation
12+License: Apache-2 or Expat
13+ Rayon is distributed under the terms of both the MIT license and the
14+ Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE) and
15+ [LICENSE-MIT](LICENSE-MIT) for details. Opening a pull requests is
16+ assumed to signal agreement with these licensing terms.
17+
18+Files: debian/*
19+Copyright: 2020 dyknon <dyknon@users.osdn.me>
20+License: GPL-2+
21+ This package is free software; you can redistribute it and/or modify
22+ it under the terms of the GNU General Public License as published by
23+ the Free Software Foundation; either version 2 of the License, or
24+ (at your option) any later version.
25+ .
26+ This package is distributed in the hope that it will be useful,
27+ but WITHOUT ANY WARRANTY; without even the implied warranty of
28+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29+ GNU General Public License for more details.
30+ .
31+ You should have received a copy of the GNU General Public License
32+ along with this program. If not, see <https://www.gnu.org/licenses/>
33+ .
34+ On Debian systems, the complete text of the GNU General
35+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
--- /dev/null
+++ b/debian/deb-crateinfo.pl
@@ -0,0 +1,537 @@
1+#!/usr/bin/perl
2+
3+use strict;
4+use warnings;
5+use utf8;
6+use JSON;
7+use Data::Dumper;
8+
9+our %opts;
10+
11+sub getopt{
12+ my @command;
13+ my @options = (
14+ {
15+ name => "manifest_path",
16+ long => ["manifest-path"],
17+ short => ["f"],
18+ arg => 1,
19+ },{
20+ name => "dev",
21+ long => ["dev", "recommends"],
22+ },{
23+ name => "pkg_version",
24+ long => ["pkg-version"],
25+ short => ["v"],
26+ arg => 1,
27+ },{
28+ name => "all_crates",
29+ long => ["all-crates"],
30+ short => ["c"],
31+ },{
32+ name => "all_deps",
33+ long => ["all-deps"],
34+ },{
35+ name => "req_dev",
36+ long => ["require-dev"],
37+ }
38+ );
39+ my %ret = (
40+ manifest_path => "Cargo.toml",
41+ );
42+ my $str_arg = sub{
43+ my $name = shift;
44+ my $value = shift;
45+ if(ref($ret{$name})){
46+ push(@{$ret{$name}}, $value);
47+ }else{
48+ $ret{$name} = $value;
49+ }
50+ };
51+ while(my $arg = shift){
52+ if($arg eq "--"){
53+ push(@command, @_);
54+ last;
55+ }elsif($arg =~ /^--([^=]+)(?:=(.*))?/){
56+ my ($type) = grep{grep{$1 eq $_}(@{$_->{long}})}(@options);
57+ die "unknown option --$1" if(!$type);
58+ if($type->{arg}){
59+ $str_arg->($type->{name}, $2 // shift);
60+ }else{
61+ $ret{$type->{name}} = $type->{bool} // 1;
62+ }
63+ }elsif($arg =~ /^-(.+)/){
64+ my $opt = $1;
65+ while($opt =~ /(.)/g){
66+ my ($type) = grep{grep{$1 eq $_}(@{$_->{short}})}(@options);
67+ die "unknown option -$1" if(!$type);
68+ if($type->{arg}){
69+ if(pos($opt) < length($opt)){
70+ $str_arg->($type->{name}, substr($opt, pos($opt)));
71+ }else{
72+ $str_arg->($type->{name}, shift);
73+ }
74+ last;
75+ }else{
76+ $ret{$type->{name}} = $type->{bool} // 1;
77+ }
78+ }
79+ }else{
80+ push(@command, $arg);
81+ }
82+ }
83+ ({%ret}, @command);
84+}
85+
86+sub uniq{
87+ my %u = map{($_, 1)}(@_);
88+ keys(%u);
89+}
90+
91+sub get_metadata{
92+ local $/;
93+ open(my $metad, "-|:raw", qw{cargo metadata --offline --no-deps
94+ --format-version 1 --manifest-path}, shift);
95+ my $ret = decode_json(<$metad>);
96+ close($metad);
97+ $ret;
98+}
99+
100+sub list_packages{
101+ my $metadata = shift;
102+ my %orig_opts = %opts;
103+ my @packages = sort(map{
104+ if($opts{all_crates} || !defined($_->{publish})){
105+ $_;
106+ }else{
107+ ();
108+ }
109+ }(@{$metadata->{packages}}));
110+ my @ret;
111+ my $n;
112+ while(@packages != @ret){
113+ $n = @ret;
114+ local %opts = %orig_opts;
115+ $opts{all_deps} = 1;
116+ TEST: for my $package(@packages){
117+ my $pname = $package->{name};
118+ my %deps = get_deps($package);
119+ while(my ($dep, $ver) = each(%deps)){
120+ $dep =~ s'/.*'';
121+ my $listed = grep{$_->{name} eq $dep}(@packages);
122+ my $before = grep{$_ eq $dep}(@ret);
123+ next TEST if($listed && !$before);
124+ }
125+ push(@ret, $pname) if(!grep{$pname eq $_}(@ret));
126+ }
127+ die "infinite loop" if($n == @ret);
128+ }
129+ @ret;
130+}
131+
132+sub get_package{
133+ my $metadata = shift;
134+ my $pacname = shift;
135+ [grep{$_->{name} eq $pacname}(@{$metadata->{packages}})]->[0];
136+}
137+
138+sub list_features{
139+ my $package = shift;
140+ uniq(keys(%{$package->{features}}), "default");
141+}
142+
143+sub list_features_pac{
144+ my $package = shift;
145+ my @not = get_features_provides_all($package);
146+ map{
147+ my $f = $_;
148+ my %deps = get_feature_deps($package, $f);
149+ if((!grep{$f eq $_}(@not))
150+ && (keys(%deps) >= 2 || grep{defined}(values(%deps)))
151+ ){
152+ $_;
153+ }else{
154+ ();
155+ }
156+ }(list_features($package));
157+}
158+
159+sub is_cfg_true{
160+ my $cfg = shift;
161+ if($cfg =~ /^(all|any|not)\(\s*(.*)\)\s*$/){
162+ if($1 eq "all"){
163+ return 1 if($2 eq "");
164+ for(split(/,\s*/, $2)){
165+ return 0 if(!is_cfg_true($_));
166+ }
167+ return 1;
168+ }elsif($1 eq "any"){
169+ return 0 if($2 eq "");
170+ for(split(/,\s*/, $2)){
171+ return 1 if(!is_cfg_true($_));
172+ }
173+ return 0;
174+ }elsif($1 eq "not"){
175+ return !is_cfg_true($2);
176+ }else{
177+ die;
178+ }
179+ }elsif($cfg =~ /^(?:r#)?([a-zA-Z][a-zA-Z0-9_]*|_[a-zA-Z0-9_]+)\s*(?:=(.+))?$/){
180+ my $id = $1;
181+ my $str;
182+ if(defined($2)){
183+ my $sl = $2;
184+ if($sl =~ /^\s*r(#(?1)#|"((?:[^\r]|\r(?=\n))*?)")\s*(.)/){
185+ die "cfg(...) syntax error" if(length($3));
186+ $str = $2;
187+ }elsif($sl =~ m/^
188+ \s* "
189+ (
190+ (?:
191+ [^"\\\r]
192+ | \r(?=\n)
193+ | \\ (?:
194+ ["'nrt\\0]
195+ | x[0-7][0-9a-fA-F]
196+ | u\{ (?: [0-9A-Fa-f] _* ){1,6} \}
197+ | \n
198+ )
199+ )*
200+ ) " \s* (.)
201+ /x){
202+ die "cfg(...) syntax error" if(length($2));
203+ my $strr = $1;
204+ $str = "";
205+ while($strr =~ m/\G
206+ ([^"\\\r])
207+ | (\r)(?=\n)
208+ | \\ (?:
209+ (["'])
210+ | ([nrt\\0])
211+ | x([0-7][0-9a-fA-F])
212+ | u\{ ( (?: [0-9A-Fa-f] _* ){1,6} ) \}
213+ | \n \ *
214+ )
215+ /xg){
216+ if(defined($1//$2//$3)){
217+ $str .= $1//$2//$3;
218+ }elsif(defined($4)){
219+ $str .= "\n" if($4 eq "n");
220+ $str .= "\r" if($4 eq "r");
221+ $str .= "\t" if($4 eq "t");
222+ $str .= "\\" if($4 eq "\\");
223+ $str .= "\0" if($4 eq "0");
224+ }elsif(defined($5//$6)){
225+ my $hex = $5//$6;
226+ $hex =~ s/_//g;
227+ $str .= chr(hex($hex));
228+ }
229+ }
230+ }else{
231+ die "cfg(...) syntax error" if(length($3));
232+ }
233+ }
234+
235+ my %cfgs = (
236+ target_arch => undef,
237+ target_feature => undef,
238+ target_os => undef,
239+ target_family => "unix",
240+ unix => "set",
241+ #windows => debian system is not windows
242+ target_env => undef,
243+ target_endian => undef,
244+ target_pointer_width=> undef,
245+ target_vendor => undef,
246+ test => undef,
247+ debug_assertions => undef,
248+ proc_macro => undef,
249+ );
250+
251+ return 0 if(!exists($cfgs{$id}));
252+ return !defined($str) || $cfgs{$id} eq $str if(defined($cfgs{$id}));
253+
254+ ...
255+ }else{
256+ die "cfg(...) syntax error";
257+ }
258+}
259+
260+sub expand_dep{
261+ my $dep = shift;
262+ if(!defined($dep)){
263+ return ();
264+ }
265+ if(defined($dep->{target})){
266+ if($dep->{target} =~ /^\s*cfg\(\s*(.*)\)\s*$/){
267+ return () if(!is_cfg_true($1));
268+ }else{
269+ die "unhandleable target specific dependency";
270+ }
271+ }
272+ ($dep->{name}.($dep->{uses_default_features}?"/default":""), $dep->{req},
273+ map{("$dep->{name}/$_", $dep->{req})}(@{$dep->{features}}));
274+}
275+
276+sub get_deps{
277+ my $package = shift;
278+ my $feature = shift;
279+ if($feature){
280+ return get_feature_deps($package, $feature);
281+ }
282+ my %deps;
283+ for(@{$package->{dependencies}}){
284+ if($opts{all_deps} || !$_->{optional}
285+ && (
286+ (($_->{kind}//"") ne "dev" xor $opts{dev}) || $opts{req_dev}
287+ )
288+ ){
289+ %deps = (%deps, expand_dep($_));
290+ }
291+ }
292+ %deps;
293+}
294+
295+sub get_feature_deps{
296+ my $package = shift;
297+ my $feature = shift;
298+ my %deps;
299+ return if($feature eq "default" && !$package->{features}{$feature});
300+ return if($opts{dev});
301+ for(@{$package->{features}{$feature}}){
302+ if($package->{features}{$_}){
303+ %deps = (%deps, "$_" => undef);
304+ }else{
305+ if($_ =~ m{^([^/]+)/(.*)}){
306+ my $pac = $1;
307+ my $feat = $2;
308+ ($pac) = grep{
309+ ($_->{rename} // $_->{name}) eq $pac
310+ && ($_->{kind}//"") ne "dev"
311+ }(@{$package->{dependencies}});
312+ %deps = (%deps, "$pac->{name}/$feat" => $pac->{req}) if($pac);
313+ }else{
314+ my $pac = $_;
315+ %deps = (%deps, expand_dep(grep{
316+ ($_->{rename} // $_->{name}) eq $pac
317+ && ($_->{kind}//"") ne "dev"
318+ }(@{$package->{dependencies}})));
319+ }
320+ }
321+ }
322+ %deps;
323+}
324+
325+sub is_feature_provided{
326+ my $package = shift;
327+ my $feature = shift;
328+ my $with = shift;
329+ return 1 if(grep{$_ eq $feature}(@$with));
330+ my %deps = get_feature_deps($package, $feature);
331+ while(my ($name, $ver) = each(%deps)){
332+ return 0 if(defined($ver));
333+ next if(grep{$_ eq $name}(@$with));
334+ if(is_feature_provided($package, $name, $with)){
335+ push(@$with, $name);
336+ }else{
337+ return 0;
338+ }
339+ }
340+ 1;
341+}
342+
343+sub get_features_provides_all{
344+ my $package = shift;
345+ my @with_in = map{if(defined($_)){$_}else{()}}(@_);
346+ my @with = @with_in;
347+ map{
348+ my $n = $_;
349+ if(!is_feature_provided($package, $n, \@with) || grep{$_ eq $n}(@with)){
350+ ();
351+ }else{
352+ $n;
353+ }
354+ }(list_features($package));
355+}
356+
357+sub get_features_provides{
358+ my $package = shift;
359+ if(!@_ || (@_==1 && !defined($_[0]))){
360+ return get_features_provides_all($package);
361+ }
362+ my %not = map{$_, 1}(get_features_provides_all($package));
363+ map{if($not{$_}){()}else{$_}}(get_features_provides_all($package, @_));
364+}
365+
366+sub gen_package_name{
367+ my $name = shift;
368+ my $apiver = shift;
369+ my $feature = shift;
370+
371+ $name .= "-$apiver" if(defined($apiver));
372+ $name .= "+$feature" if(defined($feature));
373+ "librust-$name-dev";
374+}
375+
376+sub gen_package_depend{
377+ my $oname = lc(shift);
378+ my $name = $oname;
379+ my $ver = shift;
380+ my $feature;
381+
382+ $name =~ s/_/-/g;
383+ if($name =~ m{^([^/]+)/(.+)$}){
384+ $name = $1;
385+ $feature = $2;
386+ }
387+
388+ if($ver =~ m/,/){
389+ map{gen_package_depend($oname, $_)}(split(/,/, $ver));
390+ }elsif($ver =~ m/^\s*\*\s*$/){
391+ gen_package_name($name, undef, $feature);
392+ }elsif($ver =~ m/^\s*\^?\s*([0-9.]+)\s*$/){
393+ my $reqmin = $1;
394+ my $apiv = $1;
395+ $apiv =~ s/([1-9][0-9]*).*/$1/;
396+ gen_package_name($name, $apiv, $feature) . " (>= $reqmin)";
397+ }elsif($ver =~ m/^\s*~\s*([0-9.]+)\s*$/){
398+ my $reqmin = $1;
399+ my $apiv = $1;
400+ $apiv =~ s/[0-9]+\.[0-9]+\K\..*//;
401+ gen_package_name($name, $apiv, $feature) . " (>= $reqmin)";
402+ }elsif($ver =~ m/^\s*([0-9.]+)\.\*\s*$/){
403+ gen_package_name($name, $1, $feature);
404+ }elsif($ver =~ m/^\s*(>=|>|<|<=|=)\s*([0-9.]+)\s*$/){
405+ my $op = $1;
406+ my $v = $2;
407+ if($op eq "="){
408+ map{gen_package_depend($oname, $_)}(">= $v", "<= $v");
409+ }elsif($op eq ">="){
410+ gen_package_name($name, undef, $feature) . " (>= $v)";
411+ }elsif($op eq ">"){
412+ gen_package_name($name, undef, $feature) . " (>= $v.0)";
413+ }elsif($op eq "<"){
414+ gen_package_name($name, undef, $feature) . " (<< $v)";
415+ }elsif($op eq "<="){
416+ gen_package_name($name, undef, $feature) . " (<< $v.0)";
417+ }else{
418+ die;
419+ }
420+ }else{
421+ die "unknown version restriction";
422+ }
423+}
424+
425+sub list_api_vars{
426+ my $package = shift;
427+ my ($v, @le) = split(/\./, $package->{version});
428+ my @ret = ($v);
429+ for(@le){
430+ push(@ret, ($v .= ".$_"));
431+ }
432+ @ret;
433+}
434+
435+sub convert_dep{
436+ my $package = shift;
437+ my %deps = @_;
438+ my @ret;
439+ while(my ($k, $v) = each(%deps)){
440+ if(!defined($v)){ # feature
441+ my $dep = gen_package_name($package->{name}, undef, $k);
442+ $dep .= " (= $opts{pkg_version})" if($opts{pkg_version});
443+ push(@ret, $dep);
444+ }else{
445+ push(@ret, gen_package_depend($k, $v));
446+ }
447+ }
448+ @ret;
449+}
450+
451+sub convert_provide{
452+ my $package = shift;
453+ my @vars = list_api_vars($package);
454+ map{
455+ my $f = $_;
456+ map{
457+ gen_package_name($package->{name}, $_, $f)
458+ . ($opts{pkg_version} ? " (= $opts{pkg_version})" : "");
459+ }(undef, @vars);
460+ }(@_);
461+}
462+
463+my ($opts, @comm) = getopt(@ARGV);
464+%opts = %$opts;
465+
466+my $meta = get_metadata($opts{manifest_path});
467+
468+die "give operation" if(!@comm);
469+
470+if($comm[0] eq "crates"){
471+ print(join("\n", list_packages($meta), ""));
472+ exit;
473+}elsif($comm[0] eq "deb-control-template"){
474+ for(list_packages($meta)){
475+ my $crate = get_package($meta, $_);
476+ my $name = $crate->{name}; $name =~ s/_/-/g;
477+ my $desc = $crate->{description} // "DESCRIPTION";
478+ $desc =~ s/^/ /m;
479+ print << "EOT";
480+
481+Package: librust-$name-dev
482+Architecture: any
483+Multi-Arch: same
484+Depends: \${cargo:dep}, \${misc:Depends}
485+Recommends: \${cargo:rec}
486+Provides: \${cargo:prov}
487+Description: rust library crate $name
488+$desc
489+EOT
490+
491+ for my $feature(sort(list_features_pac($crate))){
492+ print << "EOT";
493+
494+Package: librust-$name+$feature-dev
495+Architecture: any
496+Multi-Arch: same
497+Depends: librust-$name-dev (= \${cargo:ver}), \${cargo:dep}, \${misc:Depends}
498+Provides: \${cargo:prov}
499+Description: $feature feature of rust library crate $name
500+$desc
501+EOT
502+ }
503+ }
504+ exit;
505+}
506+
507+my $crate = $comm[1];
508+die "give crate name" if(!$crate);
509+$crate = get_package($meta, $crate);
510+my $feature = $comm[2];
511+if($comm[0] eq "version"){
512+ print("$crate->{version}\n");
513+}elsif($comm[0] eq "manifest-path"){
514+ print("$crate->{manifest_path}\n");
515+}elsif($comm[0] eq "features"){
516+ print(join("\n", sort(list_features($crate)), ""));
517+}elsif($comm[0] eq "features-pac"){
518+ print(join("\n", sort(list_features_pac($crate)), ""));
519+}elsif($comm[0] eq "provides"){
520+ print(join("\n", sort(get_features_provides($crate, $feature)),""));
521+}elsif($comm[0] eq "depends"){
522+ my %deps = get_deps($crate, $feature);
523+ print(join("\n", map({"$_ = $deps{$_}"} sort(keys(%deps))),""));
524+}elsif($comm[0] eq "deb-provides"){
525+ my @bs;
526+ @bs = map{
527+ gen_package_name($crate->{name}, $_, $feature)
528+ . ($opts{pkg_version} ? " (= $opts{pkg_version})" : "");
529+ }(list_api_vars($crate));
530+ my @fs = sort(get_features_provides($crate, $feature));
531+ print(join(", ", @bs, convert_provide($crate, @fs))."\n");
532+}elsif($comm[0] eq "deb-depends"){
533+ my %deps = get_deps($crate, $feature);
534+ print(join(", ", sort(convert_dep($crate, %deps)))."\n");
535+}else{
536+ die "unknown operation";
537+}
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,3 @@
1+[DEFAULT]
2+pristine-tar = true
3+upstream-tag = upstream/%(version)s
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,93 @@
1+#!/usr/bin/make -f
2+include /usr/share/dpkg/pkg-info.mk
3+include /usr/share/dpkg/architecture.mk
4+include /usr/share/dpkg/buildflags.mk
5+include /usr/share/rustc/architecture.mk
6+
7+export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
8+export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
9+export CARGO_HOME := $(shell pwd)/debian/cargo_home
10+CARGO_REGISTRY := $(shell pwd)/debian/cargo_registry
11+
12+DEB_CARGO=/usr/share/cargo/bin/cargo
13+DEB_VERSION_EPOCH=$(shell echo '$(DEB_VERSION)' | grep : | sed 's/:.*//' | sed 's/$$/:/')
14+DEB_VERSION_DEB=$(shell echo '$(DEB_VERSION)' | grep -- - | sed 's/.*-//' | sed 's/^/-/')
15+
16+%:
17+ dh $@
18+
19+execute_after_dh_clean:
20+ rm -rf Cargo.lock debian/*.substvars debian/target \
21+ debian/cargo_registry debian/cargo_home
22+
23+override_dh_autoreconf:
24+override_dh_auto_test:
25+override_dh_auto_configure:
26+
27+
28+override_dh_auto_build:
29+ set -e; \
30+ ./debian/deb-crateinfo.pl crates | while read name; do \
31+ manup="$$(./debian/deb-crateinfo.pl manifest-path $$name)"; \
32+ cd $${manup%/*}; \
33+ env DEB_CARGO_CRATE="$$name" $(DEB_CARGO) prepare-debian \
34+ '$(CARGO_REGISTRY)' --link-from-system; \
35+ cd -; \
36+ for crate in debian/target/package/*.crate; do \
37+ [ ! -f "$$crate" ] && continue; \
38+ dname=$$(tar -ztf "$$crate"|head -n1|sed 's"/.*""'); \
39+ tar -C '$(CARGO_REGISTRY)' -zxf "$$crate"; \
40+ echo '{"package":"","files":{}}' > \
41+ $(CARGO_REGISTRY)/"$$dname"/.cargo-checksum.json; \
42+ done; \
43+ $(DEB_CARGO) package --allow-dirty --offline \
44+ --target-dir debian/target \
45+ --manifest-path "$$(./debian/deb-crateinfo.pl manifest-path $$name)"; \
46+ done
47+
48+override_dh_auto_install:
49+ set -e; \
50+ ./debian/deb-crateinfo.pl crates | while read name; do \
51+ version="$$(./debian/deb-crateinfo.pl version "$$name")"; \
52+ pacn="librust-$$(echo "$$name" | sed 's/_/-/g')-dev"; \
53+ regpath="debian/$$pacn/usr/share/cargo/registry"; \
54+ mkdir -p "$$regpath"; \
55+ tar -zxf debian/target/package/"$$name-$$version".crate \
56+ -C "$$regpath" \
57+ --exclude .gitignore \
58+ --exclude debian; \
59+ echo '{"package":"","files":{}}' > \
60+ "$$regpath"/"$$name-$$version"/.cargo-checksum.json; \
61+ done
62+
63+override_dh_gencontrol:
64+ set -e; \
65+ ./debian/deb-crateinfo.pl crates | while read name; do\
66+ ver="$(DEB_VERSION_EPOCH)$$(./debian/deb-crateinfo.pl version "$$name")$(DEB_VERSION_DEB)";\
67+ sv="debian/librust-$$(echo "$$name" | sed 's/_/-/g')-dev.substvars";\
68+ echo -n "cargo:dep=" >> "$$sv";\
69+ ./debian/deb-crateinfo.pl deb-depends "$$name" >> "$$sv";\
70+ echo -n "cargo:rec=" >> "$$sv";\
71+ ./debian/deb-crateinfo.pl deb-depends --recommends "$$name" >> "$$sv";\
72+ echo -n "cargo:prov=" >> "$$sv";\
73+ ./debian/deb-crateinfo.pl deb-provides -v"$$ver" "$$name" >> "$$sv";\
74+ ./debian/deb-crateinfo.pl features-pac "$$name" | \
75+ while read ft; do\
76+ sv="debian/librust-$$(echo "$$name" | sed 's/_/-/g')+$$(echo "$$ft" | sed 's/_/-/g')-dev.substvars";\
77+ echo -n "cargo:dep=" >> "$$sv";\
78+ ./debian/deb-crateinfo.pl deb-depends "$$name" "$$ft" >> "$$sv";\
79+ echo -n "cargo:prov=" >> "$$sv";\
80+ ./debian/deb-crateinfo.pl deb-provides -v"$$ver" "$$name" "$$ft" >> "$$sv";\
81+ done;\
82+ done; \
83+ ./debian/deb-crateinfo.pl crates | while read name; do\
84+ namep="$$(echo "$$name" | sed 's/_/-/g')";\
85+ ver="$(DEB_VERSION_EPOCH)$$(./debian/deb-crateinfo.pl version "$$name")$(DEB_VERSION_DEB)";\
86+ dh_gencontrol -plibrust-$$namep-dev $$( \
87+ ./debian/deb-crateinfo.pl features-pac "$$name" | sed \
88+ -e 's/_/-/g' \
89+ -e 's/^/-plibrust-'"$$name"'+/' \
90+ -e 's/$$/-dev/' \
91+ ) -- -v"$$ver" -V"cargo:ver=$$ver";\
92+ done
93+
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
1+3.0 (quilt)