Граф коммитов

349 Коммитов

Автор SHA1 Сообщение Дата
Justin Wood 6af7d5e25b Bug 1547730 - Finish up some final py3-izing in getting mozjar.py to work in py3 r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28120

--HG--
extra : rebase_source : d0561578250ee77b4d14907cdaf83e69c60b42ff
extra : intermediate-source : 3dce2de9ddc1c36a4564337ecdfc5f4d5ed751c5
extra : source : 6dac07ac6e344d3f034cefeedead4642c2d69949
2019-04-18 15:21:31 -04:00
Justin Wood d184f587d9 Bug 1547730 - Use six.moves.reduce for reduce() r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28109

--HG--
extra : rebase_source : 2424c40ab3eb265fe648fe180efd54a2662a2cc6
extra : intermediate-source : b59641f0aedeb489ec278108ff93739c2584264d
extra : source : 45791a6aa570cd11fc426a565eb4fffad250319e
2019-04-15 20:39:47 -04:00
Justin Wood 7c638ba8b3 Bug 1547730 - Use six.moves for urllib.urlparse r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28108

--HG--
extra : rebase_source : 33c707a33e478fb558e58c5b878f6da63b14927b
extra : intermediate-source : aa83f8790d9b9b16c756bc8311e7d57028abf487
extra : source : 8421e3222f669eae250a3b3facf8afa989ccc2c4
2019-04-15 16:57:21 -04:00
Justin Wood b294b5deaf Bug 1547730 - Fix b''.join(rand.choice(bytestring)..) to use bytes() constructor instead r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28107

--HG--
extra : rebase_source : b630c75e57f967d70704dcffbbac0fa1aeb4e627
extra : intermediate-source : 59159c8d965b9f1fe7a8d7ac498f1e56489e578a
extra : source : 915a3ded66d8f598a8c6541dbbf842e5f12fc7e2
2019-04-15 15:26:30 -04:00
Justin Wood d7b09050eb Bug 1547730 - Use six.moves.xrange() instead of xrange() r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28106

--HG--
extra : rebase_source : acdaa3f79f373904856940fa2df7475b941ffb20
extra : intermediate-source : a81b134559b396b811246e619e4d44b6c466e4c3
extra : source : 9ddfc1afd4255d67288111b41ea94371e3308a48
2019-04-15 14:50:56 -04:00
Justin Wood 8d0a1c56b3 Bug 1547730 - don't use py2 builtin 'unicode' in mozpack and deps r=#build
Also adjust 'basestring' usage in some places.

Differential Revision: https://phabricator.services.mozilla.com/D28102

--HG--
extra : rebase_source : f0fecd6b040336b0cf2f055e266fe37eea5a9a48
extra : intermediate-source : 712718250f0ba5c286c1fb6b6c7f370b713c7225
extra : source : 6b24ce2da518d8158e13627adb11c9fcad19c92a
2019-04-16 17:07:08 -04:00
Justin Wood 76d0c8183b Bug 1547730 - do s/StringIO.StringIO/six.StringIO/ to support py3 r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28101

--HG--
extra : rebase_source : 25292a350368f109b22350fedc066f2cd257b697
extra : intermediate-source : 284a97f47d5027b4d24c76f56bb133fea477555f
extra : source : 7e0974046e5680b87e4510df0dc3279be453ef9c
2019-04-14 22:18:34 -04:00
Justin Wood 68e0b22686 Bug 1547730 - do py3 for cStringIO r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28100

--HG--
extra : rebase_source : 419048b9789f19654bd6ceecc03f49e59fcf892d
extra : intermediate-source : ee3331ee87251ff67a9b55621d46efe655d58688
extra : source : ab5251d098f1f8bf9a6e258d26a6ab6b970421bf
2019-04-14 21:54:36 -04:00
Justin Wood 1ee18bb7cd Bug 1547730 - Allow testing of mozpack on py3 r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28097

--HG--
extra : rebase_source : b144cfa0bf39dcc2b83b9835d3bff78fc584ff4a
extra : intermediate-source : 0e6ee14716921960659543fa96b4a77b6a94ad1d
extra : source : 67f44c65a566f23a61cd1d9060598c82308e873b
2019-04-14 21:19:18 -04:00
Justin Wood 8ddab33e40 Bug 1547730 - use six.iterkeys() r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28119

--HG--
extra : rebase_source : 9cfc9144d3ce93399b61ccb995969eec41077da0
extra : intermediate-source : bdda365cb339d564d04b0e272760c079027d9d52
extra : source : 4e80dff16232c3331e5c5eb70120e4e66b4b354a
2019-04-16 17:11:42 -04:00
Justin Wood 6dbc4a2979 Bug 1547730 - Do six.itervalues instead of dict.itervalues r=#build
Differential Revision: https://phabricator.services.mozilla.com/D28104

--HG--
extra : rebase_source : e1537e9276e7253e97fac83c08fa0c1553dce7b9
extra : intermediate-source : 0415061eb0785b51d8003028dff21108d88cd86a
extra : source : 2ddb030c673d7d643d3b8151472d35d9d9c55ccd
2019-04-15 13:47:38 -04:00
Justin Wood 91e37fa7ff Bug 1547730 - Do dict.iteritems() via six to support py3. r=#build
shellutil.py needed special handling since it is invoked earlier than the
vendor directory adding we do, so it does not have six available.

Differential Revision: https://phabricator.services.mozilla.com/D28096

--HG--
extra : rebase_source : c5c611d280dc821747c9db736e4943c2cc421557
extra : intermediate-source : 30fb268b41fdc45937a22ab446a8805fb099c1f0
extra : source : d102292b6b5b812e7df165116410488d18042bd3
2019-04-15 11:48:03 -04:00
Justin Wood f611290984 Bug 1542963 - Insert unicode_literals into python/mozbuild/mozpack and called mozbuild/* files. r=#build
Lint python/mozbuild/{mozbuild,mozpack}.

This makes sure we use byte strings (type(b'')) in many places.
This also has a few places where we know we want unicode, by enforcing it.

This code also has a few places where we call into windows API's which expect either all args to be unicode,
or all args to be bytestrings (not-unicode) so make sure those calls align.

This is the most risky of the stack, since there are some mach commands and codepaths that are neither excercised in automation
nor excercised in tests.

Differential Revision: https://phabricator.services.mozilla.com/D26645

--HG--
extra : rebase_source : 1ee367576bede0318a2db05644693d4f440a250a
extra : intermediate-source : 2516c350cba6f27eb204f0087728721abbb0e085
extra : source : 6351a29c5765c13c39ef6186f9e5e911e00420e7
2019-04-08 15:20:45 -04:00
Justin Wood 4ae90fc11e Bug 1542963 - use print_function for mozbuild and mozpack. r=#build
Lint python/mozbuild/{mozbuild,mozpack}.

Differential Revision: https://phabricator.services.mozilla.com/D26644

--HG--
extra : rebase_source : 88e4d271be1f66eec21fbe87f8d96091f5312c45
extra : intermediate-source : a1f27db92c238b7f7e6e482100c30ec1318e8c57
extra : source : d023be4d80e16601df1b9b9fba994e6b42d9a2e0
2019-04-08 10:29:43 -04:00
Justin Wood ae27d4484d Bug 1542963 - Add absolute_imports to mozbuild and mozpack. r=#build
Lint python/mozbuild/{mozbuild,mozpack}. r=#build

Add 'from __future__ import absolute_import' to all missing files in python/mozbuild/{mozbuild,mozpack}/**/*.py

Differential Revision: https://phabricator.services.mozilla.com/D26643

--HG--
extra : rebase_source : 8c20011c7d1e9557bcc419d4fa3cb95e637d7d15
extra : intermediate-source : 473edf9f9a5378b3e1f944e231121455e3446c5b
extra : source : 2aedcd6517225dacfc45ca58d8ae2217cf67398e
2019-04-08 09:29:44 -04:00
Mike Hommey f535e6cec9 Followup for bug 1539355: Make it work for the root directory. r=me
When an added file is not under an app or addon directory, its base
directory is ''. The code added in bug 1539355 would skip doing its
thing in that case, which it shouldn't.

