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

7154 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 03b4a0d6e0 Bug 1462498 - Update clang 6 pre to clang 6 final on linux and mac. r=gps 2018-06-08 09:25:49 +09:00
Mike Hommey e1e5972b07 Bug 1467327 - Use bootstrapped clang if no system clang is found. r=froydnj
--HG--
extra : rebase_source : 4e646c27321d19d2d44df9911e5ef6fdb060ac48
2018-06-07 09:57:36 +09:00
Gurzau Raul 30ff1c45fb Backed out changeset ba02d348e3fd (bug 1467327) for LinuxToolchainTest bustages on a CLOSED TREE 2018-06-07 05:22:40 +03:00
Mike Hommey b5dd8f7e9b Bug 1467327 - Use bootstrapped clang if no system clang is found. r=froydnj
--HG--
extra : rebase_source : fbb9e09e4211f6456391c8446899023520d2bbf9
2018-06-07 09:57:36 +09:00
Mike Hommey 65169421bc Bug 1467041 - Default to --enable-release when milestone is beta/release. r=froydnj
--enable-release not being passed means developer options are enabled,
which is generally speaking not desirable for builds meant to be
shipped. This is somewhat alleviated for Firefox by MOZILLA_OFFICIAL
implying --enable-release (as well as MOZ_AUTOMATION), but that doesn't
apply to e.g. standalone js builds (even some of the standalone js jobs
on our automation don't set MOZ_AUTOMATION for some reason).

A reasonable thing to do is just to default builds for release/beta
milestones to --enable-release, but still allow --disable-release
to enable the developer options.

--HG--
extra : rebase_source : 770d51b10a9cd17c63972435bb61eed10345ea71
2018-06-06 16:13:09 +09:00
Gregory Szorc 8922082362 Bug 1460777 - Taskgraph tasks for retrieving remote content; r=dustin, glandium
Currently, many tasks fetch content from the Internets. A problem with
that is fetching from the Internets is unreliable: servers may have
outages or be slow; content may disappear or change out from under us.

The unreliability of 3rd party services poses a risk to Firefox CI.
If services aren't available, we could potentially not run some CI tasks.
In the worst case, we might not be able to release Firefox. That would
be bad. In fact, as I write this, gmplib.org has been unavailable for
~24 hours and Firefox CI is unable to retrieve the GMP source code.
As a result, building GCC toolchains is failing.

A solution to this is to make tasks more hermetic by depending on
fewer network services (which by definition aren't reliable over time
and therefore introduce instability).

This commit attempts to mitigate some external service dependencies
by introducing the *fetch* task kind.

The primary goal of the *fetch* kind is to obtain remote content and
re-expose it as a task artifact. By making external content available
as a cached task artifact, we allow dependent tasks to consume this
content without touching the service originally providing that
content, thus eliminating a run-time dependency and making tasks more
hermetic and reproducible over time.

We introduce a single "fetch-url" "using" flavor to define tasks that
fetch single URLs and then re-expose that URL as an artifact. Powering
this is a new, minimal "fetch" Docker image that contains a
"fetch-content" Python script that does the work for us.

We have added tasks to fetch source archives used to build the GCC
toolchains.

Fetching remote content and re-exposing it as an artifact is not
very useful by itself: the value is in having tasks use those
artifacts.

We introduce a taskgraph transform that allows tasks to define an
array of "fetches." Each entry corresponds to the name of a "fetch"
task kind. When present, the corresponding "fetch" task is added as a
dependency. And the task ID and artifact path from that "fetch" task
is added to the MOZ_FETCHES environment variable of the task depending
on it. Our "fetch-content" script has a "task-artifacts"
sub-command that tasks can execute to perform retrieval of all
artifacts listed in MOZ_FETCHES.

To prove all of this works, the code for fetching dependencies when
building GCC toolchains has been updated to use `fetch-content`. The
now-unused legacy code has been deleted.

This commit improves the reliability and efficiency of GCC toolchain
tasks. Dependencies now all come from task artifacts and should always
be available in the common case. In addition, `fetch-content` downloads
and extracts files concurrently. This makes it faster than the serial
application which we were previously using.

There are some things I don't like about this commit.

First, a new Docker image and Python script for downloading URLs feels
a bit heavyweight. The Docker image is definitely overkill as things
stand. I can eventually justify it because I want to implement support
for fetching and repackaging VCS repositories and for caching Debian
packages. These will require more packages than what I'm comfortable
installing on the base Debian image, therefore justifying a dedicated
image.

The `fetch-content static-url` sub-command could definitely be
implemented as a shell script. But Python is readily available and
is more pleasant to maintain than shell, so I wrote it in Python.

`fetch-content task-artifacts` is more advanced and writing it in
Python is more justified, IMO. FWIW, the script is Python 3 only,
which conveniently gives us access to `concurrent.futures`, which
facilitates concurrent download.

`fetch-content` also duplicates functionality found elsewhere.
generic-worker's task payload supports a "mounts" feature which
facilitates downloading remote content, including from a task
artifact. However, this feature doesn't exist on docker-worker.
So we have to implement downloading inside the task rather than
at the worker level. I concede that if all workers had generic-worker's
"mounts" feature and supported concurrent download, `fetch-content`
wouldn't need to exist.

`fetch-content` also duplicates functionality of
`mach artifact toolchain`. I probably could have used
`mach artifact toolchain` instead of writing
`fetch-content task-artifacts`. However, I didn't want to introduce
the requirement of a VCS checkout. `mach artifact toolchain` has its
origins in providing a feature to the build system. And "fetching
artifacts from tasks" is a more generic feature than that. I think
it should be implemented as a generic feature and not something that is
"toolchain" specific.

I think the best place for a generic "fetch content" feature is in
the worker, where content can be defined in the task payload. But as
explained above, that feature isn't universally available. The next
best place is probably run-task. run-task already performs generic,
very-early task preparation steps, such as performing a VCS checkout.
I would like to fold `fetch-content` into run-task and make it all
driven by environment variables. But run-task is currently Python 2
and achieving concurrency would involve a bit of programming (or
adding package dependencies). I may very well port run-task to Python
3 and then fold fetch-content into it. Or maybe we leave
`fetch-content` as a standalone script.

MozReview-Commit-ID: AGuTcwNcNJR

--HG--
extra : source : 0b941cbdca76fb2fbb98dc5bbc1a0237c69954d0
extra : histedit_source : a3e43bdd8a9a58550bef02fec3be832ca304ea93
2018-06-06 14:37:49 -07:00
Gregory Szorc cf83defe06 Bug 1460777 - Extract GPG keys to standalone files; r=glandium
After this change, we consistently import GPG keys from files in
the GCC build scripts.

MozReview-Commit-ID: BcyvCQoGbMS

--HG--
extra : source : 5fce34a460b51e45ac280a9f0cb8bad896fbcff1
extra : histedit_source : 01621ea8111315c251a9493a11efca72c2ba3c7d
2018-05-11 10:38:35 -07:00
Gurzau Raul 53a10471cf Backed out 2 changesets (bug 1460777) for Toolchains failure on a CLOSED TREE
Backed out changeset 52ef9348401d (bug 1460777)
Backed out changeset 60ed097650b8 (bug 1460777)
2018-06-06 20:57:29 +03:00
Gregory Szorc 2f189264b9 Bug 1460777 - Taskgraph tasks for retrieving remote content; r=dustin,glandium
Currently, many tasks fetch content from the Internets. A problem with
that is fetching from the Internets is unreliable: servers may have
outages or be slow; content may disappear or change out from under us.

The unreliability of 3rd party services poses a risk to Firefox CI.
If services aren't available, we could potentially not run some CI tasks.
In the worst case, we might not be able to release Firefox. That would
be bad. In fact, as I write this, gmplib.org has been unavailable for
~24 hours and Firefox CI is unable to retrieve the GMP source code.
As a result, building GCC toolchains is failing.

A solution to this is to make tasks more hermetic by depending on
fewer network services (which by definition aren't reliable over time
and therefore introduce instability).

This commit attempts to mitigate some external service dependencies
by introducing the *fetch* task kind.

The primary goal of the *fetch* kind is to obtain remote content and
re-expose it as a task artifact. By making external content available
as a cached task artifact, we allow dependent tasks to consume this
content without touching the service originally providing that
content, thus eliminating a run-time dependency and making tasks more
hermetic and reproducible over time.

We introduce a single "fetch-url" "using" flavor to define tasks that
fetch single URLs and then re-expose that URL as an artifact. Powering
this is a new, minimal "fetch" Docker image that contains a
"fetch-content" Python script that does the work for us.

We have added tasks to fetch source archives used to build the GCC
toolchains.

Fetching remote content and re-exposing it as an artifact is not
very useful by itself: the value is in having tasks use those
artifacts.

We introduce a taskgraph transform that allows tasks to define an
array of "fetches." Each entry corresponds to the name of a "fetch"
task kind. When present, the corresponding "fetch" task is added as a
dependency. And the task ID and artifact path from that "fetch" task
is added to the MOZ_FETCHES environment variable of the task depending
on it. Our "fetch-content" script has a "task-artifacts"
sub-command that tasks can execute to perform retrieval of all
artifacts listed in MOZ_FETCHES.

To prove all of this works, the code for fetching dependencies when
building GCC toolchains has been updated to use `fetch-content`. The
now-unused legacy code has been deleted.

This commit improves the reliability and efficiency of GCC toolchain
tasks. Dependencies now all come from task artifacts and should always
be available in the common case. In addition, `fetch-content` downloads
and extracts files concurrently. This makes it faster than the serial
application which we were previously using.

There are some things I don't like about this commit.

First, a new Docker image and Python script for downloading URLs feels
a bit heavyweight. The Docker image is definitely overkill as things
stand. I can eventually justify it because I want to implement support
for fetching and repackaging VCS repositories and for caching Debian
packages. These will require more packages than what I'm comfortable
installing on the base Debian image, therefore justifying a dedicated
image.

The `fetch-content static-url` sub-command could definitely be
implemented as a shell script. But Python is readily available and
is more pleasant to maintain than shell, so I wrote it in Python.

`fetch-content task-artifacts` is more advanced and writing it in
Python is more justified, IMO. FWIW, the script is Python 3 only,
which conveniently gives us access to `concurrent.futures`, which
facilitates concurrent download.

`fetch-content` also duplicates functionality found elsewhere.
generic-worker's task payload supports a "mounts" feature which
facilitates downloading remote content, including from a task
artifact. However, this feature doesn't exist on docker-worker.
So we have to implement downloading inside the task rather than
at the worker level. I concede that if all workers had generic-worker's
"mounts" feature and supported concurrent download, `fetch-content`
wouldn't need to exist.

`fetch-content` also duplicates functionality of
`mach artifact toolchain`. I probably could have used
`mach artifact toolchain` instead of writing
`fetch-content task-artifacts`. However, I didn't want to introduce
the requirement of a VCS checkout. `mach artifact toolchain` has its
origins in providing a feature to the build system. And "fetching
artifacts from tasks" is a more generic feature than that. I think
it should be implemented as a generic feature and not something that is
"toolchain" specific.

I think the best place for a generic "fetch content" feature is in
the worker, where content can be defined in the task payload. But as
explained above, that feature isn't universally available. The next
best place is probably run-task. run-task already performs generic,
very-early task preparation steps, such as performing a VCS checkout.
I would like to fold `fetch-content` into run-task and make it all
driven by environment variables. But run-task is currently Python 2
and achieving concurrency would involve a bit of programming (or
adding package dependencies). I may very well port run-task to Python
3 and then fold fetch-content into it. Or maybe we leave
`fetch-content` as a standalone script.

MozReview-Commit-ID: AGuTcwNcNJR

--HG--
extra : rebase_source : 4918b8c3bac53d63665006802054038bfbca0314
2018-06-06 09:37:38 -07:00
Gregory Szorc 43e801ae60 Bug 1460777 - Extract GPG keys to standalone files; r=glandium
After this change, we consistently import GPG keys from files in
the GCC build scripts.

MozReview-Commit-ID: BcyvCQoGbMS

--HG--
extra : rebase_source : 657ccce8e242cabdfaff396fd0d6439754a3f364
2018-05-11 10:38:35 -07:00
Gregory Szorc fb21a1e517 Bug 1466746 - Debian packages for python-zstandard; r=glandium
python-zstandard's 0.9.1 source distribution contains a debian/
directory.

On Squeeze, producing a Debian package is straightforward.

On Wheezy, we need to hack up Build-Depends because Wheezy doesn't
have a package for the Hypothesis fuzzing library. This package is
only used for testing and our package building disables testing,
so we don't even need to further hack up the packaging to disable
tests.

MozReview-Commit-ID: 6raXjdzggCH

--HG--
extra : rebase_source : 672492a40d65df8430eb17ba033bcb1c0890b7df
2018-06-04 23:10:59 -07:00
Tom Ritter 2313bfe0d4 Bug 1457482 Add --enable-lto that turns on LTO r=glandium
MozReview-Commit-ID: DjICW7OKqzB

--HG--
extra : rebase_source : 92c766880845ec89305ef1e66ff13223421ac152
2018-04-13 15:55:39 -05:00
Tom Ritter 2eb926954e Bug 1457482 Add an LTO Build Target r=glandium
This build target doesn't have LTO enabled on it (yet)

MozReview-Commit-ID: 56tAHMyvH7o

--HG--
extra : rebase_source : 90039cd8e97332e2ef8aad7908b8a04b2869f4a5
2018-05-30 12:27:25 -05:00
Tom Ritter 539edded29 Bug 1457482 Correct elfhack's LTO detection to handle -flto=thin r=glandium
MozReview-Commit-ID: LnDLrDN0W9O

--HG--
extra : rebase_source : 3ba425fc9316d1b3df12a481c9ece1e3a65c8fe5
2018-06-01 10:10:16 -05:00
Tom Ritter 1f99a6a577 Bug 1457482 Add lld to the clang-6-pre-linux64 toolchain for use in the LTO build r=glandium
MozReview-Commit-ID: KYY0DqFxbDE

--HG--
extra : rebase_source : aafb326c82a2a871f356a7919efce6f3b0c9f58c
2018-04-13 15:22:57 -05:00
Miko Mynttinen 44b51ac0a2 Bug 1465060 - Part 2: Don't suppress pessimizing-move and self-move warnings r=froydnj
MozReview-Commit-ID: KtQ31q6uFqZ

--HG--
extra : rebase_source : 93b8550117410efb1839dc475d2bfec9ef4caf67
2018-06-01 14:09:30 +02:00
shindli 936dd8d764 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-06-04 01:07:15 +03:00
arthur.iakab 7e765f798b Backed out 2 changesets (bug 1465060) for build bustages on security/sandbox/linux/reporter/SandboxReporter.cpp
Backed out changeset 7c8905b6b226 (bug 1465060)
Backed out changeset 10446073eca8 (bug 1465060)
2018-06-03 19:25:41 +03:00
Miko Mynttinen 9a6bff4ea0 Bug 1465060 - Part 2: Don't suppress pessimizing-move and self-move warnings r=froydnj
MozReview-Commit-ID: KtQ31q6uFqZ

--HG--
extra : rebase_source : 017f965f0a861ee1eaa5bfae62ae164e48c309a5
2018-06-01 14:09:30 +02:00
Cosmin Sabou cff08774d6 Merge mozilla-central to autoland. a=merge 2018-06-03 13:10:57 +03:00
Cosmin Sabou 9994e67745 Backed out changeset cbf0895981cd (bug 1270217) for turning bug 1405083 into permafail. a=backout 2018-06-03 13:08:10 +03:00
Andreea Pavel 4ced6e8b2d Merge mozilla-central to autoland. a=merge 2018-06-03 07:27:01 +03:00
Jonathan Watt 5817084eb6 Bug 1270217 - Change the default MACOS_DEPLOYMENT_TARGET value to 10.9. r=froydnj 2018-05-10 10:41:13 +01:00
Jonathan Watt 67537a721b Bug 1270217 - Change the default MACOS_DEPLOYMENT_TARGET value to 10.9. r=froydnj
--HG--
extra : rebase_source : bb180a82c87bb49c688dbcb2f8da6756e6c54224
2018-05-10 10:41:13 +01:00
Chris AtLee 600b5b46ac Bug 1237182: get rid of oauth.txt r=mtabara
Differential Revision: https://phabricator.services.mozilla.com/D1444

--HG--
extra : rebase_source : dad4f2102dc1e74b681a765169eae691724f8b61
2018-05-25 17:43:15 -04:00
Chris AtLee 8e5587759f Bug 1237182: Get rid of buildprops.json r=tomprince,sfraser
Differential Revision: https://phabricator.services.mozilla.com/D1443

--HG--
extra : rebase_source : 1683b76377e27fdaa5292e1781573ddc4e61afa8
2018-05-25 17:35:43 -04:00
Emilio Cobos Álvarez 9855a4330e Bug 1465585: Don't error on pessimizing-move and self-move, for now. r=froydnj
MozReview-Commit-ID: FzoqidPSCaV
2018-06-01 10:43:31 +02:00
Andreea Pavel 38bcf897f1 Merge mozilla-inbound to mozilla-central. a=merge 2018-05-31 13:04:21 +03:00
arthur.iakab f1046ac67f Merge mozilla-central to inbound 2018-05-31 01:08:35 +03:00
arthur.iakab fb18cb09bd Merge mozilla inbound to central a=merge 2018-05-31 01:05:10 +03:00
David Major b6c41df5bb Bug 1465245 - Update clang-cl toolchain to r333414. r=froydnj
--HG--
extra : rebase_source : a0f174588c7fbf6f83709850b8b26448080b9a4d
2018-05-30 13:27:13 -04:00
Panos Astithas f041fb6e3c Bug 1461851 - Properly add the source URL in the profiler metadata. r=glandium
MozReview-Commit-ID: 53M4bGolmJk

--HG--
extra : rebase_source : f0da66755c92d2937f5fad1f5784f9a81829c951
2018-05-15 16:44:44 -07:00
Christian Holler 570031d38c Bug 1464202 - Improve and centralize libFuzzer flag management. r=froydnj
MozReview-Commit-ID: HFrQDAZWtpo

--HG--
extra : rebase_source : ab1da001d7e9280fbfb37858505f1d0d0caf7d54
2018-05-24 21:11:46 +02:00
Gurzau Raul bcd412f2a9 Backed out changeset 602bdd9d5a96 (bug 1461851) for linting failures on /checkouts/gecko/build/appini_header.py on a CLOSED TREE 2018-05-30 19:03:50 +03:00
Panos Astithas 9be1c58dd1 Bug 1461851 - Properly add the source URL in the profiler metadata. r=glandium
MozReview-Commit-ID: 53M4bGolmJk

--HG--
extra : rebase_source : 17c2f3922d04b1ee7e168837f4440bb1b0abc218
2018-05-15 16:44:44 -07:00
Mike Hommey 81cf850f82 Bug 1253064 - Prefer Clang to GCC in local developer builds. r=gps
For Android targets, we just ignore plain clang, it's unlikely to work.

--HG--
extra : rebase_source : 2ba19ea608921acc2739055115082291bb8996f4
2018-05-31 10:16:10 +09:00
Csoregi Natalia 83a923ef7a Merge inbound to mozilla-central. a=merge 2018-05-30 12:25:03 +03:00
Mike Hommey 8b091c97fd Bug 1464522 - Count static initializers from the crash reporter symbol files. r=froydnj
The crash reporter symbol files are the easiest cross-platform way to
find static initializers. While some types of static initializers (e.g.
__attribute__(constructor) functions) don't appear there in a notable
way, the static initializers we do care the most about for tracking do
(static initializers from C++ globals). As a matter of fact, there is
only a difference of 2 compared to the currently reported count of 125
on a linux64 build, so this is a good enough approximation. And allows
us to easily track the count on Android, OSX and Windows builds, which
we currently don't do.

The tricky part is that the symbol files are in
dist/crashreporter-symbols/$lib/$fileid/$lib.sym, and $fileid is hard to
figure out. There is a `fileid` tool in testing/tools, but it is a
target binary, meaning it's not available on cross builds (OSX,
Android).

