diff options
| author | Sam Falkner <Sam.Falkner@Sun.COM> | 2010-02-25 11:47:05 -0700 |
|---|---|---|
| committer | Sam Falkner <Sam.Falkner@Sun.COM> | 2010-02-25 11:47:05 -0700 |
| commit | e4d060fb4c00d44cd578713eb9a921f594b733b8 (patch) | |
| tree | c38276f18cf33dbd25c1451f4d3a92ef8adfc6b3 /usr/src | |
| parent | e69acc927b15c46de46ae637e53e1b808990a5bc (diff) | |
| download | illumos-joyent-e4d060fb4c00d44cd578713eb9a921f594b733b8.tar.gz | |
6895223 zfs userspace/groupspace/allow/unallow/holds IOError in Japanese locale
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/Targetdirs | 3 | ||||
| -rw-r--r-- | usr/src/cmd/pyzfs/pyzfs.py | 10 | ||||
| -rw-r--r-- | usr/src/lib/Makefile | 5 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/Makefile | 54 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/Makefile.com | 60 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/common/__init__.py | 28 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/common/mapfile-vers | 45 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/common/misc.c | 140 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/i386/Makefile | 27 | ||||
| -rw-r--r-- | usr/src/lib/pysolaris/sparc/Makefile | 27 | ||||
| -rw-r--r-- | usr/src/lib/pyzfs/Makefile.com | 4 | ||||
| -rw-r--r-- | usr/src/lib/pyzfs/common/ioctl.c | 82 | ||||
| -rw-r--r-- | usr/src/lib/pyzfs/common/userspace.py | 11 | ||||
| -rw-r--r-- | usr/src/lib/pyzfs/common/util.py | 10 | ||||
| -rw-r--r-- | usr/src/pkgdefs/SUNWcsl/prototype_com | 8 |
15 files changed, 417 insertions, 97 deletions
diff --git a/usr/src/Targetdirs b/usr/src/Targetdirs index 46d1b35215..7eb68e9751 100644 --- a/usr/src/Targetdirs +++ b/usr/src/Targetdirs @@ -19,7 +19,7 @@ # # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # @@ -255,6 +255,7 @@ DIRS= \ /usr/lib/pool \ /usr/lib/python2.4 \ /usr/lib/python2.4/vendor-packages \ + /usr/lib/python2.4/vendor-packages/solaris \ /usr/lib/python2.4/vendor-packages/zfs \ /usr/lib/rcap \ /usr/lib/rcap/$(MACH32) \ diff --git a/usr/src/cmd/pyzfs/pyzfs.py b/usr/src/cmd/pyzfs/pyzfs.py index 3867d91ccd..973ffc4dc1 100644 --- a/usr/src/cmd/pyzfs/pyzfs.py +++ b/usr/src/cmd/pyzfs/pyzfs.py @@ -19,7 +19,7 @@ # # CDDL HEADER END # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # @@ -36,13 +36,17 @@ try: import zfs.ioctl import sys import errno + import solaris.misc """This is the main script for doing zfs subcommands. It doesn't know what subcommands there are, it just looks for a module zfs.<subcommand> that implements that subcommand.""" - _ = gettext.translation("SUNW_OST_OSCMD", "/usr/lib/locale", - fallback=True).gettext + try: + _ = gettext.translation("SUNW_OST_OSCMD", "/usr/lib/locale", + fallback=True).gettext + except: + _ = solaris.misc.gettext if len(sys.argv) < 2: sys.exit(_("missing subcommand argument")) diff --git a/usr/src/lib/Makefile b/usr/src/lib/Makefile index dd091dfce9..fd5a1b90c7 100644 --- a/usr/src/lib/Makefile +++ b/usr/src/lib/Makefile @@ -241,6 +241,7 @@ SUBDIRS += \ libzfs \ libzfs_jni \ pyzfs \ + pysolaris \ libmapid \ brand \ policykit \ @@ -365,6 +366,7 @@ MSGSUBDIRS= \ mpss \ pam_modules \ pyzfs \ + pysolaris \ rpcsec_gss \ libreparse MSGSUBDIRS += \ @@ -654,7 +656,8 @@ sun_fc: libdevinfo libsysevent libnvpair libsun_ima: libdevinfo libsysevent libnsl sun_sas: libdevinfo libsysevent libnvpair libkstat libdevid libgrubmgmt: libdevinfo libzfs libfstyp -pyzfs: libnvpair libsec libidmap libzfs +pyzfs: libnvpair libzfs +pysolaris: libsec libidmap libreparse: libnvpair libhotplug: libnvpair cfgadm_plugins: libhotplug diff --git a/usr/src/lib/pysolaris/Makefile b/usr/src/lib/pysolaris/Makefile new file mode 100644 index 0000000000..f0c18328ce --- /dev/null +++ b/usr/src/lib/pysolaris/Makefile @@ -0,0 +1,54 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +include ../Makefile.lib + +SUBDIRS= $(MACH) +XGETTEXT= $(GNUXGETTEXT) +XGETFLAGS= $(GNUXGETFLAGS) + +all := TARGET= all +install := TARGET= install +clean := TARGET= clean +clobber := TARGET= clobber +lint := TARGET= lint + +MSGFILES = `$(FIND) . -name '*.py' -o -name '*.c'` +POFILE = pysolaris.po + +.KEEP_STATE: + +all install clean clobber lint: $(SUBDIRS) + +$(POFILE): pofile_MSGFILES + +_msg: $(MSGDOMAINPOFILE) + +$(SUBDIRS): FRC + @cd $@; pwd; $(MAKE) $(TARGET) + +FRC: + +include ../../Makefile.msg.targ diff --git a/usr/src/lib/pysolaris/Makefile.com b/usr/src/lib/pysolaris/Makefile.com new file mode 100644 index 0000000000..f065560cff --- /dev/null +++ b/usr/src/lib/pysolaris/Makefile.com @@ -0,0 +1,60 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +LIBRARY = misc.a +VERS = +OBJECTS = misc.o + +PYSRCS= __init__.py + +include ../../Makefile.lib + +LIBLINKS = +SRCDIR = ../common +ROOTLIBDIR= $(ROOT)/usr/lib/python2.4/vendor-packages/solaris +PYOBJS= $(PYSRCS:%.py=$(SRCDIR)/%.pyc) +PYFILES= $(PYSRCS) $(PYSRCS:%.py=%.pyc) +ROOTPYSOLFILES= $(PYFILES:%=$(ROOTLIBDIR)/%) + +C99MODE= -xc99=%all +C99LMODE= -Xc99=%all + +LIBS = $(DYNLIB) +LDLIBS += -lc -lsec -lidmap -lpython2.4 +CFLAGS += $(CCVERBOSE) +CPPFLAGS += -I/usr/include/python2.4 + +.KEEP_STATE: + +all: $(PYOBJS) $(LIBS) + +install: all $(ROOTPYSOLFILES) + +$(ROOTLIBDIR)/%: % + $(INS.pyfile) + +lint: lintcheck + +include ../../Makefile.targ diff --git a/usr/src/lib/pysolaris/common/__init__.py b/usr/src/lib/pysolaris/common/__init__.py new file mode 100644 index 0000000000..ac2aad21b5 --- /dev/null +++ b/usr/src/lib/pysolaris/common/__init__.py @@ -0,0 +1,28 @@ +#! /usr/bin/python2.4 +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +""" +package which provides access to Solaris-specific functionality +""" diff --git a/usr/src/lib/pysolaris/common/mapfile-vers b/usr/src/lib/pysolaris/common/mapfile-vers new file mode 100644 index 0000000000..7afd0dfa91 --- /dev/null +++ b/usr/src/lib/pysolaris/common/mapfile-vers @@ -0,0 +1,45 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# MAPFILE HEADER START +# +# WARNING: STOP NOW. DO NOT MODIFY THIS FILE. +# Object versioning must comply with the rules detailed in +# +# usr/src/lib/README.mapfiles +# +# You should not be making modifications here until you've read the most current +# copy of that file. If you need help, contact a gatekeeper for guidance. +# +# MAPFILE HEADER END +# + +SUNWprivate { + global: + initmisc; + local: + *; +}; diff --git a/usr/src/lib/pysolaris/common/misc.c b/usr/src/lib/pysolaris/common/misc.c new file mode 100644 index 0000000000..923cab445f --- /dev/null +++ b/usr/src/lib/pysolaris/common/misc.c @@ -0,0 +1,140 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#include <Python.h> +#include <zone.h> +#include <libintl.h> +#include <directory.h> + +#ifdef __lint +#define dgettext(x, y) y +#endif + +#define _(s) dgettext(TEXT_DOMAIN, s) + +extern int sid_to_id(char *sid, boolean_t user, uid_t *id); + +static PyObject * +py_sid_to_id(PyObject *self, PyObject *args) +{ + char *sid; + int err, isuser; + uid_t id; + + if (!PyArg_ParseTuple(args, "si", &sid, &isuser)) + return (NULL); + + err = sid_to_id(sid, isuser, &id); + if (err) { + PyErr_SetString(PyExc_KeyError, sid); + return (NULL); + } + + return (Py_BuildValue("I", id)); +} + +/* + * Translate the sid string ("S-1-...") to the user@domain name, if + * possible. + */ +static PyObject * +py_sid_to_name(PyObject *self, PyObject *args) +{ + int isuser; + char *name, *sid; + directory_error_t e; + uint64_t classes; + PyObject *ret; + + if (!PyArg_ParseTuple(args, "si", &sid, &isuser)) + return (NULL); + e = directory_name_from_sid(NULL, sid, &name, &classes); + if (e != NULL) { + directory_error_free(e); + PyErr_SetString(PyExc_KeyError, sid); + return (NULL); + } + if (name == NULL) { + PyErr_SetString(PyExc_KeyError, sid); + return (NULL); + } + if (isuser) { + if (!(classes & DIRECTORY_CLASS_USER)) { + free(name); + PyErr_SetString(PyExc_KeyError, sid); + return (NULL); + } + } else { + if (!(classes & DIRECTORY_CLASS_GROUP)) { + free(name); + PyErr_SetString(PyExc_KeyError, sid); + return (NULL); + } + } + + ret = PyString_FromString(name); + free(name); + return (ret); +} + +static PyObject * +py_isglobalzone(PyObject *self, PyObject *args) +{ + return (Py_BuildValue("i", getzoneid() == GLOBAL_ZONEID)); +} + +static PyObject * +py_gettext(PyObject *self, PyObject *args) +{ + char *message, *result; + PyObject *ret = NULL; + + if (!PyArg_ParseTuple(args, "s", &message)) + return (NULL); + + result = dgettext(TEXT_DOMAIN, message); + + ret = Py_BuildValue("s", result); + return (ret); +} + +static PyMethodDef solarismethods[] = { + {"sid_to_id", py_sid_to_id, METH_VARARGS, "Map SID to UID/GID."}, + {"sid_to_name", py_sid_to_name, METH_VARARGS, + "Map SID to name@domain."}, + {"isglobalzone", py_isglobalzone, METH_NOARGS, + "Determine if this is the global zone."}, + {"gettext", py_gettext, METH_VARARGS, "Native call to gettext(3C)"}, + {NULL, NULL, 0, NULL} +}; + +void +initmisc(void) +{ + char *noop; + + noop = _("noop"); + PyObject *solaris_misc = Py_InitModule("solaris.misc", solarismethods); +} diff --git a/usr/src/lib/pysolaris/i386/Makefile b/usr/src/lib/pysolaris/i386/Makefile new file mode 100644 index 0000000000..cf68e8eb6d --- /dev/null +++ b/usr/src/lib/pysolaris/i386/Makefile @@ -0,0 +1,27 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +include ../Makefile.com + +install: all $(ROOTLIBS) diff --git a/usr/src/lib/pysolaris/sparc/Makefile b/usr/src/lib/pysolaris/sparc/Makefile new file mode 100644 index 0000000000..cf68e8eb6d --- /dev/null +++ b/usr/src/lib/pysolaris/sparc/Makefile @@ -0,0 +1,27 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +include ../Makefile.com + +install: all $(ROOTLIBS) diff --git a/usr/src/lib/pyzfs/Makefile.com b/usr/src/lib/pyzfs/Makefile.com index ca327f6931..dd23ae43d4 100644 --- a/usr/src/lib/pyzfs/Makefile.com +++ b/usr/src/lib/pyzfs/Makefile.com @@ -19,7 +19,7 @@ # CDDL HEADER END # # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # @@ -45,7 +45,7 @@ C99MODE= -xc99=%all C99LMODE= -Xc99=%all LIBS = $(DYNLIB) -LDLIBS += -lc -lnvpair -lsec -lidmap -lpython2.4 -lzfs +LDLIBS += -lc -lnvpair -lpython2.4 -lzfs CFLAGS += $(CCVERBOSE) CPPFLAGS += -I/usr/include/python2.4 CPPFLAGS += -I../../../uts/common/fs/zfs diff --git a/usr/src/lib/pyzfs/common/ioctl.c b/usr/src/lib/pyzfs/common/ioctl.c index 0c838abcb4..d8c0d18679 100644 --- a/usr/src/lib/pyzfs/common/ioctl.c +++ b/usr/src/lib/pyzfs/common/ioctl.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -29,11 +29,8 @@ #include <strings.h> #include <unistd.h> #include <libnvpair.h> -#include <idmap.h> -#include <zone.h> #include <libintl.h> #include <libzfs.h> -#include <directory.h> #include "zfs_prop.h" static PyObject *ZFSError; @@ -45,8 +42,6 @@ static int zfsdevfd; #define _(s) dgettext(TEXT_DOMAIN, s) -extern int sid_to_id(char *sid, boolean_t user, uid_t *id); - /*PRINTFLIKE1*/ static void seterr(char *fmt, ...) @@ -456,75 +451,6 @@ py_userspace_upgrade(PyObject *self, PyObject *args) } static PyObject * -py_sid_to_id(PyObject *self, PyObject *args) -{ - char *sid; - int err, isuser; - uid_t id; - - if (!PyArg_ParseTuple(args, "si", &sid, &isuser)) - return (NULL); - - err = sid_to_id(sid, isuser, &id); - if (err) { - PyErr_SetString(PyExc_KeyError, sid); - return (NULL); - } - - return (Py_BuildValue("I", id)); -} - -/* - * Translate the sid string ("S-1-...") to the user@domain name, if - * possible. - */ -static PyObject * -py_sid_to_name(PyObject *self, PyObject *args) -{ - int isuser; - char *name, *sid; - directory_error_t e; - uint64_t classes; - PyObject *ret; - - if (!PyArg_ParseTuple(args, "si", &sid, &isuser)) - return (NULL); - e = directory_name_from_sid(NULL, sid, &name, &classes); - if (e != NULL) { - directory_error_free(e); - PyErr_SetString(PyExc_KeyError, sid); - return (NULL); - } - if (name == NULL) { - PyErr_SetString(PyExc_KeyError, sid); - return (NULL); - } - if (isuser) { - if (!(classes & DIRECTORY_CLASS_USER)) { - free(name); - PyErr_SetString(PyExc_KeyError, sid); - return (NULL); - } - } else { - if (!(classes & DIRECTORY_CLASS_GROUP)) { - free(name); - PyErr_SetString(PyExc_KeyError, sid); - return (NULL); - } - } - - ret = PyString_FromString(name); - free(name); - return (ret); -} - -static PyObject * -py_isglobalzone(PyObject *self, PyObject *args) -{ - return (Py_BuildValue("i", getzoneid() == GLOBAL_ZONEID)); -} - -static PyObject * py_set_cmdstr(PyObject *self, PyObject *args) { char *str; @@ -595,12 +521,6 @@ static PyMethodDef zfsmethods[] = { "Get dataset properties."}, {"get_proptable", py_get_proptable, METH_NOARGS, "Get property table."}, - /* Below are not really zfs-specific: */ - {"sid_to_id", py_sid_to_id, METH_VARARGS, "Map SID to UID/GID."}, - {"sid_to_name", py_sid_to_name, METH_VARARGS, - "Map SID to name@domain."}, - {"isglobalzone", py_isglobalzone, METH_NOARGS, - "Determine if this is the global zone."}, {"get_holds", py_get_holds, METH_VARARGS, "Get user holds."}, {NULL, NULL, 0, NULL} }; diff --git a/usr/src/lib/pyzfs/common/userspace.py b/usr/src/lib/pyzfs/common/userspace.py index 6444dbc8c1..16a4f4cafb 100644 --- a/usr/src/lib/pyzfs/common/userspace.py +++ b/usr/src/lib/pyzfs/common/userspace.py @@ -19,7 +19,7 @@ # # CDDL HEADER END # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # @@ -31,6 +31,7 @@ import sys import pwd import grp import errno +import solaris.misc import zfs.util import zfs.ioctl import zfs.dataset @@ -68,9 +69,9 @@ def new_entry(options, isgroup, domain, rid): idstr = "%u" % rid (typename, mapfunc) = { - (1, 1): ("SMB Group", lambda id: zfs.ioctl.sid_to_name(id, 0)), + (1, 1): ("SMB Group", lambda id: solaris.misc.sid_to_name(id, 0)), (1, 0): ("POSIX Group", lambda id: grp.getgrgid(int(id)).gr_name), - (0, 1): ("SMB User", lambda id: zfs.ioctl.sid_to_name(id, 1)), + (0, 1): ("SMB User", lambda id: solaris.misc.sid_to_name(id, 1)), (0, 0): ("POSIX User", lambda id: pwd.getpwuid(int(id)).pw_name) }[isgroup, bool(domain)] @@ -109,7 +110,7 @@ def process_one_raw(acct, options, prop, elem): if options.translate and domain: try: - rid = zfs.ioctl.sid_to_id("%s-%u" % (domain, rid), + rid = solaris.misc.sid_to_id("%s-%u" % (domain, rid), not isgroup) domain = None except KeyError: @@ -203,7 +204,7 @@ def do_userspace(): ds = zfs.dataset.Dataset(dsname, types=("filesystem")) - if ds.getprop("zoned") and zfs.ioctl.isglobalzone(): + if ds.getprop("zoned") and solaris.misc.isglobalzone(): options.noname = True if not ds.getprop("useraccounting"): diff --git a/usr/src/lib/pyzfs/common/util.py b/usr/src/lib/pyzfs/common/util.py index 14d05a8bc1..5ff8d0e751 100644 --- a/usr/src/lib/pyzfs/common/util.py +++ b/usr/src/lib/pyzfs/common/util.py @@ -19,7 +19,7 @@ # # CDDL HEADER END # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # @@ -29,6 +29,7 @@ zfs.util.dev -- a file object of /dev/zfs """ import gettext import errno import os +import solaris.misc # Note: this module (zfs.util) should not import zfs.ioctl, because that # would introduce a circular dependency @@ -37,8 +38,11 @@ errno.ENOTSUP = 48 dev = open("/dev/zfs", "w") -_ = gettext.translation("SUNW_OST_OSLIB", "/usr/lib/locale", - fallback=True).gettext +try: + _ = gettext.translation("SUNW_OST_OSLIB", "/usr/lib/locale", + fallback=True).gettext +except: + _ = solaris.misc.gettext def default_repr(self): """A simple __repr__ function.""" diff --git a/usr/src/pkgdefs/SUNWcsl/prototype_com b/usr/src/pkgdefs/SUNWcsl/prototype_com index da1006d90a..83c8571cf7 100644 --- a/usr/src/pkgdefs/SUNWcsl/prototype_com +++ b/usr/src/pkgdefs/SUNWcsl/prototype_com @@ -18,7 +18,7 @@ # # CDDL HEADER END # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Copyright 2010 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This required package information file contains a list of package contents. @@ -384,3 +384,9 @@ d none usr/xpg4/lib 755 root bin s none usr/xpg4/lib/libcurses.so=./libcurses.so.2 f none usr/xpg4/lib/libcurses.so.1 755 root bin f none usr/xpg4/lib/libcurses.so.2 755 root bin +d none usr/lib/python2.4 755 root bin +d none usr/lib/python2.4/vendor-packages 755 root bin +d none usr/lib/python2.4/vendor-packages/solaris 755 root bin +f none usr/lib/python2.4/vendor-packages/solaris/misc.so 755 root bin +f none usr/lib/python2.4/vendor-packages/solaris/__init__.py 644 root bin +f none usr/lib/python2.4/vendor-packages/solaris/__init__.pyc 644 root bin |
