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