Hello community,
here is the log from the commit of package yast2-slp for openSUSE:Factory checked in at 2013-08-01 11:09:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-slp (Old)
and /work/SRC/openSUSE:Factory/.yast2-slp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-slp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-slp/yast2-slp.changes 2013-02-15 18:56:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-slp.new/yast2-slp.changes 2013-08-01 11:10:01.000000000 +0200
@@ -1,0 +2,7 @@
+Wed Jul 31 08:39:31 UTC 2013 - yast-devel@opensuse.org
+
+- converted from YCP to Ruby by YCP Killer
+ (https://github.com/yast/ycp-killer)
+- version 3.0.0
+
+-------------------------------------------------------------------
Old:
----
yast2-slp-2.23.0.tar.bz2
New:
----
yast2-slp-3.0.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-slp.spec ++++++
--- /var/tmp/diff_new_pack.1iNUAE/_old 2013-08-01 11:10:02.000000000 +0200
+++ /var/tmp/diff_new_pack.1iNUAE/_new 2013-08-01 11:10:02.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-slp
-Version: 2.23.0
+Version: 3.0.0
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -38,6 +38,8 @@
# Wizard::SetDesktopTitleAndIcon
Requires: yast2 >= 2.21.22
+Requires: yast2-ruby-bindings >= 1.0.0
+
Summary: YaST2 - SLP Agent and Browser
License: GPL-2.0+
Group: System/YaST
@@ -79,9 +81,8 @@
%{_libdir}/YaST2/plugin/libpy2ag_slp.so.*
%{_libdir}/YaST2/plugin/libpy2ag_slp.so
%{_libdir}/YaST2/plugin/libpy2ag_slp.la
-/usr/share/YaST2/clients/slp.ycp
-#%{_prefix}/share/applications/YaST2/slp.desktop
-/usr/share/YaST2/modules/SLP.y*
+/usr/share/YaST2/clients/slp.rb
+/usr/share/YaST2/modules/SLP.rb
%doc %{_prefix}/share/doc/packages/yast2-slp
%changelog
++++++ yast2-slp-2.23.0.tar.bz2 -> yast2-slp-3.0.0.tar.bz2 ++++++
++++ 1880 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/Makefile.am new/yast2-slp-3.0.0/Makefile.am
--- old/yast2-slp-2.23.0/Makefile.am 2013-02-14 16:36:43.000000000 +0100
+++ new/yast2-slp-3.0.0/Makefile.am 2013-07-31 10:47:28.000000000 +0200
@@ -158,19 +158,14 @@
TAGVERSION = $(Y2TOOL) tagversion
-check-up-to-date check-cvs-up-to-date check-svn-up-to-date:
- if [ -d $(srcdir)/CVS ]; then \
- cd $(srcdir) && ! cvs -q -n up 2>/dev/null | grep '^[MCAR] ';\
- else \
- cd $(srcdir) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision' ;\
+# check if there is no modified files and all commits were pushed
+check-up-to-date:
+ if [ `git status --short --branch | sed '/##[^[]*$/d;/^??/d' | wc -l` -gt 0 ]; then \
+ (echo "ERROR: Source is not commited and pushed. See `git status`"; false) \
fi
check-tagversion:
- @if [ -d $(srcdir)/CVS ]; then \
- cd $(srcdir) && cvs status -v VERSION | grep -w `$(TAGVERSION) -n` ;\
- else \
- cd $(srcdir) && svn cat `$(TAGVERSION) --echourl`/VERSION; \
- fi >/dev/null; \
+ cd $(srcdir) && $(TAGVERSION) --check >/dev/null; \
[ $$? = 0 ] || ( echo "ERROR: Please run 'tagversion' first"; false )
check-parse-old:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/Makefile.am.common new/yast2-slp-3.0.0/Makefile.am.common
--- old/yast2-slp-2.23.0/Makefile.am.common 2013-02-14 16:36:43.000000000 +0100
+++ new/yast2-slp-3.0.0/Makefile.am.common 2013-07-31 10:47:28.000000000 +0200
@@ -31,7 +31,7 @@
CHECK_SYNTAX = true
check-syntax: $(client_DATA) $(ycpchook) $(ybcfiles)
- @if test "$(client_DATA)"; then \
+ @if test "$(filter %.ycp,client_DATA)"; then \
if $(CHECK_SYNTAX); then \
TO_CHECK="$(filter %.ycp,$^)"; \
echo "Checking syntax of $${TO_CHECK}"; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/VERSION new/yast2-slp-3.0.0/VERSION
--- old/yast2-slp-2.23.0/VERSION 2013-02-14 16:36:34.000000000 +0100
+++ new/yast2-slp-3.0.0/VERSION 2013-07-30 13:41:05.000000000 +0200
@@ -1 +1 @@
-2.23.0
+3.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/autodocs-cc-base.ami new/yast2-slp-3.0.0/autodocs-cc-base.ami
--- old/yast2-slp-2.23.0/autodocs-cc-base.ami 2013-02-14 16:36:43.000000000 +0100
+++ new/yast2-slp-3.0.0/autodocs-cc-base.ami 2013-07-31 10:47:28.000000000 +0200
@@ -15,7 +15,7 @@
AUTODOCS_CC ?= $(srcdir)/../../src
AUTODOCS_DEPS ?= $(AUTODOCS_CC)/*.h
-html_data = index.html $(filter-out index.html, $(wildcard *.html *.png)) doxygen.css @RPMNAME@.tag
+html_data = index.html $(filter-out index.html, $(wildcard *.html *.png *.css *.js)) @RPMNAME@.tag
CLEANFILES = $(html_data) doxygen.log doxygen.conf installdox
doxygen.css @RPMNAME@.tag: index.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/autodocs-ycp.ami new/yast2-slp-3.0.0/autodocs-ycp.ami
--- old/yast2-slp-2.23.0/autodocs-ycp.ami 2013-02-14 16:36:43.000000000 +0100
+++ new/yast2-slp-3.0.0/autodocs-ycp.ami 2013-07-31 10:47:28.000000000 +0200
@@ -8,6 +8,8 @@
# Optional - the default is $(srcdir)/../../src/*.ycp
# AUTODOCS_PM: Files that the perl autodocs is built from
# Optional - the default is $(srcdir)/../../src/*.pm
+# AUTODOCS_RB: Files that the ruby autodocs is built from (using yard)
+# Optional - the default is $(srcdir)/../../src/modules/*.rb) $(srcdir)/../../src/include/*/*.rb
# AUTODOCS_SUBDIR: To install the result to $(docdir)/SUBDIR/autodocs
# Optional - the default is no subdir, $(docdir)/autodocs
# AUTODOCS_STRIP: Strip it from filenames. The remaining / are replaced by __
@@ -15,18 +17,31 @@
htmldir = $(docdir)/$(AUTODOCS_SUBDIR)/autodocs
-html_DATA = index.html $(filter-out index.html, $(wildcard *.html))
-CLEANFILES = $(html_DATA) pod2htm*.tmp
+# use nobase_ prefix to keep the directory structure
+nobase_html_DATA = index.html $(filter-out index.html, $(wildcard *.html)) $(wildcard js/*) $(wildcard css/*) $(wildcard Yast/*)
+CLEANFILES = $(nobase_html_DATA) pod2htm*.tmp
AUTODOCS_YCP ?= $(wildcard $(srcdir)/../../src/*.ycp)
AUTODOCS_PM ?= $(wildcard $(srcdir)/../../src/*.pm)
+AUTODOCS_RB ?= $(wildcard $(srcdir)/../../src/modules/*.rb $(srcdir)/../../src/include/*/*.rb)
AUTODOCS_STRIP ?= $(srcdir)/../../src
-index.html: $(AUTODOCS_YCP) $(AUTODOCS_PM)
+# yard specific options
+YARD ?= yard
+# use markdown format by default
+YARD_OPTIONS ?= -o . -m markdown
+
+# yard specific clean
+clean-local:
+ rm -rf js css Yast .yardoc
+
+
+index.html: $(AUTODOCS_YCP) $(AUTODOCS_PM) $(AUTODOCS_RB)
#including *.pm, for the index
- ${YCPDOC} -d. -s$(AUTODOCS_STRIP) $(AUTODOCS_YCP)
+ if [ -n "$(AUTODOCS_YCP)" ]; then ${YCPDOC} -d. -s$(AUTODOCS_STRIP) $(AUTODOCS_YCP); fi
for i in $(AUTODOCS_PM); do \
b=$${i##$(AUTODOCS_STRIP)}; b=$${b#/}; b=$${b//\//__}; b=$${b%.pm}; \
pod2html --title=$$b --infile=$$i --outfile=$$b.html; \
echo "<a href='$$b.html'>$${b/__/::}</a>" > $$b.mod.html; \
done
+ if [ -n "$(AUTODOCS_RB)" ]; then $(YARD) doc --title "@RPMNAME@ -- Development Documentation" $(YARD_OPTIONS) $(AUTODOCS_RB); fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/config.h.in new/yast2-slp-3.0.0/config.h.in
--- old/yast2-slp-2.23.0/config.h.in 2013-02-14 16:36:55.000000000 +0100
+++ new/yast2-slp-3.0.0/config.h.in 2013-07-31 10:47:39.000000000 +0200
@@ -1,4 +1,4 @@
-/* config.h.in. Generated from configure.in by autoheader. */
+/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/configure.ac new/yast2-slp-3.0.0/configure.ac
--- old/yast2-slp-2.23.0/configure.ac 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-slp-3.0.0/configure.ac 2013-07-31 10:47:28.000000000 +0200
@@ -0,0 +1,206 @@
+dnl configure.ac for yast2-slp
+dnl
+dnl -- This file is generated by y2autoconf 2.24.7 - DO NOT EDIT! --
+dnl (edit configure.ac.in or configure.in.in instead)
+
+AC_INIT(yast2-slp, 3.0.0, http://bugs.opensuse.org/, yast2-slp)
+dnl Check for presence of file 'RPMNAME'
+AC_CONFIG_SRCDIR([RPMNAME])
+
+dnl Checking host/target/build systems, for make, install etc.
+AC_CANONICAL_TARGET
+dnl Perform program name transformation
+AC_ARG_PROGRAM
+
+AC_PREFIX_DEFAULT(/usr)
+
+dnl long filenames; we use GNU Make extensions and that's ok
+AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
+
+dnl Important YaST2 variables
+VERSION="3.0.0"
+RPMNAME="yast2-slp"
+MAINTAINER="Jiri Suchomel "
+
+dnl pkgconfig honors lib64
+pkgconfigdir=\${libdir}/pkgconfig
+pkgconfigdatadir=\${datadir}/pkgconfig
+yast2dir=\${prefix}/share/YaST2
+
+ybindir=\${prefix}/lib/YaST2/bin
+# FIXME duplicates execcompdir
+ystartupdir=\${prefix}/lib/YaST2
+plugindir=\${libdir}/YaST2/plugin
+includedir=\${prefix}/include/YaST2
+potdir=\${docdir}/pot
+
+docdir=\${prefix}/share/doc/packages/$RPMNAME
+mandir=\${prefix}/share/man
+
+execcompdir=\${prefix}/lib/YaST2
+agentdir=${execcompdir}/servers_non_y2
+
+ydatadir=${yast2dir}/data
+imagedir=${yast2dir}/images
+themedir=${yast2dir}/theme
+localedir=${yast2dir}/locale
+clientdir=${yast2dir}/clients
+moduledir=${yast2dir}/modules
+yncludedir=${yast2dir}/include
+schemadir=${yast2dir}/schema
+scrconfdir=${yast2dir}/scrconf
+desktopdir=\${prefix}/share/applications/YaST2
+
+AC_SUBST(VERSION)
+AC_SUBST(RPMNAME)
+AC_SUBST(MAINTAINER)
+
+AC_SUBST(pkgconfigdir)
+AC_SUBST(pkgconfigdatadir)
+
+AC_SUBST(yast2dir)
+
+AC_SUBST(ybindir)
+AC_SUBST(ystartupdir)
+AC_SUBST(plugindir)
+AC_SUBST(includedir)
+AC_SUBST(potdir)
+AC_SUBST(execcompdir)
+
+AC_SUBST(docdir)
+AC_SUBST(mandir)
+
+AC_SUBST(ydatadir)
+AC_SUBST(imagedir)
+AC_SUBST(themedir)
+AC_SUBST(localedir)
+AC_SUBST(clientdir)
+AC_SUBST(moduledir)
+AC_SUBST(yncludedir)
+AC_SUBST(schemadir)
+AC_SUBST(scrconfdir)
+AC_SUBST(agentdir)
+AC_SUBST(desktopdir)
+
+fillupdir_d="/var/adm/fillup-templates"
+AC_ARG_WITH(fillupdir,
+ AS_HELP_STRING([--with-fillupdir=DIR],
+ [where to place fillup templates (default $fillupdir_d.]),
+ [ fillupdir="$withval" ],
+ [ fillupdir="$fillupdir_d" ])
+AC_SUBST(fillupdir)
+
+dnl Automake 1.11 enables silent compilation,
+dnl Disable it by "configure --disable-silent-rules" or "make V=1"
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+
+dnl Checks for programs.
+AC_PROG_INSTALL
+dnl The YCP interpreter checks whether dependent ybc files are older
+dnl so we must preserve their timestamps
+INSTALL="${INSTALL} -p"
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+
+dnl pkgconfig
+AC_ARG_VAR([PKG_CONFIG_PATH], [where to search for pkg-config files])
+dnl devtools
+dnl ...
+
+dnl no need for AC_ARG_VAR
+AC_PATH_PROG(XGETTEXT, xgettext)
+if test -z "$XGETTEXT" ; then
+ AC_MSG_ERROR(xgettext is missing; please install gettext-tools.)
+fi
+
+Y2DEVTOOLS_PREFIX=`pkg-config --print-errors --variable=prefix yast2-devtools`
+AC_SUBST(Y2DEVTOOLS_PREFIX)
+devtools_ybindir=`pkg-config --print-errors --variable=ybindir yast2-devtools`
+devtools_yast2dir=`pkg-config --print-errors --variable=yast2dir yast2-devtools`
+
+dnl producing pkg-config for others?
+AM_CONDITIONAL(CREATE_PKGCONFIG, test "x${CREATE_PKGCONFIG}" != x)
+AM_CONDITIONAL(CREATE_PKGCONFIG_NOARCH, test "x${CREATE_PKGCONFIG}" = xnoarch)
+
+dbdir=${devtools_yast2dir}/data/docbook
+STYLESHEET_HTML=${dbdir}/stylesheets/customize-html.xsl
+STYLESHEET_PDF=${dbdir}/stylesheets/customize-fo.xsl
+STYLESHEET_CSS=${dbdir}/css/yast2docs.css
+STYLESHEET_YDOC=${dbdir}/stylesheets/ydoc.xsl
+STYLESHEET_YCPDOC=${dbdir}/stylesheets/ycpdoc.xsl
+AC_SUBST(STYLESHEET_HTML)
+AC_SUBST(STYLESHEET_PDF)
+AC_SUBST(STYLESHEET_CSS)
+AC_SUBST(STYLESHEET_YDOC)
+AC_SUBST(STYLESHEET_YCPDOC)
+
+
+
+AC_PATH_PROG(YDOXYGEN, ydoxygen, false, $PATH:$devtools_ybindir)
+if test "$YDOXYGEN" = "false"; then
+ AC_MSG_ERROR([ydoxygen is not installed])
+fi
+
+AC_PROG_CXX
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CPP
+
+# If we have core, get its Y2CORE_CFLAGS.
+# When building core itself, it has set Y2CORE_CFLAGS elsewhere already
+PKG_CHECK_EXISTS([yast2-core],[
+ PKG_CHECK_MODULES(Y2CORE, yast2-core)
+])
+
+CFLAGS="${CFLAGS} -Wall -Wformat=2 -Wmissing-prototypes"
+CXXFLAGS="${CXXFLAGS} ${Y2CORE_CFLAGS} -Wall -Wformat=2"
+
+: ${AGENT_LIBADD:='-L$(libdir) -lscr -ly2util -lycpvalues'}
+AC_SUBST(AGENT_LIBADD)
+
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+AM_PROG_LIBTOOL dnl for libraries
+
+dnl generate the config header
+AC_CONFIG_HEADERS([config.h]) dnl at the distribution this done
+
+AC_FUNC_ALLOCA
+AC_HEADER_STDC
+
+AC_PATH_PROG(YCPDOC, ycpdoc, false, $PATH:$devtools_ybindir)
+if test "$YCPDOC" = "false"; then
+ AC_MSG_ERROR([ycpdoc is not installed])
+fi
+AC_PATH_PROG(YCPMAKEDEP, ycpmakedep, false, $PATH:$devtools_ybindir)
+if test "$YCPMAKEDEP" = "false"; then
+ AC_MSG_ERROR([ycpmakedep is not installed])
+fi
+AC_PATH_PROG(YCPC, ycpc, false, $PATH:$bindir)
+if test "$YCPC" = "false"; then
+ AC_MSG_ERROR([ycpc is not installed])
+fi
+AC_CHECK_FILE($devtools_yast2dir/data/testsuite/Makefile.testsuite, [], [
+ AC_MSG_WARN([yast2-testsuite.rpm is not installed])
+])
+
+
+# check slp.h
+yast_found_slp=no
+AC_CHECK_HEADER([slp.h],[yast_found_slp=yes])
+if test "$yast_found_slp" = "no"; then
+ AC_MSG_ERROR([Header file slp.h is missing. Please install openslp-devel.])
+fi
+
+AC_CONFIG_FILES(Makefile agent-slp/conf/Makefile
+agent-slp/src/Makefile
+agent-slp/doc/autodocs/Makefile
+agent-slp/doc/Makefile
+agent-slp/Makefile
+doc/autodocs/Makefile
+doc/Makefile
+src/Makefile
+testsuite/Makefile)
+AC_OUTPUT
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/configure.in new/yast2-slp-3.0.0/configure.in
--- old/yast2-slp-2.23.0/configure.in 2013-02-14 16:36:43.000000000 +0100
+++ new/yast2-slp-3.0.0/configure.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,206 +0,0 @@
-dnl configure.in for yast2-slp
-dnl
-dnl -- This file is generated by y2autoconf 2.23.2 - DO NOT EDIT! --
-dnl (edit configure.in.in instead)
-
-AC_INIT(yast2-slp, 2.23.0, http://bugs.opensuse.org/, yast2-slp)
-dnl Check for presence of file 'RPMNAME'
-AC_CONFIG_SRCDIR([RPMNAME])
-
-dnl Checking host/target/build systems, for make, install etc.
-AC_CANONICAL_TARGET
-dnl Perform program name transformation
-AC_ARG_PROGRAM
-
-AC_PREFIX_DEFAULT(/usr)
-
-dnl long filenames; we use GNU Make extensions and that's ok
-AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
-
-dnl Important YaST2 variables
-VERSION="2.23.0"
-RPMNAME="yast2-slp"
-MAINTAINER="Jiri Suchomel "
-
-dnl pkgconfig honors lib64
-pkgconfigdir=\${libdir}/pkgconfig
-pkgconfigdatadir=\${datadir}/pkgconfig
-yast2dir=\${prefix}/share/YaST2
-
-ybindir=\${prefix}/lib/YaST2/bin
-# FIXME duplicates execcompdir
-ystartupdir=\${prefix}/lib/YaST2
-plugindir=\${libdir}/YaST2/plugin
-includedir=\${prefix}/include/YaST2
-potdir=\${docdir}/pot
-
-docdir=\${prefix}/share/doc/packages/$RPMNAME
-mandir=\${prefix}/share/man
-
-execcompdir=\${prefix}/lib/YaST2
-agentdir=${execcompdir}/servers_non_y2
-
-ydatadir=${yast2dir}/data
-imagedir=${yast2dir}/images
-themedir=${yast2dir}/theme
-localedir=${yast2dir}/locale
-clientdir=${yast2dir}/clients
-moduledir=${yast2dir}/modules
-yncludedir=${yast2dir}/include
-schemadir=${yast2dir}/schema
-scrconfdir=${yast2dir}/scrconf
-desktopdir=\${prefix}/share/applications/YaST2
-
-AC_SUBST(VERSION)
-AC_SUBST(RPMNAME)
-AC_SUBST(MAINTAINER)
-
-AC_SUBST(pkgconfigdir)
-AC_SUBST(pkgconfigdatadir)
-
-AC_SUBST(yast2dir)
-
-AC_SUBST(ybindir)
-AC_SUBST(ystartupdir)
-AC_SUBST(plugindir)
-AC_SUBST(includedir)
-AC_SUBST(potdir)
-AC_SUBST(execcompdir)
-
-AC_SUBST(docdir)
-AC_SUBST(mandir)
-
-AC_SUBST(ydatadir)
-AC_SUBST(imagedir)
-AC_SUBST(themedir)
-AC_SUBST(localedir)
-AC_SUBST(clientdir)
-AC_SUBST(moduledir)
-AC_SUBST(yncludedir)
-AC_SUBST(schemadir)
-AC_SUBST(scrconfdir)
-AC_SUBST(agentdir)
-AC_SUBST(desktopdir)
-
-fillupdir_d="/var/adm/fillup-templates"
-AC_ARG_WITH(fillupdir,
- AS_HELP_STRING([--with-fillupdir=DIR],
- [where to place fillup templates (default $fillupdir_d.]),
- [ fillupdir="$withval" ],
- [ fillupdir="$fillupdir_d" ])
-AC_SUBST(fillupdir)
-
-dnl Automake 1.11 enables silent compilation,
-dnl Disable it by "configure --disable-silent-rules" or "make V=1"
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-
-dnl Checks for programs.
-AC_PROG_INSTALL
-dnl The YCP interpreter checks whether dependent ybc files are older
-dnl so we must preserve their timestamps
-INSTALL="${INSTALL} -p"
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-
-dnl pkgconfig
-AC_ARG_VAR([PKG_CONFIG_PATH], [where to search for pkg-config files])
-dnl devtools
-dnl ...
-
-dnl no need for AC_ARG_VAR
-AC_PATH_PROG(XGETTEXT, xgettext)
-if test -z "$XGETTEXT" ; then
- AC_MSG_ERROR(xgettext is missing; please install gettext-tools.)
-fi
-
-Y2DEVTOOLS_PREFIX=`pkg-config --print-errors --variable=prefix yast2-devtools`
-AC_SUBST(Y2DEVTOOLS_PREFIX)
-devtools_ybindir=`pkg-config --print-errors --variable=ybindir yast2-devtools`
-devtools_yast2dir=`pkg-config --print-errors --variable=yast2dir yast2-devtools`
-
-dnl producing pkg-config for others?
-AM_CONDITIONAL(CREATE_PKGCONFIG, test "x${CREATE_PKGCONFIG}" != x)
-AM_CONDITIONAL(CREATE_PKGCONFIG_NOARCH, test "x${CREATE_PKGCONFIG}" = xnoarch)
-
-dbdir=${devtools_yast2dir}/data/docbook
-STYLESHEET_HTML=${dbdir}/stylesheets/customize-html.xsl
-STYLESHEET_PDF=${dbdir}/stylesheets/customize-fo.xsl
-STYLESHEET_CSS=${dbdir}/css/yast2docs.css
-STYLESHEET_YDOC=${dbdir}/stylesheets/ydoc.xsl
-STYLESHEET_YCPDOC=${dbdir}/stylesheets/ycpdoc.xsl
-AC_SUBST(STYLESHEET_HTML)
-AC_SUBST(STYLESHEET_PDF)
-AC_SUBST(STYLESHEET_CSS)
-AC_SUBST(STYLESHEET_YDOC)
-AC_SUBST(STYLESHEET_YCPDOC)
-
-
-
-AC_PATH_PROG(YDOXYGEN, ydoxygen, false, $PATH:$devtools_ybindir)
-if test "$YDOXYGEN" = "false"; then
- AC_MSG_ERROR([ydoxygen is not installed])
-fi
-
-AC_PROG_CXX
-AC_PROG_AWK
-AC_PROG_CC
-AC_PROG_CPP
-
-# If we have core, get its Y2CORE_CFLAGS.
-# When building core itself, it has set Y2CORE_CFLAGS elsewhere already
-PKG_CHECK_EXISTS([yast2-core],[
- PKG_CHECK_MODULES(Y2CORE, yast2-core)
-])
-
-CFLAGS="${CFLAGS} -Wall -Wformat=2 -Wmissing-prototypes"
-CXXFLAGS="${CXXFLAGS} ${Y2CORE_CFLAGS} -Wall -Wformat=2"
-
-: ${AGENT_LIBADD:='-L$(libdir) -lscr -ly2util -lycpvalues'}
-AC_SUBST(AGENT_LIBADD)
-
-AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
-AM_PROG_LIBTOOL dnl for libraries
-
-dnl generate the config header
-AC_CONFIG_HEADERS([config.h]) dnl at the distribution this done
-
-AC_FUNC_ALLOCA
-AC_HEADER_STDC
-
-AC_PATH_PROG(YCPDOC, ycpdoc, false, $PATH:$devtools_ybindir)
-if test "$YCPDOC" = "false"; then
- AC_MSG_ERROR([ycpdoc is not installed])
-fi
-AC_PATH_PROG(YCPMAKEDEP, ycpmakedep, false, $PATH:$devtools_ybindir)
-if test "$YCPMAKEDEP" = "false"; then
- AC_MSG_ERROR([ycpmakedep is not installed])
-fi
-AC_PATH_PROG(YCPC, ycpc, false, $PATH:$bindir)
-if test "$YCPC" = "false"; then
- AC_MSG_ERROR([ycpc is not installed])
-fi
-AC_CHECK_FILE($devtools_yast2dir/data/testsuite/Makefile.testsuite, [], [
- AC_MSG_WARN([yast2-testsuite.rpm is not installed])
-])
-
-
-# check slp.h
-yast_found_slp=no
-AC_CHECK_HEADER([slp.h],[yast_found_slp=yes])
-if test "$yast_found_slp" = "no"; then
- AC_MSG_ERROR([Header file slp.h is missing. Please install openslp-devel.])
-fi
-
-AC_CONFIG_FILES(Makefile agent-slp/conf/Makefile
-agent-slp/src/Makefile
-agent-slp/doc/autodocs/Makefile
-agent-slp/doc/Makefile
-agent-slp/Makefile
-doc/autodocs/Makefile
-doc/Makefile
-src/Makefile
-testsuite/Makefile)
-AC_OUTPUT
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/src/Makefile.am new/yast2-slp-3.0.0/src/Makefile.am
--- old/yast2-slp-2.23.0/src/Makefile.am 2013-01-22 12:09:50.000000000 +0100
+++ new/yast2-slp-3.0.0/src/Makefile.am 2013-07-30 13:41:05.000000000 +0200
@@ -1,17 +1,11 @@
-#
-# Makefile.am for xml/module/src
-#
+# Sources for slp
-#
-#desktop_DATA = \
-# slp.desktop
-
-module_DATA = \
- SLP.ycp
+module_DATA = \
+ modules/SLP.rb
client_DATA = \
- slp.ycp
+ clients/slp.rb
-EXTRA_DIST = $(module_DATA) $(client_DATA) #$(desktop_DATA)
+EXTRA_DIST = $(module_DATA) $(client_DATA)
-include $(top_srcdir)/Makefile.am.common
+include $(top_srcdir)/Makefile.am.common
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/src/SLP.ycp new/yast2-slp-3.0.0/src/SLP.ycp
--- old/yast2-slp-2.23.0/src/SLP.ycp 2013-01-22 12:09:50.000000000 +0100
+++ new/yast2-slp-3.0.0/src/SLP.ycp 1970-01-01 01:00:00.000000000 +0100
@@ -1,222 +0,0 @@
-/**
- * File: modules/SLP.ycp
- * Package: SLP Browser / Agent
- * Summary: Access to SLP Agent functions
- * Authors: Anas Nashif
- *
- * $Id$
- *
- */
-{
-
- module "SLP";
- textdomain "slp";
- import "Summary";
- import "HTML";
-
-
- string Regd = "/etc/slp.reg.d";
-
- /**
- * Issue the query for services
- * @param pcServiceType The Service Type String, including authority string if
- * any, for the request, such as can be discovered using SLPSrvTypes().
- * This could be, for example "service:printer:lpr" or "service:nfs".
- * @param pcScopeList comma separated list of scope names to search for
- * service types.
- * @return list<map> List of Services
- */
- global define list<map> FindSrvs( string pcServiceType, string pcScopeList)
- {
- list<map> Srvs = (list<map>) SCR::Read(.slp.findsrvs,
- $["pcServiceType":pcServiceType, "pcScopeList": pcScopeList] );
- y2debug("FindSrvs: %1", Srvs);
- return Srvs;
- }
-
- /**
- * Issues an SLP service type request for service types in the scopes
- * indicated by the pcScopeList.
- *
- * If the naming authority is "*", then
- * results are returned for all naming authorities. If the naming
- * authority is the empty string, i.e. "", then the default naming
- * authority, "IANA", is used.
- *
- * @param pcNamingAuthority The naming authority to search.
- * @param pcScopeList comma separated list of scope names to search for
- * service types.
- * @return list<string> Service Types
- */
- global define list<string> FindSrvTypes ( string pcNamingAuthority , string pcScopeList)
- {
- list<string> Types = (list<string>) SCR::Read(.slp.findsrvtypes,
- $["pcNamingAuthority":pcNamingAuthority ,
- "pcScopeList": pcScopeList] );
- return Types;
- }
-
-
-
- /**
- * Find attributes of a service
- * @param pcURLOrServiceType service url or type
- * @return list<string> attributes
- */
- global define list<string> FindAttrs ( string pcURLOrServiceType )
- {
- list<string> Attrs = (list<string>) SCR::Read(.slp.findattrs,
- $["pcURLOrServiceType":pcURLOrServiceType] );
- return Attrs;
- }
-
- /**
- * Find attributes of a service using a unicast query
- * @param pcURLOrServiceType service url or type
- * @param ip IP address of the server
- * @return list<string> attributes
- */
- global define list<string> UnicastFindAttrs (
- string pcURLOrServiceType, string ip)
- {
- if (ip == "") return FindAttrs (pcURLOrServiceType);
-
- list<string> Attrs = (list<string>) SCR::Read(.slp.unicastfindattrs,
- $[
- "pcURLOrServiceType" : pcURLOrServiceType,
- "ip-address" : ip
- ]
- );
- return Attrs;
- }
-
- /**
- * Find attributes (using unicast query) of a service and return a map
- * @param pcURLOrServiceType service url or type
- * @param ip IP address of the server
- * @return map attributes
- */
- global define map GetUnicastAttrMap (
- string pcURLOrServiceType, string ip)
- {
- list<string> Attrs = UnicastFindAttrs (pcURLOrServiceType, ip);
- return (map) listmap(string a, Attrs, {
- string s = substring(a, 1, size(a) - 2 );
- list aa = splitstring(s, "=");
- return $[ aa[0]:"empty" : aa[1]:"empty" ];
- });
- }
-
- /**
- * Find attributes of a service and return a map
- * @param pcURLOrServiceType service url or type
- * @return map attributes
- */
- global define map GetAttrMap(string pcURLOrServiceType)
- {
-
- list<string> Attrs = FindAttrs (pcURLOrServiceType);
- map att = (map)listmap(string a, Attrs, ``{
- string s = substring(a, 1, size(a) - 2 );
- list aa = splitstring(s, "=");
- return($[aa[0]:"empty":aa[1]:"empty"]);
- });
- return att;
- }
-
- /**
- * Attribute summary
- * @param Attrs attribute list
- * @return string summary
- */
- global define string AttrSummary (list<string> Attrs)
- {
- string summary = "";
- summary = Summary::AddHeader(summary, _("Attributes"));
- summary = Summary::OpenList ( summary );
- foreach(string a, Attrs, ``{
- string s = substring(a, 1, size(a) - 2 );
- list aa = splitstring(s, "=");
- summary = Summary::AddListItem ( summary, sformat("%1: %2",
- HTML::Bold(aa[0]:""), aa[1]:"") );
- });
-
- summary = Summary::CloseList ( summary );
- return summary;
- }
-
- /**
- * Register service with SLP
- * @param service Service to be registered
- * @return boolean True on success
- */
- global define boolean Reg(string service)
- {
- boolean ret = (boolean)SCR::Execute(.slp.reg, service);
- return ret;
- }
-
- /**
- * Deregister service with SLP
- * @param service Service to be deregistered
- * @return boolean True on success
- */
- global define boolean DeReg(string service)
- {
-
- boolean ret = (boolean)SCR::Execute(.slp.dereg, service);
- return ret;
- }
-
- /**
- * Register service with SLP using a reg file
- * @param service The service to be registered
- * @param attr Attributes
- * @param regfile Reg File
- * @return boolean True on Success
- */
- global define boolean RegFile(string service, map attr, string regfile)
- {
- list<string> slp = [];
- slp=add(slp, service);
- foreach(string k, string v , attr, ``{
- slp=add(slp, sformat("%1=%2", tolower(k), v ));
- });
-
- string all = mergestring(slp, "\n");
- SCR::Execute(.target.mkdir, Regd );
- boolean ret =(boolean) SCR::Write(.target.string, sformat("%1/%2", Regd, regfile), all);
- return ret;
- }
-
- /**
- * De-Register service with SLP by removing the reg file
- * @param regfile The service to be deregistered
- * @return boolean True on success
- */
- global define boolean DeRegFile(string regfile)
- {
- boolean ret = (boolean)SCR::Execute(.target.remove, regfile);
- return ret;
- }
- /**
- * Match Srv Type and return all data
- * @param match match string
- * @return list<map> list of services matching with all relevant data
- */
- global define list<map> MatchType (string match )
- {
- list<string> t = FindSrvTypes("*", "");
- list<map> ret = [];
- foreach(string type , t, {
- if (regexpmatch(type, match)) {
- list<map> matched = FindSrvs(type, "");
- ret = (list<map>) union(ret , maplist(map m, matched, ``{
- m["attr"] = GetAttrMap(m["srvurl"]:"");
- return(m);
- }));
- }
- });
- return ret;
- }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/src/clients/slp.rb new/yast2-slp-3.0.0/src/clients/slp.rb
--- old/yast2-slp-2.23.0/src/clients/slp.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-slp-3.0.0/src/clients/slp.rb 2013-07-30 13:41:05.000000000 +0200
@@ -0,0 +1,202 @@
+# encoding: utf-8
+
+# File: clients/slp.ycp
+# Package: SLP
+# Summary: SLP Browser
+# Authors: Anas Nashif
+#
+# $Id$
+#
+# Browse SLP services
+module Yast
+ class SlpClient < Client
+ def main
+ Yast.import "UI"
+ Yast.import "SLP"
+ textdomain "slp"
+ Yast.import "Wizard"
+ Yast.import "Label"
+
+
+ # list<map> response = SLP::FindSrvs("CIM-Object-Manager");
+ @tableItems = []
+ @treeItems = []
+
+ @contents = Top(
+ VBox(
+ Table(
+ Id(:table),
+ Opt(:notify, :immediate),
+ Header(_("Type"), _("URL"), _("Lifetime")),
+ @tableItems
+ ),
+ RichText(Id(:attr), "")
+ )
+ )
+
+ @typeResponse = SLP.FindSrvTypes("*", "")
+
+ @title = _("SLP Browser")
+ Wizard.CreateTreeDialog
+ Wizard.SetDesktopTitleAndIcon("slp")
+ @Tree = fillTree(@typeResponse)
+ Builtins.y2debug("Tree=%1", @Tree)
+ Wizard.CreateTree(@Tree, _("Service Types"))
+
+ @help = Builtins.dgettext("base", "No help available")
+ Wizard.SetContentsButtons(
+ @title,
+ @contents,
+ @help,
+ Label.BackButton,
+ Label.FinishButton
+ )
+
+ Wizard.HideAbortButton
+ Wizard.DisableBackButton
+
+
+
+ @input = nil
+ @cache = {}
+ @attrcache = {}
+ begin
+ @srvtype = ""
+ @srv = ""
+ @event = UI.WaitForEvent
+ @input = Ops.get(@event, "ID")
+ if @input == :wizardTree
+ @input = UI.QueryWidget(Id(:wizardTree), :CurrentItem)
+ end
+
+ Builtins.y2debug("input: %1", @input)
+ if Ops.is_string?(@input)
+ @srvtype = Wizard.QueryTreeItem
+ elsif @input == :table
+ @srv = Convert.to_string(UI.QueryWidget(Id(:table), :CurrentItem))
+ end
+ Builtins.y2debug("srvtype: %1", @srvtype)
+ Builtins.y2debug("srv: %1", @srv)
+ @srvsResponse = []
+ if Builtins.haskey(@cache, @srvtype)
+ @srvsResponse = Ops.get_list(@cache, @srvtype, [])
+ else
+ @srvsResponse = SLP.FindSrvs(@srvtype, "")
+ Ops.set(@cache, @srvtype, @srvsResponse)
+ end
+ @tableItems = fillTable(@srvsResponse)
+
+ @attr = []
+ @sum = ""
+
+ Builtins.foreach(@srvsResponse) do |s|
+ srvurl = Ops.get_string(s, "srvurl", "")
+ if Builtins.haskey(@attrcache, srvurl)
+ @attr = Ops.get_list(@attrcache, srvurl, [])
+ else
+ Builtins.y2debug("s: %1", s)
+ @attr = SLP.FindAttrs(srvurl)
+ Builtins.y2debug("attr: %1", @attr)
+ Ops.set(@attrcache, srvurl, @attr)
+ end
+ end
+
+ if Ops.is_string?(@input)
+ UI.ChangeWidget(Id(:table), :Items, @tableItems)
+ @srv = Ops.get_string(@srvsResponse, [0, "srvurl"], "xxx")
+ @sum = SLP.AttrSummary(Ops.get_list(@attrcache, @srv, []))
+ UI.ChangeWidget(Id(:attr), :Value, @sum)
+ elsif @input == :table
+ @sum = SLP.AttrSummary(Ops.get_list(@attrcache, @srv, []))
+ UI.ChangeWidget(Id(:attr), :Value, @sum)
+ end
+ end until @input == :next || @input == :abort || @input == :cancel
+
+ UI.CloseDialog
+ deep_copy(@input)
+ # EOF
+ end
+
+ def createTableItem(srv)
+ srv = deep_copy(srv)
+ tabitem = Item()
+
+ srvurl = Ops.get_string(srv, "srvurl", "")
+
+ tabitem = Item(
+ Id(srvurl),
+ Builtins.substring(Ops.get_string(srv, "pcSrvType", ""), 8),
+ Builtins.substring(Ops.get_string(srv, "srvurl", ""), 8),
+ Ops.get_integer(srv, "lifetime", 0)
+ )
+ deep_copy(tabitem)
+ end
+
+ # Process Tree Items
+ def createTreeItem(_Tree, srvType, _Sub)
+ _Tree = deep_copy(_Tree)
+ _Sub = deep_copy(_Sub)
+ _Tree = Wizard.AddTreeItem(
+ _Tree,
+ "",
+ srvType,
+ Ops.add("service:", srvType)
+ )
+ _Sub = Builtins.filter(_Sub) { |s| s != "" }
+ Builtins.foreach(_Sub) do |s|
+ si = Item()
+ _Id = Ops.add(Ops.add(Ops.add("service:", srvType), ":"), s)
+ _Tree = Wizard.AddTreeItem(_Tree, Ops.add("service:", srvType), s, _Id)
+ end
+
+ deep_copy(_Tree)
+ end
+
+ def fillTable(response)
+ response = deep_copy(response)
+ items = Builtins.maplist(response) { |srv| createTableItem(srv) }
+
+ deep_copy(items)
+ end
+
+ def processTree(typeResponse)
+ typeResponse = deep_copy(typeResponse)
+ treeData = {}
+ Builtins.foreach(typeResponse) do |t|
+ tok = Builtins.splitstring(t, ":")
+ s = []
+ s = Builtins.add(s, Ops.get(tok, 2, ""))
+ t1 = Ops.get(tok, 1, "")
+ if !Builtins.haskey(treeData, t1)
+ Ops.set(treeData, t1, s)
+ else
+ old = Ops.get(treeData, t1, [])
+ Ops.set(
+ treeData,
+ t1,
+ Convert.convert(
+ Builtins.union(s, old),
+ :from => "list",
+ :to => "list <string>"
+ )
+ )
+ end
+ end
+ deep_copy(treeData)
+ end
+
+
+ def fillTree(typeResponse)
+ typeResponse = deep_copy(typeResponse)
+ _Tree = []
+ data = processTree(typeResponse)
+ Builtins.foreach(data) do |type, sub|
+ _Tree = createTreeItem(_Tree, type, sub)
+ end
+
+ deep_copy(_Tree)
+ end
+ end
+end
+
+Yast::SlpClient.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/src/modules/SLP.rb new/yast2-slp-3.0.0/src/modules/SLP.rb
--- old/yast2-slp-2.23.0/src/modules/SLP.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-slp-3.0.0/src/modules/SLP.rb 2013-07-30 13:41:05.000000000 +0200
@@ -0,0 +1,245 @@
+# encoding: utf-8
+
+# File: modules/SLP.ycp
+# Package: SLP Browser / Agent
+# Summary: Access to SLP Agent functions
+# Authors: Anas Nashif
+#
+# $Id$
+#
+require "yast"
+
+module Yast
+ class SLPClass < Module
+ def main
+ textdomain "slp"
+ Yast.import "Summary"
+ Yast.import "HTML"
+
+
+ @Regd = "/etc/slp.reg.d"
+ end
+
+ # Issue the query for services
+ # @param [String] pcServiceType The Service Type String, including authority string if
+ # any, for the request, such as can be discovered using SLPSrvTypes().
+ # This could be, for example "service:printer:lpr" or "service:nfs".
+ # @param [String] pcScopeList comma separated list of scope names to search for
+ # service types.
+ # @return [Array<Hash>] List of Services
+ def FindSrvs(pcServiceType, pcScopeList)
+ _Srvs = Convert.convert(
+ SCR.Read(
+ path(".slp.findsrvs"),
+ { "pcServiceType" => pcServiceType, "pcScopeList" => pcScopeList }
+ ),
+ :from => "any",
+ :to => "list <map>"
+ )
+ Builtins.y2debug("FindSrvs: %1", _Srvs)
+ deep_copy(_Srvs)
+ end
+
+ # Issues an SLP service type request for service types in the scopes
+ # indicated by the pcScopeList.
+ #
+ # If the naming authority is "*", then
+ # results are returned for all naming authorities. If the naming
+ # authority is the empty string, i.e. "", then the default naming
+ # authority, "IANA", is used.
+ #
+ # @param [String] pcNamingAuthority The naming authority to search.
+ # @param [String] pcScopeList comma separated list of scope names to search for
+ # service types.
+ # @return [Array<String>] Service Types
+ def FindSrvTypes(pcNamingAuthority, pcScopeList)
+ _Types = Convert.convert(
+ SCR.Read(
+ path(".slp.findsrvtypes"),
+ {
+ "pcNamingAuthority" => pcNamingAuthority,
+ "pcScopeList" => pcScopeList
+ }
+ ),
+ :from => "any",
+ :to => "list <string>"
+ )
+ deep_copy(_Types)
+ end
+
+
+
+ # Find attributes of a service
+ # @param [String] pcURLOrServiceType service url or type
+ # @return [Array<String>] attributes
+ def FindAttrs(pcURLOrServiceType)
+ _Attrs = Convert.convert(
+ SCR.Read(
+ path(".slp.findattrs"),
+ { "pcURLOrServiceType" => pcURLOrServiceType }
+ ),
+ :from => "any",
+ :to => "list <string>"
+ )
+ deep_copy(_Attrs)
+ end
+
+
+ # Find attributes of a service using a unicast query
+ # @param [String] pcURLOrServiceType service url or type
+ # @param [String] ip IP address of the server
+ # @return [Array<String>] attributes
+ def UnicastFindAttrs(pcURLOrServiceType, ip)
+ return FindAttrs(pcURLOrServiceType) if ip == ""
+
+ _Attrs = Convert.convert(
+ SCR.Read(
+ path(".slp.unicastfindattrs"),
+ { "pcURLOrServiceType" => pcURLOrServiceType, "ip-address" => ip }
+ ),
+ :from => "any",
+ :to => "list <string>"
+ )
+ deep_copy(_Attrs)
+ end
+
+
+ # Find attributes (using unicast query) of a service and return a map
+ # @param [String] pcURLOrServiceType service url or type
+ # @param [String] ip IP address of the server
+ # @return [Hash{String => String}] attributes
+ def GetUnicastAttrMap(pcURLOrServiceType, ip)
+ _Attrs = UnicastFindAttrs(pcURLOrServiceType, ip)
+ Builtins.listmap(_Attrs) do |a|
+ s = Builtins.substring(a, 1, Ops.subtract(Builtins.size(a), 2))
+ aa = Builtins.splitstring(s, "=")
+ { Ops.get_string(aa, 0, "empty") => Ops.get_string(aa, 1, "empty") }
+ end
+ end
+
+ # Find attributes of a service and return a map
+ # @param [String] pcURLOrServiceType service url or type
+ # @return [Hash{String => String}] attributes
+ def GetAttrMap(pcURLOrServiceType)
+ _Attrs = FindAttrs(pcURLOrServiceType)
+ att = Builtins.listmap(_Attrs) do |a|
+ s = Builtins.substring(a, 1, Ops.subtract(Builtins.size(a), 2))
+ aa = Builtins.splitstring(s, "=")
+ { Ops.get_string(aa, 0, "empty") => Ops.get_string(aa, 1, "empty") }
+ end
+ deep_copy(att)
+ end
+
+ # Attribute summary
+ # @param [Array<String>] Attrs attribute list
+ # @return [String] summary
+ def AttrSummary(_Attrs)
+ _Attrs = deep_copy(_Attrs)
+ summary = ""
+ summary = Summary.AddHeader(summary, _("Attributes"))
+ summary = Summary.OpenList(summary)
+ Builtins.foreach(_Attrs) do |a|
+ s = Builtins.substring(a, 1, Ops.subtract(Builtins.size(a), 2))
+ aa = Builtins.splitstring(s, "=")
+ summary = Summary.AddListItem(
+ summary,
+ Builtins.sformat(
+ "%1: %2",
+ HTML.Bold(Ops.get_string(aa, 0, "")),
+ Ops.get_string(aa, 1, "")
+ )
+ )
+ end
+
+ summary = Summary.CloseList(summary)
+ summary
+ end
+
+ # Register service with SLP
+ # @param [String] service Service to be registered
+ # @return [Boolean] True on success
+ def Reg(service)
+ ret = Convert.to_boolean(SCR.Execute(path(".slp.reg"), service))
+ ret
+ end
+
+ # Deregister service with SLP
+ # @param [String] service Service to be deregistered
+ # @return [Boolean] True on success
+ def DeReg(service)
+ ret = Convert.to_boolean(SCR.Execute(path(".slp.dereg"), service))
+ ret
+ end
+
+ # Register service with SLP using a reg file
+ # @param [String] service The service to be registered
+ # @param [Hash{String => String}] attr Attributes
+ # @param [String] regfile Reg File
+ # @return [Boolean] True on Success
+ def RegFile(service, attr, regfile)
+ attr = deep_copy(attr)
+ slp = []
+ slp = Builtins.add(slp, service)
+ Builtins.foreach(attr) do |k, v|
+ slp = Builtins.add(
+ slp,
+ Builtins.sformat("%1=%2", Builtins.tolower(k), v)
+ )
+ end
+
+ all = Builtins.mergestring(slp, "\n")
+ SCR.Execute(path(".target.mkdir"), @Regd)
+ ret = SCR.Write(
+ path(".target.string"),
+ Builtins.sformat("%1/%2", @Regd, regfile),
+ all
+ )
+ ret
+ end
+
+ # De-Register service with SLP by removing the reg file
+ # @param [String] regfile The service to be deregistered
+ # @return [Boolean] True on success
+ def DeRegFile(regfile)
+ ret = Convert.to_boolean(SCR.Execute(path(".target.remove"), regfile))
+ ret
+ end
+ # Match Srv Type and return all data
+ # @param [String] match match string
+ # @return [Array<Hash>] list of services matching with all relevant data
+ def MatchType(match)
+ t = FindSrvTypes("*", "")
+ ret = []
+ Builtins.foreach(t) do |type|
+ if Builtins.regexpmatch(type, match)
+ matched = FindSrvs(type, "")
+ ret = Convert.convert(
+ Builtins.union(ret, Builtins.maplist(matched) do |m|
+ Ops.set(m, "attr", GetAttrMap(Ops.get_string(m, "srvurl", "")))
+ deep_copy(m)
+ end),
+ :from => "list",
+ :to => "list <map>"
+ )
+ end
+ end
+ deep_copy(ret)
+ end
+
+ publish :function => :FindSrvs, :type => "list <map> (string, string)"
+ publish :function => :FindSrvTypes, :type => "list <string> (string, string)"
+ publish :function => :FindAttrs, :type => "list <string> (string)"
+ publish :function => :UnicastFindAttrs, :type => "list <string> (string, string)"
+ publish :function => :GetUnicastAttrMap, :type => "map (string, string)"
+ publish :function => :GetAttrMap, :type => "map (string)"
+ publish :function => :AttrSummary, :type => "string (list <string>)"
+ publish :function => :Reg, :type => "boolean (string)"
+ publish :function => :DeReg, :type => "boolean (string)"
+ publish :function => :RegFile, :type => "boolean (string, map , string)"
+ publish :function => :DeRegFile, :type => "boolean (string)"
+ publish :function => :MatchType, :type => "list <map> (string)"
+ end
+
+ SLP = SLPClass.new
+ SLP.main
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-slp-2.23.0/src/slp.ycp new/yast2-slp-3.0.0/src/slp.ycp
--- old/yast2-slp-2.23.0/src/slp.ycp 2013-01-22 12:09:50.000000000 +0100
+++ new/yast2-slp-3.0.0/src/slp.ycp 1970-01-01 01:00:00.000000000 +0100
@@ -1,193 +0,0 @@
-/**
- * File: clients/slp.ycp
- * Package: SLP
- * Summary: SLP Browser
- * Authors: Anas Nashif
- *
- * $Id$
- *
- * Browse SLP services
- */
-{
- import "SLP";
- textdomain "slp";
- import "Wizard";
- import "Label";
-
- define term createTableItem(map srv) ``{
-
- term tabitem = `item();
-
- string srvurl = srv["srvurl"]:"";
-
- tabitem = `item(
- `id( srvurl),
- substring(srv["pcSrvType"]:"", 8 ),
- substring(srv["srvurl"]:"", 8 ),
- srv["lifetime"]:0
- );
- return tabitem;
- }
-
- /**
- * Process Tree Items
- */
- define list<map> createTreeItem(list<map> Tree, string srvType, list<string> Sub) ``{
-
-
- Tree = Wizard::AddTreeItem(Tree, "", srvType, "service:" + srvType );
- Sub = filter(string s, Sub, ``(s!=""));
- foreach(string s, Sub, ``{
- term si = `item();
- string Id = "service:" + srvType + ":" + s;
- Tree =Wizard::AddTreeItem(Tree, "service:" + srvType, s , Id);
- });
-
- return Tree;
- }
-
- define list fillTable(list<map> response) ``{
- list items = maplist(map srv, response, ``{
- return(createTableItem(srv));
- });
-
- return items;
- }
-
- define map processTree(list<string> typeResponse ) ``{
- map treeData = $[];
- foreach(string t, typeResponse, ``{
- list<string> tok = splitstring(t, ":");
- list<string> s = [];
- s=add(s, tok[2]:"" );
- string t1 = tok[1]:"";
- if (!haskey(treeData, t1) )
- {
- treeData[t1] = s ;
- }
- else
- {
- list old = treeData[t1]:[];
- treeData[t1] = (list<string>)union(s,old) ;
- }
- });
- return treeData;
- }
-
-
- define list<map> fillTree(list<string> typeResponse) ``{
- list<map> Tree = [];
- map data = processTree(typeResponse);
- foreach(string type, list<string> sub, data, ``{
- Tree = createTreeItem(Tree, type, sub);
- });
-
- return Tree;
- }
-
-
- /*
- list<map> response = SLP::FindSrvs("CIM-Object-Manager");
- */
- list tableItems = [];
- list treeItems = [];
-
- term contents =
- `Top(
- `VBox(
- `Table( `id( `table ), `opt( `notify, `immediate),
- `header( _("Type"), _("URL"), _("Lifetime") ),
- tableItems ),
- `RichText(`id(`attr), "" )
- )
- );
-
- list<string> typeResponse = SLP::FindSrvTypes("*", "");
-
- string title = _("SLP Browser");
- Wizard::CreateTreeDialog();
- Wizard::SetDesktopTitleAndIcon("slp");
- list<map> Tree = fillTree(typeResponse);
- y2debug("Tree=%1", Tree);
- Wizard::CreateTree(Tree, _("Service Types") );
-
- string help = dgettext("base", "No help available");
- Wizard::SetContentsButtons(title, contents, help, Label::BackButton(),
- Label::FinishButton());
-
- Wizard::HideAbortButton();
- Wizard::DisableBackButton();
-
-
-
- any input = nil;
- map cache = $[];
- map attrcache = $[];
- repeat {
-
- string srvtype = "";
- string srv = "";
- map event = UI::WaitForEvent();
- input = event["ID"]:nil;
- if (input == `wizardTree)
- input = UI::QueryWidget(`id(`wizardTree), `CurrentItem);
-
- y2debug("input: %1", input);
- if (is(input, string))
- {
- srvtype = Wizard::QueryTreeItem();
- }
- else if (input == `table )
- {
- srv = (string) UI::QueryWidget(`id(`table), `CurrentItem);
- }
- y2debug("srvtype: %1", srvtype );
- y2debug("srv: %1", srv );
- list<map> srvsResponse = [];
- if(haskey(cache, srvtype))
- {
- srvsResponse = cache[srvtype]:[];
- }
- else
- {
- srvsResponse = SLP::FindSrvs(srvtype , "");
- cache[srvtype] = srvsResponse;
- }
- tableItems = fillTable(srvsResponse);
-
- list<string> attr = [];
- string sum = "";
-
- foreach(map s , srvsResponse, ``{
- string srvurl = s["srvurl"]:"";
- if(haskey(attrcache, srvurl))
- {
- attr = attrcache[srvurl]:[];
- }
- else
- {
- y2debug("s: %1", s);
- attr = SLP::FindAttrs(srvurl);
- y2debug("attr: %1", attr);
- attrcache[srvurl] = attr;
- }
- });
-
- if (is(input, string))
- {
- UI::ChangeWidget(`id(`table), `Items, tableItems);
- srv = srvsResponse[0,"srvurl"]:"xxx";
- sum = SLP::AttrSummary(attrcache[srv]:[]);
- UI::ChangeWidget(`id(`attr), `Value, sum);
- }
- else if (input == `table )
- {
- sum = SLP::AttrSummary(attrcache[srv]:[]);
- UI::ChangeWidget(`id(`attr), `Value, sum);
- }
- } until (input == `next || input == `abort || input == `cancel);
-
- UI::CloseDialog();
- return input;
- // EOF
-}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org