From c1d306015f7f8bc604ff1aba49f90e0be85f959f Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Tue, 19 Mar 2013 20:05:29 +0800 Subject: [PATCH 1/5] use /usr/bin/perl in the case that /usr/local/bin/perl does not exist --- scripts/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build b/scripts/build index ef6ad5e..495bd46 100755 --- a/scripts/build +++ b/scripts/build @@ -1,6 +1,6 @@ #!/bin/sh -if [ "$PERL" = "" ]; then +if [ ! -x "$PERL" ]; then PERL=/usr/bin/perl fi if [ "$PREFIX" = "" ]; then From f72fd87a6d00e97c52ea28ea80e68c873cc2bfae Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Wed, 20 Mar 2013 10:08:40 +0800 Subject: [PATCH 2/5] added debian's control template --- index.yaml | 10 ++++++++++ root/usr/share/multipkg/templates/control.template | 8 ++++++++ source/lib/Seco/Multipkg.pm | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 root/usr/share/multipkg/templates/control.template diff --git a/index.yaml b/index.yaml index a263ad4..7397845 100644 --- a/index.yaml +++ b/index.yaml @@ -13,3 +13,13 @@ default: - subversion-perl - perl-Git - perl-Error +deb: + arch: amd64 + provides: + - perl-seco-class + - perl-seco-cpan + requires: + - libfile-fnmatch-perl + - libyaml-syck-perl + - libsvn-perl + - liberror-perl diff --git a/root/usr/share/multipkg/templates/control.template b/root/usr/share/multipkg/templates/control.template new file mode 100644 index 0000000..7b40b62 --- /dev/null +++ b/root/usr/share/multipkg/templates/control.template @@ -0,0 +1,8 @@ +Package: %name% +Version: %version%-%release% +Architecture: %arch% +Depends: %requirelist% +Maintainer: %whoami% +Source: %name% +Description: + %summary% diff --git a/source/lib/Seco/Multipkg.pm b/source/lib/Seco/Multipkg.pm index 7122111..2b1f812 100644 --- a/source/lib/Seco/Multipkg.pm +++ b/source/lib/Seco/Multipkg.pm @@ -970,7 +970,7 @@ sub makepackage { mkdir $self->installdir . "/DEBIAN" unless ( -d $self->installdir . "/DEBIAN" ); - $self->template_file( $self->info->confdir . "/control.template", + $self->template_file( $self->info->confdir . "/templates/control.template", $self->installdir . "/DEBIAN/control" ); my %trans = ( From a4bd74ea6bbec4cc61cc9df75c69171209aba2da Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Wed, 20 Mar 2013 11:13:50 +0800 Subject: [PATCH 3/5] fixed architecture setting problem on debian --- index.yaml | 5 +++-- root/usr/share/multipkg/default.yaml | 4 ---- source/lib/Seco/Multipkg.pm | 12 ++++++++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/index.yaml b/index.yaml index 7397845..c43aa83 100644 --- a/index.yaml +++ b/index.yaml @@ -1,9 +1,10 @@ default: - arch: noarch name: multipkg version: '1.2' summary: Automation for package builds (supports RPM, deb) buildprefix: /usr +rpm: + arch: noarch provides: - Seco::Multipkg - perl-seco-class @@ -14,7 +15,7 @@ default: - perl-Git - perl-Error deb: - arch: amd64 + arch: all provides: - perl-seco-class - perl-seco-cpan diff --git a/root/usr/share/multipkg/default.yaml b/root/usr/share/multipkg/default.yaml index 5f90085..529b352 100644 --- a/root/usr/share/multipkg/default.yaml +++ b/root/usr/share/multipkg/default.yaml @@ -4,12 +4,8 @@ default: perl: '/usr/bin/perl' version: '0.0001' shebangmunge: 1 - arch: i686 x86_64 os_specific: no -deb: - perl: '/usr/local/bin/perl' - rpm: autoreqprov: no epoch: 20 diff --git a/source/lib/Seco/Multipkg.pm b/source/lib/Seco/Multipkg.pm index 2b1f812..2b63044 100644 --- a/source/lib/Seco/Multipkg.pm +++ b/source/lib/Seco/Multipkg.pm @@ -970,6 +970,13 @@ sub makepackage { mkdir $self->installdir . "/DEBIAN" unless ( -d $self->installdir . "/DEBIAN" ); + # rename x86_64 to debian's amd64 + use Data::Dumper; + print Dumper($self->info->data); + if ($self->info->data->{arch} eq 'x86_64') { + $self->info->data->{arch} = 'amd64'; + } + $self->template_file( $self->info->confdir . "/templates/control.template", $self->installdir . "/DEBIAN/control" ); @@ -1190,6 +1197,11 @@ sub _init { } } + if ( !$finaldata->{arch} ) { + $finaldata->{arch} = `uname -m`; + chomp $finaldata->{arch}; + } + if ( !$finaldata->{packagetype} ) { for ( reverse @platforms ) { $finaldata->{packagetype} ||= 'gem' From c81b5774a8ca5e3fde80ff089a826ffc9b8b3600 Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Wed, 20 Mar 2013 11:16:40 +0800 Subject: [PATCH 4/5] removed annoy debug message --- source/lib/Seco/Multipkg.pm | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/lib/Seco/Multipkg.pm b/source/lib/Seco/Multipkg.pm index 2b63044..cb7bfa1 100644 --- a/source/lib/Seco/Multipkg.pm +++ b/source/lib/Seco/Multipkg.pm @@ -971,8 +971,6 @@ sub makepackage { unless ( -d $self->installdir . "/DEBIAN" ); # rename x86_64 to debian's amd64 - use Data::Dumper; - print Dumper($self->info->data); if ($self->info->data->{arch} eq 'x86_64') { $self->info->data->{arch} = 'amd64'; } From 1fd65739bee46e51021d80cac86e59a05b6057e1 Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Wed, 20 Mar 2013 13:01:06 +0800 Subject: [PATCH 5/5] use dpkg --print-architecture to find arch string on debian system --- source/lib/Seco/Multipkg.pm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/lib/Seco/Multipkg.pm b/source/lib/Seco/Multipkg.pm index cb7bfa1..598a695 100644 --- a/source/lib/Seco/Multipkg.pm +++ b/source/lib/Seco/Multipkg.pm @@ -803,6 +803,11 @@ sub makepackage { $self->info->data->{rpmtemprepo} = $self->tmpdir . "/rpm"; + if ( !$self->info->data->{arch} ) { + $self->info->data->{arch} = `arch`; + chomp $self->info->data->{arch}; + } + $self->template_file( $self->info->confdir . "/templates/spec.template", $self->tmpdir . "/spec" ); @@ -970,9 +975,9 @@ sub makepackage { mkdir $self->installdir . "/DEBIAN" unless ( -d $self->installdir . "/DEBIAN" ); - # rename x86_64 to debian's amd64 - if ($self->info->data->{arch} eq 'x86_64') { - $self->info->data->{arch} = 'amd64'; + if ( !$self->info->data->{arch} ) { + $self->info->data->{arch} = `dpkg --print-architecture`; + chomp $self->info->data->{arch}; } $self->template_file( $self->info->confdir . "/templates/control.template", @@ -1195,11 +1200,6 @@ sub _init { } } - if ( !$finaldata->{arch} ) { - $finaldata->{arch} = `uname -m`; - chomp $finaldata->{arch}; - } - if ( !$finaldata->{packagetype} ) { for ( reverse @platforms ) { $finaldata->{packagetype} ||= 'gem'