patches/desktop-cbe-mini-02-pkgbuild-patches.patch
author Guido Berhoerster <gber@openindiana.org>
Mon, 30 May 2011 20:15:01 +0200
changeset 5 50e42deb7bb2
parent 4 d4aca3627be2
child 6 25ef87909474
permissions -rw-r--r--
extended default build environment for sfe-unsupported to include a complete GNU environment
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
     1
diff -urN desktop-cbe-mini-1.8.0.orig/mini-cbe-install desktop-cbe-mini-1.8.0/mini-cbe-install
4
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
     2
--- desktop-cbe-mini-1.8.0.orig/mini-cbe-install	2011-05-06 15:14:34.000000000 +0200
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
     3
+++ desktop-cbe-mini-1.8.0/mini-cbe-install	2011-05-06 15:16:46.000000000 +0200
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
     4
@@ -919,8 +919,11 @@
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
     5
     msg "Please be patient, this may take a couple of minutes."
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
     6
     logrun mkdir -p $tmp_build_dir/packages/SOURCES || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
     7
     logrun ln -s $tardir/pkgbuild-$PKGBUILD_VERSION.tar.bz2 $tmp_build_dir/packages/SOURCES/ || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
     8
+    logrun cp $mydir/patches/pkgbuild-*.patch $tmp_build_dir/packages/SOURCES/ || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
     9
+    logrun patch -p1 < $mydir/pkgbuild-add-patches.patch || return 1
4
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
    10
+    logrun bash -c 'perl_package="$(pkg search -l -H -o pkg.name "link::/usr/bin/perl OR file::/usr/bin/perl" 2>/dev/null)"; sed "s|^Requires:     SUNWperl584core|Requires: ${perl_package:-SUNWperl584core}|" pkgbuild.spec > pkgbuild.spec.$$ && mv pkgbuild.spec.$$ pkgbuild.spec' || return 1
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    11
     logrun cp -pr $tmp_build_dir/src/pkgbuild-$PKGBUILD_VERSION/COPYING $tmp_build_dir/packages/SOURCES/gpl-2.0.txt || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    12
-    logrun_quiet bash -c "$tmp_build_dir/bin/pkgtool --src $tmp_build_dir/packages/SOURCES --nonotify --define \"pkgbuild_prefix /usr\" --define \"_topdir $tmp_build_dir/packages\" build --update-if-newer $tmp_build_dir/src/pkgbuild-$PKGBUILD_VERSION/pkgbuild.spec" || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    13
+    logrun_quiet bash -c "$tmp_build_dir/bin/pkgtool --src $tmp_build_dir/packages/SOURCES --patches $tmp_build_dir/packages/SOURCES --nonotify --define \"pkgbuild_prefix /usr\" --define \"_topdir $tmp_build_dir/packages\" build --update-if-newer $tmp_build_dir/src/pkgbuild-$PKGBUILD_VERSION/pkgbuild.spec" || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    14
     pkgbuild_topdir=`/usr/bin/pkgbuild -bp /usr/lib/pkgbuild-$PKGBUILD_VERSION/get_rpm_topdir 2>&1 | grep '^TOPDIR=' | cut -f2- -d=`
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    15
     logrun mkdir -p "$rootdir/$pkgbuild_topdir/PKGS" "$rootdir/$pkgbuild_topdir/SPKGS"
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    16
     cd /tmp || return 1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    17
diff -urN desktop-cbe-mini-1.8.0.orig/patches/pkgbuild-01-add-unknown-dependencies.patch desktop-cbe-mini-1.8.0/patches/pkgbuild-01-add-unknown-dependencies.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    18
--- desktop-cbe-mini-1.8.0.orig/patches/pkgbuild-01-add-unknown-dependencies.patch	1970-01-01 01:00:00.000000000 +0100
4
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
    19
