Commit Graph
30 Commits
Author SHA1 Message Date
Basilisk-Dev d7884bb96c No issue - Fix faster build packaging on Python 3 2026-08-10 19:10:11 +08:00
Jeremy Andrews 3b0aadb95c Issue #3038 - Fix ccache builds and clean up Python 3.14 warning spew.
None of these resulted in build bustage using our default configuration,
but apparently ccache builds were broken due to a bytes/text issue. Wish
the original reporter had mentioned he was using ccache, but he saved me
a lot of busywork. Changes appear safe across whole range of Python
versions we support.
2026-04-08 02:31:52 -05:00
Jeremy Andrews 017e021c37 Issue #2974 - Part 65: Last-minute Linux fixes.
Forgot to test packaging on Linux this whole time.

Also, kept forgetting to commit these random changes to mozbuild
files that just refer to GNU/kFreeBSD consistently as kFreeBSD.

Not because it's the right thing to call it, but because it's
what we have in the enums that works consistently right now.
And ripping out support entirely would be out of scope.
2026-03-25 11:47:07 -05:00
Jeremy Andrews 19f0115559 Issue #2974 - Part 50: Remove distutils.version and replace.
Python no longer provides any version-related utilities in stdlib.

Did a thorough grep and made absolutely sure to replace every last
use. This was the work I was avoiding during my first port...

Ref: PEP 632, BZ 1777414, BZ 1858065, BZ 1766085
2026-03-20 04:14:03 -05:00
Jeremy Andrews 4e11fab9b4 Issue #2974 - Part 48: Python 3.8+ related fixes.
Got everything working under older Python 3, to deal with fewer issues at once.
Now the following had to be done:

- time.clock had to be replaced with time.process_time
- Drive letters now need explicit normalization because they are uppercase
by default (was the reason why I had to turn everything into a relpath before).
- Virtualenv works, but needs a couple extra modules because of new includes
in newer Python 3 versions.
2026-03-17 03:10:33 -05:00
Jeremy Andrews 8cb419166a Issue #2974 - Part 47: Fix packaging.
Tested ./mach package, ./mach mozpackage, ./mach installer, and ./mach mar
Everything should work.
2026-03-16 19:28:14 -05:00
Jeremy Andrews 889a1c39c5 Issue #2974 - Part 45: Miscellaneous build system tweaks.
Most notably, these tweaks were needed to fix ./mach build faster.
Also chose to set NSDISTMODE=copy by default for Windows, since
wildcards will be symlinks otherwise. This will always fail
because our binaries have the symlinked MSVC DLLs in their import
tables, and Windows loader silently fails in this situation.
2026-03-15 19:01:00 -05:00
Jeremy Andrews f335e05ff6 Issue #2974 - Part 42: Jar and preprocessor changes.
For strings/bytes issue, used a similar strategy to what I saw in our old
layout code, having a flag set to be false by default as it's passed from
function to function, eventually being activated and doing something at
a specific point in the loop if it's ever true. The datetime stuff is
simply because in Python 3, integer comparisons were failing so I had
to make both sides be an integer Unix timestamp.
2026-03-15 15:49:04 -05:00
Jeremy Andrews 1545a33858 Issue #2974 - Part 40: Miscellaneous build system tweaks prior to new configobj.
More small tweaks mostly related to decoding/encoding, some not even related to
failures but are more anxiously done in anticipation of something going wrong.
Even though these are called commits, I often revise little things several
times because I am not sure what the most robust approach would be.
2026-03-14 19:57:16 -05:00
Jeremy Andrews 0dbe65d6af Issue #2974 - Part 37: Fix malformed track files.
The issue was essentially that the fourth field was being stripped due to the
way Python 3 handles text. I solved the problem originally with a "pad" hack to
add the extra space back in, since that actually gets interpreted as a reference
to the current directory. The eventual solution mostly involved using . instead of
a blank space to refer to the current directory. Don't know if the other stuff
was needed, may remove later if it causes any issues.
2026-03-14 18:51:21 -05:00
Jeremy Andrews 214fc9bdfb Issue #2974 - Part 35: FileAvoidWrite changes and other tweaks after new gyp.
Most notable changes are the ugly stuff I had to do in FileAvoidWrite and
everything that interacts with it, which is where I expect a lot future pain
and revision to enter the picture from, if I have to revisit this part of the
work again.
2026-03-11 02:17:23 -05:00
Jeremy Andrews cb559a5eb2 Issue #2974 - Part 33: Miscellaneous build system tweaks prior to new gyp.
Not really sure how to categorize these, except they are either
language-related cleanups, small bug fixes, or are careful to decode
things using the preferred OS encoding where reasonable. A lot of UTF-8 only
worked by luck because it only tried to decode ASCII bytes, or had good
replacements for bad chars due to explicit error handling.

I'm basically just commiting the last state before I update gyp, because
I can't really proceed without updating it, and that's a big enough step I want
it to have its own commit... and also don't want it mixed in with other stuff.
2026-03-09 23:28:50 -05:00
Jeremy Andrews 7abb343363 Issue #2974 - Part 18: Use str instead of unicode.
The standard str is unicode now...

2to3 . --fix unicode -wpn

Ref:
https://docs.python.org/3/whatsnew/3.0.html
2026-03-05 21:38:47 -06:00
Jeremy Andrews af6ae6a1d3 Issue #2974 - Part 17: Use new unittest names.
2to3 . --fix asserts -wpn

Ref:
https://docs.python.org/3.11/library/unittest.html#deprecated-aliases
2026-03-05 21:11:31 -06:00
Jeremy Andrews 0c61ee391c Issue #2974 - Part 14: Moved libraries and imports.
reduce is moved to functools, urllib reogranized.