Also revert the workaround from bug 1525762.
2019-03-31 07:27:43 +09:00
Kris Maglione 6dbe6f1959 Bug 1525762: Part 1j - Work around XPI omni.jar packaging issues. r=bustage CLOSED TREE
We have some convoluted packaging logic to automatically package any directory
with a manifest.json file as an XPI. Unfortunately, that logic also applies to
extensions that are supposed to be part of omni.ja.

It would be nice to have a cleaner way to filter out any resources which we've
already flagged to be part of omni.ja, but this patch takes the simpler
approach of just including anything that's in a modules/ directory, which is
whitelisted for omni.ja elsewhere.

--HG--
extra : source : d30967b60a03f8f4286c26f14342d50e03a59f9d
extra : amend_source : 2ddab7bd7ce2fb666d5335bf9941328d9dd7d66f
2019-03-22 17:29:21 -07:00
Mike Hommey 2a363e7418 Bug 1539355 - Don't package addons in resource directories as XPI in OmnijarFormatter. r=nalexander
The addons manager is going to support this usecase.

Depends on D25036

Differential Revision: https://phabricator.services.mozilla.com/D25037

--HG--
extra : moz-landing-system : lando
2019-03-27 22:33:10 +00:00
Mike Hommey 33c810b43c Bug 1539355 - Force callers of *Formatter.add_base to order their bases. r=nalexander
Practically speaking, it makes no difference, as only the calls to
add_base from tests weren't already ordered.

This allows a simpler approach for next change.

Differential Revision: https://phabricator.services.mozilla.com/D25036

--HG--
extra : moz-landing-system : lando
2019-03-27 22:19:32 +00:00
Mike Hommey 5dbf4813a5 Bug 1539355 - Add a packager test for in-resource addons. r=nalexander
This demonstrates how addons positioned under a resource directory (a
directory that would normally go in omni.ja) is currently treated.

Differential Revision: https://phabricator.services.mozilla.com/D25035

--HG--
extra : moz-landing-system : lando
2019-03-27 16:12:08 +00:00
Noemi Erli cfaf79673c Backed out changeset e5117d2f9311 (bug 1533051) for Android xpcshell failures CLOSED TREE 2019-03-28 01:33:00 +02:00
Nick Alexander 3dce09e76f Bug 1533051 - Package GeckoView prefs at architecture-specific paths for Android fat AAR/GeckoView multi-architecture builds. r=glandium
Bug 1533425 makes Gecko try to load from $ARCH/greprefs.js, etc on
Android.  This patch teaches the packager to put preferences into
those architecture-specific locations for that code to find.

Differential Revision: https://phabricator.services.mozilla.com/D24984

--HG--
extra : moz-landing-system : lando
2019-03-27 17:35:26 +00:00
Mike Hommey baba0e3cec Bug 1529894 - Change jar log content. r=aklotz,chmanchester
The jar log is used for optimization of the packaged jar files according
to their usage patterns during a profile run. The current content of the
file currently come with 2 caveats:
- it contains entries for jar archives that aren't relevant to
  packaging, which is not a problem in itself, but see below.
- it contains full paths for jar archives that may not correspond to the
  location of the packaged directory (on e.g. Android, where the build
  almost certainly doesn't happen in the same directory on the host as
  Fennec runs in the emulator/on the device).

The current JarLog code does somehow handle the various ways paths are
currently presented, but it's clearly missing code to map the paths in
the log to packaged paths. Instead of requiring manual work and extra
build options to handle this mapping, and considering the caveats above,
it's just simpler to log archive paths as if they were relative to the
packaged application directory in a build, and use that during
packaging.

Depends on D21655

Differential Revision: https://phabricator.services.mozilla.com/D21656

--HG--
extra : moz-landing-system : lando
2019-03-07 20:46:52 +00:00
Gurzau Raul fe771d472a Backed out 4 changesets (bug 1529894) for xperf failures on a CLOSED TREE.
Backed out changeset d31f88692394 (bug 1529894)
Backed out changeset e2d7b59776a2 (bug 1529894)
Backed out changeset 3c37fd9d30d5 (bug 1529894)
Backed out changeset e93f4871731b (bug 1529894)

--HG--
extra : rebase_source : ae317f856e08d09ec655cb7b7a87c120f3c626a5
2019-03-06 13:06:13 +02:00
Gurzau Raul d7094fba48 Bug 1529894 - Fix more flake failures on a CLOSED TREE. 2019-03-06 09:35:59 +02:00
Gurzau Raul 7dc522fa55 Bug 1529894 - fix flake failure on a CLOSED TREE. 2019-03-06 09:14:00 +02:00
Mike Hommey bef82f111d Bug 1529894 - Change jar log content. r=aklotz,chmanchester
The jar log is used for optimization of the packaged jar files according
to their usage patterns during a profile run. The current content of the
file currently come with 2 caveats:
- it contains entries for jar archives that aren't relevant to
  packaging, which is not a problem in itself, but see below.
- it contains full paths for jar archives that may not correspond to the
  location of the packaged directory (on e.g. Android, where the build
  almost certainly doesn't happen in the same directory on the host as
  Fennec runs in the emulator/on the device).

The current JarLog code does somehow handle the various ways paths are
currently presented, but it's clearly missing code to map the paths in
the log to packaged paths. Instead of requiring manual work and extra
build options to handle this mapping, and considering the caveats above,
it's just simpler to log archive paths as if they were relative to the
packaged application directory in a build, and use that during
packaging.

Depends on D21655

Differential Revision: https://phabricator.services.mozilla.com/D21656

--HG--
extra : moz-landing-system : lando
2019-03-06 01:18:10 +00:00
kerlyn 0f9d749554 Bug 1523835 - Added python/mozbuild/mozpack to the flake8 linter and solved the errors, r=ahal
Before this change linting python/mozbuild brought about many errors. Some of this errors could be fixed using |mach lint --fix|. The remaining errors where fixed in this bug.

Differential Revision: https://phabricator.services.mozilla.com/D20138

--HG--
extra : rebase_source : 8bd3d622d2221b981f08b8a080c1198b002cdc49
extra : amend_source : 3f6a70c1b7104a7c2d83e11fe911942771e331ea
2019-03-01 15:36:45 -05:00
Mike Hommey 6bfaa82f51 Bug 1531634 - Change how OMNIJAR_NAME is handled for fennec builds. r=nalexander
Fennec has a value of OMNIJAR_NAME that contains a directory, contrary
to other platforms, and relies in post-packaging, pre-unpacking steps to
accommodate with the difference.

With this change, we just make the packaging and unpacking steps aware
of this setup, and make allow them to pack/unpack resources in foo/
under foo/$OMNIJAR_NAME, whether $OMNIJAR_NAME is a file name or a path.

This will, further down the road, allow the packager code to handle jar
logs from PGO instrumentation without munging them.

Differential Revision: https://phabricator.services.mozilla.com/D21654

--HG--
extra : moz-landing-system : lando
2019-03-01 21:49:47 +00:00
Mike Hommey c7022eb656 Bug 1530587 - Don't optimize jars without preloading/reordering data. r=chmanchester
Optimizing jars without preloading/reordering data only moves the
jar central directory to the beginning of the file, which, without
preloading information, is not very useful. Let's just stop doing it if
there's not going to be preloading/reordering information at all.

Differential Revision: https://phabricator.services.mozilla.com/D21170

--HG--
extra : moz-landing-system : lando
2019-02-27 01:26:46 +00:00
Mike Hommey de6692d10a Bug 1528892 - Make preprocessor output more reproducible. r=froydnj
On CI, Windows builds start from different directories on every build,
except when sccache is enabled. This affects many build types, such as
l10n repacks, and the preprocessor likes to put full paths in its
output, which means it includes those different directories, making the
builds non reproducible.

