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

1694 Коммитов

Автор SHA1 Сообщение Дата
Andrew Halberstadt 43780d35db Bug 1216171 - Fix MozbuildObject.bindir to import the correct mozinfo, r=jmaher
--HG--
extra : commitid : 4qZC33BCtve
extra : rebase_source : 95a60597f910bc57d6fdf22e08fa0f8c1f675b58
2015-10-19 11:15:15 -04:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Tooru Fujisawa 5352886b99 Bug 1208160 - Show information when Xcode requires accepting license agreement; r=gps
--HG--
extra : commitid : BWWqCvms3dQ
extra : amend_source : 0554ce0ec72683864a07ebbbd1c11bbde0b6c233
2015-10-16 11:17:48 -07:00
Mike Hommey 9af046b5b4 Bug 1211765 - Remove remnants from --with-libxul-sdk. r=bsmedberg
The configure option has explicitly thrown an error for more than a year now,
and it happens that the remaining way to still forcefully use it has been
broken for more than 8 months.
2015-10-14 08:02:34 +09:00
Nick Alexander 23d5c4a8b2 Bug 1213418 - Part 2: Use Fennec APKs in |mach artifact|; use mozversion to extract build IDs. r=me
DONTBUILD NPOTB

This downloads to a temporary file named uniquely but consistently
based on the URL, and then extracts a build ID using mozversion to use
as a human readable and sortable prefix.  This approach can be re-used
by |mach artifact| based Desktop builds.

--HG--
extra : commitid : LxorDuq5D0t
extra : rebase_source : 2f280746f486b79dfe45ad928e4b618e0e12f1a0
2015-10-09 18:32:52 -07:00
Nick Alexander b47fb2c75a Bug 1213418 - Part 1: Use mozregression to download in |mach artifact|. r=me
DONTBUILD NPOTB

--HG--
extra : commitid : LU7F5VjVj4m
extra : rebase_source : 5c9e36c01c7aa757d41a9994877b6f7d7568f4e3
2015-10-09 17:47:17 -07:00
Nick Alexander 02b12c9443 No bug - Message which upstream pushhead is used in |mach artifact|. r=me
DONTBUILD NPOTB