+++ desktop-cbe-mini-1.8.0/patches/pkgbuild-01-add-unknown-dependencies.patch	2011-05-06 15:15:00.000000000 +0200
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    20
@@ -0,0 +1,13 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    21
+diff -ur pkgbuild-1.3.103.orig/pkgbuild.pl.in pkgbuild-1.3.103/pkgbuild.pl.in
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    22
+--- pkgbuild-1.3.103.orig/pkgbuild.pl.in	2010-07-12 04:56:34.000000000 +0200
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    23
++++ pkgbuild-1.3.103/pkgbuild.pl.in	2010-10-24 11:47:20.000000000 +0200
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    24
+@@ -995,7 +995,8 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    25
+ 	if (defined ($pkg) and defined($pkgname)) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    26
+ 	    print $fhandle "P $pkg $pkgname\n"; 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    27
+ 	} else {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    28
+-	    print "WARNING: omitting $dep from the SVr4 depend file\n";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    29
++	    print "WARNING: unknown dependency $dep\n";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    30
++	    print $fhandle "P $dep\n"; 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    31
+ 	}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    32
+     }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    33
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    34
diff -urN desktop-cbe-mini-1.8.0.orig/patches/pkgbuild-02-nopkg.patch desktop-cbe-mini-1.8.0/patches/pkgbuild-02-nopkg.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    35
--- desktop-cbe-mini-1.8.0.orig/patches/pkgbuild-02-nopkg.patch	1970-01-01 01:00:00.000000000 +0100
4
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
    36
+++ desktop-cbe-mini-1.8.0/patches/pkgbuild-02-nopkg.patch	2011-05-06 15:15:00.000000000 +0200
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    37
@@ -0,0 +1,182 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    38
+diff -ur pkgbuild-1.3.103.orig/pkgtool.pl pkgbuild-1.3.103/pkgtool.pl
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    39
+--- pkgbuild-1.3.103.orig/pkgtool.pl	2010-07-14 13:03:12.000000000 +0200
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    40
++++ pkgbuild-1.3.103/pkgtool.pl	2010-11-02 13:44:16.000000000 +0100
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    41
+@@ -98,6 +98,7 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    42
+ # Which package mechanism are we going to install by default?
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    43
+ my $ips;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    44
+ my $svr4;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    45
++my $nopkg;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    46
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    47
+ sub process_defaults () {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    48
+     my $default_spec_dir = "$topdir/SPECS";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    49
+@@ -363,9 +364,11 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    50
+ 	(defined ($ips_utils) and $ips_utils->is_depotd_enabled())) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    51
+ 	$ips = 1;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    52
+ 	$svr4 = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    53
++	$nopkg = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    54
+     } else {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    55
+ 	$ips = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    56
+ 	$svr4 = 1;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    57
++	$nopkg = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    58
+     }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    59
+ }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    60
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    61
+@@ -764,12 +767,22 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    62
+ 	}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    63
+ 	$ips = shift;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    64
+ 	$svr4 = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    65
++	$nopkg = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    66
+ }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    67
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    68
+ sub set_svr4($) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    69
+ 	msg_info (0,"SVr4 packages will be installed by default");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    70
+ 	$svr4 = shift;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    71
+ 	$ips = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    72
++	$nopkg = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    73
++}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    74
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    75
++sub set_nopkg($) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    76
++	msg_info (0,"Packages will be copied into the filesystem without using a package system");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    77
++	msg_warning (0,"This may break your system!");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    78
++	$ips = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    79
++	$svr4 = undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    80
++	$nopkg = shift;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    81
+ }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    82
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    83
+ sub process_options {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    84
+@@ -868,6 +881,7 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    85
+ 		},
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    86
+ 		'ips' => sub { set_ips(1); },
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    87
+ 		'svr4' => sub { set_svr4(1); },
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    88
++		'nopkg' => sub { set_nopkg(1); },
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    89
+                 'rmlog' => sub { shift; $defaults->set ('rmlog', shift); },
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    90
+ 		'<>' => \&process_args);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    91
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    92
+@@ -945,6 +959,11 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    93
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    94
+ 		  Install SVr4 packages by default.
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    95
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    96
++    --nopkg
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    97
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    98
++		  Don't install any packages, simply copy the files.
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
    99
