commit ed88dfdb3ebd9270baf2c4ab79c526af6c0481462fb1c74251f67c34497ae2fb Author: OBS User unknown Date: Sun Aug 3 02:41:25 2008 +0000 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libselinux?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/libselinux-2.0.67-rhat.patch b/libselinux-2.0.67-rhat.patch new file mode 100644 index 0000000..b0dbffc --- /dev/null +++ b/libselinux-2.0.67-rhat.patch @@ -0,0 +1,369 @@ +diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/freecon.3 libselinux-2.0.67/man/man3/freecon.3 +--- nsalibselinux/man/man3/freecon.3 2008-06-12 23:25:12.000000000 -0400 ++++ libselinux-2.0.67/man/man3/freecon.3 2008-07-09 16:52:33.000000000 -0400 +@@ -15,6 +15,11 @@ + .B freeconary + frees the memory allocated for a context array. + ++If ++.I con ++is NULL, no operation is performed. ++ ++ + .SH "SEE ALSO" + .BR selinux "(8)" + +diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxconlist.8 libselinux-2.0.67/man/man8/selinuxconlist.8 +--- nsalibselinux/man/man8/selinuxconlist.8 1969-12-31 19:00:00.000000000 -0500 ++++ libselinux-2.0.67/man/man8/selinuxconlist.8 2008-07-09 16:52:33.000000000 -0400 +@@ -0,0 +1,18 @@ ++.TH "selinuxconlist" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation" ++.SH "NAME" ++selinuxconlist \- list all SELinux context reachable for user ++.SH "SYNOPSIS" ++.B selinuxconlist [-l level] user [context] ++ ++.SH "DESCRIPTION" ++.B selinuxconlist ++reports the list of context reachable for user from the current context or specified context ++ ++.B \-l level ++mcs/mls level ++ ++.SH AUTHOR ++This manual page was written by Dan Walsh . ++ ++.SH "SEE ALSO" ++secon(8), selinuxdefcon(8) +diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxdefcon.8 libselinux-2.0.67/man/man8/selinuxdefcon.8 +--- nsalibselinux/man/man8/selinuxdefcon.8 1969-12-31 19:00:00.000000000 -0500 ++++ libselinux-2.0.67/man/man8/selinuxdefcon.8 2008-07-09 16:52:33.000000000 -0400 +@@ -0,0 +1,19 @@ ++.TH "selinuxdefcon" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation" ++.SH "NAME" ++selinuxdefcon \- list default SELinux context for user ++ ++.SH "SYNOPSIS" ++.B selinuxdefcon [-l level] user [fromcon] ++ ++.SH "DESCRIPTION" ++.B seconlist ++reports the default context for the specified user from current context or specified context ++ ++.B \-l level ++mcs/mls level ++ ++.SH AUTHOR ++This manual page was written by Dan Walsh . ++ ++.SH "SEE ALSO" ++secon(8), selinuxconlist(8) +diff --exclude-from=exclude -N -u -r nsalibselinux/src/Makefile libselinux-2.0.67/src/Makefile +--- nsalibselinux/src/Makefile 2008-06-22 09:40:25.000000000 -0400 ++++ libselinux-2.0.67/src/Makefile 2008-07-09 16:56:37.000000000 -0400 +@@ -7,16 +7,24 @@ + PYINC ?= /usr/include/$(PYLIBVER) + PYLIB ?= /usr/lib/$(PYLIBVER) + PYTHONLIBDIR ?= $(LIBDIR)/$(PYLIBVER) ++RUBYLIBVER ?= $(shell ruby -e 'print RUBY_VERSION.split(".")[0..1].join(".")') ++RUBYPLATFORM ?= $(shell ruby -e 'print RUBY_PLATFORM') ++RUBYINC ?= $(LIBDIR)/ruby/$(RUBYLIBVER)/$(RUBYPLATFORM) ++RUBYINSTALL ?= $(LIBDIR)/ruby/site_ruby/$(RUBYLIBVER)/$(RUBYPLATFORM) + + LIBVERSION = 1 + + LIBA=libselinux.a + TARGET=libselinux.so + SWIGIF= selinuxswig_python.i ++SWIGRUBYIF= selinuxswig_ruby.i + SWIGCOUT= selinuxswig_wrap.c ++SWIGRUBYCOUT= selinuxswig_ruby_wrap.c + SWIGLOBJ:= $(patsubst %.c,%.lo,$(SWIGCOUT)) ++SWIGRUBYLOBJ:= $(patsubst %.c,%.lo,$(SWIGRUBYCOUT)) + SWIGSO=_selinux.so + SWIGFILES=$(SWIGSO) selinux.py ++SWIGRUBYSO=_rubyselinux.so + LIBSO=$(TARGET).$(LIBVERSION) + AUDIT2WHYSO=audit2why.so + +@@ -29,7 +37,9 @@ + ifeq ($(DISABLE_RPM),y) + UNUSED_SRCS+=rpm.c + endif +-SRCS= $(filter-out $(UNUSED_SRCS), $(filter-out audit2why.c $(SWIGCOUT),$(wildcard *.c))) ++ ++GENERATED=$(SWIGCOUT) $(SWIGRUBYCOUT) ++SRCS= $(filter-out $(UNUSED_SRCS), $(filter-out audit2why.c $(GENERATED),$(wildcard *.c))) + + OBJS= $(patsubst %.c,%.o,$(SRCS)) + LOBJS= $(patsubst %.c,%.lo,$(SRCS)) +@@ -44,11 +54,11 @@ + + SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./ + +-GENERATED=$(SWIGCOUT) ++SWIGRUBY = swig -Wall -ruby -o $(SWIGRUBYCOUT) -outdir ./ + + all: $(LIBA) $(LIBSO) + +-pywrap: all $(SWIGSO) $(AUDIT2WHYSO) ++pywrap: all $(SWIGSO) $(AUDIT2WHYSO) $(SWIGRUBYSO) + + $(LIBA): $(OBJS) + $(AR) rcs $@ $^ +@@ -57,8 +67,14 @@ + $(SWIGLOBJ): $(SWIGCOUT) + $(CC) $(filter-out -Werror,$(CFLAGS)) -I$(PYINC) -fPIC -DSHARED -c -o $@ $< + ++$(SWIGRUBYLOBJ): $(SWIGRUBYCOUT) ++ $(CC) $(filter-out -Werror,$(CFLAGS)) -I$(RUBYINC) -fPIC -DSHARED -c -o $@ $< ++ + $(SWIGSO): $(SWIGLOBJ) +- $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $< -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@ ++ $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@ ++ ++$(SWIGRUBYSO): $(SWIGRUBYLOBJ) ++ $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux -L$(LIBDIR) -Wl,-soname,$@ + + $(LIBSO): $(LOBJS) + $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -ldl -L$(LIBDIR) -Wl,-soname,$(LIBSO),-z,defs,-z,relro +@@ -79,6 +95,9 @@ + $(SWIGCOUT): $(SWIGIF) + $(SWIG) $^ + ++$(SWIGRUBYCOUT): $(SWIGRUBYIF) ++ $(SWIGRUBY) $^ ++ + swigify: $(SWIGIF) + $(SWIG) $^ + +@@ -95,6 +114,9 @@ + install -m 755 $(AUDIT2WHYSO) $(PYTHONLIBDIR)/site-packages/selinux + install -m 644 selinux.py $(PYTHONLIBDIR)/site-packages/selinux/__init__.py + ++ test -d $(RUBYINSTALL) || install -m 755 -d $(RUBYINSTALL) ++ install -m 755 $(SWIGRUBYSO) $(RUBYINSTALL)/selinux.so ++ + relabel: + /sbin/restorecon $(SHLIBDIR)/$(LIBSO) + +@@ -102,7 +124,7 @@ + -rm -f $(OBJS) $(LOBJS) $(LIBA) $(LIBSO) $(SWIGLOBJ) $(SWIGSO) $(TARGET) $(AUDIT2WHYSO) *.o *.lo *~ + + distclean: clean +- rm -f $(SWIGCOUT) $(SWIGFILES) ++ rm -f $(GENERATED) $(SWIGFILES) + + indent: + ../../scripts/Lindent $(filter-out $(GENERATED),$(wildcard *.[ch])) +diff --exclude-from=exclude -N -u -r nsalibselinux/src/audit2why.c libselinux-2.0.67/src/audit2why.c +--- nsalibselinux/src/audit2why.c 2008-06-12 23:25:14.000000000 -0400 ++++ libselinux-2.0.67/src/audit2why.c 2008-07-09 16:52:33.000000000 -0400 +@@ -55,7 +55,7 @@ + return 0; + } + +-static int check_booleans(struct avc_t *avc, struct boolean_t **bools) ++static int check_booleans(struct boolean_t **bools) + { + char errormsg[PATH_MAX]; + struct sepol_av_decision avd; +@@ -376,7 +376,7 @@ + avc->tsid = tsid; + avc->tclass = tclass; + avc->av = av; +- if (check_booleans(avc, &bools) == 0) { ++ if (check_booleans(&bools) == 0) { + if (av & ~avd.auditdeny) { + RETURN(DONTAUDIT) + } else { +@@ -390,15 +390,15 @@ + len++; b++; + } + b = bools; +- PyObject *boollist = PyTuple_New(len); ++ PyObject *outboollist = PyTuple_New(len); + len=0; + while(b->name) { + PyObject *bool = Py_BuildValue("(si)", b->name, b->active); +- PyTuple_SetItem(boollist, len++, bool); ++ PyTuple_SetItem(outboollist, len++, bool); + b++; + } + free(bools); +- PyTuple_SetItem(result, 1, boollist); ++ PyTuple_SetItem(result, 1, outboollist); + return result; + } + } +diff --exclude-from=exclude -N -u -r nsalibselinux/src/matchpathcon.c libselinux-2.0.67/src/matchpathcon.c +--- nsalibselinux/src/matchpathcon.c 2008-06-12 23:25:14.000000000 -0400 ++++ libselinux-2.0.67/src/matchpathcon.c 2008-07-09 16:52:33.000000000 -0400 +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + #include "selinux_internal.h" + #include "label_internal.h" + #include "callbacks.h" +@@ -57,7 +58,7 @@ + { + va_list ap; + va_start(ap, fmt); +- vfprintf(stderr, fmt, ap); ++ vsyslog(LOG_ERR, fmt, ap); + va_end(ap); + } + +diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_ruby.i libselinux-2.0.67/src/selinuxswig_ruby.i +--- nsalibselinux/src/selinuxswig_ruby.i 1969-12-31 19:00:00.000000000 -0500 ++++ libselinux-2.0.67/src/selinuxswig_ruby.i 2008-07-09 16:52:33.000000000 -0400 +@@ -0,0 +1,147 @@ ++/* Author: James Athey ++ */ ++ ++%module selinux ++%{ ++ #include "selinux/selinux.h" ++%} ++ ++/* security_get_boolean_names() typemap */ ++/* ++%typemap(argout) (char ***names, int *len) { ++ PyObject* list = PyList_New(*$2); ++ int i; ++ for (i = 0; i < *$2; i++) { ++ PyList_SetItem(list, i, PyString_FromString((*$1)[i])); ++ } ++ $result = SWIG_Python_AppendOutput($result, list); ++} ++*/ ++/* return a sid along with the result */ ++%typemap(argout) (security_id_t * sid) { ++ if (*$1) { ++ %append_output(SWIG_NewPointerObj(*$1, $descriptor(security_id_t), 0)); ++ } ++/* else { ++ Py_INCREF(Py_None); ++ %append_output(Py_None); ++ } ++*/ ++} ++ ++%typemap(in,numinputs=0) security_id_t *(security_id_t temp) { ++ $1 = &temp; ++} ++ ++/* Makes security_compute_user() return a Python list of contexts */ ++/* ++%typemap(argout) (security_context_t **con) { ++ PyObject* plist; ++ int i, len = 0; ++ ++ if (*$1) { ++ while((*$1)[len]) ++ len++; ++ plist = PyList_New(len); ++ for (i = 0; i < len; i++) { ++ PyList_SetItem(plist, i, PyString_FromString((*$1)[i])); ++ } ++ } else { ++ plist = PyList_New(0); ++ } ++ ++ $result = SWIG_Python_AppendOutput($result, plist); ++} ++*/ ++/* Makes functions in get_context_list.h return a Python list of contexts */ ++ ++#ifdef fixme ++%typemap(argout) (security_context_t **list) { ++ PyObject* plist; ++ int i; ++ ++ if (*$1) { ++ plist = PyList_New(result); ++ for (i = 0; i < result; i++) { ++ PyList_SetItem(plist, i, PyString_FromString((*$1)[i])); ++ } ++ } else { ++ plist = PyList_New(0); ++ } ++ /* Only return the Python list, don't need to return the length anymore */ ++ $result = plist; ++} ++#endif ++ ++%typemap(in,noblock=1,numinputs=0) security_context_t * (security_context_t temp = 0) { ++ $1 = &temp; ++} ++%typemap(freearg,match="in") security_context_t * ""; ++%typemap(argout,noblock=1) security_context_t * { ++ if (*$1) { ++ %append_output(SWIG_FromCharPtr(*$1)); ++ freecon(*$1); ++ } ++/* ++ else { ++ Py_INCREF(Py_None); ++ %append_output(Py_None); ++ } ++*/ ++} ++ ++%typemap(in,noblock=1,numinputs=0) char ** (char * temp = 0) { ++ $1 = &temp; ++} ++%typemap(freearg,match="in") char ** ""; ++%typemap(argout,noblock=1) char ** { ++ if (*$1) { ++ %append_output(SWIG_FromCharPtr(*$1)); ++ free(*$1); ++ } ++/* ++ else { ++ Py_INCREF(Py_None); ++ %append_output(Py_None); ++ } ++*/ ++} ++/* ++%typemap(in) char * const [] { ++ int i, size; ++ PyObject * s; ++ ++ if (!PySequence_Check($input)) { ++ PyErr_SetString(PyExc_ValueError, "Expected a sequence"); ++ return NULL; ++ } ++ ++ size = PySequence_Size($input); ++ ++ $1 = (char**) malloc(size + 1); ++ for(i = 0; i < size; i++) { ++ if (!PyString_Check(PySequence_GetItem($input, i))) { ++ PyErr_SetString(PyExc_ValueError, "Sequence must contain only strings"); ++ return NULL; ++ } ++ } ++ ++ for(i = 0; i < size; i++) { ++ s = PySequence_GetItem($input, i); ++ $1[i] = (char*) malloc(PyString_Size(s) + 1); ++ strcpy($1[i], PyString_AsString(s)); ++ } ++ $1[size] = NULL; ++} ++*/ ++ ++%typemap(freearg,match="in") char * const [] { ++ int i = 0; ++ while($1[i]) { ++ free($1[i]); ++ i++; ++ } ++ free($1); ++} ++ ++%include "selinuxswig.i" diff --git a/libselinux-2.0.67.tar.bz2 b/libselinux-2.0.67.tar.bz2 new file mode 100644 index 0000000..6146ab7 --- /dev/null +++ b/libselinux-2.0.67.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6044bb0e9531dfa21aa297b28fcef26df16c46f6d33b567942833524e96a92d +size 135165 diff --git a/libselinux.changes b/libselinux.changes new file mode 100644 index 0000000..652a2bc --- /dev/null +++ b/libselinux.changes @@ -0,0 +1,11 @@ +------------------------------------------------------------------- +Fri Aug 1 17:32:20 CEST 2008 - ro@suse.de + +- fix requires for debuginfo package + +------------------------------------------------------------------- +Tue Jul 15 16:26:31 CEST 2008 - prusnak@suse.cz + +- initial version 2.0.67 + * based on Fedora package by Dan Walsh + diff --git a/libselinux.spec b/libselinux.spec new file mode 100644 index 0000000..120aaff --- /dev/null +++ b/libselinux.spec @@ -0,0 +1,215 @@ +# +# spec file for package libselinux (Version 2.0.67) +# +# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +%define libsepol_ver 2.0.32 +BuildRequires: python-devel ruby-devel swig +BuildRequires: libsepol-devel >= %{libsepol_ver} + +Name: libselinux +Version: 2.0.67 +Release: 2 +Url: http://www.nsa.gov/selinux/ +License: GPL v2 only; Public Domain, Freeware +Group: System/Libraries +Summary: SELinux library and simple utilities +Source: %{name}-%{version}.tar.bz2 +Patch0: %{name}-%{version}-rhat.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%define debug_package_requires libselinux1 = %{version} + +%description +Security-enhanced Linux is a feature of the Linux® kernel and a number +of utilities with enhanced security functionality designed to add +mandatory access controls to Linux. The Security-enhanced Linux kernel +contains new architectural components originally developed to improve +the security of the Flask operating system. These architectural +components provide general support for the enforcement of many kinds of +mandatory access control policies, including those based on the +concepts of Type Enforcement®, Role-based Access Control, and +Multi-level Security. + +libselinux provides an API for SELinux applications to get and set +process and file security contexts and to obtain security policy +decisions. Required for any applications that use the SELinux API. + + + +%package -n libselinux1 +License: GPL v2 only; Public Domain, Freeware +Group: System/Libraries +Summary: SELinux library and simple utilities + +%description -n libselinux1 +Security-enhanced Linux is a feature of the Linux® kernel and a number +of utilities with enhanced security functionality designed to add +mandatory access controls to Linux. The Security-enhanced Linux kernel +contains new architectural components originally developed to improve +the security of the Flask operating system. These architectural +components provide general support for the enforcement of many kinds of +mandatory access control policies, including those based on the +concepts of Type Enforcement®, Role-based Access Control, and +Multi-level Security. + +libselinux provides an API for SELinux applications to get and set +process and file security contexts and to obtain security policy +decisions. Required for any applications that use the SELinux API. + + + +%package devel +License: GPL v2 only; Public Domain, Freeware +Summary: Development Include Files and Libraries for SELinux +Group: Development/Libraries/C and C++ +Requires: libselinux1 = %{version}-%{release} +Requires: libsepol-devel >= %{libsepol_ver} + +%description devel +Security-enhanced Linux is a patch of the Linux kernel and a number of +utilities with enhanced security functionality designed to add +mandatory access controls to Linux. The Security-enhanced Linux kernel +contains new architectural components originally developed to improve +the security of the Flask operating system. These architectural +components provide general support for the enforcement of many kinds of +mandatory access control policies, including those based on the +concepts of Type Enforcement®, Role-based Access Control, and +Multi-level Security. + +This package contains the header files and static libraries, which are +necessary to develop your own software using libselinux. + + + +%package -n python-selinux +License: Public Domain, Freeware +Summary: SELinux library and simple utilities +Group: System/Libraries +Requires: libselinux1 = %{version}-%{release} +Requires: python + +%description -n python-selinux +Security-enhanced Linux is a feature of the Linux® kernel and a number +of utilities with enhanced security functionality designed to add +mandatory access controls to Linux. The Security-enhanced Linux kernel +contains new architectural components originally developed to improve +the security of the Flask operating system. These architectural +components provide general support for the enforcement of many kinds of +mandatory access control policies, including those based on the +concepts of Type Enforcement®, Role-based Access Control, and +Multi-level Security. + +libselinux provides an API for SELinux applications to get and set +process and file security contexts and to obtain security policy +decisions. Required for any applications that use the SELinux API. + + + +%package -n ruby-selinux +License: Public Domain, Freeware +Summary: SELinux library and simple utilities +Group: System/Libraries +Requires: libselinux1 = %{version}-%{release} +Requires: ruby + +%description -n ruby-selinux +Security-enhanced Linux is a feature of the Linux® kernel and a number +of utilities with enhanced security functionality designed to add +mandatory access controls to Linux. The Security-enhanced Linux kernel +contains new architectural components originally developed to improve +the security of the Flask operating system. These architectural +components provide general support for the enforcement of many kinds of +mandatory access control policies, including those based on the +concepts of Type Enforcement®, Role-based Access Control, and +Multi-level Security. + +libselinux provides an API for SELinux applications to get and set +process and file security contexts and to obtain security policy +decisions. Required for any applications that use the SELinux API. + + + +%prep +%setup -q +%patch0 -p1 + +%build +make %{?jobs:-j%jobs} LIBDIR="%{_libdir}" CFLAGS="$RPM_OPT_FLAGS" swigify +make %{?jobs:-j%jobs} LIBDIR="%{_libdir}" CFLAGS="$RPM_OPT_FLAGS" all pywrap + +%install +mkdir -p $RPM_BUILD_ROOT/%{_lib} +mkdir -p $RPM_BUILD_ROOT%{_libdir} +mkdir -p $RPM_BUILD_ROOT%{_includedir} +mkdir -p $RPM_BUILD_ROOT%{_sbindir} +mkdir -p $RPM_BUILD_ROOT/var/run/setrans +make DESTDIR="$RPM_BUILD_ROOT" LIBDIR="$RPM_BUILD_ROOT%{_libdir}" SHLIBDIR="$RPM_BUILD_ROOT/%{_lib}" BINDIR="$RPM_BUILD_ROOT%{_sbindir}" install install-pywrap +rm -f $RPM_BUILD_ROOT%{_sbindir}/compute_* +rm -f $RPM_BUILD_ROOT%{_sbindir}/deftype +rm -f $RPM_BUILD_ROOT%{_sbindir}/execcon +rm -f $RPM_BUILD_ROOT%{_sbindir}/getenforcemode +rm -f $RPM_BUILD_ROOT%{_sbindir}/getfilecon +rm -f $RPM_BUILD_ROOT%{_sbindir}/getpidcon +rm -f $RPM_BUILD_ROOT%{_sbindir}/mkdircon +rm -f $RPM_BUILD_ROOT%{_sbindir}/policyvers +rm -f $RPM_BUILD_ROOT%{_sbindir}/setfilecon +rm -f $RPM_BUILD_ROOT%{_sbindir}/selinuxconfig +rm -f $RPM_BUILD_ROOT%{_sbindir}/selinuxdisable +rm -f $RPM_BUILD_ROOT%{_sbindir}/getseuser +rm -f $RPM_BUILD_ROOT%{_sbindir}/selinux_check_securetty_context +mv $RPM_BUILD_ROOT%{_sbindir}/getdefaultcon $RPM_BUILD_ROOT%{_sbindir}/selinuxdefcon +mv $RPM_BUILD_ROOT%{_sbindir}/getconlist $RPM_BUILD_ROOT%{_sbindir}/selinuxconlist + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -n libselinux1 -p /sbin/ldconfig + +%postun -n libselinux1 -p /sbin/ldconfig + +%files -n libselinux1 +%defattr(-,root,root,-) +/%{_lib}/libselinux.so.* +%{_sbindir}/avcstat +%{_sbindir}/getenforce +%{_sbindir}/getsebool +%{_sbindir}/matchpathcon +%{_sbindir}/selinuxconlist +%{_sbindir}/selinuxdefcon +%{_sbindir}/selinuxenabled +%{_sbindir}/setenforce +%{_sbindir}/togglesebool +%{_mandir}/man5/* +%{_mandir}/man8/* +/var/run/setrans + +%files devel +%defattr(-,root,root,-) +%{_libdir}/libselinux.so +%{_libdir}/libselinux.a +%dir %{_includedir}/selinux +%{_includedir}/selinux/* +%{_mandir}/man3/* + +%files -n python-selinux +%defattr(-,root,root,-) +%dir %{py_sitedir}/selinux +%{py_sitedir}/selinux/* + +%files -n ruby-selinux +%defattr(-,root,root,-) +%{_libdir}/ruby/site_ruby/%{rb_ver}/%{rb_arch}/selinux.so + +%changelog +* Fri Aug 01 2008 ro@suse.de +- fix requires for debuginfo package +* Tue Jul 15 2008 prusnak@suse.cz +- initial version 2.0.67 + * based on Fedora package by Dan Walsh diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4