This changes the preprocessor to replace the source and object
directories with generic strings.

Differential Revision: https://phabricator.services.mozilla.com/D20421

--HG--
extra : moz-landing-system : lando
2019-02-21 05:09:52 +00:00
Marco Castelluccio 19bbc158b4 Bug 1491004 - Exclude Visual Studio files from coverage instrumentation. r=chmanchester,calixte,glandium
Differential Revision: https://phabricator.services.mozilla.com/D18511

--HG--
extra : moz-landing-system : lando
2019-02-20 12:18:56 +00:00
Harry Twyford 70df5bbf20 Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Adds Touch Bar functionality to Firefox across eight commits.

Differential Revision: https://phabricator.services.mozilla.com/D5496

--HG--
extra : moz-landing-system : lando
2019-01-22 17:13:33 +00:00
Mike Hommey 8f49277c52 Bug 1496995 - Account for all dictionaries when updating built_in_addons.json during l10n repack. r=nalexander
All directories are part of the langpack that is being merged in, but
when the langpack includes the english dictionary, it is not handled
at the same time as other dictionaries, because it is also part of the
original application.

Instead of trying to catch all places where a dictionary might be added
to the final repack, we wrap the formatter so that it tracks all of them
wherever they're added from, and updates the built_in_addons.json file
accordingly.

Differential Revision: https://phabricator.services.mozilla.com/D16785

--HG--
extra : moz-landing-system : lando
2019-01-18 21:53:16 +00:00
Daniel Varga 7460807a56 Backed out changeset f9cf33c52739 (bug 1498715) on request by nalexander for local developer failures. a=backout 2018-10-17 22:02:34 +03:00
Nick Alexander a1d5fbf47a Bug 1498715 - Use faster XZ compression preset for Android assets/ libraries for local developers. r=esawin
Before:

xz-compressing dist/fennec/assets/x86/libxul.so with "xz -zkf dist/fennec/assets/x86/libxul.so --threads=1 --x86 --lzma2=dict=8MiB,lc=3,lp=0,pb=2,mode=normal,nice=64,mf=bt4,depth=0"...
xz-compressing dist/fennec/assets/x86/libxul.so with "xz -zkf dist/fennec/assets/x86/libxul.so --threads=1 --x86 --lzma2=dict=8MiB,lc=3,lp=0,pb=2,mode=normal,nice=64,mf=bt4,depth=0"... DONE (69.13s)

$ ls -al dist/fennec/assets/x86/libxul.so
-rwxr-xr-x  1 nalexander  staff  31286204 12 Oct 14:06 dist/fennec/assets/x86/libxul.so

After:

xz-compressing dist/fennec/assets/x86/libxul.so with "xz -zkf dist/fennec/assets/x86/libxul.so --threads=1 --x86 --lzma2=dict=8MiB,lc=3,lp=0,pb=2,mode=fast,nice=273,mf=hc4,depth=24"...
xz-compressing dist/fennec/assets/x86/libxul.so with "xz -zkf dist/fennec/assets/x86/libxul.so --threads=1 --x86 --lzma2=dict=8MiB,lc=3,lp=0,pb=2,mode=fast,nice=273,mf=hc4,depth=24"... DONE (19.52s)

$ ls -al dist/fennec/assets/x86/libxul.so
-rwxr-xr-x  1 nalexander  staff  34877984 12 Oct 14:00 dist/fennec/assets/x86/libxul.so

All timings on a late 2013 MacBook Pro (i.e., a very slow device).

Differential Revision: https://phabricator.services.mozilla.com/D8614

--HG--
extra : moz-landing-system : lando
2018-10-15 13:07:23 +00:00
Nick Alexander 5d4e0021b0 Bug 1418464 - Part 1: XZ compress in the packager rather than package_fennec_apk.py. r=mshal
By doing this in the packager, it makes it easier to incorporate the
strip and XZ compress logic into the local Gradle build process.

To that end, this patch makes XZ compression a little more explicit in
package-manifest.in and lifts the logic next to the existing logic for
stripping.  Since we only want to XZ compress assets/ (and not libs/),
we need a new flag.

Differential Revision: https://phabricator.services.mozilla.com/D7314

--HG--
extra : moz-landing-system : lando
2018-10-09 18:35:22 +00:00
Ciure Andrei 148577fc45 Backed out 2 changesets (bug 1418464) for test_packager.py build bustages CLOSED TREE
Backed out changeset d6794cb231e1 (bug 1418464)
Backed out changeset cc793c2d8cee (bug 1418464)
2018-10-05 22:11:05 +03:00
Nick Alexander 2f10ff4106 Bug 1418464 - Part 1: XZ compress in the packager rather than package_fennec_apk.py. r=mshal
By doing this in the packager, it makes it easier to incorporate the
strip and XZ compress logic into the local Gradle build process.

To that end, this patch makes XZ compression a little more explicit in
package-manifest.in and lifts the logic next to the existing logic for
stripping.  Since we only want to XZ compress assets/ (and not libs/),
we need a new flag.

Differential Revision: https://phabricator.services.mozilla.com/D7314

--HG--
extra : moz-landing-system : lando
2018-10-05 18:29:12 +00:00
Mike Hommey 7fa84b1acd Bug 1489340 - Handle XPT files as blobs of data in packager. r=froydnj
We don't actually ship XPT files anymore, but it's still useful for the
packager code to handle old Firefox versions. But for that, we don't
really need the complexity of "linking" XPT files in a single unit per
directory. We can just as well keep the XPT files intact, as long as we
retain individual `interfaces` manifest entries for each.

And since those entries used to be all merged into one, we now instead
group them all together in manifests (which also happens to make it
easier on unit test changes).

Differential Revision: https://phabricator.services.mozilla.com/D5221

--HG--
extra : moz-landing-system : lando
2018-09-07 22:21:07 +00:00
Kris Maglione 30986431c7 Bug 1472491: Part 5a - Add BrowserTabChild actor. r=felipe
MozReview-Commit-ID: 38Y1xwkgxCx

--HG--
extra : rebase_source : 61a85af58f9f16b8e39b716e3df2d09b788fcb1a
2018-07-29 19:42:46 -07:00
Andrew Swan 09e5e4ef55 Bug 1479599 Recognize webextensions in packager r=glandium
MozReview-Commit-ID: KethvfCTf6G

--HG--
extra : rebase_source : 48a513cf4a195fe68d729234ac487682a71ff22a
extra : source : 443493f2db03743656866d49912d26c75ae18434
2018-07-31 21:51:02 -07:00
Andrew Halberstadt 9435736ade Bug 1471620 - Skip python-tests locally that don't run with python 3 in CI r=davehunt
This will make sure that when running |mach python-test --python 3| locally,
we only run the tests that also run in CI with python 3 (and therefore pass
presumably).

MozReview-Commit-ID: 3OBr9yLSlSq

--HG--
extra : rebase_source : 456340d0ecdddf1078f2b5b4ebb1eddf3813b26a
2018-06-27 11:10:02 -04:00
assiya 10dd6c9781 Bug 1468328 - Make other codecoverage import statements Python3 compatible. r=marco
MozReview-Commit-ID: J3uaRsbE1sf

--HG--
extra : rebase_source : bbf3cad256ab9c46ab0dfd9e6923a1d0338feb52
2018-06-16 00:06:25 -07:00
Noemi Erli 629749b257 Backed out changeset 44827df784b2 (bug 1468328) for bustages on builds/worker/workspace/build/src/python/mozbuild/mozpack/chrome/manifest.py on a CLOSED TREE 2018-06-15 23:55:02 +03:00
assiya 51f05e6e16 Bug 1468328 - Make other codecoverage import statements Python3 compatible. r=marco
MozReview-Commit-ID: 9UmVk6onIQw

