From 73efe9007c9834abf5b1202857867fd4c4186717 Mon Sep 17 00:00:00 2001 From: Youngsoo Choi Date: Mon, 15 Jun 2020 19:28:15 -0700 Subject: [PATCH] [UWE] Generate tpk file for upgradable WRTjs Once updated chromium-efl is selected in launching process, the corresponding WRTjs should be used to guarantee internal API compatibility between them. For that, the WRTjs tpk file needs to be prepared as per deployed chromium-efl version and target profile like below: * Public profile Note that the public profile has only one type of tpk. +----------------+---------------+-----------------------+ | Preloaded ver. | Deployed ver. | chromium-efl & WRTjs | +----------------+---------------+-----------------------+ | M76 | M76 or above | Use tpk path | +----------------+---------------+-----------------------+ * Product TV profile +----------------+---------------+-----------------------+ | Preloaded ver. | Deployed ver. | chromium-efl & WRTjs | +----------------+---------------+-----------------------+ | M76 | M76 (patch) | Use tpk path | +----------------+---------------+-----------------------+ | M76 | Above M76 | Use upgraded tpk path | +----------------+---------------+-----------------------+ * The WRTjs tpk path and build commands: {TZ_SYS_RO_APP}/org.tizen.wrtjs $ ./tizen/build/build_standard_armv7l.sh --use-tpk $ ./tizen/build/build_tv.sh --use-tpk * the upgraded WRTjs tpk path and build command, only for tv: {TZ_SYS_RO_APP}/org.tizen.wrtjs-upgrade $ ./tizen/build/build_tv.sh --use-tpk-upgrade * The generated tpk file will be located in below after the build: /PATH/TO/GBS-ROOT/local/BUILD-ROOTS/scratch.armv7l.0/tmp Change-Id: I8c57cbf101f2a495ea064d34548dc146c4dfe32a Signed-off-by: Youngsoo Choi --- packaging/org.tizen.wrtjs-vd.xml.in | 11 ++ packaging/org.tizen.wrtjs.xml.in | 10 ++ packaging/wrtjs.spec | 128 +++++++++++++++++++++--- tizen/build/build_tpk.sh | 44 ++++++++ tizen/build/common.sh | 13 +++ tizen/downloadable/vd_sign/author-signature.xml | 74 ++++++++++++++ tizen/downloadable/vd_sign/signature1.xml | 74 ++++++++++++++ wrtjs-debugsource.manifest | 5 + 8 files changed, 346 insertions(+), 13 deletions(-) create mode 100644 packaging/org.tizen.wrtjs-vd.xml.in create mode 100644 packaging/org.tizen.wrtjs.xml.in create mode 100755 tizen/build/build_tpk.sh create mode 100644 tizen/downloadable/vd_sign/author-signature.xml create mode 100644 tizen/downloadable/vd_sign/signature1.xml create mode 100644 wrtjs-debugsource.manifest diff --git a/packaging/org.tizen.wrtjs-vd.xml.in b/packaging/org.tizen.wrtjs-vd.xml.in new file mode 100644 index 0000000..d465582 --- /dev/null +++ b/packaging/org.tizen.wrtjs-vd.xml.in @@ -0,0 +1,11 @@ + + + + SamsungResearch + Tizen Web Runtine manages web applications. + T-INFOLINK2019-1000 + + + + + diff --git a/packaging/org.tizen.wrtjs.xml.in b/packaging/org.tizen.wrtjs.xml.in new file mode 100644 index 0000000..6590566 --- /dev/null +++ b/packaging/org.tizen.wrtjs.xml.in @@ -0,0 +1,10 @@ + + + + SamsungResearch + Tizen Web Runtine manages web applications. + + + + + diff --git a/packaging/wrtjs.spec b/packaging/wrtjs.spec index 7d748d4..0659467 100755 --- a/packaging/wrtjs.spec +++ b/packaging/wrtjs.spec @@ -12,19 +12,66 @@ Source: %{name}-%{version}.tar.gz BuildRequires: pkgconfig(chromium-efl) -%if "%{?tizen_profile_name}" != "tv" +%if "%{?profile}" != "tv" BuildRequires: ninja BuildRequires: pkgconfig(dlog) %endif +%if 0%{?_use_tpk} +%if "%{?profile}" == "tv" +BuildRequires: app-signer +%endif +BuildRequires: hash-signer, zip +BuildRequires: pkgconfig(libtzplatform-config) +%endif + %description Web Runtime Engine based on Electron +%define _tizen_version %{tizen_version_major}%{tizen_version_minor} +%define _pkgid org.tizen.%{name} +%if 0%{?_use_tpk} + # The tv profile has a different tpk generation policy. + # 2 types(update, upgrade) of tpk can be generated and used simultaneously. + # If tpktype is not defined and tizen version is less than 6.0, upgrade type + # is generated by default. + %if "%{?profile}" == "tv" + %if "%{?tpktype}" == "upgrade" || (0%{!?tpktype:1} && %{_tizen_version} < 60) + %define _tpkid %{_pkgid}-upgrade + %endif + %endif + %if 0%{!?_tpkid:1} + %define _tpkid %{_pkgid} + %endif + + # WRTjs TPK install directory + %global WRTJS_TPK_DIR /tmp + # Directory for WRTjs tizen application package + %global WRTJS_APP_DIR %{TZ_SYS_RO_APP}/%{_tpkid} +%endif + %prep %setup -q %build -%if "%{?tizen_profile_name}" != "tv" +# The "_repository" flag was changed to "_vd_cfg_target_repository" +# since tizen 4.0 product tv. +%if "%{?profile}" == "tv" + %define _manifestname %{_pkgid}-vd + # The onemain branch haven't defined _vd_cfg_target_repository. + # So, this hijack code is added to set the repo_name to "MuseM". + # Remove this code when _vd_cfg_target_repository is defined in onemain. + %if "%{?_vd_cfg_target_repository}" + %define repo_name %{_vd_cfg_target_repository} + %else + %define repo_name MuseM + %endif +%else + %define _manifestname %{_pkgid} + %define repo_name %{_repository} +%endif + +%if "%{?profile}" != "tv" %define _outdir $PWD/out ./build/tools/gn gen %{_outdir} ninja -C %{_outdir} wrt-loader @@ -34,31 +81,82 @@ Web Runtime Engine based on Electron absolute_appdir=$PWD/%{app_dir} (cd wrt_app/ && find . -type f ! -name '*.ts' -exec cp --parents {} ${absolute_appdir} \;) +%if 0%{?_use_tpk} + %if "%{_vd_cfg_chip_vendor}" != "EMUL" && "%{?profile}" == "tv" + %define __package_signing 1 + %else + %define __package_signing 0 + %endif + sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \ + -e 's#@WRTJS_VERSION@#%{version}#g' \ + -e 's#@PACKAGE_ID@#%{_tpkid}#g' \ + packaging/%{_manifestname}.xml.in \ + > packaging/tizen-manifest-tpk.xml +%endif + %install +%ifarch armv7l + %define ARCHITECTURE armv7l +%endif +%ifarch aarch64 + %define ARCHITECTURE aarch64 +%endif +%ifarch i586 i686 + %define ARCHITECTURE ix86 +%endif +%ifarch x86_64 + %define ARCHITECTURE x86_64 +%endif %define _resourcedir /usr/share/wrt/app install -d %{buildroot}%{_bindir} install -d %{buildroot}%{_datadir}/aul install -d %{buildroot}%{_resourcedir} +install -d %{buildroot}%{WRTJS_APP_DIR} -%if "%{?tizen_profile_name}" != "tv" - install -m 0755 %{_outdir}/wrt-loader %{buildroot}%{_bindir} - install -m 0644 packaging/wrt.loader %{buildroot}%{_datadir}/aul/ +%if 0%{?__package_signing} + install -m 0644 tizen/downloadable/vd_sign/author-signature.xml %{buildroot}%{WRTJS_APP_DIR} + install -m 0644 tizen/downloadable/vd_sign/signature1.xml %{buildroot}%{WRTJS_APP_DIR} %else - ln -s %{_bindir}/wrt %{buildroot}%{_bindir}/wrt-loader -%if "%{_vd_cfg_product_type}" != "LFD" -%if "%{_vd_cfg_platform_type}" == "FULL_SMART" - install -m 0644 packaging/wrt_tv.loader %{buildroot}%{_datadir}/aul/wrt.loader -%endif -%if "%{_vd_cfg_platform_type}" == "ENTRY_SMART" - install -m 0644 packaging/wrt_tv_lite.loader %{buildroot}%{_datadir}/aul/wrt.loader -%endif + %define tizen_sign 1 + %define tizen_sign_base %{WRTJS_APP_DIR} + %define tizen_sign_level platform + %define tizen_author_sign 1 + %define tizen_dist_sign 1 %endif + +%if "%{?profile}" == "tv" + ln -s %{_bindir}/wrt %{buildroot}%{_bindir}/wrt-loader + %if "%{_vd_cfg_product_type}" != "LFD" + %if "%{_vd_cfg_platform_type}" == "FULL_SMART" + install -m 0644 packaging/wrt_tv.loader %{buildroot}%{_datadir}/aul/wrt.loader + %endif + %if "%{_vd_cfg_platform_type}" == "ENTRY_SMART" + install -m 0644 packaging/wrt_tv_lite.loader %{buildroot}%{_datadir}/aul/wrt.loader + %endif + %endif +%else + install -m 0755 %{_outdir}/wrt-loader %{buildroot}%{_bindir} + install -m 0644 packaging/wrt.loader %{buildroot}%{_datadir}/aul/ %endif mkdir -p %{buildroot}%{_libdir}/%{crosswalk_extensions_service} cp packaging/plugins.json %{buildroot}%{_libdir}/%{crosswalk_extensions_service} cp -r %{app_dir}/* %{buildroot}%{_resourcedir}/ +%if 0%{?_use_tpk} + # The debugsources.list is needed by __spec_install_post to generate tpk file + # but it's missing in the build process. So, the temporary file is touched. + touch debugsources.list + %define _tpk_file_name %{_tpkid}-%{version}-v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE} + %define __tpk_install_post \ + tizen/build/build_tpk.sh %{buildroot}%{WRTJS_APP_DIR} %{WRTJS_TPK_DIR} %{_tpk_file_name} %{_tpkid} %{?profile} + %define __spec_install_post \ + %{?__tpk_install_post} \ + %{nil} +%else + echo "No TPK generation" +%endif + %post %postun @@ -79,3 +177,7 @@ rm -fr %{buildroot} %endif %{_libdir}/%{crosswalk_extensions_service}/plugins.json %{_resourcedir}/* +%if 0%{?__package_signing} + %{WRTJS_APP_DIR}/author-signature.xml + %{WRTJS_APP_DIR}/signature1.xml +%endif diff --git a/tizen/build/build_tpk.sh b/tizen/build/build_tpk.sh new file mode 100755 index 0000000..e38318e --- /dev/null +++ b/tizen/build/build_tpk.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +ro_app_root=$1 +output_dir=$2 +tpk_root=${output_dir}/tpk_root +tpk_fname=${3}.tpk +tpk_id=$4 +profile=$5 + +echo "Start $0..." +echo "ARGS=$@" +echo "PWD=$PWD" +echo "ro_app_root=$ro_app_root" +echo "tpk_root=$tpk_root" +echo "tpk_fname=$tpk_fname" +echo "tpk_id=$tpk_id" +echo "profile=$profile" +echo "output_dir=$output_dir" + +ls ${output_dir} +rm -rf ${tpk_root} +install -d ${tpk_root}/shared/res/wrt +install -d ${tpk_root}/license +install -m 0644 packaging/tizen-manifest-tpk.xml ${tpk_root}/tizen-manifest.xml +install -m 0644 LICENSE ${tpk_root}/license +cp -rf out/gen/app ${tpk_root}/shared/res/wrt/app + +# Test signing +/usr/bin/hash-signer.sh -a -d -p platform -b ${output_dir} tpk_root + +echo "* ls" +ls -alR ${tpk_root} +pushd ${tpk_root} +echo "* zip" +zip -yr $tpk_fname * +mv $tpk_fname ../ +popd + +# tpkresigning from app-signer package +if [ "${profile}" == "tv" ]; then + tpkresigner -a -d -p platform -n %{4} ${output_dir}/${tpk_fname} +fi + +echo "Finished $0" diff --git a/tizen/build/common.sh b/tizen/build/common.sh index aa48b4e..a92886b 100755 --- a/tizen/build/common.sh +++ b/tizen/build/common.sh @@ -48,6 +48,13 @@ function setupAndExecuteTargetBuild() { ;; --tizen*) ;; + --use-tpk) + USE_TPK=1 + ;; + --use-tpk-upgrade) + USE_TPK=1 + USE_TPK_UPGRADE=1 + ;; *) ARGS+=("$1") ;; @@ -58,6 +65,12 @@ function setupAndExecuteTargetBuild() { if [ "$LOCAL_BUILD" == "1" ]; then ARGS+=(--define "_local_build 1") fi + if [ "$USE_TPK" == "1" ]; then + ARGS+=(--define "_use_tpk 1") + if [ "$USE_TPK_UPGRADE" == "1" ] && [ $platform == "tv" ]; then + ARGS+=(--define "tpktype upgrade") + fi + fi if [ "$PROFILE" == "" ]; then if [[ $platform == "tv" ]]; then diff --git a/tizen/downloadable/vd_sign/author-signature.xml b/tizen/downloadable/vd_sign/author-signature.xml new file mode 100644 index 0000000..eaabe07 --- /dev/null +++ b/tizen/downloadable/vd_sign/author-signature.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + e2rGZ9lURQWep1IIbrRk2NYMw5EXlejQt2B0bMLUyoc= + + + none + + + +MIIDszCCApugAwIBAgIBAjANBgkqhkiG9w0BAQsFADB/MQswCQYDVQQGEwJLUjEU +MBIGA1UECAwLU291dGggS29yZWExDjAMBgNVBAcMBVN1d29uMSYwJAYDVQQKDB1T +YW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLjELMAkGA1UECwwCVkQxFTATBgNV +BAMMDFZEIEF1dGhvciBDQTAeFw0xNjAxMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTla +MIGJMQswCQYDVQQGEwJLUjEOMAwGA1UECBMFU3V3b24xDjAMBgNVBAcTBVN1d29u +MRwwGgYDVQQKExNTYW1zdW5nIEVsZWN0cm9uaWNzMQswCQYDVQQLEwJWRDEvMC0G +A1UEAxMmU2Ftc3VuZyBFbGVjdHJvbmljcyBJbi1Ib3VzZSBEZXZlbG9wZXIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4/rIDyVO2TwqRqJKW6M/wJx05 +wag57eFNoSfOd+LQEIz5Py1JTlqi+J6RS8DP98OiTPEqQardeTgq29abrdst5V4d +k/kHTwNe+5zOlPZICzvIhqXZOImFRbZ3HX+gcJ6x+mvzUom4JaUrJ4fZ6B2Ql8vn +x833Z3LUytfeKbmwFQu9L31T7ByVAshJu1CsRpaCbp65rq8Fnr1k8mE6r6fLL+se +sehWt3SDfMeD186hjzYoR73CjaLCkVhRqMzPgkdv07CTDzcEEuv3ALi7R6rpf+Om +mu/hfTzp6Gkw5oWMDD9SoMKql4gIds/zsW+hJGEQMJfei4T4LP4EAvgA8I/nAgMB +AAGjLzAtMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUF +BwMDMA0GCSqGSIb3DQEBCwUAA4IBAQCAoZXvWK6/3l/PvrfAEduEtkmMOkBDIoyb +G7/3w36/c+MTiVyKrWP81/Q5N2PSh6xBkNKaiFJ0/ww2HC4PZgrplXDgHLLbD1hf +Y/u/zkXqHuMTMRVzzeMjDm2jdVqWG/4PDf8pYyPK0hO4aA878cs7ZB+zVxls5af0 +auD4fAPu3bQPY5oHUioh8/IqL+oni1Ld6ENIznULLeOnTaq+/scIiqDRQFM8qPDu +U3yDC8tjLlrnLxl+MU/Whg8DiCtlslOgFrH2ry8bN2/SyyzuDrUx+kP8qs5Nbs7W +qHA6zqgtiWjCu+6QMKXAwZsfBtnJaVIIN56WWloj8/QEBaiCtmp3 + +MIIDjzCCAnegAwIBAgIBATANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCS1Ix +FDASBgNVBAgMC1NvdXRoIEtvcmVhMQ4wDAYDVQQHDAVTdXdvbjEmMCQGA1UECgwd +U2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4xCzAJBgNVBAsMAlZEMRowGAYD +VQQDDBFWRCBBdXRob3IgUm9vdCBDQTAeFw0xNTAxMTMwNTQ5MjBaFw0zMDAxMDkw +NTQ5MjBaMH8xCzAJBgNVBAYTAktSMRQwEgYDVQQIDAtTb3V0aCBLb3JlYTEOMAwG +A1UEBwwFU3V3b24xJjAkBgNVBAoMHVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBM +dGQuMQswCQYDVQQLDAJWRDEVMBMGA1UEAwwMVkQgQXV0aG9yIENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1SaxfDNXQMUVE/7tqv/XcaAcgQGXMI/o +o2PF1PH18IBZLnazaA8UOCAooBQO4WJpnj3KouTBmr07bKG6fyJJunzEKsdMNjkS +6orh2KJUtBteD59YB8rh9nLqwsTGANIEKZd4C9BiB0DQnYk6dw1qtdcCcGuEvNk9 +jtxTuvFQo9r0DRPC16mN+sDd1rsxYq9ixZ8axPIxdECawOEOHzBrmyG/Mo7KTjf0 +sUUfanQXhVuajRBX3i28F4BBXt6ruXpm7MNWgKz6mZryJ5MQLetW1YvXS2PXQXty +U8vwxqAChfQiAW0yGunP8o/YNAYcu1bIXKc25RP2ReVZi2+53QwdmQIDAQABoxAw +DjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBB7za36fUCusE6q1Ta +U+0WPz+dkumosXV03HxzcqqcajP/5OumrikQx7LHbRlvLkIPlPOH8yMMS454XCgs +wnSoOxgeorzBchDJll9z+rTaQro7rmCN7TS/N9l2rIEaa/RVEQPUeEeE4yDeMf61 +aDhPEhnNdylV0kyS3YLkJd2KBPedsSKkCWUCi2F9g2bHrnuggkEQtOoP2kTBFKvq +gNAJEzm5q6EdV0Ya0JFescY5oUmtu8ayTc1cBS6OvadXoN/Po62Ir6BOc1JI0tnU +AUlOmJ+Ku5ZRJCrL80ozpbcvz6JU+Xefs4e/uHpmxHSolvHnzTGm866k6JZhj0ug +deAD + + + + + + + + + + + + + + + + diff --git a/tizen/downloadable/vd_sign/signature1.xml b/tizen/downloadable/vd_sign/signature1.xml new file mode 100644 index 0000000..5ce25ec --- /dev/null +++ b/tizen/downloadable/vd_sign/signature1.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + abSCdQC03ZcPoEN8T0eWSILDIhDi2uNziivgdw1gmmQ= + + + none + + + +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 + + + + + + + + + + + + + + + + diff --git a/wrtjs-debugsource.manifest b/wrtjs-debugsource.manifest new file mode 100644 index 0000000..017d22d --- /dev/null +++ b/wrtjs-debugsource.manifest @@ -0,0 +1,5 @@ + + + + + -- 2.7.4