So the simplest is just to gather the data while creating the symbol
files, which unfortunately requires to go through some hoops to make it
happen for just the files we care about.

--HG--
extra : rebase_source : 458fed1ffd6f9294eefef61f10ff7a284af0d986
2018-05-29 08:48:47 +09:00
Noemi Erli f353eab731 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2018-05-30 00:52:42 +03:00
Sylvestre Ledru 3f0e9bf7a3 Bug 1464809 - Disable -Werror on -Wclass-memaccess until the backlog is fixed r=froydnj
https://bugzilla.mozilla.org/show_bug.cgi?id=1411029#c2

MozReview-Commit-ID: 2CyoNWMUrw9

--HG--
extra : rebase_source : 758d2c9bc9e2dd3502def27a0d9bc6f9e0887e2d
2018-05-28 14:56:41 +02:00
David Major 49de728827 Bug 1464249 - Patch clang-win64.json to fix ASan on Windows 10 1803. r=froydnj
--HG--
extra : rebase_source : 194a25a217ddc10eb2782c127689c88d1df68e1f
2018-05-29 15:38:18 -04:00
David Major 2ca7d595a1 Bug 1464161 - unset LINKER in mozconfig.no-compile. r=nalexander
--HG--
extra : rebase_source : 75913c32de26e0aa4f7bbcf79f29ad5d7f5fcb32
2018-05-29 15:37:49 -04:00
Geoff Brown 4d05f461aa Bug 1464866 - Fix a typo in Android time-out message; r=me,a=test-only 2018-05-28 11:29:34 -06:00
Kris Maglione c4035f104c Bug 1463637: Remove mozilla-config.h hacks for Hunspell extra includes. r=ted
MozReview-Commit-ID: 2yBlykhQsyV

