diff --git a/libsemanage-rhat.patch b/libsemanage-rhat.patch index a26233f..b86cfcf 100644 --- a/libsemanage-rhat.patch +++ b/libsemanage-rhat.patch @@ -1,13 +1,70 @@ ---- libsemanage-1.6.16/src/semanage_store.c~ 2006-08-23 13:57:48.000000000 -0400 -+++ libsemanage-1.6.16/src/semanage_store.c 2006-09-29 10:41:08.000000000 -0400 -@@ -1106,6 +1106,10 @@ - goto skip_reload; - } - } -+ else -+ if (errno == ENOENT && -+ strcmp(really_active_store, storepath) != 0) -+ goto skip_reload; +diff --exclude-from=exclude -N -u -r nsalibsemanage/src/direct_api.c libsemanage-1.9.1/src/direct_api.c +--- nsalibsemanage/src/direct_api.c 2006-11-16 17:14:02.000000000 -0500 ++++ libsemanage-1.9.1/src/direct_api.c 2006-12-22 11:36:55.000000000 -0500 +@@ -603,7 +603,8 @@ - if (semanage_reload_policy(sh)) { + /* Create new policy object, then attach to policy databases + * that work with a policydb */ +- if (semanage_expand_sandbox(sh, base, &out) < 0) ++ retval = semanage_expand_sandbox(sh, base, &out); ++ if (retval < 0) + goto cleanup; + + dbase_policydb_attach((dbase_policydb_t *) pusers_base->dbase, +@@ -615,13 +616,16 @@ + + /* ============= Apply changes, and verify =============== */ + +- if (semanage_base_merge_components(sh) < 0) ++ retval = semanage_base_merge_components(sh); ++ if (retval < 0) + goto cleanup; +- +- if (semanage_write_policydb(sh, out) < 0) ++ ++ retval = semanage_write_policydb(sh, out); ++ if (retval < 0) + goto cleanup; +- +- if (semanage_verify_kernel(sh) != 0) ++ ++ retval = semanage_verify_kernel(sh); ++ if (retval < 0) + goto cleanup; + } + +@@ -635,26 +639,30 @@ + * merged into the main file_contexts. We won't check the + * large file_contexts - checked at compile time */ + if (sh->do_rebuild || modified || fcontexts_modified) { +- if (semanage_fcontext_validate_local(sh, out) < 0) ++ retval = semanage_fcontext_validate_local(sh, out); ++ if (retval < 0) + goto cleanup; + } + + /* Validate local seusers against policy */ + if (sh->do_rebuild || modified || seusers_modified) { +- if (semanage_seuser_validate_local(sh, out) < 0) ++ retval = semanage_seuser_validate_local(sh, out); ++ if (retval < 0) + goto cleanup; + } + + /* Validate local ports for overlap */ + if (sh->do_rebuild || ports_modified) { +- if (semanage_port_validate_local(sh) < 0) ++ retval = semanage_port_validate_local(sh); ++ if (retval < 0) + goto cleanup; + } + + /* ================== Write non-policydb components ========= */ + + /* Commit changes to components */ +- if (semanage_commit_components(sh) < 0) ++ retval = semanage_commit_components(sh); ++ if (retval < 0) goto cleanup; + + retval = semanage_install_sandbox(sh); diff --git a/libsemanage.spec b/libsemanage.spec index 3ec9d36..ae1e1cf 100644 --- a/libsemanage.spec +++ b/libsemanage.spec @@ -3,10 +3,11 @@ Summary: SELinux binary policy manipulation library Name: libsemanage Version: 1.9.1 -Release: 2 +Release: 3%{?dist} License: GPL Group: System Environment/Libraries Source: http://www.nsa.gov/selinux/archives/libsemanage-%{version}.tgz +Patch: libsemanage-rhat.patch BuildRoot: %{_tmppath}/%{name}-buildroot BuildRequires: libselinux-devel >= %{libselinuxver} swig @@ -40,6 +41,7 @@ needed for developing applications that manipulate binary policies. %prep %setup -q +%patch -p1 -b .rhat %build make clean @@ -75,6 +77,9 @@ rm -rf ${RPM_BUILD_ROOT} %{_mandir}/man3/* %changelog +* Fri Dec 22 2006 Dan Walsh - 1.9.1-3 +- Apply Karl MacMillan patch to get proper error codes. + * Thu Dec 7 2006 Jeremy Katz - 1.9.1-2 - rebuild against python 2.5