summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorSam Falkner <Sam.Falkner@Sun.COM>2010-02-25 11:47:05 -0700
committerSam Falkner <Sam.Falkner@Sun.COM>2010-02-25 11:47:05 -0700
commite4d060fb4c00d44cd578713eb9a921f594b733b8 (patch)
treec38276f18cf33dbd25c1451f4d3a92ef8adfc6b3 /usr/src
parente69acc927b15c46de46ae637e53e1b808990a5bc (diff)
downloadillumos-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/Targetdirs3
-rw-r--r--usr/src/cmd/pyzfs/pyzfs.py10
-rw-r--r--usr/src/lib/Makefile5
-rw-r--r--usr/src/lib/pysolaris/Makefile54
-rw-r--r--usr/src/lib/pysolaris/Makefile.com60
-rw-r--r--usr/src/lib/pysolaris/common/__init__.py28
-rw-r--r--usr/src/lib/pysolaris/common/mapfile-vers45
-rw-r--r--usr/src/lib/pysolaris/common/misc.c140
-rw-r--r--usr/src/lib/pysolaris/i386/Makefile27
-rw-r--r--usr/src/lib/pysolaris/sparc/Makefile27
-rw-r--r--usr/src/lib/pyzfs/Makefile.com4
-rw-r--r--usr/src/lib/pyzfs/common/ioctl.c82
-rw-r--r--usr/src/lib/pyzfs/common/userspace.py11
-rw-r--r--usr/src/lib/pyzfs/common/util.py10
-rw-r--r--usr/src/pkgdefs/SUNWcsl/prototype_com8
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