Changeset 26254


Ignore:
Timestamp:
06/01/10 14:51:26 (7 years ago)
Author:
xfade
Message:

Build-depends support for source

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ragnaroek/midcom/org.maemo.packages/style/source_view.php

    r23510 r26254  
    5252}
    5353
     54$depends = split("[,]",preg_replace("/[0-9]\:/","",$source->builddepends));
     55//$depends = split("[,|]",$source["depends"]);
     56$depends_string = "";
     57$depends_missing = false;
     58if ($source->builddepends != "")
     59{
     60    for ($i = 0;$i < count($depends); $i++)
     61    {
     62        $temp_depends = array();
     63        $multiple_entries = split("[|]",trim($depends[$i]));
     64        if (count($multiple_entries) > 1)
     65        {
     66
     67            foreach($multiple_entries as $entry)
     68            {
     69                $temp_depends[] = split(" ",str_replace(array('(',')'),'',str_replace('1:','',trim($entry))));
     70            }
     71            $one_of_multiple_satisfied = false;
     72        }
     73        else
     74        {
     75            $temp_depends[] = split(" ",str_replace(array('(',')'),'',str_replace('1:','',trim($depends[$i]))));
     76        }
     77
     78        $count = 0;
     79        foreach ($temp_depends as $temp_depend)
     80        {
     81            $temp_depend_string = $temp_depend[0];
     82            if (isset($temp_depend[1]))
     83            {
     84                $temp_depend_string .= " (".$temp_depend[1];
     85            }
     86            if (isset($temp_depend[2]))
     87            {
     88                $temp_depend_string .= " ".$temp_depend[2].')';
     89            }
     90
     91            $return_repository = null;
     92            $return_packageinstance = null;
     93            $method = 'largest';
     94            if (   isset($temp_depend[1])
     95                && isset($temp_depend[2])
     96                && $temp_depend[1] == '=')
     97            {
     98                $version_required = $temp_depend[2];
     99                $method = 'equal';
     100            }
     101            else
     102            {
     103                $version_required = false;
     104            }
     105            $found = org_maemo_packages_handler_repository_repository::package_in_repository_or_neighbour($repository->name, $temp_depend[0],$version_required,$method,&$return_repository,&$return_packageinstance,$data['config']);
     106            $version_compatible = false;
     107            if (   isset($temp_depend[1])
     108                && isset($temp_depend[2])
     109                && $found)
     110            {
     111                if (strpos($temp_depend[1], ">=") !== false)
     112                {
     113                    $version_compatible = org_maemo_packages_handler_repository_repository::package_version_is_larger_or_equal($return_packageinstance->version,$temp_depend[2],$data['config']);
     114                }
     115                if ($temp_depend[1] == '>>')
     116                {
     117                    $version_compatible = org_maemo_packages_handler_repository_repository::package_version_is_larger($return_packageinstance->version,$temp_depend[2],$data['config']);
     118                }
     119                if ($temp_depend[1] == '=')
     120                {
     121                    $version_compatible = org_maemo_packages_handler_repository_repository::package_version_is_equal($return_packageinstance->version,$temp_depend[2],$data['config']);
     122                }
     123                if ($temp_depend[1] == '<<')
     124                {
     125                    $version_compatible = org_maemo_packages_handler_repository_repository::package_version_is_lower($return_packageinstance->version,$temp_depend[2],$data['config']);
     126                }
     127            }
     128            else
     129            {
     130                //No version requirement set in depends, this means that any version is accepted.
     131                if ($found)
     132                {
     133                    $version_compatible = true;
     134                    $one_of_multiple_satisfied = true;
     135                }
     136            }
     137
     138            if ($found)
     139            {
     140                if ($version_compatible)
     141                {
     142                    $temp_package = new org_maemo_packages_package($return_packageinstance->package);
     143                    $depends_string .= '<a class="'.$return_repository->name.'" title="'.$temp_depend[0].' '.$return_packageinstance->version. ' in '.$return_repository->title.'" href="'. $prefix .'package_instance/view/'. $return_repository->name .'/'. $temp_package->name .'/'.$return_packageinstance->version . '/">'. $temp_depend_string . '</a>';
     144                    $one_of_multiple_satisfied = true;
     145                }
     146                else
     147                {
     148                    $depends_string .= '<a class="'.$return_repository->name.' version_incompatible" title="'.$temp_depend[0].' '.$return_packageinstance->version. ' in '.$return_repository->title.' is not compatible!" href="'. $prefix .'package_instance/view/'. $return_repository->name .'/'. $temp_depend[0].'/'.$return_packageinstance->version . '/">'. $temp_depend_string . '</a>';
     149                    if (( isset($one_of_multiple_satisfied) &&  !$one_of_multiple_satisfied)
     150                        || !isset($one_of_multiple_satisfied))
     151                    {
     152                        $depends_missing = true;
     153                    }
     154                }
     155            }
     156            else
     157            {
     158                $depends_string .= '<span class="not-found">'.$temp_depend_string.'</span>';
     159
     160                if (( isset($one_of_multiple_satisfied) &&  !$one_of_multiple_satisfied) && $count == (count($multiple_entries) - 1)
     161                    || !isset($one_of_multiple_satisfied))
     162                {
     163                    $depends_missing = true;
     164                }
     165            }
     166            if  (   $count < count($multiple_entries) - 1
     167                 && count($multiple_entries) > 1)
     168            {
     169                $depends_string .= ' | ';
     170            }
     171
     172            $count++;
     173        }
     174
     175        if ($i < (count($depends) - 1))
     176        {
     177            $depends_string .= ', ';
     178        }
     179        if (isset($one_of_multiple_satisfied))
     180        {
     181            unset($one_of_multiple_satisfied);
     182        }
     183    }
     184}//if
     185
    54186?>
    55187<h1>Source package: <?php echo $source->sourcename . ' ' . $source->version; ?></h1>
     
    108240
    109241    ?></div>
     242    <div class="depends"><div class="dt">Build-Depends:</div><div class="dtt"><?php echo $depends_string; ?></div>
     243
    110244<?php
    111245    if (!$repository->disabledownload)
Note: See TracChangeset for help on using the changeset viewer.