--HG--
extra : commitid : D93W2OFUaWF
extra : rebase_source : 5c6a0b8a097d358175dd3158499129a4a4bb935a
2015-10-09 17:23:46 -07:00
Mike Hommey 32fa3fafa4 Bustage fix for bug 1210687 on a CLOSED TREE. r=me
Looks like I went too fancy removing a part of the jarline regexp before landing.
2015-10-08 17:28:36 +09:00
Mike Hommey f6bf50d04e Bug 1210687 - Use install manifests for jar.mn files in FasterMake backend. r=gps 2015-10-08 17:11:23 +09:00
Mike Hommey 0c8457d33f Bug 1210687 - Remove PushbackIter now it's not used anymore. r=gps 2015-10-08 17:11:23 +09:00
Mike Hommey e127dc20b1 Bug 1210687 - Separate out jar.mn parsing in a separate class. r=gps 2015-10-08 17:11:23 +09:00
Mike Hommey ccf3953f83 Bug 1211957 - Add the repackage step at the end of a faster build on Mac. r=gps
That is necessary until bug 934070 is fixed
2015-10-08 17:11:23 +09:00
Wes Kocher 75ff20f5af Backed out changeset 91d4539e00ce (bug 1207245)
--HG--
rename : mfbt/RefPtr.h => mfbt/nsRefPtr.h
2015-10-07 10:19:19 -07:00
Wes Kocher 9d0985e9fd Merge fx-team to central, a=merge 2015-10-07 09:58:09 -07:00
Nathan Froyd 89a69c829a Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-07 16:50:25 -04:00
Carsten "Tomcat" Book 71e22d0c44 merge mozilla-inbound to mozilla-central a=merge 2015-10-06 12:01:35 +02:00
Mike Hommey e7fb0d3101 Bug 1210642 - Use install manifests for preprocessed files in the FasterMake build backend. r=gps 2015-10-06 11:15:07 +09:00
Mike Hommey 1f30d999e0 Bug 1210642 - Add support for --silence-missing-directive-warnings for preprocessing within install manifests. r=gps 2015-10-06 11:15:06 +09:00
Mike Hommey 95f5927160 Bug 1210642 - Allow to pass defines overrides when processing install manifests. r=gps 2015-10-06 11:15:06 +09:00
Mike Hommey 7f68f92edb Bug 1210329 - Remove support for line endings munging in the preprocessor. r=gps
It was added back in
5147d5c69f
for unclear reasons (and the lack of bug number doesn't help), and hasn't been
used, as far as I can see in the gecko-dev history, other than in bug 206029,
which is the only use currently in the tree.

Bug 206029 was working around the Flash player installer modifying Firefox's
prefs file and not dealing with it properly or something depending on the line
endings. 11 years later, all prefs files except channel-prefs.js are in
omni.ja, so obviously, bug 206029 doesn't actually apply anymore.

So, let's simplify it all and get rid of this.
2015-10-06 11:15:04 +09:00
Sebastian Kaspari 9fc8b6b2bb Bug 1210755 - mozboot/android: Install non-preview version of platform-tools. r=trivial
--HG--
extra : commitid : Hc8dtU2ezcm
extra : rebase_source : 340acc1b9e30609bccc42ac006789a22094fc955
2015-10-06 16:10:01 +02:00
Sebastian Kaspari f95aacebb1 Bug 1210755 - Mach build: Compile with SDK version 23 and use build tools 23.0.1. r=nalexander
--HG--
extra : commitid : KSzxhqJn0iI
extra : rebase_source : ccd59642dc6025fd2fec574ef9502a15670fb43e
2015-10-05 15:01:23 +02:00
Carsten "Tomcat" Book 07ed19e582 merge mozilla-inbound to mozilla-central a=merge 2015-10-01 12:39:25 +02:00
Gregory Szorc d772ee1cfe Bug 1208320 - Decrease compression level of test zip archives; r=glandium
Compressing C++ unit tests is a long pole when writing test archives.
Experimenting with various levels of compression revealed that
compression level 9 was providing minimal space savings for
significantly longer archiving times and greater CPU usage.

Results of our experimentation of `make -sj8 package-tests` on OS X
with various levels of compression are below. Note: these numbers were
accidentally obtained without JS tests being archived. This skews the
results a little but doesn't impact the analysis below.

ARCHIVE        SIZE       WALL   CPU

(L=9)
cppunittest  76,806,629  30.6s
mochitest    61,276,928   9.4s
reftest      31,204,396  11.0s
ALL         228,146,761  31.2s  75.9s

(L=8)
cppunittest  76,851,593  24.1s
mochitest    61,279,322   8.9s
reftest      31,207,867  10.4s
ALL         228,228,096  24.9s  64.7s

(L=7)
cppunittest  77,102,292  14.3s
mochitest    61,305,147   8.2s
reftest      31,260,359   9.4s
ALL         228,717,803  15.0s  49.1s

(L=6)
cppunittest  77,321,408  11.5s
mochitest    61,336,539   8.2s
reftest      31,303,604   9.2s
ALL         229,123,307  12.2s  44.7s

(L=5)
cppunittest  78,226,404   8.2s
mochitest    61,483,804   7.6s
reftest      31,509,349   8.8s
ALL         230,725,600   9.6s  39.7s

(L=4)
cppunittest  79,733,669   6.3s
mochitest    61,825,519   7.6s
reftest      31,924,171   8.4s
ALL         233,669,991   9.0s  36.4s

(L=3)
cppunittest  82,380,731   5.8s
mochitest    62,554,431   7.1s
reftest      32,696,415   8.1s
ALL         239,180,168   8.9s  34.6s

Levels lower than 3 resulted in larger archives with no decreae in
wall time and marginal decrease in CPU time.

As we can see, lowering the compression level reduces archiving time by
>3x while only increasing total archive size by ~2.5 MB or ~1% for
compression level 5.

Total time hits a plateau around levels 4 and 5. After that, file size
increases faster for little decrease in wall time. I suspect that we're
hitting Python limits from having to process thousands of files: there's
only so fast Python can do I/O and make function calls.

I think choosing 4 or 5 for the new compression level are acceptable.
I went with 5 because the wall time savings from 5 to 4 are marginal and
the archive size does start to increase a bit faster at 4. That being
said, 4 does consume 10% less CPU. I could easily just 4 as well. 5 is
more conservative. We can always change to 4 after seeing results in the
wild.

The end result of this change is `make package-tests` is much faster:

Before:  228,146,761 bytes;  31.2s wall;  75.9s CPU
After:   230,725,600 bytes;  11.4s wall;  45.0s CPU
Delta:    +2,578,839 bytes; -19.8s wall; -30.9s CPU

When you take the whole series into consideration:

Before:  44.2s wall; 84.6s CPU
After:   11.4s wall; 45.0s CPU

Lowering CPU is impressive considering we switched from the C `zip`
implementation to Python!

Keep in mind we were at ~78s wall before e87b74b3db43 introduced
concurrent archive generation!

And we still haven't eliminated the staging of JS tests, which are
several thousand files and a few dozen MB!

--HG--
extra : commitid : D1fD4NUTw2F
extra : rebase_source : c6de72656cfedc98c0cf1c09eefe1dfb84f3639b
2015-09-30 11:33:04 -07:00
Gregory Szorc 0a670f5daa Bug 1208320 - Support configuring zlib compression level; r=glandium
An upcoming commit will introduce a caller that doesn't want the maximum
compression level. This commit introduces arguments to control the
compression level inside written archives.

--HG--
extra : commitid : KkDso3hB2QG
extra : rebase_source : 8fd05aeae5c3555e1169eac6656d584007cd0739
2015-09-30 11:31:00 -07:00
Gregory Szorc 479e915b47 Bug 1208320 - Print message when done with archiving; r=glandium
Metrics are nice. Adding this output clearly demonstrates that C++ unit
tests are the long pole by far: they take ~95% of wall execution time
to archive (~30s total). The next longest archive only takes ~11s to
produce. This will be important if we ever want to reduce archive time
further on optimal hardware.

FWIW, disabling compression will produce a C++ unit test archive in
1.0s. Archives with more files take longer, despite the significantly
smaller sizes.

--HG--
extra : commitid : 6E56aUoZUL2
extra : rebase_source : 48cad51d7fbae883861f35e1b5cb96799b452bfb
2015-09-30 11:29:22 -07:00
Gregory Szorc 1037624226 Bug 1208320 - Do not stage some C++ unit test support files before archiving; r=glandium
Won't impact performance much. But fewer make foo makes porting the C++
unit tests (which are the largest remaining tests) to the Python
archiver easier to grok.

This conversion did change behavior slightly. Previously, startup
cache files weren't being packaged if startup cache was disabled. Now,
we always package them since their presence in the test archive should
be harmless. The original change to guard their inclusion in
ee82e0ae5488 was probably unnecessary.

--HG--
extra : commitid : AzU65j0E1q0
extra : rebase_source : 9b8a15dc1a5f3c3d3e453cefb3a99b05f5a77711
2015-09-30 17:41:46 -07:00
Gregory Szorc a88dbb7290 Bug 1208320 - Do not stage mozbase files before archiving; r=glandium
This prevents copying of 447 files adding to ~4 MB.

--HG--
extra : commitid : 7zTbiQeMQSQ
extra : rebase_source : b3ac223835ba7289ace45aa7d02c5a050d54cc0d
2015-09-30 11:15:51 -07:00
Gregory Szorc fd090d4a75 Bug 1208320 - Do not stage JS test modules before archiving; r=glandium
Saves 400 KB over 40 files on my machine.

--HG--
extra : commitid : E2U6mnB4tOw
extra : rebase_source : ffc2663a03d7e3287a36c347ac5a747237e86025
2015-09-30 11:04:58 -07:00
Gregory Szorc 611659f236 Bug 1208320 - Do not stage TPS files before archiving; r=glandium
This saves copying of ~100 files comprising ~1 MB. Not significant. But
it gets us a little closer to no staging.

--HG--
extra : commitid : 6Hjnhv4Yi5R
extra : rebase_source : 291c89682a23cde957b3c68f2efe3b6dc3d3d543
2015-09-30 11:03:32 -07:00
Gregory Szorc 022105cc96 Bug 1208320 - Do not stage reftest test files before archiving; r=glandium
This is slightly more involved than earlier changes because reftests
have a one-off mechanism for finding files. Essentially, the master
reftest manifest is loaded, directories are discovered, and every file
in those directories is packaged.

We add support to our test archive generation tool to read sources from
reftest manifests and tell it where the reftest manifests are.
print-manifest-dirs.py was only being used for staging reftest files.
Since we don't do that any more, the functionality doesn't need to exist
in a standalone file, so it has been moved inline into test_archive.py.

This change avoids copying ~26,000 tests consuming 131 MB during test
packaging. This is a majority of the file count that was remaining in
the stage directory at this point. On my machine (which hasn't typically
seen major wall time wins from not staging files due to its fast SSD),
this change made test packaging ~20% faster, reducing wall time from
~50s to ~40s!

A Try push seemed to indicate drastic results with the series up to this
point. Including the already landed changes to generate test archives
concurrently, test packaging times on OS X builders dropped from ~18:40
to 6:29! Times on Linux x64 remained about the same (~2:46). This is
possibly due to these machines already having SSDs and due to normal
variance in performance of builders and EC2 instances.

--HG--
extra : commitid : 34E8V8lSGg7
extra : rebase_source : 720afcd35f6a2b6cb1217df23ae981408a88cb94
2015-09-30 17:39:33 -07:00
Gregory Szorc d460d0b2dc Bug 1208320 - Do not stage some reftest support files before archiving; r=glandium
After this, only reftest files themselves are staged. Those will be
addressed in a subsequent commit.

--HG--
extra : commitid : 9jWl9Twcizr
extra : rebase_source : 3e4a319d60b7ee7eddecc597eb250184140b1e71
2015-09-30 10:46:52 -07:00
Gregory Szorc 4c71c72f21 Bug 1208320 - Do not stage JIT test files before archiving; r=glandium
This avoids copying 5000+ files consuming ~37 MB on my build
configuration.

--HG--
extra : commitid : 6DmsjUYgjXq
extra : rebase_source : 123dd42a7d0b9cc244a3ab7773010dfc5769a4ac
2015-09-30 10:03:25 -07:00
Gregory Szorc 94d0bd111f Bug 1208320 - Produce cppunittest and reftest packages via Python; r=glandium
With this change, all test ZIP archives are now generated via Python and
mozpack.

This change does not change I/O or file copy behavior at all. There is
still a lot of room for eliminating extra file copies.

--HG--
extra : commitid : 9mWdtDK6wAb
extra : rebase_source : 0f19c627d64d22bf9d65161d4f7df7c9778dea3c
2015-09-30 09:58:31 -07:00
Gregory Szorc fe96a68dba Bug 1208320 - Produce common tests archive via Python; r=glandium
This doesn't change I/O or copy behavior at all. But it does remove a
one-off make rule.

--HG--
extra : commitid : X0efdFHA0k
extra : rebase_source : c7cb8616461eccd1ff7f8eb3b409bd4944c9e1ec
2015-09-30 17:38:53 -07:00
Gregory Szorc 1c2fb95934 Bug 1208320 - Produce talos test archive without staging files; r=glandium
This is pretty straightforward. This saves ~26 MB of file copies.

--HG--
extra : commitid : ItghoP73zS8
extra : rebase_source : 9656719a6459c1e6fa28165591722fe00d6d9b1d
2015-09-30 09:48:04 -07:00
Gregory Szorc 1d1f8b07c4 Bug 1208320 - Produce web-platform test archive without staging; r=glandium
The web-platform test archive now builds without any staging at all.
This saves ~103 MB of file copies on my machine.

The testing/web-platform/Makefile.in serves no purpose after this
change, so it and all references to it have been removed.

--HG--
extra : commitid : HDHGG3QGVBH
extra : rebase_source : dd7302aad96b46932aa00e4e66918c8077475b10
2015-09-30 09:47:22 -07:00
Gregory Szorc e715f404c4 Bug 1208320 - Produce mochitest test archive without staging test files; r=glandium
This is very similar to what we did for xpcshell. Like xpcshell, there
are still some staged files. However, about 73MB of copies are
eliminated with this change. On my machine, overall execution time of
test packaging appears to decrease, although CPU usage is up slightly.

--HG--
extra : commitid : 5dy340X80J9
extra : rebase_source : d37be29367b17e6c1d9c885ab4705932b7a42b39
2015-09-30 09:46:35 -07:00
Gregory Szorc a9b7ca4989 Bug 1208320 - Produce xpcshell archive without staging test files; r=glandium
This commit produces the xpcshell test archive without staging 5000+
xpcshell test files first.

We teach the archiver to ignore .mkdir.done files.

The xpcshell Makefile.in still stages some files. This is less than
ideal. However, it is a small handful of files and shouldn't add too
much overhead.

This appears to not impact overall CPU usage significantly on my
machine, despute using Python instead of `zip`. It does reduce I/O
by ~25MB by avoiding the staging copy.

--HG--
extra : commitid : IwvLaYvAbFt
extra : rebase_source : a690ae4b1adbabd491851a2479fa66d81241601b
2015-09-30 09:36:16 -07:00
Gregory Szorc 212a2d7513 Bug 1208320 - Produce mozharness test archive via mozpack; r=glandium
Test archive generation currently copies a bunch of files into a staging
area then runs `zip` to produce ZIP files. There are 2 concerns with
this approach:

1) We incur a lot of extra I/O to copy files so everything is
   rooted in a single tree so the `zip` invocation and paths are
   simple.
2) ZIP files inherit properties from the local filesystem (including
   mtime), making ZIP files non-deterministic.

This commit introduces a new mozbuild action for producing test
archives. It does so using the mozpack file finder and JAR writer,
which are used throughout the build to deterministically
produce ZIP/JAR files from files in multiple source directories.

We implement support for producing the mozharness archive. This archive
does not involve files that are staged, so no I/O is saved. In fact,
the switch from `zip` to Python likely makes this slightly slower.
However, we do have deterministic archives now.

Additional archives will be ported over in subsequent commits.

--HG--
extra : commitid : H1BOidPDZST
extra : rebase_source : 120e2bfea921e5fb3a8d97b2dd0227edce452cfd
2015-09-30 11:34:33 -07:00
Gregory Szorc 48a66e97a7 Bug 1208320 - Allow FileFinder to find dot files; r=glandium
Previously, we always skipped over files beginning with a ".". This
commit adds an option to include them.

This is needed to support test package generation via Python / mozpack.

--HG--
extra : commitid : 4pmEpukVX0s
extra : rebase_source : 31599230ce344b9be815b3a457cc8a7c6d8e5301
2015-09-30 09:16:33 -07:00
Mike Hommey 9f2c4e94ba Bug 1209875 - Get rid of XULPPFLAGS. r=gps
The flags added in toolkit/locales/Makefile.in turn out not to be actually
used, so just remove that.

The remaining uses of XULPPFLAGS are to set debug flags depending on whether
MOZ_DEBUG is set or not. Just set a dedicated variable with the right value
from configure.
2015-10-01 07:30:48 +09:00
Mike Hommey 164381084f Bug 1209839 - Remove the -E option to the preprocessor. r=gps 2015-10-01 07:30:14 +09:00
Michael Ratcliffe 3efb3a9e6f Bug 1203520 - We need a DevTools ESLint plugin containing our ruleset r=gps
--HG--
extra : commitid : FrMOnVBUxmY
extra : rebase_source : c38511e94177f651a0decad41180991c54cb0f33
2015-09-30 14:44:48 +01:00
Ehsan Akhgari b73f093357 Bug 904572 - Add support for generating clang compilation database; r=glandium,r=gps 2015-09-29 09:23:50 +09:00
Mike Hommey 86a76ef43b Bug 1207897 - Add a configure option to build multiple build backends. r=gps
Also record what backends were requested at configure time so that running
`mach build-backend` or `config.status` uses the same set.
2015-09-29 09:23:50 +09:00
Mike Hommey c038211ac4 Bug 1207893 - Allow to create multiple build backends at once. r=gps
When running mach `build-backend` or `config.status`, it is now possible to
pass multiple backends to the --backend/-b option, so that they can share
moz.build reading and object emitting.

