summaryrefslogtreecommitdiffstats
path: root/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass')
-rw-r--r--meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass32
1 files changed, 32 insertions, 0 deletions
diff --git a/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass b/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass
new file mode 100644
index 00000000..3170cc9c
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass
@@ -0,0 +1,32 @@
+pkg_postinst_ontarget_${PN}_append () {
+df / --exclude-type=nfs > /dev/null
+IS_EMMC_BOOT=$?
+
+if [ $IS_EMMC_BOOT -eq 0 ]; then
+ CAPVARS="${CAPABILITY}"
+ IFS=" "
+ for cap in $CAPVARS; do
+ capability=`echo $cap | cut -f 1 -d ":"`
+ file=`echo $cap | cut -f 2 -d ":"`
+ setcap $capability $D$file
+ done
+else
+ CAPVARS="${CAPABILITY}"
+ IFS=" "
+ for cap in $CAPVARS; do
+ capability=`echo $cap | cut -f 1 -d ":"`
+ file=`echo $cap | cut -f 2 -d ":"`
+ TCAP_NAME="/tmp/${file##*/}"
+ if [ ! -L ${file} ]; then
+ cp -a ${file} ${TCAP_NAME}
+ mv ${file} ${file}.org
+ ln -fs ${TCAP_NAME} ${file}
+ else
+ cp -a ${file}.org ${TCAP_NAME}
+ fi
+ setcap ${capability} ${TCAP_NAME}
+ done
+fi
+}
+#RDEPENDS_${PN} += "libcap-bin"
+PACKAGE_WRITE_DEPS = "libcap-native"