X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=packaging%2Fcrosswalk.spec;h=139de2dba1706aa0c29f0e5d29697dd70e2e481c;hb=7ff13776d9adf6dd69919761cbe6ea5a97d63522;hp=8d5cda5e39421fc15d5b6bdbeb122823d4c8d683;hpb=ff3e2503a20db9193d323c1d19c38c68004dec4a;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/packaging/crosswalk.spec b/packaging/crosswalk.spec index 8d5cda5..139de2d 100644 --- a/packaging/crosswalk.spec +++ b/packaging/crosswalk.spec @@ -1,8 +1,22 @@ %bcond_with x %bcond_with wayland +%ifarch x86_64 %{arm} +### x86_64 +# NaCl build on 64bit system require libc 32bit to build the 32 IRT. +# While Tizen 64bit image does not offer 32bit packages at all, +# check https://bugs.tizen.org/jira/browse/PTREL-803 for details. +# So disable nacl for 64bit now. +### ARM +# Due to OBS build for ARM some files needed by NaCl to be build +# are not present. +%define _disable_nacl 1 +%else +%define _disable_nacl 0 +%endif + Name: crosswalk -Version: 5.34.104.0 +Version: 8.36.161.0 Release: 0 Summary: Crosswalk is an app runtime based on Chromium License: (BSD-3-Clause and LGPL-2.1+) @@ -15,24 +29,24 @@ Source3: xwalk.service.in Source1001: crosswalk.manifest Source1002: %{name}.xml.in Source1003: %{name}.png -Patch1: %{name}-do-not-look-for-gtk2-when-using-aura.patch -Patch7: %{name}-tizen-audio-session-manager.patch -Patch8: %{name}-mesa-ozone-typedefs.patch Patch9: Blink-Add-GCC-flag-Wno-narrowing-fix-64bits-build.patch +Patch10: crosswalk-do-not-look-for-gtk-dependencies-on-x11.patch BuildRequires: bison BuildRequires: bzip2-devel +BuildRequires: elfutils BuildRequires: expat-devel BuildRequires: flex BuildRequires: gperf BuildRequires: libcap-devel +BuildRequires: libelf-devel +BuildRequires: ninja BuildRequires: python BuildRequires: python-xml BuildRequires: perl BuildRequires: which BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(appcore-common) -BuildRequires: pkgconfig(audio-session-mgr) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(capi-location-manager) BuildRequires: pkgconfig(dbus-1) @@ -46,11 +60,13 @@ BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(libpci) BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libtzplatform-config) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(pkgmgr-installer) BuildRequires: pkgconfig(pkgmgr-parser) BuildRequires: pkgconfig(nspr) BuildRequires: pkgconfig(nss) @@ -106,23 +122,13 @@ cp -a src/AUTHORS AUTHORS.chromium cp -a src/LICENSE LICENSE.chromium cp -a src/xwalk/LICENSE LICENSE.xwalk -%patch1 -%patch7 - -%if "%{tizen}" < "3.0" -%patch2 -%patch3 -%patch4 -%patch5 -p1 -%patch6 -%endif +%patch9 -%if %{with wayland} -%patch8 +# The profiles using Wayland (and thus Ozone) do not need this patch. +%if !%{with wayland} +%patch10 %endif -%patch9 - %build # For ffmpeg on ia32. The original CFLAGS set by the gyp and config files in @@ -130,6 +136,15 @@ cp -a src/xwalk/LICENSE LICENSE.xwalk # CFLAGS end up appending -fno-omit-frame-pointer. See http://crbug.com/37246 export CFLAGS=`echo $CFLAGS | sed s,-fno-omit-frame-pointer,,g` +%if ! %{_disable_nacl} +# For nacl_bootstrap on ia32. The original CFLAGS set by the gyp +# native_client/src/trusted/service_runtime/linux/nacl_bootstrap.gyp already ignored +# -fstack-protector and -funwind-tables, but Tizen's CFLAGS end up appending them, thus +# causing linking failures. Check XWALK-1689 for details. +export CFLAGS=`echo $CFLAGS | sed s,-fstack-protector,,g` +export CFLAGS=`echo $CFLAGS | sed s,-funwind-tables,,g` +%endif + # Building the RPM in the GBS chroot fails with errors such as # /usr/lib/gcc/i586-tizen-linux/4.7/../../../../i586-tizen-linux/bin/ld: # failed to set dynamic section sizes: Memory exhausted @@ -143,94 +158,94 @@ export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" # build root to the BUILDDIR_NAME definition, such as "/var/tmp/xwalk-build" # (remember all paths are still inside the chroot): # gbs build --define 'BUILDDIR_NAME /some/path' -# -# The --depth and --generator-output combo is used to put all the Makefiles -# inside the build directory, and (this is the important part) keep file lists -# (generatedwith <|() in gyp) in the build directory as well, otherwise they -# will be in the source directory, erased every time and trigger an almost full -# Blink rebuild (among other smaller targets). -# We cannot always pass those flags, though, because gyp's make generator does -# not work if the --generator-output is the top-level source directory. BUILDDIR_NAME="%{?BUILDDIR_NAME}" -if [ -z "${BUILDDIR_NAME}" ]; then - BUILDDIR_NAME="." -else - GYP_EXTRA_FLAGS="--depth=. --generator-output=${BUILDDIR_NAME}" +if [ -n "${BUILDDIR_NAME}" ]; then + mkdir -p "${BUILDDIR_NAME}" + ln -s "${BUILDDIR_NAME}" src/out fi %if %{with wayland} -GYP_EXTRA_FLAGS="${GYP_EXTRA_FLAGS} -Duse_ash=1 -Duse_ozone=1" +GYP_EXTRA_FLAGS="${GYP_EXTRA_FLAGS} -Duse_ozone=1 -Denable_ozone_wayland_vkb=1 -Denable_xdg_shell=0" %endif -# Change src/ so that we can pass "." to --depth below, otherwise we would need -# to pass "src" to it, but this confuses the gyp make generator, that expects -# to be called from the root source directory. -cd src +GYP_EXTRA_FLAGS="${GYP_EXTRA_FLAGS} -Ddisable_nacl=%{_disable_nacl}" + +# Linking fails in Tizen Common when fatal ld warnings are enabled. XWALK-1379. +%if "%{profile}" == "common" || "%{profile}" == "generic" +GYP_EXTRA_FLAGS="${GYP_EXTRA_FLAGS} -Ddisable_fatal_linker_warnings=1" +%endif + +# For building for arm in OBS, we need : +# -> to unset sysroot value. +# sysroot variable is automatically set for cross compilation to use arm-sysroot provided by Chromium project +# -> to force system ld binary. +# Indeed the build is made on Emulated / Virtualized environment that correspond +# to the target. +# gold ld used is avaible only for 32/64 bits Intel Arch. +# sysroot usage is not needed, we need to use arm libraries from the virtualized environment. +# +# Crosswalk build fails if the fpu selected in the gcc option is different from neon in case of arm7 compilation +# So force it. +%ifarch %{arm} +GYP_EXTRA_FLAGS="${GYP_EXTRA_FLAGS} -Dsysroot= -Dlinux_use_gold_binary=0" +export CFLAGS=`echo $CFLAGS | sed s,-mfpu=vfpv3,-mfpu=neon,g` +export CXXFLAGS=`echo $CXXFLAGS | sed s,-mfpu=vfpv3,-mfpu=neon,g` +export FFLAGS=`echo $FFLAGS | sed s,-mfpu=vfpv3,-mfpu=neon,g` +%endif # --no-parallel is added because chroot does not mount a /dev/shm, this will # cause python multiprocessing.SemLock error. -export GYP_GENERATORS='make' -./xwalk/gyp_xwalk xwalk/xwalk.gyp \ +export GYP_GENERATORS='ninja' +./src/xwalk/gyp_xwalk src/xwalk/xwalk.gyp \ --no-parallel \ ${GYP_EXTRA_FLAGS} \ -Dchromeos=0 \ --Ddisable_nacl=1 \ -Dtizen=1 \ -Dpython_ver=2.7 \ -Duse_aura=1 \ -Duse_cups=0 \ -Duse_gconf=0 \ +-Duse_gnome_keyring=0 \ -Duse_kerberos=0 \ -Duse_system_bzip2=1 \ --Duse_system_icu=1 \ -Duse_system_libexif=1 \ -Duse_system_libxml=1 \ -Duse_system_nspr=1 \ --Denable_xi21_mt=1 \ --Duse_xi2_mt=0 \ -Denable_hidpi=1 -make %{?_smp_mflags} -C "${BUILDDIR_NAME}" BUILDTYPE=Release xwalk xwalkctl xwalk_launcher xwalk-pkg-helper +ninja %{?_smp_mflags} -C src/out/Release xwalk xwalkctl xwalk_launcher xwalk-pkg-helper %install -# Support building in a non-standard directory, possibly outside %{_builddir}. -# Since the build root is erased every time a new build is performed, one way -# to avoid losing the build directory is to specify a location outside the -# build root to the BUILDDIR_NAME definition, such as "/var/tmp/xwalk-build" -# (remember all paths are still inside the chroot): -# gbs build --define 'BUILDDIR_NAME /some/path' -BUILDDIR_NAME="%{?BUILDDIR_NAME}" -if [ -z "${BUILDDIR_NAME}" ]; then - BUILDDIR_NAME="." -fi - -# Since BUILDDIR_NAME can be either a relative path or an absolute one, we need -# to cd into src/ so that it means the same thing in the build and install -# stages: during the former, a relative location refers to a place inside src/, -# whereas during the latter a relative location by default would refer to a -# place one directory above src/. If BUILDDIR_NAME is an absolute path, this is -# irrelevant anyway. -cd src - # Binaries. -install -p -D ../xwalk %{buildroot}%{_bindir}/xwalk +install -p -D xwalk %{buildroot}%{_bindir}/xwalk install -p -D %{SOURCE2} %{buildroot}%{_dbusservicedir}/org.crosswalkproject.Runtime1.service -install -p -D ../xwalk.service %{buildroot}%{_systemduserservicedir}/xwalk.service -install -p -D ${BUILDDIR_NAME}/out/Release/xwalk %{buildroot}%{_libdir}/xwalk/xwalk -install -p -D ${BUILDDIR_NAME}/out/Release/xwalkctl %{buildroot}%{_bindir}/xwalkctl -install -p -D ${BUILDDIR_NAME}/out/Release/xwalk-launcher %{buildroot}%{_bindir}/xwalk-launcher +install -p -D xwalk.service %{buildroot}%{_systemduserservicedir}/xwalk.service +install -p -D src/out/Release/xwalk %{buildroot}%{_libdir}/xwalk/xwalk +install -p -D src/out/Release/xwalkctl %{buildroot}%{_bindir}/xwalkctl +install -p -D src/out/Release/xwalk-launcher %{buildroot}%{_bindir}/xwalk-launcher # xwalk-pkg-helper needs to be set-user-ID-root so it can finish the installation process. -install -m 06755 -p -D ${BUILDDIR_NAME}/out/Release/xwalk-pkg-helper %{buildroot}%{_bindir}/xwalk-pkg-helper +install -m 06755 -p -D src/out/Release/xwalk-pkg-helper %{buildroot}%{_bindir}/xwalk-pkg-helper # Supporting libraries and resources. -install -p -D ${BUILDDIR_NAME}/out/Release/icudtl.dat %{buildroot}%{_libdir}/xwalk/icudtl.dat -install -p -D ${BUILDDIR_NAME}/out/Release/libffmpegsumo.so %{buildroot}%{_libdir}/xwalk/libffmpegsumo.so -install -p -D ${BUILDDIR_NAME}/out/Release/xwalk.pak %{buildroot}%{_libdir}/xwalk/xwalk.pak +install -p -D src/out/Release/icudtl.dat %{buildroot}%{_libdir}/xwalk/icudtl.dat +install -p -D src/out/Release/libffmpegsumo.so %{buildroot}%{_libdir}/xwalk/libffmpegsumo.so +install -p -D src/out/Release/xwalk.pak %{buildroot}%{_libdir}/xwalk/xwalk.pak -# Register xwalk to the package manager. -install -p -D ../%{name}.xml %{buildroot}%{_manifestdir}/%{name}.xml -install -p -D ../%{name}.png %{buildroot}%{_desktop_icondir}/%{name}.png +# PNaCl +%if ! %{_disable_nacl} +install -p -D src/out/Release/libppGoogleNaClPluginChrome.so %{buildroot}%{_libdir}/xwalk/libppGoogleNaClPluginChrome.so +install -p -D src/out/Release/nacl_bootstrap_munge_phdr %{buildroot}%{_libdir}/xwalk/nacl_bootstrap_munge_phdr +install -p -D src/out/Release/nacl_bootstrap_raw %{buildroot}%{_libdir}/xwalk/nacl_bootstrap_raw +install -p -D src/out/Release/nacl_helper %{buildroot}%{_libdir}/xwalk/nacl_helper +install -p -D src/out/Release/nacl_helper_bootstrap %{buildroot}%{_libdir}/xwalk/nacl_helper_bootstrap +install -p -D src/out/Release/nacl_irt_*.nexe %{buildroot}%{_libdir}/xwalk +install -p -d %{buildroot}%{_libdir}/xwalk/pnacl +install -m 0664 -p -D src/out/Release/pnacl/* %{buildroot}%{_libdir}/xwalk/pnacl +%endif +# Register xwalk to the package manager. +install -p -D %{name}.xml %{buildroot}%{_manifestdir}/%{name}.xml +install -p -D %{name}.png %{buildroot}%{_desktop_icondir}/%{name}.png %post mkdir -p %{_desktop_icondir_ro} @@ -245,6 +260,15 @@ mkdir -p %{_manifestdir_ro} %{_bindir}/xwalk-pkg-helper %{_libdir}/xwalk/icudtl.dat %{_libdir}/xwalk/libffmpegsumo.so +%if ! %{_disable_nacl} +%{_libdir}/xwalk/libppGoogleNaClPluginChrome.so +%{_libdir}/xwalk/nacl_bootstrap_munge_phdr +%{_libdir}/xwalk/nacl_bootstrap_raw +%{_libdir}/xwalk/nacl_helper +%{_libdir}/xwalk/nacl_helper_bootstrap +%{_libdir}/xwalk/nacl_irt_*.nexe +%{_libdir}/xwalk/pnacl/* +%endif %{_libdir}/xwalk/xwalk %{_libdir}/xwalk/xwalk.pak %{_manifestdir}/%{name}.xml