MozillaFirefox/MozillaFirefox.spec
branchfirefox102
changeset 1175 4c6576f9cf04
parent 1174 90e3d0cf8567
child 1177 4bb6d80fcc64
equal deleted inserted replaced
1174:90e3d0cf8567 1175:4c6576f9cf04
    26 # orig_version would be the upstream tar ball
    26 # orig_version would be the upstream tar ball
    27 # orig_version 70.0
    27 # orig_version 70.0
    28 # orig_suffix b3
    28 # orig_suffix b3
    29 # major 69
    29 # major 69
    30 # mainver %major.99
    30 # mainver %major.99
    31 %define major          101
    31 %define major          102
    32 %define mainver        %major.0.1
    32 %define mainver        %major.0.1
    33 %define orig_version   101.0.1
    33 %define orig_version   102.0.1
    34 %define orig_suffix    %{nil}
    34 %define orig_suffix    %{nil}
    35 %define update_channel release
    35 %define update_channel release
    36 %define branding       1
    36 %define branding       1
    37 %define devpkg         1
    37 %define devpkg         1
    38 
    38 
    89 BuildRequires:  autoconf213
    89 BuildRequires:  autoconf213
    90 BuildRequires:  dbus-1-glib-devel
    90 BuildRequires:  dbus-1-glib-devel
    91 BuildRequires:  dejavu-fonts
    91 BuildRequires:  dejavu-fonts
    92 BuildRequires:  fdupes
    92 BuildRequires:  fdupes
    93 BuildRequires:  memory-constraints
    93 BuildRequires:  memory-constraints
    94 %if 0%{?suse_version} <= 1320
    94 %if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150400
    95 BuildRequires:  gcc9-c++
    95 BuildRequires:  gcc11-c++
    96 %else
    96 %else
    97 BuildRequires:  gcc-c++
    97 BuildRequires:  gcc-c++
    98 %endif
    98 %endif
    99 %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
    99 %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
   100 BuildRequires:  cargo >= 1.57
   100 BuildRequires:  cargo >= 1.59
   101 BuildRequires:  rust >= 1.57
   101 BuildRequires:  rust >= 1.59
   102 %else
   102 %else
   103 # Newer sle/leap/tw use parallel versioned rust releases which have
   103 # Newer sle/leap/tw use parallel versioned rust releases which have
   104 # a different method for provides that we can use to request a
   104 # a different method for provides that we can use to request a
   105 # specific version
   105 # specific version
       
   106 # minimal requirement:
   106 BuildRequires:  rust+cargo >= 1.59
   107 BuildRequires:  rust+cargo >= 1.59
       
   108 # actually used upstream:
       
   109 BuildRequires:  cargo1.60
       
   110 BuildRequires:  rust1.60
   107 %endif
   111 %endif
   108 %if 0%{useccache} != 0
   112 %if 0%{useccache} != 0
   109 BuildRequires:  ccache
   113 BuildRequires:  ccache
   110 %endif
   114 %endif
   111 BuildRequires:  libXcomposite-devel
   115 BuildRequires:  libXcomposite-devel
   112 BuildRequires:  libcurl-devel
   116 BuildRequires:  libcurl-devel
   113 BuildRequires:  libiw-devel
   117 BuildRequires:  libiw-devel
   114 BuildRequires:  libproxy-devel
   118 BuildRequires:  libproxy-devel
   115 BuildRequires:  makeinfo
   119 BuildRequires:  makeinfo
   116 BuildRequires:  mozilla-nspr-devel >= 4.33
   120 BuildRequires:  mozilla-nspr-devel >= 4.34
   117 BuildRequires:  mozilla-nss-devel >= 3.78.1
   121 BuildRequires:  mozilla-nss-devel >= 3.79
   118 BuildRequires:  nasm >= 2.14
   122 BuildRequires:  nasm >= 2.14
   119 BuildRequires:  nodejs >= 10.22.1
   123 BuildRequires:  nodejs >= 10.22.1
   120 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
   124 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
   121 BuildRequires:  python-libxml2
   125 BuildRequires:  python-libxml2
   122 BuildRequires:  python36
   126 BuildRequires:  python36
   176 Source:         http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
   180 Source:         http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
   177 Source1:        MozillaFirefox.desktop
   181 Source1:        MozillaFirefox.desktop
   178 Source2:        MozillaFirefox-rpmlintrc
   182 Source2:        MozillaFirefox-rpmlintrc
   179 Source3:        mozilla.sh.in
   183 Source3:        mozilla.sh.in
   180 Source4:        tar_stamps
   184 Source4:        tar_stamps
       
   185 %if %{localize}
   181 Source7:        l10n-%{orig_version}%{orig_suffix}.tar.xz
   186 Source7:        l10n-%{orig_version}%{orig_suffix}.tar.xz
       
   187 %endif
   182 Source8:        firefox-mimeinfo.xml
   188 Source8:        firefox-mimeinfo.xml
   183 Source9:        firefox.js
   189 Source9:        firefox.js
   184 Source11:       firefox.1
   190 Source11:       firefox.1
   185 Source12:       mozilla-get-app-id
   191 Source12:       mozilla-get-app-id
   186 Source13:       spellcheck.js
   192 Source13:       spellcheck.js
   205 Patch7:         mozilla-pgo.patch
   211 Patch7:         mozilla-pgo.patch
   206 Patch8:         mozilla-reduce-rust-debuginfo.patch
   212 Patch8:         mozilla-reduce-rust-debuginfo.patch
   207 Patch9:         mozilla-bmo1005535.patch
   213 Patch9:         mozilla-bmo1005535.patch
   208 Patch10:        mozilla-bmo1568145.patch
   214 Patch10:        mozilla-bmo1568145.patch
   209 Patch11:        mozilla-bmo1504834-part1.patch
   215 Patch11:        mozilla-bmo1504834-part1.patch
   210 Patch12:        mozilla-bmo1504834-part2.patch
       
   211 Patch13:        mozilla-bmo1504834-part3.patch
   216 Patch13:        mozilla-bmo1504834-part3.patch
   212 Patch14:        mozilla-bmo1512162.patch
   217 Patch14:        mozilla-bmo1512162.patch
   213 Patch15:        mozilla-fix-top-level-asm.patch
   218 Patch15:        mozilla-fix-top-level-asm.patch
   214 Patch16:        mozilla-bmo1504834-part4.patch
       
   215 Patch17:        mozilla-bmo849632.patch
   219 Patch17:        mozilla-bmo849632.patch
   216 Patch18:        mozilla-bmo998749.patch
   220 Patch18:        mozilla-bmo998749.patch
   217 Patch19:        mozilla-bmo1626236.patch
       
   218 Patch20:        mozilla-s390x-skia-gradient.patch
   221 Patch20:        mozilla-s390x-skia-gradient.patch
   219 Patch21:        mozilla-libavcodec58_91.patch
   222 Patch21:        mozilla-libavcodec58_91.patch
   220 Patch22:        mozilla-silence-no-return-type.patch
   223 Patch22:        mozilla-silence-no-return-type.patch
   221 Patch23:        mozilla-bmo531915.patch
   224 Patch23:        mozilla-bmo531915.patch
       
   225 Patch25:        one_swizzle_to_rule_them_all.patch
       
   226 Patch26:        svg-rendering.patch
   222 # Firefox/browser
   227 # Firefox/browser
   223 Patch101:       firefox-kde.patch
   228 Patch101:       firefox-kde.patch
   224 Patch102:       firefox-branded-icons.patch
   229 Patch102:       firefox-branded-icons.patch
   225 %endif
   230 %endif
   226 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
   231 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
   339 sed -i "s/python3/python36/g" configure.in
   344 sed -i "s/python3/python36/g" configure.in
   340 sed -i "s/python3/python36/g" mach
   345 sed -i "s/python3/python36/g" mach
   341 export PYTHON3=/usr/bin/python36
   346 export PYTHON3=/usr/bin/python36
   342 %endif
   347 %endif
   343 
   348 
   344 # Webrender does not support big endian yet, so we are forcing it off
       
   345 # see: https://bugzilla.mozilla.org/show_bug.cgi?id=1716707
       
   346 %ifarch s390x ppc64
       
   347 echo 'pref("gfx.webrender.force-disabled", true);' >> %{SOURCE9}
       
   348 %endif
       
   349 
       
   350 #
   349 #
   351 kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
   350 kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
   352 if test "$kdehelperversion" != %{kde_helper_version}; then
   351 if test "$kdehelperversion" != %{kde_helper_version}; then
   353   echo fix kde helper version in the .spec file
   352   echo fix kde helper version in the .spec file
   354   exit 1
   353   exit 1
   355 fi
   354 fi
   356 
   355 # When doing only_print_mozconfig, this file isn't necessarily available, so skip it
   357 source %{SOURCE4}
   356 cp %{SOURCE4} .obsenv.sh
   358 %endif
   357 %else
   359 
   358 # We need to make sure its empty
       
   359 echo "" > .obsenv.sh
       
   360 %endif
       
   361 
       
   362 cat >> .obsenv.sh <<EOF
   360 export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo
   363 export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo
   361 export MOZ_SOURCE_CHANGESET=$RELEASE_TAG
   364 export MOZ_SOURCE_CHANGESET=$RELEASE_TAG
   362 export SOURCE_REPO=$RELEASE_REPO
   365 export SOURCE_REPO=$RELEASE_REPO
   363 export source_repo=$RELEASE_REPO
   366 export source_repo=$RELEASE_REPO
   364 export MOZ_SOURCE_REPO=$RELEASE_REPO
   367 export MOZ_SOURCE_REPO=$RELEASE_REPO
   365 export MOZ_BUILD_DATE=$RELEASE_TIMESTAMP
   368 export MOZ_BUILD_DATE=$RELEASE_TIMESTAMP
   366 export MOZILLA_OFFICIAL=1
   369 export MOZILLA_OFFICIAL=1
   367 export BUILD_OFFICIAL=1
   370 export BUILD_OFFICIAL=1
   368 export MOZ_TELEMETRY_REPORTING=1
   371 export MOZ_TELEMETRY_REPORTING=1
   369 export MACH_USE_SYSTEM_PYTHON=1
   372 export MACH_USE_SYSTEM_PYTHON=1
   370 %if 0%{?suse_version} <= 1320
   373 %if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150400
   371 export CC=gcc-9
   374 export CC=gcc-11
   372 %else
   375 %else
   373 %if 0%{?clang_build} == 0
   376 %if 0%{?clang_build} == 0
   374 export CC=gcc
   377 export CC=gcc
   375 export CXX=g++
   378 export CXX=g++
   376 %if 0%{?gcc_version:%{gcc_version}} >= 12
   379 %if 0%{?gcc_version:%{gcc_version}} >= 12
   390 export CFLAGS="$CFLAGS -mminimal-toc"
   393 export CFLAGS="$CFLAGS -mminimal-toc"
   391 %endif
   394 %endif
   392 %endif
   395 %endif
   393 export CXXFLAGS="$CFLAGS"
   396 export CXXFLAGS="$CFLAGS"
   394 export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
   397 export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
   395 %if %{with only_print_mozconfig}
   398 EOF
   396 echo "export CC=$CC"
   399 # Done with env-variables.
   397 echo "export CXX=$CXX"
   400 source ./.obsenv.sh
   398 echo "export CFLAGS=\"$CFLAGS\""
   401 
   399 echo "export CXXFLAGS=\"$CXXFLAGS\""
   402 # Generating mozconfig
   400 echo "export LDFLAGS=\"$LDFLAGS\""
       
   401 echo "export RUSTFLAGS=\"$RUSTFLAGS\""
       
   402 echo "export CARGO_HOME=\"$CARGO_HOME\""
       
   403 echo "export PATH=\"$PATH\""
       
   404 echo "export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\""
       
   405 echo "export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\""
       
   406 echo "export MOZCONFIG=\"$MOZCONFIG\""
       
   407 echo "export MOZILLA_OFFICIAL=1"
       
   408 echo "export BUILD_OFFICIAL=1"
       
   409 echo "export MOZ_TELEMETRY_REPORTING=1"
       
   410 echo ""
       
   411 cat << EOF
       
   412 %else
       
   413 %limit_build -m 2560
       
   414 cat << EOF > $MOZCONFIG
   403 cat << EOF > $MOZCONFIG
   415 %endif
       
   416 mk_add_options MOZILLA_OFFICIAL=1
   404 mk_add_options MOZILLA_OFFICIAL=1
   417 mk_add_options BUILD_OFFICIAL=1
   405 mk_add_options BUILD_OFFICIAL=1
   418 mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
   406 mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
   419 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
   407 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
   420 . \$topsrcdir/browser/config/mozconfig
   408 . \$topsrcdir/browser/config/mozconfig
   496 ac_add_options MOZ_PGO=1
   484 ac_add_options MOZ_PGO=1
   497 %endif
   485 %endif
   498 %endif
   486 %endif
   499 %endif
   487 %endif
   500 EOF
   488 EOF
   501 %if !%{with only_print_mozconfig}
   489 
       
   490 %if %{with only_print_mozconfig}
       
   491 cat ./.obsenv.sh
       
   492 cat $MOZCONFIG
       
   493 %else
       
   494 %ifarch aarch64 %arm ppc64 ppc64le
       
   495 %limit_build -m 2000
       
   496 %endif
       
   497 
   502 %if 0%{useccache} != 0
   498 %if 0%{useccache} != 0
   503 ccache -s
   499 ccache -s
   504 %endif
   500 %endif
   505 %if 0%{?do_profiling}
   501 %if 0%{?do_profiling}
   506 xvfb-run --server-args="-screen 0 1920x1080x24" \
   502 xvfb-run --server-args="-screen 0 1920x1080x24" \