The command line syntax is however maybe a little awkward:
  mach build-backend -b Backend1 Backend2

but supporting with `-b Backend1 -b Backend2` requires more argument parser
twiddling (action='append' doesn't work out of the box with choices, we'd
need a custom action class)
2015-09-29 09:23:49 +09:00
Mike Hommey d873d2729a Bug 1207893 - Change how we track object consumption from the build backend. r=gps
Currently, we set a flag on each object to know whether it has been consumed
by the backend. This doesn't work nicely when multiple backends try to consume
the same objects.
2015-09-29 09:23:48 +09:00
Mike Hommey 64341c67d8 Bug 1207893 - Refactor how build backend execution is summarized. r=gps
- Make all backends report the time spent in their own execution
- Change how the data is collected for the reader and emitter such that
  each of them is aware of its own data, instead of everything being
  tracked by the backend.

This is meant to open the door to multiple backends running from the
same execution of config.status.
2015-09-29 09:23:47 +09:00
Mike Hommey 0e156c41d5 Bug 1207882 - Add an initial partial implementation of a new, faster, build backend. r=gps 2015-09-29 09:23:46 +09:00
Mike Hommey 75bdaecdfd Bug 1207882 - Associate an install target with every ContextDerived object. r=gps
Since reading context['FINAL_TARGET'] can have side effects, use it lazily.
2015-09-29 09:23:45 +09:00
Mike Hommey a756617866 Bug 1207882 - Ensure chrome manifests are created in a directory that exists when processing jar manifests. r=gps
This currently works because other things in the build system are creating
those directories, but it's not a safe thing to rely on.
2015-09-29 09:23:45 +09:00
Chris Manchester 933886fcaf Bug 1184405 - Take matches by wildcard pattern into account in the test resolver. r=gps
--HG--
extra : commitid : 20bUC0s5hyx
2015-09-25 07:33:11 -07:00
Chris Manchester c5c1b11a93 Bug 1184405 - Add a mach command to expose test-deps file info. r=gps
This commit exposes test-deps file info as a mach command, and
modifies the test scheme reader to make it filter out unsuitable
contexts when generating TestManifest objects for metadata context.

--HG--
extra : commitid : 7QOoHkfvWOF
2015-09-25 07:33:11 -07:00
Chris Manchester 9e57cd5781 Bug 1184405 - Add annotations for tags, file patterns, and test flavors to moz.build to specify tests potentially impacted by source files. r=gps
--HG--
extra : commitid : JbsAq6sNQ9f
2015-09-25 07:33:11 -07:00
Chris Manchester 442573a6f8 Bug 1184405 - Add a container type to mozbuild with a namedtuple-like interface and typed, mutable fields. r=gps
--HG--
extra : commitid : C983a05SWwh
2015-09-25 07:33:11 -07:00
Nick Alexander faa87abc9b Bug 1194365 - Bump Andoid NDK to r10e; manually install Android SDK and NDK on Mac OS X. r=mcomella
This bumps the NDK version to r10e.

Previously, we used brew to install android-sdk and a custom version
of android-ndk.  That makes it hard to control the installed versions.
This installs from downloaded archives, which unifies the Mac OS X
approach with the straight-forward Linux approach.

--HG--
extra : commitid : E7hEqsyy8Gw
extra : rebase_source : 9ea27e7d2ae3fbaaa3efbabdd701521981bec877
extra : histedit_source : c07c80c50ac066dc6808e7ccf96f0bc14dc09df2
2015-09-22 13:56:17 -07:00
Nick Alexander 4fd10538cf Bug 1171232 - Depend on platform-tools-preview; don't check for missing and failing Android packages. r=mcomella
The 'tools' package depends on 'platform-tools-preview' now.  Roll
with it until Google breaks us back again.

The behaviour of the |android| tool has changed; recent versions don't
reveal what packages are installed.  That means we can't skip already
installed packages; and we can't really tell if our installation
attempts succeeded.  But we have faith!

