delete old
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/mds@2997 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
parent
ce991b3caa
commit
30fcb85b76
@ -1,49 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (geos_one) (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2010-05-01
|
|
||||||
Initial Package Version: 2.4.0
|
|
||||||
Origin: me
|
|
||||||
Upstream Status: unknonw
|
|
||||||
Description: split the install into some clear targets
|
|
||||||
|
|
||||||
diff -Naur mds-2.4.0.orig/agent/Makefile mds-2.4.0/agent/Makefile
|
|
||||||
--- mds-2.4.0.orig/agent/Makefile 2010-04-21 12:29:46.000000000 +0000
|
|
||||||
+++ mds-2.4.0/agent/Makefile 2010-05-01 06:49:16.150868972 +0000
|
|
||||||
@@ -44,22 +44,31 @@
|
|
||||||
@echo "Nothing to do"
|
|
||||||
|
|
||||||
# Install everything
|
|
||||||
-install:
|
|
||||||
- @# Install directories
|
|
||||||
- @echo "Creating directories..."
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(SBINDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(LIBDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(ETCDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
+install: install_py install_lib install_cfg
|
|
||||||
+
|
|
||||||
+# Install everything eccept python modules
|
|
||||||
+install_nopy: install_lib install_cfg
|
|
||||||
|
|
||||||
+install_py:
|
|
||||||
+ @# Install Python directories
|
|
||||||
+ @echo "Creating python directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install python code in $(DESTDIR)$(PYTHON_PREFIX)"
|
|
||||||
$(PYTHON) setup.py install --no-compile --prefix $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
|
|
||||||
+install_lib:
|
|
||||||
+ @# Install lib directories
|
|
||||||
+ @echo "Creating lib directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(LIBDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install LIBFILES in $(DESTDIR)$(LIBDIR)"
|
|
||||||
$(INSTALL) $(LIBFILES) -m 755 -o root -g root $(DESTDIR)$(LIBDIR)
|
|
||||||
|
|
||||||
+install_cfg:
|
|
||||||
+ @# Install config directories
|
|
||||||
+ @echo "Creating config directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(ETCDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install CONFILES in $(DESTDIR)$(ETCDIR)"
|
|
||||||
$(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(ETCDIR)/plugins
|
|
@ -1,764 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (geos_one) (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2010-05-01
|
|
||||||
Initial Package Version: 2.3.1
|
|
||||||
Origin: http://mds.mandriva.org/svn/mmc-agent/branches/printing
|
|
||||||
Upstream Status: unknown
|
|
||||||
Description: add the printing plugin from the 2.3.1 branch
|
|
||||||
|
|
||||||
diff -Naur mds-2.4.0.orig/agent/conf/plugins/printing.ini mds-2.4.0/agent/conf/plugins/printing.ini
|
|
||||||
--- mds-2.4.0.orig/agent/conf/plugins/printing.ini 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mds-2.4.0/agent/conf/plugins/printing.ini 2010-05-01 11:57:24.515871440 +0000
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+[main]
|
|
||||||
+# Is this plugin disabled ?
|
|
||||||
+disable = 0
|
|
||||||
+# Where are located the printers
|
|
||||||
+basePrintersDN = ou=Printers, dc=linbox, dc=com
|
|
||||||
diff -Naur mds-2.4.0.orig/agent/conf/plugins/printstats.ini mds-2.4.0/agent/conf/plugins/printstats.ini
|
|
||||||
--- mds-2.4.0.orig/agent/conf/plugins/printstats.ini 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mds-2.4.0/agent/conf/plugins/printstats.ini 2010-05-01 11:57:24.516870811 +0000
|
|
||||||
@@ -0,0 +1,26 @@
|
|
||||||
+[main]
|
|
||||||
+disable = 0
|
|
||||||
+dbhost = localhost
|
|
||||||
+dbport = 5432
|
|
||||||
+dbname = lpstats
|
|
||||||
+dbuser = lpstats
|
|
||||||
+dbpasswd = lpstats
|
|
||||||
+
|
|
||||||
+[sql]
|
|
||||||
+history = SELECT sum(pages * copies), (SELECT EXTRACT(day FROM date)) AS day, (SELECT EXTRACT(month from date)) AS month, (SELECT EXTRACT(year from date)) AS year FROM linboxprintstats WHERE (now()::date - date::date <= %(days)d and printserver like '%(printserver)s') GROUP by day, month, year;
|
|
||||||
+
|
|
||||||
+historybymonth = SELECT sum(pages * copies), (SELECT EXTRACT(month from date)) AS month, (SELECT EXTRACT(year from date)) AS year FROM linboxprintstats WHERE (now()::date - date::date <= %(days)d and printserver like '%(printserver)s') GROUP by month, year;
|
|
||||||
+
|
|
||||||
+printers = select lps.printer as impr, coalesce(sum(lps.copies * lps.pages), 0) as total , (select coalesce(sum(lps2.copies * lps2.pages), 0) from linboxprintstats lps2 where (lps.printer = lps2.printer and lps2.color = 2 and lps2.date >= '%(begin)s' and lps2.date<='%(end)s' and lps2.printserver like '%(printserver)s')) as color, (select coalesce(sum(lps3.copies * lps3.pages), 0) from linboxprintstats lps3 where (lps3.printer = lps.printer and lps3.color <= 1 and lps3.date >= '%(begin)s' and lps3.date <= '%(end)s' and lps3.printserver like '%(printserver)s')) as bw from linboxprintstats lps where (lps.date >= '%(begin)s' and lps.date <= '%(end)s' and lps.printserver like '%(printserver)s') group by lps.printer order by %(orderby)s %(sort)s limit %(limit)s;
|
|
||||||
+
|
|
||||||
+users = select lps.username, coalesce(sum(lps.copies * lps.pages), 0) as total , (select coalesce(sum(lps2.copies * lps2.pages), 0) from linboxprintstats lps2 where (lps2.username = lps.username and lps2.color = 2 and lps2.date >= '%(begin)s' and lps2.date <= '%(end)s' and lps2.printserver like '%(printserver)s')) as color, (select coalesce(sum(lps3.copies * lps3.pages), 0) from linboxprintstats lps3 where (lps3.username = lps.username and lps3.color<=1 and lps3.date >= '%(begin)s' and lps3.date <= '%(end)s' and lps3.printserver like '%(printserver)s')) as bw from linboxprintstats lps where (lps.date >= '%(begin)s' and lps.date <= '%(end)s' and lps.printserver like '%(printserver)s') group by lps.username order by %(orderby)s %(sort)s limit %(limit)s;
|
|
||||||
+
|
|
||||||
+printer = select (select sum(lps2.copies) from linboxprintstats lps2 where (lps2.pages >= '%(lim1)d' and lps2.pages <= '%(lim2)d' and lps2.printer='%(printer)s' and lps2.date >= '%(begin)s' and date <= '%(end)s' and lps2.printserver like '%(printserver)s')), (select sum(lps3.copies) from linboxprintstats lps3 where (lps3.pages > '%(lim2)d' and lps3.pages <= '%(lim3)d' and lps3.printer='%(printer)s' and lps3.date >= '%(begin)s' and lps3.date <= '%(end)s') and lps3.printserver like '%(printserver)s'), (select sum(lps4.copies) from linboxprintstats lps4 where (lps4.pages > '%(lim3)s' and lps4.pages <= '%(lim4)s' and lps4.printer = '%(printer)s' and lps4.date >= '%(begin)s' and lps4.date <= '%(end)s' and lps4.printserver like '%(printserver)s')), (select sum(lps5.copies) from linboxprintstats lps5 where (lps5.pages > '%(lim4)s' and lps5.pages <= '%(lim5)s' and lps5.printer = '%(printer)s' and lps5.date >= '%(begin)s' and lps5.date <= '%(end)s' and lps5.printserver like '%(printserver)s')), (select sum(lps6.copies) from linboxprintstats lps6 where (lps6.pages > '%(lim5)s' and lps6.printer = '%(printer)s' and lps6.date >= '%(begin)s' and date <= '%(end)s' and lps6.printserver like '%(printserver)s')) from linboxprintstats limit 1;
|
|
||||||
+
|
|
||||||
+user4printer = select lps.username, coalesce(sum(lps.copies * lps.pages), 0) as total , (select coalesce(sum(lps2.copies * lps2.pages), 0) from linboxprintstats lps2 where (lps2.printer = '%(printer)s' and lps2.username = lps.username and lps2.color = 2 and lps2.date >= '%(begin)s' and lps2.date <= '%(end)s' and lps2.printserver like '%(printserver)s')) as color, (select coalesce(sum(lps3.copies * lps3.pages), 0) from linboxprintstats lps3 where (lps3.printer = '%(printer)s' and lps3.username = lps.username and lps3.color <= 1 and lps3.date >= '%(begin)s' and lps3.date <= '%(end)s' and lps3.printserver like '%(printserver)s')) as bw from linboxprintstats lps where (lps.printer = '%(printer)s' and lps.date >= '%(begin)s' and lps.date <= '%(end)s' and lps.printserver like '%(printserver)s') group by username order by %(orderby)s %(sort)s limit %(limit)s;
|
|
||||||
+
|
|
||||||
+printservers = select distinct(printserver) from linboxprintstats;
|
|
||||||
+
|
|
||||||
+printerlist = select distinct(printer) from linboxprintstats;
|
|
||||||
+
|
|
||||||
+colors = SELECT color,sum(copies*pages) from linboxprintstats WHERE (date >= '%(begin)s' and date <= '%(end)s' and printserver like '%(printserver)s') GROUP by color;
|
|
||||||
diff -Naur mds-2.4.0.orig/agent/mmc/plugins/printing/__init__.py mds-2.4.0/agent/mmc/plugins/printing/__init__.py
|
|
||||||
--- mds-2.4.0.orig/agent/mmc/plugins/printing/__init__.py 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mds-2.4.0/agent/mmc/plugins/printing/__init__.py 2010-05-01 11:57:29.705870043 +0000
|
|
||||||
@@ -0,0 +1,480 @@
|
|
||||||
+# -*- coding: utf-8; -*-
|
|
||||||
+#
|
|
||||||
+# (c) 2004-2007 Linbox / Free&ALter Soft, http://linbox.com
|
|
||||||
+# (c) 2007-2008 Mandriva, http://www.mandriva.com
|
|
||||||
+#
|
|
||||||
+# $Id: __init__.py 642 2008-05-19 16:16:55Z cdelfosse $
|
|
||||||
+#
|
|
||||||
+# This file is part of Mandriva Management Console (MMC).
|
|
||||||
+#
|
|
||||||
+# MMC is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+#
|
|
||||||
+# MMC is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with MMC; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
+
|
|
||||||
+import ConfigParser
|
|
||||||
+import logging
|
|
||||||
+
|
|
||||||
+import ldap
|
|
||||||
+from ldap.modlist import addModlist
|
|
||||||
+
|
|
||||||
+from mmc.plugins.base import ldapUserGroupControl, GpoManager
|
|
||||||
+from mmc.support import mmctools
|
|
||||||
+
|
|
||||||
+VERSION = "2.3.1"
|
|
||||||
+APIVERSION = "1:0:0"
|
|
||||||
+REVISION = int("$Rev: 642 $".split(':')[1].strip(' $'))
|
|
||||||
+
|
|
||||||
+def getVersion(): return VERSION
|
|
||||||
+def getApiVersion(): return APIVERSION
|
|
||||||
+def getRevision(): return REVISION
|
|
||||||
+
|
|
||||||
+def activate():
|
|
||||||
+ """
|
|
||||||
+ This function defines if this module can be activated
|
|
||||||
+ @return: return True if this module can be activated
|
|
||||||
+ @rtype: boolean
|
|
||||||
+ """
|
|
||||||
+ configParser = mmctools.getConfigParser("printing")
|
|
||||||
+ logger = logging.getLogger()
|
|
||||||
+ ret = False
|
|
||||||
+ if configParser.get("main", "disable") == "1":
|
|
||||||
+ logger.info("printing plugin disabled by configuration.")
|
|
||||||
+ else:
|
|
||||||
+ # Create Printers Ou
|
|
||||||
+ p = ldapPrinters()
|
|
||||||
+ head, path = p.basePrintersDN.split(",", 1)
|
|
||||||
+ ouName = head.split("=")[1]
|
|
||||||
+ try:
|
|
||||||
+ p.addOu(ouName, path)
|
|
||||||
+ logger.info("Created OU " + p.basePrintersDN)
|
|
||||||
+ except ldap.ALREADY_EXISTS:
|
|
||||||
+ pass
|
|
||||||
+ gpomanager = GpoManager("Printers")
|
|
||||||
+ try:
|
|
||||||
+ gpomanager.add("GPOPrintServiceAccessAllowed", { "ACLPrintServiceAccess" : "True" })
|
|
||||||
+ except ldap.ALREADY_EXISTS:
|
|
||||||
+ pass
|
|
||||||
+ try:
|
|
||||||
+ gpomanager.add("GPOPrintServiceAllRights", { "ACLPrintServiceAllRights" : "True" })
|
|
||||||
+ except ldap.ALREADY_EXISTS:
|
|
||||||
+ pass
|
|
||||||
+ ret = True
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+# Printers management
|
|
||||||
+
|
|
||||||
+def get(pattern = "*"):
|
|
||||||
+ return ldapPrinters().get(pattern)
|
|
||||||
+
|
|
||||||
+def add(name, location = "", info = ""):
|
|
||||||
+ d = {}
|
|
||||||
+ d["printer-name"] = name
|
|
||||||
+ d["printer-location"] = location
|
|
||||||
+ d["printer-info"] = info
|
|
||||||
+ return ldapPrinters().add(d)
|
|
||||||
+
|
|
||||||
+def delete(name):
|
|
||||||
+ return ldapPrinters().delete(name)
|
|
||||||
+
|
|
||||||
+def exists(printer):
|
|
||||||
+ return ldapPrinters().exists(printer)
|
|
||||||
+
|
|
||||||
+# User rights management
|
|
||||||
+
|
|
||||||
+def addUserServiceAccessAllowed(uid):
|
|
||||||
+ ldapPrinters().addUserServiceAccessAllowed(uid)
|
|
||||||
+
|
|
||||||
+def delUserServiceAccessAllowed(uid):
|
|
||||||
+ ldapPrinters().delUserServiceAccessAllowed(uid)
|
|
||||||
+
|
|
||||||
+def isUserServiceAccessAllowed(uid):
|
|
||||||
+ return ldapPrinters().isUserServiceAccessAllowed(uid)
|
|
||||||
+
|
|
||||||
+def addUserServiceAllRights(uid):
|
|
||||||
+ ldapPrinters().addUserServiceAllRights(uid)
|
|
||||||
+
|
|
||||||
+def delUserServiceAllRights(uid):
|
|
||||||
+ ldapPrinters().delUserServiceAllRights(uid)
|
|
||||||
+
|
|
||||||
+def isUserServiceAllRights(uid):
|
|
||||||
+ return ldapPrinters().isUserServiceAllRights(uid)
|
|
||||||
+
|
|
||||||
+def addUserPrinterAccessAllowed(uid, printer):
|
|
||||||
+ ldapPrinters().addUserPrinterAccessAllowed(uid, printer)
|
|
||||||
+
|
|
||||||
+def delUserPrinterAccessAllowed(uid, printer):
|
|
||||||
+ ldapPrinters().delUserPrinterAccessAllowed(uid, printer)
|
|
||||||
+
|
|
||||||
+def getUserPrintersAccessAllowed(uid):
|
|
||||||
+ return ldapPrinters().getUserPrintersAccessAllowed(uid)
|
|
||||||
+
|
|
||||||
+# Group rights management
|
|
||||||
+
|
|
||||||
+def addGroupServiceAccessAllowed(group):
|
|
||||||
+ ldapPrinters().addGroupServiceAccessAllowed(group)
|
|
||||||
+
|
|
||||||
+def delGroupServiceAccessAllowed(group):
|
|
||||||
+ ldapPrinters().delGroupServiceAccessAllowed(group)
|
|
||||||
+
|
|
||||||
+def isGroupServiceAccessAllowed(group):
|
|
||||||
+ return ldapPrinters().isGroupServiceAccessAllowed(group)
|
|
||||||
+
|
|
||||||
+def addGroupServiceAllRights(group):
|
|
||||||
+ ldapPrinters().addGroupServiceAllRights(group)
|
|
||||||
+
|
|
||||||
+def delGroupServiceAllRights(group):
|
|
||||||
+ ldapPrinters().delGroupServiceAllRights(group)
|
|
||||||
+
|
|
||||||
+def isGroupServiceAllRights(group):
|
|
||||||
+ return ldapPrinters().isGroupServiceAllRights(group)
|
|
||||||
+
|
|
||||||
+def addGroupPrinterAccessAllowed(group, printer):
|
|
||||||
+ ldapPrinters().addGroupPrinterAccessAllowed(group, printer)
|
|
||||||
+
|
|
||||||
+def delGroupPrinterAccessAllowed(group, printer):
|
|
||||||
+ ldapPrinters().delGroupPrinterAccessAllowed(group, printer)
|
|
||||||
+
|
|
||||||
+def getGroupPrintersAccessAllowed(group):
|
|
||||||
+ return ldapPrinters().getGroupPrintersAccessAllowed(group)
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+
|
|
||||||
+def getUsersAccessAllowedForPrinter(printer):
|
|
||||||
+ return ldapPrinters().getUsersAccessAllowedForPrinter(printer)
|
|
||||||
+
|
|
||||||
+def getGroupsAccessAllowedForPrinter(printer):
|
|
||||||
+ return ldapPrinters().getGroupsAccessAllowedForPrinter(printer)
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+
|
|
||||||
+def getUsersPrintServiceGPO(gpo):
|
|
||||||
+ return ldapPrinters().getUsersPrintServiceGPO(gpo)
|
|
||||||
+
|
|
||||||
+def getGroupsPrintServiceGPO(gpo):
|
|
||||||
+ return ldapPrinters().getGroupsPrintServiceGPO(gpo)
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+class ldapPrinters(ldapUserGroupControl):
|
|
||||||
+
|
|
||||||
+ # Printers management methods
|
|
||||||
+ def __init__(self, conffile = None, conffilebase = None, gpoCreate = True):
|
|
||||||
+ """
|
|
||||||
+ @param gpoCreate: If True, base GPO for printer rights management will be created.
|
|
||||||
+ @type gpoCreate: bool
|
|
||||||
+ """
|
|
||||||
+ ldapUserGroupControl.__init__(self, conffilebase)
|
|
||||||
+ cp = ConfigParser.ConfigParser()
|
|
||||||
+ if not conffile:
|
|
||||||
+ cp = mmctools.getConfigParser("printing")
|
|
||||||
+ else:
|
|
||||||
+ cp = ConfigParser.ConfigParser()
|
|
||||||
+ cp.read(conffile)
|
|
||||||
+ self.basePrintersDN = cp.get("main", "basePrintersDN").replace(" ", "")
|
|
||||||
+ self.gpomanager = GpoManager("Printers", conffilebase, gpoCreate)
|
|
||||||
+
|
|
||||||
+ def get(self, pattern="*"):
|
|
||||||
+ """
|
|
||||||
+ Return the printers list found in the LDAP.
|
|
||||||
+ """
|
|
||||||
+ entries = self.search("printer-name="+pattern, self.basePrintersDN)
|
|
||||||
+ result = []
|
|
||||||
+ for entry in entries:
|
|
||||||
+ dn, attrs = entry[0]
|
|
||||||
+ result.append(attrs["printer-name"][0])
|
|
||||||
+ result.sort()
|
|
||||||
+ return result
|
|
||||||
+
|
|
||||||
+ def add(self, printerDesc):
|
|
||||||
+ """
|
|
||||||
+ Add a printer into the LDAP.
|
|
||||||
+
|
|
||||||
+ The GPOs corresponding to the printer are created too.
|
|
||||||
+ """
|
|
||||||
+ printerDesc["objectClass"] = ("printerService")
|
|
||||||
+ modlist = addModlist(printerDesc)
|
|
||||||
+ entry = "printer-name=" + printerDesc["printer-name"] + "," + self.basePrintersDN
|
|
||||||
+ self.l.add_s(entry, modlist)
|
|
||||||
+ self.gpomanager.add("GPOPrinterAccessAllowed_" + printerDesc["printer-name"], { "PrinterServiceAccess" : "True" })
|
|
||||||
+
|
|
||||||
+ def delete(self, name):
|
|
||||||
+ """
|
|
||||||
+ Delete a printer from the LDAP.
|
|
||||||
+
|
|
||||||
+ The GPOs corresponding to the printer are deleted too.
|
|
||||||
+ """
|
|
||||||
+ entry = "printer-name=" + name + ", " + self.basePrintersDN
|
|
||||||
+ self.delRecursiveEntry(entry)
|
|
||||||
+ self.gpomanager.delete("GPOPrinterAccessAllowed_" + name)
|
|
||||||
+
|
|
||||||
+ def exists(self, printer):
|
|
||||||
+ """
|
|
||||||
+ Return True if a printer with this name exists.
|
|
||||||
+ """
|
|
||||||
+ entry = self.search("printer-name=" + printer, self.basePrintersDN)
|
|
||||||
+ return (len(entry) == 1)
|
|
||||||
+
|
|
||||||
+ # Users rights management
|
|
||||||
+
|
|
||||||
+ def addUserServiceAccessAllowed(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Give an user the right to access the print service
|
|
||||||
+
|
|
||||||
+ @param uid: user to give access
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.addUserToGPO(uid, "GPOPrintServiceAccessAllowed")
|
|
||||||
+
|
|
||||||
+ def delUserServiceAccessAllowed(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Remove an user the right to access the print service
|
|
||||||
+
|
|
||||||
+ @param uid: user to give access
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.delUserFromGPO(uid, "GPOPrintServiceAccessAllowed")
|
|
||||||
+
|
|
||||||
+ def isUserServiceAccessAllowed(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Return true if the user has print service access
|
|
||||||
+
|
|
||||||
+ @param uid: user to get access
|
|
||||||
+ @rtype: Boolean
|
|
||||||
+ """
|
|
||||||
+ dn = "uid=" + uid + "," + self.baseUsersDN
|
|
||||||
+ members = self.gpomanager.getUsersFromGPO("GPOPrintServiceAccessAllowed")
|
|
||||||
+ return dn in members
|
|
||||||
+
|
|
||||||
+ def addUserServiceAllRights(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Give an user the right to access the print service without restriction
|
|
||||||
+
|
|
||||||
+ @param uid: user to give access
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.addUserToGPO(uid, "GPOPrintServiceAllRights")
|
|
||||||
+
|
|
||||||
+ def delUserServiceAllRights(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Remove an user the right to access the print service without restriction
|
|
||||||
+
|
|
||||||
+ @param uid: user to give access
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.delUserFromGPO(uid, "GPOPrintServiceAllRights")
|
|
||||||
+
|
|
||||||
+ def isUserServiceAllRights(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Return true if the user has print service access without restriction
|
|
||||||
+
|
|
||||||
+ @param uid: user to get access
|
|
||||||
+ @rtype: Boolean
|
|
||||||
+ """
|
|
||||||
+ dn = "uid=" + uid + "," + self.baseUsersDN
|
|
||||||
+ members = self.gpomanager.getUsersFromGPO("GPOPrintServiceAllRights")
|
|
||||||
+ return dn in members
|
|
||||||
+
|
|
||||||
+ def addUserPrinterAccessAllowed(self, uid, printer):
|
|
||||||
+ """
|
|
||||||
+ Give an user the right to use a printer
|
|
||||||
+
|
|
||||||
+ @param uid: user to give access
|
|
||||||
+ @param printer: printer name
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.addUserToGPO(uid, "GPOPrinterAccessAllowed_" + printer)
|
|
||||||
+
|
|
||||||
+ def delUserPrinterAccessAllowed(self, uid, printer):
|
|
||||||
+ """
|
|
||||||
+ Remove an user the right to access the print service
|
|
||||||
+
|
|
||||||
+ @param uid: user to give access
|
|
||||||
+ @param printer: printer name
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.delUserFromGPO(uid, "GPOPrinterAccessAllowed_" + printer)
|
|
||||||
+
|
|
||||||
+ def getUserPrintersAccessAllowed(self, uid):
|
|
||||||
+ """
|
|
||||||
+ Return the list of printers the user has right access
|
|
||||||
+
|
|
||||||
+ @param uid: user name
|
|
||||||
+ """
|
|
||||||
+ dn = "uid=" + uid + "," + self.baseUsersDN
|
|
||||||
+ return self.gpomanager.getResourceGpo(dn, "GPOPrinterAccessAllowed")
|
|
||||||
+
|
|
||||||
+ # Groups rights management
|
|
||||||
+
|
|
||||||
+ def addGroupServiceAccessAllowed(self, group):
|
|
||||||
+ """
|
|
||||||
+ Give a group the right to access the print service
|
|
||||||
+
|
|
||||||
+ @param group: group to give access to
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.addGroupToGPO(group, "GPOPrintServiceAccessAllowed")
|
|
||||||
+
|
|
||||||
+ def delGroupServiceAccessAllowed(self, group):
|
|
||||||
+ """
|
|
||||||
+ Remove a group the right to access the print service
|
|
||||||
+
|
|
||||||
+ @param group: group to give access to
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.delGroupFromGPO(group, "GPOPrintServiceAccessAllowed")
|
|
||||||
+
|
|
||||||
+ def isGroupServiceAccessAllowed(self, group):
|
|
||||||
+ """
|
|
||||||
+ Return true if the group has print service access
|
|
||||||
+
|
|
||||||
+ @param group: group to get access
|
|
||||||
+ @rtype: Boolean
|
|
||||||
+ """
|
|
||||||
+ dn = "cn=" + group + "," + self.baseGroupsDN
|
|
||||||
+ members = self.gpomanager.getGroupsFromGPO("GPOPrintServiceAccessAllowed")
|
|
||||||
+ return dn in members
|
|
||||||
+
|
|
||||||
+ def addGroupServiceAllRights(self, group):
|
|
||||||
+ """
|
|
||||||
+ Give a group the right to access to the print service without restriction
|
|
||||||
+
|
|
||||||
+ @param group: group to give access to
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.addGroupToGPO(group, "GPOPrintServiceAllRights")
|
|
||||||
+
|
|
||||||
+ def delGroupServiceAllRights(self, group):
|
|
||||||
+ """
|
|
||||||
+ Remove a group the right to access to the print service without restriction
|
|
||||||
+
|
|
||||||
+ @param group: group to give access to
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.delGroupFromGPO(group, "GPOPrintServiceAllRights")
|
|
||||||
+
|
|
||||||
+ def isGroupServiceAllRights(self, group):
|
|
||||||
+ """
|
|
||||||
+ Return true if the group has print service access without restriction
|
|
||||||
+
|
|
||||||
+ @param group: group to get access
|
|
||||||
+ @rtype: Boolean
|
|
||||||
+ """
|
|
||||||
+ dn = "cn=" + group + "," + self.baseGroupsDN
|
|
||||||
+ members = self.gpomanager.getGroupsFromGPO("GPOPrintServiceAllRights")
|
|
||||||
+ return dn in members
|
|
||||||
+
|
|
||||||
+ def addGroupPrinterAccessAllowed(self, group, printer):
|
|
||||||
+ """
|
|
||||||
+ Give a group the right to use a printer
|
|
||||||
+
|
|
||||||
+ @param group: group to give access
|
|
||||||
+ @param printer: printer name
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.addGroupToGPO(group, "GPOPrinterAccessAllowed_" + printer)
|
|
||||||
+
|
|
||||||
+ def delGroupPrinterAccessAllowed(self, group, printer):
|
|
||||||
+ """
|
|
||||||
+ Remove a group the right to access the print service
|
|
||||||
+
|
|
||||||
+ @param group: group to give access
|
|
||||||
+ @param printer: printer name
|
|
||||||
+ """
|
|
||||||
+ self.gpomanager.delGroupFromGPO(group, "GPOPrinterAccessAllowed_" + printer)
|
|
||||||
+
|
|
||||||
+ def getGroupPrintersAccessAllowed(self, group):
|
|
||||||
+ """
|
|
||||||
+ Return the list of printers the group has right access
|
|
||||||
+
|
|
||||||
+ @param group: group name
|
|
||||||
+ """
|
|
||||||
+ dn = "cn=" + group + "," + self.baseGroupsDN
|
|
||||||
+ return self.gpomanager.getResourceGpo(dn, "GPOPrinterAccessAllowed")
|
|
||||||
+
|
|
||||||
+ # Methods to know who can print on a specific printer
|
|
||||||
+
|
|
||||||
+ def getUsersAccessAllowedForPrinter(self, printer):
|
|
||||||
+ """
|
|
||||||
+ Return the list of users who can use this printer
|
|
||||||
+
|
|
||||||
+ @param printer: the printer name
|
|
||||||
+ """
|
|
||||||
+ ret = []
|
|
||||||
+ for dn in self.gpomanager.getUsersFromGPO("GPOPrinterAccessAllowed_" + printer):
|
|
||||||
+ # Process dn to only return the uid value
|
|
||||||
+ ret.append(dn.split(",")[0].split("=")[1])
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def getGroupsAccessAllowedForPrinter(self, printer):
|
|
||||||
+ """
|
|
||||||
+ Return the list of groups who can use this printer
|
|
||||||
+
|
|
||||||
+ @param printer: the printer name
|
|
||||||
+ """
|
|
||||||
+ ret = []
|
|
||||||
+ for dn in self.gpomanager.getGroupsFromGPO("GPOPrinterAccessAllowed_" + printer):
|
|
||||||
+ # Process dn to only return the cn value
|
|
||||||
+ ret.append(dn.split(",")[0].split("=")[1])
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ # To get print service GPO members
|
|
||||||
+
|
|
||||||
+ def getUsersPrintServiceGPO(self, gpo):
|
|
||||||
+ """
|
|
||||||
+ Return the list of users member of the GPO.
|
|
||||||
+
|
|
||||||
+ @param gpo: Name of the GPO
|
|
||||||
+ """
|
|
||||||
+ ret = []
|
|
||||||
+ for dn in self.gpomanager.getUsersFromGPO(gpo):
|
|
||||||
+ # Process dn to only return the uid value
|
|
||||||
+ ret.append(dn.split(",")[0].split("=")[1])
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def getGroupsPrintServiceGPO(self, gpo):
|
|
||||||
+ """
|
|
||||||
+ Return the list of groups member of this GPO
|
|
||||||
+
|
|
||||||
+ @param gpo: Name of the GPO
|
|
||||||
+ """
|
|
||||||
+ ret = []
|
|
||||||
+ for dn in self.gpomanager.getGroupsFromGPO(gpo):
|
|
||||||
+ # Process dn to only return the cn value
|
|
||||||
+ ret.append(dn.split(",")[0].split("=")[1])
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def userCanPrintOn(self, uid, printer):
|
|
||||||
+ """
|
|
||||||
+ This method is used by the MMC CUPS backend to check if an user can print on a printer.
|
|
||||||
+ For the moment, only access right is checked according to group membership.
|
|
||||||
+
|
|
||||||
+ @return: True if the user uid can print on the printer
|
|
||||||
+ @rtype: boolean
|
|
||||||
+ """
|
|
||||||
+ result = False
|
|
||||||
+
|
|
||||||
+ groups = self.getUserGroups(uid)
|
|
||||||
+ # Get groups which has print service access
|
|
||||||
+ groupAccess = []
|
|
||||||
+ for group in groups:
|
|
||||||
+ if self.isGroupServiceAccessAllowed(group):
|
|
||||||
+ groupAccess.append(group)
|
|
||||||
+
|
|
||||||
+ # Get remaining group which has all rights on print service
|
|
||||||
+ groupAllrights = []
|
|
||||||
+ for group in groupAccess:
|
|
||||||
+ if self.isGroupServiceAllRights(group):
|
|
||||||
+ groupAllrights.append(group)
|
|
||||||
+
|
|
||||||
+ if len(groupAllrights):
|
|
||||||
+ # User is in a group which has all rights on print service.
|
|
||||||
+ # So this user can print
|
|
||||||
+ result = True
|
|
||||||
+ else:
|
|
||||||
+ # Does one of these groups has the right to use this printer ?
|
|
||||||
+ for group in groupAccess:
|
|
||||||
+ printers = self.getGroupPrintersAccessAllowed(group)
|
|
||||||
+ if printer in printers:
|
|
||||||
+ # We have a winner
|
|
||||||
+ result = True
|
|
||||||
+ break
|
|
||||||
+
|
|
||||||
+ return result
|
|
||||||
diff -Naur mds-2.4.0.orig/agent/mmc/plugins/printstats/__init__.py mds-2.4.0/agent/mmc/plugins/printstats/__init__.py
|
|
||||||
--- mds-2.4.0.orig/agent/mmc/plugins/printstats/__init__.py 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mds-2.4.0/agent/mmc/plugins/printstats/__init__.py 2010-05-01 11:57:29.707870252 +0000
|
|
||||||
@@ -0,0 +1,219 @@
|
|
||||||
+# -*- coding: utf-8; -*-
|
|
||||||
+#
|
|
||||||
+# (c) 2004-2007 Linbox / Free&ALter Soft, http://linbox.com
|
|
||||||
+# (c) 2007 Mandriva, http://www.mandriva.com/
|
|
||||||
+#
|
|
||||||
+# $Id: __init__.py 454 2008-01-18 14:09:42Z cedric $
|
|
||||||
+#
|
|
||||||
+# This file is part of Mandriva Management Console (MMC).
|
|
||||||
+#
|
|
||||||
+# MMC is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+#
|
|
||||||
+# MMC is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with MMC; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
+
|
|
||||||
+import psycopg
|
|
||||||
+import ConfigParser
|
|
||||||
+import logging
|
|
||||||
+from mmc.support import mmctools
|
|
||||||
+
|
|
||||||
+VERSION = "2.3.1"
|
|
||||||
+APIVERSION = "1:0:0"
|
|
||||||
+REVISION = int("$Rev: 557 $".split(':')[1].strip(' $'))
|
|
||||||
+
|
|
||||||
+def getVersion(): return VERSION
|
|
||||||
+def getApiVersion(): return APIVERSION
|
|
||||||
+def getRevision(): return REVISION
|
|
||||||
+
|
|
||||||
+def activate():
|
|
||||||
+ """
|
|
||||||
+ This function defines if this module can be activated
|
|
||||||
+ @return: return True if this module can be activated
|
|
||||||
+ @rtype: boolean
|
|
||||||
+ """
|
|
||||||
+ configParser = mmctools.getConfigParser("printstats")
|
|
||||||
+ logger = logging.getLogger()
|
|
||||||
+ ret = False
|
|
||||||
+ if configParser.get("main", "disable") == "1":
|
|
||||||
+ logger.info("printstats plugin disabled by configuration.")
|
|
||||||
+ else: ret = True
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+def getHistory(printserver, days):
|
|
||||||
+ return Printstats().getHistory(printserver, days)
|
|
||||||
+
|
|
||||||
+def getHistoryByMonths(printserver, days):
|
|
||||||
+ return Printstats().getHistoryByMonths(printserver, days)
|
|
||||||
+
|
|
||||||
+def getPrintersStats(printserver, begin, end, orderby, sort, limit):
|
|
||||||
+ return Printstats().getPrintersStats(printserver, begin, end, orderby, sort, limit)
|
|
||||||
+
|
|
||||||
+def getPrinterStats(printserver, printer, begin, end, lim1, lim2, lim3, lim4, lim5):
|
|
||||||
+ return Printstats().getPrinterStats(printserver, printer, begin, end, lim1, lim2, lim3, lim4, lim5)
|
|
||||||
+
|
|
||||||
+def getUsersStatsForPrinter(printserver, printer, begin, end, orderby, sort, limit):
|
|
||||||
+ return Printstats().getUsersStatsForPrinter(printserver, printer, begin, end, orderby, sort, limit)
|
|
||||||
+
|
|
||||||
+def getUsersStats(printserver, begin, end, orderby, sort, limit):
|
|
||||||
+ return Printstats().getUsersStats(printserver, begin, end, orderby, sort, limit)
|
|
||||||
+
|
|
||||||
+def getPrintServers():
|
|
||||||
+ return Printstats().getPrintServers()
|
|
||||||
+
|
|
||||||
+def getPrinterList():
|
|
||||||
+ return Printstats().getPrinterList()
|
|
||||||
+
|
|
||||||
+def getColors(printserver, begin, end):
|
|
||||||
+ return Printstats().getColors(printserver, begin, end)
|
|
||||||
+
|
|
||||||
+class Printstats:
|
|
||||||
+
|
|
||||||
+ def __init__(self, conffile = "/etc/mmc/plugins/printstats.ini"):
|
|
||||||
+ cp = ConfigParser.RawConfigParser()
|
|
||||||
+ cp.read(conffile)
|
|
||||||
+ self.dbhost = cp.get("main", "dbhost")
|
|
||||||
+ self.dbport = cp.get("main", "dbport")
|
|
||||||
+ self.dbname = cp.get("main", "dbname")
|
|
||||||
+ self.dbuser = cp.get("main", "dbuser")
|
|
||||||
+ self.dbpasswd = cp.get("main", "dbpasswd")
|
|
||||||
+ self.sql = {}
|
|
||||||
+ for option in cp.options("sql"):
|
|
||||||
+ self.sql[option] = cp.get("sql", option)
|
|
||||||
+
|
|
||||||
+ def _getCursor(self):
|
|
||||||
+ l = logging.getLogger()
|
|
||||||
+ l.debug("Connecting to dbname=%s user=%s password=%s host=%s port=%s" % (self.dbname, self.dbuser, self.dbpasswd, self.dbhost, self.dbport))
|
|
||||||
+ self.db = psycopg.connect("dbname=%s user=%s password=%s host=%s port=%s" % (self.dbname, self.dbuser, self.dbpasswd, self.dbhost, self.dbport))
|
|
||||||
+ return self.db.cursor()
|
|
||||||
+
|
|
||||||
+ def _prepareData(self, data):
|
|
||||||
+ ret = []
|
|
||||||
+ for item in data:
|
|
||||||
+ if not None in item: ret.append(item)
|
|
||||||
+ else:
|
|
||||||
+ new = ()
|
|
||||||
+ for i in item:
|
|
||||||
+ if i == None: new = new + (0,)
|
|
||||||
+ else: new = new + (i,)
|
|
||||||
+ ret.append(new)
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def _printServerQuery(self, printserver, where = False):
|
|
||||||
+ if printserver == "ALL": ret = "%"
|
|
||||||
+ else: ret = printserver
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def getHistory(self, printserver, days):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ d = {}
|
|
||||||
+ d["days"] = days
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver)
|
|
||||||
+ c.execute(self.sql["history"] % d)
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def getHistoryByMonths(self, printserver, days):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ d = {}
|
|
||||||
+ d["days"] = days
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver)
|
|
||||||
+ c.execute(self.sql["historybymonth"] % d)
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def getPrintersStats(self, printserver, begin, end, orderby, sort, limit):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ d = {}
|
|
||||||
+ d["begin"] = begin
|
|
||||||
+ d["end"] = end
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver)
|
|
||||||
+ d["orderby"] = orderby
|
|
||||||
+ d["sort"] = sort
|
|
||||||
+ d["limit"] = limit
|
|
||||||
+ c.execute(self.sql["printers"] % d)
|
|
||||||
+ result = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(result)
|
|
||||||
+
|
|
||||||
+ def getUsersStats(self, printserver, begin, end, orderby, sort, limit):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ d = {}
|
|
||||||
+ d["begin"] = begin
|
|
||||||
+ d["end"] = end
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver)
|
|
||||||
+ d["orderby"] = orderby
|
|
||||||
+ d["sort"] = sort
|
|
||||||
+ d["limit"] = limit
|
|
||||||
+ c.execute(self.sql["users"] % d)
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(ret)
|
|
||||||
+
|
|
||||||
+ def getPrinterStats(self, printserver, printer, begin, end, lim1, lim2, lim3, lim4, lim5):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ d = {}
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver, True)
|
|
||||||
+ d["printer"] = printer
|
|
||||||
+ d["begin"] = begin
|
|
||||||
+ d["end"] = end
|
|
||||||
+ d["lim1"] = lim1
|
|
||||||
+ d["lim2"] = lim2
|
|
||||||
+ d["lim3"] = lim3
|
|
||||||
+ d["lim4"] = lim4
|
|
||||||
+ d["lim5"] = lim5
|
|
||||||
+ c.execute(self.sql["printer"] % d)
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(ret)
|
|
||||||
+
|
|
||||||
+ def getUsersStatsForPrinter(self, printserver, printer, begin, end, orderby, sort, limit):
|
|
||||||
+ d = {}
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver)
|
|
||||||
+ d["printer"] = printer
|
|
||||||
+ d["begin"] = begin
|
|
||||||
+ d["end"] = end
|
|
||||||
+ d["orderby"] = orderby
|
|
||||||
+ d["sort"] = sort
|
|
||||||
+ d["limit"] = limit
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ c.execute(self.sql["user4printer"] % d)
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(ret)
|
|
||||||
+
|
|
||||||
+ def getPrintServers(self):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ c.execute(self.sql["printservers"])
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(ret)
|
|
||||||
+
|
|
||||||
+ def getPrinterList(self):
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ c.execute(self.sql["printerlist"])
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(ret)
|
|
||||||
+
|
|
||||||
+ def getColors(self, printserver, begin, end):
|
|
||||||
+ d = {}
|
|
||||||
+ d["printserver"] = self._printServerQuery(printserver)
|
|
||||||
+ d["begin"] = begin
|
|
||||||
+ d["end"] = end
|
|
||||||
+ c = self._getCursor()
|
|
||||||
+ c.execute(self.sql["colors"] % d)
|
|
||||||
+ ret = c.fetchall()
|
|
||||||
+ self.db.close()
|
|
||||||
+ return self._prepareData(ret)
|
|
||||||
+
|
|
||||||
diff -Naur mds-2.4.0.orig/agent/setup.py mds-2.4.0/agent/setup.py
|
|
||||||
--- mds-2.4.0.orig/agent/setup.py 2010-05-01 11:54:47.347622644 +0000
|
|
||||||
+++ mds-2.4.0/agent/setup.py 2010-05-01 11:58:36.108623972 +0000
|
|
||||||
@@ -39,5 +39,6 @@
|
|
||||||
packages = ["mmc.plugins.samba", "mmc.plugins.mail",
|
|
||||||
"mmc.plugins.network", "mmc.plugins.proxy",
|
|
||||||
"mmc.plugins.sshlpk", "mmc.plugins.bulkimport",
|
|
||||||
- "mmc.plugins.userquota"],
|
|
||||||
+ "mmc.plugins.userquota", "mmc.plugins.printstats",
|
|
||||||
+ "mmc.plugins.printing"],
|
|
||||||
)
|
|
@ -1,46 +0,0 @@
|
|||||||
# Copyright 1999-2010 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="2"
|
|
||||||
SUPPORT_PYTHON_ABIS="1"
|
|
||||||
|
|
||||||
inherit eutils distutils
|
|
||||||
|
|
||||||
MY_P="${P/_p/-}"
|
|
||||||
MY_PV="${PV/_p*/}"
|
|
||||||
|
|
||||||
DESCRIPTION="The MMC Agent and its Core Python plugins."
|
|
||||||
HOMEPAGE="http://mds.mandriva.org/"
|
|
||||||
SRC_URI="http://mds.mandriva.org/pub/mds/sources/${PV}/mds-${PV}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
RDEPEND=">=app-admin/mmc-core-${PV}"
|
|
||||||
|
|
||||||
DEPEND="sys-apps/lsb-release"
|
|
||||||
|
|
||||||
S="${WORKDIR}/mds-${MY_PV}/agent"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
epatch "${FILESDIR}"/mds-2.4.0-install-target-1.patch
|
|
||||||
epatch "${FILESDIR}"/mds-2.4.0-printing-1.patch
|
|
||||||
distutils_src_prepare
|
|
||||||
}
|
|
||||||
|
|
||||||
# from marienz's setuptools.eclass:
|
|
||||||
src_install() {
|
|
||||||
emake install_nopy PREFIX=/usr DESTDIR=${D}
|
|
||||||
distutils_src_install
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "To disable some plugin in your mmc environments, you have to set"
|
|
||||||
elog "disable to 1 in /etc/mmc/plugins/*.ini"
|
|
||||||
elog "(one config file per service)"
|
|
||||||
elog "You can't disable the base plugin."
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
# ChangeLog for app-admin/mmc-web-base
|
|
||||||
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
01 May 2010; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mds-web-core-2.4.0.ebuild:
|
|
||||||
add block on old packages
|
|
||||||
|
|
||||||
01 May 2010; Mario Fetka <mario.fetka@gmail.com> +metadata.xml:
|
|
||||||
move mmc-base to mds-web-core
|
|
||||||
|
|
||||||
18 Feb 2010; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild, mmc-web-base-2.3.2-r1.ebuild,
|
|
||||||
mmc-web-base-2.3.2-r2.ebuild, mmc-web-base-2.3.2_p642.ebuild:
|
|
||||||
add arm keyword
|
|
||||||
|
|
||||||
29 Jan 2010; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2_p642.ebuild,
|
|
||||||
+files/mmc-web-base-2.3.2-bulkimport-1.patch:
|
|
||||||
add bulkimport
|
|
||||||
|
|
||||||
05 Dec 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+mmc-web-base-2.3.2_p642.ebuild, +files/mmc-web-base-2.3.2-gentoo-3.patch:
|
|
||||||
use special pulse2 version
|
|
||||||
|
|
||||||
*mmc-web-base-2.3.2-r2 (03 Sep 2009)
|
|
||||||
|
|
||||||
03 Sep 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+mmc-web-base-2.3.2-r2.ebuild:
|
|
||||||
add missing dependencies
|
|
||||||
|
|
||||||
* mmc-web-base-2.3.2-r1 (17 Apr 2009)
|
|
||||||
|
|
||||||
17 Apr 2009; Mario Fetka <mario.fetka@gmail.com> mmc-web-base-2.3.2-r1:
|
|
||||||
EAPI2 and test cleanup
|
|
||||||
|
|
||||||
16 Apr 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild:
|
|
||||||
add die to do*
|
|
||||||
|
|
||||||
08 Apr 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
-mmc-web-base-2.3.1.ebuild, mmc-web-base-2.3.2.ebuild:
|
|
||||||
correct KEYWORDS
|
|
||||||
|
|
||||||
07 Apr 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
-files/postinstall-en-2.3.txt:
|
|
||||||
delete not reqired files
|
|
||||||
|
|
||||||
13 Mar 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild:
|
|
||||||
new dependencies on gettext
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+files/mmc-web-base-2.3.2-gentoo-2.patch, mmc-web-base-2.3.2.ebuild:
|
|
||||||
disbale php_flag
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild:
|
|
||||||
move apache mmc.conf after php.conf
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com> ChangeLog:
|
|
||||||
update to new system
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+files/mmc-web-base-2.3.2-gentoo-1.patch, +metadata.xml,
|
|
||||||
+mmc-web-base-2.3.2.ebuild:
|
|
||||||
New design for mmc web packages
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
DIST mds-2.4.0.tar.gz 987981 RMD160 31775873932c2f988699c85b9b0ef46caab2da5c SHA1 cb57e3519c0672580b120a8bacae86c3e44b9dbc SHA256 c2c61f39626517feeeec74792b73fd5661b7f241a4aa73b5fe057d1e599dfbc0
|
|
||||||
EBUILD mds-web-core-2.4.0.ebuild 875 RMD160 f01f48a5a0414c2b67a8885d56ddbdc8140f2d56 SHA1 b1fd4804c75764e4941888a0cac917eaddacf961 SHA256 ad88d46b063d560694244bb09dc40a51823338523c8ba63651b8d2fcb2aac8fd
|
|
||||||
MISC ChangeLog 2093 RMD160 62536cbe1c42091aed4a7ed07b22c1de8642f12f SHA1 98b18580f904296cf3b26844b4f930e43e2af9be SHA256 f870428271578828518bc3333413043c5720aa20ed2caf1f533b3fc4b0308b0b
|
|
||||||
MISC metadata.xml 226 RMD160 bebcbe7a5e3d2be83c25e006192f71ebf45abb14 SHA1 ec2b713fc2363b8c51e9c164d0802eeb59d9d296 SHA256 a9d3f7df2362a9a7ddcbe05c5d97d726eeb4bab135b21643508149a08bf6a2b2
|
|
@ -1,36 +0,0 @@
|
|||||||
# Copyright 1999-2010 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="2"
|
|
||||||
|
|
||||||
inherit eutils depend.apache depend.php
|
|
||||||
|
|
||||||
MY_P="${P/_p/-}"
|
|
||||||
MY_PV="${PV/_p*/}"
|
|
||||||
|
|
||||||
DESCRIPTION="Mandriva Directory Server - Identity and network services management made easy !"
|
|
||||||
HOMEPAGE="http://mds.mandriva.org/"
|
|
||||||
SRC_URI="http://mds.mandriva.org/pub/mds/sources/${PV}/mds-${PV}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
KEYWORDS="~amd64 ~arm ~x86 ~x86-fbsd"
|
|
||||||
IUSE=""
|
|
||||||
DEPEND="sys-apps/lsb-release
|
|
||||||
sys-devel/gettext"
|
|
||||||
RDEPEND=">=app-admin/mmc-web-core-${PV}
|
|
||||||
!app-admin/mmc-web-bulkimport
|
|
||||||
!app-admin/mmc-web-mail
|
|
||||||
!app-admin/mmc-web-network
|
|
||||||
!app-admin/mmc-web-proxy
|
|
||||||
!app-admin/mmc-web-samba
|
|
||||||
!app-admin/mmc-web-userquota"
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
need_php_httpd
|
|
||||||
|
|
||||||
S="${WORKDIR}/mds-${MY_PV}/web"
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake DESTDIR="${D}" PREFIX=/usr install || die "install failed"
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<herd>no-herd</herd>
|
|
||||||
<maintainer>
|
|
||||||
<email>mario.fetka@gmail.com</email>
|
|
||||||
</maintainer>
|
|
||||||
</pkgmetadata>
|
|
@ -1,84 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (geos_one) (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2010-05-01
|
|
||||||
Initial Package Version: 3.0.0
|
|
||||||
Origin: me
|
|
||||||
Upstream Status: unknown
|
|
||||||
Description: split install target
|
|
||||||
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/agent/Makefile mmc-core-3.0.0/agent/Makefile
|
|
||||||
--- mmc-core-3.0.0.orig/agent/Makefile 2010-04-29 12:01:45.000000000 +0000
|
|
||||||
+++ mmc-core-3.0.0/agent/Makefile 2010-05-01 10:04:57.802871100 +0000
|
|
||||||
@@ -52,37 +52,56 @@
|
|
||||||
@echo "Nothing to do"
|
|
||||||
|
|
||||||
# Install everything
|
|
||||||
-install:
|
|
||||||
+install: install_py install_lib_backup install_sbin install_bin install_cfg
|
|
||||||
@# Install directories
|
|
||||||
@echo ""
|
|
||||||
@echo "Move old configuration files to $(DESTDIR)$(ETCDIR)$(BACKUP)"
|
|
||||||
-[ -d $(DESTDIR)$(ETCDIR) ] && mv -f $(DESTDIR)$(ETCDIR) $(DESTDIR)$(ETCDIR)$(BACKUP)
|
|
||||||
+
|
|
||||||
+install_nopy: install_lib_backup install_sbin install_bin install_cfg
|
|
||||||
+ @# Install directories
|
|
||||||
@echo ""
|
|
||||||
- @echo "Creating directories..."
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(SBINDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(BINDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(LIBDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(LIBDIRBACKUP)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(ETCDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
+ # @echo "Move old configuration files to $(DESTDIR)$(ETCDIR)$(BACKUP)"
|
|
||||||
+ # -[ -d $(DESTDIR)$(ETCDIR) ] && mv -f $(DESTDIR)$(ETCDIR) $(DESTDIR)$(ETCDIR)$(BACKUP)
|
|
||||||
+
|
|
||||||
|
|
||||||
+install_py:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating python directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install python code in $(DESTDIR)$(PYTHON_PREFIX)"
|
|
||||||
$(PYTHON) setup.py install --no-compile --prefix $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
|
|
||||||
+install_lib_backup:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating lib backup directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(LIBDIRBACKUP)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install LIBDIRBACKUP in $(DESTDIR)$(LIBDIRBACKUP)"
|
|
||||||
|
|
||||||
$(INSTALL) $(LIBFILESBACKUP) -m 755 -o root -g root $(DESTDIR)$(LIBDIRBACKUP)
|
|
||||||
|
|
||||||
+install_sbin:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating sbin directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(SBINDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install SBINFILES in $(DESTDIR)$(SBINDIR)"
|
|
||||||
$(INSTALL) $(SBINFILES) -m 755 -o root -g root $(DESTDIR)$(SBINDIR)
|
|
||||||
|
|
||||||
+install_bin:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating bin directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(BINDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install BINFILES in $(DESTDIR)$(BINDIR)"
|
|
||||||
$(INSTALL) $(BINFILES) -m 755 -o root -g root $(DESTDIR)$(BINDIR)
|
|
||||||
|
|
||||||
+install_cfg:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating config directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(ETCDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install CONFILES in $(DESTDIR)$(ETCDIR)"
|
|
||||||
$(INSTALL) -d -m 755 -o root -g root $(DESTDIR)$(ETCDIR)/agent
|
|
||||||
@@ -97,7 +116,7 @@
|
|
||||||
$(SED) -i 's!##SBINDIR##!$(SBINDIR)!' $(DESTDIR)$(INITDIR)/mmc-agent
|
|
||||||
|
|
||||||
ifndef NOCHECKPASSWORD
|
|
||||||
- $(MAKE) -C openldap-check-password install CC=$(CC) INSTALL=$(INSTALL)
|
|
||||||
+ $(MAKE) -C openldap-check-password install CC=$(CC) INSTALL=$(INSTALL) DESTDIR=$(DESTDIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
include common.mk
|
|
@ -1,401 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (geos_one) (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2010-05-01
|
|
||||||
Initial Package Version: 2.3.1
|
|
||||||
Origin: http://mds.mandriva.org/ticket/144
|
|
||||||
Upstream Status: unknown
|
|
||||||
Description: add support for kerberos attributes
|
|
||||||
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/agent/conf/plugins/kerberos.ini mmc-core-3.0.0/agent/conf/plugins/kerberos.ini
|
|
||||||
--- mmc-core-3.0.0.orig/agent/conf/plugins/kerberos.ini 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mmc-core-3.0.0/agent/conf/plugins/kerberos.ini 2010-05-01 12:06:44.124872375 +0000
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+[main]
|
|
||||||
+disable = 0
|
|
||||||
+
|
|
||||||
+[kerberos]
|
|
||||||
+realm = EXAMPLE.COM
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/agent/contrib/ldap/krb5-kdc.schema mmc-core-3.0.0/agent/contrib/ldap/krb5-kdc.schema
|
|
||||||
--- mmc-core-3.0.0.orig/agent/contrib/ldap/krb5-kdc.schema 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mmc-core-3.0.0/agent/contrib/ldap/krb5-kdc.schema 2010-05-01 12:06:44.135874159 +0000
|
|
||||||
@@ -0,0 +1,136 @@
|
|
||||||
+# $Id: krb5-kdc.schema,v 1.1 2004-03-22 17:25:05 quanah Exp $
|
|
||||||
+# Definitions for a Kerberos V KDC schema
|
|
||||||
+
|
|
||||||
+# OID Base is iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) padl(5322) kdcSchema(10)
|
|
||||||
+#
|
|
||||||
+# Syntaxes are under 1.3.6.1.4.1.5322.10.0
|
|
||||||
+# Attributes types are under 1.3.6.1.4.1.5322.10.1
|
|
||||||
+# Object classes are under 1.3.6.1.4.1.5322.10.2
|
|
||||||
+
|
|
||||||
+# Syntax definitions
|
|
||||||
+
|
|
||||||
+#krb5KDCFlagsSyntax SYNTAX ::= {
|
|
||||||
+# WITH SYNTAX INTEGER
|
|
||||||
+#-- initial(0), -- require as-req
|
|
||||||
+#-- forwardable(1), -- may issue forwardable
|
|
||||||
+#-- proxiable(2), -- may issue proxiable
|
|
||||||
+#-- renewable(3), -- may issue renewable
|
|
||||||
+#-- postdate(4), -- may issue postdatable
|
|
||||||
+#-- server(5), -- may be server
|
|
||||||
+#-- client(6), -- may be client
|
|
||||||
+#-- invalid(7), -- entry is invalid
|
|
||||||
+#-- require-preauth(8), -- must use preauth
|
|
||||||
+#-- change-pw(9), -- change password service
|
|
||||||
+#-- require-hwauth(10), -- must use hwauth
|
|
||||||
+#-- ok-as-delegate(11), -- as in TicketFlags
|
|
||||||
+#-- user-to-user(12), -- may use user-to-user auth
|
|
||||||
+#-- immutable(13) -- may not be deleted
|
|
||||||
+# ID { 1.3.6.1.4.1.5322.10.0.1 }
|
|
||||||
+#}
|
|
||||||
+
|
|
||||||
+#krb5PrincipalNameSyntax SYNTAX ::= {
|
|
||||||
+# WITH SYNTAX OCTET STRING
|
|
||||||
+#-- String representations of distinguished names as per RFC1510
|
|
||||||
+# ID { 1.3.6.1.4.1.5322.10.0.2 }
|
|
||||||
+#}
|
|
||||||
+
|
|
||||||
+# Attribute type definitions
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.1
|
|
||||||
+ NAME 'krb5PrincipalName'
|
|
||||||
+ DESC 'The unparsed Kerberos principal name'
|
|
||||||
+ EQUALITY caseExactIA5Match
|
|
||||||
+ SINGLE-VALUE
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.2
|
|
||||||
+ NAME 'krb5KeyVersionNumber'
|
|
||||||
+ EQUALITY integerMatch
|
|
||||||
+ SINGLE-VALUE
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.3
|
|
||||||
+ NAME 'krb5MaxLife'
|
|
||||||
+ EQUALITY integerMatch
|
|
||||||
+ SINGLE-VALUE
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.4
|
|
||||||
+ NAME 'krb5MaxRenew'
|
|
||||||
+ EQUALITY integerMatch
|
|
||||||
+ SINGLE-VALUE
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.5
|
|
||||||
+ NAME 'krb5KDCFlags'
|
|
||||||
+ EQUALITY integerMatch
|
|
||||||
+ SINGLE-VALUE
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.6
|
|
||||||
+ NAME 'krb5EncryptionType'
|
|
||||||
+ EQUALITY integerMatch
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.7
|
|
||||||
+ NAME 'krb5ValidStart'
|
|
||||||
+ EQUALITY generalizedTimeMatch
|
|
||||||
+ ORDERING generalizedTimeOrderingMatch
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
|
|
||||||
+ SINGLE-VALUE )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.8
|
|
||||||
+ NAME 'krb5ValidEnd'
|
|
||||||
+ EQUALITY generalizedTimeMatch
|
|
||||||
+ ORDERING generalizedTimeOrderingMatch
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
|
|
||||||
+ SINGLE-VALUE )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.9
|
|
||||||
+ NAME 'krb5PasswordEnd'
|
|
||||||
+ EQUALITY generalizedTimeMatch
|
|
||||||
+ ORDERING generalizedTimeOrderingMatch
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
|
|
||||||
+ SINGLE-VALUE )
|
|
||||||
+
|
|
||||||
+# this is temporary; keys will eventually
|
|
||||||
+# be child entries or compound attributes.
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.10
|
|
||||||
+ NAME 'krb5Key'
|
|
||||||
+ DESC 'Encoded ASN1 Key as an octet string'
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.11
|
|
||||||
+ NAME 'krb5PrincipalRealm'
|
|
||||||
+ DESC 'Distinguished name of krb5Realm entry'
|
|
||||||
+ SUP distinguishedName )
|
|
||||||
+
|
|
||||||
+attributetype ( 1.3.6.1.4.1.5322.10.1.12
|
|
||||||
+ NAME 'krb5RealmName'
|
|
||||||
+ EQUALITY octetStringMatch
|
|
||||||
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )
|
|
||||||
+
|
|
||||||
+# Object class definitions
|
|
||||||
+
|
|
||||||
+objectclass ( 1.3.6.1.4.1.5322.10.2.1
|
|
||||||
+ NAME 'krb5Principal'
|
|
||||||
+ SUP top
|
|
||||||
+ AUXILIARY
|
|
||||||
+ MUST ( krb5PrincipalName )
|
|
||||||
+ MAY ( cn $ krb5PrincipalRealm ) )
|
|
||||||
+
|
|
||||||
+objectclass ( 1.3.6.1.4.1.5322.10.2.2
|
|
||||||
+ NAME 'krb5KDCEntry'
|
|
||||||
+ SUP krb5Principal
|
|
||||||
+ AUXILIARY
|
|
||||||
+ MUST ( krb5KeyVersionNumber )
|
|
||||||
+ MAY ( krb5ValidStart $ krb5ValidEnd $ krb5PasswordEnd $
|
|
||||||
+ krb5MaxLife $ krb5MaxRenew $ krb5KDCFlags $
|
|
||||||
+ krb5EncryptionType $ krb5Key ) )
|
|
||||||
+
|
|
||||||
+objectclass ( 1.3.6.1.4.1.5322.10.2.3
|
|
||||||
+ NAME 'krb5Realm'
|
|
||||||
+ SUP top
|
|
||||||
+ AUXILIARY
|
|
||||||
+ MUST ( krb5RealmName ) )
|
|
||||||
+
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/agent/mmc/plugins/base/__init__.py mmc-core-3.0.0/agent/mmc/plugins/base/__init__.py
|
|
||||||
--- mmc-core-3.0.0.orig/agent/mmc/plugins/base/__init__.py 2010-05-01 12:06:18.101620060 +0000
|
|
||||||
+++ mmc-core-3.0.0/agent/mmc/plugins/base/__init__.py 2010-05-01 12:06:44.129620791 +0000
|
|
||||||
@@ -1286,6 +1286,10 @@
|
|
||||||
attrs = []
|
|
||||||
attrib = self.l.search_s(dn, ldap.SCOPE_BASE)
|
|
||||||
c, attrs = attrib[0]
|
|
||||||
+ # kerberos -> remove binary key from attrs
|
|
||||||
+ try: attrs.pop('krb5Key')
|
|
||||||
+ except: pass
|
|
||||||
+ #
|
|
||||||
newattrs = copy.deepcopy(attrs)
|
|
||||||
return newattrs
|
|
||||||
|
|
||||||
@@ -1315,6 +1319,10 @@
|
|
||||||
attrib = self.l.search_s(cn, ldap.SCOPE_BASE, attrlist = myattrlist)
|
|
||||||
|
|
||||||
c,attrs=attrib[0]
|
|
||||||
+ # kerberos -> remove binary key from attrs
|
|
||||||
+ try: attrs.pop('krb5Key')
|
|
||||||
+ except: pass
|
|
||||||
+ #
|
|
||||||
|
|
||||||
newattrs = copy.deepcopy(attrs)
|
|
||||||
|
|
||||||
@@ -1479,8 +1487,13 @@
|
|
||||||
@rtype: list
|
|
||||||
"""
|
|
||||||
if not base: base = self.baseUsersDN
|
|
||||||
- if (pattern==''): searchFilter = "uid=*"
|
|
||||||
- else: searchFilter = pattern
|
|
||||||
+ # kerberos -> search only PosixAccount
|
|
||||||
+ if (pattern==''): searchFilter = "(&(objectClass=posixAccount)(uid=*))"
|
|
||||||
+ elif pattern[0] == '(':
|
|
||||||
+ searchFilter = "(&(objectClass=posixAccount)%s)" % (pattern)
|
|
||||||
+ else:
|
|
||||||
+ searchFilter = "(&(objectClass=posixAccount)(%s))" % (pattern)
|
|
||||||
+ #
|
|
||||||
monoattrs = ["uid", "sn", "givenName", "mail"]
|
|
||||||
result_set = self.search(searchFilter, base, monoattrs + ["telephoneNumber", "loginShell", "objectClass"], ldap.SCOPE_ONELEVEL)
|
|
||||||
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/agent/mmc/plugins/kerberos/__init__.py mmc-core-3.0.0/agent/mmc/plugins/kerberos/__init__.py
|
|
||||||
--- mmc-core-3.0.0.orig/agent/mmc/plugins/kerberos/__init__.py 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mmc-core-3.0.0/agent/mmc/plugins/kerberos/__init__.py 2010-05-01 12:06:44.132623770 +0000
|
|
||||||
@@ -0,0 +1,180 @@
|
|
||||||
+# -*- coding: utf-8; -*-
|
|
||||||
+#
|
|
||||||
+# (c) 2004-2007 Linbox / Free&ALter Soft, http://linbox.com
|
|
||||||
+# (c) 2007 Mandriva, http://www.mandriva.com/
|
|
||||||
+# (c) 2007 Kids-und-Co g.e.V http://www.kids-und-co.de
|
|
||||||
+#
|
|
||||||
+# $Id: __init__.py 108 2007-11-21 09:56:21Z iosifb $
|
|
||||||
+#
|
|
||||||
+# This file is part of Mandriva Management Console (MMC).
|
|
||||||
+#
|
|
||||||
+# MMC is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+#
|
|
||||||
+# MMC is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with MMC; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
+
|
|
||||||
+import logging
|
|
||||||
+import ldap.modlist
|
|
||||||
+import copy
|
|
||||||
+from mmc.plugins.base import ldapUserGroupControl
|
|
||||||
+import xmlrpclib
|
|
||||||
+from mmc.support.errorObj import errorMessage
|
|
||||||
+from mmc.support.mmcException import *
|
|
||||||
+from mmc.support import mmctools
|
|
||||||
+import mmc.plugins.base
|
|
||||||
+from mmc.support.config import *
|
|
||||||
+from mmc.plugins.base import ldapUserGroupControl
|
|
||||||
+
|
|
||||||
+VERSION = "2.3.1"
|
|
||||||
+APIVERSION = "4:2:0"
|
|
||||||
+REVISION = int("$Rev: 108 $".split(':')[1].strip(' $'))
|
|
||||||
+
|
|
||||||
+def getVersion(): return VERSION
|
|
||||||
+def getApiVersion(): return APIVERSION
|
|
||||||
+def getRevision(): return REVISION
|
|
||||||
+
|
|
||||||
+def activate():
|
|
||||||
+ """
|
|
||||||
+ this function define if the module "base" can be activated.
|
|
||||||
+ @return: return True if this module can be activate
|
|
||||||
+ @rtype: boolean
|
|
||||||
+ """
|
|
||||||
+ config = KerberosConfig("kerberos")
|
|
||||||
+ logger = logging.getLogger()
|
|
||||||
+
|
|
||||||
+ if config.disabled:
|
|
||||||
+ logger.info("Kerberos plugin disabled by configuration.")
|
|
||||||
+ return False
|
|
||||||
+
|
|
||||||
+ try:
|
|
||||||
+ ldapObj = ldapUserGroupControl()
|
|
||||||
+ except ldap.INVALID_CREDENTIALS:
|
|
||||||
+ logger.error("Can't bind to LDAP: invalid credentials.")
|
|
||||||
+ return False
|
|
||||||
+
|
|
||||||
+ # Test if the Kerberos LDAP schema is available in the directory
|
|
||||||
+ try:
|
|
||||||
+ schema = ldapObj.getSchema("krb5KDCEntry")
|
|
||||||
+ if len(schema) <= 0:
|
|
||||||
+ logger.error("Kerberos schema is not included in LDAP directory");
|
|
||||||
+ return False
|
|
||||||
+ except:
|
|
||||||
+ logger.exception("invalid schema")
|
|
||||||
+ return False
|
|
||||||
+ try:
|
|
||||||
+ schema = ldapObj.getSchema("krb5Principal")
|
|
||||||
+ if len(schema) <= 0:
|
|
||||||
+ logger.error("Kerberos schema is not included in LDAP directory");
|
|
||||||
+ return False
|
|
||||||
+ except:
|
|
||||||
+ logger.exception("invalid schema")
|
|
||||||
+ return False
|
|
||||||
+ """
|
|
||||||
+ TODO: Check kerberos database
|
|
||||||
+ """
|
|
||||||
+ return True
|
|
||||||
+
|
|
||||||
+def isKrbUser(uid):
|
|
||||||
+ return kerberosLdapControl().isKerberosUser(uid)
|
|
||||||
+
|
|
||||||
+def addKrbAttr(uid,password):
|
|
||||||
+ return kerberosLdapControl().addKerberosAttr(uid,password)
|
|
||||||
+
|
|
||||||
+def delKrbAttr(uid,password):
|
|
||||||
+ return kerberosLdapControl().delKerberosAttr(uid,password)
|
|
||||||
+
|
|
||||||
+def changePassword(uid,password):
|
|
||||||
+ return kerberosLdapControl().changePassword(uid, password)
|
|
||||||
+
|
|
||||||
+class KerberosConfig(PluginConfig):
|
|
||||||
+ def __init__(self,name, conffile = None):
|
|
||||||
+ PluginConfig.__init__(self,name, conffile = None)
|
|
||||||
+ self.setDefault()
|
|
||||||
+ self.readConfig()
|
|
||||||
+
|
|
||||||
+ def readConfig(self):
|
|
||||||
+ PluginConfig.readConf(self)
|
|
||||||
+ self.realm = self.get("kerberos", "realm")
|
|
||||||
+
|
|
||||||
+class kerberosLdapControl(mmc.plugins.base.ldapUserGroupControl):
|
|
||||||
+
|
|
||||||
+ def __init__(self, conffile = None, conffilebase = None):
|
|
||||||
+ mmc.plugins.base.ldapUserGroupControl.__init__(self, conffilebase)
|
|
||||||
+ self.configKerberos = KerberosConfig("kerberos", conffile)
|
|
||||||
+ self.realm = self.configKerberos.realm
|
|
||||||
+
|
|
||||||
+ def delKerberosAttr(self,uid,password):
|
|
||||||
+ # If the password has been encoded in the XML-RPC stream, decode it
|
|
||||||
+ if isinstance(password, xmlrpclib.Binary):
|
|
||||||
+ password = str(password)
|
|
||||||
+ dn = 'uid=' + uid + ',' + self.baseUsersDN
|
|
||||||
+ s = self.l.search_s(dn, ldap.SCOPE_BASE)
|
|
||||||
+ c, attr = s[0]
|
|
||||||
+ old = {}
|
|
||||||
+ new = {}
|
|
||||||
+ for key in attr.keys(): old[key.lower()] = attr[key]
|
|
||||||
+ new = copy.deepcopy(old)
|
|
||||||
+ # remove krb attributes
|
|
||||||
+ new.pop('krb5kdcflags')
|
|
||||||
+ new.pop('krb5principalname')
|
|
||||||
+ new.pop('krb5keyversionnumber')
|
|
||||||
+ try: new.pop('krb5key')
|
|
||||||
+ except KeyError: pass
|
|
||||||
+ newobjclasses = ()
|
|
||||||
+ for s in new.pop('objectclass'):
|
|
||||||
+ if s[0:4] == 'krb5': pass
|
|
||||||
+ else: newobjclasses = newobjclasses + (s,)
|
|
||||||
+ new['objectclass'] = newobjclasses
|
|
||||||
+ modlist = ldap.modlist.modifyModlist(old, new)
|
|
||||||
+ #logger = logging.getLogger()
|
|
||||||
+ #logger.debug(newobjclasses)
|
|
||||||
+ #logger.debug(modlist)
|
|
||||||
+ self.l.modify_s(dn, modlist)
|
|
||||||
+ mmc.plugins.base.ldapUserGroupControl.changeUserPasswd(self,uid,password)
|
|
||||||
+ return True
|
|
||||||
+
|
|
||||||
+ def addKerberosAttr(self,uid,password):
|
|
||||||
+ # If the password has been encoded in the XML-RPC stream, decode it
|
|
||||||
+ if isinstance(password, xmlrpclib.Binary):
|
|
||||||
+ password = str(password)
|
|
||||||
+ dn = 'uid=' + uid + ',' + self.baseUsersDN
|
|
||||||
+ s = self.l.search_s(dn, ldap.SCOPE_BASE)
|
|
||||||
+ c, attr = s[0]
|
|
||||||
+ old = {}
|
|
||||||
+ new = {}
|
|
||||||
+ for key in attr.keys(): old[key.lower()] = attr[key]
|
|
||||||
+ new = copy.deepcopy(old)
|
|
||||||
+ new['objectclass'] = new['objectclass'] + ['krb5Principal','krb5KDCEntry']
|
|
||||||
+ new['userpassword'] = ['{K5Key}']
|
|
||||||
+ new['krb5kdcflags'] = ['126']
|
|
||||||
+ new['krb5keyversionnumber'] = ['0']
|
|
||||||
+ new['krb5principalname'] = [uid+'@' +self.realm]
|
|
||||||
+ modlist = ldap.modlist.modifyModlist(old, new)
|
|
||||||
+ self.l.modify_s(dn, modlist)
|
|
||||||
+ self.l.passwd_s(dn, None, password)
|
|
||||||
+ return True
|
|
||||||
+
|
|
||||||
+ def isKerberosUser(self,uid):
|
|
||||||
+ ret = False
|
|
||||||
+ if self.existUser(uid): ret = "krb5Principal" in self.getDetailedUser(uid)["objectClass"]
|
|
||||||
+ return ret
|
|
||||||
+
|
|
||||||
+ def changePassword(self,uid,password):
|
|
||||||
+ # If the password has been encoded in the XML-RPC stream, decode it
|
|
||||||
+ if isinstance(password, xmlrpclib.Binary):
|
|
||||||
+ password = str(password)
|
|
||||||
+ dn = 'uid=' + uid + ',' + self.baseUsersDN
|
|
||||||
+ self.l.modify_s(dn, [(ldap.MOD_REPLACE,'userPassWord','{K5KEY}')])
|
|
||||||
+ self.l.passwd_s(dn, None, password)
|
|
||||||
+ return True
|
|
||||||
+
|
|
||||||
+
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/agent/setup.py mmc-core-3.0.0/agent/setup.py
|
|
||||||
--- mmc-core-3.0.0.orig/agent/setup.py 2010-05-01 12:06:18.104618663 +0000
|
|
||||||
+++ mmc-core-3.0.0/agent/setup.py 2010-05-01 12:08:13.270868725 +0000
|
|
||||||
@@ -33,5 +33,6 @@
|
|
||||||
maintainer = "Cedric Delfosse",
|
|
||||||
maintainer_email = "cdelfosse@mandriva.com",
|
|
||||||
packages = ["mmc", "mmc.support", "mmc.plugins", "mmc.plugins.base",
|
|
||||||
- "mmc.plugins.ppolicy", "mmc.core", "mmc.core.audit"],
|
|
||||||
+ "mmc.plugins.ppolicy", "mmc.core", "mmc.core.audit",
|
|
||||||
+ "mmc.plugins.kerberos"],
|
|
||||||
)
|
|
||||||
diff -Naur mmc-core-3.0.0.orig/conf/plugins/kerberos.ini mmc-core-3.0.0/conf/plugins/kerberos.ini
|
|
||||||
--- mmc-core-3.0.0.orig/conf/plugins/kerberos.ini 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ mmc-core-3.0.0/conf/plugins/kerberos.ini 2010-05-01 12:06:38.209871794 +0000
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+[main]
|
|
||||||
+disable = 0
|
|
||||||
+
|
|
||||||
+[kerberos]
|
|
||||||
+realm = EXAMPLE.COM
|
|
@ -1,83 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2011-01-21
|
|
||||||
Initial Package Version: 3.0.1
|
|
||||||
Origin: me
|
|
||||||
Upstream Status: unknown
|
|
||||||
Description: split install target
|
|
||||||
|
|
||||||
diff -Naur mmc-core-3.0.1.orig/agent/Makefile mmc-core-3.0.1/agent/Makefile
|
|
||||||
--- mmc-core-3.0.1.orig/agent/Makefile 2011-01-21 15:34:54.000000000 +0000
|
|
||||||
+++ mmc-core-3.0.1/agent/Makefile 2011-01-21 15:50:08.000000000 +0000
|
|
||||||
@@ -56,37 +56,55 @@
|
|
||||||
@echo "Nothing to do"
|
|
||||||
|
|
||||||
# Install everything
|
|
||||||
-install:
|
|
||||||
+install: install_py install_lib_backup install_sbin install_bin install_cfg
|
|
||||||
@# Install directories
|
|
||||||
@echo ""
|
|
||||||
@echo "Move old configuration files to $(DESTDIR)$(ETCDIR)$(BACKUP)"
|
|
||||||
-[ -d $(DESTDIR)$(ETCDIR) ] && mv -f $(DESTDIR)$(ETCDIR) $(DESTDIR)$(ETCDIR)$(BACKUP)
|
|
||||||
+
|
|
||||||
+install_nopy: install_lib_backup install_sbin install_bin install_cfg
|
|
||||||
+ @# Install directories
|
|
||||||
@echo ""
|
|
||||||
- @echo "Creating directories..."
|
|
||||||
- $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(SBINDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(BINDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(LIBDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(LIBDIRBACKUP)
|
|
||||||
- $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(ETCDIR)
|
|
||||||
- $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
+ # @echo "Move old configuration files to $(DESTDIR)$(ETCDIR)$(BACKUP)"
|
|
||||||
+ # -[ -d $(DESTDIR)$(ETCDIR) ] && mv -f $(DESTDIR)$(ETCDIR) $(DESTDIR)$(ETCDIR)$(BACKUP)
|
|
||||||
|
|
||||||
+install_py:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating python directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install python code in $(DESTDIR)$(PYTHON_PREFIX)"
|
|
||||||
$(PYTHON) setup.py install --no-compile --prefix $(DESTDIR)$(PYTHON_PREFIX)
|
|
||||||
|
|
||||||
+install_lib_backup:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating lib backup directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(LIBDIRBACKUP)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install LIBDIRBACKUP in $(DESTDIR)$(LIBDIRBACKUP)"
|
|
||||||
|
|
||||||
$(INSTALL) -m 755 -o $(OWNER) -g $(OGROUP) $(LIBFILESBACKUP) $(DESTDIR)$(LIBDIRBACKUP)
|
|
||||||
|
|
||||||
+install_sbin:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating sbin directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(SBINDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install SBINFILES in $(DESTDIR)$(SBINDIR)"
|
|
||||||
$(INSTALL) -m 755 -o $(OWNER) -g $(OGROUP) $(SBINFILES) $(DESTDIR)$(SBINDIR)
|
|
||||||
|
|
||||||
+install_bin:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating bin directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(BINDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install BINFILES in $(DESTDIR)$(BINDIR)"
|
|
||||||
$(INSTALL) -m 755 -o $(OWNER) -g $(OGROUP) $(BINFILES) $(DESTDIR)$(BINDIR)
|
|
||||||
|
|
||||||
+install_cfg:
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "Creating config directories..."
|
|
||||||
+ $(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(ETCDIR)
|
|
||||||
@echo ""
|
|
||||||
@echo "Install CONFILES in $(DESTDIR)$(ETCDIR)"
|
|
||||||
$(INSTALL) -d -m 755 -o $(OWNER) -g $(OGROUP) $(DESTDIR)$(ETCDIR)/agent
|
|
||||||
@@ -99,7 +117,7 @@
|
|
||||||
$(INSTALL) -m 755 -o $(OWNER) -g $(OGROUP) init.d/mmc-agent $(DESTDIR)$(INITDIR)
|
|
||||||
|
|
||||||
ifndef NOCHECKPASSWORD
|
|
||||||
- $(MAKE) -C openldap-check-password install CC=$(CC) INSTALL=$(INSTALL)
|
|
||||||
+ $(MAKE) -C openldap-check-password install CC=$(CC) INSTALL=$(INSTALL) DESTDIR=$(DESTDIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
include common.mk
|
|
@ -1,50 +0,0 @@
|
|||||||
# Copyright 1999-2010 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="2"
|
|
||||||
SUPPORT_PYTHON_ABIS="1"
|
|
||||||
|
|
||||||
inherit eutils distutils
|
|
||||||
|
|
||||||
MY_P="${P/_p/-}"
|
|
||||||
MY_PV="${PV/_p*/}"
|
|
||||||
|
|
||||||
DESCRIPTION="The MMC Agent and its Core Python plugins."
|
|
||||||
HOMEPAGE="http://mds.mandriva.org/"
|
|
||||||
SRC_URI="http://mds.mandriva.org/pub/mmc-core/sources//${PV}/${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
RDEPEND=">=dev-python/twisted-web-0.7.0
|
|
||||||
>=dev-python/python-ldap-2.2.1
|
|
||||||
!app-admin/mmc-agent"
|
|
||||||
|
|
||||||
DEPEND="sys-apps/lsb-release"
|
|
||||||
|
|
||||||
S="${WORKDIR}/${PN}-${MY_PV}/agent"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
epatch "${FILESDIR}"/${PN}-3.0.0-install-target-1.patch
|
|
||||||
epatch "${FILESDIR}"/${PN}-3.0.0-kerberos-1.patch
|
|
||||||
distutils_src_prepare
|
|
||||||
}
|
|
||||||
|
|
||||||
# from marienz's setuptools.eclass:
|
|
||||||
src_install() {
|
|
||||||
emake install_nopy PREFIX=/usr DESTDIR=${D} NOCHECKPASSWORD="1"
|
|
||||||
distutils_src_install
|
|
||||||
newinitd "${FILESDIR}"/mmc-agent.initd mmc-agent
|
|
||||||
keepdir /var/log/mmc
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "To disable some plugin in your mmc environments, you have to set"
|
|
||||||
elog "disable to 1 in /etc/mmc/plugins/*.ini"
|
|
||||||
elog "(one config file per service)"
|
|
||||||
elog "You can't disable the base plugin."
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
# Copyright 1999-2011 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="2"
|
|
||||||
SUPPORT_PYTHON_ABIS="1"
|
|
||||||
|
|
||||||
inherit eutils distutils
|
|
||||||
|
|
||||||
MY_P="${P/_p/-}"
|
|
||||||
MY_PV="${PV/_p*/}"
|
|
||||||
|
|
||||||
DESCRIPTION="The MMC Agent and its Core Python plugins."
|
|
||||||
HOMEPAGE="http://mds.mandriva.org/"
|
|
||||||
SRC_URI="http://mds.mandriva.org/pub/mmc-core/sources//${PV}/${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
RDEPEND=">=dev-python/twisted-web-0.7.0
|
|
||||||
>=dev-python/python-ldap-2.2.1
|
|
||||||
!app-admin/mmc-agent"
|
|
||||||
|
|
||||||
DEPEND="sys-apps/lsb-release"
|
|
||||||
|
|
||||||
S="${WORKDIR}/${PN}-${MY_PV}/agent"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
epatch "${FILESDIR}"/${PN}-3.0.1-install-target-1.patch
|
|
||||||
epatch "${FILESDIR}"/${PN}-3.0.0-kerberos-1.patch
|
|
||||||
distutils_src_prepare
|
|
||||||
}
|
|
||||||
|
|
||||||
# from marienz's setuptools.eclass:
|
|
||||||
src_install() {
|
|
||||||
emake install_nopy PREFIX=/usr DESTDIR=${D} NOCHECKPASSWORD="1"
|
|
||||||
distutils_src_install
|
|
||||||
newinitd "${FILESDIR}"/mmc-agent.initd mmc-agent
|
|
||||||
keepdir /var/log/mmc
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "To disable some plugin in your mmc environments, you have to set"
|
|
||||||
elog "disable to 1 in /etc/mmc/plugins/*.ini"
|
|
||||||
elog "(one config file per service)"
|
|
||||||
elog "You can't disable the base plugin."
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
# ChangeLog for app-admin/mmc-web-base
|
|
||||||
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
01 May 2010; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-core-3.0.0.ebuild, +metadata.xml:
|
|
||||||
add block on old packages
|
|
||||||
|
|
||||||
18 Feb 2010; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild, mmc-web-base-2.3.2-r1.ebuild,
|
|
||||||
mmc-web-base-2.3.2-r2.ebuild, mmc-web-base-2.3.2_p642.ebuild:
|
|
||||||
add arm keyword
|
|
||||||
|
|
||||||
29 Jan 2010; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2_p642.ebuild,
|
|
||||||
+files/mmc-web-base-2.3.2-bulkimport-1.patch:
|
|
||||||
add bulkimport
|
|
||||||
|
|
||||||
05 Dec 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+mmc-web-base-2.3.2_p642.ebuild, +files/mmc-web-base-2.3.2-gentoo-3.patch:
|
|
||||||
use special pulse2 version
|
|
||||||
|
|
||||||
*mmc-web-base-2.3.2-r2 (03 Sep 2009)
|
|
||||||
|
|
||||||
03 Sep 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+mmc-web-base-2.3.2-r2.ebuild:
|
|
||||||
add missing dependencies
|
|
||||||
|
|
||||||
* mmc-web-base-2.3.2-r1 (17 Apr 2009)
|
|
||||||
|
|
||||||
17 Apr 2009; Mario Fetka <mario.fetka@gmail.com> mmc-web-base-2.3.2-r1:
|
|
||||||
EAPI2 and test cleanup
|
|
||||||
|
|
||||||
16 Apr 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild:
|
|
||||||
add die to do*
|
|
||||||
|
|
||||||
08 Apr 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
-mmc-web-base-2.3.1.ebuild, mmc-web-base-2.3.2.ebuild:
|
|
||||||
correct KEYWORDS
|
|
||||||
|
|
||||||
07 Apr 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
-files/postinstall-en-2.3.txt:
|
|
||||||
delete not reqired files
|
|
||||||
|
|
||||||
13 Mar 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild:
|
|
||||||
new dependencies on gettext
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+files/mmc-web-base-2.3.2-gentoo-2.patch, mmc-web-base-2.3.2.ebuild:
|
|
||||||
disbale php_flag
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
mmc-web-base-2.3.2.ebuild:
|
|
||||||
move apache mmc.conf after php.conf
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com> ChangeLog:
|
|
||||||
update to new system
|
|
||||||
|
|
||||||
17 Feb 2009; Mario Fetka <mario.fetka@gmail.com>
|
|
||||||
+files/mmc-web-base-2.3.2-gentoo-1.patch, +metadata.xml,
|
|
||||||
+mmc-web-base-2.3.2.ebuild:
|
|
||||||
New design for mmc web packages
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
AUX mmc-core-3.0.0-gentoo-1.patch 1140 RMD160 686bb0496e69528321eb74dca015440053968761 SHA1 cdc1e3f19463baa1b09b0c78e10d664d2f85de97 SHA256 15cd743bea160c7eeca5a777d5dc09f1ab39c5d236c0b98bd7ccf9fd63f79584
|
|
||||||
DIST mmc-core-3.0.0.tar.gz 645109 RMD160 ca519b20ebf011ce78533ce0faec61dd48af35cf SHA1 927f4a8a1e335d97d3af86bb528c7c15960db8c3 SHA256 6aa9a8020ed352cb3c4f6e9c808802e1959fd6d6415d3b66e77453edc4ad9f49
|
|
||||||
DIST mmc-core-3.0.1.tar.gz 655442 RMD160 deebc610b6bd628b8cdeb4b211da572fb450596c SHA1 9134edf1ec5f9ff6329432216b582afff01f749f SHA256 f983dcc2fdbf47171f3023435cc0f011938ab8288e424f4665bf885a743cbbb6
|
|
||||||
EBUILD mmc-web-core-3.0.0.ebuild 1021 RMD160 cba2e9d9df6e252c6164326d0067618ab3efe139 SHA1 6cccf2293ff84f09541155722553ff9eae88772e SHA256 aa9e49fea9c6732f537eff72f262c361d434ec5d3146eb8027facf8e5007bec6
|
|
||||||
EBUILD mmc-web-core-3.0.1.ebuild 1021 RMD160 cba2e9d9df6e252c6164326d0067618ab3efe139 SHA1 6cccf2293ff84f09541155722553ff9eae88772e SHA256 aa9e49fea9c6732f537eff72f262c361d434ec5d3146eb8027facf8e5007bec6
|
|
||||||
MISC ChangeLog 2009 RMD160 e1d65eb41962f5e6f106b38e026e282807868606 SHA1 f43c7652bd0a80f41c01a7e2e339a73e9ece3e7a SHA256 543f3fbe77f0e9234521715b46b84ef7d818a90d552b7f2c11587c437899d003
|
|
||||||
MISC metadata.xml 226 RMD160 bebcbe7a5e3d2be83c25e006192f71ebf45abb14 SHA1 ec2b713fc2363b8c51e9c164d0802eeb59d9d296 SHA256 a9d3f7df2362a9a7ddcbe05c5d97d726eeb4bab135b21643508149a08bf6a2b2
|
|
@ -1,34 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2009-12-05
|
|
||||||
Initial Package Version: 2.3.2
|
|
||||||
Origin: me
|
|
||||||
Upstream Status: gentoo specific
|
|
||||||
Description: wrap mmc alias in define and disable php_flag
|
|
||||||
|
|
||||||
diff -Naur mmc-web-base-2.3.2.orig/confs/apache/mmc.conf.tmpl mmc-web-base-2.3.2/confs/apache/mmc.conf.tmpl
|
|
||||||
--- mmc-core-3.0.0.orig/web/confs/apache/mmc.conf.tmpl 2009-12-05 06:59:51.263532054 +0000
|
|
||||||
+++ mmc-web-base-3.0.0/web/confs/apache/mmc.conf.tmpl 2009-12-05 07:05:06.997531963 +0000
|
|
||||||
@@ -1,11 +1,12 @@
|
|
||||||
-### Add an alias /mmc on www server root
|
|
||||||
-Alias /mmc ###DATADIR###
|
|
||||||
-
|
|
||||||
-### Allow access to lmc web directory to everyone
|
|
||||||
-<Directory ###DATADIR###>
|
|
||||||
- AllowOverride None
|
|
||||||
- Order allow,deny
|
|
||||||
- allow from all
|
|
||||||
- php_flag short_open_tag on
|
|
||||||
- php_flag magic_quotes_gpc on
|
|
||||||
-</Directory>
|
|
||||||
+<IfDefine MMC>
|
|
||||||
+ ### Add an alias /mmc on www server root
|
|
||||||
+ Alias /mmc ###DATADIR###
|
|
||||||
+ ### Allow access to lmc web directory to everyone
|
|
||||||
+ <Directory ###DATADIR###>
|
|
||||||
+ AllowOverride None
|
|
||||||
+ Order allow,deny
|
|
||||||
+ allow from all
|
|
||||||
+ ### php_flag short_open_tag on
|
|
||||||
+ ### php_flag magic_quotes_gpc on
|
|
||||||
+ </Directory>
|
|
||||||
+</IfDefine>
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<herd>no-herd</herd>
|
|
||||||
<maintainer>
|
|
||||||
<email>mario.fetka@gmail.com</email>
|
|
||||||
</maintainer>
|
|
||||||
</pkgmetadata>
|
|
@ -1,42 +0,0 @@
|
|||||||
# Copyright 1999-2010 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="2"
|
|
||||||
|
|
||||||
inherit eutils depend.apache depend.php
|
|
||||||
|
|
||||||
MY_P="${P/_p/-}"
|
|
||||||
MY_PV="${PV/_p*/}"
|
|
||||||
|
|
||||||
DESCRIPTION="Mandriva Directory Server - Identity and network services management made easy !"
|
|
||||||
HOMEPAGE="http://mds.mandriva.org/"
|
|
||||||
SRC_URI="http://mds.mandriva.org/pub/mmc-core/sources/${PV}/mmc-core-${PV}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
KEYWORDS="~amd64 ~arm ~x86 ~x86-fbsd"
|
|
||||||
IUSE=""
|
|
||||||
DEPEND="sys-apps/lsb-release
|
|
||||||
sys-devel/gettext"
|
|
||||||
RDEPEND=">=app-admin/mmc-core-${PV}
|
|
||||||
dev-lang/php[ldap,xmlrpc,nls]
|
|
||||||
virtual/cdrtools
|
|
||||||
!app-admin/mmc-web-base"
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
need_php_httpd
|
|
||||||
|
|
||||||
S="${WORKDIR}/mmc-core-${PV}/web"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
epatch "${FILESDIR}"/mmc-core-3.0.0-gentoo-1.patch
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake DESTDIR="${D}" PREFIX=/usr HTTPDUSER=apache install || die "install failed"
|
|
||||||
insinto /etc/mmc
|
|
||||||
doins confs/mmc.ini || die "ini install failed"
|
|
||||||
|
|
||||||
insinto /etc/apache2/modules.d
|
|
||||||
newins confs/apache/mmc.conf 90_mmc.conf
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
# Copyright 1999-2010 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: $
|
|
||||||
|
|
||||||
EAPI="2"
|
|
||||||
|
|
||||||
inherit eutils depend.apache depend.php
|
|
||||||
|
|
||||||
MY_P="${P/_p/-}"
|
|
||||||
MY_PV="${PV/_p*/}"
|
|
||||||
|
|
||||||
DESCRIPTION="Mandriva Directory Server - Identity and network services management made easy !"
|
|
||||||
HOMEPAGE="http://mds.mandriva.org/"
|
|
||||||
SRC_URI="http://mds.mandriva.org/pub/mmc-core/sources/${PV}/mmc-core-${PV}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
KEYWORDS="~amd64 ~arm ~x86 ~x86-fbsd"
|
|
||||||
IUSE=""
|
|
||||||
DEPEND="sys-apps/lsb-release
|
|
||||||
sys-devel/gettext"
|
|
||||||
RDEPEND=">=app-admin/mmc-core-${PV}
|
|
||||||
dev-lang/php[ldap,xmlrpc,nls]
|
|
||||||
virtual/cdrtools
|
|
||||||
!app-admin/mmc-web-base"
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
need_php_httpd
|
|
||||||
|
|
||||||
S="${WORKDIR}/mmc-core-${PV}/web"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
epatch "${FILESDIR}"/mmc-core-3.0.0-gentoo-1.patch
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake DESTDIR="${D}" PREFIX=/usr HTTPDUSER=apache install || die "install failed"
|
|
||||||
insinto /etc/mmc
|
|
||||||
doins confs/mmc.ini || die "ini install failed"
|
|
||||||
|
|
||||||
insinto /etc/apache2/modules.d
|
|
||||||
newins confs/apache/mmc.conf 90_mmc.conf
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user