--HG--
extra : rebase_source : ff9932f0c3e8a36fa2a3cda612bb2010a1a19221
2018-06-15 10:30:54 -07:00
Kris Maglione 9b633c92ac Bug 1457321: Part 4 - Update built-in add-ons manifst during l10n repack. r=ted f=pike
This is slightly ugly, but is unfortunately necessary due to do the nature of
l10n repacks. Hopefully this can go away once we move to bundling lancpack
add-ons rather than repacking in the future.

MozReview-Commit-ID: JZUblVsEbZI

--HG--
extra : rebase_source : 60c9ced2184a52f52c7f2a8820021b14b1a66abf
2018-05-08 01:04:01 -07:00
Kris Maglione e2fecdd542 Bug 1457321: Part 2 - Add dictionaries to omnijar. r=ted
MozReview-Commit-ID: 4zqD8Di7Imb

--HG--
extra : rebase_source : 2fdf8d1429ed1de6c86fc9dc880af2aadcc2b84b
2018-04-27 15:43:38 -07:00
Nick Alexander 00bbcb11bb Bug 1429815 - Fix InstallManifest::add_entries_from with non-trivial base. r=gps
There's a bug in InstallManifest::add_entries_from: some of the
manifest entries bake their destination into both the manifest key and
the manifest value, and add_entries_from with a non-empty "base"
parameter to prepend to the destination only updates the manifest key
and not the value.

This bug causes |mach watch| to fail to _read_ the unified manifest
that aggregates all of the build manifests relevant to |mach watch|
that |mach build-backend -b FasterMake| successfully _wrote_, because
the manifest keys are validated against the manifest values written to
disk.

I see no way to address this other than to manually reach into the
manifest values and patch the internal destination parameter, which
this patch does.

MozReview-Commit-ID: FVyRB41NnHa

--HG--
extra : rebase_source : 23eb18ddc0452955539ce2e7a6d7bbfd083c940c
2018-01-18 16:58:07 -08:00
Tim Nguyen e1b673bf04 Bug 1428938 - Remove legacy toolbar customization code. r=Gijs
MozReview-Commit-ID: 1ppfxI7yYJW

--HG--
extra : rebase_source : b4a2c44dd5e244c81e479e6b43e9669cc031f349
2018-01-11 16:35:17 +00:00
Tom Prince f8e4948e67 Bug 1426528: Pass paths to extra dmg files explicitly when packing; r=glandium
MozReview-Commit-ID: FKwZcNycUW8

--HG--
extra : rebase_source : 3972c8719c58e03483a7d2bded1705df0a82dfda
2017-12-21 13:38:35 -07:00
Tom Prince 739a0defb2 Bug 1427213: Clean up docstrings in mozpack.path; r=glandium
MozReview-Commit-ID: 91cm9XJROy0

--HG--
extra : rebase_source : 1ab1ce1063096651f9095fd221656c852b6892d8
2017-12-27 15:57:32 -07:00
Masatoshi Kimura 0427005429 Bug 1416465 - Expand pattern when track file is created rather than read. r=mshal
MozReview-Commit-ID: WISu4wThdw

--HG--
extra : rebase_source : 480c508f8437a7a31f9a12c8548f1b4be6cbbdeb
2017-12-02 16:51:19 +09:00
Sebastian Hengst 9bab9dc5a9 Backed out changeset 6f0e650b0e53 (bug 1416465) on request from nalexander for many busted build environments. r=backout a=backout 2017-11-16 18:41:24 +02:00
Masatoshi Kimura bc80676578 Bug 1416465 - Fix PATTERN_LINK and PATTERN_COPY entries of install manifests. r=mshal
MozReview-Commit-ID: DNVk40ISour

--HG--
extra : rebase_source : 4a9f45674152196ffd743dab2ddf615dec09a743
2017-11-12 00:06:22 +09:00
Zibi Braniecki 634e419761 Bug 1415432 - .ftl files repackaged multiple times. r=glandium 2017-11-07 22:16:16 -08:00
Marco Castelluccio 6e2598919b Bug 1317041 - Calculate crc32 incrementally; r=gps
--HG--
extra : rebase_source : 9b9e26ccda2edf2e2ada98f0156b69a737c8879e
extra : amend_source : 05908f721af861cb2b954414c8a457b4d36c9f2e
2017-11-07 15:34:20 -08:00
Zibi Braniecki c15f333a09 Bug 1413985 - Package .ftl files on repackage for both, source and AB_CD locales. r=glandium
When repackaging, we want to take all localization resources from the source package,
and add all localization resources from the repackage target locale.

This patch makes packager.l10n scan for `localization` directories in l10n_finder and
add them.

MozReview-Commit-ID: CRLP3bOAyDx

--HG--
extra : rebase_source : 3b1bc098aaed2481a1cc06fc86d0865e654a1b6e
2017-11-02 12:10:26 -07:00
Gregory Szorc b2e9cd1780 Bug 1393242 - Normalize paths in MercurialRevisionFinder; r=mshal
This ensures we use forward slashes, even if Mercurial emits
backslashes (which it can do on Windows).

MozReview-Commit-ID: 2dnWAEvytwn

--HG--
extra : rebase_source : 9ebb454bc9ad11b3eba334e412685e529573a0a1
2017-08-31 10:39:28 -07:00
Gregory Szorc 8a82cba53d Bug 1393242 - Make hglib tests more resilient; r=mshal
These tests weren't running in automation because hglib wasn't
available. An upcoming commit will vendor hglib. This exposed that the
tests can fail if ui.username isn't set.

In this commit, we introduce a helper function to obtain an hglib
client with ui.username set. We also convert tests to use the context
manager form of the client so resources are cleaned up immediately
without relying on refcounting or garbage collection.

MozReview-Commit-ID: HRSBDlYgqpC

--HG--
extra : rebase_source : 83deb56a0c2efefa883d6df104cd67194a811907
2017-08-30 10:42:35 -07:00
Mike Shal f1348beac8 Bug 1394576 - Fix install manifests tracking with broken symlinks; r=gps
The install manifest with the .track files uses os.path.exists() to
determine if a previously tracked file is no longer installed and needs
to be removed from the system. However, exists() returns False for
broken symlinks, so as far as the manifest is concerned, there is no
file in the filesystem that needs to be removed. We should use lexists()
so we know that the broken symlink still exists in the system so
that it can be removed when the install manifest is processed.

MozReview-Commit-ID: 6v7CYOKzjGs

--HG--
extra : rebase_source : 8aeeef59e644613f34c8458bd30a83d8299585ea
2017-08-28 22:12:04 -04:00
Dustin J. Mitchell 53df6a181b Bug 1390968: python-3 compatibility for python/**/*.py; r=Alex_Gaynor,gps
This passes `python3 -mcompileall`.  Changes:

 * use `0o` prefix for octal literals
 * print as a function
 * except .. as
 * use six.reraise to replace a multi-argument raise statement
 * use six.string_types and six.moves.configparser
 * remove uses of `L` suffix for long integers

MozReview-Commit-ID: KLaYRNHGpay

--HG--
extra : rebase_source : 6ca1b5447cd28eff8d9f2805add6a0f07e8b4c63
2017-08-28 21:31:30 +00:00
Mike Hommey 45680ab0c7 Bug 1352595 - Add basic support for brotli compression to the packager. r=gps
Bug 1355661 added support for brotli streams in "jar" files handled by
Gecko, and bug 1355671 made us build the `bro` command line utility that
allows to compress and decompress brotli streams.

This change uses the `bro` command line utility in the packager so that
it can create and handle "jar" files using brotli streams.

However, the `bro` command line utility is not available to l10n
repacks. As, at the moment, we're only hoping that the outcome of using
brotli will be good, we avoid doing all the work to make those work and
just hook things enough to enable brotli, while ensuring l10n repacks
don't break. This involves forcing some files to be deflated, and to
disable some optimizations from the packager.

