OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 # | 2 # |
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 # TODO(mmoss) This currently only works with official builds, since non-official | 7 # TODO(mmoss) This currently only works with official builds, since non-official |
8 # builds don't add the "${BUILDDIR}/installer/" files needed for packaging. | 8 # builds don't add the "${BUILDDIR}/installer/" files needed for packaging. |
9 | 9 |
10 set -e | 10 set -e |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 # we use is too old and doesn't provide %{_isa}, so we do this manually. | 83 # we use is too old and doesn't provide %{_isa}, so we do this manually. |
84 if [ "$ARCHITECTURE" = "x86_64" ] ; then | 84 if [ "$ARCHITECTURE" = "x86_64" ] ; then |
85 local EMPTY_VERSION="()" | 85 local EMPTY_VERSION="()" |
86 local PKG_ARCH="(64bit)" | 86 local PKG_ARCH="(64bit)" |
87 elif [ "$ARCHITECTURE" = "i386" ] ; then | 87 elif [ "$ARCHITECTURE" = "i386" ] ; then |
88 local EMPTY_VERSION="" | 88 local EMPTY_VERSION="" |
89 local PKG_ARCH="" | 89 local PKG_ARCH="" |
90 fi | 90 fi |
91 | 91 |
92 # Use find-requires script to make sure the dependencies are complete | 92 # Use find-requires script to make sure the dependencies are complete |
93 # (especially libc and libstdc++ versions). | 93 # (especially libc versions). |
94 DETECTED_DEPENDS="$(echo "${BUILDDIR}/chrome" | /usr/lib/rpm/find-requires)" | 94 DETECTED_DEPENDS="$(echo "${BUILDDIR}/chrome" | /usr/lib/rpm/find-requires)" |
95 | 95 |
96 # Compare the expected dependency list to the generated list. | 96 # Compare the expected dependency list to the generated list. |
97 # | 97 # |
98 # In this comparison, we allow ld-linux.so's symbol version "GLIBC_2.3" | 98 # In this comparison, we allow ld-linux.so's symbol version "GLIBC_2.3" |
99 # to be present but don't require it, because it is hard to predict | 99 # to be present but don't require it, because it is hard to predict |
100 # whether it will be generated. Referencing a __thread | 100 # whether it will be generated. Referencing a __thread |
101 # (thread-local/TLS) variable *sometimes* causes the compiler to generate | 101 # (thread-local/TLS) variable *sometimes* causes the compiler to generate |
102 # a reference to __tls_get_addr() (depending on compiler options such as | 102 # a reference to __tls_get_addr() (depending on compiler options such as |
103 # -fPIC vs. -fPIE). This function has symbol version "GLIBC_2.3". The | 103 # -fPIC vs. -fPIE). This function has symbol version "GLIBC_2.3". The |
(...skipping 16 matching lines...) Expand all Loading... |
120 exit $BAD_DIFF | 120 exit $BAD_DIFF |
121 fi | 121 fi |
122 | 122 |
123 # lsb implies many dependencies. | 123 # lsb implies many dependencies. |
124 # | 124 # |
125 # nss (bundled) is optional in LSB 4.0. Also specify a more recent version | 125 # nss (bundled) is optional in LSB 4.0. Also specify a more recent version |
126 # for security and stability updates. While we depend on libnss3.so and not | 126 # for security and stability updates. While we depend on libnss3.so and not |
127 # libssl3.so, force the dependency on libssl3 to ensure the NSS version is | 127 # libssl3.so, force the dependency on libssl3 to ensure the NSS version is |
128 # 3.28 or later, since libssl3 should always be packaged with libnss3. | 128 # 3.28 or later, since libssl3 should always be packaged with libnss3. |
129 # | 129 # |
130 # libstdc++.so.6 is for C++11 support. | |
131 # | |
132 # wget is for uploading crash reports with Breakpad. | 130 # wget is for uploading crash reports with Breakpad. |
133 # | 131 # |
134 # xdg-utils is still optional in LSB 4.0. | 132 # xdg-utils is still optional in LSB 4.0. |
135 # | 133 # |
136 # zlib may not need to be there. It should be included with LSB. | 134 # zlib may not need to be there. It should be included with LSB. |
137 # TODO(thestig): Figure out why there is an entry for zlib. | 135 # TODO(thestig): Figure out why there is an entry for zlib. |
138 # | 136 # |
139 # We want to depend on the system SSL certs so wget can upload crash reports | 137 # We want to depend on the system SSL certs so wget can upload crash reports |
140 # securely, but there's no common capability between the distros. Bugs filed: | 138 # securely, but there's no common capability between the distros. Bugs filed: |
141 # https://qa.mandriva.com/show_bug.cgi?id=55714 | 139 # https://qa.mandriva.com/show_bug.cgi?id=55714 |
142 # https://bugzilla.redhat.com/show_bug.cgi?id=538158 | 140 # https://bugzilla.redhat.com/show_bug.cgi?id=538158 |
143 # https://bugzilla.novell.com/show_bug.cgi?id=556248 | 141 # https://bugzilla.novell.com/show_bug.cgi?id=556248 |
144 # | 142 # |
145 # We want to depend on liberation-fonts as well, but there is no such package | 143 # We want to depend on liberation-fonts as well, but there is no such package |
146 # for Fedora. https://bugzilla.redhat.com/show_bug.cgi?id=1252564 | 144 # for Fedora. https://bugzilla.redhat.com/show_bug.cgi?id=1252564 |
147 # TODO(thestig): Use the liberation-fonts package once its available on all | 145 # TODO(thestig): Use the liberation-fonts package once its available on all |
148 # supported distros. | 146 # supported distros. |
149 DEPENDS="lsb >= 4.0, \ | 147 DEPENDS="lsb >= 4.0, \ |
150 libnss3.so(NSS_3.22)${PKG_ARCH}, \ | 148 libnss3.so(NSS_3.22)${PKG_ARCH}, \ |
151 libssl3.so(NSS_3.28)${PKG_ARCH}, \ | 149 libssl3.so(NSS_3.28)${PKG_ARCH}, \ |
152 libstdc++.so.6(GLIBCXX_3.4.18)${PKG_ARCH}, \ | |
153 wget, \ | 150 wget, \ |
154 xdg-utils, \ | 151 xdg-utils, \ |
155 zlib, \ | 152 zlib, \ |
156 $(echo "${DETECTED_DEPENDS}" | tr '\n' ',')" | 153 $(echo "${DETECTED_DEPENDS}" | tr '\n' ',')" |
157 gen_spec | 154 gen_spec |
158 | 155 |
159 # Create temporary rpmbuild dirs. | 156 # Create temporary rpmbuild dirs. |
160 RPMBUILD_DIR=$(mktemp -d -t rpmbuild.XXXXXX) || exit 1 | 157 RPMBUILD_DIR=$(mktemp -d -t rpmbuild.XXXXXX) || exit 1 |
161 mkdir -p "$RPMBUILD_DIR/BUILD" | 158 mkdir -p "$RPMBUILD_DIR/BUILD" |
162 mkdir -p "$RPMBUILD_DIR/RPMS" | 159 mkdir -p "$RPMBUILD_DIR/RPMS" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 ;; | 320 ;; |
324 * ) | 321 * ) |
325 echo | 322 echo |
326 echo "ERROR: Don't know how to build RPMs for '$TARGETARCH'." | 323 echo "ERROR: Don't know how to build RPMs for '$TARGETARCH'." |
327 echo | 324 echo |
328 exit 1 | 325 exit 1 |
329 ;; | 326 ;; |
330 esac | 327 esac |
331 | 328 |
332 do_package | 329 do_package |
OLD | NEW |