[Midnightbsd-cvs] mports: lib/Magus: sync with developement version.

ctriv at midnightbsd.org ctriv at midnightbsd.org
Tue Nov 20 12:03:45 EST 2007


Log Message:
-----------
sync with developement version.

Modified Files:
--------------
    mports/Tools/lib/Magus:
        Log.pm (r1.3 -> r1.4)
        Machine.pm (r1.2 -> r1.3)
        Port.pm (r1.10 -> r1.11)
        Result.pm (r1.5 -> r1.6)
        Snap.pm (r1.1 -> r1.2)

Added Files:
-----------
    mports/Tools/lib/Magus:
        OSVersion.pm (r1.1)

-------------- next part --------------
Index: Machine.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Magus/Machine.pm,v
retrieving revision 1.2
retrieving revision 1.3
diff -L Tools/lib/Magus/Machine.pm -L Tools/lib/Magus/Machine.pm -u -r1.2 -r1.3
--- Tools/lib/Magus/Machine.pm
+++ Tools/lib/Magus/Machine.pm
@@ -35,7 +35,8 @@
 
 
 __PACKAGE__->table('machines');
-__PACKAGE__->columns(Essential => qw/id arch name maintainer/);
+__PACKAGE__->columns(Essential => qw/id arch name maintainer osversion/);
+__PACKAGE__->has_a(osversion => 'Magus::OSVersion');
 
 
 1;
Index: Log.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Magus/Log.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -L Tools/lib/Magus/Log.pm -L Tools/lib/Magus/Log.pm -u -r1.3 -r1.4
--- Tools/lib/Magus/Log.pm
+++ Tools/lib/Magus/Log.pm
@@ -35,7 +35,7 @@
 
 
 __PACKAGE__->table('logs');
-__PACKAGE__->columns(Essential => qw/result phase data/);
+__PACKAGE__->columns(Essential => qw/result data/);
 
 
 1;
Index: Port.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Magus/Port.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -L Tools/lib/Magus/Port.pm -L Tools/lib/Magus/Port.pm -u -r1.10 -r1.11
--- Tools/lib/Magus/Port.pm
+++ Tools/lib/Magus/Port.pm
@@ -46,7 +46,37 @@
 __PACKAGE__->has_many(results => 'Magus::Result');
 __PACKAGE__->has_many(categories => [ 'Magus::PortCategory' => 'category' ]);
 
-__PACKAGE__->set_sql(ready_ports => 'SELECT __ESSENTIAL__ FROM ready_ports WHERE arch=?');
+__PACKAGE__->set_sql(ready_ports => <<'END_OF_SQL');
+SELECT ports.*,(SELECT COUNT(*) FROM depends WHERE dependency=ports.id) AS priority 
+FROM ports 
+WHERE 
+    arch=?
+  AND
+    (id NOT IN (SELECT port FROM locks WHERE port=ports.id)) 
+  AND 
+    (id NOT IN (SELECT port FROM results WHERE version=ports.version AND port=ports.id AND osversion=?)) 
+  AND 
+    ((id NOT IN (SELECT port FROM depends WHERE port=ports.id)) 
+      OR 
+    (id NOT IN (
+      SELECT port FROM depends WHERE 
+          port=ports.id 
+        AND 
+        (
+          (dependency NOT IN (
+            SELECT port FROM results JOIN ports ON ports.id=results.port AND ports.version=results.version WHERE 
+                results.port=dependency 
+              AND 
+                osversion=? 
+              AND 
+                (summary='pass' OR summary='warn')
+          ))
+         OR 
+          (dependency IN (SELECT port FROM locks WHERE port=dependency))
+        )
+    )))
+ORDER BY priority DESC;
+END_OF_SQL
 
 =head2 Magus::Port->get_ready_port;
 
@@ -72,9 +102,10 @@
 =cut
 
 sub get_ready_port {
-  my $arch = $Magus::Machine->arch;
+  my $osver = $Magus::Machine->osversion;
+  my $arch  = $Magus::Machine->arch;
   
-  return shift->search_ready_ports($arch)->next;
+  return shift->search_ready_ports($arch, $osver, $osver)->next;
 }
   
 
@@ -99,7 +130,7 @@
 
 sub current_result {
   my ($self) = @_;
-  return $self->results(version => $self->version)->next;
+  return $self->results(version => $self->version, osversion => $Magus::Machine->osversion)->next;
 }
 
 =head2 $port->all_depends
@@ -199,9 +230,10 @@
   my $version = $self->version || '???';
   
   $result = $self->add_to_results({
-    version => $version,
-    machine => $Magus::Machine,
-    summary => $summary,
+    version   => $version,
+    machine   => $Magus::Machine,
+    osversion => $Magus::Machine->osversion,
+    summary   => $summary,
   });
   
   $result->add_to_subresults({
--- /dev/null
+++ Tools/lib/Magus/OSVersion.pm
@@ -0,0 +1,43 @@
+package Magus::OSVersion;
+#
+# Copyright (c) 2007 Chris Reinhardt. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# 1. Redistributions of source code must retain the above copyright notice
+#    this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# $MidnightBSD: mports/Tools/lib/Magus/OSVersion.pm,v 1.1 2007/11/20 17:03:45 ctriv Exp $
+# 
+# MAINTAINER=   ctriv at MidnightBSD.org
+#
+
+use strict;
+use warnings;
+use base qw(Magus::DBI);
+
+
+__PACKAGE__->table('osversions');
+__PACKAGE__->columns(Essential => qw/id name branch date/);
+
+
+1;
+__END__
+
Index: Snap.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Magus/Snap.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -L Tools/lib/Magus/Snap.pm -L Tools/lib/Magus/Snap.pm -u -r1.1 -r1.2
--- Tools/lib/Magus/Snap.pm
+++ Tools/lib/Magus/Snap.pm
@@ -50,9 +50,15 @@
   my ($self) = @_;
   my $id = $self->id;
   
-  return "$Magus::Config{MasterDataDir}/$Magus::Config{MportsSnapDir}/$id.tar.bz2"
+  return "$id.tar.bz2"
 }
 
+sub tarballpath {
+  return "$Magus::Config{MasterDataDir}/$Magus::Config{MportsSnapDir}/" . shift->tarball;
+}
+
+
+
 
 1;
 __END__
Index: Result.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Magus/Result.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -L Tools/lib/Magus/Result.pm -L Tools/lib/Magus/Result.pm -u -r1.5 -r1.6
--- Tools/lib/Magus/Result.pm
+++ Tools/lib/Magus/Result.pm
@@ -37,10 +37,12 @@
 
 
 __PACKAGE__->table('results');
-__PACKAGE__->columns(All => qw/id port version summary machine/);
+__PACKAGE__->columns(All => qw/id port version summary machine osversion/);
+
+__PACKAGE__->has_a(port      => 'Magus::Port');
+__PACKAGE__->has_a(machine   => 'Magus::Machine');
+__PACKAGE__->has_a(osversion => 'Magus::OSVersion');
 
-__PACKAGE__->has_a(port => 'Magus::Port');
-__PACKAGE__->has_a(machine => 'Magus::Machine');
 __PACKAGE__->has_many(subresults => 'Magus::SubResult');
 __PACKAGE__->might_have(log       => 'Magus::Log' => 'data');
 


More information about the Midnightbsd-cvs mailing list