X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fpackage%2Fheimdal%2F0001-add-roken-h-process.patch;fp=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fpackage%2Fheimdal%2F0001-add-roken-h-process.patch;h=b8fbd2a4a3db48361b67226c8b4fff7836d0f942;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/buildroot-2015.05/package/heimdal/0001-add-roken-h-process.patch b/cirros-testvm/src-cirros/buildroot-2015.05/package/heimdal/0001-add-roken-h-process.patch new file mode 100644 index 0000000..b8fbd2a --- /dev/null +++ b/cirros-testvm/src-cirros/buildroot-2015.05/package/heimdal/0001-add-roken-h-process.patch @@ -0,0 +1,195 @@ +Add roken-h-process.pl from: +https://raw.github.com/heimdal/heimdal/master/cf/roken-h-process.pl +It's required for cross-compiling and missing from release tarballs: +http://kerberos.996246.n3.nabble.com/Missing-roken-h-process-pl-when-cross-compiling-v1-5-2-td38806.html + +Signed-off-by: Gustavo Zacarias + +diff -Nura heimdal-1.5.3.orig/cf/roken-h-process.pl heimdal-1.5.3/cf/roken-h-process.pl +--- heimdal-1.5.3.orig/cf/roken-h-process.pl 1969-12-31 21:00:00.000000000 -0300 ++++ heimdal-1.5.3/cf/roken-h-process.pl 2013-12-18 11:32:38.157625167 -0300 +@@ -0,0 +1,184 @@ ++#!/usr/bin/perl ++ ++require 'getopts.pl'; ++ ++my $debug = 0; ++ ++Getopts('dc:p:o:') || die "foo"; ++ ++if ($opt_d) { ++ $debug = 1; ++} ++ ++die "missing arg" if (!defined $opt_c || !defined $opt_p || !defined $opt_o); ++ ++my %defines; ++my $IN; ++my $OUT; ++ ++print "parse config.h\n" if ($debug); ++ ++open IN, $opt_c || die "failed open ${opt_c}"; ++ ++my @nesting; ++ ++push @nesting, 1; ++ ++while () { ++ if (m/\s*#ifdef\s+(.*)/) { ++ my $var = $1; ++ if (defined $defines{$var}) { ++ push @nesting, 1; ++ } else { ++ push @nesting, 0; ++ } ++ next; ++ } elsif (m/\s*#ifndef\s+(.*)/) { ++ my $var = $1; ++ if (defined $defines{$var}) { ++ push @nesting, 0; ++ } else { ++ push @nesting, 1; ++ } ++ next; ++ } elsif (m/\s*#else/) { ++ my $var = pop @nesting; ++ $var = !$var; ++ push @nesting, $var; ++ next; ++ } elsif ($nesting[$#nesting] and m/\s*#define\s+(\w+)\s+(\S+)/) { ++ my $res = $2; ++ $res = 1 if (!defined $res); ++ $defines{$1} = $res; ++ } ++} ++ ++close IN; ++ ++if ($debug) { ++ foreach my $i (keys %defines) { ++ print "k: $i v: $defines{$i}\n"; ++ } ++} ++ ++open IN, "$opt_p" || die "failed open ${opt_p}"; ++open OUT, ">$opt_o" || die "failed open ${opt_o}"; ++ ++print "parse roken.h.in\n" if ($debug); ++ ++print OUT "/* This is an OS dependent, generated file */\n"; ++print OUT "\n"; ++print OUT "\n"; ++print OUT "#ifndef __ROKEN_H__\n"; ++print OUT "#define __ROKEN_H__\n"; ++print OUT "\n"; ++ ++@nesting = (1); ++ ++while () { ++ if (m/\s*#ifdef\s+(.*)/) { ++ my $var = $1; ++ if (defined $defines{$var}) { ++ push @nesting, 1; ++ } else { ++ push @nesting, 0; ++ } ++ next; ++ } elsif (m/\s*#ifndef\s+(.*)/) { ++ my $var = $1; ++ if (defined $defines{$var}) { ++ push @nesting, 0; ++ } else { ++ push @nesting, 1; ++ } ++ next; ++ } elsif (m/\s*#if\s+(.*)/) { ++ my $res = parse_if($1); ++ print "line = $res: $1\n" if ($debug); ++ push @nesting, $res; ++ next; ++ } elsif (m/\s*#elif\s+(.*)/) { ++ my $res = pop @nesting; ++ if ($res gt 0) { ++ $res = -1; ++ } else { ++ my $res = parse_if($1); ++ } ++ push @nesting, $res; ++ next; ++ } elsif (m/\s*#else/) { ++ my $var = pop @nesting; ++ $var = !$var; ++ push @nesting, $var; ++ next; ++ } elsif (m/\s*#endif/) { ++ pop @nesting; ++ next; ++ } ++ print "line: $_\n" if ($debug); ++ print "nesting dep $#{nesting}\n" if ($debug); ++ my $i = 0, $t = 1; ++ while ($i le $#nesting) { ++ $t = 0 if ($nesting[$i] le 0); ++ print "nesting $i val $nesting[$i] -> $t\n" if ($debug); ++ $i++; ++ } ++ if ($t) { ++ print OUT; ++ } ++} ++ ++print OUT "\n"; ++print OUT "#endif /* __ROKEN_H__ */\n"; ++ ++ ++close IN; ++ ++exit 0; ++ ++sub parse_if ++{ ++ my ($neg, $var); ++ ++ $_ = shift; ++ ++ if (m/^\s*$/) { ++ print "end $_\n" if ($debug); ++ return 1; ++ } elsif (m/^([^&]+)\&\&(.*)$/) { ++ print "$1 and $2\n" if ($debug); ++ return parse_if($1) and parse_if($2); ++ } elsif (m/^\(([^&]+)\&\&(.*)$/) { ++ print "$1 and $2\n" if ($debug); ++ return parse_if($1) and parse_if($2); ++ } elsif (m/^([^\|]+)\|\|(.*)$/) { ++ print "$1 or $2\n" if ($debug); ++ return parse_if($1) or parse_if($2); ++ } elsif (m/^\s*(\!)?\s*defined\((\w+)\)/) { ++ ($neg, $var) = ($1, $2); ++ print "def: ${neg}-defined(${var})\n" if ($debug); ++ my $res = defined $defines{$var}; ++ if ($neg eq "!") { ++ if ($res) { ++ $res = 0; ++ } else { ++ $res = 1; ++ } ++ } ++ print "res: $res\n" if ($debug); ++ return $res; ++ } elsif (m/^\s*(\!)?(\w+)/) { ++ ($neg, $var) = ($1, $2); ++ print "var: $neg $var\n" if ($debug); ++ my $res; ++ if (defined $defines{$var}) { ++ $res = $defines{$var}; ++ } else { ++ $res = 0; ++ } ++ $res = ! $res if ($neg =~ m/!/); ++ print "res: $res\n" if ($debug); ++ return $res; ++ } ++ die "failed parse: $_\n"; ++}