supported by Zeuner Solutions SourceForge.net Logo

documentation for the macro "simple_license"

This macro defines the basic types, roles, users and permissions to describe a license.

It is defined in the file licenses.m4.

m4 code:

define(`simple_license',
`factor_base($1)dnl
define(`$1_types',
$1_types
$1_creator_t
$1_t)dnl
add_permission($1_free_tX$1_tXfile,
getattr
relabelto)dnl
add_permission($1_free_tX$1_tXdir,relabelto)dnl
add_permission($1_tX$1_free_tXfilesystem,associate)dnl
add_permission($1_creator_tX$1_creator_tXcapability,
chown
dac_override
fowner
fsetid
ipc_owner
ipc_lock
kill
mknod
net_admin
net_bind_service
net_raw
setgid
setuid
sys_admin
sys_boot
sys_chroot
sys_module
sys_nice
sys_ptrace
sys_rawio
sys_resource
sys_time
sys_tty_config)dnl
add_permission($1_creator_tX$1_creator_tXchr_file,append)dnl
add_permission($1_creator_tX$1_creator_tXdir,
getattr
read
search)dnl
add_permission($1_creator_tX$1_creator_tXfd,
use)dnl
add_permission($1_creator_tX$1_creator_tXfile,
entrypoint
execute
getattr
read
relabelto
rename
write)dnl
add_permission($1_creator_tX$1_creator_tXkey,
create)dnl
add_permission($1_creator_tX$1_creator_tXlnk_file,
getattr
read)dnl
add_permission($1_creator_tX$1_creator_tXmsg,
receive
send)dnl
add_permission($1_creator_tX$1_creator_tXmsgq,
associate
create
destroy
enqueue
read
unix_read
unix_write
write)dnl
add_permission($1_creator_tX$1_creator_tXnetlink_kobject_uevent_socket,
bind
create
read)dnl
add_permission($1_creator_tX$1_creator_tXnetlink_route_socket,
bind
create
getattr
nlmsg_read
nlmsg_write
read
setopt
write)dnl
add_permission($1_creator_tX$1_creator_tXnetlink_selinux_socket,
bind
create
read)dnl
add_permission($1_creator_tX$1_creator_tXpacket_socket,
bind
create
getopt
ioctl
read
setopt
write)dnl
add_permission($1_creator_tX$1_creator_tXpasswd,rootok)dnl
add_permission($1_creator_tX$1_creator_tXprocess,
execmem
fork
getattr
getpgid
getsched
ptrace
setexec
setfscreate
setkeycreate
setpgid
setrlimit
setsched
sigchld
sigkill
signal
signull
transition)dnl
add_permission($1_creator_tX$1_creator_tXrawip_socket,
create
getopt
read
setopt
write)dnl
add_permission($1_creator_tX$1_creator_tXsem,
associate
create
destroy
read
setattr
unix_read
unix_write
write)dnl
add_permission($1_creator_tX$1_creator_tXshm,
associate
create
destroy
getattr
read
unix_read
unix_write
write)dnl
add_permission($1_creator_tX$1_creator_tXsock_file,unlink)dnl
add_permission($1_creator_tX$1_creator_tXsocket,
accept
bind
connect
create
getattr
getopt
ioctl
listen
read
setopt
write)dnl
add_permission($1_creator_tX$1_creator_tXtcp_socket,
accept
bind
connect
create
getattr
getopt
listen
read
setopt
shutdown
write)dnl
add_permission($1_creator_tX$1_creator_tXudp_socket,
bind
connect
create
getattr
ioctl
read
setopt
write)dnl
add_permission($1_creator_tX$1_creator_tXunix_dgram_socket,
bind
connect
create
read
sendto
write)dnl
add_permission($1_creator_tX$1_creator_tXunix_stream_socket,
accept
bind
connect
connectto
create
getattr
getopt
listen
read
setopt
shutdown
write)dnl
add_permission($1_creator_tX$1_tXdir,
add_name
create
getattr
read
remove_name
search
write)dnl
add_permission($1_creator_tX$1_tXfile,
create
getattr
read
rename
setattr
write)dnl
add_permission($1_creator_tX$1_free_tXfile,entrypoint)dnl
add_permission($1_free_tX$1_creator_tXdir,
getattr
search)dnl
add_permission($1_free_tX$1_creator_tXkey,
create)dnl
add_permission($1_free_tX$1_creator_tXprocess,transition)dnl
dnl
define(transitionsX$1_tX$1_free_tXprocess,$1_free_t)dnl
define(`$1_roles',
$1_roles
$1_r
$1_creator_r)dnl
define(role_typesX$1_r,$1_t)dnl
define(role_typesX$1_creator_r,$1_creator_t)dnl
allow_role_transitions($1_free_r,$1_creator_r)dnl
dnl
allow_role_transitions(patsubst($1_roles,`
',`)allow_role_transitions('))dnl
define(rolesX$1_u,$1_r)dnl
define(rolesX$1_creator_u,$1_creator_r)dnl
define(`drm_users',
patsubst(patsubst(notmember(`
$1_u
$1_creator_u
',patsubst(`drm_users',`
',`)notmember(`
$1_u
$1_creator_u
',')),`
$',)
$1_u
$1_creator_u,^
,))dnl
')