++		  WARNING: This may break your system!
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   100
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   101
+     --rmlog
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   102
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   103
+                   Automatically remove the log file with each build
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   104
+@@ -1511,6 +1530,95 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   105
+     return 1;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   106
+ }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   107
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   108
++sub install_pkgs_nopkg ($) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   109
++    my $spec_id = shift;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   110
++    my $spec = $specs_to_build[$spec_id];
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   111
++    
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   112
++    my @pkgs = $spec->get_package_names ($ds);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   113
++    my $verbose = $defaults->get ('verbose');
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   114
++    if ($verbose > 0) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   115
++	map msg_info (0, "Installing $_\n"), @pkgs;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   116
++    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   117
++    
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   118
++    my $pkgsdir = $spec->get_value_of ("_topdir") . "/PKGS";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   119
++    
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   120
++    my $adminfile = "/tmp/pkg.admin.$$";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   121
++    make_admin_file ($adminfile);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   122
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   123
++# FIXME: should install in dependency order
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   124
++    foreach my $pkg (@pkgs) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   125
++	my $msg;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   126
++	
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   127
++	# Only install SVr4 package if --svr4 is defined
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   128
++	if (defined $nopkg) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   129
++		my $nopkgdir = "/tmp/.pkgtool-pkg.tmp.$$";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   130
++            if (-e $nopkgdir) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   131
++		    `rm -rf $nopkgdir`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   132
++	    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   133
++	    `mkdir $nopkgdir`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   134
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   135
++	    if (defined ($ds)) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   136
++		$msg=`/usr/bin/pkgtrans $pkgsdir/$pkg $nopkgdir all 2>&1`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   137
++	    } else {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   138
++		$msg=`/usr/bin/pkgtrans $pkgsdir $nopkgdir $pkg 2>&1`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   139
++	    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   140
++	    
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   141
++	    if ($? > 0) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   142
++		unlink ($adminfile);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   143
++		msg_error "failed to install package: $msg";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   144
++		$build_status[$spec_id] = 'FAILED';
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   145
++		$status_details[$spec_id] = $msg;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   146
++		return 0;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   147
++	    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   148
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   149
++	    my $basedir = `grep '^BASEDIR=' $nopkgdir/$pkg/pkginfo |cut -d = -f 2`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   150
++	    chomp $basedir;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   151
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   152
++	    my $pkgmap = `cat $nopkgdir/$pkg/pkgmap`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   153
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   154
++	    # Install directories first.
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   155
++	    while ($pkgmap =~ /^\S+ [dx] \S+ (\S+) (\S+)/mg) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   156
++		my ($path, $mode) = ($1, $2);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   157
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   158
++		if (! -d "$basedir/$path") {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   159
++		    `pfexec mkdir -m $mode -p $basedir/$path`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   160
++		}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   161
++	    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   162
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   163
++	    # Install files. Skip editable/volatile files that already exist.
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   164
++	    while ($pkgmap =~ /^\S+ ([fev]) \S+ (\S+) (\S+)/mg) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   165
++		my ($type, $path, $mode) = ($1, $2, $3);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   166
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   167
++		if ($type !~ /^[ev]$/ || ! -e "$basedir/$path") {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   168
++		    `pfexec cp -Ppf $nopkgdir/$pkg/reloc/$path $basedir/$path`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   169
++		    `pfexec chmod $mode $basedir/$path`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   170
++		}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   171
++	    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   172
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   173
++	    # Install links.
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   174
++	    while ($pkgmap =~ /^\S+ ([sl]) \S+ (\S+)=(\S+)/mg) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   175
++		my ($type, $path, $dest) = ($1, $2, $3);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   176
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   177
++		# Make sure the last argument to ln won't be interpreted as a
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   178
++		# directory name by removing existing directories and symlinks
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   179
++		# to directories first.
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   180
++		if (-e "$basedir/$path") {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   181
++			`pfexec rm -rf $basedir/$path`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   182
++		}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   183
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   184
++		if ($type eq 'l') {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   185
++			`pfexec ln -f $dest $basedir/$path`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   186
++		} else {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   187
++			`pfexec ln -sf $dest $basedir/$path`;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   188
++		}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   189
++	    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   190
++	}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   191
++    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   192
++    
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   193
++    unlink ($adminfile);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   194
++    return 1;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   195
++}
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   196
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   197
+ my %all_incorporations;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   198
+ my %incorporated;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   199
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   200
+@@ -2594,6 +2702,8 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   201
+ 		install_pkgs_ips ($spec_id) || return 0;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   202
+ 	    } elsif (defined ($svr4)) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   203
+ 		install_pkgs_svr4 ($spec_id) || return 0;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   204
++            } elsif (defined ($nopkg)) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   205
++                install_pkgs_nopkg ($spec_id) || return 0;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   206
+ 	    } else {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   207
+ 		msg_error ("Internal error: either IPS or SVr4 should be selected");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   208
+ 		return 0;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   209
+@@ -2673,6 +2783,10 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   210
+ 	$the_command = "$the_command --nodeps";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   211
+     }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   212
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   213
++    if ($nopkg) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   214
++	$the_command = "$the_command --nodeps";
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   215
++    }
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   216
++
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   217
+ # FIXME: ExclusiveArch?
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   218
+     my $rpm_target = $defaults->get ('target');
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   219
+     if (defined($rpm_target)) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   220
diff -urN desktop-cbe-mini-1.8.0.orig/patches/pkgbuild-03-forcefully-copy-docs.patch desktop-cbe-mini-1.8.0/patches/pkgbuild-03-forcefully-copy-docs.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   221
--- desktop-cbe-mini-1.8.0.orig/patches/pkgbuild-03-forcefully-copy-docs.patch	1970-01-01 01:00:00.000000000 +0100
4
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
   222