--HG--
extra : rebase_source : d51a663c5f7d4c9cce09c649003c5577fe5952d0
2018-05-22 20:36:39 -07:00
Chris Manchester dd6a725aca Bug 1463921 - Re-run js configure when js/src/old-configure changes. r=gps
MozReview-Commit-ID: 2Rw4he9ZRpz

--HG--
extra : rebase_source : 2801965e246d6424ee37bac277472b294e783309
2018-05-23 17:22:09 -07:00
Sylvestre Ledru dcfef841a7 bug 1463425 - Fix flake8/pep8 issue by hand in build/ r=gps
MozReview-Commit-ID: AZdcEWyVV6e

--HG--
extra : rebase_source : b1c45028c8d46be5ba590a27a2f9f20e248a26b1
2018-05-21 23:58:19 +02:00
Sylvestre Ledru 8cd16bb55b bug 1463425 - autopep8 on build/ r=gps
MozReview-Commit-ID: ETzx4HsjbEF

--HG--
extra : rebase_source : 7e27a4cfe2bb358d513a18a33c245bcc6d559c46
2018-05-21 23:56:34 +02:00
Justin Wood 5412b28495 Bug 1286092 - Make taskgraph sparse checkout pull the onchange files. r=aki
for L10n jobs should run per-push based on the corresponding builds

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

