[137500] branches/gsoc15-dependency/base/src/macports1.0

ijackson at macports.org ijackson at macports.org
Fri Jun 12 22:59:01 PDT 2015


Revision: 137500
          https://trac.macports.org/changeset/137500
Author:   ijackson at macports.org
Date:     2015-06-12 22:59:01 -0700 (Fri, 12 Jun 2015)
Log Message:
-----------
WIP: Implement search using libsolv

Modified Paths:
--------------
    branches/gsoc15-dependency/base/src/macports1.0/macports.tcl
    branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl

Modified: branches/gsoc15-dependency/base/src/macports1.0/macports.tcl
===================================================================
--- branches/gsoc15-dependency/base/src/macports1.0/macports.tcl	2015-06-13 05:31:55 UTC (rev 137499)
+++ branches/gsoc15-dependency/base/src/macports1.0/macports.tcl	2015-06-13 05:59:01 UTC (rev 137500)
@@ -2741,8 +2741,9 @@
 
     if {[info exists macports::global_options(ports_depengine)]} {
         if {$macports::global_options(ports_depengine) eq "libsolv"} {
-            macports::libsolv::print
             macports::libsolv::create_pool
+            # macports::libsolv::print
+            set search_res [macports::libsolv::search $pattern]
         }
     }
     set found 0

Modified: branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl
===================================================================
--- branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl	2015-06-13 05:31:55 UTC (rev 137499)
+++ branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl	2015-06-13 05:59:01 UTC (rev 137500)
@@ -47,12 +47,18 @@
     ## Variable to keep check if libsolv cache is created or not.
     variable libsolv_pool
 
+    ## Variable for pool
+    variable pool
+
     proc print {} {
+        variable libsolv_pool
         puts $solv::Job_SOLVER_SOLVABLE
+        puts $libsolv_pool
     }
 
     proc create_pool {} {
         variable libsolv_pool
+        variable pool
 
         if {![info exists libsolv_pool]} {
             global macports::sources
@@ -63,7 +69,8 @@
             foreach source $sources {
                 set source [lindex $source 0]
                 set repo [$pool add_repo $source]
-            
+                set solvable [$repo add_solvable]
+ 
                 if {[catch {set fd [open [macports::getindex $source] r]} result]} {
                     ui_warn "Can't open index file for source: $source"
                 } else {
@@ -77,7 +84,8 @@
                             set line [read $fd $len]
                             
                             #puts "\nname = ${name}\n" 
-                            set solvable [$repo add_solv $name]
+                            $solvable configure -name $name
+                            #puts [$solvable cget -name]
                         }
                     }
                 }
@@ -91,5 +99,32 @@
 
     proc search {pattern} {
         # Search using libsolv
+        # puts "pattern = $pattern"
+        # global macports::libsolv::pool
+        variable pool
+
+        set sel [$pool Selection]
+        #set di [$pool Dataiterator $solv::SOLVABLE_NAME $pattern [expr $solv::Dataiterator_SEARCH_SUBSTRING | $solv::Dataiterator_SEARCH_NOCASE]]
+        #puts [$pool Dataiterator $solv::SOLVABLE_NAME $pattern [expr $solv::Dataiterator_SEARCH_SUBSTRING | $solv::Dataiterator_SEARCH_NOCASE]]
+       
+        #puts [$di __next__ ]
+
+        foreach data [$pool Dataiterator $solv::SOLVABLE_NAME $pattern [expr $solv::Dataiterator_SEARCH_SUBSTRING | $solv::Dataiterator_SEARCH_NOCASE]] {
+        #while {[$di __next__] ne "NULL"}  
+            puts "data = $data"
+            $sel add_raw $solv::Job_SOLVER_SOLVABLE $data::solvid
+        }
+
+        foreach s [$sel solvables] {
+            puts "solvable = $s"
+        }
+        
+        #puts $res
+
+        #if {[info exists res]} {
+        #    puts "$pattern found by libsolv"
+        #} else {
+        #    puts "$pattern not found by libsolv"
+        #}
     }
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150612/fc4dd216/attachment.html>


More information about the macports-changes mailing list