Commit graph

90 commits

Author SHA1 Message Date
Dan Stillman
df78b51dab Re-sign Mozilla helper apps in unsigned Mac builds with custom components
Mozilla's helper apps (GPU, content, etc.) use the hardened runtime and
Mozilla's Team ID, so in unsigned builds they couldn't load our custom
libmozglue.dylib and failed to launch. Re-sign them ad hoc.
2026-09-28 13:56:59 -04:00
Abe Jellinek
a64e367160
Patch libmozglue to prevent local voices from clicking on macOS 27 (#6056)
---------

Co-authored-by: Dan Stillman <dstillman@zotero.org>
2026-09-28 11:44:16 -04:00
Dan Stillman
22b3daf845 Don't require rsync in build.sh
rsync isn't available on Windows, so fall back to cp for directory
copies.
2026-08-20 12:34:40 -04:00
Dan Stillman
8fb2870f93 Restore dxcompiler.dll on Windows for WebGPU and leave WebGPU pref on
mozinference (which is currently CPU-only) is better for many tasks, but
plugins may want WebGPU for some features (e.g., chatbots), so just
follow Firefox, which currently enables it by default for Windows and
Apple Silicon macOS. Adds 5.8 MB compressed to the Windows installer.
2026-08-05 14:10:04 -04:00
Dan Stillman
aaeb9c6c9a fx153: Don't bundle unused Firefox runtime files
Some checks are pending
CI / Test (shard 1) (push) Waiting to run
CI / Test (shard 2) (push) Waiting to run
CI / Test (shard 3) (push) Waiting to run
CI / Test (shard 4) (push) Waiting to run
CI / Utilities Tests (push) Waiting to run
CI / Build, Upload (push) Waiting to run
Skip crashhelper (all platforms -- the crash reporter is disabled) and
desktop-launcher and nmhproxy.exe (Windows).

Also skip dxcompiler.dll (Windows, 22 MB), which is loaded only by
WebGPU, now also disabled via pref. Nothing renders with WebGPU, and
local ML -- including any future plugin API -- should go through
Firefox's inference libraries (mozinference/onnxruntime), which are
compiled CPU-only.
2026-08-04 14:42:40 -04:00
Dan Stillman
97de8858fe fx153: Use font glyphs for Windows titlebar buttons
Firefox 153 removed the chrome://browser/skin/window-controls/ SVGs and
now draws the caption buttons with Segoe Fluent Icons glyphs (falling
back to Segoe MDL2 Assets on Windows 10), which broke the Windows build.
Port the new browser.css button styling and stop keeping the removed
directory in build.sh.
2026-08-04 14:42:06 -04:00
Dan Stillman
3430ad241b fx153: Keep our own Assets.car in the Mac app
Firefox 153 ships an asset catalog with its own AppIcon, which the merge
from Firefox's Resources copied over ours, so the app got the Firefox
icon.
2026-08-03 11:48:42 -04:00
Dan Stillman
00cad2ced0 Remove 32-bit Linux build support
Mozilla stopped publishing linux-i686 builds after Firefox 144, so there's
no 153 runtime to build against.
2026-08-03 11:48:42 -04:00
Dan Stillman
8110ab4eea Add a newline after the Zotero prefs in the built prefs file
Babel strips the trailing newline from defaults/preferences/zotero.js, so
the platform-specific prefs appended after it shared a line with the last
Zotero pref.
2026-08-03 11:48:41 -04:00
Dan Stillman
45e38322e1 fx153: Keep backup-constants.mjs
SelectableProfile.sys.mjs now statically imports BackupService, which
statically imports chrome://browser/content/backup/backup-constants.mjs,
so startup failed once SelectableProfileService was instantiated as a
command-line handler.
2026-08-03 11:48:41 -04:00
Dan Stillman
b7232f130f fx153: Don't remove the Pocket actor, removed from Firefox 2026-08-03 11:48:39 -04:00
Dan Stillman
ce20a5f228 Ship legacy Safari App Extension alongside the web extension on Mac
Developer ID-signed Safari web extensions load only in Safari 18.4 and
later -- older Safari blocks them at the code-signing layer -- so macOS
11 and 12 users, whose Safari versions top out at 16.6 and 17.6, lost
the connector with the web extension conversion.

Embed the prebuilt legacy App Extension ($SAFARI_APP_EXTENSION, set by
the deploy scripts) at Contents/PlugIns/ZoteroSafariExtension.appex with
the historical bundle identifier, and move the web extension to
Contents/PlugIns/ZoteroSafariWebExtension.appex with a new
.SafariWebExtension identifier. The web extension's
SFSafariAppExtensionBundleIdentifiersToReplace key causes Safari
versions that can load it to hide the App Extension and migrate its
enabled state, while older Safari shows only the App Extension.

Also remove the removed-files entries for the App Extension's
resources, which would otherwise delete them on update.

https://forums.zotero.org/discussion/132925/
2026-07-28 07:24:27 -04:00
Dan Stillman
6fb30346e6 Bundle Safari web extension instead of Safari App Extension
Some checks are pending
CI / Test (shard 1) (push) Waiting to run
CI / Test (shard 2) (push) Waiting to run
CI / Test (shard 3) (push) Waiting to run
CI / Test (shard 4) (push) Waiting to run
CI / Utilities Tests (push) Waiting to run
CI / Build, Upload (push) Waiting to run
The connector is now a Safari web extension, so the bundled appex is a
static wrapper stub whose placeholder resources are replaced at build
time with a connector build via $SAFARI_EXT_RESOURCES. The stub only
needs to be rebuilt when the native wrapper project changes, not for
connector releases.
2026-07-22 15:11:23 -04:00
Dan Stillman
228799774f Sign both per-arch JNA .jnilibs in LibreOffice plugin during Mac build
Some checks are pending
CI / Test (shard 1) (push) Waiting to run
CI / Test (shard 2) (push) Waiting to run
CI / Test (shard 3) (push) Waiting to run
CI / Test (shard 4) (push) Waiting to run
CI / Utilities Tests (push) Waiting to run
CI / Build, Upload (push) Waiting to run
JNA 5.x ships per-architecture macOS native libraries instead of a
single com/sun/jna/darwin/ directory, so the notarization re-signing
step failed with "filename not matched".

This step can be removed entirely once the plugin ships a jna.jar
without the macOS natives, which are never loaded.
2026-07-16 12:54:47 -04:00
Abe Jellinek
ba7e036582 Devtools: Fix profiler (Performance tab)
Fixes #5111
2026-05-13 14:01:55 -04:00
Mynacol
ede90ac04a
Make icons directory during build (#5889) 2026-05-04 15:27:03 -04:00
Adomas Venčkauskas
3386490a03 Fix browser toolbox switching windows breaking script debugging 2026-02-20 12:11:25 +02:00
Yago Iglesias
fe3021701e
Use grep -E instead of egrep (#5789) 2026-02-09 09:54:19 -05:00
Dan Stillman
072b2e3285 Force Firefox refetch when switching to older branch 2025-07-30 22:30:55 -04:00
Dan Stillman
b50d87a6f4 Fix stderr output in build script 2025-07-30 22:30:54 -04:00
Dan Stillman
69963dce2c Re-enable packaging of the updater on Linux 2025-07-30 22:30:54 -04:00
Dan Stillman
38cfc233cf Fix various bugs in the build scripts on Linux
After the arch-specific-builds overhaul
2025-07-30 22:30:54 -04:00
Dan Stillman
3e0d2c06f1 Support arch-specific builds on Windows and Linux
`fetch_xulrunner`, `dir_build`, and `build.sh` now take an optional `-a`
argument on Windows and Linux to specify the architecture to
fetch/build. If `-a` is omitted for `dir_build` (as in `build_and_run`),
it defaults to the current architecture.

xulrunner hashes are now computed for each architecture. This changes
some filenames in xulrunner/, so you may want to clean out some old
folders/files.

This removes the custom handling for CI, since it will now default to
the architecture of the test runner.
2025-07-30 22:30:53 -04:00
Dan Stillman
94aa126107 Fix signing of Mac builds with fx140
There's now an UpdateSettings.framework in the updater that needs to be
signed before the updater itself can be signed.
2025-07-30 22:30:52 -04:00
windingwind
6222737d1a fx140: Fix titlebar and window control icons 2025-07-30 22:30:33 -04:00
Dan Stillman
e6cd5f322f TEMP: Disable Linux updater
Since we haven't yet build an ARM64 updater
2025-07-30 22:18:34 -04:00
Dan Stillman
0f7590ad13 fx140: Comment out some lines that were failing
I didn't check to see which of these have just moved.
2025-07-30 22:18:34 -04:00
Dan Stillman
832575b7c0 Update build scripts for Linux ARM64
This doesn't include an ARM updater, so those lines in build.sh need to
be commented out for the build to succeed.

Addresses #3515
2025-07-30 22:15:31 -04:00
Dan Stillman
3144314d20 Use parent app CFBundleIdentifier as prefix for Safari extension
Instead of org.zotero.SafariExtensionApp.

I don't know if this will help with spurious signature failures, but it
can't hurt.
2025-04-24 02:15:17 -04:00
Abe Jellinek
1c089bf448 Fix broken spellchecking when only en-US is installed
Regression in 26221b6786
2025-04-21 10:51:28 -04:00
Abe Jellinek
ac0813e0f5
Restore window controls on Windows/Linux (#5083) 2025-03-07 16:24:46 -05:00
windingwind
1b64e3417c
Fix web-ext support (#5068) 2025-02-27 22:28:42 -05:00
Abe Jellinek
26221b6786 Fix broken browser window on print + remove many Mozilla files (#5050) 2025-02-26 03:00:04 -05:00
Dan Stillman
553e2466ed Revert "Add script to install .desktop file on Linux (#5019)"
After further consideration, doing this in-app makes more sense. This
way, we'd never be able to update the desktop file automatically (e.g.,
to add a new MimeType), and removing the template zotero.desktop file
would break all existing installs using our symlink instructions.
In-app, we can update the existing desktop file on restart after an
upgrade, and we can remove the existing symlink.

This reverts commit 0ac57f8262.
2025-01-31 01:19:18 -05:00
Dan Stillman
0ac57f8262
Add script to install .desktop file on Linux (#5019) 2025-01-30 02:56:10 -05:00
Dan Stillman
e1cee8cc45 Don't try to initialize Places, since we removed its files 2025-01-21 05:17:36 -05:00
Dan Stillman
ab9849e71a fx128: Add arrowscrollbox.ftl from Mozilla
Fixes locales not being fully loaded, including for plugins, in 128

https://groups.google.com/g/zotero-dev/c/kcQ-A3EclBQ/m/ShIFTfM6DAAJ
2025-01-08 01:41:29 -05:00
Dan Stillman
c672392fe4 Move misplaced line in build script 2025-01-03 01:21:57 -05:00
Dan Stillman
7e7ceffd77 Move utility functions for build to separate file
`replace_line`, etc.

To make them available to both build.sh and fetch_xulrunner
2025-01-03 01:21:57 -05:00
Dan Stillman
fd7e0ec640 Adjust macOS signing
- Only use entitlements when necessary
- Pass list of files from `find` command to single `codesign` call
2024-12-14 01:16:04 -05:00
Dan Stillman
507fd519bb Omit minidump-analyzer and nmhproxy from Firefox on macOS 2024-12-14 01:16:04 -05:00
Dan Stillman
f341341012 Use custom ChannelPrefs.framework to set Mac update channel
Mac Firefox builds now specify the update channel via a custom macOS
framework:

https://bugzilla.mozilla.org/show_bug.cgi?id=1799332

We set the update channel in the build script, so bundle a custom
ChannelPrefs framework set to "source" and then patch the binary as
necessary for non-source channels. What could go wrong?
2024-12-14 01:16:01 -05:00
Dan Stillman
05ae75d3b4 Update build process for Firefox 128 2024-12-14 01:16:00 -05:00
Dan Stillman
e9f3d667b3 Windows signing fixes
- Sign zotero.exe in ZIP builds
- Re-sign xul.dll, which we modify in fetch_xulrunner
- Remove xul.dll.sig, a file for Widevine CDN that we don't need and
  that presumably doesn't match anymore
- Sign Word plugin DLL

https://forums.zotero.org/discussion/119766/tenable-invalid-signature-on-xul-dll
2024-11-21 01:14:38 -05:00
abaevbog
c567905bf6
fix color scheme getting reset during printing (#4807)
LightweightThemeConsumer interacts with the color scheme,
so disabling it prevents the color scheme from changing
whenever zoteroPrint runs.

Fixes: #4782
2024-11-06 23:00:44 -05:00
Dan Stillman
4c04dc583e Sign .jnilib within LibreOffice extension to fix macOS notarization
Apple's notarization service started rejecting the libjnidispatch.jnilib
file within a .jar within the .oxt for not being signed.
2024-09-05 09:13:20 -04:00
Dan Stillman
d879c507a5 Enable auto-scroll by default on Linux
Fixes #4537
2024-08-13 00:06:34 -04:00
Dan Stillman
b8b4bebfc5 Windows installer: Improve architecture detection
Show an appropriate error if the ARM64 installer is run on non-ARM
Windows or if the x64 installer is run on a 32-bit system, and set the
correct architecture in `CurrentVersion\Uninstall` registry key.

Also fix `x86`/`x64` being swapped in the registry
(https://groups.google.com/g/zotero-dev/c/1Aju4t2TNTo/m/Ga4V8vLrAQAJ)
2024-08-10 04:26:58 -04:00
Dan Stillman
6e155de3e1 Windows installer: Change HAVE_64BIT_OS to HAVE_64BIT_BUILD
https://bugzilla.mozilla.org/show_bug.cgi?id=598615
2024-08-10 02:14:40 -04:00
Dan Stillman
1d5971c48f Windows: Change Zotero version in "Add or remove programs" after update
Fixes #4454
2024-07-30 02:20:04 -04:00