| @@ -1,192 +1,191 @@ | | | @@ -1,192 +1,191 @@ |
1 | # $NetBSD: Makefile,v 1.477 2021/05/03 16:31:37 ryoon Exp $ | | 1 | # $NetBSD: Makefile,v 1.478 2021/05/06 13:14:24 ryoon Exp $ |
2 | | | 2 | |
3 | FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} | | 3 | FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} |
4 | MOZ_BRANCH= 88.0 | | 4 | MOZ_BRANCH= 88.0 |
5 | MOZ_BRANCH_MINOR= | | 5 | MOZ_BRANCH_MINOR= .1 |
6 | | | 6 | |
7 | DISTNAME= firefox-${FIREFOX_VER}.source | | 7 | DISTNAME= firefox-${FIREFOX_VER}.source |
8 | PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} | | 8 | PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} |
9 | PKGREVISION= 1 | | | |
10 | CATEGORIES= www | | 9 | CATEGORIES= www |
11 | MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} | | 10 | MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} |
12 | EXTRACT_SUFX= .tar.xz | | 11 | EXTRACT_SUFX= .tar.xz |
13 | | | 12 | |
14 | DISTFILES= ${DEFAULT_DISTFILES} nodejs-output-88.0.tgz | | 13 | DISTFILES= ${DEFAULT_DISTFILES} nodejs-output-88.0.tgz |
15 | SITES.nodejs-output-88.0.tgz= ${MASTER_SITE_LOCAL} | | 14 | SITES.nodejs-output-88.0.tgz= ${MASTER_SITE_LOCAL} |
16 | | | 15 | |
17 | MAINTAINER= ryoon@NetBSD.org | | 16 | MAINTAINER= ryoon@NetBSD.org |
18 | HOMEPAGE= https://www.mozilla.org/en-US/firefox/ | | 17 | HOMEPAGE= https://www.mozilla.org/en-US/firefox/ |
19 | COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) | | 18 | COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) |
20 | LICENSE= mpl-1.1 | | 19 | LICENSE= mpl-1.1 |
21 | | | 20 | |
22 | # -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: ------- | | 21 | # -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: ------- |
23 | # | | 22 | # |
24 | # This package works around a (stupid) build time dependency on nodejs | | 23 | # This package works around a (stupid) build time dependency on nodejs |
25 | # (which is not available for all architectures and unnecessary for the | | 24 | # (which is not available for all architectures and unnecessary for the |
26 | # real build). To do this, it places some additional burden on the | | 25 | # real build). To do this, it places some additional burden on the |
27 | # maintainer. | | 26 | # maintainer. |
28 | # | | 27 | # |
29 | # While working on the package, please make sure you have | | 28 | # While working on the package, please make sure you have |
30 | # | | 29 | # |
31 | # FIREFOX_MAINTAINER=yes | | 30 | # FIREFOX_MAINTAINER=yes |
32 | # | | 31 | # |
33 | # set in your build environment. | | 32 | # set in your build environment. |
34 | # When the package is ready for commit (but before commit), do: | | 33 | # When the package is ready for commit (but before commit), do: |
35 | # | | 34 | # |
36 | # make maintainer-files | | 35 | # make maintainer-files |
37 | # | | 36 | # |
38 | # This will do another round (depending on state of your work dir at this | | 37 | # This will do another round (depending on state of your work dir at this |
39 | # moment) of one or two builds and generate a cache of all output that | | 38 | # moment) of one or two builds and generate a cache of all output that |
40 | # nodejs generates during a build. | | 39 | # nodejs generates during a build. |
41 | # | | 40 | # |
42 | # When this is done, just commit the results (they will be in the files/ | | 41 | # When this is done, just commit the results (they will be in the files/ |
43 | # directory). | | 42 | # directory). |
44 | # | | 43 | # |
45 | # ----------------------------------------------------------------------- | | 44 | # ----------------------------------------------------------------------- |
46 | | | 45 | |
47 | UNLIMIT_RESOURCES+= datasize virtualsize | | 46 | UNLIMIT_RESOURCES+= datasize virtualsize |
48 | | | 47 | |
49 | WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} | | 48 | WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} |
50 | | | 49 | |
51 | MOZILLA_DIR= # empty | | 50 | MOZILLA_DIR= # empty |
52 | | | 51 | |
53 | # Note: when updating remember to conditionalise about-background.png in PLIST | | 52 | # Note: when updating remember to conditionalise about-background.png in PLIST |
54 | CONFIGURE_ARGS+= --enable-application=browser | | 53 | CONFIGURE_ARGS+= --enable-application=browser |
55 | | | 54 | |
56 | #CFLAGS+= -I${PREFIX}/include/nspr | | 55 | #CFLAGS+= -I${PREFIX}/include/nspr |
57 | # for lang/gcc6 | | 56 | # for lang/gcc6 |
58 | CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS | | 57 | CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS |
59 | CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS | | 58 | CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS |
60 | | | 59 | |
61 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} | | 60 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} |
62 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib | | 61 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib |
63 | LDFLAGS.DragonFly+= -lplc4 -lnspr4 | | 62 | LDFLAGS.DragonFly+= -lplc4 -lnspr4 |
64 | LDFLAGS.FreeBSD+= -lplc4 -lnspr4 | | 63 | LDFLAGS.FreeBSD+= -lplc4 -lnspr4 |
65 | LDFLAGS.Linux+= -lnspr4 | | 64 | LDFLAGS.Linux+= -lnspr4 |
66 | LDFLAGS.SunOS+= -lm | | 65 | LDFLAGS.SunOS+= -lm |
67 | | | 66 | |
68 | # XXX not sure how to test this! likely unnecessary | | 67 | # XXX not sure how to test this! likely unnecessary |
69 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container | | 68 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container |
70 | | | 69 | |
71 | # Avoid ld "invalid section index" errors. | | 70 | # Avoid ld "invalid section index" errors. |
72 | BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections | | 71 | BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections |
73 | BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections | | 72 | BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections |
74 | BUILDLINK_TRANSFORM.SunOS+= rm:-pie | | 73 | BUILDLINK_TRANSFORM.SunOS+= rm:-pie |
75 | | | 74 | |
76 | # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366 | | 75 | # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366 |
77 | BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager | | 76 | BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager |
78 | | | 77 | |
79 | SUBST_CLASSES+= dfly_malloc_h | | 78 | SUBST_CLASSES+= dfly_malloc_h |
80 | SUBST_STAGE.dfly_malloc_h= pre-configure | | 79 | SUBST_STAGE.dfly_malloc_h= pre-configure |
81 | SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd | | 80 | SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd |
82 | SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' | | 81 | SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' |
83 | SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c | | 82 | SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c |
84 | | | 83 | |
85 | .include "mozilla-common.mk" | | 84 | .include "mozilla-common.mk" |
86 | .include "options.mk" | | 85 | .include "options.mk" |
87 | | | 86 | |
88 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py | | 87 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py |
89 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py | | 88 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py |
90 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py | | 89 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py |
91 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py | | 90 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py |
92 | | | 91 | |
93 | CHECK_WRKREF_SKIP+= lib/${MOZILLA}/chrome/toolkit/content/global/buildconfig.html | | 92 | CHECK_WRKREF_SKIP+= lib/${MOZILLA}/chrome/toolkit/content/global/buildconfig.html |
94 | | | 93 | |
95 | MOZILLA= ${PKGBASE} | | 94 | MOZILLA= ${PKGBASE} |
96 | MOZILLA_ICON= ${WRKSRC}/${OBJDIR}/dist/${MOZILLA}/browser/chrome/icons/default/default48.png | | 95 | MOZILLA_ICON= ${WRKSRC}/${OBJDIR}/dist/${MOZILLA}/browser/chrome/icons/default/default48.png |
97 | .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) | | 96 | .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) |
98 | MOZILLA_NAME= Firefox | | 97 | MOZILLA_NAME= Firefox |
99 | .else | | 98 | .else |
100 | MOZILLA_NAME= Browser | | 99 | MOZILLA_NAME= Browser |
101 | .endif | | 100 | .endif |
102 | | | 101 | |
103 | # | | 102 | # |
104 | # Generate list of subst entries for various .cargo-checksum.json files. These | | 103 | # Generate list of subst entries for various .cargo-checksum.json files. These |
105 | # are all handled together in one big substitution to simplify things rather | | 104 | # are all handled together in one big substitution to simplify things rather |
106 | # than one substitution entry per file, but are kept separate below to ease | | 105 | # than one substitution entry per file, but are kept separate below to ease |
107 | # updating and verification. | | 106 | # updating and verification. |
108 | # | | 107 | # |
109 | | | 108 | |
110 | #CKSUM_CRATES+= third_party/rust/libc | | 109 | #CKSUM_CRATES+= third_party/rust/libc |
111 | | | 110 | |
112 | # patch-third__party_rust_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs | | 111 | # patch-third__party_rust_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs |
113 | #CKSUMS+= a3540eab4dbc52e006e84e288bad17e1dae3865fea49020e0ed8b5a7724a9532 | | 112 | #CKSUMS+= a3540eab4dbc52e006e84e288bad17e1dae3865fea49020e0ed8b5a7724a9532 |
114 | #CKSUMS+= 5e58a2109f5eff0f497dfac150c161c1d517a2227b49e086da96c3d66522ac3a | | 113 | #CKSUMS+= 5e58a2109f5eff0f497dfac150c161c1d517a2227b49e086da96c3d66522ac3a |
115 | | | 114 | |
116 | #CKSUM_CRATES+= third_party/rust/getrandom | | 115 | #CKSUM_CRATES+= third_party/rust/getrandom |
117 | | | 116 | |
118 | # patch-third__party_rust_getrandom_src_lib.rs | | 117 | # patch-third__party_rust_getrandom_src_lib.rs |
119 | #CKSUMS+= 0e52f6bde42d7bb05c297ce1c25b9879d61b28caba98f6226a152bff538db6c2 | | 118 | #CKSUMS+= 0e52f6bde42d7bb05c297ce1c25b9879d61b28caba98f6226a152bff538db6c2 |
120 | #CKSUMS+= 394425b4ba03c21c494e64d993678f7014575b1e3d590b9ee452b5c2d83ec4ac | | 119 | #CKSUMS+= 394425b4ba03c21c494e64d993678f7014575b1e3d590b9ee452b5c2d83ec4ac |
121 | | | 120 | |
122 | #SUBST_CLASSES+= cksum | | 121 | #SUBST_CLASSES+= cksum |
123 | #SUBST_STAGE.cksum= pre-configure | | 122 | #SUBST_STAGE.cksum= pre-configure |
124 | #.for crate in ${CKSUM_CRATES} | | 123 | #.for crate in ${CKSUM_CRATES} |
125 | #SUBST_FILES.cksum+= ${crate}/.cargo-checksum.json | | 124 | #SUBST_FILES.cksum+= ${crate}/.cargo-checksum.json |
126 | #.endfor | | 125 | #.endfor |
127 | #.for from to in ${CKSUMS} | | 126 | #.for from to in ${CKSUMS} |
128 | #SUBST_SED.cksum+= -e 's,${from},${to},g' | | 127 | #SUBST_SED.cksum+= -e 's,${from},${to},g' |
129 | #.endfor | | 128 | #.endfor |
130 | | | 129 | |
131 | pre-configure: | | 130 | pre-configure: |
132 | cd ${WRKSRC} && autoconf | | 131 | cd ${WRKSRC} && autoconf |
133 | cd ${WRKSRC}/js/src && autoconf | | 132 | cd ${WRKSRC}/js/src && autoconf |
134 | cd ${WRKSRC} && mkdir ${OBJDIR} | | 133 | cd ${WRKSRC} && mkdir ${OBJDIR} |
135 | cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars | | 134 | cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars |
136 | # Do not fetch Rust Cargo file via network during build | | 135 | # Do not fetch Rust Cargo file via network during build |
137 | .if !defined(FIREFOX_MAINTAINER) | | 136 | .if !defined(FIREFOX_MAINTAINER) |
138 | mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR} | | 137 | mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR} |
139 | .endif | | 138 | .endif |
140 | | | 139 | |
141 | .if defined(FIREFOX_MAINTAINER) | | 140 | .if defined(FIREFOX_MAINTAINER) |
142 | # Create files needed only by the firefox maintainer when updating | | 141 | # Create files needed only by the firefox maintainer when updating |
143 | # the package | | 142 | # the package |
144 | # XXX - manually removing the .*_done files is wrong! | | 143 | # XXX - manually removing the .*_done files is wrong! |
145 | .PHONY: build-list | | 144 | .PHONY: build-list |
146 | build-list: | | 145 | build-list: |
147 | cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \ | | 146 | cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \ |
148 | find . -type f | sort > ${OUT:Q} | | 147 | find . -type f | sort > ${OUT:Q} |
149 | | | 148 | |
150 | NODE_LIST="${WRKDIR}/node.list" | | 149 | NODE_LIST="${WRKDIR}/node.list" |
151 | NO_NODE_LIST="${WRKDIR}/no-node.list" | | 150 | NO_NODE_LIST="${WRKDIR}/no-node.list" |
152 | NODE_FILES="${WRKDIR}/node.flist" | | 151 | NODE_FILES="${WRKDIR}/node.flist" |
153 | | | 152 | |
154 | .PHONY: maintainer-files | | 153 | .PHONY: maintainer-files |
155 | maintainer-files: | | 154 | maintainer-files: |
156 | rm -f ${FILESDIR}/node-wrapper.sh | | 155 | rm -f ${FILESDIR}/node-wrapper.sh |
157 | V=$$( node -v ) && \ | | 156 | V=$$( node -v ) && \ |
158 | printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \ | | 157 | printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \ |
159 | > ${FILESDIR}/node-wrapper.sh && \ | | 158 | > ${FILESDIR}/node-wrapper.sh && \ |
160 | chmod 0755 ${FILESDIR}/node-wrapper.sh | | 159 | chmod 0755 ${FILESDIR}/node-wrapper.sh |
161 | rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done | | 160 | rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done |
162 | $(MAKE) MAINTAINER_INTERNAL=yes build | | 161 | $(MAKE) MAINTAINER_INTERNAL=yes build |
163 | $(MAKE) MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list | | 162 | $(MAKE) MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list |
164 | $(MAKE) OUT="${NODE_LIST}" build-list | | 163 | $(MAKE) OUT="${NODE_LIST}" build-list |
165 | ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \ | | 164 | ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \ |
166 | ${AWK} \ | | 165 | ${AWK} \ |
167 | '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \ | | 166 | '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \ |
168 | > "${NODE_FILES}" | | 167 | > "${NODE_FILES}" |
169 | cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \ | | 168 | cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \ |
170 | -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz | | 169 | -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz |
171 | .endif | | 170 | .endif |
172 | | | 171 | |
173 | post-build: | | 172 | post-build: |
174 | ${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \ | | 173 | ${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \ |
175 | -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \ | | 174 | -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \ |
176 | -e 's|@FIREFOX_ICON@|${MOZILLA}.png|g' \ | | 175 | -e 's|@FIREFOX_ICON@|${MOZILLA}.png|g' \ |
177 | < ${FILESDIR}/desktop.in \ | | 176 | < ${FILESDIR}/desktop.in \ |
178 | > ${WRKDIR}/desktop | | 177 | > ${WRKDIR}/desktop |
179 | | | 178 | |
180 | INSTALLATION_DIRS+= share/applications share/pixmaps | | 179 | INSTALLATION_DIRS+= share/applications share/pixmaps |
181 | post-install: | | 180 | post-install: |
182 | ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA} | | 181 | ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA} |
183 | ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \ | | 182 | ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \ |
184 | ${DESTDIR}${PREFIX}/bin/${MOZILLA} | | 183 | ${DESTDIR}${PREFIX}/bin/${MOZILLA} |
185 | ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA} | | 184 | ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA} |
186 | ${INSTALL_DATA} ${WRKDIR}/desktop \ | | 185 | ${INSTALL_DATA} ${WRKDIR}/desktop \ |
187 | ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop | | 186 | ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop |
188 | ${INSTALL_DATA} ${MOZILLA_ICON} \ | | 187 | ${INSTALL_DATA} ${MOZILLA_ICON} \ |
189 | ${DESTDIR}${PREFIX}/share/pixmaps/${MOZILLA}.png | | 188 | ${DESTDIR}${PREFIX}/share/pixmaps/${MOZILLA}.png |
190 | | | 189 | |
191 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | | 190 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" |
192 | .include "../../mk/bsd.pkg.mk" | | 191 | .include "../../mk/bsd.pkg.mk" |