--HG--
extra : commitid : 341NxbHTJXC
extra : rebase_source : 945e8018effc0b417fc3fedb7220455fabeaedb3
extra : histedit_source : e42fb06e176d5b9e9ebb6553af7045f3a061105f
2015-09-22 13:54:17 -07:00
Nick Alexander 14f61c3434 Bug 1204260 - Post: remove platforms/android-* from |mach bootstrap|. r=glandium
--HG--
extra : commitid : 8ty9AOUtBe2
extra : rebase_source : 3eb41ec78617f82c80da194d709053ada16afc78
extra : histedit_source : 565b7dbf6a1014c70e2251616471f3bb072c5036
2015-09-22 11:40:06 -07:00
Nick Alexander 416f8c64aa Bug 1108782 - Part 2: Explode AAR files at configure time. r=glandium
This gets us a limited version of AAR support: we can consume static
AAR libraries, where here static does not refer to linking, but to
static assets that are fixed at build-backend time and not modified
(or produced) during the build.  This lets us pin our dependencies
(and move to Google's versioned Maven repository packages, away from
Google's unversioned ad-hoc packages).

By restricting to static AAR libraries, we avoid having to handle
truly complicated dependency trees, as changing parts of generated AAR
files require delicate rebuilding of the APKs (and internal libraries)
that depend on the AAR files.

It is possible that we will generate AARs in the tree at some time.
Right now, we don't do that, even for GeckoView: the AARs produced are
assembled as artifacts at package time and are intended for external
consumption.  We might want this for GeckoView and Fennec at some
time; we should consider using Gradle everywhere at that point.

The patch itself does the simplest possible thing (which has precedent
from Gradle and other build systems): it simply "explodes" the AAR
into the object directory and uses existing mechanisms to refer to the
exploded pieces.

AARs have both required and optional components.  Each component is
defined with an expected and required flag. If a component is expected
and not present, or not expected and is present, an error is raised.
If the component is expected and present, autoconf's ifelse() macro is
used to define the relevant AAR_* component variables.  If the
component is not expected and not present, no action is taken.  A
consuming build backend therefore can guard all AAR_* component
variables with just the top-level AAR variable.

Many AAR files have empty assets/ directories.  This patch doesn't
explode empty assets/ directories, protecting against trivial changes
to AAR files that don't impact the build.

There's a lot not to like in this approach, including:

* We need to manually reference internal AAR libs;
* I haven't separated the pinned version numbers out of configure.in.

However, it's closer to what we want than what we have!

--HG--
extra : commitid : 11kUhDAkCn5
extra : rebase_source : 2454c9842ab3296d53ca5fa394a5a962aa382c8d
extra : histedit_source : e2f97502d215016925e93500b8fd93f8b32fba3a
2015-09-22 10:04:26 -07:00
J. Ryan Stinnett 4f1af0e003 Bug 912121 - Update misc. DevTools paths and comments. rs=devtools
--HG--
extra : commitid : BSf4D59s9HF
extra : rebase_source : 4d14e1aa3ad93bbb426861336e8b703bc1e0b3af
2015-09-21 12:07:31 -05:00
Xidorn Quan c13216ec53 Bug 1205144 - Remove 'REMOVED' commands from output of mach-commands and mach-debug-commands. r=gps DONTBUILD
--HG--
extra : source : 7d40827d58f699b57668ad80573e93b3b0a8d0b0
extra : amend_source : 98c5b7adbd1a330528d70a8f41096cd26fe49bdd
2015-09-21 11:32:03 +10:00
Mike Hommey 624c5580a9 Bug 1204719 - Don't create interfaces.manifest files from the build backend. r=gps 2015-09-16 17:21:27 +09:00
Mike Hommey b8c10aca4a Bug 1204712 - Handle wildcards properly for localized content in jar manifests. r=gps 2015-09-16 17:21:12 +09:00
Ted Mielczarek 15800ee8cb bug 935237 - use libdmg-hfsplus to create DMG files during packaging on Linux. r=gps
--HG--
extra : commitid : 2d19BPHSECP
extra : rebase_source : 8121f9f1a929fdf2bdbf53817b7f98c26d9163ec
2015-08-21 15:33:03 -04:00
Ted Mielczarek 62ae78337e bug 1198226 - Add HOST_{C,CXX}FLAGS recursive make varible blacklist. r=mshal
--HG--
extra : commitid : FoL068jTSIs
extra : rebase_source : c520079216e1d53e2bfca01a14d391d0e86e25a0
2015-08-25 09:17:30 -04:00
Ted Mielczarek 15063c8111 bug 1198226 - Add HOST_{CFLAGS,CXXFLAGS,DEFINES} support to mozbuild frontend+recursive make backend. r=mshal
--HG--
rename : python/mozbuild/mozbuild/test/backend/data/defines/moz.build => python/mozbuild/mozbuild/test/backend/data/host-defines/moz.build
rename : python/mozbuild/mozbuild/test/frontend/data/defines/moz.build => python/mozbuild/mozbuild/test/frontend/data/host-defines/moz.build
extra : commitid : BqqF9IWK2hy
extra : rebase_source : 4beab63be2ffca5c0a43cd14039ffeb259ea74fe
2015-09-04 13:33:04 -04:00
Peter Moore 0cc8144421 Bug 1194767 - use slugid 1.0.6 in ./mach taskcluster-graph command. r=wcosta
This included adding the slugid 1.0.6 python source code in /python since slugid
is now a dependency of the ./mach taskcluster-graph command, as well us updating
references that used it. Previously the implementation was in-tree.
2015-09-04 17:59:34 +02:00
Gregory Szorc 84631939a9 Bug 1174037 - Support installing Mercurial from pip; r=glandium
Previously, we used a PPA on Ubuntu to install Mercurial. The PPA has
proved to be unreliable. Furthermore, we didn't have a mechanism for
installing a modern Mercurial on Debian and other derived distros.

In this commit, we remove the PPA from Ubuntu. We add the ability to
install Mercurial from pip to the Debian bootstrapper. However, since
some people may not want <not apt> installing package-like things,
we add a prompt explaining the situation and giving users a choice.
We recommend installing a modern Mercurial via pip. But we also given
the option to install a likely legacy version via apt. And, for Git
users, we give the option to not install Mercurial at all.

Since the new version of the Ubuntu bootstrapper is empty, it doesn't
need to exist, so it has been removed.

DONTBUILD (NPOTB)

--HG--
extra : commitid : 1n8D8hTG6Fm
extra : rebase_source : 666d9945650c0ce27a32353d98886e2336628a36
extra : amend_source : bb9e7538157fdac0203e2ecc3165185f95717098
2015-09-04 10:37:29 -07:00
Nick Alexander 9c3e48627a Bug 1137898 - Migrate to android:versionCode scheme v1. r=rnewman,snorp
Android version codes serve multiple masters.  They indicate newer
versions, yes; but they also break ties between versions with
different features and requirements. High order bits effectively
partition the space of versions and are valuable.  Since Android
version codes are signed Java integers, we have 31 bits to work with.
Mozilla's traditional build ID is YYYYMMDDhhmmss.  This was chopped to
ten characters (YYYYMMDDhh, i.e., hourly build IDs) and then converted
to a decimal.  This took many high order bits.  We will lose another
high order bit in the 36th month of 2015 -- i.e., as soon as the year
rolls over to 2016.  If we waited to lose the next higher order bit,
we'd lose that one in the 46th month of 2017 -- i.e., as soon as the
year rolls over to 2018.

The following patch sacrifices a high order bit to change the version
scheme, winning us roughly 15 years of hourly build IDs before we are
forced to lose another high order bit.  So it's clearly to our
advantage to change the scheme sooner rather than later -- we will
sacrifice 1 bit for 15 years of build IDs, rather than keeping the
current scheme and sacrificing (say) 2 bits for 3 years of build IDs.

The resulting scheme produces build IDs that look like (in binary):

0111 1000 0010 tttt tttt tttt tttt txpg

The meaning of these build IDs is documented in the Python source code
that generates them.

--HG--
extra : commitid : 7BEkkGHsYVL
extra : rebase_source : bbc0ead8e7a383c320e838b023b02b1fb0d94ff3
extra : amend_source : dab8c737e3274694aad40123e77884a3239908de
extra : histedit_source : 530bedde3695d534805465cdf8bcb9cd23f7b031
2015-08-26 18:34:48 -07:00
Geoff Brown 2015a6ea72 Bug 1164596 - Add mach android-emulator command; r=ahal 2015-09-01 15:07:53 -06:00
Nicholas Nethercote f44287005f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.

--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Xidorn Quan dbaa85ce62 Bug 1188468 - Allow script to force updating a generated file even if the file is actually not changed. r=gps
--HG--
extra : source : 47b56f2495030d77c446215d8822c31fc32f23b7
2015-08-25 10:07:43 +10:00
Birunthan Mohanathas bc29413b87 Bug 1197527 - Consolidate obtaining hg path into mozversioncontrol.get_hg_path; r=gps
DONTBUILD

--HG--
extra : commitid : LsREOYJSAa7
extra : amend_source : 6f19087188d9c6c009a817c3499c7fd9165bfc6a
extra : histedit_source : 36aa6d1a3e78367d50a3e65ac6f61872b7a635d4
2015-08-24 14:37:42 -04:00
Philipp Kewisch 757af5060a Bug 1167986 - TEST-UNEXPECTED-FAIL | xpcshell-unpack.ini:toolkit/mozapps/extensions/test/xpcshell/test_signed_install.js (and signing failures). r=gps 2015-08-23 11:54:44 +02:00
Wes Kocher fa57aa7153 Merge m-c to inbound, a=merge 2015-08-20 12:51:40 -07:00
Wes Kocher d8fffe1765 Merge inbound to central, a=merge 2015-08-20 12:42:21 -07:00
Joel Maher 02ece3e234 Bug 1196253 - update in-tree psutil to 3.1.1. r=gps 2015-08-20 08:03:31 -04:00
Wes Kocher 96e3c3623b Merge m-c to fx-team, a=merge CLOSED TREE 2015-08-19 17:13:38 -07:00
Nick Alexander ad27580b77 Bug 1195388 - Part 2: Add ANDROID_EXTRA_{PACKAGES,RES_DIRS} moz.build variables. r=gps
This moves a little bit more of mobile/android/base/Makefile.in into
moz.build, and gets closer to moving that aapt invocation into
java-build.mk.

There are no other extra package consumers in the tree.  (There should
be a new one shortly: b2gdroid.)

--HG--
extra : commitid : AaYqXYReOSX
extra : rebase_source : d41368ff0bd0736221fdc04ed8299b70c2488c8b
extra : histedit_source : 845efd5ba9f99f4e186c3a5c66affe69eac7fec7
2015-08-14 18:13:11 -07:00
Nick Alexander 543a450286 Bug 1195388 - Part 1: Make ANDROID_APK_{NAME,PACKAGE} moz.build variables. r=gps
This paves the way for defining additional Android packages in
moz.build, which is a step toward moving the special
mobile/android/base/Makefile.in aapt invocations into the generic
java-build.mk framework.

The new variables are both passthru variables for now: in the future,
we'll roll them into some aggregate Android APK definition.

It's worth noting that references to the variables in Makefile.in
files are only defined after including rules.mk (and thereby
backend.mk).  This only required a few changes in the tree but it
confused me for some time.

--HG--
extra : commitid : G5mEvm8Ng4F
extra : rebase_source : 7ba05f2e53554549ffb5cefe270925e3e2025b6a
extra : histedit_source : eacd22f4b7edddab67147c413fea45a3ba292c0c
2015-08-19 12:34:58 -07:00
Andrew Halberstadt f22ebea9f6 Bug 1194415 - Refactor BuildProgressFooter.draw() for minor |mach build| perf improvement, r=gps
Over a 19 minute build, |mach build| was spending ~45s drawing the TIER footer. This brings it down to ~30s.

--HG--
extra : commitid : 2sLWbNL853A
extra : rebase_source : ab8452dfa6ac39bc40a8f22b542e155595f18881
2015-08-13 14:08:12 -04:00
Niels De Graef 582ad89c13 Bug 1195182 - Fixed broken AUR link for uuid; r=gps
DONTBUILD (NPOTB)

--HG--
extra : commitid : GVD1noGQI0w
extra : amend_source : 3e46667094f8bb51bdd74cc2615443bc4db3d0ba
2015-08-18 09:26:37 -07:00
Aaron Raimist 2ed988f853 Bug 1171783 - Fix bootstrap.py by using DNF instead of Yum if possible; r=mshal
DONTBUILD (NPOTB)

--HG--
extra : commitid : KbAGQkESbla
extra : rebase_source : b171bdb997ae94905254a111cd550431e680d3f4
extra : amend_source : 2b2354cb623688359d0dfb1f6b548a19140551d6
2015-08-19 12:56:22 -07:00
David Keeler a7f29f4b91 bug 1190603 - import PyECC library r=gps,gerv
Obtained from https://github.com/amintos/PyECC.git
(commit 1bfd3a41410c3650e57d58f7bd016bb0819af250)
2015-08-03 15:17:00 -07:00
Nathan Froyd a8f3b221c3 Bug 1186444 - part 2 - remove MODULE_OPTIMIZE_FLAGS from config.mk; r=mshal 2015-07-22 11:17:49 -04:00
Andrew Halberstadt 9cbfe3373d Bug 1184696 - Add clobber targets to |mach clobber|; Ability to clobber compiled python files, r=gps
This change adds a 'what' parameter to |mach clobber| which facilitates clobbering other things as well.
E.g, |mach clobber python| now clobbers all .pyc and .pyo files in the tree. Multiple clobber targets can
be specified, e.g |mach clobber objdir python|. By default |mach clobber| without arguments will only
remove the currently active objdir, the same as before.

--HG--
extra : commitid : 4mJqdnWPRbH
extra : rebase_source : cf56de2d51c57747047936f7e742bafbf3f91c9f
2015-07-20 14:38:18 -04:00
Ryan VanderMeulen efce95618e Merge fx-team to m-c. a=merge 2015-08-13 11:00:54 -04:00
Nick Alexander 61a6ae674e Bug 1160563 - Part 2: Make ANDROID_ASSETS_DIRS a moz.build variable. r=gps
We have had singular ANDROID_ASSETS_DIR in Makefile.in for a while.
Fennec itself does not use the existing Makefile.in Android code, for
complicated historical reasons.

This makes the existing variable moz.build-only; generalizes the
existing variable to an ordered list; and adds the equivalent use of
the new list to the Fennec build, with a simple example asset.

This patch also updates the packager to include assets packed into the
gecko.ap_.  Without the packager change, the assets/ directory in the
ap_ gets left out of the final apk.  This whole approach is totally
non-standard but is more or less required to support our single-locale
repack scheme.

--HG--
extra : commitid : 4EAh1UNGNWT
extra : rebase_source : 5e5b4c4a120c3b4cc776c9f9380ddd2f9b63587e
extra : source : 0ddce3eb833e6d6180a19928a9b45d5d12f1d7fa
2015-08-12 11:04:03 -07:00
Nick Alexander 549c28f40f Bug 1160563 - Part 1: Make ANDROID_RES_DIRS a moz.build variable. r=gps
This patch does a few things.  First, it adds an AbsolutePath data
type, sibling to SourcePath and ObjDirPath.  (Existing Path consumers
that accept an open set of Path subtypes, and that only use full_path,
should function fine with the new AbsolutePath subtype.)

Second, it moves ANDROID_RES_DIRS to a moz.build list of Paths
(ordered).  We test, but don't use in tree, the new AbsolutePath.

--HG--
extra : commitid : DMLy1ogTJ0Y
extra : rebase_source : cb9ac47e8bf7c893a0284adc7a42eccb78ccae3d
2015-08-12 11:03:44 -07:00
Eric Rahm e2ce0103de Bug 1193914 - Properly check ide type when deciding whether or not to package. r=benwa 2015-08-12 13:59:05 -07:00
Ted Mielczarek a116bbbe7d bug 1164816 - Import concurrent.futures into the tree. r=gps
--HG--
extra : commitid : AjJH6cEqLlp
extra : rebase_source : 6a5befe8804e0297fd18af57643ac0061c570c5a
2015-05-12 14:52:06 -04:00
Ted Mielczarek de9027084a bug 1190522 - Rewrite pkg-dmg as a Python script. r=gps
--HG--
extra : commitid : 8CKCtjFc6wl
extra : rebase_source : bc51508f3708a7a7af8fe48bdbcb0d787bf77362
extra : source : bca1ad6cc3781af4b8c8667ccb3c29e5bcb50ea9
2015-08-03 15:40:04 -04:00
Kyle Huey 7f17047f2a No bug: Make ./mach clobber work on windows without winrm.exe. r=me 2015-08-11 06:10:46 -07:00
James Graham 399b0b18f5 Bug 1192315 - Support remainder arguments from predefined parsers in mach, r=gps
Mach has special handling for remainder arguments which previously
only worked with the decoration form. Extend this to also work when
a command passes in an explict parser

--HG--
extra : commitid : ICnYk764Xbc
extra : rebase_source : 1518edcb7bef375cbc2931b8da54b015045c8ce1
2015-08-07 18:13:05 +01:00
Allison Naaktgeboren 7346aec254 Bug 1125280 Part 1 build- Different suggestedsite tiles on first run for kidfox.r=gps 2015-08-07 21:40:41 -07:00
Mike Hommey 8a8b15e5db Bug 1181040 - Set ${var}_IS_SET variables for mk_add_options-defined variables. r=gps
It is useful to be able, during mozconfig execution, to do tests depending
on what was previously added with mk_add_options. Specifically, there is a
need to do this for MOZ_PGO because developers pushing to try may add it to
mozconfig.common.override.

While, ideally, it would be nice if we just defined the variable itself in
the mozconfig execution environment, that is a tedious task, having to jump
through hoops with eval, and handle all cases of variable assigment properly.

The hacky alternative is to just treat MOZ_PGO specially, but meh.

So instead, we set a ${var}_IS_SET variable to 1, indicating that a
mk_add_options defined ${var} to some value.
2015-08-07 06:51:52 +09:00
Mike Hommey b199109bdf Bug 1191575 - Optimize the RecursiveMakeBackend._check_blacklisted_variables test. r=gps
Bug 1153566 changed the regexp used in that method in such a way that there
has been a big hit in the time spent executing the make backend. On my machine,
with the current code, mach build-backend indicates:
  Backend executed in 5.01s
With the change from bug 1153566 reverted:
  Backend executed in 2.97s
That's a significant regression for a 4-character change.
But we can actually avoid using regexp in most cases, which can make things faster
than they were. With this change, we get down to:
  Backend executed in 2.28s
For reference, making the _check_blacklisted_variables method do nothing at all
ends with:
  Backend executed in 2.20s
2015-08-07 06:51:44 +09:00
Ryan VanderMeulen e65de54860 Backed out revision bca1ad6cc378 (bug 1190522) for breaking OSX B2G Desktop builds.
--HG--
extra : rebase_source : 5f17fac55c77c9566e68c0de4658947034cfdc0f
2015-08-06 15:43:45 -04:00
Ted Mielczarek 109add737e bug 1190522 - Rewrite pkg-dmg as a Python script. r=gps
--HG--
extra : commitid : 4xZjKDFBFp1
extra : rebase_source : 01fa275cd594a66c523b04857b180ec7fde5b3c8
2015-08-03 15:40:04 -04:00
Ted Mielczarek 9c8de9226b bug 1191598 - Pass MOZ_CURRENT_PROJECT in environment when running post-build automation steps for universal mac builds. r=gps
--HG--
extra : commitid : IulYxRZ8FIa
extra : rebase_source : 6fd3f72081f6da9179d27fafad27bb3604c9db50
2015-08-05 12:11:24 -04:00
Chris Manchester 46566aee20 Bug 1183232 - Allow selecting tests and suites with just a tag from mach try. r=ahal,gps
--HG--
extra : commitid : 7vcXR0ipE8b
2015-08-06 10:19:31 -07:00
Carsten "Tomcat" Book 9e4356a394 Merge mozilla-central to mozilla-inbound 2015-08-05 13:19:38 +02:00
Nick Alexander 7593e20340 Bug 1191051 - Use full 40 character hashes in |mach artifact|. r=gps
DONTBUILD NPOTB on a CLOSED TREE

--HG--
extra : commitid : 2ft26PqDgyT
extra : rebase_source : ca2eb4fe7c04e97fb78cd2175bd8549e13c13d7e
extra : amend_source : 10a2fa5931d151af448269239bdf2dc1980d3fae
2015-08-04 13:32:00 -07:00
Mike Hommey 2d36214d76 Bug 1188224 - Remove stale .pyc files from the source directory at import time. r=gps 2015-08-05 15:45:45 +09:00
Mike Hommey 2f34d661ae Backed out changeset 684252f11061 (bug 1188224) for make check bustage. 2015-08-05 13:50:11 +09:00
Mike Hommey 4be11b7533 Bug 1188224 - Remove stale .pyc files from the source directory at import time. r=gps 2015-08-05 11:17:03 +09:00
Nick Alexander 06a15a258d Bug 1189459 - Allow generating geckoview AAR files when MOZ_APP_NAME is not 'fennec'. r=gps
This just allows a little versatility for consumers such as b2gdroid,
which are Fennec-like but don't have MOZ_APP_NAME=fennec.

I elected to pass appname as a parameter rather than modify the
existing distdir because I expect to want to differentiate, in some
way, the output AAR files based on the underlying name.  That is, in
future we might generate geckoview-fennec-VERSION.aar and
geckolibs-b2gdroid-VERSION.aar, or stuff the name into the Ivy version
information, or...

This also fixes a typo in one of the JarFinder instantiations.

--HG--
extra : commitid : CnJKouGgkh1
extra : rebase_source : 5767e66ea53e14dd6468adec741773a02a6e2d3a
2015-07-30 11:50:44 -07:00
Dustin J. Mitchell 81154a1440 Bug 1188551: treat assertion failures as bad mozconfig; r=mshal
--HG--
extra : commitid : HZsljZRs5uw
extra : rebase_source : 8afac350c5a582d37f01f549e50f429cd6a4b1be
2015-07-29 14:14:05 -04:00
Vladimir Vukicevic 20ed175732 Bug 1157420, mach should generate VS2013 project files and use a better dir structure; r=froydnj 2015-07-20 16:21:15 -04:00
Mike Hommey a356ea8421 Bug 1187245 - Make .mozconfig.mk environment variables available to mach valgrind-test. r=gps 2015-07-28 08:19:14 +09:00
Mitchell Field 2c8cbec5d1 Bug 1126228 - Directory (--directory) argument for |mach warnings-list| and |mach warnings-summary|. r=gps 2015-01-27 21:13:28 +11:00
Mike Hommey d450691e52 Bug 1186229 - Enable Gtk+3 builds by default. r=gps
Note Gtk+3 builds need both Gtk+2 *and* Gtk+3.
2015-07-23 10:24:31 +09:00
Mike Hommey 3b0b38b4d9 Bug 1185671 - Use BytesIO instead of StringIO as backing store for FileAvoidWrite, and handle writing unicode to it explicitly. r=gps 2015-07-23 09:37:33 +09:00
Ben Hearsum 4db8272760 bug 1185530: mach boostrap should ensure that gnutar is installed. r=gps 2015-07-20 14:26:58 -04:00
Supradeep T R 8d41cd6385 Bug 1184780 - Use command help instead of main help; r=gps
--HG--
extra : commitid : MLpRMrje13
extra : amend_source : ff2038edce79b1b610be52e2908681d6de5edda2
2015-07-17 13:42:12 -07:00
Gregory Szorc 56a3eb2252 Bug 1184030 - Avoid implicit unicode <-> str conversion; r=smacleod
CalledProcessError.output and subprocess.check_output's return value
are str types. This file uses unicode_literals. If we do something
like `if 'foo' in e.output`, there will be a mix of str and unicode
types and Python will do implicit conversion. If the strings aren't
ASCII, we'll likely encounter a UnicodeDecodeError.

Use b'' literals around all strings to prevent this coercion from
occurring.

--HG--
extra : commitid : 89l5oW9T8ks
extra : rebase_source : f402353cd4a759c882475518f1360687af1936dc
extra : amend_source : ec31a39620eae2c90fb832f314cd161905444a34
2015-07-17 11:25:49 -07:00
Jonathan Griffin 0858f44655 Bug 1179292 - Make mozinfo recognize linux64-asan as a distinct platform, r=ahal
--HG--
extra : commitid : 2i02cOq3Jzv
2015-07-16 13:17:56 -07:00
Ehsan Akhgari c66403c220 Bug 1180275 - Part 1: Add a release_build mozinfo variable; r=ted 2015-07-16 14:47:52 -04:00
Ryan VanderMeulen d05bc1e9af Backed out changesets 9a048b598b1e and 56e9597b1257 (bug 1180275) for OSX test_android_eclipse.py failures.
CLOSED TREE
2015-07-15 23:40:06 -04:00
Ehsan Akhgari 29da2a2523 Bug 1180275 - Part 1: Add a release mozinfo variable; r=ted 2015-07-15 19:59:59 -04:00
Peter Elmers f0de749c69 Bug 1183291 - Factor idl-parser into a Python package. r=khuey
Move Python code into an xpidl subdirectory, and include a setup.py to allow
inclusion from pip install or requirements files. Change build directory
variables appropriately.

--HG--
rename : xpcom/idl-parser/Makefile.in => xpcom/idl-parser/xpidl/Makefile.in
rename : xpcom/idl-parser/header.py => xpcom/idl-parser/xpidl/header.py
rename : xpcom/idl-parser/moz.build => xpcom/idl-parser/xpidl/moz.build
rename : xpcom/idl-parser/runtests.py => xpcom/idl-parser/xpidl/runtests.py
rename : xpcom/idl-parser/typelib.py => xpcom/idl-parser/xpidl/typelib.py
rename : xpcom/idl-parser/xpidl.py => xpcom/idl-parser/xpidl/xpidl.py
2015-07-13 13:09:11 -07:00
Gregory Szorc 4121a5645c Bug 1182677 - Support calling a function during mach command dispatch; r=smacleod
This will give us the ability to execute custom code at command dispatch
time. We can use this for global tests before dispatch.

--HG--
extra : commitid : 5vfmSqOis4W
extra : rebase_source : c285b16007c4b604b164d079a275198c8760e480
2015-07-14 13:46:33 -07:00
Supradeep T R 5b30ad463d Bug 1175968 - Honor '-h' or '--help' only if it appears before '--'; r=gps
--HG--
extra : commitid : DQ1fwp6yyLQ
extra : amend_source : 9f556fa52c94be417d46ac57930520248b7b715d
2015-07-13 16:58:54 -07:00
Carsten "Tomcat" Book 4a67c881e4 merge mozilla-inbound to mozilla-central a=merge 2015-07-13 11:51:14 +02:00
Nick Alexander 5a41a44863 Bug 1182579 - Compute Android version codes in Python. r=gps
I considered three ways to do this:

* one, as a Python script executed with $(shell);
* two, as a Python script that writes an include file for the preprocessor;
* three, as a function exposed to the moz.build sandbox.

I rejected two because it's both tied to the preprocessor, and awkward
to make handle the dependency on the buildid (in a file) and
additional build defines (in config.status).

I rejected three because I know of no precedent for this approach, and
it hides the dependency on the buildid.

One doesn't handle failures in the script gracefully, but neither did
the existing approach.  This patch is at least testable.

--HG--
extra : commitid : 8dfw1ri7qjr
extra : rebase_source : da0e5ec705e0ac4c795bd2d7892f73857a1699ac
2015-07-08 12:43:06 -07:00
Mike Hommey b7e836094e Bug 1181450 - Make GENERATED_FILES more visible during the build by printing their name when they are being generated. r=gps 2015-07-10 09:56:04 +09:00
Julien Pagès ad6287944e Bug 1180813 - Use a cache for BuildConfig to improve mach speed. r=gps 2015-07-07 00:35:00 -04:00
Nicholas Hurley d0164d8d04 Bug 1182301 - Improve 'mach build' notifications. r=gps 2015-07-10 13:36:57 -07:00
Edmund Wong b7aeebe2c4 Bug 1177634 - Ensure EXTERNAL_SOURCE_DIR uses normcase. r=glandium 2015-07-08 08:11:15 +08:00
Mike Hommey 0e0bd7bd5a Bug 1180081 - Properly rebuild gtest/libxul before running gtests. r=gps
And since this does go through plenty of make directories, avoid make printing
many "Entering" and "Leaving" messages.
2015-07-08 07:53:31 +09:00
Ehsan Akhgari c1484ba42b Bug 1179488 - Accept any arguments passed to deprecated commands; r=gps
Without this, we throw UnrecognizedArgumentError when running commands
such as `./mach mochitest-plain test`, which causes an error message
such as the below to be emitted:

It looks like you passed an unrecognized argument into mach.

The mochitest-plain command does not accept the arguments: test

This patch will fix the above command to instead print the corresponding
deprecation message.
2015-07-06 18:08:48 -04:00
Nick Alexander 159cd7e187 Bug 1177933 - Add |mach eslint| command. r=mcomella,dmose
DONTBUILD NPOTB

--HG--
extra : commitid : IkJltHjrNkD
extra : rebase_source : 93b215c71160013c41fc447ff8eea16f670833cf
extra : histedit_source : 73c8204c8aa208b5ed7739b2f7064a110d6f5982%2Cf5cb35fa8eeea8c6443f96b3940df32c2e5fb826
2015-07-02 12:18:52 -07:00
Ted Mielczarek d47a94a095 bug 1162519 - use winrm for mach clobber on Windows. r=gps
--HG--
extra : commitid : AGLwgeTmbKQ
extra : rebase_source : 9aac8bdcfd685bb8d08f877c256c56ccba98b665
2015-07-01 11:47:03 -04:00
Wes Kocher b877fa7a3a Merge m-c to fx-team, a=merge 2015-06-30 16:58:23 -07:00
Nick Alexander 89b81547b6 No bug - Don't write artifacts twice. r=me
DONTBUILD NPOTB

This was just an oversight during the initial landing, leading to two
copies of artifact libraries being appended to the same destination
file.

--HG--
extra : commitid : JvvZDrjUOQZ
extra : rebase_source : f48c1a9d4b506b6ed931043aeeaca437418ea9c3
extra : histedit_source : 3dbfd049039c0adc595c1abb0df3dca3af9db207
2015-06-30 16:19:51 -07:00
Andrew McCreight 1f8cde6f73 Bug 1058178, part 1 - Implement DMD heap scanning mode. r=njn
This implements a new "scan" mode for DMD that records the address
and contents of every live unsampled block in the DMD log. This
enables the low-level analysis of references from one block to
another, which can help leak investigations.
2015-06-30 11:54:15 -07:00
Carsten "Tomcat" Book 66f9f77e3d merge mozilla-inbound to mozilla-central a=merge 2015-06-26 13:19:12 +02:00
Gregory Szorc d34ee1a5dc Bug 1176642 - Import proper mozinfo package; r=me
bf34d16b6ab2 added absolute_import to this file. When changed, "import
mozinfo" stopped picking up mozbuild.mozinfo and started importing
mozinfo instead.

Use relative imports to force mozbuild.mozinfo to be picked up.

--HG--
extra : commitid : 4GC5lJWrBFq
extra : rebase_source : c91674b16f29dadf8dcda460787ea94654f2864a
2015-06-25 16:11:22 -07:00
Andrew Halberstadt f8bb1d3236 Bug 1177476 - Fix require_conditions regression in mach, r=gps
This is a regression from bug 1176620 that results in all Firefox mach commands showing up in the help for B2G, even though they don't work there.

--HG--
extra : rebase_source : e779b866a82c2df1dbf913d24b93a0dc9838ff9f
2015-06-25 15:44:11 -04:00
Gregory Szorc 2237a97c63 Bug 1176642 - Use absolute_import in mozbuild; r=glandium
--HG--
extra : commitid : C634LBkrODe
extra : rebase_source : 839e3ccac3fe3c3dcb58288289fad1b25d92078e
2015-06-21 18:37:18 -07:00
Gregory Szorc c83528e0f4 Bug 1176642 - Use absolute_import in mozpack; r=glandium
--HG--
extra : commitid : Au8BOB8l869
extra : rebase_source : 2acf6d1df5b8d15261873f67a8b95ee018df3d0c
2015-06-25 12:13:55 -07:00
Gregory Szorc 0fd4fce9ae Bug 1176642 - Defer import of glob; r=glandium
This was the only import of glob from all mach_commands.py files. Kill
it.

With this commit, there are no modules imported by a single
mach_commands.py outside of testing/web-platform/mach_commands.py.

--HG--
extra : commitid : 4CJqlwDqOVg
extra : rebase_source : 9dbbd69291d64b894a399523864562107c10872e
2015-06-25 12:11:55 -07:00
Gregory Szorc b5f03038db Bug 1176642 - Defer import Eclipse backend modules; r=glandium
This import brought in significant parts of the mozbuild package. Moving
it to a deferred import reduces the total number of Python modules
imported during mach dispatch by 43.

--HG--
extra : commitid : GdXsF7agvCT
extra : rebase_source : 586f1960c8e7eb400f61467045b064167784f68b
2015-06-25 12:11:12 -07:00
Gregory Szorc 3e949ee8fe Bug 1176642 - Use absolute_import in mach_commands.py files; r=glandium
This removes ambiguity as to which modules are being imported, making
import slightly faster as Python doesn't need to test so many
directories for file presence.

All files should already be using absolute imports because mach command
modules aren't imported to the package they belong to: they instead
belong to the "mach" package. So relative imports shouldn't have been
used.

--HG--
extra : commitid : 6tFME1KKfTD
extra : rebase_source : 78728f82f5487281620e00c2a8004cd5e1968087
2015-06-21 17:39:09 -07:00
Gregory Szorc a19bee3a08 Bug 1176642 - Remove unused imports; r=glandium
--HG--
extra : commitid : IZ7JkH4GKW4
extra : rebase_source : 4c3301c5c353be8afed407df4a003a9cac4583e8
2015-06-25 12:16:38 -07:00
Nick Alexander 0a6017a1af Bug 1162191 - Add |mach artifact| for installing downloaded Fennec binaries. r=gps
DONTBUILD ON A CLOSED TREE: Android-only and the build changes are cosmetic.

Very much a first cut, but I'd like to get some Fennec early adopters testing.

This adds:

* |mach artifact install| to fetch and install Fennec binaries;
* |mach artifact last| to print details about what was last installed;
* |mach artifact {print,clear}-caches|, for debugging.

This code is exposed as a new mozbuild.artifacts Python but it's not
particularly general.  My intention was to get things out of the mach command
more than produce a general artifact fetching API.  We can leave that bike
shed to Bug 1124378.

I've been testing this with --disable-compile-environment and it works well
locally, although there's no reason a knowledgeable developer couldn't use
this in conjunction with a fully-built tree.  (I don't know when such a
situation would arise, but I know of no technical impediment.)

--HG--
extra : commitid : 1T28aVfArqF
extra : rebase_source : b8c11244de8be0a14d605853f30cd47312d0a4ba
extra : histedit_source : 78a224501cd3cf0f86707c9c9549b61b4b248ba7
2015-06-24 23:12:00 -07:00
Gregory Szorc 2d3964ecf9 Bug 1176620 - Eliminate MethodHandler; r=ahal
This type is now redundant with our new rich type for capturing all mach
command metadata. Eliminate it and using _MachCommand instead.

--HG--
extra : commitid : 7pXhf6V7F8m
extra : rebase_source : 343615096f23d3acf23f7487c7b8c7137c85337e
2015-06-21 13:17:51 -07:00
Gregory Szorc 89a96642e2 Bug 1176620 - Pass fewer arguments into MethodHandler; r=ahal
Simplify construction of mach's MethodHandler instances by by passing in
our new rich type that holds all command metadata.

While we are here, kill the docstring argument, as it can be computed
easily inside MethodHandler.__init__.

--HG--
extra : commitid : I5PRlYDVXVq
extra : rebase_source : ebf07116357036ddfec06fd32fb161fefff628e6
2015-06-21 13:07:33 -07:00
Gregory Szorc 3e834385c6 Bug 1176620 - Refactor how mach command metadata is stored; r=ahal
Up to this point, mach command metadata has been stored in tuples.
Initially, things weren't so bad. But they have evolved into tuples with
many elements. Adding new attributes is cumbersome. Let's restructure
the code to capture metadata in a dedicated class.

Before, there existed a separate attribute on the @Command or
@SubCommand decorated method for each mach decorator: @Command,
@CommandArgument, @CommandArgumentGroup. With the magic of __ior__,
we can now capture all metadata on a single type. This simplies
processing, as we now only look at a single attribute on methods:
_mach_command.

Before, we used separate attributes to distinguish between mach commands
and mach sub-commands. Now that we have a type that can hold all data,
we combine things into the _mach_command attribute and look for the
presence of the "subcommand" attribute on this type to identify
sub-commands.

--HG--
extra : commitid : EtBwUmS5TV2
extra : rebase_source : 4ef5f95a532693672c6c4b33fa1c22adb76d105e
2015-06-21 12:59:29 -07:00
Gregory Szorc 95643136a3 Bug 1176620 - Use absolute_import in mach; r=ahal
To help ensure Python 3 compatibility.

--HG--
extra : commitid : 1eCMr8OKGRa
extra : rebase_source : 49a6037ae6a25a5d3e30b93b634f3b4cc1b55a4e
2015-06-21 11:56:05 -07:00
Birunthan Mohanathas 0a800b87f2 Bug 1174524 - Make objdir path comparison case-insensitive on Windows. r=mshal
os.path.realpath already implies os.path.normpath, so this just changes
normpath to normcase.
2015-06-16 08:24:29 -07:00
Gregory Szorc df52729835 Bug 1171105 - Ability to aggregate metadata from Files instances; r=glandium
We want this logic to live next to where metadata types are defined so
downstream consumers of Files-based metadata don't have to reinvent the
wheel.

The work in this commit will be used to enable auto filing bugs during
pushes to MozReview.

--HG--
extra : commitid : F55RzhDCVmR
extra : rebase_source : 1fe1a03f8d592c60d2ed8d760fd62c7bc60421a5
2015-06-12 09:44:14 -07:00
Gregory Szorc f15e40e75d Bug 1172645 - Make mozbuild's setup.py work; r=glandium
This file hasn't been updated in ages and the current configuration
doesn't produce working packages. Change that.

--HG--
extra : commitid : AfiwohniLPq
extra : rebase_source : 70786c7bd9e37c9acc9b38f54c956fec424cfcf5
extra : amend_source : e4e3752dc97b934456b973736ef55633366c8ee6
2015-06-12 09:37:54 -07:00
Wes Kocher 2aa142fe5e Merge inbound to central, a=merge 2015-06-11 17:02:47 -07:00
Gregory Szorc cb10ca03ae Bug 1168466 - Bump minimum Mercurial version in bootstrapper; r=me
This should have been done in 4c757e339f81.

DONTBUILD (NPOTB)

--HG--
extra : commitid : 41TCyM9iqVQ
extra : rebase_source : 8defc6b23d507e1580db77869ff2c2e99ee5db5a
extra : amend_source : 5f330ea7c2775675fcc8051e5c46d2439c4e5823
2015-06-10 15:38:46 -07:00
Timur Timirkhanov 507e72a004 Bug 1169089 - Detect CentOS 7 in bootstrapper; r=gps
CentOS has apparently changed its disto name. Detect the new version.

DONTBUILD (NPOTB)

--HG--
extra : commitid : JrYp4WJ5Fs3
extra : amend_source : c2ac16f7006c2e44450de54edb732fa722f150d0
2015-06-10 11:27:15 -07:00
Benjamin Smedberg 89ca26a1e4 Bug 1168861 - Make mach bootstrap install GConf2-devel on Fedora, r=glandium
--HG--
extra : rebase_source : 306ede940567b5c7922d9248651c8091677cc5b8
extra : histedit_source : 0d1bff410be6fcddfd74c85b9d4313d15c82a7cf
2015-05-27 11:01:22 -04:00
Gregory Szorc 013f437636 Bug 1168607 - Add a native Mercurial finder; r=glandium
The hglib Mercurial finder was nice. But it is somewhat slow, as it
involves a separate Mercurial process.

This commit introduces a native Mercurial finder that speaks directly
to a Mercurial repository instance. It is significantly faster.

The new code is isolated to its own file because it imports Mercurial
code, which is GPL.

--HG--
extra : commitid : 8CzDFt3lQmx
extra : rebase_source : 1540ad20d795086926b316612062e2a1f10c4958
2015-06-09 13:49:45 -07:00
Gregory Szorc d5d6c72dd3 Bug 1168607 - Make `mach file-info` work with Mercurial repos; r=glandium
This commit adds support for specifying a Mercurial revision with `mach
file-info`. Aside from being a potentially useful feature, it proves
that MercurialRevisionFinder works with BuildReader.

--HG--
extra : commitid : 7143XT9ENqb
extra : rebase_source : d8c0c98d536d07db76653b648fd4b7d74d8f43ae
2015-06-09 13:43:22 -07:00
Gregory Szorc ba5d71304d Bug 1168607 - Add mode to MercurialFileFinder to support non-relative paths; r=glandium
The moz.build reader uses absolute paths when referencing moz.build
files. *Finder classes expect paths to be relative to a base. When we
switched the reader to use *Finder instances for I/O, we simply provided
a default FileFinder based at the filesystem root. This was quick and
easy. Things worked.

Unfortunately, that solution isn't ideal because not all *Finder
instances can accept absolute paths like that. The
MercurialRevisionFinder is one of them.

Changing the moz.build reader to talk in terms of relative paths is a
lot of work. While this would be ideal, it is significantly easier to
defer the problem until later and hack up MercurialRevisionFinder to
accept absolute paths. This commit does exactly that.

Bug 1171069 has been filed to track converting BuildReader to relative
paths.

--HG--
extra : commitid : 2JmzOBldBLy
extra : rebase_source : a8af6ce88dd9e2b98f131c92b45c3ece852e13d2
2015-06-08 09:33:46 -07:00
Gregory Szorc 4f13520461 Bug 1168607 - Implement a finder that reads from a Mercurial repo; r=glandium
Now that moz.build files use finders for I/O, we can start reading
moz.build data from other sources.

Version control is essentially a filesystem. We implement a finder
that speaks to Mercurial to obtain file data. It is able to obtain
file data from a specific revision in the repository.

We use the hglib package (which uses the Mercurial command server) for
speaking with Mercurial. This adds overhead compared to consuming the
raw Mercurial APIs. However, it also avoids GPL side-effects of
importing Mercurial's Python modules.

Testing shows that performance is good but not great. A follow-up
commit will introduce a GPL licensed Mercurial finder. For now, get
the base functionality in place.

--HG--
extra : commitid : BkwaQOW9MiR
extra : rebase_source : 915d6015317ccc79c228a76eed861d9f43e2fd17
2015-06-09 13:39:01 -07:00
Gregory Szorc 8ce366a5f7 Bug 1168607 - Use mozpack Finders for reading moz.build files; r=glandium
Sometimes moz.build data may not come from the local filesystem. To
support defining moz.build data in other backing stores, we switch
moz.build reading to use mozpack's *Finder classes for I/O.

The use of a FileFinder bound to / is sub-optimal. We should ideally
be creating a finder bound to topsrcdir. However, doing this would
require refactoring a lot of path handling in the reader, as that code
makes many assumptions that paths are absolute. This would be excellent
follow-up work.

While I was here, I cleaned up some linter warnings for unused imports.

On my machine, this commit results in a slight slowdown of moz.build
reading. Before, `mach build-backend` was consistently reporting 1.99s
for reading 2,572 moz.build files. After, it is consistently reporting
2.07s, an increase of 4%. This is likely due to a) function call
overhead b) the cost of instantiating a few thousand File instances
c) FileFinder performing an os.path.exists() before returning File
instances. I believe the regression is tolerable.