--HG--
extra : rebase_source : b7b7f34204bd06ba2baf92ae6d103f8c207214fb
2017-12-01 12:54:47 -05:00
Bogdan Tara 933c5069bd Backed out 16 changesets (bug 1286092) for L10n bustages CLOSED TREE
Backed out changeset ef828badfd93 (bug 1286092)
Backed out changeset 57a592e33f36 (bug 1286092)
Backed out changeset c9cf945aa4f9 (bug 1286092)
Backed out changeset d8c01d976acd (bug 1286092)
Backed out changeset 5d68dfd6325c (bug 1286092)
Backed out changeset 878e174255ff (bug 1286092)
Backed out changeset fa3e38422d49 (bug 1286092)
Backed out changeset fc6aebca89e3 (bug 1286092)
Backed out changeset f2271cd6af26 (bug 1286092)
Backed out changeset 7b828445f551 (bug 1286092)
Backed out changeset 5617053b1740 (bug 1286092)
Backed out changeset 556f54c5e209 (bug 1286092)
Backed out changeset db19ea492b02 (bug 1286092)
Backed out changeset 6eb40b38f9c9 (bug 1286092)
Backed out changeset 3eb4e39b9bcd (bug 1286092)
Backed out changeset b3c05f6e6a57 (bug 1286092)
2018-05-30 16:16:24 +03:00
Justin Wood ead8128876 Bug 1286092 - Make taskgraph sparse checkout pull the onchange files. r=aki
for L10n jobs should run per-push based on the corresponding builds

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

--HG--
extra : rebase_source : fc669df941b70b720a6eb4118ad36d6679a28d48
2017-12-01 12:54:47 -05:00