openSUSE Commits
Threads by month
- ----- 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
December 2006
- 1 participants
- 554 discussions
Hello community,
here is the log from the commit of package gdb
checked in at Wed Dec 20 18:06:00 CET 2006.
--------
--- gdb/gdb.changes 2006-12-02 21:39:37.000000000 +0100
+++ /mounts/work_src_done/STABLE/gdb/gdb.changes 2006-12-20 12:38:50.000000000 +0100
@@ -2 +2 @@
-Sat Dec 2 21:38:33 CET 2006 - schwab(a)suse.de
+Wed Dec 20 12:37:40 CET 2006 - schwab(a)suse.de
@@ -4 +4 @@
-- Update to gdb 6.5.90.
+- Update to gdb 6.6.
@@ -51,0 +52,5 @@
+Sat Dec 2 21:38:33 CET 2006 - schwab(a)suse.de
+
+- Update to gdb 6.5.90.
+
+-------------------------------------------------------------------
Old:
----
gdb-6.5.90.tar.bz2
New:
----
gdb-6.6.tar.bz2
readline-callback.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdb.spec ++++++
--- /var/tmp/diff_new_pack.ZUQfsd/_old 2006-12-20 18:05:30.000000000 +0100
+++ /var/tmp/diff_new_pack.ZUQfsd/_new 2006-12-20 18:05:30.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package gdb (Version 6.5.90)
+# spec file for package gdb (Version 6.6)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -20,7 +20,7 @@
Group: Development/Tools/Debuggers
Autoreqprov: on
PreReq: %{install_info_prereq}
-Version: 6.5.90
+Version: 6.6
Release: 1
Summary: The GNU Debugger
Source: gdb-%{version}.tar.bz2
@@ -32,6 +32,7 @@
Patch7: ppc-dwarf2-cfi.patch
Patch8: pie-relocate.diff
Patch9: mst-solib-trampoline.diff
+Patch10: readline-callback.diff
Patch11: loader_break.diff
Patch12: ppc-long-double.diff
Patch13: lr-frame-offset.diff
@@ -73,6 +74,7 @@
%patch7
%patch8
%patch9
+%patch10
cd gdb
%patch11
cd ..
@@ -135,8 +137,8 @@
%endif
%changelog -n gdb
-* Sat Dec 02 2006 - schwab(a)suse.de
-- Update to gdb 6.5.90.
+* Wed Dec 20 2006 - schwab(a)suse.de
+- Update to gdb 6.6.
* New targets
Xtensa xtensa-elf
Cell Broadband Engine SPU spu-elf
@@ -182,6 +184,8 @@
qPart:auxv:read:
This packet has been replaced by qXfer:auxv:read. Only GDB 6.4 and 6.5
used it, and only gdbserver implemented it.
+* Sat Dec 02 2006 - schwab(a)suse.de
+- Update to gdb 6.5.90.
* Sat Oct 28 2006 - schwab(a)suse.de
- Rename detach-fork to detach fork.
* Tue Oct 24 2006 - schwab(a)suse.de
++++++ gdb-6.5.90.tar.bz2 -> gdb-6.6.tar.bz2 ++++++
gdb/gdb-6.5.90.tar.bz2 /mounts/work_src_done/STABLE/gdb/gdb-6.6.tar.bz2 differ: char 11, line 1
++++++ readline-callback.diff ++++++
>From nobody Sun Dec 3 11:01:14 2006
From: "H. J. Lu" <hjl(a)lucon.org>
Subject: PATCH: PR tui/2173: Arrow keys no longer works in breakpoint command list
To: GDB <gdb-patches(a)sources.redhat.com>
Date: Tue, 21 Nov 2006 13:32:05 -0800
The problem is callback in readline 5.1 is changed. When gdb readline
callback calls readline (), readline is really confused since although
it is called from gdb callback, it isn't really in callback state. This
kludge seems to work for me.
H.J.
----
2006-11-21 H.J. Lu <hongjiu.lu(a)intel.com>
PR tui/2173
* top.c (gdb_readline_wrapper): Unset and reset RL_STATE_CALLBACK
around readline if needed.
--- gdb/top.c.arrow 2006-07-21 07:46:53.000000000 -0700
+++ gdb/top.c 2006-11-21 13:20:04.000000000 -0800
@@ -724,6 +724,9 @@ The filename in which to record the comm
char *
gdb_readline_wrapper (char *prompt)
{
+ char *line;
+ int in_callback;
+
/* Set the hook that works in this case. */
if (after_char_processing_hook)
{
@@ -731,7 +734,19 @@ gdb_readline_wrapper (char *prompt)
after_char_processing_hook = NULL;
}
- return readline (prompt);
+ /* When we call readline, we have to make sure that readline isn't in
+ the callback state. Otherwise, it will get really confused.
+ PR tui/2173. */
+ in_callback = RL_ISSTATE (RL_STATE_CALLBACK);
+ if (in_callback)
+ RL_UNSETSTATE (RL_STATE_CALLBACK);
+
+ line = readline (prompt);
+
+ if (in_callback)
+ RL_SETSTATE (RL_STATE_CALLBACK);
+
+ return line;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 dhcpcd
checked in at Wed Dec 20 18:05:23 CET 2006.
--------
--- dhcpcd/dhcpcd.changes 2006-01-31 12:57:10.000000000 +0100
+++ /mounts/work_src_done/STABLE/dhcpcd/dhcpcd.changes 2006-12-20 14:25:37.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 20 14:24:29 CET 2006 - poeml(a)suse.de
+
+- allow other programs to use the port which dhcpcd uses [#117090]
+ dhcpcd-1.3.22pl4-reuseaddr.dif
+
+-------------------------------------------------------------------
New:
----
dhcpcd-1.3.22pl4-reuseaddr.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dhcpcd.spec ++++++
--- /var/tmp/diff_new_pack.qyNQFJ/_old 2006-12-20 18:02:47.000000000 +0100
+++ /var/tmp/diff_new_pack.qyNQFJ/_new 2006-12-20 18:02:47.000000000 +0100
@@ -5,17 +5,17 @@
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
-# Please submit bugfixes or comments via http://bugs.opensuse.org
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: dhcpcd
Version: 1.3.22pl4
-Release: 212
+Release: 243
Summary: A DHCP Client Daemon
URL: http://www.phystech.com/download/dhcpcd.html
-License: GPL
+License: GNU General Public License (GPL)
Group: Productivity/Networking/Boot/Clients
Provides: dhcp_client
Requires: net-tools
@@ -45,6 +45,7 @@
Patch14: dhcpcd-1.3.22pl4-dnsSearchPath.dif
Patch15: dhcpcd-1.3.22pl4-dhcpMsgSize.dif
Patch16: dhcpcd-alignment
+Patch17: dhcpcd-1.3.22pl4-reuseaddr.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define localstatedir /var/lib/dhcpcd/
#define debugging 1
@@ -77,6 +78,7 @@
%patch14 -p1
%patch15 -p1
%patch16 -p1
+%patch17 -p1
cp %{S:3} %{S:4} %{S:5} .
for i in README dhcpcd.8 pathnames.h; do
cp -p $i $i.orig
@@ -119,6 +121,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog -n dhcpcd
+* Wed Dec 20 2006 - poeml(a)suse.de
+- allow other programs to use the port which dhcpcd uses [#117090]
+ dhcpcd-1.3.22pl4-reuseaddr.dif
* Tue Jan 31 2006 - ak(a)suse.de
- fix unalignment messages on ia64 (#146764)
* Wed Jan 25 2006 - mls(a)suse.de
@@ -196,19 +201,19 @@
time intensive (calling external scripts, resolving hostname)
* Thu Jan 02 2003 - poeml(a)suse.de
- update to dhcpcd-1.3.22pl4, relevant changes:
-- set the netmask properly for static routes provided by the server
-- randomize XID better by including CLientHwAddr into the seed
+ - set the netmask properly for static routes provided by the server
+ - randomize XID better by including CLientHwAddr into the seed
for srandom()
-- fix dhcpcd cache overriding command line options -I and -i
-- replace getuid() call with geteuid() in dhcpcd.c to enable
+ - fix dhcpcd cache overriding command line options -I and -i
+ - replace getuid() call with geteuid() in dhcpcd.c to enable
setuid tools to launch dhcpcd.
-- fix a case of dhcpcd client crash because of some DHCP server
+ - fix a case of dhcpcd client crash because of some DHCP server
sending no dhcpMessageType field in DHCP message.
-- all strings in *.info file are quoted now, and single quotes
+ - all strings in *.info file are quoted now, and single quotes
stripped from the strings
-- potential race condition between setting up the setjmp for
+ - potential race condition between setting up the setjmp for
dhcpReboot and the sigalarm handler eliminated
-- handle situations with DHCP server changing lease or T1,T2
+ - handle situations with DHCP server changing lease or T1,T2
times from renewal to renewal.
- rename our -S switch to -K
- re-diff patches (much code has moved to dhcpconfig.c), and drop
@@ -258,7 +263,7 @@
previous lease) to the INIT state (acquire a new lease), if it
can't get the old lease before the timeout. Since even the
default of 60 seconds seem much too long for this, I have added
--z <reboot timeout> specifically for this state (default 10 s).
+ -z <reboot timeout> specifically for this state (default 10 s).
This is good when there is no authoritative server to reply with
DHCPNAK, and an old cache file is present. It works also in the
rebinding state. So a large value for -t can still be used, to
@@ -279,25 +284,25 @@
- set the *NIS* domainname if one was supplied
* Mon Feb 04 2002 - poeml(a)suse.de
- update to dhcpcd-1.3.22pl1
-- ntp.conf and yp.conf is written by default now, unless -N and
--Y are specified on the commandline
-- -T behaviour has changed, the cache will be written and dhcpcd
+ - ntp.conf and yp.conf is written by default now, unless -N and
+ -Y are specified on the commandline
+ - -T behaviour has changed, the cache will be written and dhcpcd
forks into background
-- dhcpcd saves the hostname and domainname of the host and
+ - dhcpcd saves the hostname and domainname of the host and
restores it upon exit
-- dhcpcd.exe script calling convention has changed. Now dhcpcd
+ - dhcpcd.exe script calling convention has changed. Now dhcpcd
will pass the path to *.info file as first argument and
"up/down/new" keyword as second argument, and optional -d as
third one. -c can be used to specify an alternative script.
-- added workaround for starting multiple dhcpcd processes
-- nisDomainName is no longer used for resolv.conf
-- added support for virtual interfaces
-- added support for token ring (may work or not)
-- secs field is increased to 10 (needed for some NT servers)
-- dhcpcd sets umask to 022
-- dhcpcd tries to set optionally supplied static routes
-- possible loop in lease renewal code fixed
-- fixed setting wrong netmask in class A network
+ - added workaround for starting multiple dhcpcd processes
+ - nisDomainName is no longer used for resolv.conf
+ - added support for virtual interfaces
+ - added support for token ring (may work or not)
+ - secs field is increased to 10 (needed for some NT servers)
+ - dhcpcd sets umask to 022
+ - dhcpcd tries to set optionally supplied static routes
+ - possible loop in lease renewal code fixed
+ - fixed setting wrong netmask in class A network
- drop obsolete dhcpcd-1.3.19pl8.dif
- fillup template into /etc/sysconfig/dhcp (which is shared with
dhclient now)
@@ -349,9 +354,9 @@
where garbage was appended)
- set the default for KeepSearchlist to "no"
- start script:
-- get try-restart (meaning "restart when running") right
-- replace meaningless ${2+"$2"} with $2
-- fix probe section to take the correct pid file(s)
+ - get try-restart (meaning "restart when running") right
+ - replace meaningless ${2+"$2"} with $2
+ - fix probe section to take the correct pid file(s)
- update info header for resolv.conf acc. to guidelines
* Thu Apr 12 2001 - poeml(a)suse.de
- fix start script [#6961] (-D and -H were mixed up)
@@ -425,9 +430,9 @@
- removed a lost and lonly "fi" from rcdhclient (Bug 3208)
* Tue Jul 04 2000 - zoz(a)suse.de
- changed /sbin/init.d/dhclient:
-- It now starts without "DHCLIENT".
+ - It now starts without "DHCLIENT".
Just setting IFCONFIG_x with NETCONFIG contains _x is enough.
-- It does not stop the demon, if it was set up by pcmcia-scripts
+ - It does not stop the demon, if it was set up by pcmcia-scripts
but writes a message what to do then.
- changed rc.config.dhclient: removed "DHCLIENT", but left the
comment.
++++++ dhcpcd-1.3.22pl4-reuseaddr.dif ++++++
Allow other programs to use the same port
Novell bugzilla #129019
poeml(a)suse.de
Index: dhcpcd-1.3.22pl4/client.c
===================================================================
--- dhcpcd-1.3.22pl4.orig/client.c 2006-12-20 14:21:10.000000000 +0100
+++ dhcpcd-1.3.22pl4/client.c 2006-12-20 14:21:35.647169000 +0100
@@ -836,9 +836,14 @@ void *dhcpStart()
if ( DebugFlag )
syslog(LOG_DEBUG,"found NIC of link layer type %d\n",ifr.ifr_hwaddr.sa_family);
}
+ if ( setsockopt(dhcpSocket,SOL_SOCKET,SO_REUSEADDR,&o,sizeof(o)) == -1 )
+ {
+ syslog(LOG_ERR,"dhcpStart: setsockopt SO_REUSEADDR: %m\n");
+ exit(1);
+ }
if ( setsockopt(dhcpSocket,SOL_SOCKET,SO_BROADCAST,&o,sizeof(o)) == -1 )
{
- syslog(LOG_ERR,"dhcpStart: setsockopt: %m\n");
+ syslog(LOG_ERR,"dhcpStart: setsockopt SO_BROADCAST: %m\n");
exit(1);
}
if ( ioctl(dhcpSocket,SIOCGIFFLAGS,&ifr) )
@@ -873,9 +878,14 @@ void *dhcpStart()
syslog(LOG_ERR,"dhcpStart: interface %s is not Ethernet or 802.2 Token Ring\n",ifr.ifr_name);
exit(1);
}
+ if ( setsockopt(dhcpSocket,SOL_SOCKET,SO_REUSEADDR,&o,sizeof(o)) == -1 )
+ {
+ syslog(LOG_ERR,"dhcpStart: setsockopt SO_REUSEADDR: %m\n");
+ exit(1);
+ }
if ( setsockopt(dhcpSocket,SOL_SOCKET,SO_BROADCAST,&o,sizeof(o)) == -1 )
{
- syslog(LOG_ERR,"dhcpStart: setsockopt: %m\n");
+ syslog(LOG_ERR,"dhcpStart: setsockopt SO_BROADCAST: %m\n");
exit(1);
}
ifr.ifr_flags = saved_if_flags | IFF_UP | IFF_BROADCAST | IFF_NOTRAILERS | IFF_RUNNING;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 crash
checked in at Wed Dec 20 18:02:38 CET 2006.
--------
--- crash/crash.changes 2006-12-08 17:08:19.000000000 +0100
+++ /mounts/work_src_done/STABLE/crash/crash.changes 2006-12-20 16:51:48.000000000 +0100
@@ -1,0 +2,18 @@
+Wed Dec 20 16:50:46 CET 2006 - bwalle(a)suse.de
+
+- update to crash 4.0-3.15
+ o Introduced support for xendumps
+ o Additional support for the current kexec/kdump patch for Xen
+ o Turn off the LKCD dumpfile-access
+ o Update to MODULES_IN_CWD code segment
+ o Support LKCD "map" files in lieu of standard System.map
+ o The ia64 PR_UNALIGN_NOPRINT and PR_FPEMU_NOPRINT prctl commands
+ have been moved earlier in time, in order to prevent "unaligned
+ access" messages when accessing ELF header contents.
+ o The dlopen() call used by the "extensions" facility has been
+ changed to use the RTLD_GLOBAL flag
+ messages when accessing ELF header contents.
+ o The dlopen() call used by the "extensions" facility has been
+ changed to use the RTLD_GLOBAL flag
+
+-------------------------------------------------------------------
New:
----
crash-4.0-3.14-3.15.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ crash.spec ++++++
--- /var/tmp/diff_new_pack.vMyQmV/_old 2006-12-20 18:01:21.000000000 +0100
+++ /var/tmp/diff_new_pack.vMyQmV/_new 2006-12-20 18:01:21.000000000 +0100
@@ -14,7 +14,7 @@
URL: http://people.redhat.com/anderson/
Summary: crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles
Version: 4.0
-Release: 54
+Release: 58
License: GNU Library General Public License v. 2.0 and 2.1 (LGPL)
Group: Development/Tools/Debuggers
%define crash_subversion 2.33
@@ -28,6 +28,7 @@
Patch5: crash-4.0-3.7-3.8.patch
Patch6: crash-4.0-3.8-3.9.patch
Patch7: crash-4.0-3.9-3.14.patch
+Patch8: crash-4.0-3.14-3.15.patch
Patch20: crash-s390-ptregs.patch
%description
@@ -52,6 +53,7 @@
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
%patch20 -p1
%build
@@ -73,6 +75,21 @@
%doc README
%changelog -n crash
+* Wed Dec 20 2006 - bwalle(a)suse.de
+- update to crash 4.0-3.15
+ o Introduced support for xendumps
+ o Additional support for the current kexec/kdump patch for Xen
+ o Turn off the LKCD dumpfile-access
+ o Update to MODULES_IN_CWD code segment
+ o Support LKCD "map" files in lieu of standard System.map
+ o The ia64 PR_UNALIGN_NOPRINT and PR_FPEMU_NOPRINT prctl commands
+ have been moved earlier in time, in order to prevent "unaligned
+ access" messages when accessing ELF header contents.
+ o The dlopen() call used by the "extensions" facility has been
+ changed to use the RTLD_GLOBAL flag
+ messages when accessing ELF header contents.
+ o The dlopen() call used by the "extensions" facility has been
+ changed to use the RTLD_GLOBAL flag
* Fri Dec 08 2006 - olh(a)suse.de
- update to crash 4.0-3.14
handle pseudo task on ia64 after INIT or MCA
++++++ crash-4.0-3.14-3.15.patch ++++++
++++ 2438 lines (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 apache2
checked in at Wed Dec 20 18:01:14 CET 2006.
--------
--- apache2/apache2.changes 2006-09-26 11:28:32.000000000 +0200
+++ /mounts/work_src_done/STABLE/apache2/apache2.changes 2006-12-20 16:01:04.000000000 +0100
@@ -1,0 +2,9 @@
+Wed Dec 20 15:58:35 CET 2006 - poeml(a)suse.de
+
+- set a proper HOME (/var/lib/apache2), otherwise the server might
+ end up HOME=/root and some script might try to use that [#132769]
+- add two notes to the QUICKSTART readmes
+- don't install /etc/apache2/extra configuration since this is only
+ serving as an example and installed with the documentation anyway
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache2.spec ++++++
--- /var/tmp/diff_new_pack.Ted7X4/_old 2006-12-20 17:56:37.000000000 +0100
+++ /var/tmp/diff_new_pack.Ted7X4/_new 2006-12-20 17:56:37.000000000 +0100
@@ -50,11 +50,11 @@
# "Server:" header
%define VENDOR SUSE
%define platform_string Linux/%VENDOR
-License: Apache
+License: The Apache Software License
Group: Productivity/Networking/Web/Servers
%define realver 2.2.3
Version: 2.2.3
-Release: 6
+Release: 23
#Source0: http://www.apache.org/dist/httpd-%{version}.tar.bz2
Source0: http://httpd.apache.org/dev/dist/httpd-%{realver}.tar.bz2
Source10: SUSE-NOTICE
@@ -684,6 +684,7 @@
rm -f $RPM_BUILD_ROOT/%{_libdir}/%{pname}-*/*.exp # needed only on AIX
rm -f $RPM_BUILD_ROOT/%{_libdir}/%{pname}/*.exp # needed only on AIX
rm -f $RPM_BUILD_ROOT/%{_sbindir}/checkgid # needed only for user installations from tarball
+rm -r $RPM_BUILD_ROOT/%{sysconfdir}/extra # it is already in the documentation directory
#
@@ -801,7 +802,6 @@
%endif
%config /etc/init.d/%{pname}
#
-%config %{sysconfdir}/extra
%{_sbindir}/rc%{pname}
%{_sbindir}/ab%{vers}
%{_sbindir}/apache%{vers}ctl
@@ -1005,6 +1005,12 @@
fi
%changelog -n apache2
+* Wed Dec 20 2006 - poeml(a)suse.de
+- set a proper HOME (/var/lib/apache2), otherwise the server might
+ end up HOME=/root and some script might try to use that [#132769]
+- add two notes to the QUICKSTART readmes
+- don't install /etc/apache2/extra configuration since this is only
+ serving as an example and installed with the documentation anyway
* Tue Sep 26 2006 - poeml(a)suse.de
- add rpm macro for suexec_safepath
- use _bindir/_sbindir in a few places [#202355]
@@ -1358,7 +1364,7 @@
"malicious" CRL. PR 35081. [#95709]
* Mon Jun 20 2005 - poeml(a)suse.de
- add httpd-2.0.47-pie.patch from from 2.1.3-dev to compile with
--fpie and link with -pie
+ -fpie and link with -pie
* Wed May 18 2005 - poeml(a)suse.de
- update to 2.0.54. Relevant changes:
| mod_cache:
@@ -1539,9 +1545,9 @@
* Fri Oct 15 2004 - poeml(a)suse.de
- fix SSLCipherSuite bypass CAN-2004-0885 (cve.mitre.org) [#47117]
- update the TLS upgrade patch [#47207]
-- mod_ssl returned invalid method on TLS upgraded connections
-- additional checks for httpd_method and default_port hooks
-- fixed typo in upgrade header
+ - mod_ssl returned invalid method on TLS upgraded connections
+ - additional checks for httpd_method and default_port hooks
+ - fixed typo in upgrade header
- add patches from Ruediger Pluem for the experimental modules
mod_disk_cache, mod_cache
PR 21492: mod_disk_cache: Do not store aborted content.
@@ -1865,8 +1871,8 @@
enabled by building via rpmbuild --define 'build_with_LFS 1'
* Thu Mar 18 2004 - poeml(a)suse.de
- update to proposed 2.0.49 tarball
-- mod_cgid: Fix storage corruption caused by use of incorrect pool.
-- docs update
+ - mod_cgid: Fix storage corruption caused by use of incorrect pool.
+ - docs update
- remove APACHE_DOCUMENT_ROOT from sysconfig.apache2 [#32635]
- fix a comment in default-server.conf
- remove obsolete ssl_scache_cleanup support script and ftok helper
@@ -2103,27 +2109,27 @@
mod_rewrite which occurred if one configured a regular
expression with more than 9 captures.
mod_rewrite:
-- Don't die silently when failing to open RewriteLogs. PR 23416
-- Fix support of the [P] option to send rewritten request using
+ - Don't die silently when failing to open RewriteLogs. PR 23416
+ - Fix support of the [P] option to send rewritten request using
"proxy:". The code was adding multiple "proxy:" fields in the
rewritten URI. PR: 13946.
-- Ignore RewriteRules in .htaccess files if the directory
+ - Ignore RewriteRules in .htaccess files if the directory
containing the .htaccess file is requested without a trailing
slash. PR 20195.
mod_include:
-- Fix a trio of bugs that would cause various unusual sequences
+ - Fix a trio of bugs that would cause various unusual sequences
of parsed bytes to omit portions of the output stream. PR 21095
-- fix segfault which occured if the filename was not set, for
+ - fix segfault which occured if the filename was not set, for
example, when processing some error conditions.
mod_cgid: fix a hash table corruption problem which could
result in the wrong script being cleaned up at the end of a
request.
mod_ssl: Fix segfaults after renegotiation failure. PR 21370
-- Fix a problem setting variables that represent the client
+ - Fix a problem setting variables that represent the client
certificate chain. PR 21371
-- Fix FakeBasicAuth for subrequest. Log an error when an
+ - Fix FakeBasicAuth for subrequest. Log an error when an
identity spoof is encountered.
-- Assure that we block properly when reading input bodies with
+ - Assure that we block properly when reading input bodies with
SSL. PR 19242.
mod_autoindex: If a directory contains a file listed in the
DirectoryIndex directive, the folder icon is no longer replaced
@@ -2131,16 +2137,16 @@
mod_usertrack: do not get false positive matches on the
user-tracking cookie's name. PR 16661.
mod_cache:
-- Fix the cache code so that responses can be cached if they
+ - Fix the cache code so that responses can be cached if they
have an Expires header but no Etag or Last-Modified headers.
PR 23130. cache_util: Fix ap_check_cache_freshness to check
max_age, smax_age, and expires as directed in RFC 2616.
mod_deflate:
-- fix to not call deflate() without checking first whether it
+ - fix to not call deflate() without checking first whether it
has something to deflate. (Currently this causes deflate to
generate a fatal error according to the zlib spec.) PR 22259.
-- Don't attempt to hold all of the response until we're done.
-- Fix a bug, where mod_deflate sometimes unconditionally
+ - Don't attempt to hold all of the response until we're done.
+ - Fix a bug, where mod_deflate sometimes unconditionally
compressed the content if the Accept-Encoding header
contained only other tokens than "gzip" (such as "deflate").
PR 21523.
@@ -2153,32 +2159,32 @@
mod_ext_filter: Set additional environment variables for use by
the external filter. PR 20944.
core:
-- allow <Foo>..</Foo> containers (no arguments in the opening
+ - allow <Foo>..</Foo> containers (no arguments in the opening
tag), as in 1.3. Needed by mod_perl <Perl> sections
-- Fix a misleading message from the some of the threaded MPMs
+ - Fix a misleading message from the some of the threaded MPMs
when MaxClients has to be lowered due to the setting of
ServerLimit.
-- Avoid an infinite recursion, which occured if the name of an
+ - Avoid an infinite recursion, which occured if the name of an
included config file or directory contained a wildcard
character. PR 22194.
-- MPMs: The bucket brigades subsystem now honors the MaxMemFree
+ - MPMs: The bucket brigades subsystem now honors the MaxMemFree
setting.
-- Lower the severity of the "listener thread didn't exit"
+ - Lower the severity of the "listener thread didn't exit"
message to debug, as it is of interest only to developers.
miscellaneous:
-- Update the header token parsing code to allow LWS between the
+ - Update the header token parsing code to allow LWS between the
token word and the ':' seperator. [PR 16520]
-- Remember an authenticated user during internal redirects if
+ - Remember an authenticated user during internal redirects if
the redirection target is not access protected and pass it to
scripts using the REDIRECT_REMOTE_USER environment variable.
PR 10678, 11602.
-- Update mime.types to include latest IANA and W3C types.
-- Modify ap_get_client_block() to note if it has seen EOS.
+ - Update mime.types to include latest IANA and W3C types.
+ - Modify ap_get_client_block() to note if it has seen EOS.
ab:
-- Overlong credentials given via command line no longer clobber
+ - Overlong credentials given via command line no longer clobber
the buffer.
-- Work over non-loopback on Unix again. PR 21495.
-- Fix NULL-pointer issue in ab when parsing an incomplete or
+ - Work over non-loopback on Unix again. PR 21495.
+ - Fix NULL-pointer issue in ab when parsing an incomplete or
non-HTTP response. PR 21085.
- add another example to apache2-listen.conf
- update apache2-mod_mime-defaults.conf according to 2.0.48 changes
@@ -2238,17 +2244,17 @@
DocumentRoot in default-server.conf
* Fri Aug 15 2003 - poeml(a)suse.de
- revamped configuration
-- add some CustomLog formats
-- AddDefaultCharset UTF-8 [#22427]
-- add activation metadata to sysconfig template [#28834]
-- default APACHE_MODULES: add mod_ssl, remove mod_status
-- new sysconfig variables: APACHE_USE_CANONICAL_NAME,
+ - add some CustomLog formats
+ - AddDefaultCharset UTF-8 [#22427]
+ - add activation metadata to sysconfig template [#28834]
+ - default APACHE_MODULES: add mod_ssl, remove mod_status
+ - new sysconfig variables: APACHE_USE_CANONICAL_NAME,
APACHE_DOCUMENT_ROOT
-- get rid of the "suse_" prefix in generated config snippets, and
+ - get rid of the "suse_" prefix in generated config snippets, and
place them below /etc/apache2/sysconfig.d/. On update, convert
the Include statements in httpd.conf for the new locations
-- add /etc/apache2/vhosts.d and virtual host templates
-- the configuration for the manual is now seperate and installed
+ - add /etc/apache2/vhosts.d and virtual host templates
+ - the configuration for the manual is now seperate and installed
together with apache2-doc (conf.d/apache2-manual.conf)
- add distilled wisdom in form of README.QUICKSTART
- change group of wwwrun user: nogroup -> www [#21782]
@@ -2278,7 +2284,7 @@
- build with -D_FILE_OFFSET_BITS=64 when presumably the kernel
supports sendfile64 [#22191, #22018]. Define APR_HAS_LARGE_FILES
(which is unconditionally off, otherwise). Keep
--D_LARGEFILE_SOURCE since some modules might need it.
+ -D_LARGEFILE_SOURCE since some modules might need it.
- make sure the package can be built as ordinary user
- special case mod_auth_mysql since its module_id is reversed
- don't increase DYNAMIC_MODULE_LIMIT (64 should be copious)
@@ -2286,7 +2292,7 @@
keep the stripped information somewhere
- reformat the header of the spec file
- allow to pass a number-of-jobs parameter into spec file via rpm
---define 'jobs N'
+ --define 'jobs N'
* Thu Jul 10 2003 - poeml(a)suse.de
- update to 2.0.47. relevant / user visible changes:
Security [CAN-2003-0192]: Fixed a bug whereby certain sequences
@@ -2331,32 +2337,32 @@
vulnerability affecting basic authentication
Security: forward port of buffer overflow fixes for htdigest.
mod_ssl:
-- SSL session caching(shmht) : Fix a SEGV problem with SHMHT
+ - SSL session caching(shmht) : Fix a SEGV problem with SHMHT
session caching.
mod_deflate:
-- Add another check for already compressed content
-- Check also err_headers_out for an already set
+ - Add another check for already compressed content
+ - Check also err_headers_out for an already set
Content-Encoding: gzip header. This prevents gzip compressed
content from a CGI script from being compressed once more.
mod_mime_magic:
-- If mod_mime_magic does not know the content-type, do not
+ - If mod_mime_magic does not know the content-type, do not
attempt to guess.
mod_rewrite:
-- Fix handling of absolute URIs.
+ - Fix handling of absolute URIs.
mod_log_config:
-- Add the ability to log the id of the thread processing the
+ - Add the ability to log the id of the thread processing the
request via new %%P formats.
mod_auth_ldap:
-- Use generic whitespace character class when parsing "require"
+ - Use generic whitespace character class when parsing "require"
directives, instead of literal spaces only.
mod_proxy:
-- Fixed a segfault when multiple ProxyBlock directives were used.
-- Added AllowEncodedSlashes directive to permit control of
+ - Fixed a segfault when multiple ProxyBlock directives were used.
+ - Added AllowEncodedSlashes directive to permit control of
whether the server will accept encoded slashes ('%%2f') in the
URI path. Default condition is off (the historical behaviour).
-- If Apache is started as root and you code CoreDumpDirectory,
+ - If Apache is started as root and you code CoreDumpDirectory,
coredumps are enabled via the prctl() syscall.
-- htpasswd: Check the processed file on validity; add a delete flag.
+ - htpasswd: Check the processed file on validity; add a delete flag.
- httpd-2.0.45-libtool-1.5.dif is obsolete
- mark suse_include.conf as %%ghost
- note the rebirth of the httpd and apachectl man pages (thanks to
@@ -2382,21 +2388,21 @@
vulnerability identified by David Endler <DEndler(a)iDefense.com>
on all platforms.
General:
-- Fix segfault which occurred when a section in an included
+ - Fix segfault which occurred when a section in an included
configuration file was not closed. PR 17093.
-- Fix a nasty segfault in mmap_bucket_setaside() caused by
+ - Fix a nasty segfault in mmap_bucket_setaside() caused by
passing an incompatible pointer type to mmap_bucket_destroy(void*).
-- prevent filters (such as mod_deflate) from adding garbage to
+ - prevent filters (such as mod_deflate) from adding garbage to
the response. PR 14451.
-- Simpler, faster code path for request header scanning
-- Try to log an error if a piped log program fails. Try to
+ - Simpler, faster code path for request header scanning
+ - Try to log an error if a piped log program fails. Try to
restart a piped log program in more failure situations.
-- Fix bug where 'Satisfy Any' without an AuthType lost all MIME
+ - Fix bug where 'Satisfy Any' without an AuthType lost all MIME
information (and more). Related to PR 9076.
-- Fix If header parsing when a non-mod_dav lock token is passed to it.
-- Fix apxs to insert LoadModule directives only outside of
+ - Fix If header parsing when a non-mod_dav lock token is passed to it.
+ - Fix apxs to insert LoadModule directives only outside of
sections.
-- apxs: Include any special APR ld flags when linking the DSO.
+ - apxs: Include any special APR ld flags when linking the DSO.
suexec: Be more pedantic when cleaning environment. Clean it
immediately after startup. PR 2790, 10449. Use saner default
config values for suexec. PR 15713.
@@ -2405,10 +2411,10 @@
bad shebang line, etc. Fix possible segfaults under obscure
error conditions within the cgid daemon.
mod_deflate:
-- you can now specify the compression level.
-- Extend the DeflateFilterNote directive to allow accurate
+ - you can now specify the compression level.
+ - Extend the DeflateFilterNote directive to allow accurate
logging of the filter's in- and outstream.
-- Fix potential memory leaks in mod_deflate on malformed data. PR 16046.
+ - Fix potential memory leaks in mod_deflate on malformed data. PR 16046.
mod_ssl:
Allow SSLMutex to select/use the full range of APR locking
mechanisms available to it. Also, fix the bug that SSLMutex
@@ -2416,38 +2422,38 @@
mod_autoindex no longer forgets output format and enabled version
sort in linked column headers.
mod_rewrite:
-- Prevent endless loops of internal redirects in mod_rewrite by
+ - Prevent endless loops of internal redirects in mod_rewrite by
aborting after exceeding a limit of internal redirects. The
limit defaults to 10 and can be changed using the
RewriteOptions directive. PR 17462.
-- Allow "RewriteEngine Off" even if no "Options FollowSymlinks"
+ - Allow "RewriteEngine Off" even if no "Options FollowSymlinks"
(or SymlinksIfOwnermatch) is set. PR 12395.
mod_ldap:
-- Updated mod_ldap and mod_auth_ldap to support the Novell LDAP
+ - Updated mod_ldap and mod_auth_ldap to support the Novell LDAP
SDK SSL and standardized the LDAP SSL support across the
various LDAP SDKs. Isolated the SSL functionality to
mod_ldap rather than speading it across mod_auth_ldap and
mod_ldap. Also added LDAPTrustedCA and LDAPTrustedCAType
directives to mod_ldap to allow for a more common method of
specifying the SSL certificate.
-- fix fault when caching was disabled, and some memory leaks
-- Fix mod_ldap to open an existing shared memory file should
+ - fix fault when caching was disabled, and some memory leaks
+ - Fix mod_ldap to open an existing shared memory file should
one already exist. PR 12757.
-- Added character set support to mod_auth_LDAP to allow it to
+ - Added character set support to mod_auth_LDAP to allow it to
convert extended characters used in the user ID to UTF-8
before authenticating against the LDAP directory. The new
directive AuthLDAPCharsetConfig is used to specify the config
file that contains the character set conversion table.
mod_ssl:
-- Fixed mod_ssl's SSLCertificateChain initialization to no
+ - Fixed mod_ssl's SSLCertificateChain initialization to no
longer skip the first cert of the chain by default. This
misbehavior was introduced in 2.0.34. PR 14560
-- Fix 64-bit problem in mod_ssl input logic.
+ - Fix 64-bit problem in mod_ssl input logic.
mod_proxy:
-- Hook mod_proxy's fixup before mod_rewrite's fixup, so that by
+ - Hook mod_proxy's fixup before mod_rewrite's fixup, so that by
mod_rewrite proxied URLs will not be escaped accidentally by
mod_proxy's fixup. PR 16368
-- Don't remove the Content-Length from responses in mod_proxy PR: 8677
+ - Don't remove the Content-Length from responses in mod_proxy PR: 8677
mod_auth_digest no longer tries to guess AuthDigestDomain, if it's
not specified. Now it assumes "/" as already documented. PR 16937.
mod_file_cache: fix segfaults
@@ -2508,11 +2514,11 @@
- update README.SuSE
* Tue Jan 28 2003 - poeml(a)suse.de
- rc.apache2
-- add extreme-configtest (trying to run server as nobody, which
+ - add extreme-configtest (trying to run server as nobody, which
detects _all_ config errors)
-- evaluate LOADMODULES from sysconfig.apache2 on-the-fly from
+ - evaluate LOADMODULES from sysconfig.apache2 on-the-fly from
rcapache2 instead of SuSEconfig
-- when restarting, do something useful instead of 'sleep 3': wait
+ - when restarting, do something useful instead of 'sleep 3': wait
just as long until the server has terminated all children
* Sun Jan 26 2003 - poeml(a)suse.de
- build mod_logio, mod_case_filter, mod_case_filter_in
@@ -2546,27 +2552,27 @@
httpd.conf-std.in
* Wed Dec 18 2002 - poeml(a)suse.de
- sysconfig.apache2:
-- add APACHE_SERVER_FLAGS variable
-- change default: APACHE_SERVERSIGNATURE=on to match apache deflt
-- add APACHE_CONF_INCLUDE_DIRS
-- drop bogus APACHE_ACCESS_SERVERINFO variable
-- adapt to our new sysconfig template
+ - add APACHE_SERVER_FLAGS variable
+ - change default: APACHE_SERVERSIGNATURE=on to match apache deflt
+ - add APACHE_CONF_INCLUDE_DIRS
+ - drop bogus APACHE_ACCESS_SERVERINFO variable
+ - adapt to our new sysconfig template
- SuSEconfig.apache2:
-- understand LOADMODULES also if it is not an array [#21816]
-- be very flexible with regard to LOADMODULE input (e.g., say
+ - understand LOADMODULES also if it is not an array [#21816]
+ - be very flexible with regard to LOADMODULE input (e.g., say
mod_php4 and it will find libphp4.so with ID php4_module)
-- also ignore *,v files
-- include APACHE_CONF_INCLUDE_DIRS
-- dump some files: suse_define.conf (not needed) & suse_text.conf
+ - also ignore *,v files
+ - include APACHE_CONF_INCLUDE_DIRS
+ - dump some files: suse_define.conf (not needed) & suse_text.conf
(too much overhead)
- rc.apache2:
-- implement most of apachectl's commands (graceful, configtest)
-- use server_flags from sysconfig.apache2
-- pass server flags like -DSTATUS from the command line through
+ - implement most of apachectl's commands (graceful, configtest)
+ - use server_flags from sysconfig.apache2
+ - pass server flags like -DSTATUS from the command line through
to httpd2
-- add commmands to show the server status
-- don't quit silently when no apache MPM is installed
-- handle ServerSignature and other stuff on the command line
+ - add commmands to show the server status
+ - don't quit silently when no apache MPM is installed
+ - handle ServerSignature and other stuff on the command line
(save modifications to httpd.conf)
- fix the /manual Alias that points to the documentation
- configure /cgi-bin for cgi execution
++++++ apache2-README.QUICKSTART ++++++
--- apache2/apache2-README.QUICKSTART 2006-06-08 15:29:49.000000000 +0200
+++ /mounts/work_src_done/STABLE/apache2/apache2-README.QUICKSTART 2006-11-07 20:12:02.000000000 +0100
@@ -53,6 +53,7 @@
NameVirtualHost directives.
- copy the commented template /etc/apache2/vhosts.d/vhost.template to
/etc/apache2/vhosts.d/yourhost.conf
+ (note, it must end in .conf to be automatically read)
- edit /etc/apache2/vhosts.d/yourhost.conf to suit your needs
- alternative approach: simply append the NameVirtualHost directive and the
<VirtualHost> container to your local configuration (httpd.conf.local --
++++++ apache2-README.QUICKSTART.SSL ++++++
--- apache2/apache2-README.QUICKSTART.SSL 2006-06-08 15:24:59.000000000 +0200
+++ /mounts/work_src_done/STABLE/apache2/apache2-README.QUICKSTART.SSL 2006-11-07 20:11:31.000000000 +0100
@@ -30,7 +30,8 @@
/etc/apache2/ssl.csr/server.csr
- a copy of ca.crt will be installed as /srv/www/htdocs/CA.crt for download.
- cp vhosts.d/vhost-ssl.template vhosts.d/vhost-ssl.conf
- - adapt vhosts.d/vhost-ssl.conf and default-server.conf al gusto
+ and adapt vhosts.d/vhost-ssl.conf al gusto
+ (note it must end in .conf to be read automatically)
o to check your vhost setup, use "httpd2 -S -DSSL"
++++++ rc.apache2 ++++++
--- apache2/rc.apache2 2006-04-28 17:00:48.000000000 +0200
+++ /mounts/work_src_done/STABLE/apache2/rc.apache2 2006-12-20 15:58:33.000000000 +0100
@@ -28,6 +28,7 @@
: ${sysconfig_apache:=/etc/sysconfig/$pname}
: ${pidfile:=/var/run/httpd2.pid}
: ${logdir:=/var/log/$pname}
+: ${homedir:=/var/lib/$pname}
#
# load the configuration
@@ -55,6 +56,10 @@
rc_exit
fi
+# a proper home should be set, otherwise the server might end up
+# with HOME=/root and some script might try to use that
+HOME=$homedir
+
get_server_flags()
{
unset server_flags
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 kexec-tools
checked in at Wed Dec 20 12:32:27 CET 2006.
--------
--- kexec-tools/kexec-tools.changes 2006-07-13 18:13:49.000000000 +0200
+++ /mounts/work_src_done/STABLE/kexec-tools/kexec-tools.changes 2006-12-20 11:06:57.000000000 +0100
@@ -1,0 +2,15 @@
+Wed Dec 20 10:59:26 CET 2006 - tiwai(a)suse.de
+
+- take kexec-tools-testing snapshot-20061219.
+ o ia64 support
+ o relocatable kernel support
+ o lots of cleanups/fixes
+- fix manpage and help about -u option (#208710)
+- ia64 kdump support (#214865, FATE#301433, FATE#301434)
+ o add boot argument "CRASH=1" to indicate the crash environment
+ (for kexec'ing with the same kernel)
+ o fix kdump init script for ia64, which has only vmlinuz and
+ uses the same kernel for kdump
+- reduce boot options for kdump kernel (#223500)
+
+-------------------------------------------------------------------
Old:
----
kexec-tools-1.101-kdump7.patch
kexec-tools-1.101.tar.bz2
kexec-tools-configure-fix.diff
kexec-tools-ia64-fix.diff
kexec-tools-ppc64-rm-platform-prop-fix.patch
kexec-tools-s390-fix.diff
kexec-tools-x86-warning-fix.diff
kexec-tools-x86_64-acpi-nvs-fix.patch
kexec.8
ppc64-kdump-tools-ELF-header-fix.patch
New:
----
kexec-tools-testing-20061219.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kexec-tools.spec ++++++
--- /var/tmp/diff_new_pack.xo3t11/_old 2006-12-20 12:32:05.000000000 +0100
+++ /var/tmp/diff_new_pack.xo3t11/_new 2006-12-20 12:32:05.000000000 +0100
@@ -11,28 +11,20 @@
# norootforbuild
Name: kexec-tools
-License: GPL
+%define package_version testing-20061219
+License: GNU General Public License (GPL)
Group: System/Kernel
Requires: %insserv_prereq %fillup_prereq
Autoreqprov: on
Summary: Tools for fast kernel loading
Version: 1.101
-Release: 38
-Source: %{name}-%{version}.tar.bz2
+Release: 59
+Source: %{name}-%{package_version}.tar.bz2
Source1: kdump
Source2: sysconfig.kdump
Source3: gdbinit.kdump
Source4: gdb-kdump
Source5: README.SUSE
-Source6: kexec.8
-Patch: kexec-tools-1.101-kdump7.patch
-Patch1: kexec-tools-configure-fix.diff
-Patch2: kexec-tools-x86-warning-fix.diff
-Patch3: kexec-tools-ia64-fix.diff
-Patch4: kexec-tools-s390-fix.diff
-Patch5: kexec-tools-ppc64-rm-platform-prop-fix.patch
-Patch6: ppc64-kdump-tools-ELF-header-fix.patch
-Patch7: kexec-tools-x86_64-acpi-nvs-fix.patch
URL: http://www.xmission.com/~ebiederm/files/kexec/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -54,27 +46,19 @@
Tim Deegan <tjd21(a)cl.cam.ac.uk>
%prep
-%setup -q
-%patch -p1
-%patch1
-%patch2
-%patch3
-%patch4
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
+%setup -q -n kexec-tools
%{?suse_update_config -f}
cp %{SOURCE5} .
%build
autoreconf -fi
./configure --prefix=/ --sbindir=/sbin --libdir=/%_lib
-make
+make CPPFLAGS="$RPM_OPT_FLAGS"
%install
make DESTDIR=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8
-install -c -m 0644 %{SOURCE6} $RPM_BUILD_ROOT%{_mandir}/man8
+install -c -m 0644 kexec/kexec.8 $RPM_BUILD_ROOT%{_mandir}/man8
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install -c -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d
mkdir -p $RPM_BUILD_ROOT/sbin
@@ -82,7 +66,12 @@
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
install -c -m 0644 %{SOURCE2} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump
%ifarch %ix86 x86_64
-sed -i 's@^\(KEXEC_OPTIONS="\)\(.*"[[:blank:]]*$\)@\1 --args-linux \2@' $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump
+# add --args-linux kexec command line option as default
+sed -i 's@^\(KEXEC_OPTIONS="\)\(.*"[[:blank:]]*$\)@\1--args-linux \2@' $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump
+%endif
+%ifarch ia64
+# empty string for kdump kernel version (to indicate the same kernel)
+sed -i 's@^\(KDUMP_KERNELVER=\).*$@\1""@' $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump
%endif
# install gdb helpers
mkdir -p $RPM_BUILD_ROOT%{_datadir}
@@ -112,12 +101,24 @@
%{_bindir}/*
%{_datadir}/gdbinit.*
%ifarch %ix86 x86_64
-/%_lib/kexec-tools
+/%_lib/kexec-tools*
%endif
/etc/init.d/kdump
/var/adm/fillup-templates/sysconfig.kdump
%changelog -n kexec-tools
+* Wed Dec 20 2006 - tiwai(a)suse.de
+- take kexec-tools-testing snapshot-20061219.
+ o ia64 support
+ o relocatable kernel support
+ o lots of cleanups/fixes
+- fix manpage and help about -u option (#208710)
+- ia64 kdump support (#214865, FATE#301433, FATE#301434)
+ o add boot argument "CRASH=1" to indicate the crash environment
+ (for kexec'ing with the same kernel)
+ o fix kdump init script for ia64, which has only vmlinuz and
+ uses the same kernel for kdump
+- reduce boot options for kdump kernel (#223500)
* Thu Jul 13 2006 - tiwai(a)suse.de
- fixed the calculation of required disk space in kdump
init script (#192172)
++++++ README.SUSE ++++++
--- kexec-tools/README.SUSE 2006-07-13 18:09:20.000000000 +0200
+++ /mounts/work_src_done/STABLE/kexec-tools/README.SUSE 2006-12-20 10:58:21.000000000 +0100
@@ -3,9 +3,9 @@
Prerequisites
=============
-Be sure that you have installed the kexec-tools rpm and the kernel_kdump
-rpm. The version of the kernel_kdump rpm must match the version of the
-running system kernel.
+Be sure that you have installed the kexec-tools rpm. For x86, x86-64
+and ppc64, install kernel-kdump.rpm, too. The version of the
+kernel-kdump rpm must match the version of the running system kernel.
Overview
@@ -61,7 +61,8 @@
An example of this boot loader option is "crashkernel=64M@16M". The 64M
shows the reserved space for the Kdump recovery kernel, and the 16M is
-the address of the reserved area.
+the address of the reserved area. On ia64, the start offset is
+calculated by the kernel, so @xxx offset is ignored.
You can add this option either with the YaST boot loader module, or by
manually editing the boot loader configuration file.
@@ -70,6 +71,7 @@
i386: crashkernel=64M@16M
x86_64: crashkernel=64M@16M
+ia64: crashkernel=128M
PPC64: crashkernel=128M@32M
After setting the boot loader option, activate the Kdump init script,
@@ -171,7 +173,8 @@
If you do not specify a version, then the init script will try to find a
Kdump kernel with the same version number as the running kernel. Using
the string "kdump" will default to the most recently installed Kdump
-kernel.
+kernel (suitable for x86, x86-64 and ppc64). For ia64, keep this
+string empty to point the same running kernel.
- KDUMP_COMMANDLINE
++++++ kdump ++++++
--- kexec-tools/kdump 2006-07-13 17:38:36.000000000 +0200
+++ /mounts/work_src_done/STABLE/kexec-tools/kdump 2006-12-20 10:58:21.000000000 +0100
@@ -93,6 +93,34 @@
rc_status -v
}
+# print the available kdump kernel path
+# empty if no matching file is found
+check_boot_kernel ()
+{
+ local kstr
+ kstr="${BOOTDIR}/vmlinux-$1$2"
+ if [ -f $kstr ]; then
+ echo $kstr
+ return
+ fi
+ kstr="$kstr.gz"
+ if [ -f $kstr ]; then
+ echo $kstr
+ return
+ fi
+ case `uname -i` in
+ ia64)
+ # ia64 uses vmlinuz as of vmlinux.gz
+ kstr="${BOOTDIR}/vmlinuz-$1$2"
+ if [ -f $kstr ]; then
+ echo $kstr
+ return
+ fi
+ ;;
+ esac
+}
+
+
# Load the kdump kerel specified in /etc/sysconfig/kdump
# If none is specified, try to load a kdump kernel with the same version
# as the currently running kernel.
@@ -100,23 +128,28 @@
{
echo -n "Loading kdump "
if [ -z "$KDUMP_KERNELVER" ]; then
- kdump_kver=`uname -r | sed 's/-smp//g'`
- kdump_kver="${kdump_kver}-kdump"
+ kdump_kver=`uname -r | sed -e's/-[^-]*$//g'`
+ kdump_kernel=`check_boot_kernel $kdump_kver -kdump`
+ if [ -n "$kdump_kernel" ]; then
+ kdump_kver="${kdump_kver}-kdump"
+ elif [ -z "$kdump_kernel" ]; then
+ kdump_kver=`uname -r`
+ kdump_kernel=`check_boot_kernel $kdump_kver`
+ fi
else
- kdump_kver=$KDUMP_KERNELVER
+ kdump_kver="$KDUMP_KERNELVER"
+ kdump_kernel=`check_boot_kernel $kdump_kver`
fi
- kdump_kernel="${BOOTDIR}/vmlinux-${kdump_kver}"
- kdump_initrd="${BOOTDIR}/initrd-${kdump_kver}"
-
- if [ ! -f $kdump_kernel ]; then
- echo -n ": No kdump kernel image found."
- echo "Tried to locate ${kdump_kernel}"
+ if [ -z "$kdump_kernel" -o ! -f "$kdump_kernel" ]; then
+ echo -n ": No kdump kernel image found for kernel $kdump_kver."
rc_status -s
rc_failed 6
rc_exit
fi
+ kdump_initrd="${BOOTDIR}/initrd-${kdump_kver}"
+
if [ ! -f $kdump_initrd ]; then
echo -n ": No kdump initial ramdisk found."
echo "Tried to locate ${kdump_initrd}"
@@ -127,16 +160,19 @@
if [ -z "$KDUMP_COMMANDLINE" ]; then
KDUMP_COMMANDLINE=`cat /proc/cmdline`
- KDUMP_COMMANDLINE=`echo $KDUMP_COMMANDLINE | sed -e 's/crashkernel=[0-9]\+[mM]\(@[0-9]\+[Mm]\)\?//g' `
+ KDUMP_COMMANDLINE=`echo $KDUMP_COMMANDLINE | \
+ sed -e 's/crashkernel=[0-9]\+[mM]\(@[0-9]\+[Mm]\)\?//g' \
+ -e 's/ *splash=[^ ]* / /g' \
+ -e 's/ *showopts/ /g'`
# Use deadline for saving the memory footprint
- KDUMP_COMMANDLINE="$KDUMP_COMMANDLINE elevator=deadline"
+ KDUMP_COMMANDLINE="$KDUMP_COMMANDLINE elevator=deadline sysrq=1"
case `uname -i` in
i?86|x86_64)
KDUMP_COMMANDLINE="$KDUMP_COMMANDLINE irqpoll"
;;
esac
fi
- KDUMP_COMMANDLINE="sysrq=1 $KDUMP_COMMANDLINE"
+ KDUMP_COMMANDLINE="CRASH=1 $KDUMP_COMMANDLINE"
if [ -n "$KDUMP_RUNLEVEL" ]; then
case "$KDUMP_RUNLEVEL" in
[1-5s])
@@ -158,9 +194,23 @@
rc_status -v
}
+# return success if running in a crash environemnt
+is_crash_kernel ()
+{
+ test -f /proc/vmcore || return 1
+ # FIXME: any better way to detect crash environment?
+ test -n "$CRASH" && return 0
+ case `uname -i` in
+ ia64)
+ # ia64 has no kdump kernel
+ return 1;;
+ esac
+ return 0
+}
+
case "$1" in
start)
- if [ -f /proc/vmcore ]; then
+ if is_crash_kernel; then
if [ -n "$KDUMP_TRANSFER" ]; then
$KDUMP_TRANSFER
else
@@ -178,7 +228,7 @@
stop)
if [ ! -f /proc/vmcore ]; then
echo -n "Unloading kdump"
- $KEXEC -u
+ $KEXEC -p -u
rc_status -v
fi
;;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 alsa-firmware
checked in at Wed Dec 20 11:43:00 CET 2006.
--------
--- alsa-firmware/alsa-firmware.changes 2006-10-05 16:40:45.000000000 +0200
+++ /mounts/work_src_done/NOARCH/alsa-firmware/alsa-firmware.changes 2006-12-20 11:16:50.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Dec 20 11:15:37 CET 2006 - tiwai(a)suse.de
+
+- updated to version 1.0.14rc1:
+ * added ymfpci, maestro3, korg1212 firmwares
+ * added wavefront and sb16 firmwares
+ * added emi26/emi62 firmwares
+
+-------------------------------------------------------------------
Old:
----
alsa-firmware-1.0.13.tar.bz2
New:
----
alsa-firmware-1.0.14rc1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ alsa-firmware.spec ++++++
--- /var/tmp/diff_new_pack.jT4F14/_old 2006-12-20 11:42:44.000000000 +0100
+++ /var/tmp/diff_new_pack.jT4F14/_new 2006-12-20 11:42:44.000000000 +0100
@@ -12,12 +12,12 @@
Name: alsa-firmware
BuildRequires: alsa
-%define package_version 1.0.13
+%define package_version 1.0.14rc1
URL: http://www.alsa-project.org/
Summary: Firmware Data Files for ALSA
Version: 1.0.13
-Release: 3
-License: GPL
+Release: 19
+License: GNU General Public License (GPL)
Group: Hardware/Other
Autoreqprov: on
Source: ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-%{package_version}.ta…
@@ -90,6 +90,11 @@
/etc/udev
%changelog -n alsa-firmware
+* Wed Dec 20 2006 - tiwai(a)suse.de
+- updated to version 1.0.14rc1:
+ * added ymfpci, maestro3, korg1212 firmwares
+ * added wavefront and sb16 firmwares
+ * added emi26/emi62 firmwares
* Thu Oct 05 2006 - tiwai(a)suse.de
- updated to version 1.0.13-final:
* no real change since rc2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 xorg-x11-libs
checked in at Wed Dec 20 11:41:49 CET 2006.
--------
--- xorg-x11-libs/xorg-x11-libs.changes 2006-12-17 12:12:20.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-libs/xorg-x11-libs.changes 2006-12-20 05:07:25.000000000 +0100
@@ -1,0 +2,10 @@
+Wed Dec 20 04:50:19 CET 2006 - sndirsch(a)suse.de
+
+- libXi-20061015090357.diff:
+ * Don't call XInput_find_display in _XiGetExtensionVersion,
+ while the Display lock is held (X.Org Bug #8581/9392)
+- libXi-20061119100426.diff:
+ * _XiCheckExtInit must drop the Display lock in all
+ error cases (X.Org Bug #8663)
+
+-------------------------------------------------------------------
New:
----
libXi-20061015090357.diff
libXi-20061119100426.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-libs.spec ++++++
--- /var/tmp/diff_new_pack.qXWbNH/_old 2006-12-20 11:41:28.000000000 +0100
+++ /var/tmp/diff_new_pack.qXWbNH/_new 2006-12-20 11:41:28.000000000 +0100
@@ -19,7 +19,7 @@
%endif
URL: http://xorg.freedesktop.org/
Version: 7.2
-Release: 26
+Release: 27
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/Libraries
@@ -57,6 +57,8 @@
Patch3: p_xft_cjk.diff
Patch4: p_xft_register.diff
Patch5: libxkbui.diff
+Patch6: libXi-20061015090357.diff
+Patch7: libXi-20061119100426.diff
%description
This package contains the remaining X.Org libraries.
@@ -135,6 +137,10 @@
pushd libxkbui-*
%patch5
popd
+pushd libXi-*
+%patch6 -p1
+%patch7 -p1
+popd
%build
for dir in libXft1-* xbitmaps-* $(ls | grep -v -e libXft1 -e xbitmaps); do
@@ -199,6 +205,13 @@
%{_mandir}/man3/*
%changelog -n xorg-x11-libs
+* Wed Dec 20 2006 - sndirsch(a)suse.de
+- libXi-20061015090357.diff:
+ * Don't call XInput_find_display in _XiGetExtensionVersion,
+ while the Display lock is held (X.Org Bug #8581/9392)
+- libXi-20061119100426.diff:
+ * _XiCheckExtInit must drop the Display lock in all
+ error cases (X.Org Bug #8663)
* Sun Dec 17 2006 - sndirsch(a)suse.de
- updated libXScrnSaver to release 1.1.2
* Makefile.am: make ChangeLog hook safer
++++++ libXi-20061015090357.diff ++++++
commit 5dda1e1509d40ef64ebc816ce538cef462a4fa51
Author: Jamey Sharp <jamey(a)minilop.net>
Date: Sun Oct 15 00:03:57 2006 -0700
Don't call XInput_find_display in _XiGetExtensionVersion, while the Display lock is held.
_XiGetExtensionVersion has two callers. One had already called
XInput_find_display, and the other could easily do so outside the
Display lock. So I change the _XiGetExtensionVersion interface to
accept a previously-computed XExtDisplayInfo from the caller.
Besides being more correct, this should be slightly faster. :-)
Thanks to Magnus Kessler <Magnus.Kessler(a)gmx.net> for identifying
the bug and proposing a workaround.
diff --git a/src/XExtInt.c b/src/XExtInt.c
index e5baccb..aa838ef 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -207,7 +207,7 @@ _XiCheckExtInit(dpy, version_index)
return (-1);
}
((XInputData *) info->data)->vers =
- _XiGetExtensionVersion(dpy, "XInputExtension");
+ _XiGetExtensionVersion(dpy, "XInputExtension", info);
}
if (versions[version_index].major_version > Dont_Check) {
diff --git a/src/XGetVers.c b/src/XGetVers.c
index 1f4fd7a..ef41fea 100644
--- a/src/XGetVers.c
+++ b/src/XGetVers.c
@@ -64,9 +64,10 @@ XExtensionVersion *
XGetExtensionVersion(register Display * dpy, _Xconst char *name)
{
XExtensionVersion *ext;
+ XExtDisplayInfo *info = XInput_find_display(dpy);
LockDisplay(dpy);
- ext = _XiGetExtensionVersion(dpy, name);
+ ext = _XiGetExtensionVersion(dpy, name, info);
if (ext != (XExtensionVersion *) NoSuchExtension) {
UnlockDisplay(dpy);
SyncHandle();
@@ -75,12 +76,11 @@ XGetExtensionVersion(register Display *
}
XExtensionVersion *
-_XiGetExtensionVersion(register Display * dpy, _Xconst char *name)
+_XiGetExtensionVersion(register Display * dpy, _Xconst char *name, XExtDisplayInfo *info)
{
xGetExtensionVersionReq *req;
xGetExtensionVersionReply rep;
XExtensionVersion *ext;
- XExtDisplayInfo *info = XInput_find_display(dpy);
if (_XiCheckExtInit(dpy, Dont_Check) == -1)
return ((XExtensionVersion *) NoSuchExtension);
diff --git a/src/XIint.h b/src/XIint.h
index ba965a6..ae6d33f 100644
--- a/src/XIint.h
+++ b/src/XIint.h
@@ -12,6 +12,6 @@ extern XExtDisplayInfo *XInput_find_disp
extern int _XiCheckExtInit(Display *, int);
-extern XExtensionVersion *_XiGetExtensionVersion(Display *, _Xconst char *);
+extern XExtensionVersion *_XiGetExtensionVersion(Display *, _Xconst char *, XExtDisplayInfo *);
#endif
++++++ libXi-20061119100426.diff ++++++
commit 60dccd9a7be95e35b4b8c90934888efedfde84cc
Author: Jamey Sharp <jamey(a)minilop.net>
Date: Sun Nov 19 01:04:26 2006 -0800
Bug #8663: _XiCheckExtInit must drop the Display lock in all error cases.
diff --git a/src/XExtInt.c b/src/XExtInt.c
index 427e406..8366104 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -80,9 +80,6 @@ typedef struct _XInputData
XExtensionVersion *vers;
} XInputData;
-#define XInputCheckExtension(dpy,i,val) \
- XextCheckExtension (dpy, i, xinput_extension_name, val)
-
static /* const */ XExtensionHooks xinput_extension_hooks = {
NULL, /* create_gc */
NULL, /* copy_gc */
@@ -183,6 +180,12 @@ _xidevicebusy(dpy, error)
*error = info->codes->first_error + XI_DeviceBusy;
}
+static int XInputCheckExtension(Display *dpy, XExtDisplayInfo *info)
+{
+ XextCheckExtension (dpy, info, xinput_extension_name, 0);
+ return 1;
+}
+
/***********************************************************************
*
* Check to see if the input extension is installed in the server.
@@ -198,7 +201,10 @@ _XiCheckExtInit(dpy, version_index, info
{
XExtensionVersion *ext;
- XInputCheckExtension(dpy, info, -1);
+ if (!XInputCheckExtension(dpy, info)) {
+ UnlockDisplay(dpy);
+ return (-1);
+ }
if (info->data == NULL) {
info->data = (XPointer) Xmalloc(sizeof(XInputData));
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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-users
checked in at Wed Dec 20 10:31:20 CET 2006.
--------
--- yast2-users/yast2-users.changes 2006-12-04 16:40:28.000000000 +0100
+++ /mounts/work_src_done/STABLE/yast2-users/yast2-users.changes 2006-12-20 07:23:48.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Dec 7 13:24:44 CET 2006 - jsuchome(a)suse.cz
+
+- new LDAP plugins for Password Policy and Shadow Account (F301179)
+- when enabling plugins, remove plugin from "plugins_to_remove" list
+- help text and wizard caption for authentication settings
+- 2.15.1
+
+-------------------------------------------------------------------
Old:
----
yast2-users-2.15.0.tar.bz2
New:
----
yast2-users-2.15.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-users.spec ++++++
--- /var/tmp/diff_new_pack.5AacHD/_old 2006-12-20 10:31:08.000000000 +0100
+++ /var/tmp/diff_new_pack.5AacHD/_new 2006-12-20 10:31:08.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-users (Version 2.15.0)
+# spec file for package yast2-users (Version 2.15.1)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,15 +11,15 @@
# norootforbuild
Name: yast2-users
-Version: 2.15.0
+Version: 2.15.1
Release: 1
License: GNU General Public License (GPL)
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-users-2.15.0.tar.bz2
+Source0: yast2-users-2.15.1.tar.bz2
prefix: /usr
BuildRequires: cracklib-devel doxygen gcc-c++ perl-Digest-SHA1 perl-XML-Writer update-desktop-files yast2 yast2-core-devel yast2-devtools yast2-ldap-client yast2-mail-aliases yast2-perl-bindings yast2-security yast2-testsuite
-Requires: yast2 yast2-perl-bindings yast2-country yast2-pam yast2-security yast2-mail-aliases cracklib perl-Digest-SHA1 perl-gettext yast2-ldap-client
+Requires: yast2 yast2-perl-bindings yast2-country yast2-pam yast2-security yast2-mail-aliases cracklib perl-Digest-SHA1 perl-X500-DN perl-gettext yast2-ldap-client
Obsoletes: yast2-config-users y2c_users yast2-trans-users y2t_users yast2-trans-inst-user yast2-trans-users y2t_inst-user
Provides: yast2-config-users y2c_users yast2-trans-users y2t_users yast2-trans-inst-user yast2-trans-users y2t_inst-user
#BuildArchitectures: noarch
@@ -42,7 +42,7 @@
Jiri Suchomel <jsuchome(a)suse.cz>
%prep
-%setup -n yast2-users-2.15.0
+%setup -n yast2-users-2.15.1
%build
%{prefix}/bin/y2tool y2autoconf
@@ -86,6 +86,11 @@
%doc %{prefix}/share/doc/packages/yast2-users
%changelog -n yast2-users
+* Thu Dec 07 2006 - jsuchome(a)suse.cz
+- new LDAP plugins for Password Policy and Shadow Account (F301179)
+- when enabling plugins, remove plugin from "plugins_to_remove" list
+- help text and wizard caption for authentication settings
+- 2.15.1
* Mon Dec 04 2006 - jsuchome(a)suse.cz
- differ GenericName from Name in desktop files (#223549)
- check root password for CA constraints (F300438)
++++++ yast2-users-2.15.0.tar.bz2 -> yast2-users-2.15.1.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/VERSION new/yast2-users-2.15.1/VERSION
--- old/yast2-users-2.15.0/VERSION 2006-12-04 16:26:54.000000000 +0100
+++ new/yast2-users-2.15.1/VERSION 2006-12-07 13:25:36.000000000 +0100
@@ -1 +1 @@
-2.15.0
+2.15.1
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/Makefile.am new/yast2-users-2.15.1/src/Makefile.am
--- old/yast2-users-2.15.0/src/Makefile.am 2006-11-27 10:27:00.000000000 +0100
+++ new/yast2-users-2.15.1/src/Makefile.am 2006-12-05 10:22:48.000000000 +0100
@@ -18,7 +18,9 @@
UsersUI.ycp \
UsersPasswd.pm \
UsersPlugins.pm \
- UsersPluginLDAPAll.pm
+ UsersPluginLDAPAll.pm \
+ UsersPluginLDAPShadowAccount.pm \
+ UsersPluginLDAPPasswordPolicy.pm
ynclude_DATA = \
complex.ycp \
@@ -36,7 +38,9 @@
inst_user.ycp \
inst_auth.ycp \
users_auto.ycp \
- users_plugin_ldap_all.ycp
+ users_plugin_ldap_all.ycp \
+ users_plugin_ldap_passwordpolicy.ycp \
+ users_plugin_ldap_shadowaccount.ycp
desktop_DATA = \
users.desktop \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/Makefile.in new/yast2-users-2.15.1/src/Makefile.in
--- old/yast2-users-2.15.0/src/Makefile.in 2006-11-27 10:32:24.000000000 +0100
+++ new/yast2-users-2.15.1/src/Makefile.in 2006-12-05 11:24:50.000000000 +0100
@@ -230,7 +230,9 @@
UsersUI.ycp \
UsersPasswd.pm \
UsersPlugins.pm \
- UsersPluginLDAPAll.pm
+ UsersPluginLDAPAll.pm \
+ UsersPluginLDAPShadowAccount.pm \
+ UsersPluginLDAPPasswordPolicy.pm
ynclude_DATA = \
complex.ycp \
@@ -248,7 +250,9 @@
inst_user.ycp \
inst_auth.ycp \
users_auto.ycp \
- users_plugin_ldap_all.ycp
+ users_plugin_ldap_all.ycp \
+ users_plugin_ldap_passwordpolicy.ycp \
+ users_plugin_ldap_shadowaccount.ycp
desktop_DATA = \
users.desktop \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/Users.pm new/yast2-users-2.15.1/src/Users.pm
--- old/yast2-users-2.15.0/src/Users.pm 2006-09-21 16:11:08.000000000 +0200
+++ new/yast2-users-2.15.1/src/Users.pm 2006-12-11 14:03:47.000000000 +0100
@@ -2496,6 +2496,17 @@
"plugins" => [ $plugin ]
};
+ my $plugins_to_remove = $group{"plugins_to_remove"};
+ if (contains ($plugins_to_remove, $plugin, 1)) {
+ my @plugins_updated = ();
+ foreach my $p (@$plugins_to_remove) {
+ if ($p ne $plugin) {
+ push @plugins_updated, $p;
+ }
+ }
+ $group{"plugins_to_remove"} = \@plugins_updated;
+ }
+
if (($group{"what"} || "") eq "add_group") {
my $result = UsersPlugins->Apply ("AddBefore", $args, \%group);
@@ -2583,6 +2594,17 @@
"plugins" => [ $plugin ]
};
+ my $plugins_to_remove = $user{"plugins_to_remove"};
+ if (contains ($plugins_to_remove, $plugin, 1)) {
+ my @plugins_updated = ();
+ foreach my $p (@$plugins_to_remove) {
+ if ($p ne $plugin) {
+ push @plugins_updated, $p;
+ }
+ }
+ $user{"plugins_to_remove"} = \@plugins_updated;
+ }
+
if (($user{"what"} || "") eq "add_user") {
my $result = UsersPlugins->Apply ("AddBefore", $args, \%user);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/UsersLDAP.pm new/yast2-users-2.15.1/src/UsersLDAP.pm
--- old/yast2-users-2.15.0/src/UsersLDAP.pm 2006-10-23 15:32:46.000000000 +0200
+++ new/yast2-users-2.15.1/src/UsersLDAP.pm 2006-12-18 13:13:58.000000000 +0100
@@ -10,6 +10,7 @@
use YaST::YCP qw(:LOGGING);
use YaPI;
+use Data::Dumper;
textdomain ("users");
@@ -130,6 +131,8 @@
my $user_scope = YaST::YCP::Integer (2);
my $group_scope = YaST::YCP::Integer (2);
+# store the 'usage' flag of LDAP attribute
+my $attribute_usage = {};
##------------------------------------
##------------------- global imports
@@ -1141,8 +1144,17 @@
$val = "";
}
else {
- y2warning ("Attribute '$key' is not allowed by schema.");
- next;
+ if (not defined ($attribute_usage->{'$key'})) {
+ my $at = SCR->Read (".ldap.schema.at", {"name" => $key});
+ $attribute_usage->{'$key'} = $at->{'usage'};
+ $attribute_usage->{'$key'} = 0 if not defined $at->{'usage'};
+ }
+ # 1, 2 and 3 are operational attributes, they do not require object class
+ # 0=userApplications, 1=directoryOperation, 2=distributedOperation, 3=dSAOperation
+ if ($attribute_usage->{'$key'} < 1) {
+ y2warning ("Attribute '$key' is not allowed by schema.");
+ next;
+ }
}
}
if ($key eq $member_attribute && ref ($val) eq "HASH") {
@@ -1169,6 +1181,7 @@
}
$ret{$key} = $val;
}
+y2internal ("final map: ", Dumper [\%ret]);
return \%ret;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/UsersPluginLDAPAll.pm new/yast2-users-2.15.1/src/UsersPluginLDAPAll.pm
--- old/yast2-users-2.15.0/src/UsersPluginLDAPAll.pm 2006-09-12 15:33:15.000000000 +0200
+++ new/yast2-users-2.15.1/src/UsersPluginLDAPAll.pm 2006-12-07 10:12:29.000000000 +0100
@@ -28,7 +28,7 @@
# default object classes of LDAP users
my @user_object_class =
- ("top","posixaccount","shadowaccount", "inetorgperson");
+ ("top","posixaccount", "inetorgperson");
# default object classes of LDAP groups
my @group_object_class =
@@ -135,11 +135,11 @@
my $self = shift;
my $what = "user";
# plugin summary (table item)
- my $ret = __("Edit Remaining Attributes of LDAP User");
+ my $ret = __("Edit Remaining LDAP Attributes");
if (defined $_[0]->{"what"} && $_[0]->{"what"} eq "group") {
# plugin summary (table item)
- $ret = __("Edit Remaining Attributes of LDAP Group");
+ $ret = __("Edit Remaining LDAP Attributes");
}
return $ret;
}
@@ -272,40 +272,19 @@
}
sub Enable {
- my $self = shift;
- my $config = $_[0];
- my $data = $_[1];
-
- my $pw = $data->{"userpassword"};
-
- if ((defined $pw) && $pw =~ m/^\!/) {
- $pw =~ s/^\!//;
- $data->{"userpassword"} = $pw;
- }
- $data->{"shadowexpire"} = "";
+ my ($self, $config, $data) = @_;
y2debug ("Enable LDAPAll called");
return $data;
}
# this will be called from Users::DisableUser
-# set "shadowExpire" to "0",
-# set a "!" before the hash-value in the "userpassword"
BEGIN { $TYPEINFO{Disable} = ["function",
["map", "string", "any"],
"any", "any"];
}
sub Disable {
- my $self = shift;
- my $config = $_[0];
- my $data = $_[1];
-
- my $pw = $data->{"userpassword"};
-
- if ((defined $pw) && $pw !~ m/^\!/) {
- $data->{"userpassword"} = "!".$pw;
- }
- $data->{"shadowexpire"} = 0;
+ my ($self, $config, $data) = @_;
y2debug ("Disable LDAPAll called");
return $data;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/UsersPluginLDAPPasswordPolicy.pm new/yast2-users-2.15.1/src/UsersPluginLDAPPasswordPolicy.pm
--- old/yast2-users-2.15.0/src/UsersPluginLDAPPasswordPolicy.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-users-2.15.1/src/UsersPluginLDAPPasswordPolicy.pm 2006-12-19 16:11:46.000000000 +0100
@@ -0,0 +1,362 @@
+#! /usr/bin/perl -w
+#
+# Example of plugin module
+# This is the API part of UsersPluginLDAPPasswordPolicy plugin
+# - configuration of Password Policy of LDAP user (feature 301179)
+#
+# For documentation and examples of function arguments and return values, see
+# UsersPluginLDAPAll.pm
+
+package UsersPluginLDAPPasswordPolicy;
+
+use strict;
+
+use YaST::YCP qw(:LOGGING);
+use YaPI;
+use Data::Dumper;
+use X500::DN;
+
+textdomain("users");
+
+our %TYPEINFO;
+
+##--------------------------------------
+##--------------------- global imports
+
+YaST::YCP::Import ("SCR");
+YaST::YCP::Import ("Ldap");
+
+##--------------------------------------
+##--------------------- global variables
+
+# name of conflicting plugin
+my $shadow_plugin = "UsersPluginLDAPShadowAccount";
+
+# error message, returned when some plugin function fails
+my $error = "";
+
+# internal name
+my $name = "UsersPluginLDAPPasswordPolicy";
+
+# if Password Policy is enabled on the server
+my $ppolicy_enabled = undef;
+
+##----------------------------------------
+##--------------------- internal functions
+
+# internal function:
+# check if given key (second parameter) is contained in a list (1st parameter)
+# if 3rd parameter is true (>0), ignore case
+sub contains {
+ my ($list, $key, $ignorecase) = @_;
+ if (!defined $list || ref ($list) ne "ARRAY" || @{$list} == 0) {
+ return 0;
+ }
+ if ($ignorecase) {
+ if ( grep /^\Q$key\E$/i, @{$list} ) {
+ return 1;
+ }
+ } else {
+ if ( grep /^\Q$key\E$/, @{$list} ) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+# update the object data when removing plugin
+# TODO is it possible when plugin is not removable?
+sub remove_plugin_data {
+
+ my ($config, $data) = @_;
+ my @updated_oc;
+ if (defined $data->{'pwdpolicysubentry'}) {
+ $data->{'pwdpolicysubentry'} = "";
+ }
+ return $data;
+}
+
+##------------------------------------------
+##--------------------- global API functions
+
+# return names of provided functions
+BEGIN { $TYPEINFO{Interface} = ["function", ["list", "string"], "any", "any"];}
+sub Interface {
+
+ my $self = shift;
+ my @interface = (
+ "GUIClient",
+ "Check",
+ "Name",
+ "Summary",
+ "Restriction",
+ "WriteBefore",
+ "Write",
+ "AddBefore",
+ "Add",
+ "EditBefore",
+ "Edit",
+ "Interface",
+ "Disable",
+ "Enable",
+ "PluginPresent",
+ "PluginRemovable",
+ "Error",
+ );
+ return \@interface;
+}
+
+# return error message, generated by plugin
+BEGIN { $TYPEINFO{Error} = ["function", "string", "any", "any"];}
+sub Error {
+
+ return $error;
+}
+
+
+# return plugin name, used for GUI (translated)
+BEGIN { $TYPEINFO{Name} = ["function", "string", "any", "any"];}
+sub Name {
+
+ # plugin name
+ return __("LDAP Password Policy");
+}
+
+##------------------------------------
+# return plugin summary (to be shown in table with all plugins)
+BEGIN { $TYPEINFO{Summary} = ["function", "string", "any", "any"];}
+sub Summary {
+
+ # user plugin summary (table item)
+ return __("Edit Password Policy");
+}
+
+##------------------------------------
+# checks the current data map of user (2nd parameter) and returns
+# true if given user has this plugin
+BEGIN { $TYPEINFO{PluginPresent} = ["function", "boolean", "any", "any"];}
+sub PluginPresent {
+
+ my ($self, $config, $data) = @_;
+
+ # check for PasswordPolicy at server
+ if (not defined $ppolicy_enabled) {
+ $ppolicy_enabled = SCR->Execute (".ldap.ppolicy", {
+ "hostname" => Ldap->GetFirstServer (Ldap->server ()),
+ "bind_dn" => Ldap->GetDomain ()
+ });
+ y2milestone ("Password Policy enabled globaly: $ppolicy_enabled");
+ }
+ if (contains ($data->{'plugins'}, $name, 1) || # already checked, still no data
+ contains ((keys %$data), "pwdpolicysubentry", 1)) { # checking for data
+ y2milestone ("LDAPPasswordPolicy plugin present");
+ return 1;
+ } elsif ($ppolicy_enabled) {
+ y2debug ("Password Policy enabled globaly");
+ return 1;
+ } else {
+ y2debug ("LDAPPasswordPolicy plugin not present");
+ return 0;
+ }
+}
+
+##------------------------------------
+# Is it possible to remove this plugin from user?
+BEGIN { $TYPEINFO{PluginRemovable} = ["function", "boolean", "any", "any"];}
+sub PluginRemovable {
+
+ return YaST::YCP::Boolean (0);
+}
+
+
+##------------------------------------
+# return name of YCP client defining YCP GUI
+BEGIN { $TYPEINFO{GUIClient} = ["function", "string", "any", "any"];}
+sub GUIClient {
+
+ return "users_plugin_ldap_passwordpolicy";
+}
+
+##------------------------------------
+# Type of objects this plugin is restricted to.
+# Plugin is restricted to LDAP users
+BEGIN { $TYPEINFO{Restriction} = ["function",
+ ["map", "string", "any"], "any", "any"];}
+sub Restriction {
+
+ return {
+ "ldap" => 1,
+ "user" => 1
+ };
+}
+
+
+##------------------------------------
+# check if required atributes of LDAP entry are present and have correct form
+# parameter is (whole) map of entry (user)
+# return error message
+BEGIN { $TYPEINFO{Check} = ["function",
+ "string",
+ "any",
+ "any"];
+}
+sub Check {
+
+ my ($self, $config, $data) = @_;
+ my $pwdpolicysubentry = $data->{'pwdpolicysubentry'};
+ if (defined $pwdpolicysubentry && $pwdpolicysubentry ne "") {
+
+ # validate DN
+ if (not defined X500::DN->ParseRFC2253 ($pwdpolicysubentry)) {
+ # error popup, %s is object DN
+ return sprintf (__("Invalid DN syntax of \"%s\"."), $pwdpolicysubentry);
+ }
+
+ # ldap.init has been done before
+ my $search = SCR->Read (".ldap.search", {
+ "base_dn" => $pwdpolicysubentry,
+ "attrs" => [ "objectclass" ],
+ "map" => 1
+ });
+ if (not defined $search) {
+ my $error = SCR->Read (".ldap.error");
+ # error popup, first %s is object DN, second is additional error message
+ return sprintf (__("Error while searching for \"%s\":
+%s"), $pwdpolicysubentry, $error->{'msg'});
+ }
+ my $oc = $search->{$pwdpolicysubentry}{'objectclass'};
+ if (defined $oc && ref ($oc) eq "ARRAY") {
+ if (not contains ($oc, "pwdpolicy", 1)) {
+ # error popup, %s is object DN
+ return sprintf (__("The object \"%s\"
+is not a Password Policy object"), $pwdpolicysubentry);
+ }
+ }
+ }
+ return "";
+}
+
+# this will be called from Users::EnableUser
+BEGIN { $TYPEINFO{Enable} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub Enable {
+
+ my ($self, $config, $data) = @_;
+ y2debug ("Enable LDAPAll called");
+
+ $data->{'pwdAccountLockedTime'} = "";
+ return $data;
+}
+
+# this will be called from Users::DisableUser
+BEGIN { $TYPEINFO{Disable} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub Disable {
+
+ my ($self, $config, $data) = @_;
+ y2debug ("Disable LDAPAll called");
+
+ $data->{'pwdAccountLockedTime'} = 0;
+ return $data;
+}
+
+
+# this will be called at the beggining of Users::Add
+# Could be called multiple times for one user
+BEGIN { $TYPEINFO{AddBefore} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub AddBefore {
+
+ my ($self, $config, $data) = @_;
+
+ if (!contains ($data->{'plugins_to_remove'}, $name, 1) &&
+ contains ($data->{'plugins'}, $shadow_plugin, 1)) {
+ # error popup
+ $error = __("It is not possible to add this plugin when
+the plugin for Shadow Account attributes is in use.");
+ return undef;
+ }
+ return $data;
+}
+
+
+# This will be called just after Users::Add - the data map probably contains
+# the values which we could use to create new ones
+# Could be called multiple times for one user!
+BEGIN { $TYPEINFO{Add} = ["function", ["map", "string", "any"], "any", "any"];}
+sub Add {
+
+ my ($self, $config, $data) = @_;
+ if (contains ($data->{'plugins_to_remove'}, $name, 1)) {
+ y2milestone ("removing plugin $name...");
+ $data = remove_plugin_data ($config, $data);
+ }
+ y2debug("Add LDAPAll called");
+ return $data;
+}
+
+# this will be called at the beggining of Users::Edit
+BEGIN { $TYPEINFO{EditBefore} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub EditBefore {
+
+ my ($self, $config, $data) = @_;
+ # $data: only new data that will be copied to current user map
+ # data of original user are saved as a submap of $config
+ # data with key "org_data"
+
+ # in $data hash, there could be "plugins_to_remove": list of plugins which
+ # has to be removed from the user
+ if (!contains ($data->{'plugins_to_remove'}, $name, 1) &&
+ contains ($data->{'plugins'}, $shadow_plugin, 1)) {
+ # error popup
+ $error = __("It is not possible to add this plugin when
+the plugin for Shadow Account attributes is in use.");
+ return undef;
+ }
+ return $data;
+}
+
+# this will be called just after Users::Edit
+BEGIN { $TYPEINFO{Edit} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub Edit {
+
+ my ($self, $config, $data) = @_;
+ if (contains ($data->{'plugins_to_remove'}, $name, 1)) {
+ y2milestone ("removing plugin $name...");
+ $data = remove_plugin_data ($config, $data);
+ }
+ y2debug ("Edit LDAPAll called");
+ return $data;
+}
+
+
+
+# what should be done before user is finally written to LDAP
+BEGIN { $TYPEINFO{WriteBefore} = ["function", "boolean", "any", "any"];}
+sub WriteBefore {
+
+ y2debug ("WriteBefore LDAPAll called");
+ return YaST::YCP::Boolean (1);
+}
+
+# what should be done after user is finally written to LDAP
+BEGIN { $TYPEINFO{Write} = ["function", "boolean", "any", "any"];}
+sub Write {
+
+ y2debug ("Write LDAPAll called");
+ return YaST::YCP::Boolean (1);
+}
+1
+# EOF
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/UsersPluginLDAPShadowAccount.pm new/yast2-users-2.15.1/src/UsersPluginLDAPShadowAccount.pm
--- old/yast2-users-2.15.0/src/UsersPluginLDAPShadowAccount.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-users-2.15.1/src/UsersPluginLDAPShadowAccount.pm 2006-12-11 13:58:01.000000000 +0100
@@ -0,0 +1,416 @@
+#! /usr/bin/perl -w
+#
+# Example of plugin module
+# This is the API part of UsersPluginLDAPShadowAccount plugin
+# - configuration of ShadowAccount object class of LDAP users
+#
+# For documentation and examples of function arguments and return values, see
+# UsersPluginLDAPAll.pm
+
+package UsersPluginLDAPShadowAccount;
+
+use strict;
+
+use YaST::YCP qw(:LOGGING);
+use YaPI;
+use Data::Dumper;
+
+textdomain("users");
+
+our %TYPEINFO;
+
+##--------------------------------------
+##--------------------- global imports
+
+YaST::YCP::Import ("Ldap");
+YaST::YCP::Import ("SCR");
+YaST::YCP::Import ("UsersLDAP");
+
+##--------------------------------------
+##--------------------- global variables
+
+# object classes handled by this plugin
+my $user_object_class = "shadowaccount";
+
+# conflicting plugin name
+my $pwdpolicy_plugin = "UsersPluginLDAPPasswordPolicy";
+
+# error message, returned when some plugin function fails
+my $error = "";
+
+# internal name
+my $name = "UsersPluginLDAPShadowAccount";
+
+##----------------------------------------
+##--------------------- internal functions
+
+# check if given key (second parameter) is contained in a list (1st parameter)
+# if 3rd parameter is true (>0), ignore case
+sub contains {
+ my ($list, $key, $ignorecase) = @_;
+ if (!defined $list || ref ($list) ne "ARRAY" || @{$list} == 0) {
+ return 0;
+ }
+ if ($ignorecase) {
+ if ( grep /^\Q$key\E$/i, @{$list} ) {
+ return 1;
+ }
+ } else {
+ if ( grep /^\Q$key\E$/, @{$list} ) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+# provide current value for shadowlastchange attribute
+sub last_change_is_now {
+
+ my %out = %{SCR->Execute (".target.bash_output", "date +%s")};
+ my $seconds = $out{"stdout"} || "0";
+ chomp $seconds;
+ return sprintf ("%u", $seconds / (60*60*24));
+}
+
+# update the list of current object classes when adding plugin
+sub update_object_classes {
+
+ my ($config, $data) = @_;
+
+ if (defined $data->{"objectclass"} && ref $data->{"objectclass"} eq "ARRAY")
+ {
+ my @orig_object_class = @{$data->{"objectclass"}};
+ if (!contains (\@orig_object_class, $user_object_class, 1)) {
+ push @orig_object_class, $user_object_class;
+ $data->{"objectclass"} = \@orig_object_class;
+ }
+ # set default values for new variables
+ my $shadow = UsersLDAP->GetDefaultShadow ();
+ foreach my $attr (keys %$shadow) {
+ if (!defined $data->{$attr} || $data->{$attr} eq "") {
+ $data->{$attr} = $shadow->{$attr};
+ }
+ }
+ if (!defined $data->{"shadowlastchange"}) {
+ $data->{"shadowlastchange"} = last_change_is_now ();
+ }
+ }
+ return $data;
+}
+
+# update the object data when removing plugin
+sub remove_plugin_data {
+
+ my ($config, $data) = @_;
+ my @updated_oc;
+ foreach my $oc (@{$data->{'objectclass'}}) {
+ if (lc($oc) ne $user_object_class) {
+ push @updated_oc, $oc;
+ }
+ }
+ $data->{'objectclass'} = \@updated_oc;
+ return $data;
+}
+
+##------------------------------------------
+##--------------------- global API functions
+
+# return names of provided functions
+BEGIN { $TYPEINFO{Interface} = ["function", ["list", "string"], "any", "any"];}
+sub Interface {
+
+ my $self = shift;
+ my @interface = (
+ "GUIClient",
+ "Check",
+ "Name",
+ "Summary",
+ "Restriction",
+ "WriteBefore",
+ "Write",
+ "AddBefore",
+ "Add",
+ "EditBefore",
+ "Edit",
+ "Interface",
+ "Disable",
+ "Enable",
+ "PluginPresent",
+ "PluginRemovable",
+ "Error",
+ );
+ return \@interface;
+}
+
+# return error message, generated by plugin
+BEGIN { $TYPEINFO{Error} = ["function", "string", "any", "any"];}
+sub Error {
+
+ return $error;
+}
+
+
+# return plugin name, used for GUI (translated)
+BEGIN { $TYPEINFO{Name} = ["function", "string", "any", "any"];}
+sub Name {
+
+ # plugin name
+ return __("Shadow Account Configuration");
+}
+
+##------------------------------------
+# return plugin summary (to be shown in table with all plugins)
+BEGIN { $TYPEINFO{Summary} = ["function", "string", "any", "any"];}
+sub Summary {
+
+ # user plugin summary (table item)
+ return __("Edit Shadow Account attributes");
+}
+
+##------------------------------------
+# checks the current data map of user (2nd parameter) and returns
+# true if given user has our plugin
+BEGIN { $TYPEINFO{PluginPresent} = ["function", "boolean", "any", "any"];}
+sub PluginPresent {
+
+ my ($self, $config, $data) = @_;
+
+ if (contains ($data->{'objectclass'}, $user_object_class, 1)) {
+ y2milestone ("LDAPShadowAccount plugin present");
+ return 1;
+ } else {
+ y2debug ("LDAPShadowAccount plugin not present");
+ return 0;
+ }
+}
+
+##------------------------------------
+# Is it possible to remove this plugin from user?
+BEGIN { $TYPEINFO{PluginRemovable} = ["function", "boolean", "any", "any"];}
+sub PluginRemovable {
+
+ return YaST::YCP::Boolean (1);
+}
+
+
+##------------------------------------
+# return name of YCP client defining YCP GUI
+BEGIN { $TYPEINFO{GUIClient} = ["function", "string", "any", "any"];}
+sub GUIClient {
+
+ return "users_plugin_ldap_shadowaccount";
+}
+
+##------------------------------------
+# Type of objects this plugin is restricted to.
+# Plugin is restricted to LDAP users
+BEGIN { $TYPEINFO{Restriction} = ["function",
+ ["map", "string", "any"], "any", "any"];}
+sub Restriction {
+
+ return {
+ "ldap" => 1,
+ "user" => 1
+ };
+}
+
+
+##------------------------------------
+# check if all required atributes of LDAP entry are present
+# parameter is (whole) map of user
+# return error message
+BEGIN { $TYPEINFO{Check} = ["function",
+ "string",
+ "any",
+ "any"];
+}
+sub Check {
+
+ my ($self, $config, $data) = @_;
+
+ # attribute conversion
+ my @required_attrs = ();
+ my @object_classes = ();
+ if (defined $data->{"objectclass"} && ref $data->{"objectclass"} eq "ARRAY")
+ {
+ @object_classes = @{$data->{"objectclass"}};
+ }
+
+ # get the attributes required for entry's object classes
+ foreach my $class (@object_classes) {
+ my $req = Ldap->GetRequiredAttributes ($class);
+ if (defined $req && ref ($req) eq "ARRAY") {
+ foreach my $r (@{$req}) {
+ if (!contains (\@required_attrs, $r, 1)) {
+ push @required_attrs, $r;
+ }
+ }
+ }
+ }
+ my $action = $data->{"what"} || "";
+ # check the presence of required attributes
+ foreach my $req (@required_attrs) {
+ my $attr = lc ($req);
+ my $val = $data->{$attr};
+ if (substr ($action, 0, 5) eq "edit_" && !defined $val) {
+ # when editing using YaPI, attribute dosn't have to be loaded
+ next;
+ }
+ if (!defined $val || $val eq "" ||
+ (ref ($val) eq "ARRAY" &&
+ ((@{$val} == 0) || (@{$val} == 1 && $val->[0] eq "")))) {
+ # error popup (user forgot to fill in some attributes)
+ return sprintf (__("The attribute '%s' is required for this object according
+to its LDAP configuration, but it is currently empty."), $attr);
+ }
+ }
+ return "";
+}
+
+# this will be called from Users::EnableUser
+BEGIN { $TYPEINFO{Enable} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub Enable {
+
+ my ($self, $config, $data) = @_;
+ my $pw = $data->{"userpassword"};
+
+ if ((defined $pw) && $pw =~ m/^\!/) {
+ $pw =~ s/^\!//;
+ $data->{"userpassword"} = $pw;
+ }
+ $data->{"shadowexpire"} = "";
+ y2debug ("Enable LDAPAll called");
+ return $data;
+}
+
+# this will be called from Users::DisableUser
+# set "shadowExpire" to "0",
+# set a "!" before the hash-value in the "userpassword"
+BEGIN { $TYPEINFO{Disable} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub Disable {
+
+ my ($self, $config, $data) = @_;
+
+ my $pw = $data->{"userpassword"};
+
+ if ((defined $pw) && $pw !~ m/^\!/) {
+ $data->{"userpassword"} = "!".$pw;
+ }
+ $data->{"shadowexpire"} = 0;
+ y2debug ("Disable LDAPAll called");
+ return $data;
+}
+
+
+# this will be called at the beggining of Users::Add
+# Could be called multiple times for one user!
+BEGIN { $TYPEINFO{AddBefore} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub AddBefore {
+
+ my ($self, $config, $data) = @_;
+
+ # conflict with PasswordPolicy plugin
+ if (!contains ($data->{'plugins_to_remove'}, $name, 1) &&
+ contains ($data->{'plugins'}, $pwdpolicy_plugin, 1))
+ {
+ # error popup
+ $error = __("It is not possible to add this plugin when
+the plugin for Password Policy is in use.");
+ return undef;
+ }
+ return $data;
+}
+
+
+# This will be called just after Users::Add - the data map probably contains
+# the values which we could use to create new ones
+# Could be called multiple times for one user!
+BEGIN { $TYPEINFO{Add} = ["function", ["map", "string", "any"], "any", "any"];}
+sub Add {
+
+ my ($self, $config, $data) = @_;
+ if (contains ($data->{'plugins_to_remove'}, $name, 1)) {
+ y2milestone ("removing plugin $name ...");
+ $data = remove_plugin_data ($config, $data);
+ }
+ else {
+ $data = update_object_classes ($config, $data);
+ }
+ return $data;
+}
+
+# this will be called at the beggining of Users::Edit
+BEGIN { $TYPEINFO{EditBefore} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub EditBefore {
+
+ my ($self, $config, $data) = @_;
+ # $data: only new data that will be copied to current user map
+ # data of original user are saved as a submap of $config
+ # data with key "org_data"
+
+ # in $data hash, there could be "plugins_to_remove": list of plugins which
+ # has to be removed from the user
+
+ # conflict with PasswordPolicy plugin
+ if (!contains ($data->{'plugins_to_remove'}, $name, 1) &&
+ contains ($data->{'plugins'}, $pwdpolicy_plugin, 1))
+ {
+ # error popup
+ $error = __("It is not possible to add this plugin when
+the plugin for Password Policy is in use.");
+ return undef;
+ }
+ return $data;
+}
+
+# this will be called just after Users::Edit
+BEGIN { $TYPEINFO{Edit} = ["function",
+ ["map", "string", "any"],
+ "any", "any"];
+}
+sub Edit {
+
+ my ($self, $config, $data) = @_;
+
+ if (contains ($data->{'plugins_to_remove'}, $name, 1)) {
+ y2milestone ("removing plugin $name ...");
+ $data = remove_plugin_data ($config, $data);
+ }
+ else {
+ $data = update_object_classes ($config, $data);
+ }
+ y2debug ("Edit LDAPAll called");
+ return $data;
+}
+
+
+
+# what should be done before user is finally written to LDAP
+BEGIN { $TYPEINFO{WriteBefore} = ["function", "boolean", "any", "any"];}
+sub WriteBefore {
+
+ y2debug ("WriteBefore LDAPAll called");
+ return YaST::YCP::Boolean (1);
+}
+
+# what should be done after user is finally written to LDAP
+BEGIN { $TYPEINFO{Write} = ["function", "boolean", "any", "any"];}
+sub Write {
+
+ y2debug ("Write LDAPAll called");
+ return YaST::YCP::Boolean (1);
+}
+1
+# EOF
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/cmdline.ycp new/yast2-users-2.15.1/src/cmdline.ycp
--- old/yast2-users-2.15.0/src/cmdline.ycp 2006-12-01 13:43:22.000000000 +0100
+++ new/yast2-users-2.15.1/src/cmdline.ycp 2006-12-04 16:40:28.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Command line interface functions.
* Authors: Jiri Suchomel <jsuchome(a)suse.cz>
*
- * $Id: cmdline.ycp 31989 2006-07-26 07:42:34Z jsuchome $
+ * $Id: cmdline.ycp 34733 2006-12-04 15:40:26Z jsuchome $
*
* All command line interface functions.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/dialogs.ycp new/yast2-users-2.15.1/src/dialogs.ycp
--- old/yast2-users-2.15.0/src/dialogs.ycp 2006-09-18 17:53:18.000000000 +0200
+++ new/yast2-users-2.15.1/src/dialogs.ycp 2006-12-07 09:44:22.000000000 +0100
@@ -37,30 +37,6 @@
string default_pw = "******";
/**
- * helper function: return the 'any' value as integer
- */
-define integer GetInt (any value, integer default_value) {
-
- if (value == nil)
- return default_value;
- if (is (value, integer))
- return (integer) value;
- if (is (value, string) && value != "")
- return tointeger ((string)value);
- return default_value;
-}
-
-/**
- * helper function: return the 'any' value as string
- */
-define string GetString (any value, string default_value) {
-
- if (value == nil)
- return default_value;
- return sformat ("%1", value);
-}
-
-/**
* Upperase letters were used in username! (see bug #26409)
* In these popup, ask user what to do.
*/
@@ -567,11 +543,12 @@
`HSpacing (3),
`VBox (
`VStretch(),
- `Top(`Left (`Label (sformat (
- // label
- _("Last Password Change: %1"), last_change )))),
- `VSpacing (1),
+ `Left (`Label ("")),
`HSquash(`VBox(
+ `Left (`Label (sformat (
+ // label
+ _("Last Password Change: %1"), last_change ))),
+ `VSpacing (1),
`IntField (`id ("shadowwarning"),
// intfield label
_("Days &before Password Expiration to Issue Warning"),
@@ -681,7 +658,7 @@
`item(`id(`details), _("&Details") ),
];
- if (!do_not_edit)
+ if (!do_not_edit && user_type != "ldap")
{
// tab label
tabs = add (tabs,`item(`id(`passwordsettings),_("Pass&word Settings")));
@@ -1461,20 +1438,6 @@
{
UI::ReplaceWidget(`tabContents, get_password_term ());
Wizard::SetHelpText (EditUserPasswordDialogHelp());
- if (user_type == "ldap")
- {
- list ocs = maplist (
- string oc, user["objectclass"]:[], ``(tolower (oc)));
- if (!contains (ocs, "shadowaccount"))
- {
- ocs = add (ocs, "shadowaccount");
- user["objectclass"] = ocs;
- foreach (string k, any v, Users::GetDefaultShadow ("ldap"), {
- if (!haskey (user, k))
- user[k] = v;
- });
- }
- }
current = ret;
}
if (ret == `plugins)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/inst_root.ycp new/yast2-users-2.15.1/src/inst_root.ycp
--- old/yast2-users-2.15.0/src/inst_root.ycp 2006-11-29 09:32:38.000000000 +0100
+++ new/yast2-users-2.15.1/src/inst_root.ycp 2006-12-04 16:40:28.000000000 +0100
@@ -14,7 +14,7 @@
*
* Authors: Klaus Kämpf <kkaempf(a)suse.de>
*
- * $Id: inst_root.ycp 31699 2006-06-29 09:28:00Z jsuchome $
+ * $Id: inst_root.ycp 34733 2006-12-04 15:40:26Z jsuchome $
*/
{
textdomain "users";
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/inst_user.ycp new/yast2-users-2.15.1/src/inst_user.ycp
--- old/yast2-users-2.15.0/src/inst_user.ycp 2006-09-21 16:11:08.000000000 +0200
+++ new/yast2-users-2.15.1/src/inst_user.ycp 2006-12-15 15:25:41.000000000 +0100
@@ -24,8 +24,10 @@
any ret = `back;
- // hide the inst_auth content
- Wizard::SetContents ("", `Empty (), "",
+ // dialog caption
+ string caption = _("User Authentication Method");
+ // help text (shown in the 'busy' situation)
+ Wizard::SetContents (caption, `Empty (), _("Initialization of module for configuration of authentication..."),
GetInstArgs::enable_back(), GetInstArgs::enable_next()
);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/routines.ycp new/yast2-users-2.15.1/src/routines.ycp
--- old/yast2-users-2.15.0/src/routines.ycp 2006-09-18 17:53:18.000000000 +0200
+++ new/yast2-users-2.15.1/src/routines.ycp 2006-12-05 13:07:49.000000000 +0100
@@ -11,6 +11,31 @@
textdomain "users";
/**
+ * helper function: return the 'any' value as integer
+ */
+define integer GetInt (any value, integer default_value) {
+
+ if (value == nil)
+ return default_value;
+ if (is (value, integer))
+ return (integer) value;
+ if (is (value, string) && value != "")
+ return tointeger ((string)value);
+ return default_value;
+}
+
+/**
+ * helper function: return the 'any' value as string
+ */
+define string GetString (any value, string default_value) {
+
+ if (value == nil)
+ return default_value;
+ return sformat ("%1", value);
+}
+
+
+/**
* Split cn (fullname) in forename and surname.
* @param what `surname or `forename
* @param cn fullname
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/users_plugin_ldap_passwordpolicy.ycp new/yast2-users-2.15.1/src/users_plugin_ldap_passwordpolicy.ycp
--- old/yast2-users-2.15.0/src/users_plugin_ldap_passwordpolicy.ycp 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-users-2.15.1/src/users_plugin_ldap_passwordpolicy.ycp 2006-12-18 14:39:30.000000000 +0100
@@ -0,0 +1,157 @@
+/**
+ * File:
+ * include/users/users_plugin_ldap_passwordpolicy.ycp
+ *
+ * Package:
+ * Configuration of Users
+ *
+ * Summary:
+ * This is GUI part of UsersPluginLDAPPasswordPolicy
+ * - plugin for editing LDAP user password policy (see feature 301179)
+ *
+ * Authors:
+ * Jiri Suchomel <jsuchome(a)suse.cz>
+ *
+ * $Id$
+ */
+
+
+{
+ textdomain "users";
+
+ import "Label";
+ import "Report";
+ import "Users";
+ import "UsersPluginLDAPPasswordPolicy"; // plugin module
+ import "Wizard";
+
+ any ret = nil;
+ string func = "";
+ map<string,any> config = $[];
+ map<string,any> data = $[];
+
+ /* Check arguments */
+ if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
+ func = (string) WFM::Args(0);
+ if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
+ config = (map<string,any>)WFM::Args(1);
+ if(size(WFM::Args()) > 2 && is(WFM::Args(2), map))
+ data = (map<string,any>)WFM::Args(2);
+ }
+ y2milestone("----------------------------------------");
+ y2milestone("users plugin started: LDAPPasswordPolicy");
+
+ y2debug ("func=%1", func);
+ y2debug ("config=%1", config);
+ y2debug ("data=%1", data);
+
+ if (func == "Summary") {
+ ret = UsersPluginLDAPPasswordPolicy::Summary (config, $[]);
+ }
+ else if (func == "Name") {
+ ret = UsersPluginLDAPPasswordPolicy::Name (config, $[]);
+ }
+ else if (func == "Dialog") {
+ // define the dialog for this plugin and return it's contents
+
+ string caption = UsersPluginLDAPPasswordPolicy::Name (config, $[]);
+ map<string, any> tmp_data = $[];
+
+ // helptext
+ string help_text = _("help text for LDAPPasswordPolicy plugin FIXME");
+
+ boolean pwdreset = data["pwdreset"]:"0" == "1";
+ string pwdpolicysubentry = data["pwdpolicysubentry"]:"";
+
+ term contents = `HBox (
+ `HSpacing (3),
+ `VBox (
+ `HBox (
+ // text entry label
+ `TextEntry (`id ("pwdpolicysubentry"),
+ _("DN of &Password Policy object"), pwdpolicysubentry),
+ `VBox (
+ `Label (""),
+ `PushButton (`id (`browse), Label::BrowseButton ())
+ )
+ ),
+ `Left (
+ `CheckBox (`id ("pwdreset"), _("&Reset Password"), pwdreset)
+ )
+ ),
+ `HSpacing (3)
+ );
+
+ Wizard::CreateDialog ();
+ Wizard::SetDesktopIcon("users");
+
+ // dialog caption
+ Wizard::SetContentsButtons(_("Password Policy Settings"),
+ contents, help_text, Label::CancelButton(), Label::AcceptButton());
+
+ Wizard::HideAbortButton ();
+
+ ret = `next;
+ repeat
+ {
+ ret = UI::UserInput();
+ if (ret == `browse)
+ {
+// Popup::Message ("not implemented");
+ continue;
+ }
+ if (ret == `next)
+ {
+ string new_pwdpolicysubentry = (string)
+ UI::QueryWidget (`id ("pwdpolicysubentry"), `Value);
+ if (new_pwdpolicysubentry != pwdpolicysubentry)
+ tmp_data["pwdpolicysubentry"] = new_pwdpolicysubentry;
+
+ boolean new_pwdreset = (boolean) UI::QueryWidget (`id ("pwdreset"), `Value);
+ if (new_pwdreset != pwdreset)
+ tmp_data["pwdreset"] = new_pwdreset;
+
+ if (tmp_data == $[])
+ break;
+
+ string err = UsersPluginLDAPPasswordPolicy::Check (config, tmp_data);
+
+ if (err != "")
+ {
+ Report::Error (err);
+ ret = `notnext;
+ continue;
+ }
+
+ // if this plugin wasn't in default set, we must save its name
+ if (!contains (data["plugins"]:[], "UsersPluginLDAPPasswordPolicy"))
+ {
+ tmp_data["plugins"] = add (tmp_data["plugins"]:[],
+ "UsersPluginLDAPPasswordPolicy");
+ }
+ if (data["what"]:"" == "edit_user")
+ {
+ Users::EditUser (tmp_data);
+ }
+ else if (data["what"]:"" == "add_user")
+ {
+ Users::AddUser (tmp_data);
+ }
+ }
+ } until (is(ret,symbol) &&
+ contains ([`next, `abort, `back, `cancel], (symbol) ret));
+
+ Wizard::CloseDialog ();
+ }
+ /* unknown function */
+ else {
+ y2error("unknown function: %1", func);
+ ret = false;
+ }
+
+ y2debug ("ret=%1", ret);
+ y2milestone("users plugin finished");
+ y2milestone("----------------------------------------");
+
+ return ret;
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/users_plugin_ldap_shadowaccount.ycp new/yast2-users-2.15.1/src/users_plugin_ldap_shadowaccount.ycp
--- old/yast2-users-2.15.0/src/users_plugin_ldap_shadowaccount.ycp 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-users-2.15.1/src/users_plugin_ldap_shadowaccount.ycp 2006-12-07 11:04:01.000000000 +0100
@@ -0,0 +1,240 @@
+/**
+ * File:
+ * include/users/users_plugin_ldap_shadowaccount.ycp
+ *
+ * Package:
+ * Configuration of Users
+ *
+ * Summary:
+ * This is GUI part of UsersPluginLDAPShadowAccount
+ * - plugin for editing ShadowAccount LDAP user attributes.
+ *
+ * Authors:
+ * Jiri Suchomel <jsuchome(a)suse.cz>
+ *
+ * $Id$
+ */
+
+
+{
+ textdomain "users";
+
+ import "Label";
+ import "Popup";
+ import "Report";
+ import "Users";
+ import "UsersPluginLDAPShadowAccount"; // plugin module
+ import "Wizard";
+
+ include "users/helps.ycp";
+ include "users/routines.ycp";
+
+ any ret = nil;
+ string func = "";
+ map<string,any> config = $[];
+ map<string,any> data = $[];
+
+ /* Check arguments */
+ if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
+ func = (string) WFM::Args(0);
+ if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
+ config = (map<string,any>)WFM::Args(1);
+ if(size(WFM::Args()) > 2 && is(WFM::Args(2), map))
+ data = (map<string,any>)WFM::Args(2);
+ }
+ y2milestone("----------------------------------------");
+ y2milestone("users plugin started: LDAPShadowAccount");
+
+ y2debug ("func=%1", func);
+ y2debug ("config=%1", config);
+ y2debug ("data=%1", data);
+
+ if (func == "Summary") {
+ ret = UsersPluginLDAPShadowAccount::Summary (config, $[]);
+ }
+ else if (func == "Name") {
+ ret = UsersPluginLDAPShadowAccount::Name (config, $[]);
+ }
+ // define the dialog for this plugin and return it's contents
+ else if (func == "Dialog") {
+
+ string caption = UsersPluginLDAPShadowAccount::Name (config, $[]);
+ map<string, any> tmp_data = $[];
+
+ string help_text = EditUserPasswordDialogHelp ();
+
+ // date of password expiration
+ string exp_date = "";
+
+ string last_change = GetString (data["shadowlastchange"]:nil, "0");
+ string expires = GetString (data["shadowexpire"]:nil, "0");
+ if (expires == "")
+ expires = "0";
+
+ integer inact = GetInt (data["shadowinactive"]:nil, 0);
+ integer max = GetInt (data["shadowmax"]:nil, 0);
+ integer min = GetInt (data["shadowmin"]:nil, 0);
+ integer warn = GetInt (data["shadowwarning"]:nil, 0);
+
+ if (last_change != "0")
+ {
+ map out = (map)SCR::Execute (.target.bash_output, sformat ("date --date='1970-01-01 00:00:01 %1 days' +\"%%x\"", last_change));
+ // label (date of last password change)
+ last_change = out["stdout"]:_("Unknown");
+ }
+ else
+ {
+ // label (date of last password change)
+ last_change = _("Never");
+ }
+ if (expires != "0" && expires != "-1" && expires != "")
+ {
+ map out = (map)SCR::Execute (.target.bash_output, sformat ("date --date='1970-01-01 00:00:01 %1 days' ", expires) + "+\"%Y-%m-%d\"");
+ // remove \n from the end
+ exp_date = deletechars (out["stdout"]:"", "\n");
+ }
+ term contents = `HBox (
+ `HSpacing (3),
+ `VBox (
+ `VStretch(),
+ `Left (`Label ("")),
+ `HSquash(`VBox(
+ `Left (`Label (sformat (
+ // label
+ _("Last Password Change: %1"), last_change ))),
+ `VSpacing (1),
+ `IntField (`id ("shadowwarning"),
+ // intfield label
+ _("Days &before Password Expiration to Issue Warning"),
+ -1, 99999, warn),
+ `VSpacing (0.5),
+ `IntField (`id ("shadowinactive"),
+ // intfield label
+ _("Days after Password Expires with Usable &Login"),
+ -1, 99999, inact),
+ `VSpacing (0.5),
+ `IntField (`id ("shadowmax"),
+ // intfield label
+ _("Ma&ximum Number of Days for the Same Password"),
+ -1, 99999, max),
+ `VSpacing (0.5),
+ `IntField (`id ("shadowmin"),
+ // intfield label
+ _("&Minimum Number of Days for the Same Password"),
+ -1, 99999, min),
+ `VSpacing (0.5),
+ `TextEntry (`id ("shadowexpire"),
+ // textentry label
+ _("Ex&piration Date"), exp_date)
+ )),
+ `VStretch ()),
+ `HSpacing (3)
+ );
+
+ Wizard::CreateDialog ();
+ Wizard::SetDesktopIcon("users");
+
+ // dialog caption
+ Wizard::SetContentsButtons (_("Shadow Account Settings"),
+ contents, EditUserPasswordDialogHelp (),
+ Label::CancelButton(), Label::AcceptButton());
+
+ Wizard::HideAbortButton ();
+
+ ret = `next;
+ repeat
+ {
+ ret = UI::UserInput();
+ if (ret == `next)
+ {
+ string exp = (string)
+ UI::QueryWidget (`id ("shadowexpire"), `Value);
+ if (exp != "" &&
+ !regexpmatch (exp,"[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]"))
+ {
+ // popup text: Don't reorder the letters YYYY-MM-DD!!!
+ // The date must stay in this format
+ Popup::Message(_("The expiration date must be in the format YYYY-MM-DD."));
+ UI::SetFocus (`id ("shadowexpire"));
+ continue;
+ }
+
+ foreach (string shadowsymbol,
+ ["shadowwarning","shadowmax","shadowmin", "shadowinactive"],
+ {
+ string sval = sformat ("%1",
+ UI::QueryWidget (`id(shadowsymbol), `Value));
+ if (sformat ("%1", data[shadowsymbol]:"") != sval)
+ {
+ tmp_data[shadowsymbol] = sval;
+ }
+ });
+
+ string new_exp_date = (string)
+ UI::QueryWidget(`id("shadowexpire"),`Value);
+ if (new_exp_date != exp_date)
+ {
+ exp_date = new_exp_date;
+ if (exp_date == "")
+ {
+ tmp_data["shadowexpire"] = "";
+ }
+ else
+ {
+ map out = (map)SCR::Execute(.target.bash_output,
+ sformat("date --date='%1 UTC' ", exp_date) + "+%s");
+ string seconds_s = deletechars(out["stdout"]:"0","\n");
+ if (seconds_s != "")
+ {
+ integer days = (tointeger (seconds_s)) / (60*60*24);
+ tmp_data["shadowexpire"] = sformat("%1", days);
+ }
+ }
+ }
+ string err = UsersPluginLDAPShadowAccount::Check (
+ config,
+ (map<string,any>) union (data, tmp_data));
+
+ if (err != "")
+ {
+ Report::Error (err);
+ ret = `notnext;
+ continue;
+ }
+
+ if (tmp_data == $[])
+ {
+ break;
+ }
+ // if this plugin wasn't in default set, we must save its name
+ if (!contains (data["plugins"]:[], "UsersPluginLDAPShadowAccount"))
+ {
+ tmp_data["plugins"] = add (tmp_data["plugins"]:[],
+ "UsersPluginLDAPShadowAccount");
+ }
+ if (data["what"]:"" == "edit_user")
+ {
+ Users::EditUser (tmp_data);
+ }
+ else if (data["what"]:"" == "add_user")
+ {
+ Users::AddUser (tmp_data);
+ }
+ }
+ } until (is(ret,symbol) &&
+ contains ([`next, `abort, `back, `cancel], (symbol) ret));
+
+ Wizard::CloseDialog ();
+ }
+ /* unknown function */
+ else {
+ y2error("unknown function: %1", func);
+ ret = false;
+ }
+
+ y2debug ("ret=%1", ret);
+ y2milestone("users plugin finished");
+ y2milestone("----------------------------------------");
+
+ return ret;
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.15.0/src/widgets.ycp new/yast2-users-2.15.1/src/widgets.ycp
--- old/yast2-users-2.15.0/src/widgets.ycp 2006-11-24 10:47:38.000000000 +0100
+++ new/yast2-users-2.15.1/src/widgets.ycp 2006-12-05 14:57:13.000000000 +0100
@@ -305,7 +305,10 @@
user_attributes : group_attributes)
),
`HSpacing (),
- `ComboBox (`id(`eq), "", equality),
+ `VBox (
+ `Label (""),
+ `ComboBox (`id(`eq), "", equality)
+ ),
`HSpacing (),
// textentry label
`TextEntry (`id(`val), _("&Value"), "")
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 gftp
checked in at Wed Dec 20 02:27:32 CET 2006.
--------
--- GNOME/gftp/gftp.changes 2006-05-19 03:33:34.000000000 +0200
+++ /mounts/work_src_done/STABLE/gftp/gftp.changes 2006-12-18 18:25:15.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Dec 18 18:24:33 CET 2006 - maw(a)suse.de
+
+- Make gftp find its license (#227368)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gftp.spec ++++++
--- /var/tmp/diff_new_pack.90uEZu/_old 2006-12-20 02:27:22.000000000 +0100
+++ /var/tmp/diff_new_pack.90uEZu/_new 2006-12-20 02:27:22.000000000 +0100
@@ -12,11 +12,11 @@
Name: gftp
BuildRequires: docbook-toys gtk2-devel indent openssl-devel readline-devel te_ams update-desktop-files
-License: GPL
+License: GNU General Public License (GPL)
Group: Productivity/Networking/Ftp/Clients
Autoreqprov: on
Version: 2.0.18
-Release: 26
+Release: 49
Source0: gftp-%{version}.tar.bz2
URL: http://gftp.seul.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -61,7 +61,6 @@
%install
make DESTDIR=$RPM_BUILD_ROOT install
-rm $RPM_BUILD_ROOT/opt/gnome/share/gftp/COPYING
gzip -9nf $RPM_BUILD_ROOT/opt/gnome/share/man/man?/*.?
%suse_update_desktop_file -N "Gnome FTP" -G "File Transfer" -r %name Application FileManager
@@ -79,6 +78,8 @@
/opt/gnome/share/pixmaps/*.png
%changelog -n gftp
+* Mon Dec 18 2006 - maw(a)suse.de
+- Make gftp find its license (#227368)
* Thu May 18 2006 - sreeves(a)suse.de
- Fix for 6396 - delete tmp files
Fix for 176373 - Poor application categories
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
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 liferea
checked in at Wed Dec 20 02:22:44 CET 2006.
--------
--- GNOME/liferea/liferea.changes 2006-11-30 19:37:28.000000000 +0100
+++ /mounts/work_src_done/STABLE/liferea/liferea.changes 2006-12-20 01:22:51.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 20 01:21:18 CET 2006 - jhargadon(a)suse.de
+
+- fixed an issue where liferea was being displayed twice in the
+ desktop menu. (#225609)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ liferea.spec ++++++
--- /var/tmp/diff_new_pack.ymAn4U/_old 2006-12-20 02:22:37.000000000 +0100
+++ /var/tmp/diff_new_pack.ymAn4U/_new 2006-12-20 02:22:37.000000000 +0100
@@ -18,7 +18,7 @@
Group: Productivity/Other
Autoreqprov: on
Version: 1.0.20
-Release: 34
+Release: 40
Summary: Linux Feed Reader
Source: %{name}-%{version}.tar.bz2
Patch: %{name}-opensuse-feeds.patch
@@ -76,7 +76,7 @@
%install
make install DESTDIR=$RPM_BUILD_ROOT
-%suse_update_desktop_file -N "Liferea" liferea X-SuSE-RSS-News
+%suse_update_desktop_file -r -N "Liferea" liferea Network X-SuSE-RSS-News
%find_lang liferea
%post
@@ -98,6 +98,9 @@
%{prefix}/share/pixmaps/liferea.png
%changelog -n liferea
+* Wed Dec 20 2006 - jhargadon(a)suse.de
+- fixed an issue where liferea was being displayed twice in the
+ desktop menu. (#225609)
* Thu Nov 30 2006 - sbrabec(a)suse.cz
- Fixed xulrunner dependencies for older products.
* Tue Nov 07 2006 - sbrabec(a)suse.cz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0