--HG--
extra : commitid : 1WDcrSU3SQD
extra : rebase_source : a23aa5a4063c6f7080ee00b6f0fe0ee532da3ce7
2015-06-09 18:16:35 -07:00
Gregory Szorc 4bee702035 Bug 1168607 - Add a read() method to File; r=glandium
Passing raw file handles around is a bit dangerous because it could lead
to leaking file descriptors. Add a read() method that handles the simple
case of obtaining the full contents of a File instance.

This should ideally be a method on BaseFile. But this would require
extra work and isn't needed. So we've deferred it until bug 1170329.

--HG--
extra : commitid : 82qw76XmpjC
extra : rebase_source : 422b16c5a3b1577f080097925aeaeb560aa3e798
2015-06-02 09:37:45 -07:00
Gregory Szorc ab11dfb209 Bug 1168607 - Add get method to finders; r=glandium
Today, the *Finder classes are optimized for doing matching and
returning multiple results. However, sometimes only looking for a
single file is wanted.

This commit implements the "get" method on all the *Finder classes.
It returns a BaseFile or None.

FileFinder._find_file has been refactored into FileFinder.get
to avoid code duplication.

--HG--
extra : commitid : K9It2ZJ3Rbo
extra : rebase_source : a56f8f70aa1902d26373a7196eae2847cce653d3
2015-06-04 11:24:03 -07:00
Mike Hommey 0a4831d945 Bug 1172800 - Create actual functions to execute moz.build templates. r=gps
The current mode of execution of templates doesn't allow them to more advanced
control flow, like returning early, returning or yielding values, because that
mode of execution is equivalent to running the code at the top level of a .py
file.