2to3 . --fix urllib -wpn
2to3 . --fix reduce -wpn
2to3 . --fix import -wpn
2to3 . --fix imports -wpn
2to3 . --fix imports2 -wpn

Ref: PEP 3108, PEP 3100
https://peps.python.org/pep-3108/
https://peps.python.org/pep-3100/
2026-03-04 20:24:12 -06:00
Jeremy Andrews 5fdc8dd723 Issue #2974 - Part 13: Adapt octal number syntax.
Used to be like C, with 0755 or something, now it's
0o755. Also, long and int are the same type now.

2to3 . --fix numliterals -wpn
2to3 . --fix long -wpn

Ref: PEP 3127, PEP 237
https://peps.python.org/pep-3127/
https://peps.python.org/pep-0237/
2026-03-04 20:03:01 -06:00
Jeremy Andrews 8c0f0ccdcf Issue #2974 - Part 6: Adapt dict
2to3 . --fix dict -wpn

Py2 dict was a list by default, the iterator versions
were switched around to be the default.
This lets you have the old behavior. Mechanical.

Ref: PEP 3106
https://peps.python.org/pep-3106/
2026-03-04 13:56:53 -06:00
Jeremy Andrews 112c119477 Issue #2974 - Part 5: Adapt zip
2to3 . --fix zip -wpn

Py2 zip was a list, now zip is an iterator.
This lets you have the old behavior. Mechanical.

Ref:
https://www.artima.com/weblogs/viewpost.jsp?thread=208549
2026-03-04 13:29:40 -06:00
Jeremy Andrews 49615281cd Issue #2974 - Part 2: Adapt range/xrange.
2to3 . --fix xrange -wpn

range takes the place of Py2 xrange.
Py2 range was a list. Mechanical, did
it by hand several times...

Ref:
https://docs.python.org/3/whatsnew/3.0.html#range
2026-03-04 08:33:16 -06:00
Jeremy Andrews e11fc9b4cf Issue #2974 - Part 1: Adapt all print statements.
2to3 . --fix print -wn
Essentially, print is a function instead of statement.
Ref:
PEP 3105
https://peps.python.org/pep-3105/
2026-03-04 03:48:01 -06:00
Brian Smith eae076209f Issue #2268 - Fix Mac packaging by making the individual parts configurable.
Add --with-macbundle-entitlement= to specify alternate entitlements or "none"
Add --with-macbundle-type=hybrid to use the old DMG format.
2023-07-07 17:46:55 -05:00
Brian Smith 688394928d No Issue - Updates to Mac packaging for notarization. Add Mac entitlements.
Switch to using "create" instead of "makehybrid" when creating the disk image.
This fixes bogus extended attributes which interfere with the code signature.
Finally add any -bin or dylibs in the Resources folder since --deep skips that folder.
2023-05-08 20:18:12 -05:00
Brian Smith 26b3d4c151 Issue #2160 - Initial support for notarizing during DMG package.
Added --with-macbundle-idenity configure option to set a codesign identity.
If no identity is set or cross-compiling from Linux no codesigning will be
done. Currently doing a full deep bundle v2 sign, instead of limited v1.
2023-03-14 15:28:51 -05:00
FranklinDM 13e658a200 Issue #2065 - Part 2: Expand pattern when track file is created rather than read
This fixes build bustage on Windows when using `mach build faster`.

Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1416465
2022-12-24 12:57:48 +08:00
Jeremy Andrews e6c662b5c6 Issue # 1824 - Restore NSDISTMODE, and have SunOS use it by default.
To make a long story short, there's an old flag called NSDISTMODE that
was never added to old-configure so it could be passed down through the
build system to all the places it needs to go nowadays if used in your
.mozconfig, but which still sort of works when set as an environment
variable. If you leave it unset, it uses relative symlinks. However, it
has two other modes. One of them is "copy" and the other is
"absolute_symlink." Copy simply copies the files into the directory, and
absolute_symlink attempts to use absolute symlinks instead of relative
ones.

I've been wondering for a while now if there was a way to make the
shared library files in `dist/bin` that we use `./mach run` against
*not* be relative symlinks, and this seems to be that elusive technique.

It seems to be a part of the institutional memory that was all but lost
shortly after Netscape went under. You mostly see a few references to it
in NSS, NSPR, and the Makefiles in the `config` directory. And also
there is one reference in a Makefile in the application directory, which
seems to explains why application executables themselves usually aren't
symlinks:

/platform/libs/nspr/src/pr/src/md/unix/Makefile.in#76
/platform/libs/nss/src/coreconf/UNIX.mk#34
/palemoon/app/Makefile.in#30
/platform/config/config.mk#396

My patch essentially revives NSDISTMODE and makes it work as intended
again, more or less. Some parts of the work are loosely inspired by this
bug that was never finished upstream, showing that Mozilla only
rediscovered it earlier this year while trying to disable symlinks in
dist/bin for WSL, as far as I can tell.

https://bugzilla.mozilla.org/show_bug.cgi?id=1699855
2022-04-06 00:04:36 +02:00
Moonchild ce0cefe053 Issue #1053 - Second pass remove android defines and build system stuff.
Mostly IPC, tools and mozbuild.
2022-04-01 15:47:43 +02:00
Moonchild 6d2e301d90 [packager] Optimize archive accesses. 2020-11-14 01:03:27 +00:00
Matt A. Tobin 4d80ed3d51 Issue #1470 - Part 3: Remove now unused update.locale
This requires changes to package-manifest in all applications
2020-03-05 19:30:38 -05:00
Matt A. Tobin c137a4045c Issue #1359 - Pointlessly rename greprefs.. again. 2020-01-18 13:17:41 -05:00
Matt A. Tobin 5f8de423f1 Add m-esr52 at 52.6.0 2018-02-02 04:16:08 -05:00