openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2012
- 1 participants
- 1211 discussions
Hello community,
here is the log from the commit of package openttd-opensfx for openSUSE:Factory:NonFree checked in at 2012-09-06 16:16:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/openttd-opensfx (Old)
and /work/SRC/openSUSE:Factory:NonFree/.openttd-opensfx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openttd-opensfx", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-08-23 02:41:28.555381587 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.openttd-opensfx.new/openttd-opensfx.changes 2012-09-06 16:16:52.000000000 +0200
@@ -0,0 +1,29 @@
+-------------------------------------------------------------------
+Tue Aug 28 08:16:49 UTC 2012 - cfarrell(a)suse.com
+
+- license update: SUSE-CC-Sampling-Plus-1.0
+ SPDX format (more specifically, the temporary substitute for this license
+ in the spreadsheet linked from license.opensuse.org)
+
+-------------------------------------------------------------------
+Sun Oct 31 16:50:23 UTC 2010 - ammler(a)openttdcoop.org
+
+- name change to openttd-opensfx to make it compliment to
+ other distros
+
+-------------------------------------------------------------------
+Thu Apr 1 10:38:34 UTC 2010 - Marcel Gmür <ammler(a)openttdcoop.org>
+
+- upstream update 0.2.3
+
+-------------------------------------------------------------------
+Wed Dec 23 00:00:00 UTC 2009 - ammler(a)openttdcoop.org
+
+- upstream update 0.2.1
+
+-------------------------------------------------------------------
+Sat Sep 19 00:00:00 UTC 2009 - ammler(a)openttdcoop.org
+
+- initial build
+
+
New:
----
opensfx-0.2.3-source.tar.gz
openttd-opensfx.changes
openttd-opensfx.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openttd-opensfx.spec ++++++
#
# spec file for package openttd-opensfx
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: openttd-opensfx
Version: 0.2.3
Release: 0
%define srcver %{version}
Summary: OpenSFX replacement sounds for OpenTTD
License: SUSE-CC-Sampling-Plus-1.0
Group: Amusements/Games/Strategy/Other
Url: http://dev.openttdcoop.org/projects/opensfx
Source0: http://bundles.openttdcoop.org/opensfx/releases/opensfx-%{srcver}-source.ta…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
BuildRequires: catcodec
Requires: openttd-data
Provides: opensfx
%description
OpenSFX replacement sounds for OpenTTD. The last required step
to make OpenTTD independent..
%prep
%setup -qn opensfx-%{srcver}-source
%build
make %{?_smp_mflags}
%install
make install INSTALLDIR=%{buildroot}%{_datadir}/openttd/data
%files
%defattr(-,root,root,-)
%doc docs/*.txt
%dir %{_datadir}/openttd
%dir %{_datadir}/openttd/data
%{_datadir}/openttd/data/opensfx-%{srcver}.tar
%changelog
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package webyast-base.822 for openSUSE:12.2:Update checked in at 2012-09-06 09:50:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/webyast-base.822 (Old)
and /work/SRC/openSUSE:12.2:Update/.webyast-base.822.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "webyast-base.822", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-08-23 02:41:28.555381587 +0200
+++ /work/SRC/openSUSE:12.2:Update/.webyast-base.822.new/webyast-base.changes 2012-09-06 09:50:58.000000000 +0200
@@ -0,0 +1,897 @@
+-------------------------------------------------------------------
+Mon Aug 20 14:07:51 UTC 2012 - lslezak(a)suse.cz
+
+- webyast.css - added .clearfix rule (fixes broken layout in
+ patches)
+
+-------------------------------------------------------------------
+Fri Aug 17 12:51:11 UTC 2012 - lslezak(a)suse.cz
+
+- online help initialization fix
+- routing fixes/cleanup
+- enabled caching for restdoc
+- 0.3.19
+
+-------------------------------------------------------------------
+Thu Aug 16 10:51:53 UTC 2012 - lslezak(a)suse.cz
+
+- fixed displaying restdoc documentation (at /restdoc path)
+- 0.3.18
+
+-------------------------------------------------------------------
+Tue Aug 14 11:13:06 UTC 2012 - lslezak(a)suse.cz
+
+- force SSL communication in production mode (use secure cookies
+ and use Strict-Transport-Security)
+- added caching in online help (cache the downloaded page from
+ doc.opensuse.org, cache the result)
+- 0.3.17
+
+-------------------------------------------------------------------
+Mon Aug 13 19:09:49 UTC 2012 - lslezak(a)suse.cz
+
+- removed rubygem-inifile dependency (inifile is needed for polkit1
+ which is not present in SLES11, moreover inifile is not directly
+ needed)
+- use rubygem-ruby-dbus also in SLES (will be part of ATK-1.3)
+
+-------------------------------------------------------------------
+Fri Aug 10 07:29:29 UTC 2012 - lslezak(a)suse.cz
+
+- 0.3.16
+
+-------------------------------------------------------------------
+Thu Aug 9 12:35:47 UTC 2012 - lslezak(a)suse.cz
+
+- removed MSIE8 hacks (use gradients instead of PNGs in status eye)
+- use HTTPS protocol instead of HTTP for reading online help
+ (decreases possibility of injecting malicious code to WebYaST
+ pages)
+
+-------------------------------------------------------------------
+Wed Aug 8 13:27:02 UTC 2012 - lslezak(a)suse.cz
+
+- rcwebyast - print fingerprint of the generated certificate
+
+-------------------------------------------------------------------
+Fri Aug 3 09:55:40 UTC 2012 - lslezak(a)suse.cz
+
+- correctly include IE CSS fixes
+- better nginx/passenger config (include passenger_root.include
+ file instead of patching nginx config at every start)
+- status eye - better look
+- 0.3.15
+
+-------------------------------------------------------------------
+Thu Aug 2 16:04:14 UTC 2012 - lslezak(a)suse.cz
+
+- rcwebyast - added umask 0066 to avoid world readable log files
+- supported browsers: IE9+ and FF10+
+- %post - make logs not world readable
+
+-------------------------------------------------------------------
+Tue Jul 31 20:09:51 UTC 2012 - lslezak(a)suse.cz
+
+- Gemfile - removed versioned devise dependency
+- Support rubygem-devise 2.x
+- 0.3.14
+
+-------------------------------------------------------------------
+Wed Jul 25 06:58:47 UTC 2012 - lslezak(a)suse.cz
+
+- %post - do not start backround prefetch when running
+ 'rake db:migrate' (concurrent DB access can cause deadlock)
+ (this is a proper fix for bnc#767066)
+- Ruby 1.9 fixes
+- 0.3.13
+
+-------------------------------------------------------------------
+Wed Jul 18 09:32:04 UTC 2012 - lslezak(a)suse.cz
+
+- allow disabling Web UI or REST API in WebYast config file
+ (/etc/webyast/config.yml)
+- added custom 404 error page
+
+-------------------------------------------------------------------
+Tue Jul 17 08:24:22 UTC 2012 - lslezak(a)suse.cz
+
+- enabled HTTP Basic authentication (needed for REST API)
+
+-------------------------------------------------------------------
+Wed Jul 4 09:27:30 UTC 2012 - lslezak(a)suse.cz
+
+- %post - reload DBus config only when the system bus socket is
+ present to avoid build hangs (bnc#767066)
+- 0.3.12
+
+-------------------------------------------------------------------
+Wed Jul 4 06:34:29 UTC 2012 - lslezak(a)suse.cz
+
+- rcwebyast - prerequire $network service (bnc#764871)
+- rcwebyast - print also FQDN URL (if available)
+- 0.3.11
+
+-------------------------------------------------------------------
+Thu Jun 14 08:36:05 UTC 2012 - cfarrell(a)suse.com
+
+- license update: LGPL-2.1 and GPL-2.0 and Apache-2.0
+ Contains components under GPL-2.0 and javascript components under
+ Apache-2.0 license
+
+-------------------------------------------------------------------
+Wed Jun 13 12:14:54 UTC 2012 - lslezak(a)suse.cz
+
+- added versioned Provides/Obsoletes, use "try-restart" for
+ restarting SUSE Firewall
+
+-------------------------------------------------------------------
+Wed Jun 6 14:36:56 UTC 2012 - lslezak(a)suse.cz
+
+- Provide/Obsolete webyast-base-ui-branding-default and
+ webyast-firstboot-ws packages (to remove them at update)
+- 0.3.10
+
+-------------------------------------------------------------------
+Wed Jun 6 12:07:35 UTC 2012 - lslezak(a)suse.cz
+
+- update to delayed_job 3.0
+- 0.3.9
+
+-------------------------------------------------------------------
+Mon Jun 4 15:18:57 UTC 2012 - lslezak(a)suse.cz
+
+- reload firewall after modifying /etc/sysconfig/SuSEfirewall2
+- 0.3.8
+
+-------------------------------------------------------------------
+Fri Jun 1 14:10:34 UTC 2012 - lslezak(a)suse.cz
+
+- fixed update problems (fixed %pre and %post scripts in .spec
+ file)
+- 0.3.7
+
+-------------------------------------------------------------------
+Wed May 30 08:14:40 UTC 2012 - lslezak(a)suse.cz
+
+- fixed control panel tests
+- 0.3.6
+
+-------------------------------------------------------------------
+Fri May 25 13:28:08 UTC 2012 - lslezak(a)suse.cz
+
+- switched to Rails 3.2
+- removed usage of static_record_cache gem (incompatible with
+ Rails 3.2), the missing caching should not have big impact
+- 0.3.5
+
+-------------------------------------------------------------------
+Fri May 25 11:10:23 UTC 2012 - lslezak(a)suse.cz
+
+- do not compress JS files - less build dependencies,
+ the compression ratio is small anyway
+- 0.3.4
+
+-------------------------------------------------------------------
+Thu May 24 09:56:56 UTC 2012 - lslezak(a)suse.cz
+
+- ApplicationController - fixed rendering uncaught exceptions
+ in XML format
+- 0.3.3
+
+-------------------------------------------------------------------
+Fri May 18 09:58:45 UTC 2012 - lslezak(a)suse.cz
+
+- added "help_text" view helper for displaying inline help texts
+- 0.3.2
+
+-------------------------------------------------------------------
+Tue Apr 17 11:03:51 UTC 2012 - schubi(a)suse.com
+
+- updated copyrights
+
+-------------------------------------------------------------------
+Thu Dec 1 08:46:09 UTC 2011 - jsrain(a)suse.cz
+
+- updated polkit permission granting to work well during appliance
+ build
+- 0.3.1
++++ 700 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.webyast-base.822.new/webyast-base.changes
New:
----
config.yml
config.yml.new
control_panel.yml
grantwebyastrights
nginx.conf
org.opensuse.yast.permissions.policy
rcwebyast
webyast
webyast-base.changes
webyast-base.spec
webyast.lr.conf
webyast.permissions.conf
webyast.permissions.service.service
webyastPermissionsService.rb
www.tar.bz2
yast_user_roles
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ webyast-base.spec ++++++
#
# spec file for package webyast-base
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: webyast-base
Version: 0.3.19
Release: 0
Provides: yast2-webservice = %{version}
Obsoletes: yast2-webservice < %{version}
Provides: webyast-language-ws = 0.1.0
Obsoletes: webyast-language-ws <= 0.1.0
Obsoletes: webyast-base-ui < %{version}
Obsoletes: webyast-base-ws < %{version}
Obsoletes: webyast-firstboot-ws < %{version}
Obsoletes: yast2-webclient < %{version}
Obsoletes: yast2-webservice < %{version}
Provides: webyast-base-ui = %{version}
Provides: webyast-base-ws = %{version}
Provides: webyast-firstboot-ws = %{version}
Provides: yast2-webclient = %{version}
Provides: yast2-webservice = %{version}
%if 0%{?suse_version} == 0 || %suse_version > 1110
# 11.2 or newer
%if 0%{?suse_version} > 1120
# since 11.3, they are in a separate subpackage
Requires: sysvinit-tools
%else
# Require startproc respecting -p, bnc#559534#c44
Requires: sysvinit > 2.86-215.2
%endif
Requires: yast2-core >= 2.18.10
%else
# 11.1 or SLES11
Requires: sysvinit > 2.86-195.3.1
Requires: yast2-core >= 2.17.30.1
%endif
Requires: check-create-certificate
Requires: nginx >= 1.0
Requires: rubygem-nokogiri
Requires: rubygem-passenger-nginx
Requires: rubygem-ruby-dbus
Requires: sqlite3
Requires: syslog-ng
Requires: yast2-dbus-server
Requires: rubygem-webyast-rake-tasks >= 0.2
Requires: webyast-base-branding
PreReq: rubygem-bundler
# 634404
Recommends: logrotate
%if 0%{?suse_version} == 0 || %suse_version > 1110
PreReq: polkit, rubygem-polkit1
%else
# <11.1 or SLES11
PreReq: PolicyKit, rubygem-polkit
%endif
PreReq: rubygem-rake, rubygem-sqlite3
PreReq: rubygem-rails-3_2 >= 3.2.3
PreReq: rubygem-fast_gettext, rubygem-gettext_i18n_rails
Url: http://en.opensuse.org/Portal:WebYaST
Summary: WebYaST - base components
License: LGPL-2.1 and GPL-2.0 and Apache-2.0
Group: Productivity/Networking/Web/Utilities
Source: www.tar.bz2
Source1: webyastPermissionsService.rb
Source2: webyast.permissions.conf
Source3: webyast.permissions.service.service
Source4: org.opensuse.yast.permissions.policy
Source5: grantwebyastrights
Source6: yast_user_roles
Source9: rcwebyast
Source10: webyast
Source11: webyast.lr.conf
Source12: nginx.conf
Source13: control_panel.yml
Source14: config.yml
Source15: config.yml.new
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: pkg-config
BuildRequires: ruby
BuildRequires: rubygem-mocha
# if we run the tests during build, we need most of Requires here too,
# except for deployment specific stuff
BuildRequires: dbus-1
BuildRequires: rubygem-rails-3_2
BuildRequires: rubygem-ruby-dbus
BuildRequires: rubygem-sqlite3
BuildRequires: rubygem-webyast-rake-tasks >= 0.2
BuildRequires: sqlite3
%if 0%{?suse_version} == 0 || %suse_version > 1110
BuildRequires: polkit
BuildRequires: rubygem-polkit1
%else
# <11.1 or SLES11
BuildRequires: PolicyKit
BuildRequires: rubygem-polkit
%endif
# the testsuite is run during build
BuildRequires: nginx >= 1.0
BuildRequires: rubygem-builder-3_0
BuildRequires: rubygem-bundler
BuildRequires: rubygem-cancan
BuildRequires: rubygem-delayed_job-3_0
BuildRequires: rubygem-delayed_job_active_record
BuildRequires: rubygem-devise
BuildRequires: rubygem-devise-i18n
BuildRequires: rubygem-devise_unix2_chkpwd_authenticatable
BuildRequires: rubygem-haml
BuildRequires: rubygem-mocha
BuildRequires: rubygem-nokogiri
BuildRequires: rubygem-test-unit
BuildRequires: rubygem-gettext
BuildRequires: rubygem-ruby_parser
BuildRequires: rubygem-factory_girl
BuildRequires: rubygem-factory_girl_rails
BuildRequires: rubygem-mocha
Requires: rubygem-builder-3_0
Requires: rubygem-fast_gettext
Requires: rubygem-gettext_i18n_rails
Requires: rubygem-haml
Requires: rubygem-rails-i18n
Requires: rubygem-sqlite3
Requires: rubygem-cancan
Requires: rubygem-delayed_job-3_0
Requires: rubygem-delayed_job_active_record
Requires: rubygem-devise
Requires: rubygem-devise-i18n
Requires: rubygem-devise_unix2_chkpwd_authenticatable
# This is for Hudson (build service) to setup the build env correctly
%if 0
BuildRequires: rubygem-rcov >= 0.9.3.2
BuildRequires: rubygem-test-unit
%endif
# we do not necessarily need any UI in case of WebYaST
Provides: yast2_ui
Provides: yast2_ui_pkg
# rpmlint warns about file duplicates, this should take care but
# doesn't build (?!)
#%if 0%{?suse_version} > 1020
#BuildRequires: fdupes
#%endif
BuildArch: noarch
%package testsuite
Requires: webyast-base = %{version}
Summary: Testsuite for webyast-base package
Group: Productivity/Networking/Web/Utilities
#
%define pkg_home /var/lib/%{webyast_user}
#
Requires: rubygem-factory_girl
Requires: rubygem-factory_girl_rails
Requires: rubygem-mocha
Requires: tidy
%description
WebYaST - Core components for UI and REST based interface to system manipulation.
Authors:
--------
Duncan Mac-Vicar Prett <dmacvicar(a)suse.de>
Klaus Kaempf <kkaempf(a)suse.de>
Bjoern Geuken <bgeuken(a)suse.de>
Stefan Schubert <schubi(a)suse.de>
%description testsuite
Testsuite for core WebYaST package.
%package branding-default
Provides: webyast-base-branding = %{version}
Requires: %{name} = %{version}
Conflicts: otherproviders(webyast-base-branding)
Supplements: packageand(webyast-base:branding-default)
Provides: webyast-base-ui-branding-default
Obsoletes: webyast-base-ui-branding-default
Summary: Branding package for webyast-base package
Group: Productivity/Networking/Web/Utilities
%description branding-default
This package contains css, icons and images for webyast-base package.
%prep
%setup -q -n www
%build
%if %suse_version <= 1110
export WEBYAST_POLICYKIT='true'
%endif
# build *.mo files (redirect sterr to /dev/null as it contains tons of warnings about obsoleted (commented) msgids)
LANG=en rake gettext:pack 2> /dev/null
# gettext:pack for some reason creates empty db/development.sqlite3 file
rm -rf db/development.sqlite3
# precompile assets
rake assets:precompile
# split manifest file
rake assets:split_manifest
rm -rf public/assets/manifest.yml
# cleanup
rm -rf tmp
rm -rf log
# remove Gemfile.lock created by the above rake calls
rm Gemfile.lock
%check
%if %suse_version <= 1110
export WEBYAST_POLICYKIT='true'
%endif
# run the testsuite
RAILS_ENV=test rake db:migrate
rake tmp:create
RAILS_ENV=test $RPM_BUILD_ROOT%{webyast_dir}/test/dbus-launch-simple rake test
#---------------------------------------------------------------
%install
%if %suse_version <= 1110
export WEBYAST_POLICYKIT='true'
%endif
#
# Install all web and frontend parts.
#
mkdir -p $RPM_BUILD_ROOT%{webyast_dir}/log/
cp -a * $RPM_BUILD_ROOT%{webyast_dir}/
rm -f $RPM_BUILD_ROOT%{webyast_dir}/log/*
rm -rf $RPM_BUILD_ROOT/%{webyast_dir}/po
rm -f $RPM_BUILD_ROOT%{webyast_dir}/COPYING
# install production mode Gemfile
rake -s gemfile:production > $RPM_BUILD_ROOT%{webyast_dir}/Gemfile
# install test mode Gemfile
rake -s gemfile:test > $RPM_BUILD_ROOT%{webyast_dir}/Gemfile.test
# install assets mode Gemfile
rake -s gemfile:assets > $RPM_BUILD_ROOT%{webyast_dir}/Gemfile.assets
# remove .gitkeep files
find $RPM_BUILD_ROOT%{webyast_dir} -name .gitkeep -delete
# remove *.po files (compiled *.mo files are sufficient)
find $RPM_BUILD_ROOT%{webyast_dir}/locale -name '*.po' -delete
%{__install} -d -m 0755 \
%{buildroot}%{pkg_home}/sockets/ \
%{buildroot}%{pkg_home}/cache/ \
%{buildroot}%{_sbindir} \
%{buildroot}%{_var}/log/%{webyast_user}
#
# init script
#
%{__install} -D -m 0755 -T %SOURCE9 \
%{buildroot}%{_sysconfdir}/init.d/%{webyast_service}
%{__ln_s} -f %{_sysconfdir}/init.d/%{webyast_service} %{buildroot}%{_sbindir}/rc%{webyast_service}
#
# configure nginx web service
mkdir -p $RPM_BUILD_ROOT/etc/nginx/certs
# configure nginx web service
mkdir -p $RPM_BUILD_ROOT/etc/webyast/
install -m 0644 %SOURCE12 $RPM_BUILD_ROOT/etc/webyast/
# create symlinks to nginx config files
ln -s /etc/nginx/fastcgi.conf $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/fastcgi_params $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/koi-utf $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/koi-win $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/mime.types $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/scgi_params $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/uwsgi_params $RPM_BUILD_ROOT/etc/webyast
ln -s /etc/nginx/win-utf $RPM_BUILD_ROOT/etc/webyast
# Policies
mkdir -p $RPM_BUILD_ROOT/usr/share/%{webyast_polkit_dir}
install -m 0644 %SOURCE4 $RPM_BUILD_ROOT/usr/share/%{webyast_polkit_dir}
install -m 0644 %SOURCE6 $RPM_BUILD_ROOT/etc/
install -m 0555 %SOURCE5 $RPM_BUILD_ROOT/usr/sbin/
# firewall service definition, bnc#545627
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
install -m 0644 %SOURCE10 $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
# logrotate configuration bnc#634404
mkdir $RPM_BUILD_ROOT/etc/logrotate.d
install -m 0644 %SOURCE11 $RPM_BUILD_ROOT/etc/logrotate.d
# create webyast dirs (config, var and data)
mkdir -p $RPM_BUILD_ROOT/etc/webyast
mkdir -p $RPM_BUILD_ROOT/var/lib/webyast
mkdir -p $RPM_BUILD_ROOT/usr/share/webyast
# create empty tmp directory
mkdir -p $RPM_BUILD_ROOT%{webyast_dir}/tmp
mkdir -p $RPM_BUILD_ROOT%{webyast_dir}/tmp/cache
mkdir -p $RPM_BUILD_ROOT%{webyast_dir}/tmp/pids
mkdir -p $RPM_BUILD_ROOT%{webyast_dir}/tmp/sessions
mkdir -p $RPM_BUILD_ROOT%{webyast_dir}/tmp/sockets
# install YAML config file
mkdir -p $RPM_BUILD_ROOT/etc/webyast/
cp %SOURCE13 $RPM_BUILD_ROOT/etc/webyast/
%if %suse_version <= 1110
cp %SOURCE14 $RPM_BUILD_ROOT/etc/webyast/
%else
cp %SOURCE15 $RPM_BUILD_ROOT/etc/webyast/config.yml
%endif
# install permissions service
mkdir -p $RPM_BUILD_ROOT/usr/sbin/
install -m 0500 %SOURCE1 $RPM_BUILD_ROOT/usr/sbin/
mkdir -p $RPM_BUILD_ROOT/etc/dbus-1/system.d/
install -m 0644 %SOURCE2 $RPM_BUILD_ROOT/etc/dbus-1/system.d/
mkdir -p $RPM_BUILD_ROOT/usr/share/dbus-1/system-services/
install -m 0444 %SOURCE3 $RPM_BUILD_ROOT/usr/share/dbus-1/system-services/
#create dummy update-script
mkdir -p %buildroot/var/adm/update-scripts
touch %buildroot/var/adm/update-scripts/%name-%version-%release-1
# for basesystem setup (firstboot)
mkdir -p $RPM_BUILD_ROOT%{webyast_vardir}/basesystem
#---------------------------------------------------------------
%clean
rm -rf $RPM_BUILD_ROOT
#---------------------------------------------------------------
%pre
#
# e.g. adding user
#
/usr/sbin/groupadd -r %{webyast_user} &>/dev/null ||:
/usr/sbin/useradd -g %{webyast_user} -s /bin/false -r -c "User for WebYaST" -d %{pkg_home} %{webyast_user} &>/dev/null ||:
# services will not be restarted correctly if
# the package name will changed while the update
# So the service will be restarted by an update-script
# which will be called AFTER the installation
if /bin/rpm -q webyast-base-ui > /dev/null ; then
echo "renaming webyast-base-ui to webyast-base"
if /sbin/chkconfig -l yastwc 2> /dev/null | grep " 3:on " >/dev/null ; then
echo "webyast is inserted into the runlevel"
echo "#!/bin/sh" > %name-%version-%release-1
echo "/sbin/chkconfig -a webyast" >> %name-%version-%release-1
echo "/usr/sbin/rcwebyast restart" >> %name-%version-%release-1
else
if /usr/sbin/rcyastwc status > /dev/null ; then
echo "webyast is running"
echo "#!/bin/sh" > %name-%version-%release-1
echo "/usr/sbin/rcwebyast restart" >> %name-%version-%release-1
fi
fi
fi
#We are switching from lighttpd to nginx. So lighttpd has to be killed
#at first
if rpm -q --requires %{name}|grep lighttpd > /dev/null ; then
if /usr/sbin/rcyastws status > /dev/null ; then
echo "yastws is running under lighttpd -> switching to nginx"
/usr/sbin/rcyastws stop > /dev/null
# check if the restart file already exists
if [ ! -f %name-%version-%release-1 ] ; then
echo "#!/bin/sh" > %name-%version-%release-1
echo "/usr/sbin/rcwebyast restart" >> %name-%version-%release-1
fi
fi
fi
if [ -f %name-%version-%release-1 ] ; then
install -D -m 755 %name-%version-%release-1 /var/adm/update-scripts
rm %name-%version-%release-1
echo "Please check the service runlevels and restart WebYaST service with \"rcwebyast restart\" if the update has not been called with zypper,yast or packagekit"
fi
exit 0
#---------------------------------------------------------------
%post
%fillup_and_insserv %{webyast_service}
#
#granting permissions for webyast
#
/usr/sbin/grantwebyastrights --user %{webyast_user} --action grant --policy org.opensuse.yast.module-manager.import > /dev/null ||:
#
# granting all permissions for root
#
/usr/sbin/grantwebyastrights --user root --action grant > /dev/null ||:
#
# create database
#
cd %{webyast_dir}
# force refreshing the Gemfile.lock
rm -f Gemfile.lock
#migrate database
%if %suse_version <= 1110
export WEBYAST_POLICYKIT='true'
%endif
DISABLE_DATA_PREFETCH=true RAILS_ENV=production rake db:migrate
chown -R %{webyast_user}: db
chown -R %{webyast_user}: log
chmod -R o-r log
echo "Database is ready"
# try-reload D-Bus config (bnc#635826)
# check if the system bus socket is present to avoid errors/hangs during RPM build (bnc#767066)
if [ -S /var/run/dbus/system_bus_socket ]; then
echo "Reloading DBus configuration..."
dbus-send --print-reply --system --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig >/dev/null ||:
fi
# update firewall config
if [ -f /etc/sysconfig/SuSEfirewall2 ]; then
if grep -q webyast-ui /etc/sysconfig/SuSEfirewall2; then
echo "Updating firewall config..."
sed -i "s/\(^[ \t]*FW_CONFIGURATIONS_.*[ \t]*=[ \t]*\".*[ \t]*\)webyast-ui\(.*$\)/\1webyast\2/" /etc/sysconfig/SuSEfirewall2
# reload the changes
echo "Restarting firewall..."
/sbin/rcSuSEfirewall2 try-restart
fi
fi
#---------------------------------------------------------------
%preun
%stop_on_removal %{webyast_service}
#---------------------------------------------------------------
%postun
%restart_on_update %{webyast_service}
%{insserv_cleanup}
#---------------------------------------------------------------
# restart webyast on nginx update (bnc#559534)
%triggerin -- nginx
%restart_on_update %{webyast_service}
%post branding-default
%webyast_update_assets
%postun branding-default
%webyast_update_assets
#---------------------------------------------------------------
%files
%defattr(-,root,root)
#this /etc/webyast is for nginx conf for webyast
%dir /etc/webyast
%config /etc/webyast/config.yml
%dir %{webyast_dir}
%attr(-,root,root) %{_datadir}/%{webyast_polkit_dir}
%attr(-,%{webyast_user},%{webyast_user}) %dir %{pkg_home}
%attr(-,%{webyast_user},%{webyast_user}) %dir %{pkg_home}/sockets
%attr(-,%{webyast_user},%{webyast_user}) %dir %{pkg_home}/cache
%attr(-,%{webyast_user},%{webyast_user}) %dir %{_var}/log/%{webyast_user}
#logrotate configuration file
%config(noreplace) /etc/logrotate.d/webyast.lr.conf
%dir %{_datadir}/webyast
%dir %attr(-,%{webyast_user},root) /var/lib/webyast
%dir %{webyast_dir}/db
%{webyast_dir}/locale
%{webyast_dir}/app
%{webyast_dir}/db/migrate
%ghost %{webyast_dir}/db/schema.rb
%{webyast_dir}/doc
%{webyast_dir}/lib
%dir %{webyast_dir}/public
%{webyast_dir}/public/*.html
%{webyast_dir}/public/dispatch.*
%{webyast_dir}/public/apache.htaccess
%{webyast_dir}/public/favicon.ico
%{webyast_dir}/Gemfile
%{webyast_dir}/Gemfile.assets
%{webyast_dir}/Rakefile
%{webyast_dir}/config.ru
%{webyast_dir}/script
%dir %{webyast_dir}/config
%{webyast_dir}/config/boot.rb
%{webyast_dir}/config/database.yml
%{webyast_dir}/config/environments
%{webyast_dir}/config/initializers
%{webyast_dir}/config/routes.rb
%{webyast_dir}/config/application.rb
#also users can run granting script, as permissions is handled by polkit right for granting permissions
%attr(555,root,root) /usr/sbin/grantwebyastrights
%attr(755,root,root) %{webyast_dir}/start.sh
%attr(500,root,root) /usr/sbin/webyastPermissionsService.rb
%attr(444,root,root) /usr/share/dbus-1/system-services/webyast.permissions.service.service
%attr(644,root,root) %config /etc/dbus-1/system.d/webyast.permissions.conf
%doc %{webyast_dir}/README
%attr(-,%{webyast_user},%{webyast_user}) %{webyast_dir}/log
%attr(-,%{webyast_user},%{webyast_user}) %{webyast_dir}/tmp
%dir %{webyast_vardir}
%attr(-,%{webyast_user},%{webyast_user}) %dir %{webyast_vardir}/basesystem
%dir /etc/nginx/certs
#this /etc/webyast is for webyast configuration files
%dir /etc/webyast/
%config /etc/webyast/control_panel.yml
%config /etc/webyast/config.yml
#nginx stuff
%config /etc/webyast/nginx.conf
%config /etc/webyast/fastcgi.conf
%config /etc/webyast/fastcgi_params
%config /etc/webyast/koi-utf
%config /etc/webyast/koi-win
%config /etc/webyast/mime.types
%config /etc/webyast/scgi_params
%config /etc/webyast/uwsgi_params
%config /etc/webyast/win-utf
%config /etc/sysconfig/SuSEfirewall2.d/services/webyast
%config /usr/share/%{webyast_polkit_dir}/org.opensuse.yast.permissions.policy
%config %{webyast_dir}/config/environment.rb
%config(noreplace) /etc/yast_user_roles
%config %{_sysconfdir}/init.d/%{webyast_service}
%{_sbindir}/rc%{webyast_service}
%doc COPYING
### include JS assets
%exclude %{webyast_dir}/app/assets/icons
%exclude %{webyast_dir}/app/assets/images
%exclude %{webyast_dir}/app/assets/stylesheets
%{webyast_dir}/app/assets/javascripts
%{webyast_dir}/public/assets/*.js
%{webyast_dir}/public/assets/*.js.gz
%{webyast_dir}/public/assets/manifest.yml.base
%exclude %{webyast_dir}/test
%ghost %attr(755,root,root) /var/adm/update-scripts/%name-%version-%release-1
%files testsuite
%defattr(-,root,root)
%{webyast_dir}/test
%{webyast_dir}/Gemfile.test
%files branding-default
%defattr(-,root,root)
### include css, icons and images
%{webyast_dir}/app/assets
%{webyast_dir}/public/assets
# exclude files belonging to the base
%exclude %{webyast_dir}/app/assets/javascripts/*
%exclude %{webyast_dir}/public/assets/*.js
%exclude %{webyast_dir}/public/assets/*.js.gz
%exclude %{webyast_dir}/public/assets/manifest.yml.base
#---------------------------------------------------------------
%changelog
++++++ config.yml ++++++
# This is a general config file for WebYaST
#
# The file needs to be located under /etc/webyast/
---
# Using the new
# default: false
polkit1: false
# Enable/disable XML REST API
# default: false
rest_api_enabled: false
# Enable/disable Web UI
# default: true
web_ui_enabled: true
++++++ config.yml.new ++++++
# This is a general config file for WebYaST
#
# The file needs to be located under /etc/webyast/
---
# Enable/disable XML REST API
# default: false
rest_api_enabled: false
# Enable/disable Web UI
# default: true
web_ui_enabled: true
++++++ control_panel.yml ++++++
# This is a config file for WebYaST control center
#
# The file needs to be located under /etc/webyast/ or /etc/webyast/vendor/
# (the 'vendor' directory has higher priority).
---
# timeout before automatic reloading of patches status (in seconds)
# value 0 disables automatic reload
# default: 28800 seconds = 8 hours
patch_status_timeout: 28800
# timeout before automatic reloading of patches status (in seconds)
# value 0 disables automatic reload
# default: 300 seconds = 5 minutes
system_status_timeout: 300
# display patches status in the status header
# default: true
display_patch_status: true
# display system status in the status header
# default: true
display_system_status: true
# label shown at the top of each page
appliance_label: _("My Appliance")
++++++ grantwebyastrights ++++++
#!/usr/bin/env ruby
#
#--
# Webyast framework
#
# Copyright (C) 2009, 2010 Novell, Inc.
# This library is free software; you can redistribute it and/or modify
# it only under the terms of version 2.1 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#++
#
# grantwebyastrights
#
# show, grant and revoke policies for WebYaST
#
# run: grantwebyastrights
#
require 'fileutils'
require 'getoptlong'
require 'rubygems'
require 'yaml'
#checking which policykit is used
WEBYAST_CONFIG_FILE = "/etc/webyast/config.yml"
@polkit1 = true
if File.exist?(WEBYAST_CONFIG_FILE)
values = YAML::load(File.open(WEBYAST_CONFIG_FILE, 'r').read)
@polkit1 = false if values["polkit1"] == false
end
STDOUT.puts "Using old PolicyKit" unless @polkit1
if @polkit1
require 'polkit1'
end
$debug = 0
POLKIT_SECTION = "55-webyast.d"
def usage why
STDERR.puts why
STDERR.puts ""
STDERR.puts "Usage: grantwebyastrights --user <user> --action (show|grant|revoke) [--policy <policy>]"
STDERR.puts "NOTE: This program should be run by user root"
STDERR.puts ""
STDERR.puts ""
unless @polkit1
STDERR.puts "This call grant/revoke ALL permissions for the YaST Webservice."
STDERR.puts "In order to grant/revoke single rights use:"
STDERR.puts "polkit-auth --user <user> (--grant|-revoke) <policyname>"
STDERR.puts ""
STDERR.puts "In order to show all possible permissions use:"
STDERR.puts "polkit-action"
else
STDERR.puts "In order to show all possible permissions use:"
STDERR.puts "pkaction"
end
exit 1
end
options = GetoptLong.new(
[ "--user", GetoptLong::REQUIRED_ARGUMENT ],
[ "--debug", GetoptLong::OPTIONAL_ARGUMENT ],
[ "--policy", GetoptLong::OPTIONAL_ARGUMENT ],
[ "--action", GetoptLong::REQUIRED_ARGUMENT ]
)
user = nil
action = nil
single_policy = nil
begin
options.each do |opt, arg|
case opt
when "--user"; user = arg
when "--action"; action = arg
when "--policy"; single_policy = arg
when "--debug"; $debug += 1
end
end
rescue GetoptLong::InvalidOption => o
usage "Invalid option #{o}"
end
$debug = nil if $debug == 0
usage "excessive arguments" unless ARGV.empty?
usage "user parameter missing" unless user
usage "action parameter (show|grant|revoke) missing" unless action
SuseString = "org.opensuse.yast"
def webyast_perm?(perm)
return (perm.include? SuseString) && (not perm.include? ".scr")
end
def granted_perms(user)
if @polkit1
perms = webyast_perms
perms.reject! { |perm|
PolKit1::polkit1_check(perm, user) == :no
}
else
perms = `polkit-auth --user '#{user}' --explicit`
#do NOT raise if an error happens here cause while the package installation this call returns always an error
# raise "polkit-auth failed with ret code #{$?.exitstatus}. Output: #{perms}" unless $?.exitstatus.zero?
perms = perms.split "\n"
perms.reject! { |perm| not webyast_perm?(perm) }
end
return perms
end
def webyast_perms
if @polkit1
perms = `pkaction`
else
perms = `polkit-action`
raise "polkit-action failed with ret code #{$?.exitstatus}. Output: #{perms}" unless $?.exitstatus.zero?
end
perms = perms.split "\n"
perms.reject! { |perm| not webyast_perm?(perm) }
return perms
end
begin
case action
when "grant" then
unless single_policy == nil
STDOUT.puts "granting: #{single_policy}"
if @polkit1
PolKit1::polkit1_write(POLKIT_SECTION, single_policy, true, user)
else
out = `polkit-auth --user '#{user}' --grant '#{single_policy}'`
#do NOT raise if an error happens here cause while the package installation this call can return an error for already existing
#permissions ( It is not possible to check this before)
#raise "Granting permissions failed with ret code #{$?.exitstatus}. Output: #{out}" unless $?.exitstatus.zero?
end
else
granted = granted_perms user
non_granted = webyast_perms.reject{ |perm| granted.include? perm }
non_granted.each do |policy|
STDOUT.puts "granting: #{policy}"
if @polkit1
PolKit1::polkit1_write(POLKIT_SECTION, policy, true, user)
else
out = `polkit-auth --user '#{user}' --grant '#{policy}'`
#do NOT raise if an error happens here cause while the package installation this call can return an error for already existing
#permissions ( It is not possible to check this before)
#raise "Granting permissions failed with ret code #{$?.exitstatus}. Output: #{out}" unless $?.exitstatus.zero?
end
end
end
when "show"
unless single_policy == nil
STDOUT.puts single_policy if granted_perms(user).include?(single_policy)
else
STDOUT.puts granted_perms(user).join("\n")
end
when "revoke"
unless single_policy == nil
STDOUT.puts "revoking: #{single_policy}"
if @polkit1
PolKit1::polkit1_write(POLKIT_SECTION, single_policy, false, user)
else
out = `polkit-auth --user '#{user}' --revoke '#{single_policy}'`
raise "Revoking permissions failed with ret code #{$?.exitstatus}. Output: #{out}" unless $?.exitstatus.zero?
end
else
granted = granted_perms user
granted.each do |policy|
STDOUT.puts "revoking: #{policy}"
if @polkit1
PolKit1::polkit1_write(POLKIT_SECTION, policy, false, user)
else
out = `polkit-auth --user '#{user}' --revoke '#{policy}'`
raise "Revoking permissions failed with ret code #{$?.exitstatus}. Output: #{out}" unless $?.exitstatus.zero?
end
end
end
end
rescue Exception => e
STDERR.puts e.message
Process.exit! 1
end
++++++ nginx.conf ++++++
user webyast webyast;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
error_log /srv/www/webyast/log/error.log info;
pid /var/run/webyast.pid;
events {
worker_connections 1024;
}
http {
# read passenger_root option from external file (in rubygem-passenger-nginx package)
include /etc/nginx/conf.d/passenger_root.include;
passenger_ruby /usr/bin/ruby;
passenger_pool_idle_time 300;
passenger_min_instances 0;
passenger_default_user webyast;
passenger_user webyast;
passenger_max_pool_size 1;
passenger_max_instances_per_app 1;
passenger_spawn_method conservative;
client_body_temp_path /srv/www/webyast/tmp/tmp_webyast 1 2;
fastcgi_temp_path /srv/www/webyast/tmp/fastcgi_webyast 1 2;
proxy_temp_path /srv/www/webyast/tmp/proxy_webyast 1 2;
include mime.types;
default_type application/octet-stream;
access_log /srv/www/webyast/log/access.log;
passenger_log_level 0;
passenger_debug_log_file /srv/www/webyast/log/passenger.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_static on;
gzip_buffers 16 8k;
gzip_comp_level 9;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 0;
gzip_types text/plain text/css image/x-icon image/png image/gif image/jpeg application/x-javascript text/javascript;
gzip_vary on;
server {
listen 4984;
underscores_in_headers on;
server_name localhost;
root /srv/www/webyast/public;
passenger_enabled on;
rails_framework_spawner_idle_time 300;
rails_app_spawner_idle_time 300;
ssl on;
ssl_certificate /etc/nginx/certs/webyast.pem;
ssl_certificate_key /etc/nginx/certs/webyast.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1;
ssl_ciphers ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!MD5:@STRENGTH;
ssl_prefer_server_ciphers on;
# redirect HTTP requests to HTTPS
# Error 497 is internal code for Error 400 "The plain HTTP request was sent to HTTPS port"
error_page 497 https://$host:4984$request_uri;
location ~* \.(png|gif|jpg|jpeg|css|js|swf|ico)(\?[0-9]+)?$ {
passenger_enabled on;
access_log off;
expires max;
add_header Cache-Control public;
}
}
}
++++++ rcwebyast ++++++
#!/bin/sh
#
# Copyright (C) 1995--2007 Marcus Rückert, SUSE / Novell Inc.
#
# This library is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at
# your option) any later version.
#
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
# USA.
#
# /etc/init.d/webyast
# and its symbolic link
# /(usr/)sbin/rcwebyast
#
#
# LSB compatible service control script; see http://www.linuxbase.org/spec/
#
# Note: This template uses functions rc_XXX defined in /etc/rc.status on
# UnitedLinux/SUSE/Novell based Linux distributions. If you want to base your
# script on this template and ensure that it works on non UL based LSB
# compliant Linux distributions, you either have to provide the rc.status
# functions from UL or change the script to work without them.
# See skeleton.compat for a template that works with other distros as well.
#
### BEGIN INIT INFO
# Provides: webyast
# Required-Start: $syslog $remote_fs $network
# Should-Start: $time ypbind sendmail
# Required-Stop: $syslog $remote_fs $network
# Should-Stop: $time ypbind sendmail
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: webyast
# Description: Start webyast
### END INIT INFO
#
# Any extensions to the keywords given above should be preceeded by
# X-VendorTag- (X-UnitedLinux- X-SuSE- for us) according to LSB.
#
# Notes on Required-Start/Should-Start:
# * There are two different issues that are solved by Required-Start
# and Should-Start
# (a) Hard dependencies: This is used by the runlevel editor to determine
# which services absolutely need to be started to make the start of
# this service make sense. Example: nfsserver should have
# Required-Start: $portmap
# Also, required services are started before the dependent ones.
# The runlevel editor will warn about such missing hard dependencies
# and suggest enabling. During system startup, you may expect an error,
# if the dependency is not fulfilled.
# (b) Specifying the init script ordering, not real (hard) dependencies.
# This is needed by insserv to determine which service should be
# started first (and at a later stage what services can be started
# in parallel). The tag Should-Start: is used for this.
# It tells, that if a service is available, it should be started
# before. If not, never mind.
# * When specifying hard dependencies or ordering requirements, you can
# use names of services (contents of their Provides: section)
# or pseudo names starting with a $. The following ones are available
# according to LSB (1.1):
# $local_fs all local file systems are mounted
# (most services should need this!)
# $remote_fs all remote file systems are mounted
# (note that /usr may be remote, so
# many services should Require this!)
# $syslog system logging facility up
# $network low level networking (eth card, ...)
# $named hostname resolution available
# $netdaemons all network daemons are running
# The $netdaemons pseudo service has been removed in LSB 1.2.
# For now, we still offer it for backward compatibility.
# These are new (LSB 1.2):
# $time the system time has been set correctly
# $portmap SunRPC portmapping service available
# UnitedLinux extensions:
# $ALL indicates that a script should be inserted
# at the end
# * The services specified in the stop tags
# (Required-Stop/Should-Stop)
# specify which services need to be still running when this service
# is shut down. Often the entries there are just copies or a subset
# from the respective start tag.
# * Should-Start/Stop are now part of LSB as of 2.0,
# formerly SUSE/Unitedlinux used X-UnitedLinux-Should-Start/-Stop.
# insserv does support both variants.
# * X-UnitedLinux-Default-Enabled: yes/no is used at installation time
# (%fillup_and_insserv macro in %post of many RPMs) to specify whether
# a startup script should default to be enabled after installation.
# It's not used by insserv.
#
# Note on runlevels:
# 0 - halt/poweroff 6 - reboot
# 1 - single user 2 - multiuser without network exported
# 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (xdm)
#
# Note on script names:
# http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html
# A registry has been set up to manage the init script namespace.
# http://www.lanana.org/
# Please use the names already registered or register one or use a
# vendor prefix.
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
NGINX_BIN=/usr/sbin/nginx
test -x $NGINX_BIN || { echo "$NGINX_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
NGINX_CONFIG=/etc/webyast/nginx.conf
test -r $NGINX_CONFIG || { echo "$NGINX_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
PID_FILE=/var/run/webyast.pid
CERTIFICATEFILE=/etc/nginx/certs/webyast.pem
CERTKEYFILE=/etc/nginx/certs/webyast.key
COMBINEDCERTFILE=/etc/nginx/certs/webyast-combined.pem
GEMFILE_LOCK=/srv/www/webyast/Gemfile.lock
# Source LSB init functions
# providing start_daemon, killproc, pidofproc,
# log_success_msg, log_failure_msg and log_warning_msg.
# This is currently not used by UnitedLinux based distributions and
# not needed for init scripts for UnitedLinux only. If it is used,
# the functions from rc.status should not be sourced or used.
#. /lib/lsb/init-functions
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v be verbose in local rc status and clear it afterwards
# rc_status -v -r ditto and clear both the local and overall rc status
# rc_status -s display "skipped" and exit with status 3
# rc_status -u display "unused" and exit with status 3
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num>
# rc_reset clear both the local and overall rc status
# rc_exit exit appropriate to overall rc status
# rc_active checks whether a service is activated by symlinks
. /etc/rc.status
# Reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - user had insufficient privileges
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.
# set default file permissions to -rw------
# (log files should not be readable by all)
umask 0066
case "$1" in
start)
if [ ! -e $COMBINEDCERTFILE ]
then
echo "No certificate found. Creating one now."
if ! /usr/sbin/check-create-certificate -c -C $CERTIFICATEFILE -K $CERTKEYFILE -B $COMBINEDCERTFILE -D webyast -O WebYaST -U WebYaST >/srv/www/webyast/log/check-create-certificate.log 2>&1
then
echo -n "Can not create certificate. Please see /srv/www/webyast/log/check-create-certificate.log for details."
rc_failed
rc_status -v
rc_exit
fi
chown nginx:nginx $CERTIFICATEFILE $CERTKEYFILE $COMBINEDCERTFILE
echo -n "Created certificate: "
openssl x509 -in $CERTIFICATEFILE -fingerprint -noout
fi
echo -n "Starting webyast "
# refresh the Gemfile.lock content before starting the server
# (outdated file can cause problems after upgrading needed rubygems)
rm -f $GEMFILE_LOCK
#generate deployment specific secret key (bnc#591345)
SECRET=`cd /srv/www/webyast/ && rake -s secret`
# make the lock file readable for all
chmod a+r $GEMFILE_LOCK
if [ -z $SECRET ]; then
echo -n "Cannot generate secret for session. Run 'cd /srv/www/webyast/ && rake -s secret' for details."
rc_failed
rc_status -v
rc_exit
fi
sed -i 's/9d11bfc98abcf9799082d9c34ec94dc1cc926f0f1bf4bea8c440b497d96b14c1f712c8784d0303ee7dd69e382c3e5e4d38d4c56d1b619eae7acaa6516cd733b1/'"$SECRET"/ /srv/www/webyast/config/environment.rb
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
/sbin/startproc -p $PID_FILE $NGINX_BIN -c $NGINX_CONFIG
# Remember status and be verbose
rc_status -v
# print the URL of the server
if test "$?" -eq 0; then
IFC=`LC_ALL=C route | grep "^default" | tr -s " " | cut -d " " -f 8`
IP=`LC_ALL=C ifconfig $IFC | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1`
PORT=`LC_ALL=C grep "listen" $NGINX_CONFIG|cut -d ";" -f 1|tr -s " "|cut -d " " -f 3`
HNAME=`hostname -f 2> /dev/null`
if [ -n "$HNAME" ]; then
HNAME=" (https://$HNAME:$PORT/)"
fi
if [ -n "$IP" ]; then
echo -e "\t${done}WebYaST is running at https://$IP:$PORT/${HNAME}${norm}\n"
else
echo -e "\t${warn}WebYaST could not determine the IP address for $IFC${norm}\n"
fi
fi
;;
stop)
echo -n "Shutting down webyast "
## Stop daemon with killproc(8) and if this fails
## killproc sets the return value according to LSB.
/sbin/killproc -TERM -p $PID_FILE $NGINX_BIN
# Remember status and be verbose
rc_status -v
;;
try-restart|condrestart)
## Do a restart only if the service was active before.
## Note: try-restart is now part of LSB (as of 1.9).
## RH has a similar command named condrestart.
if test "$1" = "condrestart"; then
echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
fi
$0 status
if test $? = 0; then
$0 restart
else
rc_reset # Not running is not a failure.
fi
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart the service if it
## is running.
echo -n "Reload service webyast "
## if it supports it:
/sbin/killproc -p $PID_FILE -HUP $NGINX_BIN
rc_status -v
## Otherwise:
#$0 try-restart
#rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signaling, do nothing (!)
# If it supports signaling:
echo -n "Reload service webyast "
/sbin/killproc -HUP -p $PID_FILE $NGINX_BIN
#touch /var/run/webyast.pid
rc_status -v
## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
status)
echo -n "Checking for service webyast "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Return value is slightly different for the status command:
# 0 - service up and running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running (unused)
# 4 - service status unknown :-(
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
# NOTE: checkproc returns LSB compliant status values.
/sbin/checkproc -p $PID_FILE $NGINX_BIN
# NOTE: rc_status knows that we called this init script with
# "status" option and adapts its messages accordingly.
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload, print out the
## argument to this init script which is required for a reload.
## Note: probe is not (yet) part of LSB (as of 1.9)
test $NGINX_CONFIG /var/run/webyast.pid && echo reload
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit
++++++ webyast ++++++
# SuSEfirewall2 service definition
## Name: WebYaST
## Description: The backend and frontend of WebYaST, http://en.opensuse.org/WebYaST
# space separated list of allowed TCP ports
TCP="4984"
++++++ webyast.lr.conf ++++++
/srv/www/webyast/log/production.log /srv/www/webyast/log/development.log /srv/www/webyast/log/access.log /srv/www/webyast/log/error.log /srv/www/webyast/log/permission_service.log /srv/www/webyast/log/passenger.log {
compress
dateext
maxage 365
rotate 99
size=+4096k
notifempty
missingok
create 600 webyast webyast
postrotate
/etc/init.d/webyast reload
endscript
}
++++++ webyast.permissions.conf ++++++
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
<allow own="webyast.permissions.service" />
<allow send_destination="webyast.permissions.service" />
</policy>
<!-- anyone can call service as it is protected by policyKit -->
<policy context="default">
<allow send_destination="webyast.permissions.service" />
</policy>
</busconfig>
++++++ webyast.permissions.service.service ++++++
# DBus service activation config
[D-BUS Service]
Name=webyast.permissions.service
Exec=/usr/sbin/webyastPermissionsService.rb
User=root
++++++ webyastPermissionsService.rb ++++++
#!/usr/bin/env ruby
#--
# Webyast framework
#
# Copyright (C) 2009, 2010 Novell, Inc.
# This library is free software; you can redistribute it and/or modify
# it only under the terms of version 2.1 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#++
require 'rubygems'
require 'dbus'
require 'etc'
require 'yaml'
#checking which policykit is used
WEBYAST_CONFIG_FILE = "/etc/webyast/config.yml"
polkit1_enabled = true
if File.exist?(WEBYAST_CONFIG_FILE)
values = YAML::load(File.open(WEBYAST_CONFIG_FILE, 'r').read)
polkit1_enabled = false if values["polkit1"] == false
end
if polkit1_enabled
require 'polkit1'
else
require 'polkit'
end
# Choose the bus (could also be DBus::session_bus, which is not suitable for a system service)
bus = DBus::system_bus
# Define the service name
service = bus.request_service("webyast.permissions.service")
class WebyastPermissionsService < DBus::Object
attr_accessor :polkit1
def initialize(polkit1_enabled, options={})
@polkit1 = polkit1_enabled
super options
end
# overriding DBus::Object#dispatch
# It is needed because dispatch sent just parameters and without sender it is
# imposible to check permissions of sender. So to avoid it add as last
# parameter sender id.
def dispatch(msg)
msg.params << msg.sender
super(msg)
end
def log(msg)
f = File.new("/srv/www/webyast/log/permission_service.log","a",0600)
f.write(msg+"\n")
f.close
end
# Create an interface.
dbus_interface "webyast.permissions.Interface" do
dbus_method :grant, "out result:as, in permissions:as, in user:s" do |permissions,user,sender|
result = execute(:grant, permissions, user,sender)
log "Grant permissions #{permissions.inspect} for user #{user} with result #{result.inspect} " +
(@polkit1 ? "(Polkit1)" : "(PolicyKit)")
[result]
end
dbus_method :revoke, "out result:as, in permissions:as, in user:s" do |permissions,user,sender|
result = execute(:revoke, permissions, user,sender)
log "Revoke permissions #{permissions.inspect} for user #{user} with result #{result.inspect} " +
(@polkit1 ? "(Polkit1)" : "(PolicyKit)")
[result]
end
dbus_method :check, "out result:as, in permissions:as, in user:s" do |permissions,user,sender|
result = execute(:check, permissions, user,sender)
log "check permissions #{permissions.inspect} for user #{user} with result #{result.inspect} " +
(@polkit1 ? "(Polkit1)" : "(PolicyKit)")
[result]
end
end
USER_REGEX=/\A[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-]*[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.$-]?\Z/
USER_WITH_DOMAIN_REGEX=/\A[a-zA-Z0-9][a-zA-Z0-9\-.]*\\[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-]*[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.$-]?\Z/
POLKIT_SECTION = "55-webyast.d"
def execute (command, permissions, user, sender)
#TODO polkit check, user escaping, perm whitespacing
return ["NOPERM"] unless check_polkit sender, command
return ["USER_INVALID"] if invalid_user_name? user
result = []
permissions.each do |p|
#whitespace check for valid permission string to avoid attack
unless p.match(/^[a-zA-Z][a-zA-Z0-9.-]*$/)
result << "permissions have a wrong format"
else
case command
when :grant then
begin
if @polkit1
PolKit1::polkit1_write(POLKIT_SECTION, p, true, user)
result << "true"
else
#whitespace check for valid permission string to avoid attack
if p.match(/^[a-zA-Z][a-zA-Z0-9.-]*$/)
result << `polkit-auth --user '#{user}' --grant '#{p}' 2>&1` # RORSCAN_ITL
else
result << "perm #{p} is INVALID" # XXX tom: better don't include invalif perms here, we do not know what the calling function is doing with it, like displaying it via the browser, passing it to the shell etc.
end
end
rescue Exception => e
result << e.message
end
when :revoke then
begin
if @polkit1
PolKit1::polkit1_write(POLKIT_SECTION, p, false, user)
result << "true"
else
#whitespace check for valid permission string to avoid attack
if p.match(/^[a-zA-Z][a-zA-Z0-9.-]*$/)
result << `polkit-auth --user '#{user}' --revoke '#{p}' 2>&1` # RORSCAN_ITL
else
result << "perm #{p} is INVALID" # XXX tom: better don't include invalif perms here, we do not know what the calling function is doing with it, like displaying it via the browser, passing it to the shell etc.
end
end
rescue Exception => e
result << e.message
end
when :check then
if @polkit1
if PolKit1::polkit1_check(p, user) == :yes
result << "yes"
else
result << "no"
end
else
uid = DBus::SystemBus.instance.proxy.GetConnectionUnixUser(sender)[0]
user = Etc.getpwuid(uid).name
if PolKit.polkit_check(p, user) == :yes
result << "yes"
else
result << "no"
end
end
else
end
end
end
return result
end
PERMISSION_WRITE="org.opensuse.yast.permissions.write"
PERMISSION_READ="org.opensuse.yast.permissions.read"
def check_polkit(sender, command)
uid = DBus::SystemBus.instance.proxy.GetConnectionUnixUser(sender)[0]
user = Etc.getpwuid(uid).name
begin
case command
when :grant then
if @polkit1
return PolKit1.polkit1_check(PERMISSION_WRITE, user) == :yes
else
return PolKit.polkit_check(PERMISSION_WRITE, user) == :yes
end
when :revoke then
if @polkit1
return PolKit1.polkit1_check(PERMISSION_WRITE, user) == :yes
else
return PolKit.polkit_check(PERMISSION_WRITE, user) == :yes
end
when :check then
if @polkit1
return PolKit1.polkit1_check(PERMISSION_READ, user) == :yes
else
return PolKit.polkit_check(PERMISSION_READ, user) == :yes
end
else
return false
end
rescue Exception => e
log "PolKit returns an error: #{e.inspect}"
return false
end
end
def invalid_user_name? user
active_directory_enabled = `/usr/sbin/pam-config -q --winbind 2>/dev/null | wc -w`.to_i > 0 # RORSCAN_ITL
return false if user.match(USER_REGEX)
return false if active_directory_enabled && user.match(USER_WITH_DOMAIN_REGEX)
return true
end
end
# Set the object path
obj = WebyastPermissionsService.new(polkit1_enabled, "/webyast/permissions/Interface")
# Export it!
service.export(obj)
# Now listen to incoming requests
main = DBus::Main.new
main << bus
main.run
++++++ yast_user_roles ++++++
#
# file : /etc/yast_user_roles
#
# This file describes roles of a user accounts for the WebYaST
# "user accounts": System account which is accessable e.g. via PAM.
# "roles" : Describes user accounts for which policies have
# been generated
#
# Format: <user> <role 1>,<role 2>,...<role n>
#--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package opera for openSUSE:12.1:Update checked in at 2012-09-06 09:44:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/opera (Old)
and /work/SRC/openSUSE:12.1:Update/.opera.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opera", Maintainer is "PRusnak(a)suse.com"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.DCWYxv/_old 2012-09-06 09:44:31.000000000 +0200
+++ /var/tmp/diff_new_pack.DCWYxv/_new 2012-09-06 09:44:31.000000000 +0200
@@ -1 +1 @@
-<link package='opera.749' cicount='copy' />
+<link package='opera.839' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package opera for openSUSE:11.4:Update checked in at 2012-09-06 09:44:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:11.4:Update/opera (Old)
and /work/SRC/openSUSE:11.4:Update/.opera.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opera", Maintainer is "PRusnak(a)suse.com"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.OgH5rR/_old 2012-09-06 09:44:25.000000000 +0200
+++ /var/tmp/diff_new_pack.OgH5rR/_new 2012-09-06 09:44:25.000000000 +0200
@@ -1 +1 @@
-<link package='opera.749' cicount='copy' />
+<link package='opera.839' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package icinga for openSUSE:12.2:Update checked in at 2012-09-06 09:43:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/icinga (Old)
and /work/SRC/openSUSE:12.2:Update/.icinga.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icinga", Maintainer is ""
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.eKc6nX/_old 2012-09-06 09:44:00.000000000 +0200
+++ /var/tmp/diff_new_pack.eKc6nX/_new 2012-09-06 09:44:00.000000000 +0200
@@ -1 +1 @@
-<link package='icinga.727' cicount='copy' />
+<link package='icinga.795' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yast2-network for openSUSE:Factory checked in at 2012-09-06 09:08:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-network (Old)
and /work/SRC/openSUSE:Factory/.yast2-network.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-network", Maintainer is "MFilka(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-network/yast2-network.changes 2012-08-23 15:32:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-network.new/yast2-network.changes 2012-09-06 09:08:30.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 27 14:08:26 UTC 2012 - mfilka(a)suse.com
+
+- bnc#752464 - leak wireless passwords
+- 2.24.4
+
+-------------------------------------------------------------------
Old:
----
yast2-network-2.24.3.tar.bz2
New:
----
yast2-network-2.24.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-network.spec ++++++
--- /var/tmp/diff_new_pack.PRdoXf/_old 2012-09-06 09:08:32.000000000 +0200
+++ /var/tmp/diff_new_pack.PRdoXf/_new 2012-09-06 09:08:32.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-network
-Version: 2.24.3
+Version: 2.24.4
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-network-2.24.3.tar.bz2 -> yast2-network-2.24.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-2.24.3/VERSION new/yast2-network-2.24.4/VERSION
--- old/yast2-network-2.24.3/VERSION 2012-08-20 14:59:34.000000000 +0200
+++ new/yast2-network-2.24.4/VERSION 2012-09-05 15:05:42.000000000 +0200
@@ -1 +1 @@
-2.24.3
+2.24.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-2.24.3/configure new/yast2-network-2.24.4/configure
--- old/yast2-network-2.24.3/configure 2012-07-23 10:39:21.000000000 +0200
+++ new/yast2-network-2.24.4/configure 2012-09-03 09:55:48.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for yast2-network 2.24.1.
+# Generated by GNU Autoconf 2.68 for yast2-network 2.13.142.
#
# Report bugs to <http://bugs.opensuse.org/>.
#
@@ -559,8 +559,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-network'
PACKAGE_TARNAME='yast2-network'
-PACKAGE_VERSION='2.24.1'
-PACKAGE_STRING='yast2-network 2.24.1'
+PACKAGE_VERSION='2.13.142'
+PACKAGE_STRING='yast2-network 2.13.142'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
PACKAGE_URL=''
@@ -1229,7 +1229,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-network 2.24.1 to adapt to many kinds of systems.
+\`configure' configures yast2-network 2.13.142 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1300,7 +1300,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-network 2.24.1:";;
+ short | recursive ) echo "Configuration of yast2-network 2.13.142:";;
esac
cat <<\_ACEOF
@@ -1380,7 +1380,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-network configure 2.24.1
+yast2-network configure 2.13.142
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1397,7 +1397,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-network $as_me 2.24.1, which was
+It was created by yast2-network $as_me 2.13.142, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2327,7 +2327,7 @@
# Define the identity of the package.
PACKAGE='yast2-network'
- VERSION='2.24.1'
+ VERSION='2.13.142'
cat >>confdefs.h <<_ACEOF
@@ -2449,9 +2449,9 @@
-VERSION="2.24.1"
+VERSION="2.13.142"
RPMNAME="yast2-network"
-MAINTAINER="Martin Vidner <mvidner(a)suse.cz>"
+MAINTAINER="Michal Zugec <mzugec(a)suse.cz>"
pkgconfigdir=\${libdir}/pkgconfig
pkgconfigdatadir=\${datadir}/pkgconfig
@@ -3379,7 +3379,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-network $as_me 2.24.1, which was
+This file was extended by yast2-network $as_me 2.13.142, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3432,7 +3432,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-network config.status 2.24.1
+yast2-network config.status 2.13.142
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-2.24.3/configure.in new/yast2-network-2.24.4/configure.in
--- old/yast2-network-2.24.3/configure.in 2012-07-23 10:39:18.000000000 +0200
+++ new/yast2-network-2.24.4/configure.in 2012-09-03 09:55:45.000000000 +0200
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.23.0 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-network, 2.24.1, http://bugs.opensuse.org/, yast2-network)
+AC_INIT(yast2-network, 2.13.142, http://bugs.opensuse.org/, yast2-network)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,9 +18,9 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="2.24.1"
+VERSION="2.13.142"
RPMNAME="yast2-network"
-MAINTAINER="Martin Vidner <mvidner(a)suse.cz>"
+MAINTAINER="Michal Zugec <mzugec(a)suse.cz>"
dnl pkgconfig honors lib64
pkgconfigdir=\${libdir}/pkgconfig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-2.24.3/src/modules/LanItems.ycp new/yast2-network-2.24.4/src/modules/LanItems.ycp
--- old/yast2-network-2.24.3/src/modules/LanItems.ycp 2012-08-20 14:59:34.000000000 +0200
+++ new/yast2-network-2.24.4/src/modules/LanItems.ycp 2012-09-05 15:05:43.000000000 +0200
@@ -1055,8 +1055,6 @@
"WIRELESS_KEY_3": "",
"WIRELESS_DEFAULT_KEY": "0",
"WIRELESS_NICK": "",
- "WIRELESS_WPA_IDENTITY": "",
- "WIRELESS_WPA_PASSWORD": "",
"WIRELESS_CLIENT_CERT": "",
"WIRELESS_CA_CERT": "",
"WIRELESS_CHANNEL": "",
@@ -1161,153 +1159,157 @@
*/
global define boolean Commit() {
if(operation == `add || operation == `edit) {
- map<string,any> newdev = $[];
+ map<string,any> newdev = $[];
- // #104494 - always write IPADDR+NETMASK, even empty
- newdev["IPADDR"] = ipaddr;
- if(size(prefix)>0) newdev["PREFIXLEN"] = prefix;
- else newdev["NETMASK"] = netmask;
- // #50955 omit computable fields
- newdev["BROADCAST"] = "";
- newdev["NETWORK"] = "";
-
- newdev["REMOTE_IPADDR"] = remoteip;
- if (qeth_layer2) newdev["LLADDR"] = qeth_macaddress;
-
- if(alias == "") {
- newdev["MTU"] = mtu;
- newdev["ETHTOOL_OPTIONS"] = ethtool_options;
- newdev["STARTMODE"] = startmode;
- // it is not in Select yet because we don't have a widget for it
- if (startmode == "ifplugd")
- {
-/*
- string prio = ifplugd_priorities[type]:"";
- newdev["IFPLUGD_PRIORITY"] = prio;
-*/
- if (ifplugd_priority!=nil)
- newdev["IFPLUGD_PRIORITY"] = ifplugd_priority;
- else
- newdev["IFPLUGD_PRIORITY"] = ifplugd_priorities[type]:"0";
- } // else if (haskey(newdev, "IFPLUGD_PRIORITY"))newdev = remove(newdev, "IFPLUGD_PRIORITY");
- newdev["USERCONTROL"] = usercontrol? "yes": "no";
- newdev["BOOTPROTO"] = bootproto;
- }
- newdev["NAME"] = description;
+ // #104494 - always write IPADDR+NETMASK, even empty
+ newdev["IPADDR"] = ipaddr;
+ if(size(prefix)>0) newdev["PREFIXLEN"] = prefix;
+ else newdev["NETMASK"] = netmask;
+ // #50955 omit computable fields
+ newdev["BROADCAST"] = "";
+ newdev["NETWORK"] = "";
+
+ newdev["REMOTE_IPADDR"] = remoteip;
+ if (qeth_layer2) newdev["LLADDR"] = qeth_macaddress;
+
+ if(alias == "") {
+ newdev["MTU"] = mtu;
+ newdev["ETHTOOL_OPTIONS"] = ethtool_options;
+ newdev["STARTMODE"] = startmode;
+ // it is not in Select yet because we don't have a widget for it
+ if (startmode == "ifplugd")
+ {
+ /*
+ string prio = ifplugd_priorities[type]:"";
+ newdev["IFPLUGD_PRIORITY"] = prio;
+ */
+ if (ifplugd_priority!=nil)
+ newdev["IFPLUGD_PRIORITY"] = ifplugd_priority;
+ else
+ newdev["IFPLUGD_PRIORITY"] = ifplugd_priorities[type]:"0";
+ } // else if (haskey(newdev, "IFPLUGD_PRIORITY"))newdev = remove(newdev, "IFPLUGD_PRIORITY");
+ newdev["USERCONTROL"] = usercontrol? "yes": "no";
+ newdev["BOOTPROTO"] = bootproto;
+ }
+ newdev["NAME"] = description;
- if(hotplug == "pcmcia") newdev["DHCLIENT_SET_DOWN_LINK"] = "yes";
+ if(hotplug == "pcmcia") newdev["DHCLIENT_SET_DOWN_LINK"] = "yes";
- if (type == "bond")
- {
+ if (type == "bond")
+ {
integer i = 0;
foreach (string slave, bond_slaves,
- {
- newdev[sformat("BONDING_SLAVE%1", i)] = slave;
- i = i + 1;
- });
+ {
+ newdev[sformat("BONDING_SLAVE%1", i)] = slave;
+ i = i + 1;
+ });
//assign nil to rest BONDING_SLAVEn to remove them
while (i < MAX_BOND_SLAVE)
{
- newdev[sformat("BONDING_SLAVE%1", i)] = nil;
- i = i + 1;
+ newdev[sformat("BONDING_SLAVE%1", i)] = nil;
+ i = i + 1;
};
newdev["BONDING_MODULE_OPTS"] = bond_option;
//BONDING_MASTER always is yes
newdev["BONDING_MASTER"] = "yes";
- }
-
- if (type=="vlan"){
- newdev["ETHERDEVICE"]=vlan_etherdevice;
- newdev["VLAN_ID"]=vlan_id;
- }
- if (type=="br"){
- newdev["BRIDGE_PORTS"]=bridge_ports;
- newdev["BRIDGE"]="yes";
- newdev["BRIDGE_STP"]="off";
- newdev["BRIDGE_FORWARDDELAY"]="0";
- }
+ }
- if(type == "wlan") {
- newdev["WIRELESS_MODE"] = wl_mode;
- newdev["WIRELESS_ESSID"] = wl_essid;
- newdev["WIRELESS_NWID"] = wl_nwid;
- newdev["WIRELESS_AUTH_MODE"] = wl_auth_mode;
- newdev["WIRELESS_WPA_PSK"] = wl_wpa_psk;
- newdev["WIRELESS_KEY_LENGTH"] = wl_key_length;
- // obsoleted by WIRELESS_KEY_0
- newdev["WIRELESS_KEY"] = ""; // TODO: delete the varlable
- newdev["WIRELESS_KEY_0"] = wl_key[0]:"";
- newdev["WIRELESS_KEY_1"] = wl_key[1]:"";
- newdev["WIRELESS_KEY_2"] = wl_key[2]:"";
- newdev["WIRELESS_KEY_3"] = wl_key[3]:"";
- newdev["WIRELESS_DEFAULT_KEY"] = tostring (wl_default_key);
- newdev["WIRELESS_NICK"] = wl_nick;
- newdev["WIRELESS_AP_SCANMODE"] = wl_ap_scanmode;
+ if (type=="vlan"){
+ newdev["ETHERDEVICE"]=vlan_etherdevice;
+ newdev["VLAN_ID"]=vlan_id;
+ }
+ if (type=="br"){
+ newdev["BRIDGE_PORTS"]=bridge_ports;
+ newdev["BRIDGE"]="yes";
+ newdev["BRIDGE_STP"]="off";
+ newdev["BRIDGE_FORWARDDELAY"]="0";
+ }
+
+ if(type == "wlan") {
+ newdev["WIRELESS_MODE"] = wl_mode;
+ newdev["WIRELESS_ESSID"] = wl_essid;
+ newdev["WIRELESS_NWID"] = wl_nwid;
+ newdev["WIRELESS_AUTH_MODE"] = wl_auth_mode;
+ newdev["WIRELESS_WPA_PSK"] = wl_wpa_psk;
+ newdev["WIRELESS_KEY_LENGTH"] = wl_key_length;
+ // obsoleted by WIRELESS_KEY_0
+ newdev["WIRELESS_KEY"] = ""; // TODO: delete the varlable
+ newdev["WIRELESS_KEY_0"] = wl_key[0]:"";
+ newdev["WIRELESS_KEY_1"] = wl_key[1]:"";
+ newdev["WIRELESS_KEY_2"] = wl_key[2]:"";
+ newdev["WIRELESS_KEY_3"] = wl_key[3]:"";
+ newdev["WIRELESS_DEFAULT_KEY"] = tostring (wl_default_key);
+ newdev["WIRELESS_NICK"] = wl_nick;
+ newdev["WIRELESS_AP_SCANMODE"] = wl_ap_scanmode;
- if (wl_wpa_eap != $[])
- {
- newdev["WIRELESS_EAP_MODE"] = wl_wpa_eap["WPA_EAP_MODE"]:"";
- newdev["WIRELESS_WPA_IDENTITY"] = wl_wpa_eap["WPA_EAP_IDENTITY"]:"";
- newdev["WIRELESS_WPA_PASSWORD"] = wl_wpa_eap["WPA_EAP_PASSWORD"]:"";
- newdev["WIRELESS_WPA_ANONID"] = wl_wpa_eap["WPA_EAP_ANONID"]:"";
- newdev["WIRELESS_CLIENT_CERT"] = wl_wpa_eap["WPA_EAP_CLIENT_CERT"]:"";
- newdev["WIRELESS_CLIENT_KEY"] = wl_wpa_eap["WPA_EAP_CLIENT_KEY"]:"";
- newdev["WIRELESS_CLIENT_KEY_PASSWORD"] = wl_wpa_eap["WPA_EAP_CLIENT_KEY_PASSWORD"]:"";
- newdev["WIRELESS_CA_CERT"] = wl_wpa_eap["WPA_EAP_CA_CERT"]:"";
- newdev["WIRELESS_EAP_AUTH"] = wl_wpa_eap["WPA_EAP_AUTH"]:"";
- newdev["WIRELESS_PEAP_VERSION"] = wl_wpa_eap["WPA_EAP_PEAP_VERSION"]:"";
- }
-
- newdev["WIRELESS_CHANNEL"] = wl_channel;
- newdev["WIRELESS_FREQUENCY"] = wl_frequency;
- newdev["WIRELESS_BITRATE"] = wl_bitrate;
- newdev["WIRELESS_AP"] = wl_accesspoint;
- newdev["WIRELESS_POWER"] = wl_power ? "yes" : "no";
- }
-
- if(DriverType (type) == "ctc")
- if(NetworkConfig::Config["WAIT_FOR_INTERFACES"]:nil == nil || NetworkConfig::Config["WAIT_FOR_INTERFACES"]:0 < 40)
- NetworkConfig::Config["WAIT_FOR_INTERFACES"] = 40;
-
- if(alias == "") {
- newdev["_aliases"] = aliases;
- y2milestone("aliases %1", aliases);
- }
- if (contains(["tun", "tap"], type)){
- newdev=$[
- "BOOTPROTO" : "static",
- "STARTMODE" : "auto",
- "TUNNEL" : type,
- "TUNNEL_SET_PERSISTENT" : tunnel_set_persistent ? "yes" : "no",
- "TUNNEL_SET_OWNER" : tunnel_set_owner,
- "TUNNEL_SET_GROUP" : tunnel_set_group
- ];
- }
-
- // L3: bnc#585458
- // FIXME: INTERFACETYPE confuses sysconfig, bnc#458412
- // Only test when newdev has enough info for GetTypeFromIfcfg to work.
+ if (wl_wpa_eap != $[])
+ {
+ newdev["WIRELESS_EAP_MODE"] = wl_wpa_eap["WPA_EAP_MODE"]:"";
+ newdev["WIRELESS_WPA_IDENTITY"] = wl_wpa_eap["WPA_EAP_IDENTITY"]:"";
+ newdev["WIRELESS_WPA_PASSWORD"] = wl_wpa_eap["WPA_EAP_PASSWORD"]:"";
+ newdev["WIRELESS_WPA_ANONID"] = wl_wpa_eap["WPA_EAP_ANONID"]:"";
+ newdev["WIRELESS_CLIENT_CERT"] = wl_wpa_eap["WPA_EAP_CLIENT_CERT"]:"";
+ newdev["WIRELESS_CLIENT_KEY"] = wl_wpa_eap["WPA_EAP_CLIENT_KEY"]:"";
+ newdev["WIRELESS_CLIENT_KEY_PASSWORD"] = wl_wpa_eap["WPA_EAP_CLIENT_KEY_PASSWORD"]:"";
+ newdev["WIRELESS_CA_CERT"] = wl_wpa_eap["WPA_EAP_CA_CERT"]:"";
+ newdev["WIRELESS_EAP_AUTH"] = wl_wpa_eap["WPA_EAP_AUTH"]:"";
+ newdev["WIRELESS_PEAP_VERSION"] = wl_wpa_eap["WPA_EAP_PEAP_VERSION"]:"";
+ }
+
+ newdev["WIRELESS_CHANNEL"] = wl_channel;
+ newdev["WIRELESS_FREQUENCY"] = wl_frequency;
+ newdev["WIRELESS_BITRATE"] = wl_bitrate;
+ newdev["WIRELESS_AP"] = wl_accesspoint;
+ newdev["WIRELESS_POWER"] = wl_power ? "yes" : "no";
+ }
+
+ if(DriverType (type) == "ctc")
+ if(NetworkConfig::Config["WAIT_FOR_INTERFACES"]:nil == nil || NetworkConfig::Config["WAIT_FOR_INTERFACES"]:0 < 40)
+ NetworkConfig::Config["WAIT_FOR_INTERFACES"] = 40;
+
+ if(alias == "") {
+ newdev["_aliases"] = aliases;
+ y2milestone("aliases %1", aliases);
+ }
+ if (contains(["tun", "tap"], type)){
+ newdev=$[
+ "BOOTPROTO" : "static",
+ "STARTMODE" : "auto",
+ "TUNNEL" : type,
+ "TUNNEL_SET_PERSISTENT" : tunnel_set_persistent ? "yes" : "no",
+ "TUNNEL_SET_OWNER" : tunnel_set_owner,
+ "TUNNEL_SET_GROUP" : tunnel_set_group
+ ];
+ }
+
+ // L3: bnc#585458
+ // FIXME: INTERFACETYPE confuses sysconfig, bnc#458412
+ // Only test when newdev has enough info for GetTypeFromIfcfg to work.
string implied_type = NetworkInterfaces::GetTypeFromIfcfg(newdev);
if (implied_type != nil && implied_type != type) {
- newdev["INTERFACETYPE"]=type;
- }
+ newdev["INTERFACETYPE"]=type;
+ }
- NetworkInterfaces::Name = Items[current, "ifcfg"]:"";
- NetworkInterfaces::Current = newdev;
-y2internal("%1", newdev);
- if (!NetworkInterfaces::Commit()) Items[current, "ifcfg"]="";
+ NetworkInterfaces::Name = Items[current, "ifcfg"]:"";
+ NetworkInterfaces::Current = newdev;
+
+ // bnc#752464 - can leak wireless passwords
+ // useful only for debugging. Writes huge struct mostly filled by defaults.
+ y2debug("%1", NetworkInterfaces::ConcealSecrets1( newdev) );
+
+ if (!NetworkInterfaces::Commit()) Items[current, "ifcfg"]="";
}
else {
- y2error("Unknown operation: %1", operation);
- return false;
+ y2error("Unknown operation: %1", operation);
+ return false;
}
- modified = true;
- operation = nil;
- return true;
+ modified = true;
+ operation = nil;
+ return true;
}
global boolean Rollback(){
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package tftp for openSUSE:Factory checked in at 2012-09-06 09:06:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tftp (Old)
and /work/SRC/openSUSE:Factory/.tftp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tftp", Maintainer is "VCizek(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tftp/tftp.changes 2011-12-26 16:29:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.tftp.new/tftp.changes 2012-09-06 09:06:51.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 4 13:09:09 UTC 2012 - vcizek(a)suse.com
+
+- update to 5.2
+ - fixes a breakage with recent Linux kernel versions when a
+ single interface has multiple IP addresses (bnc#774861)
+
+-------------------------------------------------------------------
Old:
----
tftp-hpa-5.1.tar.bz2
New:
----
tftp-hpa-5.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tftp.spec ++++++
--- /var/tmp/diff_new_pack.6TPHtQ/_old 2012-09-06 09:06:52.000000000 +0200
+++ /var/tmp/diff_new_pack.6TPHtQ/_new 2012-09-06 09:06:52.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package tftp
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,10 +15,11 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
Name: tftp
-Version: 5.1
+Version: 5.2
Release: 0
Summary: Trivial File Transfer Protocol (TFTP)
License: BSD-3-Clause
++++++ tftp-hpa-5.1.tar.bz2 -> tftp-hpa-5.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tftp-hpa-5.1/CHANGES new/tftp-hpa-5.2/CHANGES
--- old/tftp-hpa-5.1/CHANGES 2011-06-23 01:32:56.000000000 +0200
+++ new/tftp-hpa-5.2/CHANGES 2011-12-11 23:13:52.000000000 +0100
@@ -1,3 +1,8 @@
+Changes in 5.2:
+ Fix breakage on newer Linux when a single interface has
+ multiple IP addresses.
+
+
Changes in 5.1:
Add -P option to write a PID file. Patch by Ferenc Wagner.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tftp-hpa-5.1/tftp.spec new/tftp-hpa-5.2/tftp.spec
--- old/tftp-hpa-5.1/tftp.spec 2011-06-23 01:33:28.000000000 +0200
+++ new/tftp-hpa-5.2/tftp.spec 2011-12-11 23:13:53.000000000 +0100
@@ -1,6 +1,6 @@
Summary: The client for the Trivial File Transfer Protocol (TFTP).
Name: tftp
-Version: 5.1
+Version: 5.2
Release: 1
License: BSD
Group: Applications/Internet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tftp-hpa-5.1/tftpd/recvfrom.c new/tftp-hpa-5.2/tftpd/recvfrom.c
--- old/tftp-hpa-5.1/tftpd/recvfrom.c 2011-06-23 01:32:56.000000000 +0200
+++ new/tftp-hpa-5.2/tftpd/recvfrom.c 2011-12-11 23:13:52.000000000 +0100
@@ -51,52 +51,59 @@
#endif
/*
- * Check to see if this is a valid local address. If so, we should
- * end up having the same local and remote address when trying to
- * bind to it.
+ * Check to see if this is a valid local address, meaning that we can
+ * legally bind to it.
*/
static int address_is_local(const union sock_addr *addr)
{
- union sock_addr sa;
+ union sock_addr sa1, sa2;
int sockfd = -1;
int e;
int rv = 0;
socklen_t addrlen;
+ memcpy(&sa1, addr, sizeof sa1);
+
/* Multicast or universal broadcast address? */
- if (addr->sa.sa_family == AF_INET) {
- if (ntohl(addr->si.sin_addr.s_addr) >= (224UL << 24))
+ if (sa1.sa.sa_family == AF_INET) {
+ if (ntohl(sa1.si.sin_addr.s_addr) >= (224UL << 24))
return 0;
+ sa1.si.sin_port = 0; /* Any port */
}
#ifdef HAVE_IPV6
- else if (addr->sa.sa_family == AF_INET6) {
- if (IN6_IS_ADDR_MULTICAST(&addr->s6.sin6_addr))
+ else if (sa1.sa.sa_family == AF_INET6) {
+ if (IN6_IS_ADDR_MULTICAST(&sa1.s6.sin6_addr))
return 0;
+ sa1.s6.sin6_port = 0; /* Any port */
}
#endif
else
return 0;
- sockfd = socket(addr->sa.sa_family, SOCK_DGRAM, 0);
+ sockfd = socket(sa1.sa.sa_family, SOCK_DGRAM, 0);
if (sockfd < 0)
goto err;
- if (connect(sockfd, &addr->sa, SOCKLEN(addr)))
+ if (bind(sockfd, &sa1.sa, SOCKLEN(&sa1)))
goto err;
addrlen = SOCKLEN(addr);
- if (getsockname(sockfd, (struct sockaddr *)&sa, &addrlen))
+ if (getsockname(sockfd, (struct sockaddr *)&sa2, &addrlen))
goto err;
- if (addr->sa.sa_family == AF_INET)
- rv = sa.si.sin_addr.s_addr == addr->si.sin_addr.s_addr;
+ if (sa1.sa.sa_family != sa2.sa.sa_family)
+ goto err;
+
+ if (sa2.sa.sa_family == AF_INET)
+ rv = sa1.si.sin_addr.s_addr == sa2.si.sin_addr.s_addr;
#ifdef HAVE_IPV6
- else if (addr->sa.sa_family == AF_INET6)
- rv = IN6_ARE_ADDR_EQUAL(&sa.s6.sin6_addr, &addr->s6.sin6_addr);
+ else if (sa2.sa.sa_family == AF_INET6)
+ rv = IN6_ARE_ADDR_EQUAL(&sa1.s6.sin6_addr, &sa2.s6.sin6_addr);
#endif
else
rv = 0;
- err:
+
+err:
e = errno;
if (sockfd >= 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tftp-hpa-5.1/version new/tftp-hpa-5.2/version
--- old/tftp-hpa-5.1/version 2011-06-23 01:32:56.000000000 +0200
+++ new/tftp-hpa-5.2/version 2011-12-11 23:13:52.000000000 +0100
@@ -1 +1 @@
-5.1
+5.2
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rubygem-file-tail for openSUSE:Factory checked in at 2012-09-06 09:05:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-file-tail (Old)
and /work/SRC/openSUSE:Factory/.rubygem-file-tail.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-file-tail", Maintainer is "jsrain(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-file-tail/rubygem-file-tail.changes 2012-02-16 10:09:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-file-tail.new/rubygem-file-tail.changes 2012-09-06 09:05:56.000000000 +0200
@@ -1,0 +2,11 @@
+Thu Aug 30 05:41:43 UTC 2012 - coolo(a)suse.com
+
+- updated to version 1.0.11
+ * Use rewind to force IO#lineno to be reset.
+ * Reopen file in :top mode at the beginning.
+ * Support simplecov.
+ * Use gem_hadar to shorten Rakefile.
+ * Create a gem spec file again.
+ * Added a File::Tail::Group to tail multiple files more easily.
+
+-------------------------------------------------------------------
Old:
----
file-tail-1.0.5.gem
New:
----
file-tail-1.0.11.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-file-tail.spec ++++++
--- /var/tmp/diff_new_pack.tBHgA5/_old 2012-09-06 09:05:58.000000000 +0200
+++ /var/tmp/diff_new_pack.tBHgA5/_new 2012-09-06 09:05:58.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package rubygem-file-tail (Version 1.0.5)
+# spec file for package rubygem-file-tail
#
-# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,42 +15,52 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
+
Name: rubygem-file-tail
-Version: 1.0.5
+Version: 1.0.11
Release: 0
%define mod_name file-tail
-#
-Group: Development/Languages/Ruby
-License: GPL-2.0+ or Ruby
-#
+%define mod_full_name %{mod_name}-%{version}
+
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: rubygems_with_buildroot_patch
-%rubygems_requires
-BuildRequires: rubygem-spruz >= 0.1.0
-Requires: rubygem-spruz >= 0.1.0
-#
-Url: http://flori.github.com/file-tail
-Source: %{mod_name}-%{version}.gem
-#
+BuildRequires: ruby-macros >= 1
+BuildRequires: rubygem(rdoc) > 3.10
+Url: http://github.com/flori/file-tail
+Source: %{mod_full_name}.gem
Summary: File::Tail for Ruby
+License: GPL-2.0
+Group: Development/Languages/Ruby
+
%description
Library to tail files in Ruby
+%package doc
+Summary: RDoc documentation for %{mod_name}
+Group: Development/Languages/Ruby
+Requires: %{name} = %{version}
+
+%description doc
+Documentation generated at gem installation time.
+Usually in RDoc and RI formats.
+
%prep
+#gem_unpack
+#if you need patches, apply them here and replace the # with a % sign in the surrounding lines
+#gem_build
+
%build
-%install
-%gem_install %{S:0}
-%clean
-%{__rm} -rf %{buildroot}
+%install
+%gem_install -f
%files
%defattr(-,root,root,-)
-%{_bindir}/rtail
-%{_libdir}/ruby/gems/%{rb_ver}/cache/%{mod_name}-%{version}.gem
-%{_libdir}/ruby/gems/%{rb_ver}/gems/%{mod_name}-%{version}/
-%{_libdir}/ruby/gems/%{rb_ver}/specifications/%{mod_name}-%{version}.gemspec
-%doc %{_libdir}/ruby/gems/%{rb_ver}/doc/%{mod_name}-%{version}/
+%{_libdir}/ruby/gems/%{rb_ver}/cache/%{mod_full_name}.gem
+%{_libdir}/ruby/gems/%{rb_ver}/gems/%{mod_full_name}/
+%{_libdir}/ruby/gems/%{rb_ver}/specifications/%{mod_full_name}.gemspec
+
+%files doc
+%defattr(-,root,root,-)
+%doc %{_libdir}/ruby/gems/%{rb_ver}/doc/%{mod_full_name}/
%changelog
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-xlib for openSUSE:Factory checked in at 2012-09-06 09:04:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-xlib (Old)
and /work/SRC/openSUSE:Factory/.python-xlib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-xlib", Maintainer is "gnome-maintainers(a)suse.de"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-xlib/python-xlib.changes 2011-09-23 12:43:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-xlib.new/python-xlib.changes 2012-09-06 09:04:42.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Sep 3 00:50:45 UTC 2012 - jengelh(a)inai.de
+
+- Remove redundant (%clean, Authors) sections
+- Make package compile on RH6-like as well
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-xlib.spec ++++++
--- /var/tmp/diff_new_pack.zELjyb/_old 2012-09-06 09:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zELjyb/_new 2012-09-06 09:04:43.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package python-xlib (Version 0.14)
+# spec file for package python-xlib
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,17 +15,13 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: python-xlib
-BuildRequires: python-devel
-License: GPL-2.0+
-Group: Development/Libraries/Python
-AutoReqProv: on
Version: 0.14
-Release: 92
+Release: 0
Summary: Python X11 interface
+License: GPL-2.0+
+Group: Development/Libraries/Python
Url: http://python-xlib.sourceforge.net/
Source: python-xlib-%{version}.tar.bz2
# PATCH-FIX-UPSTREAM python-xlib-0.14-fix-unix-socket-in-display.patch deb#324443
@@ -35,8 +31,12 @@
# PATCH-FIX-OPENSUSE python-xlib-0.14-xauthlocalhostname.patch bnc#623507
Patch2: python-xlib-0.14-xauthlocalhostname.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%{py_requires}
-%if %{?suse_version: %{suse_version} > 1110} %{!?suse_version:1}
+BuildRequires: python-devel
+%if 0%{?py_requires}
+%py_requires
+%endif
+%if 0%{!?sles_version} || 0%{?sles_version} >= 12
+# SLE11 has weird location for python_sitearch
BuildArch: noarch
%endif
@@ -44,13 +44,6 @@
The Python X Library is intended to be a fully functional X client
library for Python programs.
-
-
-Authors:
---------
- Mike Grant <mggrant at users.sourceforge.net>
- Peter Liljenberg <petli at users.sourceforge.net>
-
%prep
%setup
%patch0 -p1
@@ -58,17 +51,16 @@
%patch2 -p1
%build
-export CFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS="%optflags"
python setup.py build
%install
-python setup.py install --prefix=%{_prefix} --root=$RPM_BUILD_ROOT --record-rpm=INSTALLED_FILES
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+python setup.py install --prefix="%_prefix" --root="%buildroot"
-%files -f INSTALLED_FILES
+%files
%defattr(-,root,root)
%doc README NEWS TODO COPYING
+%python_sitelib/Xlib
+%python_sitelib/python_xlib-*py*.egg-info
%changelog
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-simplejson for openSUSE:Factory checked in at 2012-09-06 09:03:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-simplejson (Old)
and /work/SRC/openSUSE:Factory/.python-simplejson.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-simplejson", Maintainer is "kkaempf(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-simplejson/python-simplejson.changes 2012-05-29 11:44:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-simplejson.new/python-simplejson.changes 2012-09-06 09:03:17.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Sep 3 18:42:31 UTC 2012 - os-dev(a)jacraig.com
+
+- Update to 2.6.1:
+ * raw_decode() now skips whitespace before the object
+- Changes from 2.6.0:
+ * Error messages changed to match proposal for Python 3.3.1
+
+-------------------------------------------------------------------
Old:
----
simplejson-2.5.2.tar.gz
New:
----
simplejson-2.6.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-simplejson.spec ++++++
--- /var/tmp/diff_new_pack.kZm10a/_old 2012-09-06 09:03:19.000000000 +0200
+++ /var/tmp/diff_new_pack.kZm10a/_new 2012-09-06 09:03:19.000000000 +0200
@@ -15,9 +15,10 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%define modname simplejson
Name: python-%{modname}
-Version: 2.5.2
+Version: 2.6.1
Release: 0
Url: http://github.com/simplejson/simplejson
Summary: Simple, fast, extensible JSON encoder/decoder for Python
++++++ simplejson-2.5.2.tar.gz -> simplejson-2.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/CHANGES.txt new/simplejson-2.6.1/CHANGES.txt
--- old/simplejson-2.5.2/CHANGES.txt 2012-05-11 00:12:34.000000000 +0200
+++ new/simplejson-2.6.1/CHANGES.txt 2012-07-28 06:59:14.000000000 +0200
@@ -1,3 +1,13 @@
+Version 2.6.1 released 2012-07-27
+
+* raw_decode() now skips whitespace before the object
+ https://github.com/simplejson/simplejson/pull/38
+
+Version 2.6.0 released 2012-06-26
+
+* Error messages changed to match proposal for Python 3.3.1
+ http://bugs.python.org/issue5067
+
Version 2.5.2 released 2012-05-10
* Fix for regression introduced in 2.5.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/PKG-INFO new/simplejson-2.6.1/PKG-INFO
--- old/simplejson-2.5.2/PKG-INFO 2012-05-11 00:12:41.000000000 +0200
+++ new/simplejson-2.6.1/PKG-INFO 2012-07-28 07:01:49.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: simplejson
-Version: 2.5.2
+Version: 2.6.1
Summary: Simple, fast, extensible JSON encoder/decoder for Python
Home-page: http://github.com/simplejson/simplejson
Author: Bob Ippolito
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/conf.py new/simplejson-2.6.1/conf.py
--- old/simplejson-2.5.2/conf.py 2012-05-11 00:12:34.000000000 +0200
+++ new/simplejson-2.6.1/conf.py 2012-07-28 06:55:50.000000000 +0200
@@ -36,15 +36,15 @@
# General substitutions.
project = 'simplejson'
-copyright = '2011, Bob Ippolito'
+copyright = '2012, Bob Ippolito'
# The default replacements for |version| and |release|, also used in various
# other places throughout the built documents.
#
# The short X.Y version.
-version = '2.5'
+version = '2.6'
# The full version, including alpha/beta/rc tags.
-release = '2.5.2'
+release = '2.6.1'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/index.rst new/simplejson-2.6.1/index.rst
--- old/simplejson-2.5.2/index.rst 2012-03-29 21:02:31.000000000 +0200
+++ new/simplejson-2.6.1/index.rst 2012-07-28 06:58:11.000000000 +0200
@@ -41,7 +41,7 @@
Compact encoding::
>>> import simplejson as json
- >>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
+ >>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',', ':'))
'[1,2,3,{"4":5,"6":7}]'
Pretty printing::
@@ -116,7 +116,7 @@
"json": "obj"
}
$ echo '{ 1.2:3.4}' | python -m simplejson.tool
- Expecting property name: line 1 column 2 (char 2)
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 2)
.. highlight:: python
@@ -418,14 +418,16 @@
:exc:`JSONDecodeError` will be raised if the given JSON
document is not valid.
- .. method:: raw_decode(s)
+ .. method:: raw_decode(s[, idx=0])
Decode a JSON document from *s* (a :class:`str` or :class:`unicode`
- beginning with a JSON document) and return a 2-tuple of the Python
- representation and the index in *s* where the document ended.
+ beginning with a JSON document) starting from the index *idx* and return
+ a 2-tuple of the Python representation and the index in *s* where the
+ document ended.
This can be used to decode a JSON document from a string that may have
- extraneous data at the end.
+ extraneous data at the end, or to decode a string that has a series of
+ JSON objects.
:exc:`JSONDecodeError` will be raised if the given JSON
document is not valid.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/setup.py new/simplejson-2.6.1/setup.py
--- old/simplejson-2.5.2/setup.py 2012-05-11 00:12:34.000000000 +0200
+++ new/simplejson-2.6.1/setup.py 2012-07-28 06:55:46.000000000 +0200
@@ -7,7 +7,7 @@
DistutilsPlatformError
IS_PYPY = hasattr(sys, 'pypy_translation_info')
-VERSION = '2.5.2'
+VERSION = '2.6.1'
DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python"
LONG_DESCRIPTION = open('README.rst', 'r').read()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/simplejson/__init__.py new/simplejson-2.6.1/simplejson/__init__.py
--- old/simplejson-2.5.2/simplejson/__init__.py 2012-05-11 00:12:34.000000000 +0200
+++ new/simplejson-2.6.1/simplejson/__init__.py 2012-07-28 06:55:40.000000000 +0200
@@ -97,7 +97,7 @@
$ echo '{ 1.2:3.4}' | python -m simplejson.tool
Expecting property name: line 1 column 2 (char 2)
"""
-__version__ = '2.5.2'
+__version__ = '2.6.1'
__all__ = [
'dump', 'dumps', 'load', 'loads',
'JSONDecoder', 'JSONDecodeError', 'JSONEncoder',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/simplejson/_speedups.c new/simplejson-2.6.1/simplejson/_speedups.c
--- old/simplejson-2.5.2/simplejson/_speedups.c 2012-05-11 00:12:34.000000000 +0200
+++ new/simplejson-2.6.1/simplejson/_speedups.c 2012-06-26 05:28:53.000000000 +0200
@@ -1058,7 +1058,9 @@
/* read key */
if (str[idx] != '"') {
- raise_errmsg("Expecting property name", pystr, idx);
+ raise_errmsg(
+ "Expecting property name enclosed in double quotes",
+ pystr, idx);
goto bail;
}
key = scanstring_str(pystr, idx + 1, encoding, strict, &next_idx);
@@ -1079,7 +1081,7 @@
/* skip whitespace between key and : delimiter, read :, skip whitespace */
while (idx <= end_idx && IS_WHITESPACE(str[idx])) idx++;
if (idx > end_idx || str[idx] != ':') {
- raise_errmsg("Expecting : delimiter", pystr, idx);
+ raise_errmsg("Expecting ':' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -1119,7 +1121,7 @@
break;
}
else if (str[idx] != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -1204,7 +1206,9 @@
/* read key */
if (str[idx] != '"') {
- raise_errmsg("Expecting property name", pystr, idx);
+ raise_errmsg(
+ "Expecting property name enclosed in double quotes",
+ pystr, idx);
goto bail;
}
key = scanstring_unicode(pystr, idx + 1, strict, &next_idx);
@@ -1222,10 +1226,11 @@
}
idx = next_idx;
- /* skip whitespace between key and : delimiter, read :, skip whitespace */
+ /* skip whitespace between key and : delimiter, read :, skip
+ whitespace */
while (idx <= end_idx && IS_WHITESPACE(str[idx])) idx++;
if (idx > end_idx || str[idx] != ':') {
- raise_errmsg("Expecting : delimiter", pystr, idx);
+ raise_errmsg("Expecting ':' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -1259,13 +1264,14 @@
/* skip whitespace before } or , */
while (idx <= end_idx && IS_WHITESPACE(str[idx])) idx++;
- /* bail if the object is closed or we didn't get the , delimiter */
+ /* bail if the object is closed or we didn't get the ,
+ delimiter */
if (idx > end_idx) break;
if (str[idx] == '}') {
break;
}
else if (str[idx] != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -1359,7 +1365,7 @@
break;
}
else if (str[idx] != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -1431,7 +1437,7 @@
break;
}
else if (str[idx] != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/simplejson/decoder.py new/simplejson-2.6.1/simplejson/decoder.py
--- old/simplejson-2.5.2/simplejson/decoder.py 2011-09-29 21:25:07.000000000 +0200
+++ new/simplejson-2.6.1/simplejson/decoder.py 2012-07-28 06:54:07.000000000 +0200
@@ -203,7 +203,9 @@
pairs = object_hook(pairs)
return pairs, end + 1
elif nextchar != '"':
- raise JSONDecodeError("Expecting property name", s, end)
+ raise JSONDecodeError(
+ "Expecting property name enclosed in double quotes",
+ s, end)
end += 1
while True:
key, end = scanstring(s, end, encoding, strict)
@@ -214,7 +216,7 @@
if s[end:end + 1] != ':':
end = _w(s, end).end()
if s[end:end + 1] != ':':
- raise JSONDecodeError("Expecting : delimiter", s, end)
+ raise JSONDecodeError("Expecting ':' delimiter", s, end)
end += 1
@@ -244,7 +246,7 @@
if nextchar == '}':
break
elif nextchar != ',':
- raise JSONDecodeError("Expecting , delimiter", s, end - 1)
+ raise JSONDecodeError("Expecting ',' delimiter", s, end - 1)
try:
nextchar = s[end]
@@ -259,7 +261,9 @@
end += 1
if nextchar != '"':
- raise JSONDecodeError("Expecting property name", s, end - 1)
+ raise JSONDecodeError(
+ "Expecting property name enclosed in double quotes",
+ s, end - 1)
if object_pairs_hook is not None:
result = object_pairs_hook(pairs)
@@ -293,7 +297,7 @@
if nextchar == ']':
break
elif nextchar != ',':
- raise JSONDecodeError("Expecting , delimiter", s, end)
+ raise JSONDecodeError("Expecting ',' delimiter", s, end)
try:
if s[end] in _ws:
@@ -399,23 +403,25 @@
instance containing a JSON document)
"""
- obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+ obj, end = self.raw_decode(s)
end = _w(s, end).end()
if end != len(s):
raise JSONDecodeError("Extra data", s, end, len(s))
return obj
- def raw_decode(self, s, idx=0):
+ def raw_decode(self, s, idx=0, _w=WHITESPACE.match):
"""Decode a JSON document from ``s`` (a ``str`` or ``unicode``
beginning with a JSON document) and return a 2-tuple of the Python
representation and the index in ``s`` where the document ended.
+ Optionally, ``idx`` can be used to specify an offset in ``s`` where
+ the JSON document begins.
This can be used to decode a JSON document from a string that may
have extraneous data at the end.
"""
try:
- obj, end = self.scan_once(s, idx)
+ obj, end = self.scan_once(s, idx=_w(s, idx).end())
except StopIteration:
raise JSONDecodeError("No JSON object could be decoded", s, idx)
return obj, end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/simplejson-2.5.2/simplejson/tests/test_decode.py new/simplejson-2.6.1/simplejson/tests/test_decode.py
--- old/simplejson-2.5.2/simplejson/tests/test_decode.py 2011-03-11 18:03:40.000000000 +0100
+++ new/simplejson-2.6.1/simplejson/tests/test_decode.py 2012-07-28 06:51:55.000000000 +0200
@@ -81,3 +81,7 @@
self.assertEqual(
({'a': {}}, 9),
cls(object_pairs_hook=dict).raw_decode("{\"a\": {}}"))
+ # https://github.com/simplejson/simplejson/pull/38
+ self.assertEqual(
+ ({'a': {}}, 11),
+ cls().raw_decode(" \n{\"a\": {}}"))
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0