Making the templates executed through a function call, although trickier,
allows those control flows, which will be useful for template as context
managers.
2015-06-10 09:33:22 +09:00
Mike Hommey e7ceb2bd70 Bug 1172800 - Avoid using inspect.getsourcelines() and inspect.getfile(). r=gps
inspect.getsourcelines() and inspect.getfile() involve I/O out of our control.
Our use of those functions, however, doesn't require all their smarts. In fact,
we only use them on function objects, for which we can just do the work
ourselves without involving inspect functions that trigger I/O.
2015-06-10 09:33:21 +09:00
Mike Hommey 17363f4d4e Bug 1172800 - Move moz.build template handling in a separate class. r=gps
This will make subsequent refactorings a bit more intelligible.
2015-06-10 09:33:20 +09:00
Mike Hommey 0d786e2057 Bug 1172800 - Fixup after bug 991983. r=gps 2015-06-10 09:33:19 +09:00
Mike Hommey ad90bd664a Bug 985857 - Automatically log mach output and add a command to display it. r=gps 2015-06-10 09:33:19 +09:00
Gregory Szorc 67e6a15a08 Bug 1173633 - Print docstrings of mach command handlers in help output; r=ahal
`mach help <command>` currently only displays a brief description of the
command along with its arguments. Sometimes more detailed help text is
needed.

