mirror of
https://github.com/Project-OSS-Revival/alien.git
synced 2026-04-24 14:00:17 +00:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e14d223117 | ||
|
|
f456bbf8b6 | ||
|
|
78734c0523 | ||
|
|
f680d3af91 | ||
|
|
5b605e1960 | ||
|
|
cbf330f982 | ||
|
|
bcd8dae206 | ||
|
|
edcd96f80f | ||
|
|
c21645ddfa | ||
|
|
0f8fa0df54 | ||
|
|
2a84d6e8ec | ||
|
|
66a1247dfd | ||
|
|
e921e1417f | ||
|
|
d15598e944 | ||
|
|
ee792cb76c | ||
|
|
ecabe240bc | ||
|
|
b2421b584a | ||
|
|
7893ffb4ed |
@@ -317,6 +317,7 @@ sub prep {
|
|||||||
my $line=<$changelog>;
|
my $line=<$changelog>;
|
||||||
if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) {
|
if ($line=~/^[^ ]+\s+\(([^)]+)\)\s/) {
|
||||||
my $version=$1;
|
my $version=$1;
|
||||||
|
$version=~s/\s+//; # ensure no whitespace
|
||||||
if ($version=~/(.*)-(.*)/) {
|
if ($version=~/(.*)-(.*)/) {
|
||||||
$version=$1;
|
$version=$1;
|
||||||
$this->release($2);
|
$this->release($2);
|
||||||
@@ -334,10 +335,14 @@ sub prep {
|
|||||||
print OUT $this->name." (".$this->version."-".$this->release.") experimental; urgency=low\n";
|
print OUT $this->name." (".$this->version."-".$this->release.") experimental; urgency=low\n";
|
||||||
print OUT "\n";
|
print OUT "\n";
|
||||||
print OUT " * Converted from .".$this->origformat." format to .deb by alien version $Alien::Version\n";
|
print OUT " * Converted from .".$this->origformat." format to .deb by alien version $Alien::Version\n";
|
||||||
|
print OUT " \n";
|
||||||
|
if (defined $this->changelogtext) {
|
||||||
|
my $ct=$this->changelogtext;
|
||||||
|
$ct=~s/^/ /gm;
|
||||||
|
print OUT $ct."\n";
|
||||||
|
}
|
||||||
print OUT "\n";
|
print OUT "\n";
|
||||||
print OUT " -- ".$this->username." <".$this->email."> ".$this->date."\n";
|
print OUT " -- ".$this->username." <".$this->email."> ".$this->date."\n";
|
||||||
print OUT "\n";
|
|
||||||
print OUT $this->changelogtext."\n" if defined $this->changelogtext;
|
|
||||||
close OUT;
|
close OUT;
|
||||||
|
|
||||||
# Control file.
|
# Control file.
|
||||||
@@ -679,7 +684,7 @@ sub email {
|
|||||||
close MAILNAME;
|
close MAILNAME;
|
||||||
}
|
}
|
||||||
if (!$mailname) {
|
if (!$mailname) {
|
||||||
$mailname=$this->runpipe(1, "hostname -f");
|
$mailname=$this->runpipe(1, "hostname");
|
||||||
chomp $mailname;
|
chomp $mailname;
|
||||||
}
|
}
|
||||||
return "$login\@$mailname";
|
return "$login\@$mailname";
|
||||||
@@ -734,7 +739,7 @@ sub postinst {
|
|||||||
return $postinst unless %$owninfo;
|
return $postinst unless %$owninfo;
|
||||||
|
|
||||||
my ($firstline, $rest)=split(/\n/, $postinst, 2);
|
my ($firstline, $rest)=split(/\n/, $postinst, 2);
|
||||||
if ($firstline !~ m/^#!\s*\/bin\/sh/) {
|
if ($firstline !~ m/^#!\s*\/bin\/(ba)?sh/) {
|
||||||
print STDERR "warning: unable to add ownership fixup code to postinst as the postinst is not a shell script!\n";
|
print STDERR "warning: unable to add ownership fixup code to postinst as the postinst is not a shell script!\n";
|
||||||
return $postinst;
|
return $postinst;
|
||||||
}
|
}
|
||||||
@@ -750,7 +755,7 @@ sub postinst {
|
|||||||
return "$firstline\n$permscript\n$rest";
|
return "$firstline\n$permscript\n$rest";
|
||||||
}
|
}
|
||||||
|
|
||||||
=cut
|
=back
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ sub prep {
|
|||||||
# grep {/^\./} readdir DIR;
|
# grep {/^\./} readdir DIR;
|
||||||
# closedir DIR;
|
# closedir DIR;
|
||||||
|
|
||||||
$this->do("cd $dir; find . -print | pkgproto > ./prototype")
|
$this->do("cd $dir; find . -print | sed -e '/.\\/prototype\$/d' | pkgproto > ./prototype")
|
||||||
|| die "error during pkgproto: $!\n";
|
|| die "error during pkgproto: $!\n";
|
||||||
|
|
||||||
open(PKGPROTO, ">>$dir/prototype")
|
open(PKGPROTO, ">>$dir/prototype")
|
||||||
@@ -327,6 +327,8 @@ sub build {
|
|||||||
return $name;
|
return $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
Mark Hershberger <mah@everybody.org>
|
Mark Hershberger <mah@everybody.org>
|
||||||
|
|||||||
@@ -239,6 +239,9 @@ sub unpack {
|
|||||||
while (<GETPERMS>) {
|
while (<GETPERMS>) {
|
||||||
chomp;
|
chomp;
|
||||||
my ($mode, $owner, $group, $file) = split(/ /, $_, 4);
|
my ($mode, $owner, $group, $file) = split(/ /, $_, 4);
|
||||||
|
|
||||||
|
next if -l "$workdir/$file";
|
||||||
|
|
||||||
$mode = $mode & 07777; # remove filetype
|
$mode = $mode & 07777; # remove filetype
|
||||||
my $uid = getpwnam($owner);
|
my $uid = getpwnam($owner);
|
||||||
if (! defined $uid || $uid != 0) {
|
if (! defined $uid || $uid != 0) {
|
||||||
@@ -258,12 +261,10 @@ sub unpack {
|
|||||||
if (defined($owninfo{$file}) && ($mode & 07000 > 0)) {
|
if (defined($owninfo{$file}) && ($mode & 07000 > 0)) {
|
||||||
$modeinfo{$file} = sprintf "%lo", $mode;
|
$modeinfo{$file} = sprintf "%lo", $mode;
|
||||||
}
|
}
|
||||||
next unless -e "$workdir/$file"; # skip broken links
|
|
||||||
if ($> == 0) {
|
if ($> == 0) {
|
||||||
$this->do("chown", "$uid:$gid", "$workdir/$file")
|
$this->do("chown", "$uid:$gid", "$workdir/$file")
|
||||||
|| die "failed chowning $file to $uid\:$gid\: $!";
|
|| die "failed chowning $file to $uid\:$gid\: $!";
|
||||||
}
|
}
|
||||||
next if -l "$workdir/$file"; # skip links
|
|
||||||
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|
$this->do("chmod", sprintf("%lo", $mode), "$workdir/$file")
|
||||||
|| die "failed changing mode of $file to $mode\: $!";
|
|| die "failed changing mode of $file to $mode\: $!";
|
||||||
}
|
}
|
||||||
@@ -463,11 +464,16 @@ debian/slackware scripts can be anything -- perl programs or binary files
|
|||||||
-- and rpm is limited to only shell scripts, we need to encode the files
|
-- and rpm is limited to only shell scripts, we need to encode the files
|
||||||
and add a scrap of shell script to make it unextract and run on the fly.
|
and add a scrap of shell script to make it unextract and run on the fly.
|
||||||
|
|
||||||
When setting a value, we do some mangling too. Rpm maitainer scripts
|
When setting a value, we do some mangling too. Rpm maintainer scripts
|
||||||
are typically shell scripts, but often lack the leading #!/bin/sh
|
are typically shell scripts, but often lack the leading shebang line.
|
||||||
This can confuse dpkg, so add the #!/bin/sh if it looks like there
|
This can confuse dpkg, so add the shebang if it looks like there
|
||||||
is no shebang magic already in place.
|
is no shebang magic already in place.
|
||||||
|
|
||||||
|
Additionally, it's not uncommon for rpm maintainer scripts to contain
|
||||||
|
bashisms, which can be triggered when they are ran on systems where /bin/sh
|
||||||
|
is not bash. To work around this, the shebang line of the scripts is
|
||||||
|
changed to use bash.
|
||||||
|
|
||||||
Also, if the rpm is relocatable, the script could refer to
|
Also, if the rpm is relocatable, the script could refer to
|
||||||
RPM_INSTALL_PREFIX, which is set by rpm at run time. Deal with this by
|
RPM_INSTALL_PREFIX, which is set by rpm at run time. Deal with this by
|
||||||
adding code to the script to set RPM_INSTALL_PREFIX.
|
adding code to the script to set RPM_INSTALL_PREFIX.
|
||||||
@@ -489,9 +495,10 @@ sub _script_helper {
|
|||||||
|
|
||||||
my $value=shift;
|
my $value=shift;
|
||||||
if (length $value and $value !~ m/^#!\s*\//) {
|
if (length $value and $value !~ m/^#!\s*\//) {
|
||||||
$value="#!/bin/sh\n$prefixcode$value";
|
$value="#!/bin/bash\n$prefixcode$value";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
$value=~s@^#!\s*/bin/sh(\s)@#!/bin/bash$1@;
|
||||||
$value=~s/\n/\n$prefixcode/s;
|
$value=~s/\n/\n$prefixcode/s;
|
||||||
}
|
}
|
||||||
$this->{$script} = $value;
|
$this->{$script} = $value;
|
||||||
|
|||||||
@@ -358,6 +358,8 @@ sub release {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
Joey Hess <joey@kitenet.net>
|
Joey Hess <joey@kitenet.net>
|
||||||
|
|||||||
@@ -9,10 +9,14 @@ Alien::Package::Tgz - an object that represents a tgz package
|
|||||||
package Alien::Package::Tgz;
|
package Alien::Package::Tgz;
|
||||||
use strict;
|
use strict;
|
||||||
use base qw(Alien::Package);
|
use base qw(Alien::Package);
|
||||||
|
use Cwd qw(abs_path);
|
||||||
|
|
||||||
|
my $tarext=qr/\.(?:tgz|tar(?:\.(?:gz|Z|z|bz|bz2))?|taz)$/;
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
This is an object class that represents a tgz package, as used in Slackware.
|
This is an object class that represents a tgz package, as used in Slackware.
|
||||||
|
It also allows conversion of raw tar files.
|
||||||
It is derived from Alien::Package.
|
It is derived from Alien::Package.
|
||||||
|
|
||||||
=head1 CLASS DATA
|
=head1 CLASS DATA
|
||||||
@@ -49,7 +53,7 @@ sub checkfile {
|
|||||||
my $this=shift;
|
my $this=shift;
|
||||||
my $file=shift;
|
my $file=shift;
|
||||||
|
|
||||||
return $file =~ m/.*\.(?:tgz|tar\.(?:gz|Z|z)|taz)$/;
|
return $file =~ m/$tarext$/;
|
||||||
}
|
}
|
||||||
|
|
||||||
=item install
|
=item install
|
||||||
@@ -93,9 +97,9 @@ sub scan {
|
|||||||
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
|
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
|
||||||
|
|
||||||
# Strip out any tar extentions.
|
# Strip out any tar extentions.
|
||||||
$basename=~s/\.(tgz|tar\.(gz|Z))$//;
|
$basename=~s/$tarext//;
|
||||||
|
|
||||||
if ($basename=~m/(.*)-(.*?[0-9]+.*)/) {
|
if ($basename=~m/([\w-]+)-([0-9\.?]+).*/) {
|
||||||
$this->name($1);
|
$this->name($1);
|
||||||
$this->version($2);
|
$this->version($2);
|
||||||
}
|
}
|
||||||
@@ -106,11 +110,11 @@ sub scan {
|
|||||||
|
|
||||||
$this->arch('all');
|
$this->arch('all');
|
||||||
|
|
||||||
$this->summary("Converted Slackware tgz package");
|
$this->summary("Converted tgz package");
|
||||||
$this->description($this->summary);
|
$this->description($this->summary);
|
||||||
$this->copyright('unknown');
|
$this->copyright('unknown');
|
||||||
$this->release(1);
|
$this->release(1);
|
||||||
$this->distribution("Slackware");
|
$this->distribution("Slackware/tarball");
|
||||||
$this->group("unknown");
|
$this->group("unknown");
|
||||||
$this->origformat('tgz');
|
$this->origformat('tgz');
|
||||||
$this->changelogtext('');
|
$this->changelogtext('');
|
||||||
@@ -119,7 +123,7 @@ sub scan {
|
|||||||
# Now figure out the conffiles. Assume anything in etc/ is a
|
# Now figure out the conffiles. Assume anything in etc/ is a
|
||||||
# conffile.
|
# conffile.
|
||||||
my @conffiles;
|
my @conffiles;
|
||||||
open (FILELIST,"tar zvtf $file | grep etc/ |") ||
|
open (FILELIST,"tar vtf $file | grep etc/ |") ||
|
||||||
die "getting filelist: $!";
|
die "getting filelist: $!";
|
||||||
while (<FILELIST>) {
|
while (<FILELIST>) {
|
||||||
# Make sure it's a normal file. This is looking at the
|
# Make sure it's a normal file. This is looking at the
|
||||||
@@ -136,7 +140,7 @@ sub scan {
|
|||||||
# Now get the whole filelist. We have to add leading /'s to the
|
# Now get the whole filelist. We have to add leading /'s to the
|
||||||
# filenames. We have to ignore all files under /install/
|
# filenames. We have to ignore all files under /install/
|
||||||
my @filelist;
|
my @filelist;
|
||||||
open (FILELIST, "tar ztf $file |") ||
|
open (FILELIST, "tar tf $file |") ||
|
||||||
die "getting filelist: $!";
|
die "getting filelist: $!";
|
||||||
while (<FILELIST>) {
|
while (<FILELIST>) {
|
||||||
chomp;
|
chomp;
|
||||||
@@ -148,7 +152,7 @@ sub scan {
|
|||||||
|
|
||||||
# Now get the scripts.
|
# Now get the scripts.
|
||||||
foreach my $script (keys %{scripttrans()}) {
|
foreach my $script (keys %{scripttrans()}) {
|
||||||
$this->$script(scalar $this->runpipe(1, "tar Oxzf $file install/${scripttrans()}{$script} 2>/dev/null"));
|
$this->$script(scalar $this->runpipe(1, "tar Oxf $file install/${scripttrans()}{$script} 2>/dev/null"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@@ -163,9 +167,9 @@ Unpack tgz.
|
|||||||
sub unpack {
|
sub unpack {
|
||||||
my $this=shift;
|
my $this=shift;
|
||||||
$this->SUPER::unpack(@_);
|
$this->SUPER::unpack(@_);
|
||||||
my $file=$this->filename;
|
my $file=abs_path($this->filename);
|
||||||
|
|
||||||
$this->do("cat $file | (cd ".$this->unpacked_tree."; tar zxpf -)")
|
$this->do("cd ".$this->unpacked_tree."; tar xpf $file")
|
||||||
or die "Unpacking of '$file' failed: $!";
|
or die "Unpacking of '$file' failed: $!";
|
||||||
# Delete the install directory that has slackware info in it.
|
# Delete the install directory that has slackware info in it.
|
||||||
$this->do("cd ".$this->unpacked_tree."; rm -rf ./install");
|
$this->do("cd ".$this->unpacked_tree."; rm -rf ./install");
|
||||||
@@ -218,6 +222,8 @@ sub build {
|
|||||||
return $tgz;
|
return $tgz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
Joey Hess <joey@kitenet.net>
|
Joey Hess <joey@kitenet.net>
|
||||||
|
|||||||
54
debian/changelog
vendored
54
debian/changelog
vendored
@@ -1,3 +1,57 @@
|
|||||||
|
alien (8.77) unstable; urgency=low
|
||||||
|
|
||||||
|
* Don't allow whitespace in package version when parsing debian/changelog.
|
||||||
|
* In rpm permission fixup code, avoid processing symlinks since that
|
||||||
|
would result in the file the link points to being "fixed". Closes: #535586
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Mon, 06 Jul 2009 13:37:01 -0400
|
||||||
|
|
||||||
|
alien (8.76) unstable; urgency=low
|
||||||
|
|
||||||
|
* Avoid using hostname -f for portability to unix systems,
|
||||||
|
such as Solaris, where any options _set_ the hostname.
|
||||||
|
* Fix bash shebang and recognise bash scripts as editable
|
||||||
|
shell scripts when converting to deb. Closes: #532330
|
||||||
|
(Thanks, Bruce Stephens)
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Mon, 08 Jun 2009 13:22:35 -0400
|
||||||
|
|
||||||
|
alien (8.75) unstable; urgency=low
|
||||||
|
|
||||||
|
* Simplified rules file.
|
||||||
|
* Modify maintainer scripts from rpm files to use /bin/bash rather
|
||||||
|
than /bin/sh. Many such scripts are only tested on systems where /bin/sh
|
||||||
|
is bash, and contain bashisms, which can cause trouble when converting
|
||||||
|
the rpm to be used on eg, the Debian family of distributions, where
|
||||||
|
/bin/sh can legitimatly be dash. Closes: #495971
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Wed, 06 May 2009 17:22:02 -0400
|
||||||
|
|
||||||
|
alien (8.74) unstable; urgency=low
|
||||||
|
|
||||||
|
* Support bzipped and uncompressed tar files, using tar's auto-compression
|
||||||
|
detection. (Requires gnu tar 1.14.91)
|
||||||
|
* pod fixes
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 19:51:54 -0500
|
||||||
|
|
||||||
|
alien (8.73) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fix pkg generation to not include /prototype in all packages.
|
||||||
|
(Kim Bisgaard)
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Sun, 26 Oct 2008 23:43:47 -0400
|
||||||
|
|
||||||
|
alien (8.72) unstable; urgency=low
|
||||||
|
|
||||||
|
* Use debhelper 7, rules file minimisation.
|
||||||
|
* Improve parsing of tgz filenames, to avoid confusion when the filename
|
||||||
|
includes the package type (ie, "noarch"). Patch from Andrej Ricnik-Bay.
|
||||||
|
* When generating a debian changelog file, work around bug #478925 by
|
||||||
|
including the alien changelog text inside the debian changelog entry.
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Thu, 01 May 2008 15:40:34 -0400
|
||||||
|
|
||||||
alien (8.71) unstable; urgency=low
|
alien (8.71) unstable; urgency=low
|
||||||
|
|
||||||
* Deal with rpms that relocate ie, /usr into /usr/local, and don't
|
* Deal with rpms that relocate ie, /usr into /usr/local, and don't
|
||||||
|
|||||||
2
debian/compat
vendored
2
debian/compat
vendored
@@ -1 +1 @@
|
|||||||
4
|
7
|
||||||
|
|||||||
4
debian/control
vendored
4
debian/control
vendored
@@ -1,9 +1,9 @@
|
|||||||
Source: alien
|
Source: alien
|
||||||
Section: admin
|
Section: admin
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Build-Depends: debhelper (>= 4)
|
Build-Depends: debhelper (>= 7.0.50)
|
||||||
Maintainer: Joey Hess <joeyh@debian.org>
|
Maintainer: Joey Hess <joeyh@debian.org>
|
||||||
Standards-Version: 3.7.3
|
Standards-Version: 3.8.1
|
||||||
Vcs-Git: git://git.kitenet.net/alien
|
Vcs-Git: git://git.kitenet.net/alien
|
||||||
Homepage: http://kitenet.net/~joey/code/alien/
|
Homepage: http://kitenet.net/~joey/code/alien/
|
||||||
|
|
||||||
|
|||||||
2
debian/docs
vendored
Normal file
2
debian/docs
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
README
|
||||||
|
gendiff.txt
|
||||||
43
debian/rules
vendored
43
debian/rules
vendored
@@ -1,47 +1,20 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
build: build-stamp
|
override_dh_auto_test:
|
||||||
build-stamp:
|
|
||||||
dh_testdir
|
|
||||||
perl Makefile.PL
|
|
||||||
$(MAKE)
|
|
||||||
# simple smoke test
|
# simple smoke test
|
||||||
./alien.pl -V
|
./alien.pl -V
|
||||||
touch build-stamp
|
|
||||||
|
|
||||||
clean:
|
override_dh_auto_install:
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
rm -f build-stamp
|
|
||||||
perl Makefile.PL
|
|
||||||
if [ -e Makefile ]; then $(MAKE) realclean; fi
|
|
||||||
dh_clean
|
|
||||||
|
|
||||||
binary-arch: build
|
|
||||||
|
|
||||||
binary-indep: build
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_clean -k
|
|
||||||
$(MAKE) pure_install INSTALLDIRS=vendor \
|
$(MAKE) pure_install INSTALLDIRS=vendor \
|
||||||
PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \
|
PREFIX=$(shell pwd)/debian/alien/$(shell perl -MConfig -e 'print $$Config{prefix}') \
|
||||||
VARPREFIX=$(shell pwd)/debian/alien
|
VARPREFIX=$(shell pwd)/debian/alien
|
||||||
# Why does it make this empty directory? Sigh.
|
|
||||||
rm -rf debian/alien/usr/lib
|
override_dh_auto_clean:
|
||||||
dh_installdocs README gendiff.txt
|
# distclean moans about MANIFEST, this is quieter
|
||||||
dh_installexamples
|
if [ -e Makefile ]; then $(MAKE) realclean; fi
|
||||||
dh_installchangelogs
|
|
||||||
dh_compress
|
|
||||||
dh_fixperms
|
|
||||||
dh_perl
|
|
||||||
dh_installdeb
|
|
||||||
dh_gencontrol
|
|
||||||
dh_md5sums
|
|
||||||
dh_builddeb
|
|
||||||
|
|
||||||
# Not intended for use by anyone except the author.
|
# Not intended for use by anyone except the author.
|
||||||
announcedir:
|
announcedir:
|
||||||
@echo ${HOME}/src/joeywiki/code/alien/news
|
@echo ${HOME}/src/joeywiki/code/alien/news
|
||||||
|
|
||||||
binary: binary-indep binary-arch
|
|
||||||
.PHONY: build clean binary-indep binary-arch binary
|
|
||||||
|
|||||||
Reference in New Issue
Block a user