openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
June 2006
- 1 participants
- 1015 discussions
Hello community,
here is the log from the commit of package sysconfig
checked in at Tue Jun 27 18:39:24 CEST 2006.
--------
--- sysconfig/sysconfig.changes 2006-06-02 16:04:42.000000000 +0200
+++ sysconfig/sysconfig.changes 2006-06-26 22:18:58.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jun 26 22:18:48 CEST 2006 - schwab(a)suse.de
+
+- Handle aoa-soundbus subsystem.
+
+-------------------------------------------------------------------
New:
----
sysconfig-soundbus.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sysconfig.spec ++++++
--- /var/tmp/diff_new_pack.6YZs5m/_old 2006-06-27 18:36:47.000000000 +0200
+++ /var/tmp/diff_new_pack.6YZs5m/_new 2006-06-27 18:36:47.000000000 +0200
@@ -13,7 +13,7 @@
Name: sysconfig
BuildRequires: autofs portmap sysfsutils ypbind
Version: 0.50.9
-Release: 15
+Release: 16
Summary: The sysconfig scheme
Group: System/Base
License: GPL
@@ -22,6 +22,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %fillup_prereq %insserv_prereq textutils fileutils gawk /usr/bin/sed /usr/bin/grep
Source: %name-%version.tar.bz2
+Patch1: sysconfig-soundbus.diff
%description
This package provides the SuSE system configuration scheme.
@@ -41,6 +42,7 @@
%prep
%setup -n sysconfig-%{version}
+%patch1
%build
autoreconf --force --install
@@ -207,6 +209,8 @@
%{insserv_cleanup}
%changelog -n sysconfig
+* Mon Jun 26 2006 - schwab(a)suse.de
+- Handle aoa-soundbus subsystem.
* Fri Jun 02 2006 - zoz(a)suse.de
- Changed comment for LOAD_UNSUPPORTED_MODULES_AUTOMATICALLY; now
also rcacpid respects this setting (Bug 180654)
++++++ sysconfig-soundbus.diff ++++++
--- config/80-sysconfig.rules
+++ config/80-sysconfig.rules
@@ -8,6 +8,7 @@
SUBSYSTEM=="scsi_host", ACTION=="add", SYSFS{proc_name}=="zfcp", RUN+="/sbin/hwup scsi_host-devpath-%p -o hotplug"
SUBSYSTEM=="vio", ACTION=="add", RUN+="/sbin/hwup bus-macio-%k -o hotplug"
SUBSYSTEM=="macio", ACTION=="add", RUN+="/sbin/hwup bus-macio-%k -o hotplug"
+SUBSYSTEM=="aoa-soundbus", ACTION=="add", RUN+="/sbin/hwup bus-aoa-soundbus-%k -o hotplug"
SUBSYSTEM=="ccw", ACTION=="add", RUN+="/sbin/hwup ccw-devpath-%p -o hotplug"
SUBSYSTEM=="ccwgroup", ACTION=="add", RUN+="/sbin/hwup ccwgroup-devpath-%p -o hotplug"
SUBSYSTEM=="pnp", ACTION=="add", RUN+="/sbin/hwup pnp-devpath-%p -o hotplug"
--- scripts/hardware/hwup
+++ scripts/hardware/hwup
@@ -79,6 +79,7 @@
pnp) return 0 ;;
scsi) return 0 ;;
scsi_host) return 0 ;;
+ aoa-soundbus) return 0 ;;
usb) return 0 ;;
vio) return 0 ;;
static) return 0 ;; # for static device configs
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 smart
checked in at Tue Jun 27 18:32:48 CEST 2006.
--------
--- smart/smart.changes 2006-06-22 19:16:56.000000000 +0200
+++ smart/smart.changes 2006-06-26 07:39:47.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jun 26 07:35:34 CEST 2006 - cthiel(a)suse.de
+
+- update to final 0.42 release
+
+-------------------------------------------------------------------
Old:
----
smart-0.41.99.tar.bz2
New:
----
smart-0.42.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ smart.spec ++++++
--- /var/tmp/diff_new_pack.ZTqvJD/_old 2006-06-27 18:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.ZTqvJD/_new 2006-06-27 18:31:55.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package smart (Version 0.41.99)
+# spec file for package smart (Version 0.42)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,8 +13,8 @@
Name: smart
BuildRequires: kdelibs3-devel python-devel python-elementtree python-gtk rpm-devel rpm-python update-desktop-files
Summary: Smart Package Manager
-Version: 0.41.99
-Release: 2
+Version: 0.42
+Release: 1
Source: %{name}-%{version}.tar.bz2
Source1: distro.py
Source2: %{name}.desktop
@@ -161,6 +161,8 @@
/opt/kde3/share/apps/konqueror
%changelog -n smart
+* Mon Jun 26 2006 - cthiel(a)suse.de
+- update to final 0.42 release
* Thu Jun 22 2006 - cthiel(a)suse.de
- turn rpm-check-signatures=true into a weak default option
* Fri Jun 16 2006 - cthiel(a)suse.de
++++++ smart-0.41.99.tar.bz2 -> smart-0.42.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/PKG-INFO new/smart-0.42/PKG-INFO
--- old/smart-0.41.99/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/smart-0.42/PKG-INFO 2006-06-26 03:59:15.000000000 +0200
@@ -0,0 +1,11 @@
+Metadata-Version: 1.0
+Name: smart
+Version: 0.42
+Summary: Smart Package Manager is a next generation package handling tool
+Home-page: http://smartpm.org
+Author: Gustavo Niemeyer
+Author-email: gustavo(a)niemeyer.net
+License: GPL
+Description: Smart Package Manager is a next generation package handling tool.
+
+Platform: UNKNOWN
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/README new/smart-0.42/README
--- old/smart-0.41.99/README 2006-06-16 13:45:24.000000000 +0200
+++ new/smart-0.42/README 2006-01-24 19:11:45.000000000 +0100
@@ -4,7 +4,7 @@
:Author: Gustavo Niemeyer
:Contact: niemeyer(a)conectiva.com
:Revision: $Rev: 689 $
-:Date: $Date: 2006-01-24 19:11:45 +0100 (Di, 24 Jan 2006) $
+:Date: $Date: 2006-01-24 16:11:45 -0200 (Tue, 24 Jan 2006) $
.. contents::
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/cdproblems.py new/smart-0.42/sandbox/cdproblems.py
--- old/smart-0.41.99/sandbox/cdproblems.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/cdproblems.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
-import sys
-sys.argv = ["./smart.py", "test"]
-execfile('./smart.py')
-import user
-
-# Check if upgrading a package would require upgrading another
-# package which is in a higher numbered CD.
-
-from smart.transaction import *
-
-set = ChangeSet()
-
-# Mark every CL9 package as installed, and being removed.
-for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl9"):
- pkg.installed = True
- set[pkg] = REMOVE
-
-# Now mark for installing every package in CL10 CDs.
-for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl10"):
- set[pkg] = INSTALL
-
-#trans = Transaction(cache, PolicyUpgrade)
-#trans.setPolicy(PolicyUpgrade)
-#trans.upgrade([x for x in cache.getPackages() if x.installed])
-#for pkg in cache.getPackages():
-# if pkg.installed:
-# trans.enqueue(pkg, UPGRADE)
-#try:
-# trans.run()
-#except KeyboardInterrupt:
-# pass
-#trans.install([x for x in cache.getPackages() if not x.installed and x.name == "openssl-devel"][0])
-
-# Now build a subset, and check if including each package in the
-# first CD would require installing a package in CDs 2 or 3.
-
-splitter = ChangeSetSplitter(set)
-subset = set.copy()
-
-cl10cd1 = []
-for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName() == "cl10.001":
- cl10cd1.append(pkg)
-cl10cd2 = []
-for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName() == "cl10.002":
- cl10cd2.append(pkg)
-cl10cd3 = []
-for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName() == "cl10.003":
- cl10cd3.append(pkg)
-
-krb5 = [x for x in subset if x.name == "krb5"][0]
-krb5server = [x for x in subset if x.name == "krb5-server"][0]
-coreutils = [x for x in subset if x.name == "coreutils"][0]
-
-# vim:ts=4:sw=4:et
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/crossrepository.py new/smart-0.42/sandbox/crossrepository.py
--- old/smart-0.41.99/sandbox/crossrepository.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/crossrepository.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,45 +0,0 @@
-import sys
-sys.argv = ["./smart.py", "test"]
-execfile('./smart.py')
-
-MAIN = "cooker-ciril"
-CONTRIB = "contrib-ciril"
-
-def main():
- for pkg in cache.getPackages():
- for loader in pkg.loaders:
- if loader.getChannel().getAlias() == MAIN:
- break
- else:
- continue
- firstreq = True
- for req in pkg.requires:
- foundmain = False
- foundcontrib = []
- for prv in req.providedby:
- for prvpkg in prv.packages:
- for loader in prvpkg.loaders:
- name = loader.getChannel().getAlias()
- if name == CONTRIB:
- foundcontrib.append((prv, prvpkg))
- elif name == MAIN:
- foundmain = True
- break
- else:
- continue
- break
- if not foundmain:
- if firstreq:
- firstreq = False
- print pkg
- print " Requires:"
- print " ", req
- if foundcontrib:
- print " Contrib:"
- for prv, prvpkg in foundcontrib:
- print " ", prvpkg
- if not firstreq:
- print
-
-if __name__ == "__main__":
- main()
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/fileconflicts.py new/smart-0.42/sandbox/fileconflicts.py
--- old/smart-0.41.99/sandbox/fileconflicts.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/fileconflicts.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,212 +0,0 @@
-import sys
-sys.argv = ["./smart.py", "test"]
-execfile('./smart.py')
-
-# A problem is identified when:
-#
-# 1) a file has been moved to a different package;
-# 2) the new package is not obsoleting nor conflicting with
-# the original package;
-# 3) the new package does not require any package obsoleting or
-# conflicting with the original package;
-#
-# If there's any package obsoleting the original package at
-# all, the problem is reduced, but it still exists since the
-# new owner may be installed with the original package in
-# the system.
-#
-# Internal problems occur when two packages have the same file
-# in the same distribution version. If one package requires the
-# same version of the other package explicitly, then this is
-# not considered a problem, as it's expected to be the same file
-# in both packages.
-
-def isRequiringConflictingPackage(cl10pkg, cl9pkg, donemap=None):
- if not donemap:
- donemap = {}
- donemap[cl10pkg] = True
- # Is any recursively required package conflicting with it?
- for req in cl10pkg.requires:
- for prv in req.providedby:
- # *All* providing packages must conflict with it.
- # Otherwise, it might be installed with one of the
- # non-conflicting package satisfying this dependency.
- found = False
- for pkg in prv.packages:
- try:
- for cnf in pkg.conflicts:
- for prv in cnf.providedby:
- if cl9pkg in prv.packages:
- raise StopIteration
- # This providing package is not conflicting,
- # but a package required by it might be.
- if (pkg not in donemap and
- isRequiringConflictingPackage(pkg, cl9pkg, donemap)):
- raise StopIteration
- except StopIteration:
- found = True
- else:
- found = False
- break
- if found:
- return True
- return False
-
-def main():
-
- cl9dict = {}
- cl10dict = {}
- cl9pathdict = {}
- cl10pathdict = {}
- for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl9"):
- info = loader.getInfo(pkg)
- for path in info.getPathList():
- if info.pathIsDir(path):
- continue
- cl9dict[pkg] = True
- try:
- cl9pathdict[path].append(pkg)
- except KeyError:
- cl9pathdict[path] = [pkg]
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl10"):
- info = loader.getInfo(pkg)
- for path in info.getPathList():
- if info.pathIsDir(path):
- continue
- cl10dict[pkg] = True
- try:
- cl10pathdict[path].append(pkg)
- except KeyError:
- cl10pathdict[path] = [pkg]
-
- # A problem is considered serious when no package conflicts with
- # the original package at all.
- problems = {}
- noupgproblems = {}
- for path in cl9pathdict:
- if path not in cl10pathdict:
- continue
-
- cl9pkgs = cl9pathdict[path]
- cl10pkgs = cl10pathdict[path]
-
- # The same rules apply to every owner in cl9, and
- # to every owner in cl10.
- for cl9pkg in cl9pkgs:
- for cl10pkg in cl10pkgs:
- if cl9pkg.name == cl10pkg.name:
- continue
- try:
- # Is it directly conflicted?
- for cnf in cl10pkg.conflicts:
- for prv in cnf.providedby:
- if cl9pkg in prv.packages:
- raise StopIteration
-
- # Is it indirectly conflicted?
- if isRequiringConflictingPackage(cl10pkg, cl9pkg):
- raise StopIteration
-
- try:
- problems[(cl9pkg, cl10pkg)].append(path)
- except KeyError:
- problems[(cl9pkg, cl10pkg)] = [path]
-
- # Check if some package is conflicting and upgrading
- # the original package at all.
- try:
- for prv in cl9pkg.provides:
- for cnf in prv.conflictedby:
- for cnfpkg in cnf.packages:
- # Check if it's also upgrading.
- if cnfpkg not in [x for y in prv.upgradedby
- for x in y.packages]:
- continue
- for loader in cnfpkg.loaderinfo:
- if loader.getRepository().getName() \
- .startswith("cl10"):
- raise StopIteration
- except StopIteration:
- pass
- else:
- noupgproblems[(cl9pkg, cl10pkg)] = True
-
- except StopIteration:
- pass
-
- # Now check for internal conflicts.
- for path in cl10pathdict:
- cl10pkgs = cl10pathdict[path]
- for cl10pkg1 in cl10pkgs:
- for cl10pkg2 in cl10pkgs:
- if cl10pkg1 is cl10pkg2 or cl10pkg1.name == cl10pkg2.name:
- continue
- if (cl10pkg2, cl10pkg1) in problems:
- continue
- try:
-
- # Is one package requiring another explicitly?
- for req in cl10pkg1.requires:
- if req.relation == "=":
- for prv in req.providedby:
- if cl10pkg2 in req.packages:
- raise StopIteration
- for req in cl10pkg2.requires:
- if req.relation == "=":
- for prv in req.providedby:
- if cl10pkg1 in req.packages:
- raise StopIteration
-
- # Is it directly conflicted?
- for cnf in cl10pkg1.conflicts:
- for prv in cnf.providedby:
- if cl10pkg2 in prv.packages:
- raise StopIteration
- for cnf in cl10pkg2.conflicts:
- for prv in cnf.providedby:
- if cl10pkg1 in prv.packages:
- raise StopIteration
-
- # Is it indirectly conflicted?
- if isRequiringConflictingPackage(cl10pkg1, cl10pkg2):
- raise StopIteration
-
- except StopIteration:
- continue
- else:
- try:
- problems[(cl10pkg1, cl10pkg2)].append(path)
- except KeyError:
- problems[(cl10pkg1, cl10pkg2)] = [path]
-
- print "Problem classes:"
- print "A) An old package has file conflicts with a new package"
- print "B) Same as A, and there's no package upgrading the old package"
- print "C) Same as B, with both packages in the same distribution"
- print
- print "Problems:", len(problems)
- print
- for problem in problems:
- print "Problem class:",
- pkg1, pkg2 = problem
- if pkg1 in cl10dict and pkg2 in cl10dict:
- print "C"
- elif problem in noupgproblems:
- print "B"
- else:
- print "A"
- cl = pkg1 in cl10dict and "CL10:" or "CL9: "
- print cl, pkg1
- cl = pkg2 in cl10dict and "CL10:" or "CL9: "
- print cl, pkg2
- for path in problems[problem]:
- print path
- print
-
-if __name__ == "__main__":
- main()
-
-# vim:ts=4:sw=4:et
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/loops.py new/smart-0.42/sandbox/loops.py
--- old/smart-0.41.99/sandbox/loops.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/loops.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,105 +0,0 @@
-import sys
-sys.argv = ["./smart.py", "test"]
-execfile('./smart.py')
-
-from smart.cache import *
-from sets import Set
-
-def forwardRequires(pkg, set):
- for req in pkg.requires:
- if req not in set:
- set.add(req)
- for prv in req.providedby:
- if prv not in set:
- set.add(prv)
- for prvpkg in prv.packages:
- if prvpkg not in set:
- set.add(prvpkg)
- forwardRequires(prvpkg, set)
-
-def backwardRequires(pkg, set):
- for prv in pkg.provides:
- if prv not in set:
- set.add(prv)
- for req in prv.requiredby:
- if req not in set:
- set.add(req)
- for reqpkg in req.packages:
- if reqpkg not in set:
- set.add(reqpkg)
- backwardRequires(reqpkg, set)
-
-def findPkgLoops(pkg):
- fwd = Set([pkg])
- forwardRequires(pkg, fwd)
- bwd = Set([pkg])
- backwardRequires(pkg, bwd)
- set = fwd.intersection(bwd)
- pkgs = Set([x for x in set if isinstance(x, Package)])
- prvs = Set([x for x in set if isinstance(x, Provides)])
- reqs = Set([x for x in set if isinstance(x, Requires)])
- for prv in prvs:
- prvpkgs = Set([x for x in prv.packages if x in set])
- reqpkgs = Set()
- for req in prv.requiredby:
- if req in set:
- reqpkgs.update([x for x in req.packages if x in set])
- if prvpkgs == reqpkgs:
- set.remove(prv)
- prvs = Set([x for x in set if isinstance(x, Provides)])
- for req in reqs:
- if not Set(req.providedby).intersection(prvs):
- set.remove(req)
- for pkg in pkgs:
- if not Set(pkg.provides).intersection(prvs):
- set.remove(pkg)
- return set
-
-def findLoops():
- pkgs = cache.getPackages()
- doneset = Set()
- loops = []
- for pkg in pkgs:
- if pkg not in doneset:
- set = findPkgLoops(pkg)
- if len([x for x in set if isinstance(x, Package)]) > 1:
- loops.append(set)
- doneset.update(set)
- return [x for x in loops if x]
-
-def dumpLoops():
- loops = findLoops()
- shown = Set()
- n = 0
- for set in loops:
- n += 1
- file = open("loop%03d.dot" % n, "w")
- file.write("digraph Loops {\n")
- for pkg in [x for x in set if isinstance(x, Package)]:
- if pkg not in shown:
- shown.add(pkg)
- file.write(' "%s" [ shape=box, style=filled, fillcolor=yellow ];\n' % pkg)
- for req in pkg.requires:
- if req not in set:
- continue
- if (pkg, req) not in shown:
- shown.add((pkg, req))
- file.write(' "%s" -> "Requires: %s";\n' % (pkg, req))
- for prv in req.providedby:
- if prv not in set:
- continue
- if (req, prv) not in shown:
- shown.add((req, prv))
- file.write(' "Requires: %s" -> "Provides: %s";\n' % (req, prv))
- for prvpkg in prv.packages:
- if prvpkg not in set:
- continue
- if (prv, prvpkg) not in shown:
- shown.add((prv, prvpkg))
- file.write(' "Provides: %s" -> "%s";\n' % (prv, prvpkg))
- file.write("}\n")
-
-if __name__ == "__main__":
- dumpLoops()
-
-# vim:ts=4:sw=4:et
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/notobsoleted.py new/smart-0.42/sandbox/notobsoleted.py
--- old/smart-0.41.99/sandbox/notobsoleted.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/notobsoleted.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-import sys
-sys.argv = ["./smart.py", "test"]
-execfile('./smart.py')
-
-def main():
- for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl9"):
- break
- else:
- continue
- obsoleted = False
- for prv in pkg.provides:
- for obs in prv.obsoletedby:
- for obspkg in obs.packages:
- for loader in obspkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl10"):
- obsoleted = True
- break
- if not obsoleted:
- conflicted = []
- for prv in pkg.provides:
- for cnf in prv.conflictedby:
- for cnfpkg in cnf.packages:
- for loader in cnfpkg.loaderinfo:
- if loader.getRepository().getName() == "cl10":
- conflicted.append(str(cnfpkg))
- break
- if conflicted:
- print pkg, "(conflicted by %s)" % ", ".join(conflicted)
- else:
- print pkg
-
-if __name__ == "__main__":
- main()
-
-# vim:ts=4:sw=4:et
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/notobsoleting.py new/smart-0.42/sandbox/notobsoleting.py
--- old/smart-0.41.99/sandbox/notobsoleting.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/notobsoleting.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,53 +0,0 @@
-import sys
-sys.argv = ["./smart.py", "test"]
-execfile('./smart.py')
-
-def requiredByPackageObsoletingCL9(pkg, donemap=None):
- # Is any recursively requiring package obsoleting some package in CL9?
- if not donemap:
- donemap = {}
- donemap[pkg] = True
- try:
- for prv in pkg.provides:
- for req in prv.requiredby:
- for reqpkg in req.packages:
- for reqpkgobs in reqpkg.obsoletes:
- for reqpkgprv in reqpkgobs.providedby:
- for reqpkgprvpkg in reqpkgprv.packages:
- for loader in reqpkgprvpkg.loaderinfo:
- repos = loader.getRepository()
- if repos.getName().startswith("cl9"):
- raise StopIteration
- if (reqpkg not in donemap and
- requiredByPackageObsoletingCL9(reqpkg, donemap)):
- raise StopIteration
- except StopIteration:
- return True
- return False
-
-def main():
- for pkg in cache.getPackages():
- for loader in pkg.loaderinfo:
- if loader.getRepository().getName().startswith("cl10"):
- break
- else:
- continue
- # Check if it is obsoleting a package in CL9.
- try:
- for obs in pkg.obsoletes:
- for prv in obs.providedby:
- for prvpkg in prv.packages:
- for loader in prvpkg.loaderinfo:
- repos = loader.getRepository()
- if repos.getName().startswith("cl9"):
- raise StopIteration
- except StopIteration:
- continue
- else:
- if not requiredByPackageObsoletingCL9(pkg):
- print pkg
-
-if __name__ == "__main__":
- main()
-
-# vim:ts=4:sw=4:et
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/sandbox/qtprogress.py new/smart-0.42/sandbox/qtprogress.py
--- old/smart-0.41.99/sandbox/qtprogress.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/sandbox/qtprogress.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,107 +0,0 @@
-#!/usr/bin/python
-from smart.progress import Progress
-from qt import *
-
-import sys, os, time
-
-class QtProgressSubItem(QListViewItem):
-
- def __init__(self, listview, index):
- self.index = index
-
- self.progresspm = None
- self.subtopic = ""
-
- QListViewItem.__init__(self, listview)
-
- self.progress = QProgressBar()
- self.progress.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
- self.progress.setFixedSize(110, self.height())
-
- def update(self, subtopic, percent):
- self.progress.setProgress(percent)
- self.progresspm = QPixmap.grabWidget(self.progress)
- self.subtopic = subtopic
-
- def text(self, column):
- if column == 1:
- return self.subtopic
- return ""
-
- def pixmap(self, column):
- if column == 0:
- return self.progresspm
-
- def width(self, fm, lv, column):
- if column == 0:
- return 110+1+lv.itemMargin()*2
- return QListViewItem.width(self, fm, lv, column)
-
- def compare(self, other, column, ascending):
- return cmp(self.index, other.index)
-
-class QtProgress(Progress, QDialog):
-
- def __init__(self):
- Progress.__init__(self)
- QDialog.__init__(self)
-
- self.setModal(True)
- self.setCaption("Operation Progress")
-
- self.layout = QVBoxLayout(self, 5, 5)
-
- self.topic = QLabel(self)
- self.layout.addWidget(self.topic)
-
- self.progress = QProgressBar(self)
- self.layout.addWidget(self.progress)
-
- self.listview = QListView(self)
- self.listview.addColumn("Progress")
- self.listview.addColumn("Description")
- self.layout.addWidget(self.listview)
-
- self.subprogress = {}
- self.subindex = 0
-
- def expose(self, topic, percent, subkey, subtopic, subpercent, data):
- QDialog.show(self)
-
- self.topic.setText(topic)
- self.progress.setProgress(percent)
-
- if subkey:
- if subkey in self.subprogress:
- item = self.subprogress[subkey]
- else:
- item = QtProgressSubItem(self.listview, self.subindex)
- self.subindex += 1
- self.subprogress[subkey] = item
- item.update(subtopic, subpercent)
- else:
- self.listview.triggerUpdate()
- qApp.processEvents()
-
-def test():
- a = QApplication(sys.argv)
-
- prog = QtProgress()
- data = {"item-number": 0}
- total, subtotal = 100, 100
- prog.start(True)
- prog.setTopic("Installing packages...")
- for n in range(1,total+1):
- data["item-number"] = n
- prog.set(n, total)
- prog.setSubTopic(n, "package-name%d" % n)
- for i in range(0,subtotal+1):
- prog.setSub(n, i, subtotal, subdata=data)
- prog.show()
- time.sleep(0.01)
- prog.stop()
-
-if __name__ == "__main__":
- test()
-
-# vim:ts=4:sw=4:et
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/smart/backends/deb/pm.py new/smart-0.42/smart/backends/deb/pm.py
--- old/smart-0.41.99/smart/backends/deb/pm.py 2006-06-16 13:45:20.000000000 +0200
+++ new/smart-0.42/smart/backends/deb/pm.py 2006-06-26 03:48:43.000000000 +0200
@@ -142,6 +142,10 @@
assert changeset.get(upgpkg) is REMOVE, \
"Installing %s while %s is kept?" % \
(pkg, upgpkg)
+ assert upgpkg not in upgraded, \
+ "Two packages (%s and %s) upgrading the " \
+ "same installed package (%s)!?" % \
+ (pkg, upgraded[upgpkg], upgpkg)
upgraded[upgpkg] = pkg
try:
@@ -172,6 +176,14 @@
if opt:
baseargs.append("--instdir=%s" % opt)
+ PURGE = object()
+
+ if sysconf.get("deb-purge"):
+ for i in range(len(sorted)):
+ pkg, op = sorted[i]
+ if op is REMOVE and not upgraded.get(pkg):
+ sorted[i] = pkg, PURGE
+
done = {}
while sorted:
@@ -183,8 +195,8 @@
if op is REMOVE and upgraded.get(pkg) in done:
continue
done[pkg] = True
- opname = {REMOVE: "remove", CONFIG: "config", UNPACK: "unpack",
- INSTALL: "install"}
+ opname = {REMOVE: "remove", PURGE: "purge", CONFIG: "config",
+ UNPACK: "unpack", INSTALL: "install"}
print "[%s] %s" % (opname[op], pkg)
pkgs.append(pkg)
@@ -197,6 +209,9 @@
args.append("--force-depends")
args.append("--force-remove-essential")
args.append("--remove")
+ elif op is PURGE:
+ args.append("--force-remove-essential")
+ args.append("--purge")
elif op is UNPACK:
args.append("--unpack")
elif op is CONFIG:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/smart/backends/rpm/README new/smart-0.42/smart/backends/rpm/README
--- old/smart-0.41.99/smart/backends/rpm/README 2006-06-16 13:45:21.000000000 +0200
+++ new/smart-0.42/smart/backends/rpm/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-If you want to implement a new loader for RPM packages,
-take care about the following issues:
-
-- Package versions must have the architecture appended as
- @arch. We can't use '.' as the separator because this is
- a character present in many package releases, thus we
- wouldn't be able to tell if we're looking at an
- archiutecture or a part of a release, when dealing with
- provides.
-
-- There's a special RPMNameProvides class that must be used
- to provide the package name itself together with the package
- version and the architecture appended. We must use a special
- class here to be able to match RPMObsoletes against
- package names only, since that's the way RPM expects it to
- happen. Appending the architecture is necessary for
- multilib handling of upgrades. Notice that RPM packages
- already provide the name/version explicitly, so instead
- of just adding a new provides, it's usually necessary
- to catch the existent provides and change the class/append
- the arch when matching the package name/version.
-
-- The equivalent of RPM Obsoletes relation is Upgrades+Conflicts
- in Smart, so do not just use upgrades instead of obsoletes.
-
-- There's a special RPMPreRequires class to handle pre-requires.
- If the channel provides this information, you should use
- RPMRequires and RPMPreRequires instances as necessary.
-
-- The way Smart handles upgrades is by introducing Upgrades
- relations. Smart will NOT check package names when upgrading.
- This way, for RPM it's necessary to introduce explicit
- upgrade relations like RPMObsoletes(name, "<", versionarch).
- This will match against RPMNameProvides of packages with a
- lower version
-
-- Strip out epochs == 0 everywhere (package version, provide
- version, require version, etc). There are some sources of
- information which do not differentiate an absent epoch from
- a 0 epoch, so the only way to handle that is using epoch 0
- everywhere.
-
-- When handling dependencies (provides, requires, etc) without
- versions, use None as the version/relation, not the empty
- string ("").
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/smart-0.41.99/smart/const.py new/smart-0.42/smart/const.py
--- old/smart-0.41.99/smart/const.py 2006-06-16 13:45:22.000000000 +0200
+++ new/smart-0.42/smart/const.py 2006-06-26 03:51:29.000000000 +0200
@@ -21,7 +21,7 @@
#
import sys
-VERSION = "0.41"
+VERSION = "0.42"
RECURSIONLIMIT = sys.getrecursionlimit()
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 sensors
checked in at Tue Jun 27 18:31:49 CEST 2006.
--------
--- sensors/sensors.changes 2006-02-28 14:13:10.000000000 +0100
+++ sensors/sensors.changes 2006-06-26 14:22:18.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jun 26 14:21:24 CEST 2006 - werner(a)suse.de
+
+- Load i2c-dev kernel module instead of i2c-sensor (bug #188126)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sensors.spec ++++++
--- /var/tmp/diff_new_pack.WfohCI/_old 2006-06-27 18:31:12.000000000 +0200
+++ /var/tmp/diff_new_pack.WfohCI/_new 2006-06-27 18:31:12.000000000 +0200
@@ -14,7 +14,7 @@
BuildRequires: rrdtool sysfsutils udev
URL: http://secure.netroedge.com/~lm78/
Version: 2.10.0
-Release: 1
+Release: 10
Summary: Hardware health monitoring for Linux
License: GPL
Group: System/Monitoring
@@ -119,6 +119,8 @@
%doc /usr/share/man/man8/*.8.gz
%changelog -n sensors
+* Mon Jun 26 2006 - werner(a)suse.de
+- Load i2c-dev kernel module instead of i2c-sensor (bug #188126)
* Tue Feb 28 2006 - werner(a)suse.de
- Update to version 2.10.0 for better udev support (bug #151931)
- Add i2c-0 to static device list for udev (bug #151931)
++++++ lm_sensors-2.10.0.dif ++++++
--- /var/tmp/diff_new_pack.WfohCI/_old 2006-06-27 18:31:12.000000000 +0200
+++ /var/tmp/diff_new_pack.WfohCI/_new 2006-06-27 18:31:12.000000000 +0200
@@ -235,7 +235,7 @@
# If sensors isn't supported by the kernel, try loading the module...
-[ -e /proc/sys/dev/sensors ] || /sbin/modprobe i2c-proc &>/dev/null
-+[ -e /sys/bus/i2c/devices ] || /sbin/modprobe i2c-sensor &>/dev/null
++[ -e /sys/bus/i2c/devices ] || /sbin/modprobe i2c-dev &>/dev/null
# Don't bother if /proc/sensors still doesn't exist, kernel doesn't have
# support for sensors.
@@ -245,7 +245,7 @@
+
# If sensors was not already running, unload the module...
-[ -e /var/lock/subsys/lm_sensors ] || /sbin/modprobe -r i2c-proc &>/dev/null
-+[ -e /var/lock/subsys/sensors ] || /sbin/modprobe -r i2c-sensor &>/dev/null
++[ -e /var/lock/subsys/sensors ] || /sbin/modprobe -r i2c-dev &>/dev/null
CONFIG=/etc/sysconfig/lm_sensors
-PSENSORS=/usr/local/bin/sensors
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 python-kid
checked in at Tue Jun 27 18:30:30 CEST 2006.
--------
--- python-kid/python-kid.changes 2006-05-25 14:52:38.000000000 +0200
+++ python-kid/python-kid.changes 2006-06-27 15:57:37.000000000 +0200
@@ -1,0 +2,33 @@
+Tue Jun 27 15:54:26 CEST 2006 - cthiel(a)suse.de
+
+- update to version 0.9.2
+ * Enhancements
+ o Updated to current version of ez_setup.py.
+ o Improved importer.py, resolving tickets #103 (FutureWarnings) and 137
+ #(using new import hooks).
+ o The testing code can now figure out what testing modules to run
+ dynamically. In addition, the code also determines which functions are
+ tests dynamically. Tests that need pylib are skipped for those that
+ don't have it. If you run 'python test_kid.py' now you should be
+ seeing more tests executed.
+ o Removed the revision history from the language and and instead include
+ a pointer to the Release Notes.
+ * API Changes
+ o Allow the kid command to accept XML piped into it's stdin when '-' is
+ used as the filename.
+ o Patch from #143. The load_template() function accepts an 'ns'keyword
+ argument to pre-populate the template module namespace with global
+ variables. Thanks!
+ o Created an API to replace the various ways that configuration options
+ are currently set.
+ o Allow the XML function to take a new keword parameter (xmlns) that
+ sets the default namespace for a fragment.
+ * Add Support for Python 2.5
+ o Added support for xml.etree, which is the ElementTree packaged with
+ Python 2.5. Running 'make test' only checks xml.etree currently.
+ o The __future__ imports have been moved to the top of the module to
+ play nicely in Python 2.5. I have also added 2.5 to the makefile so
+ it will be tested before each release.
+ o makefile regression test includes Python 2.5.
+
+-------------------------------------------------------------------
Old:
----
kid-0.9.1-setuptools.patch
kid-0.9.1.tar.bz2
New:
----
kid-0.9.2.tar.bz2
kid-setuptools.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-kid.spec ++++++
--- /var/tmp/diff_new_pack.tbhHWC/_old 2006-06-27 18:29:56.000000000 +0200
+++ /var/tmp/diff_new_pack.tbhHWC/_new 2006-06-27 18:29:56.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package python-kid (Version 0.9.1)
+# spec file for package python-kid (Version 0.9.2)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,14 +12,14 @@
Name: python-kid
BuildRequires: python-devel python-elementtree python-xml
-Version: 0.9.1
+Version: 0.9.2
Release: 1
Summary: Kid - A simple and pythonic XML template language
Group: Development/Libraries/Python
License: X11/MIT
URL: http://kid.lesscode.org/
Source: kid-%{version}.tar.bz2
-Patch: kid-%{version}-setuptools.patch
+Patch: kid-setuptools.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: python-elementtree
@@ -61,6 +61,36 @@
%{py_sitedir}/kid
%changelog -n python-kid
+* Tue Jun 27 2006 - cthiel(a)suse.de
+- update to version 0.9.2
+ * Enhancements
+ o Updated to current version of ez_setup.py.
+ o Improved importer.py, resolving tickets #103 (FutureWarnings) and 137
+ [#](using new import hooks).
+ o The testing code can now figure out what testing modules to run
+ dynamically. In addition, the code also determines which functions are
+ tests dynamically. Tests that need pylib are skipped for those that
+ don't have it. If you run 'python test_kid.py' now you should be
+ seeing more tests executed.
+ o Removed the revision history from the language and and instead include
+ a pointer to the Release Notes.
+ * API Changes
+ o Allow the kid command to accept XML piped into it's stdin when '-' is
+ used as the filename.
+ o Patch from #143. The load_template() function accepts an 'ns'keyword
+ argument to pre-populate the template module namespace with global
+ variables. Thanks!
+ o Created an API to replace the various ways that configuration options
+ are currently set.
+ o Allow the XML function to take a new keword parameter (xmlns) that
+ sets the default namespace for a fragment.
+ * Add Support for Python 2.5
+ o Added support for xml.etree, which is the ElementTree packaged with
+ Python 2.5. Running 'make test' only checks xml.etree currently.
+ o The __future__ imports have been moved to the top of the module to
+ play nicely in Python 2.5. I have also added 2.5 to the makefile so
+ it will be tested before each release.
+ o makefile regression test includes Python 2.5.
* Thu May 25 2006 - cthiel(a)suse.de
- update to version 0.9.1
* Layout Templates:
++++++ kid-0.9.1.tar.bz2 -> kid-0.9.2.tar.bz2 ++++++
++++ 19003 lines of diff (skipped)
++++++ kid-setuptools.patch ++++++
--- setup.py
+++ setup.py
@@ -1,14 +1,10 @@
-# bootstrap setuptools if necessary
-from ez_setup import use_setuptools
-use_setuptools()
-
import os
execfile(os.path.join("kid", "release.py"))
doc_parts = long_description.strip().splitlines()
-from setuptools import setup, find_packages
+from distutils.core import setup
setup(
name="kid",
version=version,
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 python-gstreamer010
checked in at Tue Jun 27 18:29:50 CEST 2006.
--------
--- GNOME/python-gstreamer010/python-gstreamer010.changes 2006-01-25 21:32:38.000000000 +0100
+++ python-gstreamer010/python-gstreamer010.changes 2006-06-26 15:13:19.000000000 +0200
@@ -1,0 +2,11 @@
+Mon Jun 26 15:13:11 CEST 2006 - sbrabec(a)suse.cz
+
+- Updated to version 0.10.4:
+ * Conditional compile of core API additions
+ * wrapped gst.BaseSrc and gst.PushSrc
+ * API added: gst.get_gst_version(), gst.get_pygst_version()
+ * Backwards compatibility with older GStreamer installations
+ * Wrapping of new API in GStreamer
+ * Bug-fixes and enhancements
+
+-------------------------------------------------------------------
Old:
----
gst-python-0.10.2.tar.bz2
New:
----
gst-python-0.10.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-gstreamer010.spec ++++++
--- /var/tmp/diff_new_pack.vXSk9T/_old 2006-06-27 18:29:21.000000000 +0200
+++ /var/tmp/diff_new_pack.vXSk9T/_new 2006-06-27 18:29:21.000000000 +0200
@@ -1,26 +1,26 @@
#
-# spec file for package python-gstreamer010 (Version 0.10.2)
+# spec file for package python-gstreamer010 (Version 0.10.4)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# 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: python-gstreamer010
#!BuildIgnore: gstreamer
-BuildRequires: fam gstreamer010-plugins-base-devel krb5 python-devel python-gtk
+BuildRequires: gstreamer010-plugins-base-devel python-devel python-gtk
%ifarch %ix86 ppc x86_64
BuildRequires: valgrind
%endif
%define _name gst-python
URL: http://www.gstreamer.net/
Summary: Python Bindings for GStreamer
-Version: 0.10.2
-Release: 3
+Version: 0.10.4
+Release: 1
License: LGPL
Group: Development/Languages/Python
Source: %{_name}-%{version}.tar.bz2
@@ -66,6 +66,14 @@
%{_datadir}/%{_name}
%changelog -n python-gstreamer010
+* Mon Jun 26 2006 - sbrabec(a)suse.cz
+- Updated to version 0.10.4:
+ * Conditional compile of core API additions
+ * wrapped gst.BaseSrc and gst.PushSrc
+ * API added: gst.get_gst_version(), gst.get_pygst_version()
+ * Backwards compatibility with older GStreamer installations
+ * Wrapping of new API in GStreamer
+ * Bug-fixes and enhancements
* Wed Jan 25 2006 - mls(a)suse.de
- converted neededforbuild to BuildRequires
* Tue Jan 24 2006 - ro(a)suse.de
++++++ gst-python-0.10.2.tar.bz2 -> gst-python-0.10.4.tar.bz2 ++++++
++++ 15814 lines of diff (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 procps
checked in at Tue Jun 27 18:29:17 CEST 2006.
--------
--- procps/procps.changes 2006-05-18 19:05:50.000000000 +0200
+++ procps/procps.changes 2006-06-26 17:07:56.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jun 26 17:07:41 CEST 2006 - werner(a)suse.de
+
+- Update to version 3.2.7
+
+-------------------------------------------------------------------
Old:
----
procps-3.2.2-manycpus.diff
procps-3.2.5-cpu_hotplug.patch
procps-3.2.6-alotofmem.diff
procps-3.2.6-cpu-field-width.patch
procps-3.2.6-stealtime.patch
procps-3.2.6-top.1.diff
procps-3.2.6.tar.bz2
New:
----
procps-3.2.7-cpu_hotplug.patch
procps-3.2.7-manycpus.diff
procps-3.2.7-top.1.diff
procps-3.2.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ procps.spec ++++++
--- /var/tmp/diff_new_pack.AG2tQF/_old 2006-06-27 18:28:17.000000000 +0200
+++ /var/tmp/diff_new_pack.AG2tQF/_new 2006-06-27 18:28:17.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package procps (Version 3.2.6)
+# spec file for package procps (Version 3.2.7)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -16,8 +16,8 @@
Group: System/Monitoring
PreReq: %fillup_prereq %insserv_prereq
Autoreqprov: on
-Version: 3.2.6
-Release: 18
+Version: 3.2.7
+Release: 1
Summary: ps utilities for /proc
Provides: ps
Obsoletes: ps
@@ -29,20 +29,17 @@
Patch1: procps-3.2.2-100cpus.diff
Patch2: procps-3.2.5-eof.diff
Patch3: procps-3.2.2-ia64.diff
-Patch6: procps-3.2.2-manycpus.diff
+Patch6: procps-3.2.7-manycpus.diff
Patch7: procps-3.2.2-w-notruncate.diff
Patch8: procps-3.2.2-w-simply-work.diff
-Patch9: procps-3.2.6-top.1.diff
+Patch9: procps-3.2.7-top.1.diff
Patch10: procps-3.2.2-top-termsize.patch
Patch11: procps-3.2.3-buffersize.diff
Patch12: pwdx-bufferoverflow.diff
Patch13: procps-3.2.5-pmap-smaps-rml-2.patch
-Patch14: procps-3.2.6-alotofmem.diff
Patch15: procps-3.2.5-top-rc.patch
-Patch16: procps-3.2.5-cpu_hotplug.patch
+Patch16: procps-3.2.7-cpu_hotplug.patch
Patch17: procps-3.2.5-CPU-states.patch
-Patch18: procps-3.2.6-cpu-field-width.patch
-Patch19: procps-3.2.6-stealtime.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -84,12 +81,9 @@
%patch11 -p1
%patch12 -p1
%patch13 -p1
-%patch14 -p0
%patch15 -p1
%patch16 -p1
%patch17
-%patch18
-%patch19 -p1
%build
make CFLAGS="-Wall -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $RPM_OPT_FLAGS -pipe" \
@@ -155,6 +149,8 @@
%_mandir/man8/sysctl.8.gz
%changelog -n procps
+* Mon Jun 26 2006 - werner(a)suse.de
+- Update to version 3.2.7
* Thu May 18 2006 - werner(a)suse.de
- Add stealtime patch (bug #86394)
* Mon Mar 20 2006 - hvogel(a)suse.de
++++++ procps-3.2.5-cpu_hotplug.patch -> procps-3.2.7-cpu_hotplug.patch ++++++
--- procps/procps-3.2.5-cpu_hotplug.patch 2006-03-15 11:14:07.000000000 +0100
+++ procps/procps-3.2.7-cpu_hotplug.patch 2006-06-26 16:47:37.000000000 +0200
@@ -1,6 +1,6 @@
---- procps-3.2.5/top.c.remcpu 2005-10-12 14:11:22.000000000 +0200
-+++ procps-3.2.5/top.c 2005-10-12 14:49:59.000000000 +0200
-@@ -910,6 +910,7 @@
+--- procps-3.2.7/top.c
++++ procps-3.2.7/top.c 2006-06-26 16:46:39.000000000 +0200
+@@ -912,6 +912,7 @@
static CPU_t *cpus_refresh (CPU_t *cpus)
{
static FILE *fp = NULL;
@@ -8,16 +8,16 @@
int i;
int num;
// enough for a /proc/stat CPU line (not the intr line)
-@@ -924,34 +925,33 @@
+@@ -926,36 +927,34 @@
can hold tics representing the /proc/stat cpu summary (the first
line read) -- that slot supports our View_CPUSUM toggle */
cpus = alloc_c((1 + Cpu_tot) * sizeof(CPU_t));
+- }
+ cpu_max = Cpu_tot;
- }
-+ else if (cpu_max > Cpu_tot)
-+ /* move saved CUPs summary to cpu_max possition */
-+ memcpy(&cpus[cpu_max], &cpus[Cpu_tot], sizeof(CPU_t));
-+
++ } else if (cpu_max > Cpu_tot)
++ /* move saved CUPs summary to cpu_max possition */
++ memcpy(&cpus[cpu_max], &cpus[Cpu_tot], sizeof(CPU_t));
++
rewind(fp);
fflush(fp);
@@ -25,23 +25,27 @@
if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
- cpus[Cpu_tot].x = 0; // FIXME: can't tell by kernel version number
- cpus[Cpu_tot].y = 0; // FIXME: can't tell by kernel version number
+- cpus[Cpu_tot].z = 0; // FIXME: can't tell by kernel version number
+ cpus[cpu_max].x = 0; // FIXME: can't tell by kernel version number
+ cpus[cpu_max].y = 0; // FIXME: can't tell by kernel version number
- num = sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu",
++ cpus[cpu_max].z = 0; // FIXME: can't tell by kernel version number
+ num = sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu",
- &cpus[Cpu_tot].u,
- &cpus[Cpu_tot].n,
- &cpus[Cpu_tot].s,
- &cpus[Cpu_tot].i,
- &cpus[Cpu_tot].w,
- &cpus[Cpu_tot].x,
-- &cpus[Cpu_tot].y
+- &cpus[Cpu_tot].y,
+- &cpus[Cpu_tot].z
+ &cpus[cpu_max].u,
+ &cpus[cpu_max].n,
+ &cpus[cpu_max].s,
+ &cpus[cpu_max].i,
+ &cpus[cpu_max].w,
+ &cpus[cpu_max].x,
-+ &cpus[cpu_max].y
++ &cpus[cpu_max].y,
++ &cpus[cpu_max].z
);
if (num < 4)
std_err("failed /proc/stat read");
@@ -58,9 +62,9 @@
if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
cpus[i].x = 0; // FIXME: can't tell by kernel version number
cpus[i].y = 0; // FIXME: can't tell by kernel version number
-@@ -959,9 +959,28 @@
+@@ -964,9 +963,28 @@
&cpus[i].id,
- &cpus[i].u, &cpus[i].n, &cpus[i].s, &cpus[i].i, &cpus[i].w, &cpus[i].x, &cpus[i].y
+ &cpus[i].u, &cpus[i].n, &cpus[i].s, &cpus[i].i, &cpus[i].w, &cpus[i].x, &cpus[i].y, &cpus[i].z
);
- if (num < 4)
- std_err("failed /proc/stat read");
@@ -75,7 +79,7 @@
+ if (!cpus) std_err("realloc failed");
+ memcpy(&cpus[cpu_max], &cpus[cpu_max-1], sizeof(CPU_t));
+ }
- }
++ }
+
+ if (cpu_max > Cpu_tot)
+ memcpy(&cpus[Cpu_tot], &cpus[cpu_max], sizeof(CPU_t));
@@ -84,7 +88,8 @@
+ if (Cpu_tot == 1) {
+ cpus[1].id = 0;
+ memcpy(cpus, &cpus[1], sizeof(CPU_t));
-+ }
+ }
+
return cpus;
}
+
++++++ procps-3.2.2-manycpus.diff -> procps-3.2.7-manycpus.diff ++++++
--- procps/procps-3.2.2-manycpus.diff 2006-02-20 11:59:48.000000000 +0100
+++ procps/procps-3.2.7-manycpus.diff 2006-06-26 17:02:25.000000000 +0200
@@ -1,10 +1,7 @@
---- procps-3.2.5/top.c
-+++ procps-3.2.5/top.c
-@@ -2406,19 +2406,24 @@
- {
- // standardized 'secure mode' errors
- static const char err_secure[] = "\aUnavailable in secure mode";
-+ static const char err_num_cpus[] = "\aSorry, terminal is not big enough";
+--- procps-3.2.7/top.c
++++ procps-3.2.7/top.c 2006-06-26 16:26:56.000000000 +0200
+@@ -2480,21 +2480,21 @@
+ static const char err_num_cpus[] = "\aSorry, terminal is not big enough";
#ifdef WARN_NOT_SMP
// standardized 'smp' errors
- static const char err_smp[] = "\aSorry, only 1 cpu detected";
@@ -13,27 +10,18 @@
switch (c) {
case '1':
-+ if ((Screen_rows < (Cpu_tot+4)) && (Cpu_tot > 1))
-+ show_msg(err_num_cpus);
-+ else {
+ if (Cpu_tot+7 > Screen_rows && !CHKw(Curwin, View_CPUSUM)) {
+ show_msg(err_num_cpus);
+- break;
+- }
++ } else {
#ifdef WARN_NOT_SMP
if (Cpu_tot > 1) TOGw(Curwin, View_CPUSUM);
else show_msg(err_smp);
#else
TOGw(Curwin, View_CPUSUM);
#endif
-+ }
++ }
break;
case 'a':
---- procps-3.2.5/top.h
-+++ procps-3.2.5/top.h
-@@ -27,7 +27,7 @@
- //#define CASEUP_SCALE // show scaled time/num suffix upper case
- //#define CASEUP_SUMMK // show memory summary kilobytes with 'K'
- //#define SORT_SUPRESS // *attempt* to reduce qsort overhead
--//#define WARN_NOT_SMP // restrict '1' & 'I' commands to true smp
-+#define WARN_NOT_SMP // restrict '1' & 'I' commands to true smp
-
- // Development/Debugging defines -----------------------------------
- //#define ATEOJ_REPORT // report a bunch of stuff, at end-of-job
++++++ procps-3.2.6-top.1.diff -> procps-3.2.7-top.1.diff ++++++
--- procps/procps-3.2.6-top.1.diff 2006-02-20 11:59:48.000000000 +0100
+++ procps/procps-3.2.7-top.1.diff 2006-06-26 16:34:04.000000000 +0200
@@ -1,5 +1,5 @@
---- procps-3.2.5/top.1
-+++ procps-3.2.5/top.1
+--- procps-3.2.7/top.1
++++ procps-3.2.7/top.1 2006-06-26 16:34:01.000000000 +0200
@@ -20,7 +20,7 @@
..
.\" Setup ////////////////////////////////////////////////////////////////
@@ -9,62 +9,3 @@
.
.ll +(\n[half_xtra] + \n[half_xtra])
.
-@@ -85,7 +85,7 @@
- .\" ----------------------------------------------------------------------
- .SH SYNOPSIS
- .\" ----------------------------------------------------------------------
--\*(ME \-\fBhv\fR | \-\fBbcisS\fR \-\fBd\fI delay\fR \-\fBn\fI
-+\*(ME \-\fBhv\fR | \-\fBbcHisS\fR \-\fBd\fI delay\fR \-\fBn\fI
- iterations\fR \-\fBp\fI pid\fR [,\fI pid\fR ...]
-
- The traditional switches '-' and whitespace are optional.
-@@ -199,6 +199,7 @@
- \fITask_Area_defaults\fR
- 'b' - Bold hilite On\ \ (not 'reverse')
- * 'c' - Command line Off (name, not cmdline)
-+ * 'H' - Threads Off\ (show all threads)
- * 'i' - Idle tasks On\ \ (show all tasks)
- 'R' - Reverse sort On\ \ (pids high-to-low)
- * 'S' - Cumulative time Off (no, dead children)
-@@ -212,7 +213,7 @@
- .\" ----------------------------------------------------------------------
- The command-line syntax for \*(Me consists of:
-
-- \-\fBhv\fR\ |\ -\fBbcisS\fR\ \-\fBd\fI\ delay\fR\ \-\fBn\fI\ iterations\
-+ \-\fBhv\fR\ |\ -\fBbcHisS\fR\ \-\fBd\fI\ delay\fR\ \-\fBn\fI\ iterations\
- \fR\ \-\fBp\fI\ pid\fR\ [,\fIpid\fR...]
-
- The typically mandatory switches ('-') and even whitespace are completely
-@@ -249,6 +250,11 @@
- Show library version and the usage prompt, then quit.
-
- .TP 5
-+\-\fBH\fR :\fB Threads\fR toggle
-+Starts \*(Me with the last remembered 'H' state reversed.
-+When this toggle is \*O, all individual threads will be displayed. Otherwise, \*(Me displays a summation of all threads in a process.
-+
-+.TP 5
- \-\fBi\fR :\fB Idle Processes\fR toggle
- Starts \*(Me with the last remembered 'i' state reversed.
- When this toggle is \*F, tasks that are idled or zombied will not be displayed.
-@@ -547,7 +553,7 @@
- l, m, t, 1
- 3c.\fI TASK_Area_Commands\fR
- Appearance: b, x, y, z
-- Content: c, f, o, S, u
-+ Content: c, f, H, o, S, u
- Size: #, i, n
- Sorting: <, >, F, O, R
- 3d.\fI COLOR_Mapping\fR
-@@ -792,6 +798,10 @@
- \*(Xt 2b. SELECTING and ORDERING Columns.
-
- .TP 7
-+\ \ \'\fBH\fR\' :\fIThreads_toggle\fR
-+When this toggle is \*O, all individual threads will be displayed. Otherwise, \*(Me displays a summation of all threads in a process.
-+
-+.TP 7
- \ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
- When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
- time that it and its dead children have used.
-
++++++ procps-3.2.6.tar.bz2 -> procps-3.2.7.tar.bz2 ++++++
++++ 1872 lines of diff (skipped)
++++++ pwdx-bufferoverflow.diff ++++++
--- /var/tmp/diff_new_pack.AG2tQF/_old 2006-06-27 18:28:19.000000000 +0200
+++ /var/tmp/diff_new_pack.AG2tQF/_new 2006-06-27 18:28:19.000000000 +0200
@@ -1,12 +1,9 @@
---- procps-3.2.5/pwdx.c
-+++ procps-3.2.5/pwdx.c
-@@ -59,7 +59,9 @@
-
+--- procps-3.2.7/pwdx.c
++++ procps-3.2.7/pwdx.c 2006-06-26 16:38:12.000000000 +0200
+@@ -60,6 +60,7 @@
for (i = 1; i < argc; i++) {
if (regexec(&re, argv[i], 0, NULL, 0) != 0) {
-- sprintf(buf, "pwdx: invalid process id: %s\n", argv[i]); // FIXME (overflow)
-+ snprintf(buf, sizeof(buf), "pwdx: invalid process id: %s\n",
-+ argv[i]);
+ snprintf(buf, sizeof buf, "pwdx: invalid process id: %s\n", argv[i]);
+ buf[sizeof(buf)-1] = '\0';
die(buf);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 pinentry
checked in at Tue Jun 27 18:28:09 CEST 2006.
--------
--- pinentry/pinentry.changes 2006-01-25 21:40:19.000000000 +0100
+++ pinentry/pinentry.changes 2006-06-26 18:57:39.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Jun 26 18:56:26 CEST 2006 - mfabian(a)suse.de
+
+- Bugzilla #179996: enable input methods in SecQlineEdit widgets
+ only when "mode == Normal" (i.e. not when "mode == NoEcho" or
+ "mode == Password"). Using input methods while inputting
+ passwords is useless. See also Bugzilla #117115.
+
+-------------------------------------------------------------------
New:
----
bugzilla-17996-disable-inputmethod-for-passords.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pinentry.spec ++++++
--- /var/tmp/diff_new_pack.0ouxuf/_old 2006-06-27 18:27:42.000000000 +0200
+++ /var/tmp/diff_new_pack.0ouxuf/_new 2006-06-27 18:27:42.000000000 +0200
@@ -1,11 +1,11 @@
#
# spec file for package pinentry (Version 0.7.2)
#
-# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# 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
@@ -14,13 +14,14 @@
BuildRequires: gtk2-devel libdrm-devel libjpeg-devel qt3-devel update-desktop-files
URL: http://www.gnupg.org/aegypten/
Version: 0.7.2
-Release: 3
+Release: 15
Summary: Collection of Simple PIN or Passphrase Entry Dialogs
License: GPL
Autoreqprov: on
Source: pinentry-%{version}.tar.bz2
Patch0: moreSecureMemoryForPinentry-qt.diff
Patch1: %{name}-%{version}-gtk+-2.4.diff
+Patch2: bugzilla-17996-disable-inputmethod-for-passords.patch
Group: Productivity/Other
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -41,6 +42,7 @@
%setup -q
%patch0 -p 1
%patch1 -p 1
+%patch2 -p 1
%build
aclocal -I m4
@@ -73,6 +75,11 @@
/usr/bin/pinentry-qt
%changelog -n pinentry
+* Mon Jun 26 2006 - mfabian(a)suse.de
+- Bugzilla #179996: enable input methods in SecQlineEdit widgets
+ only when "mode == Normal" (i.e. not when "mode == NoEcho" or
+ "mode == Password"). Using input methods while inputting
+ passwords is useless. See also Bugzilla #117115.
* Wed Jan 25 2006 - mls(a)suse.de
- converted neededforbuild to BuildRequires
* Mon Dec 19 2005 - ro(a)suse.de
++++++ bugzilla-17996-disable-inputmethod-for-passords.patch ++++++
diff -ru pinentry-0.7.2/qt/secqlineedit.cpp pinentry-0.7.2.new/qt/secqlineedit.cpp
--- pinentry-0.7.2/qt/secqlineedit.cpp 2004-01-18 19:10:04.000000000 +0100
+++ pinentry-0.7.2.new/qt/secqlineedit.cpp 2006-06-26 18:49:35.000000000 +0200
@@ -536,6 +536,7 @@
{
d->echoMode = mode;
d->updateTextLayout();
+ setInputMethodEnabled (mode == Normal);
update();
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 permissions
checked in at Tue Jun 27 18:27:36 CEST 2006.
--------
--- permissions/permissions.changes 2006-05-19 15:49:14.000000000 +0200
+++ permissions/permissions.changes 2006-06-27 08:21:21.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Jun 27 08:21:00 CEST 2006 - lnussel(a)suse.de
+
+- remove setuid bit on gpg (#137562)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ permissions.spec ++++++
--- /var/tmp/diff_new_pack.KrwxWc/_old 2006-06-27 18:27:08.000000000 +0200
+++ /var/tmp/diff_new_pack.KrwxWc/_new 2006-06-27 18:27:08.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package permissions (Version 2006.5.19)
+# spec file for package permissions (Version 2006.6.27)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,7 +14,7 @@
License: GPL
Group: Productivity/Security
Autoreqprov: on
-Version: 2006.5.19
+Version: 2006.6.27
Release: 1
Provides: aaa_base:/etc/permissions
Requires: /sbin/SuSEconfig
@@ -76,6 +76,8 @@
/var/adm/fillup-templates/sysconfig.security
%changelog -n permissions
+* Tue Jun 27 2006 - lnussel(a)suse.de
+- remove setuid bit on gpg (#137562)
* Fri May 19 2006 - lnussel(a)suse.de
- add get_printing_ticket in order to enable smb printing with
kerberos authentication (#177114)
++++++ permissions.easy ++++++
--- permissions/permissions.easy 2006-05-19 15:47:29.000000000 +0200
+++ permissions/permissions.easy 2006-06-27 08:20:45.000000000 +0200
@@ -84,12 +84,6 @@
# still to be converted to utempter
/opt/gnome/lib/vte/gnome-pty-helper root:tty 2755
-# gpg cannot pin memory into the ram using mlock(2) if not suid.
-# In memory pressure conditions, memory pages containing sensitive information
-# can be paged to disk.
-# the suid bit also removes gpg's complaints wrt the insecure memory.
-/usr/bin/gpg root:root 4755
-
#
# mixed section:
#
++++++ permissions.paranoid ++++++
--- permissions/permissions.paranoid 2006-05-19 15:48:03.000000000 +0200
+++ permissions/permissions.paranoid 2006-06-27 08:20:58.000000000 +0200
@@ -99,16 +99,6 @@
# still to be converted to utempter
/opt/gnome/lib/vte/gnome-pty-helper root:tty 0755
-# gpg cannot pin memory into the ram using mlock(2) if not suid.
-# In memory pressure conditions, memory pages containing sensitive information
-# can be paged to disk.
-# the suid bit also removes gpg's complaints wrt the insecure memory.
-# in permissions.paranoid, we remove the setuid bit following the rationale
-# described near the top of the file.
-/usr/bin/gpg root:root 0755
-
-
-
#
# mixed section: most of it is disabled in this permissions.secure:
#
++++++ permissions.secure ++++++
--- permissions/permissions.secure 2006-05-19 15:47:38.000000000 +0200
+++ permissions/permissions.secure 2006-06-27 08:20:50.000000000 +0200
@@ -122,15 +122,6 @@
# still to be converted to utempter
/opt/gnome/lib/vte/gnome-pty-helper root:tty 2755
-# gpg cannot pin memory into the ram using mlock(2) if not suid.
-# In memory pressure conditions, memory pages containing sensitive information
-# can be paged to disk.
-# the suid bit also removes gpg's complaints wrt the insecure memory.
-/usr/bin/gpg root:root 4755
-
-
-
-
#
# mixed section: most of it is disabled in this permissions.secure:
#
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 pam_ssh
checked in at Tue Jun 27 18:24:56 CEST 2006.
--------
--- pam_ssh/pam_ssh.changes 2006-05-31 23:28:58.000000000 +0200
+++ pam_ssh/pam_ssh.changes 2006-06-26 10:11:12.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Jun 24 11:12:13 CEST 2006 - stark(a)suse.de
+
+- update to version 1.93 (r18)
+ * debug option works for auth and session module (#177885)
+ * debug option is really available now for auth and session
+ module (#177885)
+ * recover better if close_session wasn't executed (#187560)
+
+-------------------------------------------------------------------
+Wed Jun 7 08:59:20 CEST 2006 - stark(a)suse.de
+
+- logging fix is integrated now
+- auth handler now accepts nullok option
+
+-------------------------------------------------------------------
Old:
----
logging.patch
pam_ssh-1.92.tar.bz2
New:
----
pam_ssh-1.93.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pam_ssh.spec ++++++
--- /var/tmp/diff_new_pack.yf80We/_old 2006-06-27 18:23:53.000000000 +0200
+++ /var/tmp/diff_new_pack.yf80We/_new 2006-06-27 18:23:53.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package pam_ssh (Version 1.92)
+# spec file for package pam_ssh (Version 1.93)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -15,12 +15,11 @@
License: BSD
Group: Productivity/Networking/SSH
Autoreqprov: on
-Version: 1.92
+Version: 1.93
Release: 1
Summary: PAM Module for SSH Authentication
URL: http://developer.novell.com/wiki/index.php/Pam_ssh
Source: %{name}-%{version}.tar.bz2
-Patch1: logging.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -38,7 +37,6 @@
%prep
%setup -q
-%patch1
%build
%{suse_update_config -f}
@@ -67,6 +65,15 @@
%attr(444,root,root) %_mandir/man*/*.*
%changelog -n pam_ssh
+* Sat Jun 24 2006 - stark(a)suse.de
+- update to version 1.93 (r18)
+ * debug option works for auth and session module (#177885)
+ * debug option is really available now for auth and session
+ module (#177885)
+ * recover better if close_session wasn't executed (#187560)
+* Wed Jun 07 2006 - stark(a)suse.de
+- logging fix is integrated now
+- auth handler now accepts nullok option
* Wed May 31 2006 - stark(a)suse.de
- update to version 1.92
* allow working as session module without authentication
++++++ pam_ssh-1.92.tar.bz2 -> pam_ssh-1.93.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/ChangeLog new/pam_ssh-1.93/ChangeLog
--- old/pam_ssh-1.92/ChangeLog 2006-05-31 23:02:20.000000000 +0200
+++ new/pam_ssh-1.93/ChangeLog 2006-06-24 10:37:09.000000000 +0200
@@ -1,3 +1,21 @@
+Version 1.93 released
+=====================
+
+2006-06-24 Wolfgang Rosenauer
+
+ * pam_ssh.c, pam_ssh.8: nullok option to allow blank passphrases
+ replaces allow_blank_passphrases (which is still available for
+ compat reasons)
+
+ * pam_ssh.c, pam_std_option.c, pam_ssh_log.c, pam_ssh_log.h:
+ fixed logging and separated into a logging module
+ PAM option 'debug' is supported now
+ added more syslog output in debug mode
+
+ * pam_ssh.c: we should be able to recover now correctly after system
+ crashes where we are not able to run the close_session using
+ the machine's uptime
+
Version 1.92 released
=====================
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/Makefile.am new/pam_ssh-1.93/Makefile.am
--- old/pam_ssh-1.92/Makefile.am 2006-05-31 22:50:48.000000000 +0200
+++ new/pam_ssh-1.93/Makefile.am 2006-06-22 19:48:37.000000000 +0200
@@ -33,7 +33,7 @@
cipher-3des1.c cipher-bf1.c cipher-ctr.c \
getput.h kex.h key.c key.h log.c log.h \
pam_ssh.c rijndael.c rijndael.h xmalloc.c \
- xmalloc.h
+ pam_ssh_log.c xmalloc.h
libdir = @PAMDIR@
man_MANS = pam_ssh.8
AM_CFLAGS = -Wall
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/Makefile.in new/pam_ssh-1.93/Makefile.in
--- old/pam_ssh-1.92/Makefile.in 2006-05-31 22:50:48.000000000 +0200
+++ new/pam_ssh-1.93/Makefile.in 2006-06-22 19:48:38.000000000 +0200
@@ -160,7 +160,7 @@
cipher-3des1.c cipher-bf1.c cipher-ctr.c \
getput.h kex.h key.c key.h log.c log.h \
pam_ssh.c rijndael.c rijndael.h xmalloc.c \
- xmalloc.h
+ pam_ssh_log.c xmalloc.h
man_MANS = pam_ssh.8
AM_CFLAGS = -Wall
@@ -199,6 +199,7 @@
@AMDEP_TRUE@ ./$(DEPDIR)/cipher-ctr.Plo ./$(DEPDIR)/cipher.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/key.Plo ./$(DEPDIR)/log.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/pam_ssh.Plo ./$(DEPDIR)/rijndael.Plo \
+@AMDEP_TRUE@ ./$(DEPDIR)/pam_ssh_log.Plo \
@AMDEP_TRUE@ ./$(DEPDIR)/xmalloc.Plo
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/NEWS new/pam_ssh-1.93/NEWS
--- old/pam_ssh-1.92/NEWS 2006-05-31 23:07:55.000000000 +0200
+++ new/pam_ssh-1.93/NEWS 2006-06-24 10:39:00.000000000 +0200
@@ -1,3 +1,13 @@
+Version 1.93
+============
+
+The option to allow blank passphrases is now 'nullok' while the old
+option is still available but deprecated.
+The debug option is now really supported as documented.
+We didn't start the ssh-agent if the close_session module wasn't called
+correctly but the ssh-agent was killed (e.g. system crashes).
+That should be solved in almost all cases now.
+
Version 1.92
============
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/TODO new/pam_ssh-1.93/TODO
--- old/pam_ssh-1.92/TODO 2006-05-31 23:12:32.000000000 +0200
+++ new/pam_ssh-1.93/TODO 2006-06-22 21:08:58.000000000 +0200
@@ -1,5 +1,3 @@
-* fix and cleanup logging stuff
-
* Unit testing
Honor a special line in pam.conf for testing various configurations.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/configure new/pam_ssh-1.93/configure
--- old/pam_ssh-1.92/configure 2006-05-31 23:17:32.000000000 +0200
+++ new/pam_ssh-1.93/configure 2006-06-22 21:46:41.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.58 for pam_ssh 1.92.
+# Generated by GNU Autoconf 2.58 for pam_ssh 1.93.
#
# Report bugs to <ajk(a)waterspout.com>.
#
@@ -428,8 +428,8 @@
# Identity of this package.
PACKAGE_NAME='pam_ssh'
PACKAGE_TARNAME='pam_ssh'
-PACKAGE_VERSION='1.92'
-PACKAGE_STRING='pam_ssh 1.92'
+PACKAGE_VERSION='1.93'
+PACKAGE_STRING='pam_ssh 1.93'
PACKAGE_BUGREPORT='ajk(a)waterspout.com'
ac_unique_file="pam_ssh.c"
@@ -939,7 +939,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures pam_ssh 1.92 to adapt to many kinds of systems.
+\`configure' configures pam_ssh 1.93 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1006,7 +1006,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pam_ssh 1.92:";;
+ short | recursive ) echo "Configuration of pam_ssh 1.93:";;
esac
cat <<\_ACEOF
@@ -1133,7 +1133,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-pam_ssh configure 1.92
+pam_ssh configure 1.39
generated by GNU Autoconf 2.58
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1147,7 +1147,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pam_ssh $as_me 1.92, which was
+It was created by pam_ssh $as_me 1.93, which was
generated by GNU Autoconf 2.58. Invocation command line was
$ $0 $@
@@ -1865,7 +1865,7 @@
# Define the identity of the package.
PACKAGE=pam_ssh
- VERSION=1.92
+ VERSION=1.93
cat >>confdefs.h <<_ACEOF
@@ -11291,7 +11291,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by pam_ssh $as_me 1.92, which was
+This file was extended by pam_ssh $as_me 1.93, which was
generated by GNU Autoconf 2.58. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -11354,7 +11354,7 @@
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-pam_ssh config.status 1.92
+pam_ssh config.status 1.93
configured by $0, generated by GNU Autoconf 2.58,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/configure.ac new/pam_ssh-1.93/configure.ac
--- old/pam_ssh-1.92/configure.ac 2006-05-31 23:14:07.000000000 +0200
+++ new/pam_ssh-1.93/configure.ac 2006-06-22 21:44:50.000000000 +0200
@@ -26,12 +26,12 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([pam_ssh],[1.92],[ajk(a)waterspout.com])
+AC_INIT([pam_ssh],[1.93],[ajk(a)waterspout.com])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([pam_ssh.c])
AC_CANONICAL_TARGET([])
AM_DISABLE_STATIC
-AM_INIT_AUTOMAKE(pam_ssh, 1.92)
+AM_INIT_AUTOMAKE(pam_ssh, 1.93)
AM_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/pam_ssh.8 new/pam_ssh-1.93/pam_ssh.8
--- old/pam_ssh-1.92/pam_ssh.8 2006-05-31 22:50:48.000000000 +0200
+++ new/pam_ssh-1.93/pam_ssh.8 2006-06-22 19:48:09.000000000 +0200
@@ -105,6 +105,8 @@
to check for SSH keys.
The default is
.Dq id_dsa,id_rsa,identity .
+.It Cm nullok
+Allow empty passphrases.
.El
.Ss SSH Session Management Module
The
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/pam_ssh.c new/pam_ssh-1.93/pam_ssh.c
--- old/pam_ssh-1.92/pam_ssh.c 2006-05-31 22:50:48.000000000 +0200
+++ new/pam_ssh-1.93/pam_ssh.c 2006-06-26 09:40:20.000000000 +0200
@@ -1,4 +1,7 @@
/*-
+ * Copyright (c) 2006 Wolfgang Rosenauer
+ * All rights reserved.
+ *
* Copyright (c) 1999, 2000, 2001, 2002, 2004 Andrew J. Korty
* All rights reserved.
*
@@ -31,7 +34,6 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: pam_ssh.c,v 1.81 2004/04/12 13:55:08 akorty Exp $
*/
/* to get the asprintf() prototype from the glibc headers */
@@ -41,7 +43,6 @@
#include <sys/param.h>
#include <sys/stat.h>
#include <config.h>
-#include <syslog.h>
#if HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
@@ -64,6 +65,7 @@
#include <string.h>
#include <sysexits.h>
#include <unistd.h>
+#include <time.h>
#define PAM_SM_AUTH
#define PAM_SM_SESSION
@@ -83,7 +85,7 @@
#include "key.h"
#include "authfd.h"
#include "authfile.h"
-#include "log.h"
+#include "pam_ssh_log.h"
#if !HAVE_DECL_OPENPAM_BORROW_CRED || !HAVE_DECL_OPENPAM_RESTORE_CRED
# include "openpam_cred.h"
#endif
@@ -101,32 +103,39 @@
# define __unused
#endif
-#define MODULE_NAME "pam_ssh"
+#define MODULE_NAME PACKAGE_NAME
#define NEED_PASSPHRASE "SSH passphrase: "
#define DEF_KEYFILES "id_dsa,id_rsa,identity"
#define ENV_PID_SUFFIX "_AGENT_PID"
#define ENV_SOCKET_SUFFIX "_AUTH_SOCK"
#define PAM_OPT_KEYFILES_NAME "keyfiles"
#define PAM_OPT_BLANK_PASSPHRASE_NAME "allow_blank_passphrase"
+#define PAM_OPT_NULLOK_NAME "nullok"
#define SEP_KEYFILES ","
#define SSH_CLIENT_DIR ".ssh"
enum {
#if HAVE_OPENPAM || HAVE_PAM_STRUCT_OPTIONS || !HAVE_PAM_STD_OPTION
PAM_OPT_KEYFILES = PAM_OPT_STD_MAX,
- PAM_OPT_BLANK_PASSPHRASE
+ PAM_OPT_BLANK_PASSPHRASE,
+ PAM_OPT_NULLOK
#else
PAM_OPT_KEYFILES,
- PAM_OPT_BLANK_PASSPHRASE
+ PAM_OPT_BLANK_PASSPHRASE,
+ PAM_OPT_NULLOK
#endif
};
static struct opttab other_options[] = {
{ PAM_OPT_KEYFILES_NAME, PAM_OPT_KEYFILES },
{ PAM_OPT_BLANK_PASSPHRASE_NAME, PAM_OPT_BLANK_PASSPHRASE },
+ { PAM_OPT_NULLOK_NAME, PAM_OPT_NULLOK },
{ NULL, 0 }
};
+/* global variable to enable debug logging */
+int log_debug = 0;
+
char *
opt_arg(const char *arg)
{
@@ -138,28 +147,6 @@
return retval;
}
-/*
- * Generic logging function that tags a message with the module name,
- * saving errno so it doesn't get whacked by asprintf().
- */
-
-static void
-pam_ssh_log(int priority, const char *fmt, ...)
-{
- va_list ap; /* variable argument list */
- int errno_saved; /* for caching errno */
- char *tagged; /* format tagged with module name */
-
- errno_saved = errno;
- asprintf(&tagged, "%s: %s", MODULE_NAME, fmt);
- va_start(ap, fmt);
- errno = errno_saved;
- vsyslog(priority, tagged ? tagged : fmt, ap);
- free(tagged);
- va_end(ap);
-}
-
-
pid_t
waitpid_intr(pid_t pid, int *status, int options)
{
@@ -171,6 +158,29 @@
return retval;
}
+/* uptime function */
+static time_t
+uptime(void)
+{
+ FILE *fp;
+ double upsecs;
+
+ fp = fopen ("/proc/uptime", "r");
+ if (fp != NULL)
+ {
+ char buffer[BUFSIZ];
+ char *b = fgets(buffer, BUFSIZ, fp);
+ fclose (fp);
+ if (b == buffer)
+ {
+ char *end;
+ upsecs = strtod(buffer, &end);
+ if (end != buffer)
+ return upsecs;
+ }
+ }
+ return -1;
+}
/*
* Generic cleanup function for OpenSSH "Key" type.
@@ -354,8 +364,6 @@
int retval; /* from calls */
const char *user; /* username */
- log_init(MODULE_NAME, SYSLOG_LEVEL_ERROR, SYSLOG_FACILITY_AUTHPRIV, 0);
-
allow_blank_passphrase = 0;
keyfiles = kfspec = NULL;
#if HAVE_OPENPAM
@@ -366,15 +374,21 @@
}
} else
kfspec = DEF_KEYFILES;
- if ((kfspec = openpam_get_option(pamh, PAM_OPT_BLANK_PASSPHRASE)))
+ if ((kfspec = openpam_get_option(pamh, PAM_OPT_BLANK_PASSPHRASE))
+ || kfspec = openpam_get_option(pamh, PAM_OPT_NULLOK))
allow_blank_passphrase = 1;
#elif HAVE_PAM_STRUCT_OPTIONS || !HAVE_PAM_STD_OPTION
memset(&options, 0, sizeof options);
pam_std_option(&options, other_options, argc, argv);
+ log_debug = pam_test_option(&options, PAM_OPT_DEBUG, NULL);
+ pam_ssh_log(LOG_DEBUG, "init authentication module");
if (!pam_test_option(&options, PAM_OPT_KEYFILES, &kfspec))
kfspec = DEF_KEYFILES;
allow_blank_passphrase =
pam_test_option(&options, PAM_OPT_BLANK_PASSPHRASE, NULL);
+ if(!allow_blank_passphrase)
+ allow_blank_passphrase =
+ pam_test_option(&options, PAM_OPT_NULLOK, NULL);
#else
options = 0;
for (; argc; argc--, argv++) {
@@ -392,6 +406,7 @@
}
break;
PAM_OPT_BLANK_PASSPHRASE:
+ PAM_OPT_NULLOK:
allow_blank_passphrase = 1;
break;
}
@@ -402,16 +417,20 @@
kfspec = DEF_KEYFILES;
#endif
- if ((retval = pam_get_user(pamh, &user, NULL)) != PAM_SUCCESS)
- return retval;
+ if ((retval = pam_get_user(pamh, &user, NULL)) != PAM_SUCCESS) {
+ pam_ssh_log(LOG_ERR, "can't get username (ret=%d)", retval);
+ return retval;
+ }
if (!(user && (pwent = getpwnam(user)) && pwent->pw_dir &&
- *pwent->pw_dir))
- return PAM_AUTH_ERR;
+ *pwent->pw_dir)) {
+ pam_ssh_log(LOG_ERR, "can't get homedirectory");
+ return PAM_AUTH_ERR;
+ }
retval = openpam_borrow_cred(pamh, pwent);
if (retval != PAM_SUCCESS && retval != PAM_PERM_DENIED) {
- pam_ssh_log(LOG_ERR, "can't drop privileges: %m");
- return retval;
+ pam_ssh_log(LOG_ERR, "can't drop privileges: %m");
+ return retval;
}
/* pass prompt message to application and receive passphrase */
@@ -424,12 +443,14 @@
retval = pam_get_pass(pamh, &pass, NEED_PASSPHRASE, options);
#endif
if (retval != PAM_SUCCESS) {
- openpam_restore_cred(pamh);
- return retval;
+ pam_ssh_log(LOG_ERR, "can't get passphrase from PAM");
+ openpam_restore_cred(pamh);
+ return retval;
}
if (!pass || (!allow_blank_passphrase && *pass == '\0')) {
- openpam_restore_cred(pamh);
- return PAM_AUTH_ERR;
+ pam_ssh_log(LOG_ERR, "blank passphrases disabled");
+ openpam_restore_cred(pamh);
+ return PAM_AUTH_ERR;
}
OpenSSL_add_all_algorithms(); /* required for DSA */
@@ -452,13 +473,16 @@
for (file = strtok(keyfiles, SEP_KEYFILES); file;
file = strtok(NULL, SEP_KEYFILES))
if (auth_via_key(pamh, file, dotdir, pwent, pass)
- == PAM_SUCCESS)
- authenticated = 1;
+ == PAM_SUCCESS) {
+ pam_ssh_log(LOG_DEBUG, "auth successful for key %s", file);
+ authenticated = 1;
+ }
free(dotdir);
free(keyfiles);
if (!authenticated) {
- openpam_restore_cred(pamh);
- return PAM_AUTH_ERR;
+ pam_ssh_log(LOG_DEBUG, "not able to open any key");
+ openpam_restore_cred(pamh);
+ return PAM_AUTH_ERR;
}
openpam_restore_cred(pamh);
@@ -475,8 +499,8 @@
PAM_EXTERN int
-pam_sm_open_session(pam_handle_t *pamh, int flags __unused,
- int argc __unused, const char **argv __unused)
+pam_sm_open_session(pam_handle_t *pamh, int flags,
+ int argc, const char **argv)
{
char *agent_pid; /* copy of agent PID */
char *agent_socket; /* agent socket */
@@ -491,7 +515,6 @@
char *env_value; /* envariable value */
int env_write; /* env file descriptor */
char hname[MAXHOSTNAMELEN]; /* local hostname */
- int no_link; /* link per-agent file? */
char *per_agent; /* to store env */
char *per_session; /* per-session filename */
const struct passwd *pwent; /* user's passwd entry */
@@ -500,22 +523,34 @@
const char *tty_raw; /* raw tty or display name */
char *tty_nodir; /* tty without / chars */
const char *user; /* username */
-
- log_init(MODULE_NAME, SYSLOG_LEVEL_ERROR, SYSLOG_FACILITY_AUTHPRIV, 0);
-
- /* dump output of ssh-agent in ~/.ssh */
- if ((retval = pam_get_user(pamh, &user, NULL)) != PAM_SUCCESS)
- return retval;
+ struct options options; /* PAM options */
+ struct stat stat_buf; /* stat structure */
+ time_t file_ctime; /* creation time of per-agent file */
+ time_t time_now; /* current time */
+ time_t time_up; /* uptime */
+
+ memset(&options, 0, sizeof options);
+ pam_std_option(&options, other_options, argc, argv);
+ log_debug = pam_test_option(&options, PAM_OPT_DEBUG, NULL);
+ pam_ssh_log(LOG_DEBUG, "open session");
+
+ if ((retval = pam_get_user(pamh, &user, NULL)) != PAM_SUCCESS) {
+ pam_ssh_log(LOG_ERR, "can't get username (ret=%d)", retval);
+ return retval;
+ }
if (!(user && (pwent = getpwnam(user)) && pwent->pw_dir &&
- *pwent->pw_dir))
- return PAM_AUTH_ERR;
-
- retval = openpam_borrow_cred(pamh, pwent);
- if (retval != PAM_SUCCESS && retval != PAM_PERM_DENIED) {
- pam_ssh_log(LOG_ERR, "can't drop privileges: %m");
- return retval;
- }
+ *pwent->pw_dir)) {
+ pam_ssh_log(LOG_ERR, "can't get homedirectory");
+ return PAM_AUTH_ERR;
+ }
+
+ retval = openpam_borrow_cred(pamh, pwent);
+ if (retval != PAM_SUCCESS && retval != PAM_PERM_DENIED) {
+ pam_ssh_log(LOG_ERR, "can't drop privileges: %m");
+ return retval;
+ }
+
/*
* Use reference counts to limit agents to one per user per host.
*
@@ -544,9 +579,10 @@
if ((retval = pam_set_data(pamh, "ssh_agent_env_agent", per_agent,
ssh_cleanup)) != PAM_SUCCESS) {
- free(per_agent);
- openpam_restore_cred(pamh);
- return retval;
+ pam_ssh_log(LOG_ERR, "can't save per-agent filename to PAM env");
+ free(per_agent);
+ openpam_restore_cred(pamh);
+ return retval;
}
/* Try to create the per-agent file or open it for reading if it
@@ -554,13 +590,37 @@
per-session filename later. Start the agent if we can't open
the file for reading. */
- env_write = child_pid = no_link = start_agent = 0;
+ env_write = child_pid = 0;
env_read = NULL;
- if ((env_write = open(per_agent, O_CREAT | O_EXCL | O_WRONLY, S_IRUSR))
- < 0 && !(env_read = fopen(per_agent, "r")))
- no_link = 1;
- if (!env_read) {
- start_agent = 1;
+ start_agent = 1;
+
+ if ((env_read = fopen(per_agent, "r"))) {
+ pam_ssh_log(LOG_DEBUG, "per_agent file already exists");
+ /* invalidate the status files if the reboot time was later
+ * than the file creation time */
+ if (retval = stat(per_agent, &stat_buf)) {
+ pam_ssh_log(LOG_ERR, "stat() failed on %s", per_agent);
+ free(per_agent);
+ fclose(env_read);
+ return retval;
+ }
+ file_ctime = stat_buf.st_mtime;
+
+ time_now = time(NULL);
+ if((time_up = uptime()) > 0) {
+ if (file_ctime > (time_now - time_up))
+ // session is still running - do nothing
+ start_agent = 0;
+ }
+ fclose(env_read);
+ }
+
+ if (start_agent) {
+ if ((env_write = open(per_agent, O_CREAT | O_EXCL | O_WRONLY, S_IRUSR)) < 0) {
+ pam_ssh_log(LOG_ERR, "can't write to %s", per_agent);
+ free(per_agent);
+ return PAM_SERVICE_ERR;
+ }
if (pipe(child_pipe) < 0) {
pam_ssh_log(LOG_ERR, "pipe: %m");
close(env_write);
@@ -622,6 +682,7 @@
arg[1] = "-s";
arg[2] = NULL;
env[0] = NULL;
+ pam_ssh_log(LOG_DEBUG, "exec %s", PATH_SSH_AGENT);
execve(PATH_SSH_AGENT, arg, env);
pam_ssh_log(LOG_ERR, "%s: %m", PATH_SSH_AGENT);
_exit(127);
@@ -764,14 +825,6 @@
}
free(agent_socket);
- /* if we couldn't access the per-agent file, don't link a
- per-session filename to it */
-
- if (no_link) {
- openpam_restore_cred(pamh);
- return PAM_SUCCESS;
- }
-
/* the per-session file contains the display name or tty name as
well as the hostname */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/pam_ssh.spec new/pam_ssh-1.93/pam_ssh.spec
--- old/pam_ssh-1.92/pam_ssh.spec 2006-05-31 23:36:56.000000000 +0200
+++ new/pam_ssh-1.93/pam_ssh.spec 2006-06-22 21:47:00.000000000 +0200
@@ -4,7 +4,7 @@
BuildRequires: pam-devel
License: BSD
Group: Productivity/Networking/SSH
-Version: 1.92
+Version: 1.93
Release: 1
Summary: A Pluggable Authentication Module (PAM) for use with SSH.
URL: http://developer.novell.com/wiki/index.php/Pam_ssh
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/pam_ssh_log.c new/pam_ssh-1.93/pam_ssh_log.c
--- old/pam_ssh-1.92/pam_ssh_log.c 1970-01-01 01:00:00.000000000 +0100
+++ new/pam_ssh-1.93/pam_ssh_log.c 2006-06-22 20:15:31.000000000 +0200
@@ -0,0 +1,63 @@
+/*-
+ *
+ * Copyright (c) 2006 Wolfgang Rosenauer
+ * All rights reserved.
+ *
+ * Copyright (c) 1999, 2000, 2001, 2002, 2004 Andrew J. Korty
+ * All rights reserved.
+ *
+ * Copyright (c) 2001, 2002 Networks Associates Technology, Inc.
+ * All rights reserved.
+ *
+ * Portions of this software were developed for the FreeBSD Project by
+ * ThinkSec AS and NAI Labs, the Security Research Division of Network
+ * Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
+ * ("CBOSS"), as part of the DARPA CHATS research program.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+*/
+
+#include "config.h"
+#include "pam_ssh_log.h"
+
+extern int log_debug;
+
+/*
+ * Generic logging function.
+ */
+
+void
+pam_ssh_log(int priority, const char *fmt, ...)
+{
+ va_list ap; /* variable argument list */
+
+ /* don't log LOG_DEBUG priority unless
+ * PAM debug option is set */
+ if (priority != LOG_DEBUG || log_debug) {
+ openlog(PACKAGE_NAME, LOG_PID, LOG_AUTHPRIV);
+ va_start(ap, fmt);
+ vsyslog(priority, fmt, ap);
+ va_end(ap);
+ closelog();
+ }
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/pam_ssh_log.h new/pam_ssh-1.93/pam_ssh_log.h
--- old/pam_ssh-1.92/pam_ssh_log.h 1970-01-01 01:00:00.000000000 +0100
+++ new/pam_ssh-1.93/pam_ssh_log.h 2006-06-22 19:48:31.000000000 +0200
@@ -0,0 +1,48 @@
+/*-
+ *
+ * Copyright (c) 2006 Wolfgang Rosenauer
+ * All rights reserved.
+ *
+ * Copyright (c) 1999, 2000, 2001, 2002, 2004 Andrew J. Korty
+ * All rights reserved.
+ *
+ * Copyright (c) 2001, 2002 Networks Associates Technology, Inc.
+ * All rights reserved.
+ *
+ * Portions of this software were developed for the FreeBSD Project by
+ * ThinkSec AS and NAI Labs, the Security Research Division of Network
+ * Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
+ * ("CBOSS"), as part of the DARPA CHATS research program.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+*/
+
+#ifndef PAM_SSH_LOG_H
+#define PAM_SSH_LOG_H
+
+#include <syslog.h>
+#include <stdarg.h>
+
+void pam_ssh_log(int priority, const char *fmt, ...);
+
+#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/pam_ssh-1.92/pam_std_option.c new/pam_ssh-1.93/pam_std_option.c
--- old/pam_ssh-1.92/pam_std_option.c 2006-05-31 22:50:48.000000000 +0200
+++ new/pam_ssh-1.93/pam_std_option.c 2006-06-22 21:13:02.000000000 +0200
@@ -28,7 +28,6 @@
#include <stdio.h>
#include <string.h>
-#include <syslog.h>
#include <pam_appl.h>
#include <config.h>
@@ -36,6 +35,7 @@
# include "pam_opttab.h"
#endif
#include "pam_option.h"
+#include "pam_ssh_log.h"
/* Everyone has to have these options. It is not an error to
* specify them and then not use them.
@@ -73,7 +73,7 @@
options->opt[i].name = std_options[i].name;
else if (extra) {
if (oo->value != i)
- syslog(LOG_DEBUG, "Extra option fault: %d %d",
+ pam_ssh_log(LOG_NOTICE, "Extra option fault: %d %d",
oo->value, i);
options->opt[i].name = oo->name;
oo++;
@@ -87,7 +87,7 @@
for (j = 0; j < argc; j++) {
#ifdef DEBUG
- syslog(LOG_DEBUG, "Doing arg %s", argv[j]);
+ pam_ssh_log(LOG_INFO, "Doing arg %s", argv[j]);
#endif
found = 0;
for (i = 0; i < PAM_MAX_OPTIONS; i++) {
@@ -109,7 +109,7 @@
}
}
if (!found)
- syslog(LOG_WARNING, "PAM option: %s invalid", argv[j]);
+ pam_ssh_log(LOG_WARNING, "PAM option: %s invalid", argv[j]);
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 openldap2
checked in at Tue Jun 27 18:22:56 CEST 2006.
--------
--- openldap2/openldap2-client.changes 2006-06-22 18:30:56.000000000 +0200
+++ openldap2/openldap2-client.changes 2006-06-27 18:21:15.000000000 +0200
@@ -1,0 +2,15 @@
+Mon Jun 26 16:36:16 CEST 2006 - rhafer(a)suse.de
+
+- Updated to Version 2.3.24
+ * Fixed slapd syncrepl timestamp bug (delta-sync/cascade)
+ (ITS#4567)
+ * Fixed slapd-bdb/hdb non-root users adding suffix/root entries
+ (ITS#4552)
+ * Re-fixed slapd-ldap improper free bug in exop (ITS#4550)
+ * Fixed slapd-ldif assert bug (ITS#4568)
+ * Fixed slapo-syncprov crash under glued database (ITS#4562)
+- cleaned up SLES10 update specific stuff
+- added "chain-return-error" feature from HEAD to chain overlay
+ (ITS#4570)
+
+-------------------------------------------------------------------
openldap2.changes: same change
Old:
----
README.update
openldap-2.2.24.dif
openldap-2.2.24.tar.bz2
openldap-2.3.23.dif
openldap-2.3.23.tar.bz2
New:
----
openldap-2.3.24.dif
openldap-2.3.24.tar.bz2
slapd_chain_return_error.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openldap2-client.spec ++++++
--- /var/tmp/diff_new_pack.0SAuQR/_old 2006-06-27 18:21:55.000000000 +0200
+++ /var/tmp/diff_new_pack.0SAuQR/_new 2006-06-27 18:21:55.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package openldap2-client (Version 2.3.23)
+# spec file for package openldap2-client (Version 2.3.24)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -27,16 +27,14 @@
Summary: OpenLDAP2 Client Utilities
%endif
Autoreqprov: on
-Version: 2.3.23
-Release: 2
+Version: 2.3.24
+Release: 1
Source: openldap-%{version}.tar.bz2
Source1: openldap-rc.tgz
Source2: openldap-admin-guide.tar.bz2
Source3: addonschema.tar.gz
Source4: DB_CONFIG
Source5: sasl-slapd.conf
-Source6: openldap-2.2.24.tar.bz2
-Source7: README.update
Patch: openldap-%{version}.dif
Patch1: secpatch.dif
Patch2: slapd_conf.dif
@@ -46,7 +44,7 @@
Patch6: libldap-gethostbyname_r.dif
Patch7: pie-compile.dif
Patch8: libldap-manpages.dif
-Patch100: openldap-2.2.24.dif
+Patch9: slapd_chain_return_error.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Prefix: %{_prefix}
@@ -115,7 +113,7 @@
%endif
%prep
-%setup -q -n openldap-%{version} -a1 -a2 -a3 -b6
+%setup -q -n openldap-%{version} -a1 -a2 -a3
%patch
%patch1
%patch2
@@ -127,9 +125,7 @@
%patch7
%endif
%patch8 -p1
-cp %{SOURCE7} .
-cd ../openldap-2.2.24
-%patch100
+%patch9 -p1
%build
%{?suse_update_config:%{suse_update_config -f build}}
@@ -185,24 +181,6 @@
%ifnarch %arm alpha
make test
%endif
-## openldap-2.2.24-slapcat
-%if "%{name}" == "openldap2"
-cd ../openldap-2.2.24
-%{?suse_update_config:%{suse_update_config -f build}}
-libtoolize --force
-aclocal -I build
-autoconf
-export CPPFLAGS="-I/usr/include/db42"
-export CFLAGS="$RPM_OPT_FLAGS"
-./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
- --localstatedir=/var/run/slapd --libexecdir=/usr/lib/openldap \
- --libdir=%{_libdir} --mandir=%{_mandir} --enable-aci \
- --enable-bdb --enable-ldbm --enable-crypt --enable-ipv6=no \
- --enable-ldap --enable-monitor --enable-meta --enable-rewrite \
- --enable-dynamic=no
-make depend
-make
-%endif
%install
#[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
@@ -228,11 +206,6 @@
install -m 644 $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example $RPM_BUILD_ROOT/var/lib/ldap/DB_CONFIG.example
rm -f $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example
rm -f $RPM_BUILD_ROOT/var/run/slapd/openldap-data/DB_CONFIG.example
-install -m 755 ../openldap-2.2.24/servers/slapd/slapcat $RPM_BUILD_ROOT/usr/sbin/openldap-2.2-slapcat
-mkdir -p $RPM_BUILD_ROOT/usr/share/openldap/ucdata
-install -m 644 ../openldap-2.2.24/libraries/liblunicode/*.dat $RPM_BUILD_ROOT/usr/share/openldap/ucdata/
-mkdir -p $RPM_BUILD_ROOT/usr/share/update-messages/en/
-install -m 644 README.update $RPM_BUILD_ROOT/usr/share/update-messages/en/openldap2.1
%endif
rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
@@ -263,9 +236,6 @@
%dir /usr/lib/openldap/modules
/usr/lib/openldap/slapd
/usr/lib/openldap/slurpd
-/usr/sbin/openldap-2.2-slapcat
-/usr/share/openldap
-/usr/share/update-messages/en/openldap2.1
%dir %attr(0700, ldap, ldap) /var/lib/ldap
%dir %attr(0700, ldap, ldap) /var/run/slapd
/var/lib/slurpd
@@ -281,7 +251,6 @@
%doc %{_mandir}/man5/slapo-*
%doc ANNOUNCEMENT COPYRIGHT INSTALL LICENSE README CHANGES
%doc doc/drafts doc/install doc/admin-guide
-%doc README.update
EOF
#
cat > openldap2-client.filelist <<EOF
@@ -341,88 +310,10 @@
/usr/sbin/groupadd -g 70 -o -r ldap 2> /dev/null || :
/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/bash -c "User for OpenLDAP" -d \
/var/lib/ldap ldap 2> /dev/null || :
-%if "%{name}" == "openldap2"
-if [ ${1:-0} -gt 1 ] && [ -f /usr/lib/openldap/slapd ] &&
- /usr/bin/strings /usr/lib/openldap/slapd | \
- grep "slapd 2.2" 2>&1 > /dev/null;
-then
- touch /etc/openldap/UPDATE_NEEDED ;
-fi
-%endif
%post
-%if "%{name}" == "openldap2"
%{fillup_and_insserv -n -s openldap ldap START_LDAP slurpd START_SLURPD}
%{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER}
-if [ -f /etc/openldap/UPDATE_NEEDED ] ; then
- SLAPD_CONF=/etc/openldap/slapd.conf
- TEMPDIR=`mktemp -d /tmp/ldapupdate.XXXXXX`
- LOGFILE="slaptool.log"
- BACKENDS=`grep ^database $SLAPD_CONF | awk '{print $2}'`
- DIRECTORIES=(`grep ^directory $SLAPD_CONF | awk '{print $2}'`)
- MSG=""
- db_num=0
- dir_num=0
- for i in $BACKENDS; do
- db_num=$((db_num+1));
- if [ "x$i" = "xbdb" ]; then
- db_dir=${DIRECTORIES[$dir_num]};
- if [ -f $db_dir/id2entry.bdb ] ; then
- rm $db_dir/__db* ;
- mkdir $db_dir/db_bak ;
- echo "Dumping database to: $db_dir/ldapbak.ldif.$db_num" ;
- /usr/sbin/openldap-2.2-slapcat -T c -v -f $SLAPD_CONF -n $db_num -l $db_dir/ldapbak.ldif.$db_num ;
- mv $db_dir/*.bdb $db_dir/db_bak/ ;
- mv $db_dir/log.* $db_dir/db_bak/ ;
- rm $db_dir/__db* ;
- fi
- dir_num=$((dir_num+1));
- fi
- done
- # Try to update the configuration
- # Create backup for original config
- SLAPD_ORIG=`mktemp /etc/openldap/slapd.conf.XXXXXXXXXX`
- cp $SLAPD_CONF $SLAPD_ORIG
- # back-ldap and back-monitor are no longer compiled as
- # dynamic modules
- sed -e 's;\([[:space:]]\+\)attr\=;\1attrs\=;g' \
- -e 's;^\(moduleload[[:space:]]\+back_ldap\);\# \1;' \
- -e 's;^\(moduleload[[:space:]]\+back_monitor\);\# \1;' \
- $SLAPD_ORIG > $SLAPD_CONF
- # Create Tempoary config file for update
- sed -e 's;^database\([[:space:]]\+\)bdb;database\1bdb\ndbnosync\nschemacheck off;' \
- $SLAPD_CONF > $TEMPDIR/slapd.conf.update
- db_num=0
- dir_num=0
- for i in $BACKENDS; do
- db_num=$((db_num+1));
- if [ "x$i" = "xbdb" ]; then
- db_dir=${DIRECTORIES[$dir_num]};
- if [ -s $db_dir/ldapbak.ldif.$db_num ] ; then
- if [ `wc -l $db_dir/ldapbak.ldif.$db_num | awk '{print $1}'` -lt 1000000 ]; then
- echo "Restoring $i database in $db_dir" ;
- slapadd -q -n $db_num -f $TEMPDIR/slapd.conf.update -l $db_dir/ldapbak.ldif.$db_num 2>> $db_dir/$LOGFILE ;
- if [ $? -ne 0 ]; then
- MSG="$MSG\nFailed to restore database in $db_dir";
- MSG="$MSG\nPlease restore manually from the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
- fi
- else
- MSG="$MSG\nPlease restore the database in $db_dir manually by using";
- MSG="$MSG\nslapadd with the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
- fi
- fi
- dir_num=$((dir_num+1));
- fi
- done
- rm -rf "$TEMPDIR"
- if [ "$MSG" ] ; then
- echo -e "$MSG";
- touch /var/lib/update-messages/openldap2.1
- else
- rm -f /etc/openldap/UPDATE_NEEDED ;
- fi
-fi
-%endif
%preun
%stop_on_removal ldap slurpd
@@ -449,6 +340,18 @@
%endif
%changelog -n openldap2-client
+* Mon Jun 26 2006 - rhafer(a)suse.de
+- Updated to Version 2.3.24
+ * Fixed slapd syncrepl timestamp bug (delta-sync/cascade)
+ (ITS#4567)
+ * Fixed slapd-bdb/hdb non-root users adding suffix/root entries
+ (ITS#4552)
+ * Re-fixed slapd-ldap improper free bug in exop (ITS#4550)
+ * Fixed slapd-ldif assert bug (ITS#4568)
+ * Fixed slapo-syncprov crash under glued database (ITS#4562)
+- cleaned up SLES10 update specific stuff
+- added "chain-return-error" feature from HEAD to chain overlay
+ (ITS#4570)
* Thu Jun 22 2006 - schwab(a)suse.de
- Don't use automake macros without using automake.
* Wed May 24 2006 - rhafer(a)suse.de
++++++ openldap2.spec ++++++
--- /var/tmp/diff_new_pack.0SAuQR/_old 2006-06-27 18:21:55.000000000 +0200
+++ /var/tmp/diff_new_pack.0SAuQR/_new 2006-06-27 18:21:55.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package openldap2 (Version 2.3.23)
+# spec file for package openldap2 (Version 2.3.24)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -27,16 +27,14 @@
Summary: The New OpenLDAP Server (LDAPv3)
%endif
Autoreqprov: on
-Version: 2.3.23
-Release: 2
+Version: 2.3.24
+Release: 1
Source: openldap-%{version}.tar.bz2
Source1: openldap-rc.tgz
Source2: openldap-admin-guide.tar.bz2
Source3: addonschema.tar.gz
Source4: DB_CONFIG
Source5: sasl-slapd.conf
-Source6: openldap-2.2.24.tar.bz2
-Source7: README.update
Patch: openldap-%{version}.dif
Patch1: secpatch.dif
Patch2: slapd_conf.dif
@@ -46,7 +44,7 @@
Patch6: libldap-gethostbyname_r.dif
Patch7: pie-compile.dif
Patch8: libldap-manpages.dif
-Patch100: openldap-2.2.24.dif
+Patch9: slapd_chain_return_error.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Prefix: %{_prefix}
@@ -118,7 +116,7 @@
%endif
%prep
-%setup -q -n openldap-%{version} -a1 -a2 -a3 -b6
+%setup -q -n openldap-%{version} -a1 -a2 -a3
%patch
%patch1
%patch2
@@ -130,9 +128,7 @@
%patch7
%endif
%patch8 -p1
-cp %{SOURCE7} .
-cd ../openldap-2.2.24
-%patch100
+%patch9 -p1
%build
%{?suse_update_config:%{suse_update_config -f build}}
@@ -188,24 +184,6 @@
%ifnarch %arm alpha
make test
%endif
-## openldap-2.2.24-slapcat
-%if "%{name}" == "openldap2"
-cd ../openldap-2.2.24
-%{?suse_update_config:%{suse_update_config -f build}}
-libtoolize --force
-aclocal -I build
-autoconf
-export CPPFLAGS="-I/usr/include/db42"
-export CFLAGS="$RPM_OPT_FLAGS"
-./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
- --localstatedir=/var/run/slapd --libexecdir=/usr/lib/openldap \
- --libdir=%{_libdir} --mandir=%{_mandir} --enable-aci \
- --enable-bdb --enable-ldbm --enable-crypt --enable-ipv6=no \
- --enable-ldap --enable-monitor --enable-meta --enable-rewrite \
- --enable-dynamic=no
-make depend
-make
-%endif
%install
#[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
@@ -231,11 +209,6 @@
install -m 644 $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example $RPM_BUILD_ROOT/var/lib/ldap/DB_CONFIG.example
rm -f $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example
rm -f $RPM_BUILD_ROOT/var/run/slapd/openldap-data/DB_CONFIG.example
-install -m 755 ../openldap-2.2.24/servers/slapd/slapcat $RPM_BUILD_ROOT/usr/sbin/openldap-2.2-slapcat
-mkdir -p $RPM_BUILD_ROOT/usr/share/openldap/ucdata
-install -m 644 ../openldap-2.2.24/libraries/liblunicode/*.dat $RPM_BUILD_ROOT/usr/share/openldap/ucdata/
-mkdir -p $RPM_BUILD_ROOT/usr/share/update-messages/en/
-install -m 644 README.update $RPM_BUILD_ROOT/usr/share/update-messages/en/openldap2.1
%endif
rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
@@ -266,9 +239,6 @@
%dir /usr/lib/openldap/modules
/usr/lib/openldap/slapd
/usr/lib/openldap/slurpd
-/usr/sbin/openldap-2.2-slapcat
-/usr/share/openldap
-/usr/share/update-messages/en/openldap2.1
%dir %attr(0700, ldap, ldap) /var/lib/ldap
%dir %attr(0700, ldap, ldap) /var/run/slapd
/var/lib/slurpd
@@ -284,7 +254,6 @@
%doc %{_mandir}/man5/slapo-*
%doc ANNOUNCEMENT COPYRIGHT INSTALL LICENSE README CHANGES
%doc doc/drafts doc/install doc/admin-guide
-%doc README.update
EOF
#
cat > openldap2-client.filelist <<EOF
@@ -344,88 +313,10 @@
/usr/sbin/groupadd -g 70 -o -r ldap 2> /dev/null || :
/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/bash -c "User for OpenLDAP" -d \
/var/lib/ldap ldap 2> /dev/null || :
-%if "%{name}" == "openldap2"
-if [ ${1:-0} -gt 1 ] && [ -f /usr/lib/openldap/slapd ] &&
- /usr/bin/strings /usr/lib/openldap/slapd | \
- grep "slapd 2.2" 2>&1 > /dev/null;
-then
- touch /etc/openldap/UPDATE_NEEDED ;
-fi
-%endif
%post
-%if "%{name}" == "openldap2"
%{fillup_and_insserv -n -s openldap ldap START_LDAP slurpd START_SLURPD}
%{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER}
-if [ -f /etc/openldap/UPDATE_NEEDED ] ; then
- SLAPD_CONF=/etc/openldap/slapd.conf
- TEMPDIR=`mktemp -d /tmp/ldapupdate.XXXXXX`
- LOGFILE="slaptool.log"
- BACKENDS=`grep ^database $SLAPD_CONF | awk '{print $2}'`
- DIRECTORIES=(`grep ^directory $SLAPD_CONF | awk '{print $2}'`)
- MSG=""
- db_num=0
- dir_num=0
- for i in $BACKENDS; do
- db_num=$((db_num+1));
- if [ "x$i" = "xbdb" ]; then
- db_dir=${DIRECTORIES[$dir_num]};
- if [ -f $db_dir/id2entry.bdb ] ; then
- rm $db_dir/__db* ;
- mkdir $db_dir/db_bak ;
- echo "Dumping database to: $db_dir/ldapbak.ldif.$db_num" ;
- /usr/sbin/openldap-2.2-slapcat -T c -v -f $SLAPD_CONF -n $db_num -l $db_dir/ldapbak.ldif.$db_num ;
- mv $db_dir/*.bdb $db_dir/db_bak/ ;
- mv $db_dir/log.* $db_dir/db_bak/ ;
- rm $db_dir/__db* ;
- fi
- dir_num=$((dir_num+1));
- fi
- done
- # Try to update the configuration
- # Create backup for original config
- SLAPD_ORIG=`mktemp /etc/openldap/slapd.conf.XXXXXXXXXX`
- cp $SLAPD_CONF $SLAPD_ORIG
- # back-ldap and back-monitor are no longer compiled as
- # dynamic modules
- sed -e 's;\([[:space:]]\+\)attr\=;\1attrs\=;g' \
- -e 's;^\(moduleload[[:space:]]\+back_ldap\);\# \1;' \
- -e 's;^\(moduleload[[:space:]]\+back_monitor\);\# \1;' \
- $SLAPD_ORIG > $SLAPD_CONF
- # Create Tempoary config file for update
- sed -e 's;^database\([[:space:]]\+\)bdb;database\1bdb\ndbnosync\nschemacheck off;' \
- $SLAPD_CONF > $TEMPDIR/slapd.conf.update
- db_num=0
- dir_num=0
- for i in $BACKENDS; do
- db_num=$((db_num+1));
- if [ "x$i" = "xbdb" ]; then
- db_dir=${DIRECTORIES[$dir_num]};
- if [ -s $db_dir/ldapbak.ldif.$db_num ] ; then
- if [ `wc -l $db_dir/ldapbak.ldif.$db_num | awk '{print $1}'` -lt 1000000 ]; then
- echo "Restoring $i database in $db_dir" ;
- slapadd -q -n $db_num -f $TEMPDIR/slapd.conf.update -l $db_dir/ldapbak.ldif.$db_num 2>> $db_dir/$LOGFILE ;
- if [ $? -ne 0 ]; then
- MSG="$MSG\nFailed to restore database in $db_dir";
- MSG="$MSG\nPlease restore manually from the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
- fi
- else
- MSG="$MSG\nPlease restore the database in $db_dir manually by using";
- MSG="$MSG\nslapadd with the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
- fi
- fi
- dir_num=$((dir_num+1));
- fi
- done
- rm -rf "$TEMPDIR"
- if [ "$MSG" ] ; then
- echo -e "$MSG";
- touch /var/lib/update-messages/openldap2.1
- else
- rm -f /etc/openldap/UPDATE_NEEDED ;
- fi
-fi
-%endif
%preun
%stop_on_removal ldap slurpd
@@ -452,6 +343,18 @@
%endif
%changelog -n openldap2
+* Mon Jun 26 2006 - rhafer(a)suse.de
+- Updated to Version 2.3.24
+ * Fixed slapd syncrepl timestamp bug (delta-sync/cascade)
+ (ITS#4567)
+ * Fixed slapd-bdb/hdb non-root users adding suffix/root entries
+ (ITS#4552)
+ * Re-fixed slapd-ldap improper free bug in exop (ITS#4550)
+ * Fixed slapd-ldif assert bug (ITS#4568)
+ * Fixed slapo-syncprov crash under glued database (ITS#4562)
+- cleaned up SLES10 update specific stuff
+- added "chain-return-error" feature from HEAD to chain overlay
+ (ITS#4570)
* Thu Jun 22 2006 - schwab(a)suse.de
- Don't use automake macros without using automake.
* Wed May 24 2006 - rhafer(a)suse.de
++++++ openldap-2.2.24.dif -> openldap-2.3.24.dif ++++++
--- openldap2/openldap-2.2.24.dif 2006-06-22 14:50:53.000000000 +0200
+++ openldap2/openldap-2.3.24.dif 2006-06-26 11:40:33.000000000 +0200
@@ -1,156 +1,6 @@
-Index: acinclude.m4
-================================================================================
---- acinclude.m4
-+++ acinclude.m4
-@@ -14,3 +14,16 @@
- dnl <http://www.OpenLDAP.org/license.html>.
- divert(-1)
- builtin(include, build/openldap.m4)dnl
-+
-+# From Ulrich Drepper.
-+
-+# serial 1
-+
-+AC_DEFUN([AM_TYPE_PTRDIFF_T],
-+ [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
-+ [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
-+ am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
-+ if test $am_cv_type_ptrdiff_t = yes; then
-+ AC_DEFINE(HAVE_PTRDIFF_T,1,[Define if system has ptrdiff_t type])
-+ fi
-+])
---- build/openldap.m4
-+++ build/openldap.m4
-@@ -65,7 +65,7 @@
- dnl
- dnl ====================================================================
- dnl
--AC_DEFUN(AC_COMPILE_CHECK_SIZEOF,
-+AC_DEFUN([AC_COMPILE_CHECK_SIZEOF],
- [changequote(<<, >>)dnl
- dnl The name to #define.
- define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
-@@ -173,7 +173,7 @@
- dnl
- dnl --------------------------------------------------------------------
- dnl OpenLDAP version of STDC header check w/ EBCDIC support
--AC_DEFUN(OL_HEADER_STDC,
-+AC_DEFUN([OL_HEADER_STDC],
- [AC_REQUIRE_CPP()dnl
- AC_REQUIRE([OL_CPP_EBCDIC])dnl
- AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc,
-@@ -315,27 +315,7 @@
- AC_DEFUN([OL_BERKELEY_DB_LINK],
- [ol_cv_lib_db=no
- OL_BERKELEY_DB_TRY(ol_cv_db_none)
--OL_BERKELEY_DB_TRY(ol_cv_db_db43,[-ldb43])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_43,[-ldb-43])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_3,[-ldb-4.3])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_4_3,[-ldb-4-3])
--OL_BERKELEY_DB_TRY(ol_cv_db_db42,[-ldb42])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_42,[-ldb-42])
- OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_2,[-ldb-4.2])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_4_2,[-ldb-4-2])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_4,[-ldb-4])
--OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
--OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb])
--OL_BERKELEY_DB_TRY(ol_cv_db_db41,[-ldb41])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_41,[-ldb-41])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_1,[-ldb-4.1])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_4_1,[-ldb-4-1])
--OL_BERKELEY_DB_TRY(ol_cv_db_db3,[-ldb3])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_3,[-ldb-3])
--OL_BERKELEY_DB_TRY(ol_cv_db_db2,[-ldb2])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_2,[-ldb-2])
--OL_BERKELEY_DB_TRY(ol_cv_db_db1,[-ldb1])
--OL_BERKELEY_DB_TRY(ol_cv_db_db_1,[-ldb-1])
- ])
- dnl
- dnl --------------------------------------------------------------------
-@@ -1016,7 +996,7 @@
- dnl Early MIPS compilers (used in Ultrix 4.2) don't like
- dnl "int x; int *volatile a = &x; *a = 0;"
- dnl -- borrowed from PDKSH
--AC_DEFUN(OL_C_VOLATILE,
-+AC_DEFUN([OL_C_VOLATILE],
- [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
- [AC_TRY_COMPILE([int x, y, z;],
- [volatile int a; int * volatile b = x ? &y : &z;
-@@ -1052,7 +1032,7 @@
- dnl
- dnl ====================================================================
- dnl Define sig_atomic_t if not defined in signal.h
--AC_DEFUN(OL_TYPE_SIG_ATOMIC_T,
-+AC_DEFUN([OL_TYPE_SIG_ATOMIC_T],
- [AC_CACHE_CHECK(for sig_atomic_t, ol_cv_type_sig_atomic_t,
- [AC_TRY_COMPILE([#include <signal.h>], [sig_atomic_t atomic;],
- ol_cv_type_sig_atomic_t=yes, ol_cv_type_sig_atomic_t=no)])
-@@ -1064,7 +1044,7 @@
- dnl
- dnl ====================================================================
- dnl Define socklen_t if not defined in sys/types.h or sys/socket.h
--AC_DEFUN(OL_TYPE_SOCKLEN_T,
-+AC_DEFUN([OL_TYPE_SOCKLEN_T],
- [AC_CACHE_CHECK(for socklen_t, ol_cv_type_socklen_t,
- [AC_TRY_COMPILE([
- #ifdef HAVE_SYS_TYPES_H
-@@ -1083,7 +1063,7 @@
- dnl
- dnl ====================================================================
- dnl Define inet_aton is available
--AC_DEFUN(OL_FUNC_INET_ATON,
-+AC_DEFUN([OL_FUNC_INET_ATON],
- [AC_CACHE_CHECK([for inet_aton()], ol_cv_func_inet_aton,
- [AC_TRY_LINK([
- #ifdef HAVE_SYS_TYPES_H
-@@ -1110,7 +1090,7 @@
- dnl
- dnl ====================================================================
- dnl check no of arguments for ctime_r
--AC_DEFUN(OL_FUNC_CTIME_R_NARGS,
-+AC_DEFUN([OL_FUNC_CTIME_R_NARGS],
- [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
- [AC_TRY_COMPILE([#include <time.h>],
- [time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
-@@ -1145,7 +1125,7 @@
- dnl
- dnl --------------------------------------------------------------------
- dnl check return type of ctime_r()
--AC_DEFUN(OL_FUNC_CTIME_R_TYPE,
-+AC_DEFUN([OL_FUNC_CTIME_R_TYPE],
- [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
- [AC_TRY_COMPILE([#include <time.h>],
- [extern int (ctime_r)();],
-@@ -1157,7 +1137,7 @@
- ])dnl
- dnl ====================================================================
- dnl check no of arguments for gethostbyname_r
--AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
-+AC_DEFUN([OL_FUNC_GETHOSTBYNAME_R_NARGS],
- [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
- ol_cv_func_gethostbyname_r_nargs,
- [AC_TRY_COMPILE([#include <sys/types.h>
-@@ -1207,7 +1187,7 @@
- ])dnl
- dnl
- dnl check no of arguments for gethostbyaddr_r
--AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
-+AC_DEFUN([OL_FUNC_GETHOSTBYADDR_R_NARGS],
- [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
- [ol_cv_func_gethostbyaddr_r_nargs],
- [AC_TRY_COMPILE([#include <sys/types.h>
-@@ -1283,7 +1263,7 @@
- ])
- dnl ====================================================================
- dnl check for msg_accrights in msghdr
--AC_DEFUN(OL_MSGHDR_MSG_ACCRIGHTS,
-+AC_DEFUN([OL_MSGHDR_MSG_ACCRIGHTS],
- [AC_CACHE_CHECK(for msg_accrights in msghdr, ol_cv_msghdr_msg_accrights,
- [AC_TRY_COMPILE([#include <sys/socket.h>],
- [struct msghdr m; m.msg_accrightslen=0],
--- build/top.mk
+++ build/top.mk
-@@ -37,7 +37,7 @@
+@@ -39,7 +39,7 @@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
@@ -159,33 +9,20 @@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@$(ldap_subdir)
-@@ -69,7 +69,7 @@
- LIBTOOL = @LIBTOOL@
- LIBRELEASE = @OPENLDAP_LIBRELEASE@
- LIBVERSION = @OPENLDAP_LIBVERSION@
--LTVERSION = -release $(LIBRELEASE) -version-info $(LIBVERSION)
-+LTVERSION = -version-info $(LIBVERSION)
+@@ -58,7 +58,7 @@
+ INSTALL_DATA = $(INSTALL) -m 644
+ INSTALL_SCRIPT = $(INSTALL)
- # libtool --only flag for libraries: platform specific
- NT_LTONLY_LIB = # --only-$(BUILD_LIBS_DYNAMIC)
---- build/version.var
-+++ build/version.var
-@@ -17,7 +17,7 @@
- ol_minor=2
- ol_patch=24
- ol_api_inc=20224
--ol_api_current=7
--ol_api_revision=17
--ol_api_age=0
-+ol_api_current=202
-+ol_api_revision=24
-+ol_api_age=3
- ol_release_date="2005/03/15"
+-STRIP = -s
++#STRIP = -s
+
+ LINT = lint
+ 5LINT = 5lint
--- configure.in
+++ configure.in
-@@ -84,7 +84,9 @@
+@@ -64,7 +64,9 @@
dnl we try not to use this for much
- AC_CANONICAL_SYSTEM
+ AC_CANONICAL_TARGET([])
-AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
+AC_PROG_MAKE_SET
@@ -194,96 +31,14 @@
AC_SUBST(PACKAGE)dnl
AC_SUBST(VERSION)dnl
AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
-@@ -2133,7 +2135,7 @@
- [have_setproctitle=yes
- LUTIL_LIBS="$LUTIL_LIBS -lutil"],
- [have_setproctitle=no
-- LIBOBJS="$LIBOBJS setproctitle.o"
-+ AC_LIBOBJ(setproctitle)
- LIBSRCS="$LIBSRCS setproctitle.c"])])
-
- if test $have_setproctitle = yes ; then
---- servers/slapd/schema_prep.c
-+++ servers/slapd/schema_prep.c
-@@ -894,6 +894,35 @@
- NULL, NULL,
- NULL, NULL, NULL, NULL, NULL,
- offsetof(struct slap_internal_schema, si_ad_cn) },
-+ { "uid", "( 0.9.2342.19200300.100.1.1 NAME ( 'uid' 'userid' ) "
-+ "DESC 'RFC1274: user identifier' "
-+ "EQUALITY caseIgnoreMatch "
-+ "SUBSTR caseIgnoreSubstringsMatch "
-+ "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )",
-+ NULL, 0,
-+ NULL, NULL,
-+ NULL, NULL, NULL, NULL, NULL,
-+ offsetof(struct slap_internal_schema, si_ad_uid) },
-+ { "uidNumber", /* for ldapi:// */
-+ "( 1.3.6.1.1.1.1.0 NAME 'uidNumber' "
-+ "DESC 'An integer uniquely identifying a user "
-+ "in an administrative domain' "
-+ "EQUALITY integerMatch "
-+ "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
-+ NULL, 0,
-+ NULL, NULL,
-+ NULL, NULL, NULL, NULL, NULL,
-+ offsetof(struct slap_internal_schema, si_ad_uidNumber) },
-+ { "gidNumber", /* for ldapi:// */
-+ "( 1.3.6.1.1.1.1.1 NAME 'gidNumber' "
-+ "DESC 'An integer uniquely identifying a group "
-+ "in an administrative domain' "
-+ "EQUALITY integerMatch "
-+ "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )",
-+ NULL, 0,
-+ NULL, NULL,
-+ NULL, NULL, NULL, NULL, NULL,
-+ offsetof(struct slap_internal_schema, si_ad_gidNumber) },
- { "userPassword", "( 2.5.4.35 NAME 'userPassword' "
- "DESC 'RFC2256/2307: password of user' "
- "EQUALITY octetStringMatch "
-@@ -945,6 +974,24 @@
- NULL, NULL, NULL, NULL, NULL,
- offsetof(struct slap_internal_schema, si_ad_krbName) },
- #endif
-+ { "description", "( 2.5.4.13 NAME 'description' "
-+ "DESC 'RFC2256: descriptive information' "
-+ "EQUALITY caseIgnoreMatch "
-+ "SUBSTR caseIgnoreSubstringsMatch "
-+ "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )",
-+ NULL, 0,
-+ NULL, NULL,
-+ NULL, NULL, NULL, NULL, NULL,
-+ offsetof(struct slap_internal_schema, si_ad_description) },
-+
-+ { "seeAlso", "( 2.5.4.34 NAME 'seeAlso' "
-+ "DESC 'RFC2256: DN of related object' "
-+ "SUP distinguishedName )",
-+ NULL, 0,
-+ NULL, NULL,
-+ NULL, NULL, NULL, NULL, NULL,
-+ offsetof(struct slap_internal_schema, si_ad_seeAlso) },
-+
- { NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0 }
- };
+--- servers/slapd/aclparse.c
++++ servers/slapd/aclparse.c
+@@ -662,7 +662,7 @@
+ if ( rc != LDAP_SUCCESS ) {
+ char buf[ SLAP_TEXT_BUFLEN ];
---- servers/slapd/slap.h
-+++ servers/slapd/slap.h
-@@ -825,6 +825,9 @@
- AttributeDescription *si_ad_distinguishedName;
- AttributeDescription *si_ad_name;
- AttributeDescription *si_ad_cn;
-+ AttributeDescription *si_ad_uid;
-+ AttributeDescription *si_ad_uidNumber;
-+ AttributeDescription *si_ad_gidNumber;
- AttributeDescription *si_ad_userPassword;
- AttributeDescription *si_ad_labeledURI;
- #ifdef SLAPD_AUTHPASSWD
-@@ -833,6 +836,8 @@
- #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND
- AttributeDescription *si_ad_krbName;
- #endif
-+ AttributeDescription *si_ad_description;
-+ AttributeDescription *si_ad_seeAlso;
-
- /* Undefined Attribute Type */
- AttributeType *si_at_undefined;
+- snprintf( buf, sizeof( buf ), "%s: line %d: "
++ snprintf( buf, sizeof( buf ),
+ " attr \"%s\" normalization failed (%d: %s)",
+ fname, lineno,
+ a->acl_attrs[ 0 ].an_name.bv_val, rc, text );
++++++ openldap-2.2.24.tar.bz2 -> openldap-2.3.24.tar.bz2 ++++++
++++ 460407 lines of diff (skipped)
++++++ slapd_chain_return_error.dif ++++++
Index: openldap-2.3.24/servers/slapd/back-ldap/chain.c
===================================================================
--- openldap-2.3.24.orig/servers/slapd/back-ldap/chain.c
+++ openldap-2.3.24/servers/slapd/back-ldap/chain.c
@@ -90,10 +90,12 @@ typedef struct ldap_chain_t {
unsigned lc_flags;
#define LDAP_CHAIN_F_NONE (0x00U)
#define LDAP_CHAIN_F_CHAINING (0x01U)
-#define LDAP_CHAIN_F_CACHE_URI (0x10U)
+#define LDAP_CHAIN_F_CACHE_URI (0x02U)
+#define LDAP_CHAIN_F_RETURN_ERR (0x04U)
#define LDAP_CHAIN_CHAINING( lc ) ( ( (lc)->lc_flags & LDAP_CHAIN_F_CHAINING ) == LDAP_CHAIN_F_CHAINING )
#define LDAP_CHAIN_CACHE_URI( lc ) ( ( (lc)->lc_flags & LDAP_CHAIN_F_CACHE_URI ) == LDAP_CHAIN_F_CACHE_URI )
+#define LDAP_CHAIN_RETURN_ERR( lc ) ( ( (lc)->lc_flags & LDAP_CHAIN_F_RETURN_ERR ) == LDAP_CHAIN_F_RETURN_ERR )
#ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR
LDAPControl lc_chaining_ctrl;
@@ -475,6 +477,7 @@ static int
ldap_chain_response( Operation *op, SlapReply *rs )
{
slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
+ ldap_chain_t *lc = (ldap_chain_t *)on->on_bi.bi_private;
void *private = op->o_bd->be_private;
slap_callback *sc = op->o_callback,
sc2 = { 0 };
@@ -796,11 +799,16 @@ cannot_chain:;
default:
#endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */
- rc = SLAP_CB_CONTINUE;
- rs->sr_err = sr_err;
- rs->sr_type = sr_type;
- rs->sr_matched = matched;
- rs->sr_ref = ref;
+ if( LDAP_CHAIN_RETURN_ERR(lc) ){
+ rs->sr_err = rc;
+ rs->sr_type = sr_type;
+ } else {
+ rc = SLAP_CB_CONTINUE;
+ rs->sr_err = sr_err;
+ rs->sr_type = sr_type;
+ rs->sr_matched = matched;
+ rs->sr_ref = ref;
+ }
#ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR
break;
}
@@ -858,7 +866,8 @@ str2chain( const char *s )
enum {
CH_CHAINING = 1,
- CH_CACHE_URI = 2,
+ CH_CACHE_URI,
+ CH_RETURN_ERR,
CH_LAST
};
@@ -880,6 +889,11 @@ static ConfigTable chaincfg[] = {
"( OLcfgOvAt:3.2 NAME 'olcCacheURI' "
"DESC 'Enables caching of URIs not present in configuration' "
"SYNTAX OMsBoolean SINGLE-VALUE )", NULL, NULL },
+ { "chain-return-error", "TRUE/FALSE",
+ 2, 2, 0, ARG_MAGIC|ARG_ON_OFF|CH_RETURN_ERR, chain_cf_gen,
+ "( OLcfgOvAt:3.4 NAME 'olcChainReturnError' "
+ "DESC 'Errors are returned instead of the original referral' "
+ "SYNTAX OMsBoolean SINGLE-VALUE )", NULL, NULL },
{ NULL, NULL, 0, 0, 0, ARG_IGNORED }
};
@@ -892,7 +906,8 @@ static ConfigOCs chainocs[] = {
#ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR
"olcChainingBehavior $ "
#endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */
- "olcCacheURI "
+ "olcCacheURI $ "
+ "olcChainReturnError "
") )",
Cft_Overlay, chaincfg, NULL, chain_cfadd },
{ "( OLcfgOvOc:3.2 "
@@ -1109,6 +1124,9 @@ chain_cf_gen( ConfigArgs *c )
case CH_CACHE_URI:
c->value_int = LDAP_CHAIN_CACHE_URI( lc );
break;
+ case CH_RETURN_ERR:
+ c->value_int = LDAP_CHAIN_RETURN_ERR( lc );
+ break;
default:
assert( 0 );
@@ -1124,6 +1142,9 @@ chain_cf_gen( ConfigArgs *c )
case CH_CACHE_URI:
lc->lc_flags &= ~LDAP_CHAIN_F_CACHE_URI;
break;
+ case CH_RETURN_ERR:
+ lc->lc_flags &= ~LDAP_CHAIN_F_RETURN_ERR;
+ break;
default:
return 1;
@@ -1256,6 +1277,13 @@ chain_cf_gen( ConfigArgs *c )
lc->lc_flags &= ~LDAP_CHAIN_F_CACHE_URI;
}
break;
+ case CH_RETURN_ERR:
+ if ( c->value_int ) {
+ lc->lc_flags |= LDAP_CHAIN_F_RETURN_ERR;
+ } else {
+ lc->lc_flags &= ~LDAP_CHAIN_F_RETURN_ERR;
+ }
+ break;
default:
assert( 0 );
Index: openldap-2.3.24/doc/man/man5/slapo-chain.5
===================================================================
--- openldap-2.3.24.orig/doc/man/man5/slapo-chain.5
+++ openldap-2.3.24/doc/man/man5/slapo-chain.5
@@ -79,6 +79,14 @@ These URIs inherit the properties config
\fBslapd-ldap\fP(5) before any occurrence of the \fBchain-uri\fP
directive; in detail, they are essentially chained anonymously.
.TP
+.B chain-return-error {FALSE|true}
+In case referral chasing fails, the real error is returned instead
+of the original referral. In case multiple referral URIs are present,
+only the first error is returned. This behavior may not be always
+appropriate nor desirable, since failures in referral chasing might be
+better resolved by the client (e.g. when caused by distributed
+authentication issues).
+.TP
.B chain-uri <ldapuri>
This directive instantiates a new underlying \fIldap\fP database
and instructs it about which URI to contact to chase referrals.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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