With this commit, the docstrings of mach command handlers will appear in
the output of `mach help <command>` if they are defined.

I've implemented basic docstrings for the three flavors of mach commands
(normal command, main subcommand, subcommand) to demonstate things work.

My hope is others will start to fill in docstrings once this feature
lands so the output for `mach help` can serve as a better learning guide
for new contributors.

--HG--
extra : commitid : Hx6ZkHDxbCK
extra : rebase_source : 01ced5a044442e370a45cd3fb245ac6283316925
extra : amend_source : fceb771e0e1ffa4e6f3f1b7c22eae6e25cf82034
2015-06-11 08:32:02 -07:00
Jonathan Griffin eaaad653b6 Bug 1170632 - Fix platform_guess for osx; add pgo runtimes for mbc, r=ahal 2015-06-05 16:29:18 -07:00
Wes Kocher 079a117eae Merge m-c to fx-team, a=merge 2015-06-05 16:05:33 -07:00
Gijs Kruitbosch 015c8609b5 Bug 1150417 - use theme manifest for overrides, r=glandium,dao
--HG--
extra : commitid : 7Ip6kOB2BdY
extra : histedit_source : ada1cc46a63d0b7b2b26cd55f6085bd65be5d70d
2015-06-05 12:48:34 +01:00
Michael Comella 627fb4620a Bug 1165422 - Bump mach bootstrap versions for SDK 22. r?nalexander
--HG--
extra : commitid : BNLZwuY4k7V
extra : rebase_source : d36b0269bb69febd2201ef9d8a9f928e4bddb7ec
2015-06-04 10:53:24 -07:00
Nathan Froyd fc6a141ee0 Bug 1170691 - part 1 - add the generating script's directory to sys.path in file_generate.py; r=glandium
The old way of writing scripts for generated files would invoke the script thusly:

    python script.py arg1...