Things will need to be figured out more properly if the experiment
proves brotli to be worthwhile.

--HG--
extra : rebase_source : a2e0cff67dcaed465fd441ed5d2a7de94b6351c5
2017-08-18 05:37:18 +09:00
Chung-Sheng Fu e5b80e9a8f Bug 863246 - Move resources that need to be exposed to web content to locations that are marked as contentaccessible r=billm
MozReview-Commit-ID: ArhSHKPYOr8

--HG--
extra : rebase_source : 888f7ce8f9db809ad5abbe6340af74e9dfb1d73b
2017-06-08 17:52:46 +08:00
Zibi Braniecki 6a8bee55cc Bug 1377911 - Do not strip localized override entries when repackaging. r=glandium,Pike
MozReview-Commit-ID: vKPJcxzh4T

--HG--
extra : rebase_source : 8c062673bdb20f2886aee40d08d184917d025086
2017-08-24 18:08:26 -07:00
Sebastian Hengst 2e163c99b1 Backed out changeset 1bfbae351dd7 (bug 863246) 2017-08-25 16:43:44 +02:00
Chung-Sheng Fu bb279d6d5e Bug 863246 - Move resources that need to be exposed to web content to locations that are marked as contentaccessible r=billm
MozReview-Commit-ID: ArhSHKPYOr8

--HG--
extra : rebase_source : b0cf8d159ba6bfa6e7bcd9528ae2f9851185ac30
2017-06-08 17:52:46 +08:00
Zibi Braniecki 0c7d3529d7 Bug 1333980 - Introduce L10nRegistry.jsm. r=mossop
This patch introduces a new registry for localization resources to replace
ChromeRegistry. It uses asynchronous I/O and iterators to generate
permutations of possible sources of language resources for use in the new
Localization API.

In the initial form the API handles packages resources and has API for
interacting with the AddonsManager which will report language packs.

MozReview-Commit-ID: LfERDYMROh

--HG--
extra : rebase_source : 68a664c2c59a82b4dfcae66542c315a00ddae565
2017-06-02 10:36:08 +02:00
Wes Kocher a27358fe6a Backed out changeset 3cb5dfb73fa3 (bug 1333980) for browser_all_files_referenced.js failures a=backout
MozReview-Commit-ID: 8dZ1lcv6p9V
2017-08-08 13:52:23 -07:00
Zibi Braniecki c41553945d Bug 1333980 - Introduce L10nRegistry.jsm. r=mossop
This patch introduces a new registry for localization resources to replace
ChromeRegistry. It uses asynchronous I/O and iterators to generate
permutations of possible sources of language resources for use in the new
Localization API.

In the initial form the API handles packages resources and has API for
interacting with the AddonsManager which will report language packs.

MozReview-Commit-ID: LfERDYMROh

--HG--
extra : rebase_source : a6e5b790142e5afb1ce750478190e5ad87012f8d
2017-06-02 10:36:08 +02:00
Nick Alexander 82017ffc19 Bug 1384241 - Add |mach watch|: pywatchman based incremental |mach build faster| shell. r=gps
There's a natural follow-on that I haven't time to explore right now:
I want the faster make backend to also write a "unified chrome
manifest" that maps outputs
(browser/chrome/browser/content/browser/ext-utils.js) to chrome:// or
resource:// URLs (chrome://content/browser/ext-utils.js or similar).

MozReview-Commit-ID: LDQmm8KD57I

--HG--
extra : rebase_source : 13dbeac2fbfa78741be3718fd5305a8ae0d698a8
extra : source : 2af5df7741147769a51da78770c308b370a0cded
2017-07-26 20:34:09 -07:00
Swapnesh Kumar Sahoo 363572e058 Bug 1347582 - Use File object to obtain normalized file mode; r=dustin,gps
MozReview-Commit-ID: HeDq4EwAfVS

--HG--
extra : rebase_source : 5336af2c0868bf2d74e890612e349a55ca846b0b
2017-07-26 11:51:37 +05:30
Nick Alexander 8f1ac5b651 Bug 1384400 - Add input to output mappings to mozpack.FileRegistry. r=gps
This is necessary because the existing manifests don't expose full
dependency information.  I needed to avoid the existing dependency
files because those code paths need to know the output destination of
the manifest in order to parse the Make dependency files; trying to
adapt this system is more complicated than just preprocessing each
file to extract dependency information directly.

MozReview-Commit-ID: 5m0SEqmhJMM

--HG--
extra : rebase_source : 1ff6a1a51bc76efa78eb564cd8e572777dace0f6
2017-07-25 12:28:31 -07:00
Alex Gaynor 837b88dc9c Bug 1384224 - Add support for hardlinks to InstallManifest; r=gps
Also removes InstallManifestNoSymlinks which can be more simply expressed by
passing link_policy='copy' to InstallManifest.populate_registry.

MozReview-Commit-ID: Bkjc2hIub4A

--HG--
extra : rebase_source : df05080fef3baf7e6c60ff9a468e71f0b2c67462
2017-07-25 14:06:15 -04:00
Philip Chimento fb83555684 Bug 1379537 - Fix InstallManifestNoSymlinks to not install symlinks. r=glandium 2017-07-21 20:13:34 -07:00
Alex Gaynor 18571165c2 Bug 1382739 - Added support for hardlinks to mozbuild; r=gps
MozReview-Commit-ID: 7DcOAVNsr3c

--HG--
extra : rebase_source : 633a1c1af5ae92c16ab17bcf22f2403001003069
2017-07-20 14:04:05 -04:00
Mike Hommey 74f132e11e Bug 1365419 - Fixup l10n packager after bug 780562. r=gps
The change to l10n packager from bug 780562 worked in practice because
no chrome category had exclusively manifest entries with flags, which
we're changing in this bug.

It turns out this was only due to a missing change in the patch for bug
780562.

--HG--
extra : rebase_source : 9f782e115f97063c97f165ed95eb4beeb72f86d0
2017-05-26 11:24:40 +09:00
Wes Kocher 135f065d54 Merge m-c to autoland, a=merge
MozReview-Commit-ID: GZPNfYTsjn1
2017-06-01 18:43:48 -07:00
Wes Kocher 9782406dd8 Backed out 4 changesets (bug 1365419) for android mochitest failures in test_bug583533.html a=backout
Backed out changeset d82aa6aec2c1 (bug 1365419)
Backed out changeset 9aafdd1ca0bd (bug 1365419)
Backed out changeset 261eecf8497f (bug 1365419)
Backed out changeset 1d9b50fadc05 (bug 1365419)

MozReview-Commit-ID: HkhXf1Dkkbk
2017-06-01 18:39:21 -07:00
Mike Hommey a95e3eb0b4 Bug 1365419 - Fixup l10n packager after bug 780562. r=gps
The change to l10n packager from bug 780562 worked in practice because
no chrome category had exclusively manifest entries with flags, which
we're changing in this bug.

It turns out this was only due to a missing change in the patch for bug
780562.

--HG--
extra : rebase_source : 3c8c31c37d8fb48bb99b1758bcd8ef5f32c71fe0
2017-05-26 11:24:40 +09:00
Gregory Szorc df5138f5a5 Bug 1359965 - Support mozpack.file.BaseFile in create_tar_from_files; r=glandium
This allows us to write files coming from a finder or other source
that isn't directly the filesystem.

MozReview-Commit-ID: KhPSD0JYzsQ

--HG--
extra : rebase_source : fea376f642e20e8c7723506fd4a73e3f8ac5d0e5
extra : intermediate-source : a872303fd08497bbde0e3b4cea09a88a4182810e
extra : source : ae8bce278626bc84914063f93292ac5e825eec36
2017-05-08 17:00:20 -07:00
Justin Wood e0c208d7dc Backed out changeset a872303fd084, for Nightly bustage from Bug 1359965 c#29
MozReview-Commit-ID: K06A4HcRM6K
2017-05-25 09:02:54 -04:00
Gregory Szorc 5172222fa9 Bug 1359965 - Support mozpack.file.BaseFile in create_tar_from_files; r=glandium
This allows us to write files coming from a finder or other source
that isn't directly the filesystem.