+++ desktop-cbe-mini-1.8.0/patches/pkgbuild-03-forcefully-copy-docs.patch	2011-05-06 15:15:00.000000000 +0200
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   223
@@ -0,0 +1,13 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   224
+diff -ur pkgbuild-1.3.103.orig/pkgbuild.pl.in pkgbuild-1.3.103/pkgbuild.pl.in
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   225
+--- pkgbuild-1.3.103.orig/pkgbuild.pl.in	2010-11-02 13:39:24.000000000 +0100
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   226
++++ pkgbuild-1.3.103/pkgbuild.pl.in	2010-11-02 13:46:09.000000000 +0100
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   227
+@@ -1172,7 +1172,7 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   228
+     # %doc foo/bar/COPYING
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   229
+     my $fname_basedir = dirname ($fname);
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   230
+     mkdir_p ("./$basedir/$docdir/$fname_basedir") or fatal ("Failed to create directory $mydir/$docdir/$fname_basedir");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   231
+-    system ("cp -p '$blddir/$bsdirname/$doc_subdir$fname' './$basedir/$docdir/$fname_basedir'");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   232
++    system ("cp -fp '$blddir/$bsdirname/$doc_subdir$fname' './$basedir/$docdir/$fname_basedir'");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   233
+     if ($? != 0) {
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   234
+ 	fatal ("ERROR: failed to copy $fname to $mydir/$basedir/$docdir/$fname_basedir");
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   235
+ 	return undef;
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   236
+Only in pkgbuild-1.3.103: pkgbuild.pl.in.orig
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   237
diff -urN desktop-cbe-mini-1.8.0.orig/pkgbuild-add-patches.patch desktop-cbe-mini-1.8.0/pkgbuild-add-patches.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   238
--- desktop-cbe-mini-1.8.0.orig/pkgbuild-add-patches.patch	1970-01-01 01:00:00.000000000 +0100
4
d4aca3627be2 monkey-patch the correct perl dependency into pkgbuild.spec
Guido Berhoerster <gber@openindiana.org>
parents: 0
diff changeset
   239
+++ desktop-cbe-mini-1.8.0/pkgbuild-add-patches.patch	2011-05-06 15:15:00.000000000 +0200
0
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   240
@@ -0,0 +1,23 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   241
+diff -ur pkgbuild-1.3.103.orig/pkgbuild.spec pkgbuild-1.3.103/pkgbuild.spec
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   242
+--- pkgbuild-1.3.103.orig/pkgbuild.spec	2010-07-14 12:53:27.000000000 +0200
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   243
++++ pkgbuild-1.3.103/pkgbuild.spec	2010-11-02 13:54:32.000000000 +0100
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   244
+@@ -16,6 +16,9 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   245
+ Vendor:	      OpenSolaris Community
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   246
+ Summary:      pkgbuild - rpmbuild-like tool for building Solaris packages
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   247
+ Source:       http://prdownloads.sourceforge.net/pkgbuild/pkgbuild-%{version}.tar.bz2
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   248
++Patch1:       pkgbuild-01-add-unknown-dependencies.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   249
++Patch2:       pkgbuild-02-nopkg.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   250
++Patch3:       pkgbuild-03-forcefully-copy-docs.patch
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   251
+ BuildRoot:    %{_tmppath}/%{name}-%{version}-build
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   252
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   253
+ %if %_is_pkgbuild
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   254
+@@ -45,6 +48,9 @@
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   255
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   256
+ %prep
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   257
+ %setup -q -n pkgbuild-%version
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   258
++%patch1 -p1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   259
++%patch2 -p1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   260
++%patch3 -p1
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   261
+ 
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   262
+ %build
b10069f5bd70 initial revision
Guido Berhoerster <guido@berhoerster.name>
parents:
diff changeset
   263
+ ./configure --prefix=%{pkgbuild_prefix}