/) {
			$state = 1;
		}
		if ($state == 1 && $line =~/\<\/p\>/) {
			$state = 2;
		}
	}
	close(HTML);
	$cummul =~ s/\
//g;
	$cummul =~ s/\r//g;
	$cummul =~ s/\<\/p\>//g;
	$cummul =~ s/^\s*//g;
	if (length($cummul)>10) {
		$description = $cummul;
	}
}
#
# If all else fails, just take the first paragraph of the
# readme file
#
sub guess_description_from_readme {
	my ($file) = @_;
	my $state = 0;
	my $cummul = "";
	
	open(FILE, $file);
	while () {
		my $line = $_;
		if ($state == 1 && $line =~ /^\n/ && length($cummul) > 80) {
			$state = 2;
		}
		if ($state == 0 && length($line)>1) {
			$state = 1;
		}
		if ($state == 1) {
			$cummul = $cummul . $line;
		}
		if ($line =~ /(http\:\/\/.*$name.*\.org)/) {
			my $u = $1;
			if ($u =~ /bug/ || length($url) > 1) {
			} else {
				$url = $u;
			}
		}
	}
	close(FILE);
	if (length($cummul) > 4 && length($description)<3) {
		$description = $cummul;
	}
}
#
# Glue all the guesses together
#
sub guess_description {
	my ($directory) = @_;
	@files = <$directory/README*>;
	foreach (@files) {
		guess_description_from_readme($_);
	}
	if (length($name)>2) {
		guess_description_from_freshmeat($name);
	}
	@files = <$directory/*.spec*>;
	foreach (@files) {
		guess_description_from_spec($_);
	}
	guess_description_from_debian_control($directory);
	$name =~ s/ //g;
	@files = <$directory/$name.pc*>;
	foreach (@files) {
		guess_description_from_pkgconfig($_);
	}
	@files = <$directory/*.pc.*>;
	foreach (@files) {
		guess_description_from_pkgconfig($_);
	}
	@files = <$directory/*.pc>;
	foreach (@files) {
		guess_description_from_pkgconfig($_);
	}
	@files = <$directory/*.doap>;
	foreach (@files) {
		guess_description_from_doap($_);
	}
	if (length($summary) < 2) {
		$summary = $description;
		$summary =~ s/\n/ /g;
		$summary =~ s/\s+/ /g;
		if ($summary =~ /(.*?)\./) {
			$summary = $1;
		}
	}
}
# end of Description / Summary section
#
######################################################################
#
# Build the package, and wait for rpm to complain about unpackaged
# files.... which we then use as basis for our %files section
#
sub guess_files_from_rpmbuild {
	my $infiles = 0;
	open(OUTPUTF, "rpmbuild --nodeps --define \"\%_sourcedir $orgdir \" -ba $name.spec 2>&1 |");
	while () {
		my $line2 = $_;
		if ($infiles == 1 && $line2  =~ /RPM build errors/) {
		        $infiles = 2;
		}
		if ($infiles == 1 && $line2  =~ /^Building/) {
		        $infiles = 2;
		}
		
		if ($infiles == 1) {
			$line2 =~ s/\s*//g;
			push(@allfiles, $line2);
		}
		if ($line2 =~ /    Installed \(but unpackaged\) file\(s\) found\:/) {
			$infiles = 1;
		}
	}
	close(OUTPUTF);
	if (@allfiles == 0) {
		print "Build failed ... stopping here.\n";
		exit(0);
	}
}
sub guess_files_from_oscbuild {
	my $infiles = 0;
	my $restart = 0;	
	my $mustrestart = 0;
        my $rcount = 0;
        my $done_python = 0;
        
        system("osc addremove &> /dev/null");
	system("osc ci -m \"Initial import by autospectacle\" &> /dev/null");
retry: 
        if ($restart > 0) {
                write_yaml();
                print "Restarting the build\n";
        }
        $restart = 0;
        $infiles = 0;
        $mustrestart = 0;
	open(OUTPUTF, "osc build --no-verify $name.spec 2>&1 |");
	while () {
		my $line2 = $_;
		
#		print "line is $line2\n";
		if ($infiles == 1 && $line2  =~ /RPM build errors/) {
		        $infiles = 2;
		}
		if ($infiles == 1 && $line2  =~ /^Building/) {
		        $infiles = 2;
		}
		if ($infiles == 1) {
			$line2 =~ s/\s*//g;
			push(@allfiles, $line2);
		}
		if ($line2 =~ /No package \'(.*)\' found/) {
                        push_pkgconfig_buildreq("$1");       
                        $restart = $restart + 1;
                        print "    Adding pkgconfig($1) requirement\n";
		}
		if ($line2 =~ /Package requirements \((.*?)\) were not met/) {
		        $pkg = $1;
			# deal with versioned pkgconfig's by removing the spaces around >= 's 
			$pkg =~ s/\>\=\s/\>\=/g;
			$pkg =~ s/\s\>\=/\>\=/g;
			$pkg =~ s/\=\s/\=/g;
			$pkg =~ s/\s\=/\=/g;
		        my @req = split(/ /,$pkg);
                        foreach (@req) {
                                push_pkgconfig_buildreq("$_");       
                                
                                $restart = $restart + 1;
                                print "    Adding pkgconfig($_) requirement\n";
                        }
		}
		if ($line2 =~ /which: no qmake/) {
		        $restart += 1;
                        push_pkgconfig_buildreq("Qt");
                        print "    Adding Qt requirement\n";
		}
		if ($line2 =~ /Cannot find development files for any supported version of libnl/) {
		        $restart += 1;
                        push_pkgconfig_buildreq("libnl-1");
                        print "    Adding libnl requirement\n";
		}
		if ($line2 =~ //) {
		        $restart += 1;
                        push(@buildreqs, "cmake");
                        print "    Adding cmake requirement\n";
		}
		if ($line2 =~ /checking for (.*?)\.\.\. not_found/ || $line2 =~ /checking for (.*?)\.\.\. no/  || $line2 =~ /checking (.*?)\.\.\. no/) {
		        $pkg = $1;
                        while (($key,$value) = each %failed_commands) {
                                if ($pkg eq $key) {
                                        push(@buildreqs, $value);
                                        print "    Adding $value requirement\n";
                                        $restart += $restart + 1;
                                        $mustrestart = 1;
                                }
                        }
                        
		}
		if ($line2 =~ /checking for [a-zA-Z0-9\_]+ in (.*?)\.\.\. no/) {
		        $pkg = $1;
                        while (($key,$value) = each %failed_libs) {
                                if ($pkg eq $key) {
                                        push(@buildreqs, $value);
                                        print "    Adding $value requirement\n";
                                        $restart += $restart + 1;
                                        $mustrestart = 1;
                                }
                        }
                        
		}
		if ($line2 =~ /-- Could NOT find ([a-zA-Z0-9]+)/) {
		        $pkg = $1;
                        while (($key,$value) = each %failed_libs) {
                                if ($pkg eq $key) {
                                        push(@buildreqs, $value);
                                        print "    Adding $value requirement\n";
                                        $restart += $restart + 1;
                                        $mustrestart = 1;
                                }
                        }
                        
		}
		if ($line2 =~ /fatal error\: (.*)\: No such file or directory/) {
		        $pkg = $1;
                        while (($key,$value) = each %failed_headers) {
                                if ($pkg eq $key) {
                                        push_pkgconfig_buildreq($value);
                                        print "    Adding $value requirement\n";
                                        $restart += $restart + 1;
                                }
                        }
                        
		}
		if ($line2 =~ /checking for UDEV\.\.\. no/) {
		        print "    Adding pkgconfig(udev) requirement\n";
		        push_pkgconfig_buildreq("udev");
		}
		if ($line2 =~ /checking for Apache .* module support/) {
		        print "    Adding pkgconfig(httpd-devel) requirement\n";
		        push(@buildreqs, "httpd-devel");
		        if ($rcount < 3) {
		                $restart = $restart + 1;
		        }
		}
		if ($line2 =~ /([a-zA-Z0-9\-\_]*)\: command not found/i) {
		        my $cmd = $1;
		        my $found = 0;
		        
                        while (($key,$value) = each %failed_commands) {
                                if ($cmd eq $key) {
                                        push(@buildreqs, $value);
                                        print "    Adding $value requirement\n";
                                        $restart += $restart + 1;
                                        $mustrestart = 1;
                                        $found = 1;
                                }
                        }
                        
                        if ($found < 1) {
                                print "    Command $cmd not found!\n";
                        }
		}
		if ($line2 =~ /checking for.*in -ljpeg... no/) {
                        push(@buildreqs, "libjpeg-devel");
                        print "    Adding libjpeg-devel requirement\n";
                        $restart = $restart + 1;
		}
		if ($line2 =~ /fatal error\: zlib\.h\: No such file or directory/) {
                        push(@buildreqs, "zlib-devel");
                        print "    Adding zlib-devel requirement\n";
                        $restart = $restart + 1;
		}
		if ($line2 =~ /error\: xml2-config not found/) {
                        push_pkgconfig_buildreq("libxml-2.0");
                        print "    Adding libxml2-devel requirement\n";
                        $restart = $restart + 1;
		}
		if ($line2 =~ /checking \"location of ncurses\.h file\"/) {
                        push(@buildreqs, "ncurses-devel");
                        print "    Adding ncurses-devel requirement\n";
                        $restart = $restart + 1;
		}
		if (($line2 =~ / \/usr\/include\/python2\.6$/ || $line2 =~ / to compile python extensions/) && $done_python == 0) {
                        push(@buildreqs, "python-devel");
                        print "    Adding python-devel requirement\n";
                        $restart = $restart + 1;
                        $done_python = 1;
		}
		if ($line2 =~ /error: must install xorg-macros 1.6/) {
                        push_pkgconfig_buildreq("xorg-macros");
                        print "    Adding xorg-macros requirement\n";
                        $restart = $restart + 1;
		}
		if ($line2 =~ /installing .*?.gmo as [a-zA-Z0-9\-\.\/\_]+?\/([a-zA-Z0-9\-\_\.]+)\.mo$/) {
		        my $loc = $1;
		        if ($loc eq $localename) {} else {
		                print "    Changing localename from $localename to $loc\n";
        		        $localename = $loc;
                                $restart = $restart + 1;
                        }
		}
		
		if ($infiles == 0 && $line2 =~ /    Installed \(but unpackaged\) file\(s\) found\:/) {
			$infiles = 1;
		}
	}
	close(OUTPUTF);
	if (@allfiles == 0 || $mustrestart > 0) {
	        if ($restart >= 1) 
                {
                        $rcount = $rcount + 1;
                        if ($rcount < 10) {
        	                goto retry;
                        }
	        }
		print "Build failed ... stopping here.\n";
		exit(0);
	}
}
sub process_rpmlint {
	my $infiles = 0;
		
        if ($oscmode == 0) {
                return;
        }		
        print "Verifying package   ....\n";
        
        system("osc addremove &> /dev/null");
	system("osc ci -m \"Final import by autospectacle\" &> /dev/null");
	open(OUTPUTF, "osc build --no-verify $name.spec 2>&1 |");
	while () {
		my $line2 = $_;
		
#		print "line is $line2\n";
		if ($infiles == 1 && $line2  =~ /RPM build errors/) {
		        $infiles = 2;
		}
		if ($infiles == 1 && $line2  =~ /^Building/) {
		        $infiles = 2;
		}
		if ($infiles == 1) {
			$line2 =~ s/\s*//g;
			push(@allfiles, $line2);
		}
		if ($infiles == 0 && $line2 =~ /    Installed \(but unpackaged\) file\(s\) found\:/) {
			$infiles = 1;
		}
	}
	close(OUTPUTF);
}
sub guess_name_from_url {
	my ($bigurl) = @_;
	
	@spliturl = split(/\//, $bigurl);
	while (@spliturl > 1) {
		shift(@spliturl);
	}
	my $tarfile = $spliturl[0];
	
	# Ensure correct name resolution from .zip&tgz archives
	$tarfile =~ s/\.zip/\.tar/;
	$tarfile =~ s/\.tgz/\.tar/;
	$tarfile =~ s/\_/\-/g;
	if ($tarfile =~ /(.*?)\-([0-9\.\-\~]+.*?)\.tar/) {
		$name = $1;
		$version = $2;
		$version =~ s/\-/\_/g;
	}
}
############################################################################
#
# Output functions
#
sub print_name_and_description
{
	my @lines;
	print OUTFILE "Name       : $name\n";
	print OUTFILE "Version    : $version\n";
	print OUTFILE "Release    : 1\n";
	
	# remove dupes
	undef %saw;
	@saw{@groups} = ();
    	@out = sort keys %saw;
    	if (@out == 1) {
		foreach (@out) {
			print OUTFILE "Group      : $_\n";
		}
	} else {
		print OUTFILE "Group      : $group\n";
	}
	# 
	# Work around spectacle bug
	$summary =~ s/\:\s/ /g;
	$summary =~ s/^([a-z])/\u$1/ig; 
	$summary =~ s/\@//g; 
	$summary = substr($summary, 0, 79);
	
	$summary =~ s/\.^//g;
	if (length($summary) < 1) {
	        $summary = "TO BE FILLED IN";
	}
	#
	print OUTFILE "Summary    : $summary\n";
	print OUTFILE "Description: |\n";
	$description =~ s/"/\"/g;
	$description =~ s/\@//g; 
	@lines = split(/\n/, $description);
	foreach (@lines) {
		print OUTFILE "    $_\n";
	}
	if (length($url)>1) {
		print OUTFILE "URL        : $url\n";
	}
	# remove dupes
	undef %saw;
	@saw{@sources} = ();
    	@out = sort keys %saw;
	print OUTFILE "Sources    : \n";
	foreach (@out) {
		$source = $_;
		$source =~ s/$version/\%\{version\}/g;	
		print OUTFILE "    - $source\n";
	}
	
        if (@patches > 0) {
                print OUTFILE "Patches: \n";
                foreach (@patches) {
                        my $patch = $_;
        		print OUTFILE "    - $patch\n";
                }
        }
	
	print OUTFILE "\n";
	if (length($configure)>2) {
		print OUTFILE "Configure  : $configure\n";
	}
	if (length($localename) > 2) {
		print OUTFILE "LocaleName : $localename\n";
	}
	if (length($builder) > 2) {
	        print OUTFILE "Builder    : $builder\n";
	}
}
sub write_makefile
{
	open(MAKEFILE, ">Makefile");
	print MAKEFILE "PKG_NAME := $name\n";
	print MAKEFILE "SPECFILE = \$(addsuffix .spec, \$(PKG_NAME))\n";
	print MAKEFILE "YAMLFILE = \$(addsuffix .yaml, \$(PKG_NAME))\n";
	print MAKEFILE "\n";
	print MAKEFILE "include /usr/share/packaging-tools/Makefile.common\n";
	
	close(MAKEFILE);
}
sub write_changelog
{
	open(CHANGELOG, ">$name.changes");
	$date = ` date +"%a %b %d %Y"`;	
	chomp($date);
	print CHANGELOG "* $date - Autospectacle  - $version\n";
	print CHANGELOG "- Initial automated packaging\n";
	close(CHANGELOG);
}
sub write_yaml
{
	open(OUTFILE, ">$name.yaml");
	print_name_and_description();
	print_license();
	print_pkgconfig();
	print_buildreq();
	print_files();
	print_devel();
	print_doc();
	close(OUTFILE);
	write_makefile();
	write_changelog();
	system("rm $name.spec 2>/dev/null");
	system("specify &> /dev/null");
	if ($oscmode > 0) {
	        system("osc addremove");
        	system("osc ci -m \"Import by autospectacle\" &> /dev/null");
        }
}
sub write_bbfile
{
	my $curdir = `pwd`;
	chomp($curdir);
	if ($python == 1) {
	    $name =~ s/python-//;
    	    $name = lc("python-" . $name);	    
	}
	
	if (-e "$curdir/${name}_$version.bb") {
	    print "Wont overwrite file:";
	    print "$curdir/${name}_$version.bb, exiting\n";
	    return;
	}
	open(BBFILE, ">${name}_$version.bb");
	
	print BBFILE "SUMMARY = \"$summary\"\n";
	print BBFILE "DESCRIPTION = \"$description\"\n";
	print BBFILE "HOMEPAGE = \"$homepage\"\n";
	if ($python == 1) {
	    print BBFILE "SRCNAME = \"$summary\"\n";
	}
	print BBFILE "LICENSE = \"@license\"\n";
	print BBFILE "LIC_FILES_CHKSUM = \"";
	foreach (keys %lic_files) {
		print BBFILE "file://" . basename($_) . ";md5=$lic_files{$_} \\\n";
	}
	print BBFILE "\"\n\n";
	if (@license <= 0) {
		print "Can NOT get license from package source files.\n";
		print "Please update the LICENSE and LIC_FILES_CHKSUM manually.\n";
	}
	if (@buildreqs > 0) {
		my %saw;
		my @out = grep(!$saw{$_}++,@buildreqs);
		print BBFILE "DEPENDS = \"@out\"\n\n";
	};
	if (@rdepends > 0) {
	    print BBFILE "RDEPENDS_\$\{PN\} += \"";
	    foreach (@rdepends) {
		print BBFILE "$_ \\\n\t";
	    }
	    print BBFILE "\"\n";
	}
	if ($python == 1) {
	    print BBFILE "PV = \"$pversion\"\n\n";
	}
	print BBFILE "SRC_URI = \"";
	foreach (@sources) {
		print BBFILE "$_ \\\n";
	}
	print BBFILE "\"\n\n";
	print BBFILE "SRC_URI[md5sum] = \"$md5sum\"\n";
	print BBFILE "SRC_URI[sha256sum] = \"$sha256sum\"\n\n";
	if ($python == 1) {
	    print BBFILE "S = \"\${WORKDIR}/\${SRCNAME}-\${PV}\"\n";
	}
	if (@inherits) {
		print BBFILE "inherit ";
		foreach (@inherits) {
			print BBFILE "$_ ";
		}
		print BBFILE "\n";
	}
	close(BBFILE);	
	print "Create bb file: $curdir/${name}_$version.bb\n";
}
sub calculate_sums
{
    @_ = basename $dir;
    my $md5output = `md5sum @_`;
    $md5output =~ /^([a-zA-Z0-9]*) /;
    $md5sum = $1;
    chomp($md5sum);
    my $sha256output = `sha256sum @_`;
    $sha256output =~ /^([a-zA-Z0-9]*) /;
    $sha256sum = $1;
    chomp($sha256sum);
}
############################################################################
#
# Main program 
#
if ( @ARGV < 1 || $ARGV[0] eq "--help" ) {
    print "Usage: $0 [-r] \n";
    exit(1);
}
# Recusive parsing of python dependencies using
# easy_install
my $recurse_python = 0;
if ($ARGV[0] eq "-r") {
    $recurse_python = 1;
    shift @ARGV;
}
if (@ARGV > 1) {
        my $i = 1;
        while ($i < @ARGV) {
                my $patch = $ARGV[$i];
                print "Adding patch $patch\n";
                push(@patches, $patch);
                $i++;
        }
}
setup_licenses();
setup_files_rules();
setup_group_rules();
setup_pkgconfig_ban();
setup_failed_commands();
if (-e ".osc/_packages") {
 $oscmode = 1;
}
my $tmpdir = tempdir();
$dir = $ARGV[0];
guess_name_from_url($dir);
push(@sources, $dir);
#system("cd $tmpdir; curl -s -O $dir");
$orgdir = `pwd`;
chomp($orgdir);
my $outputdir = $name;
if (! $name) {
	$outputdir = basename $dir;
}
mkpath($outputdir);
chdir($outputdir);
print "Downloading package: $dir\n";
system("wget --quiet $dir") == 0 or die "Download $dir failed.";
calculate_sums($outputdir);
print "Unpacking to       : $tmpdir\n";
my @tgzfiles = <$orgdir/$outputdir/*.tgz>;
foreach (@tgzfiles) {
        my $tgz = basename $_;
        my $tar = $tgz;
        $tar =~ s/tgz/tar\.gz/g;
        $dir =~ s/tgz/tar\.gz/g;
        system("mv $orgdir/$outputdir/$tgz $orgdir/$outputdir/$tar");
        guess_name_from_url($dir);
}
#
# I really really hate the fact that meego deleted the -a option from tar.
# this is a step backwards in time that is just silly.
#
my @sourcetars = <$orgdir/$outputdir/*\.tar\.bz2 $orgdir/$outputdir/*\.tar\.gz $orgdir/$outputdir/*\.zip>;
if (scalar(@sourcetars) == 0) {
	print "Can NOT find source tarball. Exiting...\n";
	exit (1);
}
if (defined($sourcetars[0]) and $sourcetars[0] =~ ".*\.tar\.bz2") {
	system("cd $tmpdir; tar -jxf $sourcetars[0] &>/dev/null");
} elsif (defined($sourcetars[0]) and $sourcetars[0] =~ ".*\.tar\.gz") {
	system("cd $tmpdir; tar -zxf $sourcetars[0] &>/dev/null");
} elsif (defined($sourcetars[0]) and $sourcetars[0] =~ ".*\.zip") {
        system("cd $tmpdir; unzip $sourcetars[0] &>/dev/null");
}
print "Parsing content    ....\n";
my @dirs = <$tmpdir/*>;
foreach (@dirs) {
	$dir = $_;
}
$fulldir = $dir;
if ( -e "$dir/setup.py" ) {
       	$python = 1;
	$tmp_stools = `grep -r setuptools $dir/setup.py`;
	if (length($tmp_stools) > 2) {
	    push(@inherits, "setuptools");
	} else {
	    push(@inherits, "distutils");
	}	
	$templic = `cd $dir; python setup.py --license;`;
	$templic =~ s/[\r\n]+//g;
	push(@license, $templic);
	$summary = `cd $dir; python setup.py --name`;
	$summary =~ s/[\r\n]+//g;
	$description = `cd $dir; python setup.py --description`;
	$description =~ s/[\r\n]+//g;
	$homepage = `cd $dir; python setup.py --url`;
	$homepage =~ s/[\r\n]+//g;
	$pversion = `cd $dir; python setup.py -V`;
	$pversion =~ s/[\r\n]+//g;
#	$findoutput = `cd $dir; python setup.py --requires`;
#	if (length($findoutput) < 3) {
	$findoutput = `find $dir/*.egg-info/ -name "requires.txt" 2>/dev/null`;
#	}
	@findlist = split(/\n/, $findoutput);
	foreach (@findlist) {
	    push(@rawpythondeps, `sed -e '/^\$/d' "$_" | sed '/^\\[/d'`);
	    chomp(@rawpythondeps);
	    push(@rdepends, `sed -e 's/python-//g' "$_" | sed '/^\\[/d'`);
	    chomp(@rdepends);
	    if ($recurse_python == 1) {
		foreach (@rawpythondeps) {
		    my $ptempdir = tempdir();
		    $purl = `easy_install -aeb $ptempdir "$_" 2>/dev/null`;
		    $purl =~ s/#.*//g;
		    @purllist = $purl =~ m/Downloading (.*:\/\/.*\n)/g;
		    chomp(@purllist);
		    
		    # Remove empty lines
		    @purllist = grep(/\S/, @purllist);
		    # Recursively create recipes for dependencies
		    if (@purllist != 0) {
			if (fork) {
			    # Parent, do nothing
			} else {
			    # child, execute 
			    print "Recursively creating recipe for: $purllist[0]\n";
			    exec("cd .. ; create-recipe -r $purllist[0]");
			}
		    }
		}
		wait;
	    }
	    foreach $item (@rdepends) {
		@pyclean = split(/(\=|\<|\>).*/, $item);
		if (defined($pyclean[0])) {
		    $item = lc("python-" . $pyclean[0]);
		}
	    }
	}
}
if ( -e "$dir/autogen.sh" ) {
	$configure = "autogen";
	$uses_configure = 1;
	push(@inherits, "autotools");
}
if ( -e "$dir/BUILD-CMAKE" ) {
	$configure = "cmake";
	push(@buildreqs, "cmake");
	$uses_configure = 1;
	push(@inherits, "cmake");
}
if ( -e "$dir/configure" ) {
	$configure = "";
}
my @files = <$dir/configure\.*>;
my $findoutput = `find $dir -name "configure.ac" 2>/dev/null`;
my @findlist = split(/\n/, $findoutput);
foreach (@findlist) {
	push(@files, $_);
}
foreach (@files) {
	process_configure_ac("$_");
}
$findoutput = `find $dir -name "*.pro" 2>/dev/null`;
@findlist = split(/\n/, $findoutput);
foreach (@findlist) {
	process_qmake_pro("$_");
}
if (-e "$dir/$name.pro") {
        $builder = "qmake";
        push_pkgconfig_buildreq("Qt");
	push(@inherits, "qmake2");
}
#
# This is a good place to generate configure.in
#
if (length($configure) > 2) {
	if ($configure eq "autogen") {
		system("cd $dir ; ./autogen.sh &> /dev/null");
	}
}
@files = <$dir/configure>;
foreach (@files) {
	process_configure("$_");
}
if ($uses_configure == 0) {
	$configure = "none"; 
}
@files = <$dir/docs/license.txt>;
foreach (@files) {
	guess_license_from_file("$_");
}
@files = <$dir/COPY*>;
foreach (@files) {
	guess_license_from_file("$_");
}
@files = <$dir/LICENSE*>;
foreach (@files) {
	guess_license_from_file("$_");
}
@files = <$dir/GPL*>;
foreach (@files) {
	guess_license_from_file("$_");
}
 
if ($python != 1) {
        guess_description($dir);
}
#
# Output of bbfile file
#
write_bbfile();
chdir($orgdir);
exit 0;
#
# Output of the yaml file
#
if ($oscmode == 1) {
	print "Creating OBS project $name ...\n";
	system("osc mkpac $name &> /dev/null");
	system("mkdir $name &> /dev/null");
	chdir($name);
	system("mv ../$name*\.tar\.* .");
}
write_yaml();
print "Building package   ....\n";
if ($oscmode == 0) {
	guess_files_from_rpmbuild();
} else {
 	guess_files_from_oscbuild();
}
apply_files_rules();
$printed_subpackages = 0;
write_yaml();
process_rpmlint();
print "Spectacle creation complete.\n";