MozReview-Commit-ID: KhPSD0JYzsQ

--HG--
extra : rebase_source : 24db84974b54a714ba82dfad7ff68fd1a5bf656a
extra : source : ae8bce278626bc84914063f93292ac5e825eec36
2017-05-08 17:00:20 -07:00
Ryan VanderMeulen 62671ef4d8 Merge autoland to m-c. a=merge 2017-05-23 18:01:59 -04:00
Wes Kocher afb7b41b84 Backed out 2 changesets (bug 1359965) for likely breaking tc nightlies a=backout
Backed out changeset a0e257e346cc (bug 1359965)
Backed out changeset ae8bce278626 (bug 1359965)

MozReview-Commit-ID: 9rGpv7CFofi
2017-05-23 12:55:35 -07:00
Mike Hommey b860fe5648 Bug 1366729 - Skip manifest entries that are packaged twice. r=gps
--HG--
extra : rebase_source : 0db515433e1e5dacaf6be0c0921af060c3ad644d
2017-05-23 08:00:15 +09:00
Mike Hommey ae2d9aa982 Bug 1366729 - Properly handle "multi-content" manifest entries after bug 1366169. r=gps
Some manifest entries (e.g. skin or locale) have an attached identifier,
and there can be different entries with different identifiers for the
same chrome name. The change from bug 1366169 would consider those as
errors, while they are the expected configuration.

--HG--
extra : rebase_source : ceb08da909121a2ac0a2cdaba7970e4594dde09f
2017-05-23 07:51:22 +09:00
Gregory Szorc 8a71fabf2e Bug 1359965 - Support mozpack.file.BaseFile in create_tar_from_files; r=glandium
This allows us to write files coming from a finder or other source
that isn't directly the filesystem.

MozReview-Commit-ID: KhPSD0JYzsQ

--HG--
extra : rebase_source : 10d494fc910982c3e34f4744592edca906d3a85d
2017-05-08 17:00:20 -07:00
Chris AtLee 5fa1f81924 Bug 1351071: Get rid of pre-generated startup cache r=glandium
MozReview-Commit-ID: BcWcqEKwGBv

--HG--
extra : source : 0f320509eddb30fdefd00d17179670381c3b6f78
2017-04-04 09:26:25 -04:00
Mike Hommey d1b2f93802 Bug 1366169 - Avoid reordered manifest entries creating unexpected overrides. r=gps
As described in changeset c94e87a18096, chrome manifest entries are
reordered and don't necessarily appear in the order they have in jar.mn.

And in some cases, the order does matter: when entries with flags are
followed by entries with more broad flags or no flags at all. Nobody
should be writing entries in that order on purpose, so error out during
packaging when we detect the pattern.

--HG--
extra : rebase_source : d9617bbcbd8560503c532a13c10c8afb0fd49411
2017-05-19 15:01:58 +09:00
Mike Hommey c3680170a7 Bug 780562 - Take locale chrome manifest flags into account when repacking l10n. r=gps
--HG--
extra : rebase_source : 5185b078260f0445cfe77f0416230c9ab0781f8b
2017-05-09 14:23:55 +09:00
Carsten "Tomcat" Book b47fe0286b Backed out changeset 0f320509eddb (bug 1351071) for slowness 2017-05-09 16:58:19 +02:00
Chris AtLee b7af545070 Bug 1351071: Get rid of pre-generated startup cache r=glandium
MozReview-Commit-ID: BcWcqEKwGBv

--HG--
extra : rebase_source : 4bd21805a89359a5a2ed7ffd2ee2b76cf1e9e634
2017-04-04 09:26:25 -04:00
Justin Wood 71acec2f03 Bug 1185666 - Move DMG unpack logic to a python script, support linux. r=mshal
MozReview-Commit-ID: inKT2BWof4

--HG--
extra : rebase_source : 3fa0861bd363a8b22002111fe55ab2d248d85d6c
extra : source : e1df7b730858ba0170004a5b705f2bc484f9e2b0
2017-03-28 21:46:19 -04:00
Mike Shal 306a525fa2 Bug 1347576 - Add a 'mach repackage' command, with OSX dmg support; r=chmanchester
This is the initial support of 'mach repackage', which can take an
existing tarball and create a DMG on either an OSX host or on a Linux
host with cross-OSX tools. Configure is needed in order to find the
tools necessary to create the DMG. On a Linux cross-compiled environment
with tooltool, this can be as simple as:

export MKFSHFS=$topsrcdir/hfsplus-tools/newfs_hfs
export DMG_TOOL=$topsrcdir/dmg/dmg
export HFS_TOOL=$topsrcdir/dmg/hfsplus
ac_add_options --disable-compile-environment

MozReview-Commit-ID: 6t2rlXpwUvu

--HG--
extra : rebase_source : 39f2f9ecac9d7e5af197f1b5dea70cd307acf488
2017-03-10 18:36:23 -05:00
Mike Shal ad087668b7 Bug 1339182 - Remove OSX universal support in the build system; r=glandium
This removes the UNIFY_DIST and UNIFIED_BUILD variables, as well as the
--unify flag from the packager and UnifiedBuildFinder from mozpack. As a
result the STAGEPATH variable is never defined anymore, so its uses can
be removed as well.

test_unify.py is currently the only mozbuild/mozpack test that fails
without running configure first, and there isn't much point in fixing
tests for things that we don't actually use anymore.

MozReview-Commit-ID: F5q1FPW3Did

--HG--
extra : rebase_source : cadbd237f51c23ea1983135294521d628d16f0df
2017-02-10 16:52:17 -05:00
Justin Wood 6d726fa81c Bug 1197325 - Remove now unused genisoimage. r=ted
MozReview-Commit-ID: AO3RgE4SdsH

--HG--
extra : rebase_source : 5afb3583c4426d3903b00e879a248a19cb02bd31
2017-02-02 10:10:27 -05:00
Justin Wood 9feb80031e Bug 1197325 -- Set volume icon for DMG in Linux->Mac cross compiles. r=ted
MozReview-Commit-ID: C4LFZB6msmL

--HG--
extra : rebase_source : 18d4e2fa3af4a387bf5e08f987d44a0a658ac1d3
2017-01-30 17:32:32 -05:00
Phil Ringnalda 0bf37ead29 Backed out 3 changesets (bug 1197325) for adding a burning Cc(hfsplus) job
CLOSED TREE

Backed out changeset 158233bce738 (bug 1197325)
Backed out changeset b5ac3fa0bbe7 (bug 1197325)
Backed out changeset 55a8ad127517 (bug 1197325)
2017-02-06 20:04:55 -08:00
Justin Wood a39754cb97 Bug 1197325 - Remove now unused genisoimage. r=ted
MozReview-Commit-ID: AO3RgE4SdsH

--HG--
extra : rebase_source : 2a49430e1eb0809b191435c6986e076f9cac7b96
2017-02-02 10:10:27 -05:00
Justin Wood 214e9da5c5 Bug 1197325 -- Set volume icon for DMG in Linux->Mac cross compiles. r=ted
MozReview-Commit-ID: C4LFZB6msmL

--HG--
extra : rebase_source : a302c9d12537ca59d3233504abede89bdace15d0
2017-01-30 17:32:32 -05:00
Mike Hommey dc5d1e6adf Bug 1335309 - Change the default for find_executables to False. r=mshal
Back when the class was written, for the packaging code, it made sense
that the default was True. But now that it's used all over the place,
and that the vast majority of uses are with find_executables=False, it
makes more sense for that to be the default.

