Hello community,
here is the log from the commit of package yast2-packager for openSUSE:13.1 checked in at 2013-10-17 15:22:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/yast2-packager (Old)
and /work/SRC/openSUSE:13.1/.yast2-packager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-packager"
Changes:
--------
--- /work/SRC/openSUSE:13.1/yast2-packager/yast2-packager.changes 2013-09-27 19:41:53.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.yast2-packager.new/yast2-packager.changes 2013-10-19 16:51:03.000000000 +0200
@@ -1,0 +2,8 @@
+Tue Oct 15 07:11:25 UTC 2013 - lslezak@suse.cz
+
+- removed non-working *-webpin subpackage (the external service for
+ package search does not work, without that service it is useless)
+ (bnc#845622)
+- 3.0.6
+
+-------------------------------------------------------------------
Old:
----
yast2-packager-3.0.5.tar.bz2
New:
----
yast2-packager-3.0.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-packager.spec ++++++
--- /var/tmp/diff_new_pack.bhlFWf/_old 2013-10-19 16:51:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bhlFWf/_new 2013-10-19 16:51:04.000000000 +0200
@@ -17,8 +17,8 @@
Name: yast2-packager
-Version: 3.0.5
-Release: 0
+Version: 3.0.6
+Release: 5
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: yast2-packager-%{version}.tar.bz2
@@ -85,19 +85,15 @@
Obsoletes: yast2-trans-inst-packages
Obsoletes: yast2-trans-package-manager
+# force *-webpin subpackage removal at upgrade
+Obsoletes: yast2-packager-webpin < %version
+
Requires: yast2-ruby-bindings >= 1.0.0
Summary: YaST2 - Package Library
License: GPL-2.0+
Group: System/YaST
-%package webpin
-
-Requires: yast2-ruby-bindings >= 1.0.0
-
-Summary: YaST2 - Webpin package search client
-Group: System/YaST
-
%package devel-doc
Requires: yast2-packager = %version
Summary: YaST2 - Development Documentation
@@ -106,10 +102,6 @@
%description
This package contains the libraries and modules for software management.
-%description webpin
-This package contains a client for searching packages in online repositories
-(webpin) and installing them via OneClickInstall
-
%description devel-doc
This package contains development documentation for using the API
provided by yast2-packager package.
@@ -148,9 +140,7 @@
/usr/share/YaST2/include/checkmedia/*
/usr/share/YaST2/include/packager/*
/usr/share/YaST2/clients/*.rb
-%exclude /usr/share/YaST2/clients/webpin_package_search.rb
/usr/share/YaST2/modules/*
-%exclude /usr/share/YaST2/modules/WebpinPackageSearch.rb
%{_prefix}/share/applications/YaST2/*.desktop
/usr/share/YaST2/scrconf/*
%{_prefix}/lib/YaST2/servers_non_y2/ag_*
@@ -161,9 +151,4 @@
%files devel-doc
%doc %{_prefix}/share/doc/packages/yast2-packager/autodocs
-%files webpin
-%defattr(-,root,root)
-/usr/share/YaST2/clients/webpin_package_search.rb
-/usr/share/YaST2/modules/WebpinPackageSearch.rb
-
%changelog
++++++ yast2-packager-3.0.5.tar.bz2 -> yast2-packager-3.0.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/Makefile.in new/yast2-packager-3.0.6/Makefile.in
--- old/yast2-packager-3.0.5/Makefile.in 2013-09-11 17:44:56.000000000 +0200
+++ new/yast2-packager-3.0.6/Makefile.in 2013-10-15 09:19:02.000000000 +0200
@@ -684,7 +684,7 @@
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod u+w $(distdir)
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/VERSION new/yast2-packager-3.0.6/VERSION
--- old/yast2-packager-3.0.5/VERSION 2013-09-03 17:06:48.000000000 +0200
+++ new/yast2-packager-3.0.6/VERSION 2013-10-15 09:11:21.000000000 +0200
@@ -1 +1 @@
-3.0.5
+3.0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/configure new/yast2-packager-3.0.6/configure
--- old/yast2-packager-3.0.5/configure 2013-09-11 17:44:54.000000000 +0200
+++ new/yast2-packager-3.0.6/configure 2013-10-15 09:19:01.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for yast2-packager 3.0.5.
+# Generated by GNU Autoconf 2.69 for yast2-packager 3.0.6.
#
# Report bugs to http://bugs.opensuse.org/.
#
@@ -579,8 +579,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-packager'
PACKAGE_TARNAME='yast2-packager'
-PACKAGE_VERSION='3.0.5'
-PACKAGE_STRING='yast2-packager 3.0.5'
+PACKAGE_VERSION='3.0.6'
+PACKAGE_STRING='yast2-packager 3.0.6'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
PACKAGE_URL=''
@@ -1249,7 +1249,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures yast2-packager 3.0.5 to adapt to many kinds of systems.
+\`configure' configures yast2-packager 3.0.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1320,7 +1320,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-packager 3.0.5:";;
+ short | recursive ) echo "Configuration of yast2-packager 3.0.6:";;
esac
cat <<\_ACEOF
@@ -1400,7 +1400,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-packager configure 3.0.5
+yast2-packager configure 3.0.6
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1417,7 +1417,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by yast2-packager $as_me 3.0.5, which was
+It was created by yast2-packager $as_me 3.0.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2356,7 +2356,7 @@
# Define the identity of the package.
PACKAGE='yast2-packager'
- VERSION='3.0.5'
+ VERSION='3.0.6'
cat >>confdefs.h <<_ACEOF
@@ -2479,7 +2479,7 @@
-VERSION="3.0.5"
+VERSION="3.0.6"
RPMNAME="yast2-packager"
MAINTAINER="Ladislav Slezak "
@@ -3432,7 +3432,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-packager $as_me 3.0.5, which was
+This file was extended by yast2-packager $as_me 3.0.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3485,7 +3485,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-yast2-packager config.status 3.0.5
+yast2-packager config.status 3.0.6
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/configure.ac new/yast2-packager-3.0.6/configure.ac
--- old/yast2-packager-3.0.5/configure.ac 2013-09-11 17:44:50.000000000 +0200
+++ new/yast2-packager-3.0.6/configure.ac 2013-10-15 09:18:59.000000000 +0200
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 3.0.5 - DO NOT EDIT! --
dnl (edit configure.ac.in or configure.in.in instead)
-AC_INIT(yast2-packager, 3.0.5, http://bugs.opensuse.org/, yast2-packager)
+AC_INIT(yast2-packager, 3.0.6, http://bugs.opensuse.org/, yast2-packager)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,7 +18,7 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="3.0.5"
+VERSION="3.0.6"
RPMNAME="yast2-packager"
MAINTAINER="Ladislav Slezak "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/src/Makefile.am new/yast2-packager-3.0.6/src/Makefile.am
--- old/yast2-packager-3.0.5/src/Makefile.am 2013-08-02 20:40:25.000000000 +0200
+++ new/yast2-packager-3.0.6/src/Makefile.am 2013-10-15 09:06:04.000000000 +0200
@@ -14,7 +14,6 @@
modules/Packages.rb \
modules/SourceDialogs.rb \
modules/SourceManagerSLP.rb \
- modules/WebpinPackageSearch.rb \
modules/KeyManager.rb \
modules/CheckMedia.rb \
modules/SlideShowCallbacks.rb
@@ -43,7 +42,6 @@
clients/inst_desktop.rb \
clients/inst_mediacopy.rb \
clients/wrapper_slideshow_callbacks.rb \
- clients/webpin_package_search.rb \
clients/checkmedia.rb
yncludedir = @yncludedir@/packager
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/src/Makefile.in new/yast2-packager-3.0.6/src/Makefile.in
--- old/yast2-packager-3.0.5/src/Makefile.in 2013-09-11 17:44:56.000000000 +0200
+++ new/yast2-packager-3.0.6/src/Makefile.in 2013-10-15 09:19:02.000000000 +0200
@@ -240,7 +240,6 @@
modules/Packages.rb \
modules/SourceDialogs.rb \
modules/SourceManagerSLP.rb \
- modules/WebpinPackageSearch.rb \
modules/KeyManager.rb \
modules/CheckMedia.rb \
modules/SlideShowCallbacks.rb
@@ -269,7 +268,6 @@
clients/inst_desktop.rb \
clients/inst_mediacopy.rb \
clients/wrapper_slideshow_callbacks.rb \
- clients/webpin_package_search.rb \
clients/checkmedia.rb
ynclude_DATA = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/src/clients/webpin_package_search.rb new/yast2-packager-3.0.6/src/clients/webpin_package_search.rb
--- old/yast2-packager-3.0.5/src/clients/webpin_package_search.rb 2013-07-30 13:20:09.000000000 +0200
+++ new/yast2-packager-3.0.6/src/clients/webpin_package_search.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,498 +0,0 @@
-# encoding: utf-8
-
-# File: webpin_package_search.ycp
-# Package: YaST packager - Client using Webpin XML API
-# Authors: Katarina Machalkova
-# Lukas Ocilka
-#
-# $Id$
-#
-# This client provides UI for searching for packages
-# via Webpin XML.
-# See http://en.opensuse.org/Package_Search/Design for the API.
-module Yast
- class WebpinPackageSearchClient < Client
- def main
- Yast.import "UI"
- textdomain "packager"
-
- Yast.import "Label"
- Yast.import "Popup"
- Yast.import "Progress"
- Yast.import "Sequencer"
- Yast.import "WebpinPackageSearch"
- Yast.import "Wizard"
- Yast.import "Directory"
- Yast.import "Map"
- Yast.import "Report"
-
- @search_results = {}
- @all_selected = {}
-
-
- Wizard.CreateDialog
-
- @client_ret = MainSequence()
-
- Wizard.CloseDialog
-
- @client_ret
- end
-
- def SomethingSelected
- @all_selected != {}
- end
-
- def AbortDialog
- if SomethingSelected()
- return Popup.YesNo(_("All changes will be lost. Really exit?"))
- else
- return true
- end
- end
-
- def Abort
- ret = UI.PollInput
-
- if ret == :abort
- return AbortDialog()
- else
- return false
- end
- end
-
- def SearchExpression
- ret = Convert.to_string(UI.QueryWidget(Id("search_text"), :Value))
-
- if ret == ""
- Popup.Message(_("Search expression must not be empty!"))
- UI.SetFocus(Id("search_text"))
- end
- ret
- end
-
- def SearchParameters
- p = Convert.to_list(UI.QueryWidget(Id("search_in"), :SelectedItems))
-
- ret = Builtins.listmap(["name", "description", "contents"]) do |key|
- { key => Builtins.contains(p, key) }
- end
- #y2internal("%1", ret);
- deep_copy(ret)
- end
-
- def CurrentTable
- ctable = UI.WidgetExists(Id("results")) ? "results" : "all"
-
- ctable
- end
-
- def CreatePackageDescription
- ctable = CurrentTable()
- checksum = Convert.to_string(UI.QueryWidget(Id(ctable), :CurrentItem))
-
- citem = ctable == "results" ?
- Ops.get(@search_results, checksum, {}) :
- Ops.get(@all_selected, checksum, {})
- ret = ""
-
- if citem != {}
- descr = Builtins.sformat(
- _("<b>Repository URL:</b> %1<br>"),
- Ops.get_string(citem, "repoURL", "")
- )
- version = Builtins.sformat(
- _("<b>Version:</b> %1<br>"),
- Ops.get_string(citem, "version", "")
- )
-
- archs = Builtins.sformat(
- _("<b>Architecture:</b> %1<br>"),
- Builtins.mergestring(Ops.get_list(citem, "archs", []), ",")
- )
- ret = Ops.add(
- Ops.add(Ops.add(Ops.add("<p>", descr), version), archs),
- "</p>"
- )
- end
-
- UI.ChangeWidget(Id("description"), :Value, ret)
-
- nil
- end
-
- def CreatePackageListItems(results)
- results = deep_copy(results)
- pkg_items = []
-
- Builtins.foreach(results) do |iD, pkg_line|
- # Webpin seems to return "ppc" arch even for some i386 packages (e.g., "joe")
- # doesn't match the architecture
- # if (! WebpinPackageSearch::MatchesCurrentArchitecture (it["archs"]:["noarch"])) {
- # y2milestone ("Doesn't match the current arch: %1", it);
- # return;
- # }
- pkg_items = Builtins.add(
- pkg_items,
- Item(
- Id(iD),
- Ops.add(
- Ops.add(Ops.get_string(pkg_line, "name", ""), " - "),
- Ops.get_string(pkg_line, "summary", "")
- )
- )
- )
- end
- deep_copy(pkg_items)
- end
-
- def PopulatePackageList(results)
- results = deep_copy(results)
- items = CreatePackageListItems(results)
- ctable = CurrentTable()
-
- _IDs = Convert.convert(
- Builtins.toset(Map.Keys(results)),
- :from => "list",
- :to => "list <string>"
- )
- wantedIDs = Convert.convert(
- Builtins.toset(Map.Keys(@all_selected)),
- :from => "list",
- :to => "list <string>"
- )
- Builtins.y2milestone(
- "Package IDs: %1, previously selected: %2",
- _IDs,
- wantedIDs
- )
-
- if results != nil
- UI.ChangeWidget(Id(ctable), :Items, items)
-
- if ctable == "all"
- UI.ChangeWidget(Id(ctable), :SelectedItems, wantedIDs)
- else
- UI.ChangeWidget(
- Id(ctable),
- :SelectedItems,
- Builtins::Multiset.intersection(_IDs, wantedIDs)
- )
- end
-
- UI.SetFocus(Id(ctable))
- else
- UI.SetFocus(Id("search_text"))
- end
-
- nil
- end
-
- def SelectedPackages
- result = []
-
- Builtins.foreach(@all_selected) { |s, m| result = Builtins.add(result, m) }
-
- Builtins.y2milestone("Passing these data to WebPin %1", result)
- deep_copy(result)
- end
-
- def AddItemIfNotExists(checksum, data)
- data = deep_copy(data)
- if !Builtins.haskey(@all_selected, checksum)
- Ops.set(@all_selected, checksum, data)
- end
-
- nil
- end
-
- def RemoveItemIfExists(checksum)
- if Builtins.haskey(@all_selected, checksum)
- @all_selected = Builtins.remove(@all_selected, checksum)
- end
-
- nil
- end
-
- def UpdateSelectedPkgs
- ctable = CurrentTable()
- selected_items = Builtins.toset(
- Convert.convert(
- UI.QueryWidget(Id(ctable), :SelectedItems),
- :from => "any",
- :to => "list <string>"
- )
- )
- other_items = []
-
- tt = Convert.convert(
- UI.QueryWidget(Id(ctable), :Items),
- :from => "any",
- :to => "list <term>"
- )
- Builtins.foreach(tt) do |t|
- tmp = Ops.get_string(
- Builtins.argsof(Ops.get_term(Builtins.argsof(t), 0, term(:none))),
- 0,
- ""
- )
- if !Builtins.contains(selected_items, tmp)
- other_items = Builtins.add(other_items, tmp)
- end
- end
-
- other_items = Builtins.toset(other_items)
-
- Builtins.foreach(selected_items) do |it|
- AddItemIfNotExists(it, Ops.get(@search_results, it, {}))
- end if ctable == "results"
- Builtins.foreach(other_items) { |it| RemoveItemIfExists(it) }
-
-
- Builtins.y2milestone("Selecting these packages: %1", @all_selected)
-
- nil
- end
-
- def ReadDialog
- steps = [
- _("Check Network Configuration"),
- _("Initialize Software Manager")
- ]
-
- actions = [
- _("Checking Network Configuration ..."),
- _("Initializing Software Manager ... ")
- ]
-
- Progress.New(
- _("Reading Package Search Setup..."),
- " ",
- Builtins.size(steps),
- steps,
- actions,
- _("<p>Packager is initializing...</p>")
- )
-
- Progress.NextStage
- return :abort if Abort()
- Builtins.sleep(100)
-
- Progress.NextStage
- return :abort if Abort()
- Builtins.sleep(100)
-
- Progress.Finish
- :next
- end
-
- def MainDialog
- current_search_box = MultiSelectionBox(
- Id("results"),
- Opt(:notify, :hstretch),
- "",
- []
- )
- all_pkgs_box = MultiSelectionBox(
- Id("all"),
- Opt(:notify, :hstretch),
- "",
- []
- )
-
- Wizard.SetContents(
- # TRANSLATORS: dialog caption
- _("Package Search"),
- VBox(
- HBox(
- VBox(
- HBox(
- Bottom(
- InputField(
- Id("search_text"),
- Opt(:hstretch),
- _("Search &Expression")
- )
- ),
- # TRANSLATORS: push button
- HSpacing(1),
- Bottom(PushButton(Id("search"), Opt(:default), _("&Search")))
- ),
- VStretch()
- ), #,
- MultiSelectionBox(
- Id("search_in"),
- _("Search &in"),
- [
- Item(Id("name"), _("Name"), true),
- Item(Id("description"), _("Description"), true),
- Item(Id("contents"), _("Contents"))
- ]
- )
- ),
- #`RadioButtonGroup(
- # `id(`rb),
- # `VBox(
- # `Left(`Label( _("Search Repositories"))),
- # `Frame( "",
- # `VBox(
- # `Left(`RadioButton(`id("current_product"),_("Current product") ) ),
- # `Left(`RadioButton(`id("factory"),_("Factory") ) ),
- # `VStretch()
- # )
- # )
- # )
- #)
- #)
- #),
- VWeight(
- 2,
- DumbTab(
- Id("tab_bar"),
- [
- Item(Id("search_tab"), _("&Found Packages"), true),
- Item(Id("all_tab"), _("&All Selected Packages"))
- ],
- ReplacePoint(Id(:rp), current_search_box)
- )
- ),
- #`HBox(
- Left(Label(_("Package Description"))),
- #`HStretch(),
- #`CheckBox(_("Keep Package Repositories Subscribed"), true)
- #),
- VWeight(1, RichText(Id("description"), ""))
- ),
- _(
- "<p><big><b>Package Search</b></big><br>\nUse the functionality of <i>Webpin package search</i> to search in all known openSUSE build-service and openSUSE community repositories.</p>\n"
- ) +
- _(
- "<p><big><b>Security</b></big><br> The software found is often not part of the\n" +
- "distribution itself. You need to decide whether to trust the source of a\n" +
- "package. We do not take any responsibility for installing such software.</p>\n"
- ),
- #We don't need back button
- false,
- true
- )
-
- Wizard.SetDesktopTitleAndIcon("webpin")
- Wizard.SetAbortButton(:cancel, Label.CancelButton)
-
- UI.SetFocus(Id("search_text"))
-
-
- dialog_ret = nil
- while true
- dialog_ret = UI.UserInput
-
- UpdateSelectedPkgs() if dialog_ret != "results" && dialog_ret != "all"
-
- if dialog_ret == :next
- temporary_xml = Ops.add(
- Directory.tmpdir,
- "/one_click_install_temporary_file.xml"
- )
-
- selected_packages = SelectedPackages()
-
- if selected_packages == nil || Builtins.size(selected_packages) == 0
- Report.Message(_("Select packages to install."))
- UI.SetFocus(Id("results"))
- next
- end
-
- WebpinPackageSearch.PrepareOneClickInstallDescription(
- selected_packages,
- temporary_xml
- )
-
- oci = WFM.CallFunction("OneClickInstallUI", [temporary_xml])
- Builtins.y2milestone("OneClickInstallUI returned: %1", oci)
- break
- elsif dialog_ret == "search"
- UI.ChangeWidget(Id("tab_bar"), :CurrentItem, "search_tab")
- UI.ReplaceWidget(Id(:rp), current_search_box)
- search_expr = SearchExpression()
-
- if search_expr != ""
- search_params = SearchParameters()
- Popup.ShowFeedback("", _("Searching for packages..."))
- tmp_results = WebpinPackageSearch.SearchForPackages(
- search_expr,
- nil,
- search_params
- )
- @search_results = Builtins.listmap(tmp_results) do |m|
- { Ops.get_string(m, "checksum", "") => m }
- end
- Popup.ClearFeedback
- PopulatePackageList(@search_results)
-
- if @search_results == nil
- # error message
- UI.ChangeWidget(
- Id("description"),
- :Value,
- _("<p><b>Search failed</b></p>")
- )
- elsif @search_results == {}
- UI.ChangeWidget(
- Id("description"),
- :Value,
- _(
- "<p><b>No packages matching entered criteria were found.</b></p>"
- )
- )
- else
- CreatePackageDescription()
- end
- end
- next
- elsif dialog_ret == "search_tab"
- UI.ReplaceWidget(Id(:rp), current_search_box)
- PopulatePackageList(@search_results)
- CreatePackageDescription()
- elsif dialog_ret == "all_tab"
- UI.ReplaceWidget(Id(:rp), all_pkgs_box)
- PopulatePackageList(@all_selected)
- CreatePackageDescription()
- elsif dialog_ret == "results" || dialog_ret == "all"
- CreatePackageDescription()
- elsif dialog_ret == :abort || dialog_ret == :cancel
- if AbortDialog()
- dialog_ret = :abort
- Builtins.y2milestone("Aborting...")
- break
- end
- else
- Builtins.y2error("Unknown ret: %1", dialog_ret)
- end
- end
- Convert.to_symbol(dialog_ret)
- end
-
- def MainSequence
- aliases =
- # "write" : ``(WriteDialog())
- { "read" => lambda { ReadDialog() }, "main" => lambda { MainDialog() } }
-
- sequence =
- # "write" : $[
- # `abort : `abort,
- # `next : `next
- # ],
- {
- "ws_start" => "read",
- "read" => { :next => "main", :abort => :abort },
- "main" => { :abort => :abort, :next => :next }
- }
-
- seq_ret = Sequencer.Run(aliases, sequence)
-
- Convert.to_symbol(seq_ret)
- end
- end
-end
-
-Yast::WebpinPackageSearchClient.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-3.0.5/src/modules/WebpinPackageSearch.rb new/yast2-packager-3.0.6/src/modules/WebpinPackageSearch.rb
--- old/yast2-packager-3.0.5/src/modules/WebpinPackageSearch.rb 2013-08-22 09:12:13.000000000 +0200
+++ new/yast2-packager-3.0.6/src/modules/WebpinPackageSearch.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,502 +0,0 @@
-# encoding: utf-8
-
-# File:
-# WebpinPackageSearch.ycp
-#
-# Module:
-# WebpinPackageSearch
-#
-# Summary:
-# YaST API to api.opensuse-community.org
-#
-# Authors:
-# Lukas Ocilka
-# Katarina Machalkova
-require "yast"
-
-module Yast
- class WebpinPackageSearchClass < Module
- def main
-
- textdomain "packager"
-
- Yast.import "HTTP"
- Yast.import "OSRelease"
- Yast.import "Directory"
- Yast.import "FileUtils"
- Yast.import "URL"
- Yast.import "Arch"
- Yast.import "Report"
-
- @temporary_file = Ops.add(Directory.tmpdir, "/package_search_webpin.xml")
-
- # Base search URL, default is "http://api.opensuse-community.org/searchservice/"
- @base_url = "http://api.opensuse-community.org/searchservice/"
-
- # List of architecture dependencies. Every row contains one list
- # of dependencies sortred from left (the newest) to right (the oldest).
- # Architectures are backward-compatible.
- @deps = [
- # i386 and x86
- ["x86_64", "i686", "i586", "i486", "i386", "noarch", "src"],
- # PPC
- ["ppc64", "ppc", "noarch", "src"],
- # s390
- ["s390_64", "s390_32", "noarch", "src"],
- # IA-64
- ["ia64", "noarch", "src"],
- # Alpha
- [
- "alphaev67",
- "alphaev6",
- "alphapca56",
- "alphaev56",
- "alphaev5",
- "alpha",
- "noarch",
- "src"
- ],
- # SPARC
- ["sparc64", "sparcv9", "sparcv8", "sparc", "noarch", "src"],
- # MIPS
- ["mips64", "mips", "noarch", "src"]
- ]
-
- @already_guessed = nil
- end
-
- # Sets base search URL
- # WARNING: Use this only if you know what you are doing!
- #
- # @param string new base_url
- def SetBaseSearchURL(new_base_url)
- if new_base_url == "" || new_base_url == nil
- Builtins.y2error("Wrong base URL: '%1'", new_base_url)
- return
- end
-
- @base_url = new_base_url
- Builtins.y2milestone("New base URL has been set: %1", @base_url)
-
- nil
- end
-
- # Returns base search URL
- #
- # @string current base_url
- def GetBaseSearchURL
- @base_url
- end
-
- # Returns whether the current architecture matches the list of architectures
- # got as a parameter. The current architecture is backward compatible, so
- # also dependencies are taken into account.
- #
- # @param list <string> list of architectures to check
- # @return [Boolean] whether they match the current architecture
- #
- # @example
- # // current architecture is "i386"
- # MatchesCurrentArchitecture (["noarch", "ppc", "i386"]) -> true
- # MatchesCurrentArchitecture (["noarch"]) -> true
- # MatchesCurrentArchitecture (["x86_64"]) -> false
- # MatchesCurrentArchitecture (["ppc"]) -> false
- def MatchesCurrentArchitecture(archs_to_check)
- archs_to_check = deep_copy(archs_to_check)
- current_arch = Arch.architecture
-
- matches = false
-
- # one or more archs supported by source
- Builtins.foreach(archs_to_check) do |one_arch_to_check|
- # check all arch dependencies
- Builtins.foreach(@deps) do |one_archlist|
- # both current and checked architectures are in the same list
- if Builtins.contains(one_archlist, current_arch) &&
- Builtins.contains(one_archlist, one_arch_to_check)
- cur_arch_row = nil
- match_arch_row = nil
-
- str_offset = -1
-
- # find current_architecture in deps
- Builtins.foreach(one_archlist) do |one_arch|
- str_offset = Ops.add(str_offset, 1)
- if one_arch == current_arch
- cur_arch_row = str_offset
- raise Break
- end
- end
-
- str_offset = -1
-
- # find architecture_to_check in deps
- Builtins.foreach(one_archlist) do |one_arch|
- str_offset = Ops.add(str_offset, 1)
- if one_arch == one_arch_to_check
- match_arch_row = str_offset
- raise Break
- end
- end
-
- # compare
- if Ops.greater_or_equal(match_arch_row, cur_arch_row)
- matches = true
- raise Break
- end
- end
- end
- raise Break if matches
- end
-
- matches
- end
-
- # Guesses the current distribution installed
- #
- # @return [String] distribution (Webpin format)
- #
- # @examle
- # // Installed openSUSE 11.0
- # GuessCurrentDistribution() -> "openSUSE_110"
- def GuessCurrentDistribution
- return @already_guessed if @already_guessed != nil
-
- rel_name = OSRelease.ReleaseName
- rel_version = OSRelease.ReleaseVersion
-
- if Builtins.regexpmatch(rel_version, ".")
- rel_version = Builtins.mergestring(
- Builtins.splitstring(rel_version, "."),
- ""
- )
- end
-
- @already_guessed = Builtins.sformat("%1_%2", rel_name, rel_version)
- @already_guessed
- end
-
- # Changes the Webpin distro format to OneClickInstall format.
- #
- # @param [String] distro
- # @return [String] modified distro
- #
- # @example
- # ModifyDistro ("openSUSE_110") -> "openSUSE 11.0"
- def ModifyDistro(distro)
- if Builtins.regexpmatch(distro, "^.*_[0123456789]+[0123456789]$")
- distro = Builtins.regexpsub(
- distro,
- "^(.*)_([0123456789]+)([0123456789])$",
- "\\1 \\2.\\3"
- )
- elsif Builtins.regexpmatch(distro, "^.*_[0123456789]+")
- distro = Builtins.regexpsub(distro, "^(.*)_([0123456789]+)$", "\\1 \\2")
- else
- Builtins.y2warning("'%1' doesn't match any known regexp", distro)
- end
-
- distro
- end
-
- # Writes XML configuration file for OnleClickInstall client.
- #
- # @param [Array<Hash>] packages_to_install (in the same format as got from SearchForPackages function)
- # @param [String] save_to_file
- # @return [Boolean] if successful
- #
- # @see SearchForPackages() for the format of <map> package_to_install
- def PrepareOneClickInstallDescription(packages_to_install, save_to_file)
- packages_to_install = deep_copy(packages_to_install)
- if FileUtils.Exists(save_to_file)
- Builtins.y2warning("File %1 already exists, removing", save_to_file)
- SCR.Execute(path(".target.remove"), save_to_file)
- end
-
- distro = ""
- repoURL = ""
-
- write_xml = {
- "metapackage" => {
- "xmlns" => "http://opensuse.org/Standards/One_Click_Install"
- }
- }
-
- repositories = {}
- packages = {}
-
- Builtins.foreach(packages_to_install) do |one_package|
- distro = Ops.get_string(one_package, "distro") do
- GuessCurrentDistribution()
- end
- repoURL = Ops.get_string(one_package, "repoURL", "")
- # all repositories
- Ops.set(
- repositories,
- distro,
- Builtins.add(Ops.get_list(repositories, distro, []), repoURL)
- )
- # all packages
- Ops.set(
- packages,
- distro,
- Builtins.add(
- Ops.get_list(packages, distro, []),
- {
- "item" => [
- {
- "name" => [
- { "content" => Ops.get_string(one_package, "name", "") }
- ],
- "summary" => [
- { "content" => Ops.get_string(one_package, "summary", "") }
- ],
- "description" => [
- {
- "content" => Ops.get_locale(
- # TRANSLATORS: package description item
- one_package,
- "description",
- Ops.get_locale(
- one_package,
- "summary",
- _("No further information available.")
- )
- )
- }
- ]
- }
- ]
- }
- )
- )
- end
-
- Builtins.foreach(
- Convert.convert(
- repositories,
- :from => "map",
- :to => "map "
- )
- ) do |distro2, distro_repos|
- group = {
- "distversion" => ModifyDistro(distro2),
- "remainSubscribed" => { "content" => "true" },
- "repositories" => Builtins.toset(Builtins.maplist(distro_repos) do |one_repo|
- {
- "repository" => [
- {
- "name" => [{ "content" => one_repo }],
- "url" => [{ "content" => one_repo }],
- # TRANSLATORS: repository summary
- "summary" => [
- { "content" => _("Unknown repository") }
- ],
- # TRANSLATORS: repositry description
- "description" => [
- {
- "content" => _(
- "No further information available, use at your own risk."
- )
- }
- ]
- }
- ]
- }
- end),
- "software" => Builtins.toset(
- Ops.get_list(packages, distro2, [])
- )
- }
- Ops.set(write_xml, ["metapackage", "group"], group)
- end
-
- Builtins.y2debug("Writing: %1", write_xml)
-
- success = SCR.Write(
- path(".anyxml"),
- {
- "xml" => write_xml,
- "file" => save_to_file,
- "args" => {
- "RootName" => "metapackage",
- "KeepRoot" => true,
- "XMLDecl" => "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
- }
- }
- )
-
- if success != true
- Builtins.y2error("Unable to write XML to %1", save_to_file)
- end
-
- success
- end
-
- # Searches for packages using Webpin XML API.
- #
- # @param [String] search_for text
- # @param [String] distribution, e.g., openSUSE_10.3, it is guessed from the system if set to nil
- # @param [Hash{String => Boolean}] search_in which defines in which sources it searches,
- # possible keys: name, description, contents
- #
- # @example
- # SearchForPackages (
- # "desktop",
- # nil,
- # $[
- # "name" : true,
- # "description" : true,
- # "contents" : false,
- # ]
- # )
- # ->
- # [
- # ...
- # $[
- # "archs":[
- # "ppc"
- # ],
- # "checksum":"e0cbdbf03ce47dfd5c5f885b86706ddfa023d8dc",
- # "distro":"openSUSE_110",
- # "name":"xfce4-desktop",
- # "priority":"5",
- # "repoURL":"http://download.opensuse.org/distribution/11.0/repo/oss/suse",
- # "summary":"Desktop manager for the Xfce Desktop Environment",
- # "version":"4.4.2"
- # ],
- # ...
- # ]
- def SearchForPackages(search_for, distribution, search_in)
- search_in = deep_copy(search_in)
- Builtins.y2milestone("Searching for %1 in %2", search_for, search_in)
-
- if search_for == nil || search_for == ""
- Builtins.y2error("empty search string")
- return []
- end
-
- # search URL is the same for both
- name_or_descr = Ops.get(search_in, "name", false) ||
- Ops.get(search_in, "description", false)
-
- search_path = nil
-
- if Ops.get(search_in, "contents", false) && name_or_descr
- search_path = "Search/Simple/"
- elsif name_or_descr
- search_path = "Search/ByName/"
- elsif Ops.get(search_in, "contents", false)
- search_path = "Search/ByContents/"
- else
- Builtins.y2warning("empty search result")
- return []
- end
-
- # if distro string is nil, try to guess the current one
- if distribution == nil
- distribution = GuessCurrentDistribution()
- Builtins.y2milestone(
- "Distribution not set, guessing '%1'",
- distribution
- )
- end
-
- url = Ops.add(
- Ops.add(
- Ops.add(Ops.add(GetBaseSearchURL(), search_path), distribution),
- "/"
- ),
- URL.EscapeString(search_for, URL.transform_map_passwd)
- )
-
- Builtins.y2milestone("HTTP::Get (%1, %2)", url, @temporary_file)
- response = HTTP.Get(url, @temporary_file)
- Builtins.y2milestone("Server response: %1", response)
-
- ret_list = []
-
- # something's screwed up on server side - this usually means that tmp file
- # is full of error messages - we should not let anyxml agent parse those
- if Ops.get_integer(response, "code", 0) != 200
- Builtins.y2error("Cannot retrieve search results from the server")
- # %1 is HTTP error code like 404 or 503
- Report.Error(
- Builtins.sformat(
- _("Search failed.\nRemote server returned error code %1"),
- Ops.get_integer(response, "code", 0)
- )
- )
- return nil
- end
-
- if !FileUtils.Exists(@temporary_file)
- Builtins.y2error("Cannot read file: %1", @temporary_file)
- return nil
- end
-
- if Ops.less_or_equal(FileUtils.GetSize(@temporary_file), 0)
- Builtins.y2milestone("Empty file: %1", @temporary_file)
- return nil
- end
-
- search_result = Convert.to_map(SCR.Read(path(".anyxml"), @temporary_file))
-
- Builtins.y2debug("Search result: %1", search_result)
-
- counter = -1
- one_entry = {}
-
- Builtins.foreach(
- Ops.get_list(search_result, ["ns2:packages", 0, "package"], [])
- ) do |one_package|
- one_entry = {}
- Builtins.foreach(one_package) do |key, value|
- if Builtins.haskey(Ops.get_map(value, 0, {}), "content")
- Ops.set(
- one_entry,
- key,
- Builtins.tostring(Ops.get(value, [0, "content"]))
- )
- elsif key == "archs"
- Builtins.foreach(
- Convert.convert(value, :from => "list", :to => "list <map>")
- ) { |one_arch| Builtins.foreach(Ops.get_list(one_arch, "arch", [])) do |xone_arch|
- Ops.set(
- one_entry,
- "archs",
- Builtins.add(
- Ops.get_list(one_entry, "archs", []),
- Ops.get_string(xone_arch, "content", "")
- )
- )
- end }
- else
- Builtins.y2error("Unknown key: %1", key)
- end
- end
- counter = Ops.add(counter, 1)
- Ops.set(ret_list, counter, one_entry)
- end
-
- nr_packages_found = Builtins.size(ret_list)
-
- if nr_packages_found == nil || nr_packages_found == 0
- Builtins.y2warning("Nothing found")
- else
- Builtins.y2milestone("%1 packages found", nr_packages_found)
- end
-
- deep_copy(ret_list)
- end
-
- publish :function => :SetBaseSearchURL, :type => "void (string)"
- publish :function => :GetBaseSearchURL, :type => "string ()"
- publish :function => :MatchesCurrentArchitecture, :type => "boolean (list <string>)"
- publish :function => :PrepareOneClickInstallDescription, :type => "boolean (list <map>, string)"
- publish :function => :SearchForPackages, :type => "list <map> (string, string, map )"
- end
-
- WebpinPackageSearch = WebpinPackageSearchClass.new
- WebpinPackageSearch.main
-end
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org