diff options
Diffstat (limited to 'meta-app-framework')
48 files changed, 319 insertions, 1221 deletions
diff --git a/meta-app-framework/LICENSE b/meta-app-framework/LICENSE deleted file mode 100644 index e8758f89c..000000000 --- a/meta-app-framework/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Different components of the AGL layers are under different licenses (a mix -of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further -details of the individual licenses. - -All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar) -is MIT licensed unless otherwise stated. -Source code included in tree for individual recipes (e.g. patches) are under -the LICENSE stated in the associated recipe (.bb file) unless otherwise stated. - -License information for any other files (scripts) is either explicitly stated -or defaults to GPL version 2 only. - -Individual files can contain the following style tags instead of the full -license text to identify their license: - - SPDX-License-Identifier: GPL-2.0-only - SPDX-License-Identifier: MIT - -This enables machine processing of license information based on the SPDX -License Identifiers that are here available: http://spdx.org/licenses/ diff --git a/meta-app-framework/LICENSE.GPL-2.0-only b/meta-app-framework/LICENSE.GPL-2.0-only deleted file mode 100644 index 5db3c0a21..000000000 --- a/meta-app-framework/LICENSE.GPL-2.0-only +++ /dev/null @@ -1,288 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - -Note: -Individual files contain the following tag instead of the full license text. - - SPDX-License-Identifier: GPL-2.0-only - -This enables machine processing of license information based on the SPDX -License Identifiers that are here available: http://spdx.org/licenses/ diff --git a/meta-app-framework/LICENSE.MIT b/meta-app-framework/LICENSE.MIT deleted file mode 100644 index a6919eb7e..000000000 --- a/meta-app-framework/LICENSE.MIT +++ /dev/null @@ -1,25 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Note: -Individual files contain the following tag instead of the full license text. - - SPDX-License-Identifier: MIT - -This enables machine processing of license information based on the SPDX -License Identifiers that are here available: http://spdx.org/licenses/ diff --git a/meta-app-framework/README b/meta-app-framework/README new file mode 120000 index 000000000..4a7a1a175 --- /dev/null +++ b/meta-app-framework/README @@ -0,0 +1 @@ +README-AGL.md
\ No newline at end of file diff --git a/meta-app-framework/README-AGL.md b/meta-app-framework/README-AGL.md new file mode 100644 index 000000000..bd0c2de8f --- /dev/null +++ b/meta-app-framework/README-AGL.md @@ -0,0 +1,31 @@ +Overview +======== + +The +[AGL Project](https://www.automotivelinux.org/) is an automotive-specific +development environment that provides a Linux distribution +[AGL UCB](https://www.automotivelinux.org/software/unified-code-base). + +AGL uses layers designed to be compatible with the +[Yocto Project](https://www.yoctoproject.org) and the +[OpenEmbedded Project (OE)](https://www.openembedded.org/wiki/Main_Page). + +This section provides information about the layers used by the AGL Project: + +* **`meta-agl/meta-app-framework`**: Application (lifecycle) manager + + ``` + $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl + ``` + +Maintenance +----------- + +All patches must be submitted via the AGL Gerrit instance at +<https://gerrit.automotivelinux.org>. See this wiki page for +details: + +<https://wiki.automotivelinux.org/agl-distro/contributing> + +Layer maintainers: +* Jan-Simon Möller <jsmoeller@linuxfoundation.org> diff --git a/meta-app-framework/classes/agl-app.bbclass b/meta-app-framework/classes/agl-app.bbclass new file mode 100644 index 000000000..491a36e02 --- /dev/null +++ b/meta-app-framework/classes/agl-app.bbclass @@ -0,0 +1,83 @@ +# +# AGL application systemd unit installation class +# + +# Systemd template unit +# * agl-app, agl-app-web, agl-app-flutter valid +AGL_APP_TEMPLATE ?= "agl-app" + +# Application ID +# This is what the application will be referred to in the list +# exposed to clients by applaunchd, and generally ends up as the +# identifier used by agl-compositor for application surface +# activation. +AGL_APP_ID ?= "${BPN}" + +# Application display name +AGL_APP_NAME ?= "${AGL_APP_ID}" + +# Application executable +# * agl-app template only +# Use if the application ID and the executable name are both +# different from the package name and each other as well. +AGL_APP_EXEC ?= "${AGL_APP_ID}" + +# Web application bundle directory (non-absolute, so directory +# name under /usr/lib/wam_apps) +# * agl-app-web template only +# Use if the web application bundle installs to a directory that +# is not the same as the package name. +AGL_APP_WAM_DIR ?= "${BPN}" + +do_install:append () { + install -d ${D}${systemd_system_unitdir} + ln -s ${AGL_APP_TEMPLATE}\@.service \ + ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service + + # NOTE: Unit & Service changes could potentially be collected + # and a single override .conf created, but things will be + # kept simple for now. + + if [ "${AGL_APP_EXEC}" != "${AGL_APP_ID}" ]; then + install -d ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service.d + cat <<-EOF > ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service.d/exec.conf + [Service] + ExecStart= + ExecStart=${AGL_APP_EXEC} + EOF + fi + + if [ "${AGL_APP_NAME}" != "${AGL_APP_ID}" ]; then + install -d ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service.d + cat <<-EOF > ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service.d/name.conf + [Unit] + Description= + Description=${AGL_APP_NAME} + EOF + fi + + if [ "${AGL_APP_TEMPLATE}" = "agl-app-web" -a "${AGL_APP_ID}" != "${BPN}" ]; then + # The application ID does not necessarily match the package name + # used in the WAM install hierarchy, and the IDs are hard-coded in + # some of the web apps, so if necessary create an override for the + # environment variable used in place of directly deriving from %i + # (which will always be the app id). + install -d ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service.d + cat <<-EOF > ${D}${systemd_system_unitdir}/${AGL_APP_TEMPLATE}\@${AGL_APP_ID}.service.d/wam.conf + [Service] + Environment=AGL_APP_WAM_DIR=${AGL_APP_WAM_DIR} + EOF + fi + + if [ "${AGL_APP_TEMPLATE}" = "agl-app-flutter" ]; then + # Install icon if present + if [ -f ${S}/package/${AGL_APP_ID}.svg ]; then + install -d ${D}${datadir}/icons/hicolor/scalable + install -m 0644 ${S}/package/${AGL_APP_ID}.svg ${D}${datadir}/icons/hicolor/scalable/ + fi + fi +} + +FILES:${PN}:append = " ${systemd_system_unitdir} ${datadir}/icons" + +RDEPENDS:${PN}:append = " applaunchd-template-${AGL_APP_TEMPLATE}" diff --git a/meta-app-framework/classes/aglwgt.bbclass b/meta-app-framework/classes/aglwgt.bbclass deleted file mode 100644 index 00d3f9744..000000000 --- a/meta-app-framework/classes/aglwgt.bbclass +++ /dev/null @@ -1,185 +0,0 @@ -# -# aglwgt bbclass -# -# Jan-Simon Moeller, jsmoeller@linuxfoundation.org -# -# This class expects a "make package" target in the makefile -# which creates the wgt files in the package/ subfolder. -# The makefile needs to use wgtpkg-pack. -# - -# 'wgtpkg-pack' in af-main-native is required. -DEPENDS_append = " af-main-native" - -# for bindings af-binder is required. -DEPENDS_append = " af-binder" - -# for bindings that use the cmake-apps-module -DEPENDS_append = " cmake-apps-module-native" - -# for hal bindings genskel is required. -DEPENDS_append = " af-binder-devtools-native" - -# Re-enable strip for qmake based projects (default value is "echo") -OE_QMAKE_STRIP = "${STRIP}" - -# Extra build arguments passed to the autobuild script invocations -AGLWGT_EXTRA_BUILD_ARGS ?= 'VERBOSE=TRUE BUILD_ARGS="${PARALLEL_MAKE}"' - -# CMake based widgets that inherit cmake.bbclass will have the -# following automatically appended to AGLWGT_EXTRA_BUILD_ARGS as -# the value of CONFIGURE_FLAGS. This definition may need to be -# extended to include more of what is passed in cmake.bbclass's -# do_configure if it is found insufficient. Using the generated -# toolchain.cmake file does fix issues with respect to finding the -# Qt5 CMake modules that seem difficult to fix otherwise, so at the -# very minimum it should be present. -AGLWGT_CMAKE_CONFIGURE_ARGS ?= "-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake ${EXTRA_OECMAKE}" - -# Only widgets with recipe names starting with agl-service- are -# assumed to have tests by default, set this to "1" to force -# building/packaging of the test widget for other widgets. -AGLWGT_HAVE_TESTS ?= "0" - -# Whether the widget should be auto-installed on first boot -AGLWGT_AUTOINSTALL ?= "1" - -# Signature keys -# These are default keys for development purposes ! -# Change it for production. -WGTPKG_AUTOSIGN_0_agl-sign-wgts ??= "${WORKDIR}/recipe-sysroot-native/usr/share/afm/keys/developer.key.pem:${WORKDIR}/recipe-sysroot-native/usr/share/afm/certs/developer.cert.pem" -WGTPKG_AUTOSIGN_1_agl-sign-wgts ??= "${WORKDIR}/recipe-sysroot-native/usr/share/afm/keys/platform.key.pem:${WORKDIR}/recipe-sysroot-native/usr/share/afm/certs/platform.cert.pem" - -export WGTPKG_AUTOSIGN_0 -export WGTPKG_AUTOSIGN_1 - -python __anonymous () { - # NOTE: AGLWGT_CMAKE_CONFIGURE_ARGS is not updated directly here, - # but via the prefunc below to avoid issues around anonymous - # python ordering conflicts with e.g. externalsrc.bbclass. - if bb.data.inherits_class("cmake", d): - d.appendVarFlag('do_compile', 'prefuncs', ' aglwgt_cmake_configure') -} - -python aglwgt_cmake_configure () { - # Define CONFIGURE_FLAGS appropriately if cmake.bbclass has been - # inherited, see description of AGLWGT_CMAKE_CONFIGURE_ARGS above - # for more details. - cmake_config_args = d.getVar("AGLWGT_CMAKE_CONFIGURE_ARGS") - if bb.data.inherits_class("cmake", d) and cmake_config_args: - d.appendVar("AGLWGT_EXTRA_BUILD_ARGS", ' CONFIGURE_ARGS="' + cmake_config_args + '"') - d.appendVarFlag("AGLWGT_EXTRA_BUILD_ARGS", "vardeps", " AGLWGT_CMAKE_CONFIGURE_ARGS") -} - -# Placeholder to keep things like externalsrc that prefunc or append -# do_configure working as expected. -aglwgt_do_configure() { - true -} - -aglwgt_do_compile() { - bldcmd=${S}/autobuild/agl/autobuild - if [ ! -x "$bldcmd" ]; then - bbfatal "Missing autobuild/agl/autobuild script" - fi - - if [ "${S}" != "${B}" ]; then - rm -rf ${B} - mkdir -p ${B} - cd ${B} - fi - - $bldcmd package BUILD_DIR=${B}/build-release ${AGLWGT_EXTRA_BUILD_ARGS} - $bldcmd package-debug BUILD_DIR_DEBUG=${B}/build-debug ${AGLWGT_EXTRA_BUILD_ARGS} - - if echo ${BPN} | grep -q '^agl-service-' || [ "${AGLWGT_HAVE_TESTS}" = "1" ]; then - # Only try building the test widget if there's source for it, to avoid spurious errors - if [ -f ${S}/test/CMakeLists.txt ]; then - $bldcmd package-test BUILD_DIR_TEST=${B}/build-test ${AGLWGT_EXTRA_BUILD_ARGS} - fi - - # The coverage widget should always build - $bldcmd package-coverage BUILD_DIR_COVERAGE=${B}/build-coverage ${AGLWGT_EXTRA_BUILD_ARGS} - fi -} - -POST_INSTALL_LEVEL ?= "10" -POST_INSTALL_SCRIPT ?= "${POST_INSTALL_LEVEL}-${PN}.sh" - -EXTRA_WGT_POSTINSTALL ?= "" - -aglwgt_do_install() { - DEST=release - if [ "${AGLWGT_AUTOINSTALL_${PN}}" = "0" ]; then - DEST=manualinstall - fi - - wgt="$(find ${B}/build-release -maxdepth 1 -name '*.wgt'| head -n 1)" - if [ -n "$wgt" ]; then - install -d ${D}/usr/AGL/apps/$DEST - install -m 0644 $wgt ${D}/usr/AGL/apps/$DEST/ - else - bbfatal "no package found in widget directory" - fi - - for t in debug coverage test; do - if [ "$(find ${B}/build-${t} -maxdepth 1 -name *-${t}.wgt)" ]; then - install -d ${D}/usr/AGL/apps/${t} - install -m 0644 ${B}/build-${t}/*-${t}.wgt ${D}/usr/AGL/apps/${t}/ - elif [ "$t" = "debug" ]; then - # HTML5 widgets complicate things here, need to detect them and - # not error out in that case. ATM this requires looking in the - # config.xml of the release widget. - rm -rf ${B}/tmp - unzip $wgt config.xml -d ${B}/tmp - if [ -f ${B}/tmp/config.xml -a \ - ! cat ${B}/tmp/config.xml | \ - grep -q '^[[:space:]]*<content[[:space:]]\+src="[^\"]*"[[:space:]]\+type="text/html"' ]; then - bbfatal "no package found in ${t} widget directory" - fi - rm -rf ${B}/tmp - elif echo ${BPN} | grep -q '^agl-service-' || [ "${AGLWGT_HAVE_TESTS}" = "1" ]; then - if [ "$t" = "coverage" -o -f ${S}/test/CMakeLists.txt ]; then - bbfatal "no package found in ${t} widget directory" - fi - fi - done - - if [ "${AGLWGT_AUTOINSTALL}" != "0" ]; then - # For now assume autoinstall of the release versions - rm -rf ${D}/usr/AGL/apps/autoinstall - ln -sf release ${D}/usr/AGL/apps/autoinstall - - APP_FILES="" - for file in ${D}/usr/AGL/apps/autoinstall/*.wgt; do - APP_FILES="${APP_FILES} $(basename $file)"; - done - install -d ${D}/${sysconfdir}/agl-postinsts - cat > ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} <<EOF -#!/bin/sh -e -for file in ${APP_FILES}; do - /usr/bin/afm-install install /usr/AGL/apps/autoinstall/\$file -done -sync -${EXTRA_WGT_POSTINSTALL} -EOF - chmod a+x ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} - fi -} - -PACKAGES += "${PN}-test ${PN}-debug ${PN}-coverage" - -FILES_${PN} += " \ - /usr/AGL/apps/release/*.wgt \ - /usr/AGL/apps/autoinstall \ - /usr/AGL/apps/manualinstall \ - ${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} \ -" -FILES_${PN}-test = "/usr/AGL/apps/test/*.wgt" -FILES_${PN}-debug = "/usr/AGL/apps/debug/*.wgt" -FILES_${PN}-coverage = "/usr/AGL/apps/coverage/*.wgt" - -# Test widgets need the parent widget and the test framework -RDEPENDS_${PN}-test = "${PN} afb-test" - -EXPORT_FUNCTIONS do_configure do_compile do_install diff --git a/meta-app-framework/conf/include/agl-app-framework.inc b/meta-app-framework/conf/include/agl-app-framework.inc new file mode 100644 index 000000000..296f49e79 --- /dev/null +++ b/meta-app-framework/conf/include/agl-app-framework.inc @@ -0,0 +1,2 @@ +# enable the layer +AGL_FEATURES:append = " agl-app-fw" diff --git a/meta-app-framework/conf/include/agl-appfw-smack.inc b/meta-app-framework/conf/include/agl-appfw-smack.inc deleted file mode 100644 index 139722402..000000000 --- a/meta-app-framework/conf/include/agl-appfw-smack.inc +++ /dev/null @@ -1,19 +0,0 @@ -# enable security features (smack, cynagora) - required by Application Framework -OVERRIDES .= ":with-lsm-smack" -DISTRO_FEATURES_append = " smack xattr" -DISTRO_FEATURES_NATIVE_append = " smack xattr" - -# use tar-native to support SMACK extended attributes independently of host config -IMAGE_CMD_TAR = "tar --xattrs --xattrs-include='*'" -do_image_tar[depends] += "tar-replacement-native:do_populate_sysroot" -EXTRANATIVEPATH += "tar-native" - -# security: enable ssh server in place of dropbear to support PAM on user sessions -IMAGE_FEATURES += "ssh-server-openssh" - -# enforce copy of xattrs (to be removed, see SPEC-475) -PACKAGECONFIG_append_pn-shadow = " attr" -PACKAGECONFIG_append_pn-shadow-native = " attr" - -# set the home directory for root -ROOT_HOME = "/home/0" diff --git a/meta-app-framework/conf/layer.conf b/meta-app-framework/conf/layer.conf index 21b8ee530..0fe82784b 100644 --- a/meta-app-framework/conf/layer.conf +++ b/meta-app-framework/conf/layer.conf @@ -5,8 +5,9 @@ BBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" -BBFILE_COLLECTIONS += "app-framework" -BBFILE_PATTERN_app-framework = "^${LAYERDIR}/" -BBFILE_PRIORITY_app-framework = "70" +BBFILE_COLLECTIONS += "meta-app-framework" +BBFILE_PATTERN_meta-app-framework = "^${LAYERDIR}/" +BBFILE_PRIORITY_meta-app-framework = "60" -LAYERSERIES_COMPAT_app-framework = "dunfell" +LAYERSERIES_COMPAT_meta-app-framework = "scarthgap" +LAYERDEPENDS_meta-app-framework = "core aglcore openembedded-layer" diff --git a/meta-app-framework/recipes-config/polkit-rule-agl-app/files/50-agl-app.rules b/meta-app-framework/recipes-config/polkit-rule-agl-app/files/50-agl-app.rules new file mode 100644 index 000000000..35b9559c5 --- /dev/null +++ b/meta-app-framework/recipes-config/polkit-rule-agl-app/files/50-agl-app.rules @@ -0,0 +1,7 @@ +polkit.addRule(function(action, subject) { + if (action.id == "org.freedesktop.systemd1.manage-units" && + action.lookup("unit").indexOf("agl-app") == 0 && + subject.isInGroup("applaunchd")) { + return polkit.Result.YES; + } +}); diff --git a/meta-app-framework/recipes-config/polkit-rule-agl-app/polkit-rule-agl-app.bb b/meta-app-framework/recipes-config/polkit-rule-agl-app/polkit-rule-agl-app.bb new file mode 100644 index 000000000..57dda7787 --- /dev/null +++ b/meta-app-framework/recipes-config/polkit-rule-agl-app/polkit-rule-agl-app.bb @@ -0,0 +1,21 @@ +SUMMARY = "Rule for agl-driver to control agl-app@ services" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "file://50-agl-app.rules" + +DEPENDS += "polkit" + +inherit useradd features_check +REQUIRED_DISTRO_FEATURES = "polkit" + +do_install() { + install -m 700 -d ${D}${datadir}/polkit-1/rules.d + chown polkitd:root ${D}/${datadir}/polkit-1/rules.d + install -m 0644 ${WORKDIR}/50-agl-app.rules ${D}${datadir}/polkit-1/rules.d +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} += "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;" + +FILES:${PN} += "${datadir}/polkit-1/rules.d/*.rules" diff --git a/meta-app-framework/recipes-core/af-binder/af-binder-devtools-native_git.bb b/meta-app-framework/recipes-core/af-binder/af-binder-devtools-native_git.bb deleted file mode 100644 index 70dafb38c..000000000 --- a/meta-app-framework/recipes-core/af-binder/af-binder-devtools-native_git.bb +++ /dev/null @@ -1,8 +0,0 @@ -require af-binder_${PV}.inc - -DEPENDS = "json-c-native" - -inherit cmake pkgconfig native - -EXTRA_OECMAKE_append = " -DONLY_DEVTOOLS=TRUE" - diff --git a/meta-app-framework/recipes-core/af-binder/af-binder_git.bb b/meta-app-framework/recipes-core/af-binder/af-binder_git.bb deleted file mode 100644 index cf20e25a1..000000000 --- a/meta-app-framework/recipes-core/af-binder/af-binder_git.bb +++ /dev/null @@ -1,117 +0,0 @@ -require af-binder_${PV}.inc - -DEPENDS = "file json-c libmicrohttpd systemd util-linux openssl cynara" - -inherit cmake pkgconfig - -EXTRA_OECMAKE_append_class-target = "\ - -DUNITDIR_SYSTEM=${systemd_system_unitdir} \ -" - -EXTRA_OECMAKE_append_agl-devel = " \ - -DAGL_DEVEL=ON \ - -DINCLUDE_MONITORING=ON \ - -DINCLUDE_SUPERVISOR=ON -DAFS_SUPERVISION_SOCKET=/run/platform/supervisor \ -" - -pkg_postinst_${PN}() { - mkdir -p "$D${libdir}/afb" -} - -do_install_append_agl-devel_class-target() { - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d -m 0755 ${D}${systemd_system_unitdir}/multi-user.target.wants - ln -s ../afm-api-supervisor.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-api-supervisor.service - fi -} - -############################################# -# main package -############################################# - -FILES_${PN}_append_agl-devel = " ${libdir}/afb/monitoring ${systemd_system_unitdir}" - -RDEPENDS_${PN}-dev += "libafbwsc-dev" - -############################################# -# intrinsic binding packages -############################################# -PACKAGES =+ "${PN}-intrinsic-bindings" -ALLOW_EMPTY_${PN}-intrinsic-bindings = "1" - -PACKAGES_DYNAMIC = "${PN}-binding-*" - -python populate_packages_prepend () { - afb_libdir = d.expand('${libdir}/afb') - postinst = d.getVar('binding_postinst', True) - pkgs = [] - - pkgs += do_split_packages(d, afb_libdir, '(.*)-api\.so$', d.expand('${PN}-binding-%s'), 'AFB binding for %s', postinst=postinst, extra_depends=d.expand('${PN}')) - pkgs += do_split_packages(d, afb_libdir, '(.*(?!-api))\.so$', d.expand('${PN}-binding-%s'), 'AFB binding for %s', postinst=postinst, extra_depends=d.expand('${PN}')) - - d.setVar('RDEPENDS_' + d.getVar('PN', True) + '-intrinsic-bindings', ' '.join(pkgs)) -} - -############################################# -# tool package -############################################# -PACKAGES =+ "${PN}-tools" - -FILES_${PN}-tools = "\ - ${bindir}/afb-client-demo \ -" - -############################################# -# setup libafbwsc package -############################################# -PACKAGES =+ "libafbwsc libafbwsc-dev" - -FILES_libafbwsc = "\ - ${libdir}/libafbwsc.so.* \ -" -FILES_libafbwsc-dev = "\ - ${includedir}/afb/afb-wsj1.h \ - ${includedir}/afb/afb-ws-client.h \ - ${libdir}/libafbwsc.so \ - ${libdir}/pkgconfig/libafbwsc.pc \ -" - -############################################# -# devtool package -############################################# -PACKAGES =+ "${PN}-devtools" - -FILES_${PN}-devtools = "\ - ${bindir}/afb-exprefs \ - ${bindir}/afb-json2c \ - ${bindir}/afb-genskel \ -" - -############################################# -# supervisor package -############################################# -PACKAGES_append_agl-devel = " ${PN}-supervisor " - -FILES_${PN}-supervisor_agl-devel = "\ - ${bindir}/afs-supervisor \ - ${systemd_system_unitdir} \ -" - -############################################# -# setup sample packages -############################################# -PACKAGES =+ "${PN}-samples" - -FILES_${PN}-samples = "\ - ${datadir}/af-binder \ -" - -############################################# -# meta package -############################################# -PACKAGES =+ "${PN}-meta" -ALLOW_EMPTY_${PN}-meta = "1" - -RDEPENDS_${PN}-meta += "${PN} ${PN}-tools libafbwsc ${PN}-intrinsic-bindings" -RDEPENDS_${PN}-meta_append_agl-devel = " ${PN}-supervisor " - diff --git a/meta-app-framework/recipes-core/af-binder/af-binder_git.inc b/meta-app-framework/recipes-core/af-binder/af-binder_git.inc deleted file mode 100644 index fbaa47bc7..000000000 --- a/meta-app-framework/recipes-core/af-binder/af-binder_git.inc +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "HTTP REST interface to automotive backends for HTML5 UI support" -DESCRIPTION = "Automotive-Framework-Binder Daemon provides a HTTP REST \ -interface to various automotive-oriented bindings, \ -allowing HTML5 UIs to send platform-specific requests in a secure way." - -HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/app-framework-binder" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" - -SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/app-framework-binder;protocol=https;branch=${AGL_BRANCH}" - -SRCREV = "1b6249810b3ab2d0c7467355fa22fbf19ae4a725" -PV = "${AGL_BRANCH}+git${SRCPV}" - -S = "${WORKDIR}/git" - -CFLAGS_append_agl-devel = " -DAGL_DEVEL" - -EXTRA_OECMAKE_append = "\ - -DAGLVERSION=${AGLVERSION} \ -" - diff --git a/meta-app-framework/recipes-core/af-binder/nativesdk-af-binder-devtools_git.bb b/meta-app-framework/recipes-core/af-binder/nativesdk-af-binder-devtools_git.bb deleted file mode 100644 index 3223dd05d..000000000 --- a/meta-app-framework/recipes-core/af-binder/nativesdk-af-binder-devtools_git.bb +++ /dev/null @@ -1,8 +0,0 @@ -require af-binder_${PV}.inc - -DEPENDS = "nativesdk-json-c" - -inherit cmake pkgconfig nativesdk - -EXTRA_OECMAKE_append = " -DONLY_DEVTOOLS=TRUE" - diff --git a/meta-app-framework/recipes-core/af-main/af-main_git.bb b/meta-app-framework/recipes-core/af-main/af-main_git.bb deleted file mode 100644 index 917eaa414..000000000 --- a/meta-app-framework/recipes-core/af-main/af-main_git.bb +++ /dev/null @@ -1,122 +0,0 @@ -require af-main_${PV}.inc - -# NOTE: using libcap-native and setcap in install doesn't work -# NOTE: maybe setting afm_name to agl-framework is cleaner but has implications -# NOTE: there is a hack of security for using groups and dbus (to be checked) -# NOTE: using ZIP programs creates directories with mode 777 (very bad) - -inherit cmake pkgconfig useradd systemd -BBCLASSEXTEND = "native" - -SECTION = "base" - -DEPENDS = "openssl libxml2 xmlsec1 systemd libzip json-c systemd security-manager af-binder sed m4" -DEPENDS_class-native = "openssl libxml2 xmlsec1 libzip json-c" -RDEPENDS_${PN}_class-target += "af-binder-tools nss-localuser cynagoauth" - -PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native libcap-native" - -EXTRA_OECMAKE_append_class-native = "\ - -DUSE_LIBZIP=1 \ - -DUSE_SIMULATION=1 \ - -DUSE_SDK=1 \ - -DAGLVERSION=${AGLVERSION} \ - -Dafm_name=${afm_name} \ - -Dafm_confdir=${afm_confdir} \ - -Dafm_datadir=${afm_datadir} \ -" - -EXTRA_OECMAKE_append_class-target = "\ - -DUSE_LIBZIP=1 \ - -DUSE_SIMULATION=0 \ - -DUSE_SDK=0 \ - -DAGLVERSION=${AGLVERSION} \ - -Dafm_name=${afm_name} \ - -Dafm_confdir=${afm_confdir} \ - -Dafm_datadir=${afm_datadir} \ - -Dsystemd_units_root=${systemd_units_root} \ - -DUNITDIR_USER=${systemd_user_unitdir} \ - -DUNITDIR_SYSTEM=${systemd_system_unitdir} \ -" - -# ------------------------ WARNING WARNING WARNNING --------------------------- -# -# ATM (FF.rc2), forcing all apps to be signed is an issue when building without -# agl-devel feature. A workaround is to define ALLOW_NO_SIGNATURE=ON for all -# builds but this must be removed later. See SPEC-1614 for more details. -# -# A variable AGL_FORBID_UNSIGNED_APPS is introduced to enable/disable this -# workaround in local.conf and allow transition to signed apps: -# * forbid unsigned apps by setting: AGL_FORBID_UNSIGNED_APPS="1" -# * [DEFAULT] allow unsigned apps: do nothing (or set: AGL_FORBID_UNSIGNED_APPS="0") -AGL_FORBID_UNSIGNED_APPS ?= "0" -# -# WORKAROUND: -EXTRA_OECMAKE_append_agl-devel = " -DAGL_DEVEL=1" -EXTRA_OECMAKE_append = " ${@bb.utils.contains('AGL_FORBID_UNSIGNED_APPS','1','','-DALLOW_NO_SIGNATURE=ON', d)}" -# -# Correct version (IMPORTANT TODO: to be restored later): -#EXTRA_OECMAKE_append_agl-devel = " -DAGL_DEVEL=1 -DALLOW_NO_SIGNATURE=ON" -# -# ------------------------ WARNING WARNING WARNNING --------------------------- - - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --gid ${afm_name} --home-dir ${afm_datadir} ${afm_name}" -GROUPADD_PARAM_${PN} = "--system ${afm_name}" - -RDEPENDS_${PN}_append_with-lsm-smack = " smack bash" -DEPENDS_append_with-lsm-smack = " smack-native" - -do_install_append_class-target() { - install -d ${D}${bindir} - install -d -m 0775 ${D}${systemd_units_root}/system - install -d -m 0775 "${D}${systemd_units_root}/system/multi-user.target.wants" - install -d -m 0775 "${D}${systemd_units_root}/system/afm-user-session@.target.wants" - install -d -m 0775 ${D}${systemd_units_root}/user - install -d -m 0775 ${D}${systemd_units_root}/user/default.target.wants - install -d -m 0775 ${D}${systemd_units_root}/user/sockets.target.wants - install -d ${D}${afm_datadir}/applications - install -d ${D}${afm_datadir}/icons - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d -m 0755 ${D}${systemd_system_unitdir}/multi-user.target.wants - install -d -m 0755 ${D}${systemd_system_unitdir}/sockets.target.wants - ln -sf ../afm-system-setup.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-system-setup.service - ln -sf ../afm-system-daemon.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-system-daemon.service - ln -sf ../afm-system-daemon.socket ${D}${systemd_system_unitdir}/sockets.target.wants/afm-system-daemon.socket - fi -} - -pkg_postinst_ontarget_${PN}() { - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - chgrp ${afm_name} $D${systemd_units_root}/system - chgrp ${afm_name} $D${systemd_units_root}/system/afm-user-session@.target.wants - chgrp ${afm_name} $D${systemd_units_root}/user/default.target.wants - chgrp ${afm_name} $D${systemd_units_root}/user/sockets.target.wants - fi - chown ${afm_name}:${afm_name} $D${afm_datadir} - chown ${afm_name}:${afm_name} $D${afm_datadir}/applications - chown ${afm_name}:${afm_name} $D${afm_datadir}/icons -} - -pkg_postinst_ontarget_${PN}_append_with-lsm-smack() { - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - chsmack -a 'System::Shared' -t $D${systemd_units_root}/system - chsmack -a 'System::Shared' -t $D${systemd_units_root}/system/afm-user-session@.target.wants - chsmack -a 'System::Shared' -t $D${systemd_units_root}/user/default.target.wants - chsmack -a 'System::Shared' -t $D${systemd_units_root}/user/sockets.target.wants - fi - chsmack -a 'System::Shared' -t $D${afm_datadir} - chsmack -a 'System::Shared' -t $D${afm_datadir}/applications - chsmack -a 'System::Shared' -t $D${afm_datadir}/icons -} -FILES_${PN} += "${systemd_units_root}/* ${systemd_system_unitdir} ${systemd_user_unitdir}" -FILES_${PN}_append_agl-sign-wgts = " ${datadir}/afm" - -PACKAGES =+ "${PN}-binding ${PN}-binding-dbg" -FILES_${PN}-binding = " ${afb_binding_dir}/afm-main-binding.so " -FILES_${PN}-binding-dbg = " ${afb_binding_dir}/.debug/afm-main-binding.so " - -PACKAGES =+ "${PN}-tools ${PN}-tools-dbg" -FILES_${PN}-tools = "${bindir}/wgtpkg-*" -FILES_${PN}-tools-dbg = "${bindir}/.debug/wgtpkg-*" diff --git a/meta-app-framework/recipes-core/af-main/af-main_git.inc b/meta-app-framework/recipes-core/af-main/af-main_git.inc deleted file mode 100644 index 7eb94b23c..000000000 --- a/meta-app-framework/recipes-core/af-main/af-main_git.inc +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "AGL Framework Main part" -DESCRIPTION = "\ -This is a core framework component for managing \ -applications, widgets, and components. \ -" - -HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/app-framework-main" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" - -SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/app-framework-main;protocol=https;branch=${AGL_BRANCH}" - -SRCREV = "af8db35cc01c57b7d1d2e4fa7815df8c16f8454f" -PV = "${AGL_BRANCH}+git${SRCPV}" - -S = "${WORKDIR}/git" - -afm_name = "afm" -afm_confdir = "${sysconfdir}/${afm_name}" -afm_datadir = "/var/local/lib/${afm_name}" -afb_binding_dir = "${libdir}/afb" -systemd_units_root = "/var/local/lib/systemd" - -CFLAGS_append_agl-devel = " -DAGL_DEVEL" -# only install sample keys in agl-devel mode -# for production you need to deploy real keys -EXTRA_OECMAKE_append_agl-sign-wgts = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '-DINSTALL_SAMPLE_KEYS=ON', '-DINSTALL_SAMPLE_KEYS=OFF', d)}" - - - diff --git a/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb b/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb deleted file mode 100644 index 88ab4ae68..000000000 --- a/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb +++ /dev/null @@ -1,28 +0,0 @@ -require af-main_${PV}.inc - -inherit nativesdk cmake pkgconfig - -SECTION = "base" - -DEPENDS = "nativesdk-openssl nativesdk-libxml2 nativesdk-xmlsec1 nativesdk-libzip nativesdk-json-c" - -EXTRA_OECMAKE = "\ - -DUSE_LIBZIP=1 \ - -DUSE_SIMULATION=1 \ - -DUSE_SDK=1 \ - -DAGLVERSION=${AGLVERSION} \ - -Dafm_name=${afm_name} \ - -Dafm_confdir=${afm_confdir} \ - -Dafm_datadir=${afm_datadir} \ -" - -do_install_append() { - # remove unused .pc file we don't want to package - rm -rf ${D}/${libdir} -} - -PACKAGES = "${PN}-tools ${PN}-tools-dbg" -FILES_${PN}-tools = "${bindir}/wgtpkg-* ${afm_confdir}/*" -FILES_${PN}-tools_append_agl-sign-wgts = " ${datadir}/afm" -FILES_${PN}-tools-dbg = "${bindir}/.debug/wgtpkg-*" - diff --git a/meta-app-framework/recipes-core/af-platform-setup/af-platform-setup_1.0.bb b/meta-app-framework/recipes-core/af-platform-setup/af-platform-setup_1.0.bb deleted file mode 100644 index eb473cd14..000000000 --- a/meta-app-framework/recipes-core/af-platform-setup/af-platform-setup_1.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -HOMEPAGE = "here" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -SRC_URI = "file://udev-shared.conf" - -S = "${WORKDIR}" - -do_install() { - d=${D}${systemd_system_unitdir}/systemd-udevd.service.d - install -d $d - install -m 0644 ${S}/udev-shared.conf $d -} - -FILES_${PN} = "${systemd_system_unitdir}" diff --git a/meta-app-framework/recipes-core/af-platform-setup/files/udev-shared.conf b/meta-app-framework/recipes-core/af-platform-setup/files/udev-shared.conf deleted file mode 100644 index cce02bc58..000000000 --- a/meta-app-framework/recipes-core/af-platform-setup/files/udev-shared.conf +++ /dev/null @@ -1,4 +0,0 @@ -[Service] -ExecStartPre=/bin/mkdir -p /run/udev -ExecStartPre=/usr/bin/chsmack -r -a System::Shared -t /run/udev - diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app-flutter@.service b/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app-flutter@.service new file mode 100644 index 000000000..a9a2527e0 --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app-flutter@.service @@ -0,0 +1,12 @@ +[Unit] +Description=%I + +[Service] +Type=simple +User=agl-driver +Environment=FLUTTER_VERSION=3.3.7 +Environment=FLUTTER_RUNTIME=release +EnvironmentFile=-/etc/default/flutter +EnvironmentFile=-/etc/default/%I +Environment=XDG_RUNTIME_DIR=/run/user/1001/ +ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/%I/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --xdg-shell-app-id=%I diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app-web@.service b/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app-web@.service new file mode 100644 index 000000000..e0353b6ae --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app-web@.service @@ -0,0 +1,11 @@ +[Unit] +Description=%I + +[Service] +Type=simple +User=agl-driver +EnvironmentFile=-/etc/default/WebAppMgr.env +Environment=XDG_RUNTIME_DIR=/run/user/1001/ +Environment=AGL_APP_WAM_DIR=%I +ExecStart=/usr/bin/WebAppMgrCli --appid=%I --app-install-dir=/usr/lib/wam_apps/${AGL_APP_WAM_DIR}/ + diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app@.service b/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app@.service new file mode 100644 index 000000000..234348846 --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd/agl-app@.service @@ -0,0 +1,8 @@ +[Unit] +Description=%I + +[Service] +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001/ +ExecStart=%i diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd/applaunchd.service b/meta-app-framework/recipes-core/applaunchd/applaunchd/applaunchd.service new file mode 100644 index 000000000..73d36bd0c --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd/applaunchd.service @@ -0,0 +1,13 @@ +[Unit] +Wants=network.target polkit.service +After=network.target polkit.service + +[Service] +Type=notify +User=applaunchd +Environment=XDG_DATA_DIRS=/usr/share +ExecStart=/usr/bin/applaunchd +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd/no-network.conf b/meta-app-framework/recipes-core/applaunchd/applaunchd/no-network.conf new file mode 100644 index 000000000..c7c4f8a31 --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd/no-network.conf @@ -0,0 +1,2 @@ +[Service] +PrivateNetwork=true diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd/private-tmp.conf b/meta-app-framework/recipes-core/applaunchd/applaunchd/private-tmp.conf new file mode 100644 index 000000000..0bdba7c99 --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd/private-tmp.conf @@ -0,0 +1,2 @@ +[Service] +PrivateTmp=yes diff --git a/meta-app-framework/recipes-core/applaunchd/applaunchd_git.bb b/meta-app-framework/recipes-core/applaunchd/applaunchd_git.bb new file mode 100644 index 000000000..c1bafad8e --- /dev/null +++ b/meta-app-framework/recipes-core/applaunchd/applaunchd_git.bb @@ -0,0 +1,78 @@ +SUMMARY = "AGL Application Launcher service" +DESCRIPTION = "AGL Application Launcher service build with recipe method" +HOMEPAGE = "https://git.automotivelinux.org/src/applaunchd" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" + +DEPENDS = " \ + glib-2.0 \ + glib-2.0-native \ + protobuf-native \ + grpc-native \ + grpc \ + systemd \ +" + +PV = "2.0+git${SRCPV}" + +SRC_URI = " \ + git://gerrit.automotivelinux.org/gerrit/src/applaunchd;protocol=https;branch=${AGL_BRANCH} \ + file://applaunchd.service \ + file://agl-app@.service \ + file://agl-app-web@.service \ + file://agl-app-flutter@.service \ + file://no-network.conf \ + file://private-tmp.conf \ +" +SRCREV = "c32fe42f40d0af8b31b6113a3140f52b83be7769" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd useradd features_check + +REQUIRED_DISTRO_FEATURES = "systemd polkit" + +USERADD_PACKAGES = "${PN}" +USERADDEXTENSION = "useradd-staticids" +GROUPADD_PARAM:${PN} = "-g 1003 applaunchd ; " +USERADD_PARAM:${PN} = "\ + -g 1003 -u 1003 -o -d / -K PASS_MAX_DAYS=-1 applaunchd ; \ +" + +SYSTEMD_SERVICE:${PN} = "applaunchd.service" + +do_install:append() { + # Install generic template for all agl-app services + install -d ${D}${systemd_system_unitdir} + install -m 644 ${WORKDIR}/applaunchd.service ${D}${systemd_system_unitdir}/ + install -m 644 ${WORKDIR}/agl-app@.service ${D}${systemd_system_unitdir}/ + install -m 644 ${WORKDIR}/agl-app-web@.service ${D}${systemd_system_unitdir}/ + install -m 644 ${WORKDIR}/agl-app-flutter@.service ${D}${systemd_system_unitdir}/ + + # Install individual sandboxing overrides/drop-ins to be used by apps + install -d ${D}${systemd_system_unitdir}/sandboxing + install -m 644 ${WORKDIR}/no-network.conf ${D}${systemd_system_unitdir}/sandboxing/ + install -m 644 ${WORKDIR}/private-tmp.conf ${D}${systemd_system_unitdir}/sandboxing/ +} + +PACKAGE_BEFORE_PN += "${PN}-template-agl-app ${PN}-template-agl-app-web ${PN}-template-agl-app-flutter" + +FILES:${PN} += "${systemd_system_unitdir}" + +FILES:${PN}-template-agl-app = "${systemd_system_unitdir}/agl-app@.service" + +FILES:${PN}-template-agl-app-web = "${systemd_system_unitdir}/agl-app-web@.service" + +FILES:${PN}-template-agl-app-flutter = "${systemd_system_unitdir}/agl-app-flutter@.service" + +RDEPENDS:${PN} += " \ + agl-users \ + polkit-rule-agl-app \ +" + +RDEPENDS:${PN}-template-agl-app = "${PN}" + +RDEPENDS:${PN}-template-agl-app-web = "${PN}" + +RDEPENDS:${PN}-template-agl-app-flutter = "${PN}" diff --git a/meta-app-framework/recipes-core/base-files/base-files_%.bbappend b/meta-app-framework/recipes-core/base-files/base-files_%.bbappend deleted file mode 100644 index 1dddcd6f2..000000000 --- a/meta-app-framework/recipes-core/base-files/base-files_%.bbappend +++ /dev/null @@ -1,32 +0,0 @@ -RDEPENDS_${PN}_append_with-lsm-smack = " smack" -PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native" - -do_install_append() { - install -m 0700 -d ${D}/${sysconfdir}/skel - chmod -R 0700 ${D}/${sysconfdir}/skel - install -m 0700 -d ${D}/${sysconfdir}/skel/app-data - install -m 0700 -d ${D}/${sysconfdir}/skel/.config - install -m 0755 -d ${D}/var - if [ -d ${D}/usr/local ]; then - mv ${D}/usr/local ${D}/var - else - install -m 0755 -d ${D}/var/local - fi - ln -s ../var/local ${D}/usr/local -} - -do_install_append_with-lsm-smack () { - install -d ${D}/${sysconfdir}/smack/accesses.d - cat > ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user <<EOF -System User::App-Shared rwxat -System User::Home rwxat -EOF - chmod 0644 ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user -} - -pkg_postinst_${PN}_append_with-lsm-smack() { - chsmack -r -a 'User::Home' -t -D $D/${sysconfdir}/skel - chsmack -a 'User::App-Shared' -D $D/${sysconfdir}/skel/app-data - cp -rTf --preserve=all $D/${sysconfdir}/skel $D/${ROOT_HOME} -} - diff --git a/meta-app-framework/recipes-core/nss-localuser/nss-localuser_0.1.bb b/meta-app-framework/recipes-core/nss-localuser/nss-localuser_0.1.bb deleted file mode 100644 index 45861f7cc..000000000 --- a/meta-app-framework/recipes-core/nss-localuser/nss-localuser_0.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Name Service Switch module for resolving the local user hostname" - -DESCRIPTION = "plugin for the GNU Name Service Switch (NSS) \ -functionality of the GNU C Library (`glibc`) providing host name \ -resolution for *"localuser"* family of virtual hostnames." - -HOMEPAGE = "https://git.automotivelinux.org/src/nss-localuser/" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=79ad77111c398994735201536a4749ba" - -SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/nss-localuser;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "66803c6fdb609ed83a78b9194ecb23e9c1b773e7" -PV = "${AGL_BRANCH}+git${SRCPV}" - -RDEPENDS_${PN} = "base-files" - -S = "${WORKDIR}/git" - -do_compile() { - make -} - -do_install() { - make nssdir=${D}${libdir} install -} - -pkg_postinst_ontarget_${PN} () { - sed -e '/^hosts:/s/\<localuser\>\s*//' \ - -e 's/\(^hosts:\s\s*\)\(.*\)/\1localuser \2/' \ - -i $D${sysconfdir}/nsswitch.conf -} - -pkg_prerm_${PN} () { - sed -e '/^hosts:/s/\<localuser\>\s*//' \ - -i $D${sysconfdir}/nsswitch.conf -} - -INSANE_SKIP_${PN} = "ldflags" diff --git a/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend deleted file mode 100644 index fc73e8f3d..000000000 --- a/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -RDEPENDS_${PN} =+ "nativesdk-af-main-tools nativesdk-af-binder-devtools" - diff --git a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb b/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb deleted file mode 100644 index 7ba909162..000000000 --- a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "AGL Application Framework examples" -DESCRIPTION = "The set of examples associated to the AGL Application Framework" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-app-framework-examples \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb b/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb deleted file mode 100644 index 854835d4c..000000000 --- a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "AGL Application Framework core packages" -DESCRIPTION = "The set of packages required by the AGL Application Framework" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-app-framework \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - af-binder \ - libafbwsc \ - af-main \ - nss-localuser \ - systemd-agl-sync \ - af-platform-setup \ - " diff --git a/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch b/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch deleted file mode 100644 index 4c91f7fa3..000000000 --- a/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 935e4e4e746b5ffcda80c80097dc75c2581c1a89 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh> -Date: Wed, 19 Oct 2016 13:45:54 +0200 -Subject: [PATCH] Adapt rules to AGL -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -AGL distribution uses the repository https://github.com/01org/meta-intel-iot-security.git -as basis for the integration of security framework. The security framework -that it provides is an evolution of the security framework of tizen refited -to the distribution Ostro of Intel. This refit took the decision to simplify -the model by removing the running label "User". More can be viewed here: -https://github.com/01org/meta-intel-iot-security/pull/116 - -This commits adapt the template to the rules that are now needed -after this evolution. - -It also integrates one other evolutions: the shared label becomes User::App-Shared instead -of User::App::Shared to avoid collision with application of id "Shared". - -Change-Id: Ieb566b63f8c8e691b5f75e06499a3b576d042546 -Signed-off-by: José Bollo <jose.bollo@iot.bzh> ---- - policy/app-rules-template.smack | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/policy/app-rules-template.smack b/policy/app-rules-template.smack -index 1311169..b4cd2e3 100644 ---- a/policy/app-rules-template.smack -+++ b/policy/app-rules-template.smack -@@ -1,12 +1,10 @@ --System ~APP~ rwx -+System ~APP~ rwxa -+System ~PKG~ rwxat - ~APP~ System wx - ~APP~ System::Shared rx - ~APP~ System::Run rwxat - ~APP~ System::Log rwxa - ~APP~ _ l --User ~APP~ rwxa --User ~PKG~ rwxat --~APP~ User wx - ~APP~ User::Home rxl --~APP~ User::App::Shared rwxat -+~APP~ User::App-Shared rwxat - ~APP~ ~PKG~ rwxat --- -2.7.4 - diff --git a/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend b/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend deleted file mode 100644 index 3306d4c72..000000000 --- a/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend +++ /dev/null @@ -1,7 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/security-manager:" - -EXTRA_OECMAKE =+ " -DGLOBALUSER=afm" -SRC_URI += " \ - file://0001-Adapt-rules-to-AGL.patch \ -" - diff --git a/meta-app-framework/recipes-core/shadow/shadow_%.bbappend b/meta-app-framework/recipes-core/shadow/shadow_%.bbappend deleted file mode 100644 index 4f594d47c..000000000 --- a/meta-app-framework/recipes-core/shadow/shadow_%.bbappend +++ /dev/null @@ -1,6 +0,0 @@ - -do_install_append() { - sed -i '/^UMASK/s:^.*$:UMASK 077:' ${D}${sysconfdir}/login.defs -} - - diff --git a/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb b/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb deleted file mode 100644 index 389ab2424..000000000 --- a/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Systemd synchronization script" -DESCRIPTION = "\ -Systemd synchronization script \ -reload daemon at the first boot. \ -" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -#This script should be the last to be execute at the first boot -POST_INSTALL_LEVEL = "X0" -POST_INSTALL_SCRIPT ?= "${POST_INSTALL_LEVEL}-${PN}.sh" - -do_install() { - install -d ${D}/${sysconfdir}/agl-postinsts - cat > ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} <<EOF -#!/bin/sh -e -echo "restart daemon ..." -result=0 -systemctl daemon-reload -if [ \$? -ne 0 ]; then - result=1 -fi -systemctl restart sockets.target -if [ \$? -ne 0 ]; then - result=1 -fi - -if [ \$result -eq 0 ]; then - echo "restart daemon OK" - exit \$result -else - echo "restart daemon failed" - exit \$result -fi -EOF - chmod a+x ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} -} - -FILES_${PN} = "${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT}" diff --git a/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend b/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend deleted file mode 100644 index 590ab708a..000000000 --- a/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend +++ /dev/null @@ -1 +0,0 @@ -SYSTEMD_SERVICE_AFTER_append = " afm-system-daemon.service" diff --git a/meta-app-framework/recipes-kernel/linux/linux-%.bbappend b/meta-app-framework/recipes-kernel/linux/linux-%.bbappend deleted file mode 100644 index fba5bf13d..000000000 --- a/meta-app-framework/recipes-kernel/linux/linux-%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux:" -SRC_URI_append_with-lsm-smack = " file://audit.cfg" - diff --git a/meta-app-framework/recipes-kernel/linux/linux/audit.cfg b/meta-app-framework/recipes-kernel/linux/linux/audit.cfg deleted file mode 100644 index 214dbe33f..000000000 --- a/meta-app-framework/recipes-kernel/linux/linux/audit.cfg +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_AUDIT=y -CONFIG_AUDITSYSCALL=y diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend deleted file mode 100644 index 8445a9edd..000000000 --- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend +++ /dev/null @@ -1,9 +0,0 @@ -RDEPENDS_${PN} += "\ - smack-system-setup \ - xmlsec1 \ - cynagora \ - security-manager \ - security-manager-policy \ - agl-users \ - " - diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend deleted file mode 100644 index ad09e5ddf..000000000 --- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RDEPENDS_${PN} += "\ - packagegroup-agl-app-framework \ - " diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend deleted file mode 100644 index ad09e5ddf..000000000 --- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RDEPENDS_${PN} += "\ - packagegroup-agl-app-framework \ - " diff --git a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend deleted file mode 100644 index 09820be2f..000000000 --- a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -# Disable nss to avoid build issues on native -PACKAGECONFIG = "gnutls libgcrypt openssl des" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-app-framework/recipes-support/libcap/libcap/removing-capability-enforcement.patch b/meta-app-framework/recipes-support/libcap/libcap/removing-capability-enforcement.patch deleted file mode 100644 index fa359fa87..000000000 --- a/meta-app-framework/recipes-support/libcap/libcap/removing-capability-enforcement.patch +++ /dev/null @@ -1,87 +0,0 @@ -From c34b2725817d4fd1fd6878bbb16617cb9e3e3a70 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh> -Date: Fri, 22 Jan 2016 16:23:59 +0100 -Subject: [PATCH] removing capability enforcement - -Signed-off-by: ronan <ronan@iot.bzh> - -Change-Id: Idb724192ceab176a611bbed45c0ebc9c8eb5dd30 ---- - progs/setcap.c | 45 +-------------------------------------------- - 1 file changed, 1 insertion(+), 44 deletions(-) - -diff --git a/progs/setcap.c b/progs/setcap.c -index 7304343..71999b6 100644 ---- a/progs/setcap.c -+++ b/progs/setcap.c -@@ -58,11 +58,9 @@ static int read_caps(int quiet, const char *filename, char *buffer) - - int main(int argc, char **argv) - { -- int tried_to_cap_setfcap = 0; - char buffer[MAXCAP+1]; - int retval, quiet=0, verify=0; - cap_t mycaps; -- cap_value_t capflag; - - if (argc < 3) { - usage(); -@@ -150,54 +148,13 @@ int main(int argc, char **argv) - printf("%s: OK\n", *argv); - } - } else { -- if (!tried_to_cap_setfcap) { -- capflag = CAP_SETFCAP; -- -- /* -- * Raise the effective CAP_SETFCAP. -- */ -- if (cap_set_flag(mycaps, CAP_EFFECTIVE, 1, &capflag, CAP_SET) -- != 0) { -- perror("unable to manipulate CAP_SETFCAP - " -- "try a newer libcap?"); -- exit(1); -- } -- if (cap_set_proc(mycaps) != 0) { -- perror("unable to set CAP_SETFCAP effective capability"); -- exit(1); -- } -- tried_to_cap_setfcap = 1; -- } - retval = cap_set_file(*++argv, cap_d); - if (retval != 0) { -- int explained = 0; - int oerrno = errno; --#ifdef linux -- cap_value_t cap; -- cap_flag_value_t per_state; -- -- for (cap = 0; -- cap_get_flag(cap_d, cap, CAP_PERMITTED, &per_state) != -1; -- cap++) { -- cap_flag_value_t inh_state, eff_state; -- -- cap_get_flag(cap_d, cap, CAP_INHERITABLE, &inh_state); -- cap_get_flag(cap_d, cap, CAP_EFFECTIVE, &eff_state); -- if ((inh_state | per_state) != eff_state) { -- fprintf(stderr, "NOTE: Under Linux, effective file capabilities must either be empty, or\n" -- " exactly match the union of selected permitted and inheritable bits.\n"); -- explained = 1; -- break; -- } -- } --#endif /* def linux */ -- - fprintf(stderr, - "Failed to set capabilities on file `%s' (%s)\n", - argv[0], strerror(oerrno)); -- if (!explained) { -- usage(); -- } -+ - } - } - if (cap_d) { --- -2.6.6 - diff --git a/meta-app-framework/recipes-support/libcap/libcap_%.bbappend b/meta-app-framework/recipes-support/libcap/libcap_%.bbappend deleted file mode 100644 index ac909a64c..000000000 --- a/meta-app-framework/recipes-support/libcap/libcap_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -FILESEXTRAPATHS_append_class-native := ":${THISDIR}/${PN}" -# FIXME: It needs to be determined if this is still required -#SRC_URI_append_class-native = " file://removing-capability-enforcement.patch" diff --git a/meta-app-framework/recipes-support/libzip/libzip_%.bbappend b/meta-app-framework/recipes-support/libzip/libzip_%.bbappend deleted file mode 100644 index 5174650b1..000000000 --- a/meta-app-framework/recipes-support/libzip/libzip_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -BBCLASSEXTEND += "native nativesdk" diff --git a/meta-app-framework/scripts/run-yocto-check-layer.sh b/meta-app-framework/scripts/run-yocto-check-layer.sh new file mode 100755 index 000000000..cbe35ed8d --- /dev/null +++ b/meta-app-framework/scripts/run-yocto-check-layer.sh @@ -0,0 +1,43 @@ +#!/bin/bash +#set -x + +SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )" +echo $SCRIPTPATH +AGLROOT="$SCRIPTPATH/../../.." +POKYDIR="$AGLROOT/external/poky" +TMPROOT=`mktemp -d` + +rm -rf ${TMPROOT}/testbuild-ycl || true +mkdir -p ${TMPROOT}/testbuild-ycl +cd ${TMPROOT}/testbuild-ycl + +source $POKYDIR/oe-init-build-env . + +cat << EOF >> conf/local.conf +# just define defaults +AGL_FEATURES ?= "" +AGL_EXTRA_IMAGE_FSTYPES ?= "" + +# important settings imported from poky-agl.conf +# we cannot import the distro config right away +# as the initial values are poky only till the layer +# is added in + +AGL_DEFAULT_DISTRO_FEATURES := "usrmerge largefile opengl wayland pam bluetooth bluez5 3g polkit" +DISTRO_FEATURES:append := " systemd wayland pam \${AGL_DEFAULT_DISTRO_FEATURES}" +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" +VIRTUAL-RUNTIME_init_manager = "systemd" + +EOF + +yocto-check-layer --no-auto-dependency \ + --dependency \ + $AGLROOT/meta-agl/meta-agl-core \ + $AGLROOT/external/meta-openembedded/meta-oe \ + -- \ + $AGLROOT/meta-agl/meta-app-framework + + +[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl + +exit 0 |