--HG--
extra : rebase_source : ff813735fc0d53093f348f20eb77ee03e9b09d4e
2017-01-31 14:06:15 +09:00
Mike Hommey dbdbf959b8 Bug 1335309 - Add explicit find_executables arguments to every use of FileFinder. r=mshal
And make it an error not to give it. While the default is True, we do
pass a value of False wherever it makes sense, which happens to be, in
most places.

This is an intermediate step to flip the default from True to False,
ensuring that we don't unwantedly switch some calls to False.

--HG--
extra : rebase_source : 432e03f032fef378af482581685583262e5d2661
2017-01-31 13:01:34 +09:00
Phil Ringnalda 5b74c14e18 Backed out changeset 349a316ed0f7 (bug 1316735) for build packaging failures
CLOSED TREE
2016-12-13 10:48:40 -08:00
Jack Bates c2c1c10265 Bug 1316735 - Relative symlinks in the dist directory. r=gps
Make the symlinks in the dist directory relative instead of absolute.

MozReview-Commit-ID: HS7KL4JwSbV

--HG--
extra : rebase_source : 5dca673cc17423d47e6707d8800f7ee9693a9c48
2016-11-10 22:24:38 +00:00
Andrew Halberstadt 6adcf5b456 Bug 1317970 - Use manifestparser manifests for python unit tests, r=chmanchester
This deprecates PYTHON_UNIT_TESTS and replaces it with PYTHON_UNITTEST_MANIFESTS.
In the build system, this means python unittests will be treated the same as all
other test suites that use manifestparser. New manifests called 'python.ini' have
been created for all test directories containing python unittests.

MozReview-Commit-ID: IBHG7Thif2D

--HG--
extra : rebase_source : 11a92a2bc544d067946bbd774975140147458caa
2016-11-16 09:59:22 -05:00
Mike Shal ad4478f15e Bug 1183613 - Cross compile universal OSX builds in Taskcluster; r=froydnj,ted
MozReview-Commit-ID: HNTqiVF9gov

--HG--
extra : rebase_source : 3e02cd433e45f4bb5759f093aaccade2d49745c3
2016-10-21 13:54:10 -04:00
aleth bb41ac3b46 Bug 1311122 - Ensure missing file errors get reported despite missing base path in l10n.py. r=glandium
--HG--
extra : rebase_source : 1171410b3a6df675c3551c694748202176e42cbf
2016-10-18 21:06:36 +02:00
aleth b8af6b7271 Bug 1311136 - Improve 'multiple locales' error message in l10n.py. r=glandium
--HG--
extra : rebase_source : f46d5120f962380f989ebd115cc44c08ef858eb8
2016-10-18 21:52:19 +02:00
Yen Chi Hsuan 80b867a458 Bug 1143421 - install file copies instead of symlinks for Spidermonkey. r=glandium 2016-08-25 15:51:55 +08:00
Mike Hommey 94ad81b0b0 Bug 1295542 - Ensure at least an empty chrome.manifest next to each omnijar file. r=gps 2016-09-20 13:43:54 +09:00
Henrik Skupin 996622f983 Bug 1283919 - Improve test package archiver for collecting files from directories referenced by a root manifest r=gps
MozReview-Commit-ID: EuGK3OS8XLj

--HG--
extra : rebase_source : 50a4e94b868f8c8931415e3afe30b820e5b6e806
2016-09-07 23:39:45 +02:00
Wes Kocher 4c4ea87ae0 Backed out 2 changesets (bug 1283919) for being the wrong way to fix this a=backout
Backed out changeset a328778db08d (bug 1283919)
Backed out changeset 7e1f25f59298 (bug 1283919)
2016-09-07 14:22:21 -07:00
Henrik Skupin c2f0ef7c09 Bug 1283919 - Improve test package archiver for collecting files from directories referenced by a root manifest r=gps
MozReview-Commit-ID: EuGK3OS8XLj

--HG--
extra : rebase_source : 1a547d02d0da68fac3ca5401df36589357f0bbbe
2016-08-17 13:41:59 +02:00
Chris Manchester bea5e287fc Bug 1240134 - Fixup TarFinder test on Windows by closing the TarFile after the test. r=me
MozReview-Commit-ID: EbP4o5XLCeB
2016-08-17 16:12:14 -07:00
Chris Manchester a22526073a Bug 1240134 - Implement a TarFinder to facilitate extracting files from compressed Firefox archives. r=glandium
MozReview-Commit-ID: F4l8505bvwR
2016-08-17 15:02:31 -07:00
Chris Manchester 309a20b1c8 Bug 1240134 - Re-factor UnpackFinder to contain a Finder instance it delegates to rather than inheriting from FileFinder. r=glandium
MozReview-Commit-ID: LKYCROED06S
2016-08-17 15:02:31 -07:00
Elias Probst fa561f244a Bug 1293234 - Use octal notation for permission modes in the build system; r=gps
As of Python 3, decimal notations of octal values for permission modes
are no longer permitted and will result in a `SyntaxError` exception
(`invalid token`).

Using the proper octal notation which is also Python 2.7 compatible will
fix this issue.

--HG--
extra : rebase_source : 2e897c51f04ad0ee69071f84b98df224f3af72d3
2016-08-08 13:45:17 +02:00
Mike Hommey 318ded3048 Bug 1289949 - Make mozpack.path properly handle paths on mingw python. r=gps
Mingw python has a different os.path setup from native python, and has
os.sep and os.altsep reversed. In that case, the normsep function was
doing the wrong thing, leading to all sorts of problems.

While fixing this, also ensure the corresponding unit test covers this
peculiarity, even when running under the native win32 python.

--HG--
extra : rebase_source : 8fb18e0d4dc669c1d7e069f73fc44c22d419d43c
2016-07-28 18:50:57 +09:00
Gregory Szorc 217ec4c7cc Bug 1288610 - Add functions for creating deterministic tar archives; r=ted
I have a need to create tar archives deterministically
and reproducibly. Since we already have similar functionality in
mozpack for producting zip/jar archives, I figured it made sense for
this functionality to live in mozpack.

I made the functionality as simple as possible: we only accept
files from the filesystem and the set of files must be known in
advance. No class to hold/buffer state: just a simple function
that takes a mapping of files and writes to a stream.

MozReview-Commit-ID: If0NTcA7wpc

--HG--
extra : rebase_source : 9cbea36347ba2840dd5bff9dffefd994a73a0725
2016-07-25 12:46:07 -07:00
Chris AtLee e1b0b79d4d Bug 1275998 - L10n repacks should use the same compression settings for omni.ja as en-US r=glandium
MozReview-Commit-ID: DwuERh5MjX7

--HG--
extra : rebase_source : f447a41ebe48ab075327e0c0f8372d72976b6333
2016-05-27 08:37:09 -04:00
Carsten "Tomcat" Book 733eeabb87 Backed out changeset 6134b92d1b08 (bug 1277483) 2016-06-07 11:46:16 +02:00
Ms2ger dcb03a5c62 Bug 1277483 - Another followup to fix bustage. 2016-06-07 11:00:31 +02:00
Nick Alexander 45f7d697fc Bug 1260241 - Pre: Add compress option to Jarrer.add. r=glandium
MozReview-Commit-ID: FWXeBOi9FTY

--HG--
extra : rebase_source : 290bb95e0d9133094c4bf4b99f04ccd3c598c6d8
2016-03-28 19:02:05 -07:00
Gregory Szorc 79ad6e2449 Bug 1258574 - Allow JARReader to read data already in memory; r=glandium
This will be needed to teach artifact builds to extract files from
omni.ja files whose content is loaded into memory (from a tar
archive).

MozReview-Commit-ID: LH2HkKx5Zj3