Invoking the script this way means that the script's directory is
automatically added to sys.path, and importing modules from that
directory is easy.  Let's make it equally easy in the new world for
GENERATED_FILES, too.
2015-06-02 16:00:48 -04:00
Axel Hecht fc69cd94d8 Bug 1165906 - Add docs for l10n to the tree. r=gps
Document the role of l10n.ini, filter.py, file paths and checks.

Also add a glossary for the jargon used in the doc.

--HG--
extra : rebase_source : ec71f9b7123ba76370d34d2349b2f078f14dd1de
2015-06-01 17:13:44 +02:00
James Graham d27ca37fce Bug 1169410 Add support for web-platform-tests to |mach test| r=gps
--HG--
extra : rebase_source : 9a1fb715e0844a61c47a1de53f8a4a54ff2e05f0
extra : amend_source : 8fb1e54b76ae543fa2b01002c2d300334dc051be
2015-05-28 20:27:23 +01:00
Mike Hommey 79ea9f2368 Bug 1170431 part 0 - Use the *Path classes for GENERATED_FILES scripts and inputs. r=gps 2015-06-03 07:10:12 +09:00
Andrew Halberstadt 7aa80fb529 Bug 1164597 - Consolidate all mochitest mach commands into single |mach mochitest|, r=chmanchester
--HG--
extra : rebase_source : 0a0d8a454df10ae9df9678c98e11b5eaf8249f51
2015-05-05 16:41:59 -04:00
David Keeler f23dffbae1 bug 1166976 - add Python-RSA python library r=ted,gerv 2015-05-20 16:34:03 -07:00
David Keeler 932ce8516b bug 1166976 - add pyasn1-modules python library r=ted,gerv 2015-05-20 16:33:23 -07:00
Mike Hommey 5b9df4e5b5 Bug 991983 - Add a deprecation hint for GENERATED_SOURCES. r=gps 2015-05-28 07:39:05 +09:00
Mike Hommey 9b83baa130 Bug 991983 - Make TEST_HARNESS_FILES use the *Path classes instead of a separate set of methods to resolve paths. r=gps 2015-05-28 07:34:16 +09:00
Mike Hommey 806e0220a2 Bug 991983 - Use objdir-relative SOURCES instead of GENERATED_SOURCES. r=gps 2015-05-28 07:34:16 +09:00
Mike Hommey ea7750bcb1 Bug 991983 - Define SOURCES as SourcePath. r=gps 2015-05-28 07:34:15 +09:00
Mike Hommey f8b674d9a9 Bug 991983 - Refactor SourcePath handling for moz.build, add new classes and extensive tests. r=gps
Add generic support for different forms of paths in moz.build:
  '/topsrcdir/relative/paths'
  'srcdir/relative/paths'
  '!/topobjdir/relative/paths'
  '!objdir/relative/paths'

This drops the use of UserString for performance reasons, which required
going around with a meta class.
2015-05-28 07:34:14 +09:00
Mike Hommey 138454bcb9 Bug 991983 - Remove commented code in gyp_reader.py. r=gps
This code has been commented since it landed, and enabling it requires
adding the proper conditionals around all non_unified_sources in gyp
configurations, which is a daunting task. OTOH, the commented code is
already outdated (it would need updates to work) and the related code
that is not commented gets in the way of upcoming changes, so remove
it.
2015-05-28 07:34:14 +09:00
Mike Hommey fc325a2d7e Bug 991983 - Don't pass template paths to contexts. r=gps
When doing a template call, what's relevant for relative paths is the source
path of the caller moz.build, not where the template is defined.
2015-05-28 07:34:13 +09:00
Mike Hommey 65120e7e62 Bug 991983 - Add a ContextDerivedTypedListWithItems type. r=gps 2015-05-28 07:34:12 +09:00
Mike Hommey bc23a0ddc5 Bug 991983 - Emit absolute paths for other sources. r=gps 2015-05-28 07:34:11 +09:00
Mike Hommey 188ce081ec Bug 991983 - Emit absolute paths for UnifiedSources. r=gps
This helps upcoming changes, and relieves backends from path resolution.
This has the side effect of chaning the order of some unified sources,
which consequently breaks nsTextFormatter because it declares snprintf
methods after nsStringAPI #defines it.
2015-05-28 07:34:11 +09:00
Mike Hommey fc645ba14f Bug 991983 - Set GARBAGE for GeneratedSources in the recursivemake backend. r=gps
GARBAGE is an implementation detail of the recursivemake backend, and
doesn't need to spill in what the emitter emits.
2015-05-28 07:34:10 +09:00
Mike Hommey 2818f32729 Bug 1168231 - Normalize file mode in jars. r=gps 2015-05-27 11:33:25 +09:00
Kartikaya Gupta 077ad1ddfb Bug 1117958 - Allow any debugging options to the run or gtest mach subcommands to automatically enable debugging. r=gps 2015-05-25 15:32:09 -04:00
Mike Hommey 4a4cc01c62 Bug 1166538 - Make it more straightforward, path-wise, to change $(ZIP) uses to the zip py_action. r=gps 2015-05-21 15:17:01 +09:00
Mike Hommey aa8f7a51f7 Bug 1166538 - Make dozip.py a py_action. r=gps
--HG--
rename : toolkit/mozapps/installer/dozip.py => python/mozbuild/mozbuild/action/zip.py
2015-05-21 15:17:00 +09:00
Brian O'Keefe c6ba641724 Bug 924187 - Deal with interfaces.manifest from the backend. r=mshal
--HG--
extra : rebase_source : 2d2cbc1ebc97496c54aef63de73b00af8126e750
2015-02-13 08:11:57 -05:00
Joe Steele 1afe160293 Bug 1139125 - Add Windows 64-bit support and certificate chain support to Adobe EME voucher tool. r=ted 2015-05-15 15:26:52 +12:00
Wes Kocher 60d01c38b7 Merge inbound to m-c a=merge 2015-05-12 16:24:41 -07:00