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