--HG--
extra : rebase_source : 7f6b176f0ef9fc87889151d1d02da62de8a455d8
extra : source : 266928b5a7615fa054c70adf0f649cbb3f085e8d
2016-03-21 16:36:22 -07:00
Mike Hommey 646df2b991 Bug 1253203 - Use mozpath functions for sandboxed os.path in configure.py. r=nalexander,r=chmanchester
Generally speaking, the configuration needs forward-slashes in paths.
We might as well make it hard(er) to set configuration items with
backslash separators on Windows by exposing mozpath.* functions in place
of os.path functions. The downside is that functions explicitly
importing os will still get the real os.path functions.
2016-03-08 15:41:32 +09:00
Myk Melez db9a40ca42 Bug 1238079 - remove the desktop web runtime; r=fabrice,mossop,gps,jryans,jmaher,marco 2016-03-07 13:33:12 -08:00
Gregory Szorc 2f5add2222 Bug 1249210 - Install files using multiple threads on Windows; r=glandium
As previous measurements have shown, creating/appending files
on Windows/NTFS is slow because the CloseHandle() Win32 API takes
1-3ms to complete. This is apparently due to a fundamental issue
with NTFS extents. A way to work around this slowness is to use
multiple threads for I/O so file closing doesn't block execution
as much.

This commit updates the file copier to use a thread pool of 4
threads when processing file copies. Additional threads appear
to have diminishing returns.

On my i7-6700K, this reduces the time for processing the tests install
manifest (24,572 files) on Windows from ~22.0s to ~12.5s in the best
case.

Using the thread pool globally resulted in a performance regression
on Linux. Given the performance sensitivity of manifest copying,
I thought it best to implement a slightly redundant non-Windows
branch to preserve performance. For the record, that same machine
running Linux is capable of processing nearly the same install
manifest (24,616 files) in ~2.2s in the best case.

MozReview-Commit-ID: B9LbKaOoO1u

--HG--
extra : rebase_source : e9fee3861a70e1da9d18448f8435f4bd3e28c647
2016-02-19 18:28:26 -08:00
Chris Manchester 666423b6d5 Bug 1241989 - Speed up install manifests by avoiding path operations. r=gps
This is two straightforward optimizations in FileCopier: avoiding a redundant iteration
over the directory structure to find destination files (which includes a
call to normpath) and avoiding redundant calls to determine directories to preserve
when remove_unaccounted is not specified (which include a call to dirname).

Running a no-op install of _tests with this patch results in a reduction of about
25,000 calls to normpath and remove about 220,000 calls to dirname, resulting in
an overall speedup of 10-20%.

--HG--
extra : commitid : 8nyTo489q8X
2016-01-22 13:54:33 -08:00
Mike Hommey 93901acdfb Bug 1241398 - Remove the FilePurger class. r=gps
Its only last use was removed.
2016-01-22 07:00:23 +09:00
Nick Alexander 407bcaedfd Bug 1207890 - Pre: Make JarWriter handle inputs with read() but not seek(). r=glandium
--HG--
extra : commitid : EVs710IhMlB
extra : rebase_source : 2de3e51b5174b86392a9edd9f49cc91b4ce54baa
2015-12-23 16:05:34 -08:00
Mike Hommey 4e978ebeda Bug 1234439 - Add support for files with a given content to install manifests. r=gps
This will be used for chrome manifests in the faster make backend.
2015-12-24 13:12:24 +09:00
Gijs Kruitbosch b63e88e1a7 Bug 1232421 - followup: fix test to not use 'inline comments' which are not supported elsewhere, rs=bustage on a CLOSED TREE
--HG--
extra : commitid : JqObbyNgDTC
extra : amend_source : 84a1aacb62cfb28c45012c64edbb38ef392ba9b7
2015-12-16 14:03:20 +00:00
Gijs Kruitbosch d83623503a Bug 1232421 - force matching the start of the line for comments, r=glandium
--HG--
extra : commitid : KomtUxWCGB6
extra : rebase_source : efa6f6f1f48b2e142536cddebabf1581b732e9b2
2015-12-14 20:33:57 +00:00
Mike Hommey e876eeef92 Bug 1230060 - Don't fail to read an install manifest containing non-actionable items. r=gps
Future improvements to process_install_manifest's --track option will require
adding data in the tracking dump that uses an install manifest form, and I don't
want e.g. switching branches or bisection to require to clobber in order to do the
right thing, so this change future-proofs the install manifest reader.
2015-12-05 11:04:21 +09:00
Mike Hommey dab94e1f70 Bug 1230060 - Allow to restrict what unaccounted files to remove when copying from a FileCopier. r=gps
The default behavior for a FileCopier's copy is to remove all the files and
directories in the destination that aren't in its registry.

The remove_unaccounted argument can be passed as False to disable this
behavior.

This change adds another possibility, where remove_unaccounted may be a
FileRegistry, in which case only the files in that registry are removed.

This allows to e.g. only remove files that were copied from a previous
FileCopier.copy, leaving aside files that were in the destination for some
other reason.
2015-12-05 11:04:21 +09:00
Carsten "Tomcat" Book 70e80c658e Backed out changeset 0dcea48cbf38 (bug 1230060) for bustage due to race conditions of some sort 2015-12-04 15:18:07 +01:00
Carsten "Tomcat" Book 3e46254e72 Backed out changeset 1e44f391a3cb (bug 1230060) 2015-12-04 15:17:38 +01:00
Mike Hommey 3d1b660fdf Bug 1230060 - Don't fail to read an install manifest containing non-actionable items. r=gps
Future improvements to process_install_manifest's --track option will require
adding data in the tracking dump that uses an install manifest form, and I don't
want e.g. switching branches or bisection to require to clobber in order to do the
right thing, so this change future-proofs the install manifest reader.
2015-12-04 19:25:42 +09:00
Mike Hommey 0a5ad30ee1 Bug 1230060 - Allow to restrict what unaccounted files to remove when copying from a FileCopier. r=gps
The default behavior for a FileCopier's copy is to remove all the files and
directories in the destination that aren't in its registry.

The remove_unaccounted argument can be passed as False to disable this
behavior.

This change adds another possibility, where remove_unaccounted may be a
FileRegistry, in which case only the files in that registry are removed.

This allows to e.g. only remove files that were copied from a previous
FileCopier.copy, leaving aside files that were in the destination for some
other reason.
2015-12-04 19:25:42 +09:00
Mike Hommey f485401df4 Bug 1226884 - Keep em:unpack addons unpacked after bug 1216371. r=gps
--HG--
extra : amend_source : 61a2914b964df0bdf1d523e7eb396b54403daa9f
2015-11-23 22:40:00 +01:00
Mike Hommey b6d285f055 Bug 1216371 - Pack addons that can be packed as XPIs. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey 3657509c31 Bug 1216371 - Distinguish between addons that can be packed and those that cannot in the packager. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey 01f29630c8 Bug 1216371 - Use the PiecemealFormatter for the OmniJarFormatter. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey b13fb564e4 Bug 1216371 - Use the PiecemealFormatter for the JarFormatter. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey 96f591ed3f Bug 1216371 - Introduce a PiecemealFormatter base package formatter. r=gps
FlatFormatter, JarFormatter and OmniJarFormatter all, in some way, deal
with different pieces of the package being handled differently.

Instead of each of them dealing with their different pieces in some subtly
different way, instead, introduce a new base package formatter class that
will handle it for all of them.

Use this new PiecemealFormatter for the FlatFormatter.
2015-11-19 08:05:51 +09:00
Mike Hommey c261a38b06 Bug 1216371 - Add a proxy class to access a subtree of a FileRegistry as an independent FileRegistry. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey f7a0e3118a Bug 1216371 - Don't assume the root directory is a base directory in packager formatters. r=gps 2015-11-19 08:05:51 +09:00
Mike Hommey 67e9068329 Bug 1216371 - Add tests for *Formatter.contains(). r=gps
And fix OmniJarFormatter.contains after bug 910660.
2015-11-19 08:05:51 +09:00
Mike Hommey 6e8d11c99c Bug 1216371 - Don't rely on OmniJarFormatter.is_resource for test_omnijar_is_resource. r=gps 2015-11-19 08:05:51 +09:00