apkbuild-pypi.in: fix bugs, upgrade for python3 only and add to make
This commit is contained in:
parent
0d4bb95046
commit
6310405af8
2
Makefile
2
Makefile
@ -9,7 +9,7 @@ datadir ?= $(prefix)/share/$(PACKAGE)
|
|||||||
mandir ?= $(prefix)/share/man
|
mandir ?= $(prefix)/share/man
|
||||||
|
|
||||||
SCRIPTS := abuild abuild-keygen abuild-sign newapkbuild \
|
SCRIPTS := abuild abuild-keygen abuild-sign newapkbuild \
|
||||||
abump apkgrel buildlab apkbuild-cpan checkapk \
|
abump apkgrel buildlab apkbuild-cpan apkbuild-pypi checkapk \
|
||||||
apkbuild-gem-resolver
|
apkbuild-gem-resolver
|
||||||
USR_BIN_FILES := $(SCRIPTS) abuild-tar abuild-gzsplit abuild-sudo abuild-fetch abuild-rmtemp
|
USR_BIN_FILES := $(SCRIPTS) abuild-tar abuild-gzsplit abuild-sudo abuild-fetch abuild-rmtemp
|
||||||
MAN_1_PAGES := newapkbuild.1
|
MAN_1_PAGES := newapkbuild.1
|
||||||
|
@ -13,36 +13,40 @@ my %pkgmap = ();
|
|||||||
my %licenses = ();
|
my %licenses = ();
|
||||||
|
|
||||||
my $template = <<'EOF';
|
my $template = <<'EOF';
|
||||||
# Contributor: [% contributor %]
|
[% authors %]
|
||||||
# Maintainer: [% maintainer %]
|
|
||||||
pkgname=[% pkgname %]
|
pkgname=[% pkgname %]
|
||||||
_pkgreal=[% pkgreal %]
|
_pkgreal=[% pkgreal %]
|
||||||
pkgver=[% pkgver %]
|
pkgver=[% pkgver %]
|
||||||
pkgrel=0
|
pkgrel=0
|
||||||
pkgdesc=[% pkgdesc %]
|
pkgdesc="[% pkgdesc %]"
|
||||||
url="http://packages.python.org/pypi/[% pkgreal %]"
|
url="http://packages.python.org/pypi/[% pkgreal %]"
|
||||||
arch="noarch"
|
arch="noarch"
|
||||||
license="PSF"
|
license="[% license %]"
|
||||||
pydepends=""
|
pydepends=""
|
||||||
pymakedepends=""
|
pymakedepends=""
|
||||||
depends="python $pydepends"
|
depends="python3 $pydepends"
|
||||||
makedepends="python-dev $pymakedepends"
|
checkdepends="python3-dev"
|
||||||
subpackages="$pkgname-doc"
|
makedepends="py3-setuptools $pymakedepends"
|
||||||
|
subpackages=""
|
||||||
source="[% source %]"
|
source="[% source %]"
|
||||||
builddir="$srcdir/$_pkgreal-$pkgver"
|
builddir="$srcdir/$_pkgreal-$pkgver"
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "$builddir"
|
python3 setup.py build
|
||||||
python setup.py build
|
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
cd "$builddir"
|
PYTHONPATH=$pkgdir`python3 -c "import site; print(site.getsitepackages()[0])"` \
|
||||||
python setup.py install \
|
python3 setup.py install \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
--root="$pkgdir" \
|
--root="$pkgdir" \
|
||||||
--single-version-externally-managed
|
--single-version-externally-managed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
python3 setup.py test
|
||||||
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
my $ua = LWP::UserAgent->new();
|
my $ua = LWP::UserAgent->new();
|
||||||
@ -60,19 +64,22 @@ sub read_file {
|
|||||||
|
|
||||||
sub read_assignments_from_file {
|
sub read_assignments_from_file {
|
||||||
my ($filename) = @_;
|
my ($filename) = @_;
|
||||||
|
return () if ( ! -e $filename );
|
||||||
my $text = read_file($filename);
|
my $text = read_file($filename);
|
||||||
my %sline = $text =~ /^(\w+)\s*=\s*([^\"\n]*)$/mg;
|
my %sline = $text =~ /^(\w+)\s*=\s*([^\"\n]*)$/mg;
|
||||||
my %mline = $text =~ /^(\w+)\s*=\s*\"([^\"]*)\"$/mg;
|
my %mline = $text =~ /^(\w+)\s*=\s*\"([^\"]*)\"$/mg;
|
||||||
|
my %hash = ( %sline, %mline );
|
||||||
|
|
||||||
my %temp = (%sline, %mline);
|
my $authors = join("\n", $text =~ /^# Contributor: .*$/mg, $text =~ /^# Maintainer: .*$/mg);
|
||||||
|
$hash{'authors'} = $authors if length($authors) > 1;
|
||||||
|
|
||||||
return \%temp;
|
return \%hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub map_pypi_to_apk {
|
sub map_pypi_to_apk {
|
||||||
my ($pypi) = @_;
|
my ($pypi) = @_;
|
||||||
return $pkgmap{$pypi} unless !exists($pkgmap{$pypi});
|
return $pkgmap{$pypi} unless !exists($pkgmap{$pypi});
|
||||||
return 'py-'.lc($pypi);
|
return 'py3-'.lc($pypi);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub map_license {
|
sub map_license {
|
||||||
@ -97,15 +104,16 @@ sub read_apkbuild {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub write_apkbuild {
|
sub write_apkbuild {
|
||||||
my ($distdata) = @_;
|
my ($distdata, $authors) = @_;
|
||||||
|
|
||||||
my %repl = (
|
my %repl = (
|
||||||
packager => $packager,
|
authors => ($authors or "# Contributor: $packager\n# Maintainer: $packager"),
|
||||||
pkgname => map_pypi_to_apk($distdata->{info}{name}),
|
pkgname => map_pypi_to_apk($distdata->{info}{name}),
|
||||||
pkgreal => $distdata->{info}{name},
|
pkgreal => $distdata->{info}{name},
|
||||||
pkgver => $distdata->{info}{version},
|
pkgver => $distdata->{info}{version},
|
||||||
source => get_source($distdata),
|
source => get_source($distdata),
|
||||||
license => map_license($distdata->{info}{license}),
|
license => map_license($distdata->{info}{license}),
|
||||||
|
pkgdesc => $distdata->{info}{summary},
|
||||||
);
|
);
|
||||||
$template =~ s/\[% (.*?) %\]/$repl{$1}/g;
|
$template =~ s/\[% (.*?) %\]/$repl{$1}/g;
|
||||||
|
|
||||||
@ -124,7 +132,7 @@ sub prepare_tree {
|
|||||||
|
|
||||||
sub get_data {
|
sub get_data {
|
||||||
my ($package) = @_;
|
my ($package) = @_;
|
||||||
my $response = $ua->get("http://pypi.python.org/pypi/$package/json");
|
my $response = $ua->get("https://pypi.python.org/pypi/$package/json");
|
||||||
$response->is_success or die $response->status_line;
|
$response->is_success or die $response->status_line;
|
||||||
my $distdata = $json->decode($response->decoded_content);
|
my $distdata = $json->decode($response->decoded_content);
|
||||||
|
|
||||||
@ -135,7 +143,7 @@ sub get_deps {
|
|||||||
my ($data) = @_;
|
my ($data) = @_;
|
||||||
|
|
||||||
chdir "src/$data->{pkgreal}-$data->{pkgver}";
|
chdir "src/$data->{pkgreal}-$data->{pkgver}";
|
||||||
my $reqs = `python ./setup.py --requires`;
|
my $reqs = `python3 ./setup.py --requires`;
|
||||||
|
|
||||||
my @reqs = split /\n/, $reqs;
|
my @reqs = split /\n/, $reqs;
|
||||||
|
|
||||||
@ -162,6 +170,9 @@ sub get_deps {
|
|||||||
my $abuild_conf = read_assignments_from_file('/etc/abuild.conf');
|
my $abuild_conf = read_assignments_from_file('/etc/abuild.conf');
|
||||||
$packager = $abuild_conf->{PACKAGER} if $abuild_conf->{PACKAGER};
|
$packager = $abuild_conf->{PACKAGER} if $abuild_conf->{PACKAGER};
|
||||||
|
|
||||||
|
my $user_abuild_conf = read_assignments_from_file($ENV{"HOME"} . "/.abuild/abuild.conf");
|
||||||
|
$packager = $user_abuild_conf->{PACKAGER} if $user_abuild_conf->{PACKAGER};
|
||||||
|
|
||||||
sub usage {
|
sub usage {
|
||||||
say <<'EOF';
|
say <<'EOF';
|
||||||
Usage: apkbuild-pypi [create <package> | check | recreate | upgrade | update]
|
Usage: apkbuild-pypi [create <package> | check | recreate | upgrade | update]
|
||||||
@ -188,16 +199,17 @@ given ($ARGV[0]) {
|
|||||||
mkdir $apkname;
|
mkdir $apkname;
|
||||||
chdir $apkname;
|
chdir $apkname;
|
||||||
|
|
||||||
my $data = write_apkbuild($distdata);
|
my $data = write_apkbuild($distdata, undef);
|
||||||
prepare_tree;
|
prepare_tree;
|
||||||
|
|
||||||
get_deps($data);
|
get_deps($data);
|
||||||
} when ('recreate') {
|
} when ('recreate') {
|
||||||
my $apkbuild = read_apkbuild;
|
my $apkbuild = read_apkbuild;
|
||||||
my $distdata = get_data($apkbuild->{_pkgreal});
|
my $distdata = get_data($apkbuild->{_pkgreal});
|
||||||
|
my $data = write_apkbuild($distdata, $apkbuild->{authors});
|
||||||
|
|
||||||
prepare_tree;
|
prepare_tree;
|
||||||
get_deps;
|
get_deps($data);
|
||||||
} when ('upgrade') {
|
} when ('upgrade') {
|
||||||
my $apkbuild = read_apkbuild;
|
my $apkbuild = read_apkbuild;
|
||||||
my $distdata = get_data($apkbuild->{_pkgreal});
|
my $distdata = get_data($apkbuild->{_pkgreal});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user