YaST/Research/YaST Interface for Webpin/Implementation

From openSUSE

Contents

YaST Interface for Webpin - Implementation

This YaST module offers a possibility to search for packages and/or repositories using several search criteria. Users can select a package and/or repository to be installed/added into their system.

This YaST module uses API from api.opensuse-community.org, detailed description of search possibilities is at Package_Search/Design.


Overview

YaST client webpin_package_search creates and handles UI and user input. Calls WebpinPackageSearch package search. User selects packages to install (plus repositories to use/add) and clicks [Next]. After that XML description for OneClickInstall is generated from all the information already known got from server and calls OneClickInstallUI client

(Launched YaST2 component 'y2base' 'OneClickInstallUI' '-S' '(/tmp/e0cbdbf03ce47dfd5c5f885b86706ddfa023d8dc)' 'qt').


Supported Search Criteria

Search Type Search URL
  • Package name
  • Package description
  • Package content

Variables in Search

  • <distribution> (openSUSE_110, openSUSE_103, openSUSE_102, ...)
  • <searchterm>


YaST UI Proposal

 Search for                     +-Search in -------------+
 [xyz________________________]  | [x] Name               |
                                | [x] Description        |
 [ &Search ]                    | [ ] Contents           |
                                +------------------------+
 +-------------------------------------------------------+
 | [ ] aaa_xyz - Package for aaa providing also xyz      |
 | [ ] xyz_aaa - Package for xyz providing also aaa      |
 | [ ] ...     - ...                                     |
 |                                                       |
 |                                                       |
 +-------------------------------------------------------+
 +-------------------------------------------------------+
 | Description: Description of the selected package.     |
 | Repository: http://some-url                           |
 |                                                       |
 +-------------------------------------------------------+


WebpinPackageSearch API

  WebpinPackageSearch::SearchForPackages (
      "desktop",
      nil, // or "openSUSE_110"
      $[
          "name" : true,
          "description" : true,
          "contents" : false,
      ]
  )

returns

  [
    ...
    $[
        "archs":[
            "x86_64"
        ],
        "checksum":"8e012c31db55d8ac56e690da02f9fa91382e81d8",
        "distro":"openSUSE_110",
        "name":"libgnome-desktop-2-2-32bit",
        "priority":"5",
        "repoURL":"http://download.opensuse.org/distribution/11.0/repo/oss/suse",
        "summary":"The GNOME Desktop API Library",
        "version":"2.22.1"
    ],
    ...
  ]