DESCRIPTION = "Security manager and utilities" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327;beginline=3" inherit cmake # Out-of-tree build is broken ("sqlite3 .security-manager.db <db.sql" where db.sql is in $S/db). B = "${S}" DEPENDS = " \ attr \ boost \ cynara \ icu \ libcap \ smack \ sqlite3 \ sqlite3-native \ systemd \ " PACKAGECONFIG ??= "" PACKAGECONFIG[debug] = "-DCMAKE_BUILD_TYPE=DEBUG,-DCMAKE_BUILD_TYPE=RELEASE" TZ_SYS_DB = "/var/local/db/security-manager" EXTRA_OECMAKE = " \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DVERSION=${PV} \ -DSYSTEMD_INSTALL_DIR=${systemd_unitdir}/system \ -DBIN_INSTALL_DIR=${bindir} \ -DDB_INSTALL_DIR=${TZ_SYS_DB} \ -DLIB_INSTALL_DIR=${libdir} \ -DSHARE_INSTALL_PREFIX=${datadir} \ -DINCLUDE_INSTALL_DIR=${includedir} \ " inherit systemd SYSTEMD_SERVICE_${PN} = "security-manager.service" inherit distro_features_check REQUIRED_DISTRO_FEATURES += "smack" # The upstream source code contains the Tizen-specific policy configuration files. # To replace them, create a security-manager.bbappend and set the following variable to a # space-separated list of policy file names (not URIs!), for example: # SECURITY_MANAGER_POLICY = "privilege-group.list usertype-system.profile" # # Leave it empty to use the upstream Tizen policy. SECURITY_MANAGER_POLICY ?= "" SRC_URI_append = " ${@' '.join(['file://' + x for x in d.getVar('SECURITY_MANAGER_POLICY', True).split()])}" python do_patch_append () { import os import shutil import glob files = d.getVar('SECURITY_MANAGER_POLICY', True).split() if files: s = d.getVar('S', True) workdir = d.getVar('WORKDIR', True) for pattern in ['*.profile', '*.list']: for old_file in glob.glob(s + '/policy/' + pattern): os.unlink(old_file) for file in files: shutil.copy(file, s + '/policy') } do_install_append () { install -d ${D}/${systemd_unitdir}/system/multi-user.target.wants ln -s ../security-manager.service ${D}/${systemd_unitdir}/system/multi-user.target.wants/security-manager.service install -d ${D}/${systemd_unitdir}/system/sockets.target.wants ln -s ../security-manager.socket ${D}/${systemd_unitdir}/system/sockets.target.wants/security-manager.socket } RDEPENDS_${PN} += "smack" pkg_postinst_${PN} () { set -e chsmack -a System $D${TZ_SYS_DB}/.security-manager.db chsmack -a System $D${TZ_SYS_DB}/.security-manager.db-journal } FILES_${PN} += " \ ${systemd_unitdir} \ ${TZ_SYS_DB} \ " PACKAGES =+ "${PN}-policy" FILES_${PN}-policy = " \ ${datadir}/${PN} \ ${bindir}/security-manager-policy-reload \ " RDEPENDS_${PN}-policy += "sqlite3 cynara" pkg_postinst_${PN}-policy () { if [ x"$D" = "x" ] && ${bindir}/security-manager-policy-reload; then exit 0 else exit 1 fi }