#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

# selinux policy needed to run the qpidd service with clustering
# enabled and selinux in enforcing mode.
#
# To build the qpid.pp module in this directory do:
#   sudo make -f /usr/share/selinux/devel/Makefile
# To install the compiled qpidd.pp
#   sudo semodule -i qpidd.pp

policy_module(qpidd, 1.2)

gen_require(`
        type initrc_t;
        type ccs_t;
	class sem { write unix_read unix_write associate read destroy };
	class shm { unix_read write unix_write associate read destroy };
')

fs_rw_tmpfs_files(ccs_t)
allow ccs_t initrc_t:sem { read write unix_read unix_write associate destroy };
allow ccs_t initrc_t:shm { read write unix_read unix_write associate destroy };
allow ccs_t self:capability { ipc_owner dac_override };

optional_policy(`
	gen_require(`
		type aisexec_t;
	')
	allow aisexec_t initrc_t:sem { read write unix_read unix_write associate destroy };
	allow aisexec_t initrc_t:shm { read write unix_read unix_write associate destroy };
	allow aisexec_t self:capability { sys_admin ipc_owner dac_override };
')
