1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-12-25 03:17:13 +00:00
Commit graph

166 commits

Author SHA1 Message Date
aszlig 27b72342ae
chromium: Split up source into multiple outputs.
This splits up the source into one base output (just the build and tools
directory), one for bundled dependencies, one for sandbox sources and
one for the sources of the main browser.

The state of this is heavily work in progress and contains a bunch of
workarounds. For example, we currently copy the entire sources into the
build directory, so a build ultimately requires even more space than
before.

Of course, it's just temporary as neither GYP nor ninja is particularly
friendly if it comes to out-of-tree builds.

Another thing which is heavily WIP is how we handle patches. Ultimately,
those patches shouldn't be applied to the source tree (at least not all)
but rather to the final build's temporary directory.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-09-27 15:23:31 +02:00
aszlig 80cb94784a
chromium: Update all channels to latest versions.
stable: 29.0.1547.65 -> 29.0.1547.76
beta:   30.0.1599.37 -> 30.0.1599.47
dev:    31.0.1626.0  -> 31.0.1636.0

Builds and tests working successfully on my machine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-09-27 15:23:30 +02:00
aszlig 45b69d6dba
chromium: Split sandbox off the main output path.
Now the chromium derivation produces an extra output path for the
sandbox in order to be properly used as a setuid wrapper in <nixos>
without the need to include the full Chromium package.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-09-27 15:23:30 +02:00
aszlig 3af40ade24
chromium: Add missing patch for version 31.
I accidentally forgot to add the new patch for version 31, sorry for the
noise and evaluation error caused by this:

http://hydra.nixos.org/jobset/nixos/trunk-combined#tabs-errors

And thanks to @iElectric for noticing.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-09-17 13:05:20 +02:00
aszlig 7d10bbb4c8
chromium: Update beta and dev channels.
beta: 30.0.1599.22 -> 30.0.1599.37
dev:  31.0.1612.0  -> 31.0.1626.0 (new patch sandbox_userns_31.patch)

I've rebased the user namespace sandbox patch against current trunk for
the dev version, because it didn't apply anymore.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-09-17 11:01:47 +02:00
aszlig 5789021b54
chromium: Update all channels to latest versions.
Overview of the updated channels:

stable: 29.0.1547.62 -> 29.0.1547.65
beta:   29.0.1547.57 -> 30.0.1599.22
dev:    30.0.1599.10 -> 31.0.1612.0

All channels build fine and are tested. Actually if you look at the
versions, the beta channel was lagging behind the stable channel,
because the download was unavailable. This is now fixed.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-09-06 03:15:13 +02:00
aszlig d8af53a28c
chromium: Update stable version to v29.0.1547.62.
Build works fine and tested on my machine as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-29 14:26:38 +02:00
aszlig cdde887778
chromium: Drop patches for version 28.
This drops the initial version of the user namespaces sandbox patch and
the fix for NSS 3.15, which is no longer needed because it was fixed
upstream.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-22 05:45:22 +02:00
aszlig f87a374647
chromium: Update all channels to latest versions.
Version 29 has now made it into stable, the release announcement blog
post can be found here:

http://googlechromereleases.blogspot.de/2013/08/stable-channel-update.html

Overview of the updated channels:

stable: 28.0.1500.95 -> 29.0.1547.57
beta:   29.0.1547.49 -> 29.0.1547.57
dev:    30.0.1588.0  -> 30.0.1599.10 (userns patch updated)

All channels build fine and are tested (manually at the moment, until we
can run the test suite).

The userns patch for version 30.0.1599.0 from the dev channel didn't
apply anymore and is now rebased against 30.0.1599.10.

In addition, in version 30 the gyp flag for setting the sandbox path
isn't recognized anymore, so we patch it into the source directly.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-22 05:45:22 +02:00
aszlig 9faad8f274
chromium: Fix meta.description attribute.
The description now no longer contains the package name itself. Thanks
to nixpkgs-lint for noticing :-)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-15 11:11:02 +02:00
aszlig 213ff4d38c
chromium: Update beta and dev channels.
This introduces the following new versions:

beta: 29.0.1547.41 -> 29.0.1547.49 (builds fine, tested)
dev:  30.0.1581.2  -> 30.0.1588.0  (builds fine, tested)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-14 20:50:57 +02:00
aszlig a41d0cb640
chromium: Drop cups_allow_deprecated.patch.
It's no longer needed in current Chromium/CUPS versions.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-14 20:50:56 +02:00
aszlig bccba58c32
chromium: Update beta channel to v29.0.1547.41.
Builds fine on my machine and tested with a bunch of web sites.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-08 03:18:00 +02:00
aszlig a1b384783e
chromium: Fix build for version 28 and NSS 3.15.
Build failure details:

http://hydra.nixos.org/build/5663358

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-08 03:18:00 +02:00
aszlig bcb9417c0e
chromium: Update stable and dev release channels.
This introduces the following new versions:

stable: 28.0.1500.71 -> 28.0.1500.95 (builds fine, tested)
dev:    30.0.1573.2  -> 30.0.1581.2  (builds fine, tested)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-08-03 09:49:08 +02:00
aszlig 120e3fc167
chromium: Update beta and dev release channels.
Introduces the following new versions:

beta: 29.0.1547.22 -> 29.0.1547.32 (builds fine, tested)
dev:  30.0.1568.0  -> 30.0.1573.2  (builds fine, tested)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-26 06:18:04 +02:00
aszlig f77de39536
chromium: Update dev channel to v30.0.1568.0.
The sha256 has changed upstream for 30.0.1566.2 and in addition there is
a new version available, so let's switch to the new version.

Unfortunately the user namespaces sandbox patch doesn't apply anymore
because of http://crbug.com/242290, so this adds a rebased version on
top of the current trunk of Chromium.

In order to build version 30, file is now needed as an additional build
input, because it is used by gyp.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-25 01:58:10 +02:00
aszlig 78bfe0ab5b
chromium: Update all channels to latest versions.
So, chromium 30 entered the dev release channel, so the overview of the
current versions is:

stable: 28.0.1500.52 -> 28.0.1500.71 (builds fine, tested)
beta:   28.0.1500.52 -> 29.0.1547.22 (builds fine, tested)
dev:    29.0.1547.0  -> 30.0.1566.2  (builds fine, tested)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-25 00:31:53 +02:00
aszlig 3c60e2ec39
chromium: Add API keys for NixOS.
As requested by some users, we finally have support for cloud sync,
spelling, geolocation and a lot more of the services that require API
keys from Google. Details about which services are involved can be found
at: http://www.chromium.org/developers/how-tos/api-keys

Thanks to Paweł Hajdan <phajdan@google.com> for giving us permission to
distribute the API keys with our build of Chromium:

> Note that the public Terms of Service do not allow distribution of the
> API keys in any form. To make this work for you, on behalf of Google
> Chrome Team I am providing you with:

> Official permission to include Google API keys in your packages and to
> distribute these packages. The remainder of the Terms of Service for
> each API applies, but at this time you are not bound by the
> requirement to only access the APIs for personal and development use,
> and Additional quota for each API in an effort to adequately support
> your users.

As noted in the source: Those keys are for use in NixOS/nixpkgs ONLY!

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-25 00:31:53 +02:00
aszlig 79b1f3069a
chromium: Unset -Werror in gypFlags.
Thanks to @jcumming for notifying me about this in #nixos:

03:47 < jack_c> aszlig: chromium builds with -Werror by default.
03:47 < jack_c> Putting: werror = "";
03:48 < jack_c> into gypFlags fixes that..
...
03:52 < jack_c> aszlig: agree -Werror is a good linting tool, but it should
                probably disabled for distribution.

So, I guess it makes sense in our case, especially because different GCC
versions will issue different warnings.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-08 14:27:44 +02:00
aszlig bf94beff42
chromium: Update dev channel to v29.0.1547.0.
Build tested and works on my machine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-28 07:54:12 +02:00
aszlig b0601f6d6f
chromium: Update all channels to latest versions.
Chromium 28.0.1500.52 finally is stable, so the release channels are now:

stable: 28.0.1500.52 (builds fine, tested)
beta:   28.0.1500.52 (same as stable)
dev:    29.0.1541.2  (patch rebased, builds fine, tested)

The user namespace patch doesn't apply for version 29, so I had to rebase it
against the current trunk (revision 207742).

And as version 27 is outdated, we no longer need to distinguish versions for
patching the hardcoded gcc path in core/core.gypi.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-21 12:17:55 +02:00
aszlig cfb697b013
chromium: Update beta and dev release channels.
The following new versions were introduced:

beta: 28.0.1500.45 - builds fine and tested
dev:  29.0.1521.3  - builds fine and tested

Although the version from the dev release channel isn't the latest found on
omahaproxy but it's the latest one, that actually has tarballs available.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-14 17:50:37 +02:00
aszlig 777351bce4
chromium/updater: Avoid downgrading versions.
Previously we have just checked for equality. When going back in history, that
way if the history is somewhat out-of-sync, we could end up "updating" to an
older version, which we definitely don't want.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-14 17:50:36 +02:00
aszlig 872fb3e2ff
chromium/updater: Fetch more previous versions.
Omahaproxy has an URL which lists a history of the published versions, which
allows to not only go back one versions, but several. Now it is ensured, that we
always have the latest _available_ version in sources.nix.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-14 17:50:36 +02:00
aszlig 5a6242a401
chromium/updater: Fall back to previous version.
This is especially annoying for the dev channel, as it happens quite frequently
that tarballs are unavailable. So if fetching the latest version doesn't work,
try the second latest version.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-14 17:50:36 +02:00
aszlig 8cf68e5645
chromium/updater: Remove workaround for <= v26.
We no longer need the tar.bz2 archives, so let's remove the switch.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-14 17:50:35 +02:00
aszlig 62176d3b4e
chromium: Update stable and beta channels.
These new versions are introduced with this commit:

stable: 26.0.1410.63 -> 27.0.1453.93 (builds fine, tested)
beta:   27.0.1453.81 -> 28.0.1500.20 (builds fine, tested)

Unfortunately the tarball for the dev version 29.0.1530.2 isn't available at the
moment, so we're going to update it later.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-07 14:39:00 +02:00
aszlig f966e5268f
chromium: Update all channels to latest versions.
This brings in Chromium 27 as the new stable version.

Specific versions of the updated channels:

stable: 26.0.1410.63 -> 27.0.1453.93 (builds fine, tested)
beta:   27.0.1453.81 -> 28.0.1500.20 (builds fine, tested)
dev:    28.0.1500.11 -> 29.0.1516.3  (builds fine, tested)

We now can finally drop the following patches:

 * glibc-2.16-use-siginfo_t.patch
 * pulseaudio_array_bounds.patch

These were for version 26 only and thus are no longer needed.

In addition, we no longer have to use the pre/post attributes, as there is just
_one_ place that uses version specific stuff (path to webcore.gyp).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-27 10:18:00 +02:00
aszlig e7a57971c1
chromium: Switch build system to ninja.
Wanted to do this a long time ago, but never had a reason to do it. But with
Chromium 29 having no make target for chrome_sandbox, we now use ninja as well
as the official build and most other distributions.

The whole build/make flags cruft is now integrated into one buildPhase override
and we just call ninja there by exporting the specific variables.

And this also makes enableParallelBuilding obsolete, as we use NIX_BUILD_CORES
directly now.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-27 10:17:59 +02:00
aszlig bdeee9bcc4
chromium: Fix installing logo images.
Actually a "*[0-9]" wildcard isn't enough for some unrelated icons to slip into
the derivation output, so let's explicitely check again within the for loop.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-27 10:17:59 +02:00
aszlig 25b4b5aeb4
chromium: Update dev channel to v28.0.1500.11.
Build and tests successful on my machine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-25 19:01:44 +02:00
aszlig c06c636604
chromium: Add patch for user namespace sandboxing.
This patch adds support for unprivileged user namespaces found in kernel
versions 3.8.0 and later. In case of Nix, this is especially useful to prevent
having to set up setuid wrappers.

The implementation details about this patch can be found at the top of the file
"sandbox_userns.patch". My first attempt of creating this patch was by modifying
the SUID sandbox. Unfortunately this didn't work out well, because in the event
of a sandbox failure, the host zygote process waits for an answer of the inner
zygote with no timeout. Even if I'd have set a timeout, this would have been
very ugly, giving users which don't have unprivileged user namespaces a delay on
startup.

An alternative approach to the mentioned problem would be to use select() on the
host zygote, watching for changes stdout or stderr and the synchronization
socket. But even that approach isn't feasible because it requires a whole bunch
of even more patching.

Patch was tested with older kernels (3.2.x, 3.7.x) and kernels without user
namespace support enabled, where in case the feature is unavailable it reverts
back to the previous behaviour (no zygote sandbox, only seccomp BPF).

In order to support all Chromium channels, I manually changed the first hunk of
the patch to not include the starting context of the diff, because there is a
whitespace change in more recent versions of the Chromium source tree.

See SVN revision 199882 for the change (revert in this case) in detail:

http://src.chromium.org/viewvc/chrome?view=revision&revision=199882

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-16 21:03:07 +02:00
aszlig 0353c8225a
chromium: Don't repeat full paths in installPhase.
This is no feature change and only makes the installPhase look nicer and it now
doesn't exceed 80 characters in width anymore.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-16 21:03:07 +02:00
aszlig 3fec0fed02
chromium: Update beta and dev channels.
This updates the following channels to the latest upstream versions:

beta: 27.0.1453.65 -> 27.0.1453.81 (builds fine, tested)
dev:  28.0.1485.0  -> 28.0.1500.5  (builds fine, tested)

For version 28, the reference to /usr/bin/gcc is now located in
third_party/WebKit/Source/core/core.gypi instead of the previous
third_party/WebKit/Source/core/core.gyp/core.gyp.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-05-16 21:03:06 +02:00
aszlig e7b1dfdc39
chromium: Update beta and dev channels to latest.
This updates the channels to the following new versions:

beta: 27.0.1453.47 -> 27.0.1453.65 (builds fine, tested)
dev:  27.0.1453.47 -> 28.0.1485.0  (builds fine, tested)

As we now don't have any version below 26, this update drops all references to
all older versions as well.

In addition to that, the /usr/bin/gcc reference from:

third_party/WebKit/Source/core/core.gyp/core.gyp

Can now - starting at version 28 - be found in:

third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-04-26 08:10:45 +02:00
aszlig a3fce096af
chromium: Update all channels to latest versions.
stable:   26.0.1410.43              -> 26.0.1410.63 (builds fine, tested)
beta/dev: 27.0.1453.15/27.0.1453.12 -> 27.0.1453.47 (builds fine, tested)

This should bring beta and dev in par, as dev was older than the beta version.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-04-13 10:31:36 +02:00
aszlig 75e5cbde79
chromium: Update beta and dev channels.
beta: 26.0.1410.43 -> 27.0.1453.15 (builds fine and tested)
dev:  27.0.1448.0  -> 27.0.1453.12 (builds fine and tested)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-04-08 08:51:46 +02:00
aszlig d5c8419823
chromium: Update all channels to latest versions.
stable: 25.0.1364.152 -> 26.0.1410.43 (builds fine, tested)
beta:   26.0.1410.28  -> 26.0.1410.43 (builds fine, tested)
dev:    26.0.1410.28  -> 27.0.1448.0  (build fixed and tested)

For version 27, this introduces a new dependency on libXtst and removes the
patch for siginfo_t and the pulseaudio array bounds error.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-03-27 00:26:56 +01:00
aszlig 432e0f869c
chromium: Remove patch for CLONE_DETACHED.
This patch was introduced before (7e5109a) the stdenv-updates merge and is no
longer needed, as the current C library doesn't use this flag anymore.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-03-27 00:26:56 +01:00
aszlig adfc5939a7
chromium: Fix updater for version 26 and newer.
The updater was actually getting the -lite version, which our expression won't
build with, except if we switch some bundled dependencies to those in nixpkgs.

Of course the problem with fetching version 27 was me being stupid and using a
case statement in the updater, as if there won't be any version after 26 ;-)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-03-27 00:26:55 +01:00
Florian Friesdorf 9f7aef51ea Revert "chromium-25.0.1364.172, 26.0.1410.40, 27.0.1448.0"
This reverts commit 6617f5ca9e.

The old situation was definitely better. Sorry for waiting so long for
the revert.
2013-03-25 07:17:20 +01:00
Florian Friesdorf 6617f5ca9e chromium-25.0.1364.172, 26.0.1410.40, 27.0.1448.0
26.0.1410.28 was broken for me
2013-03-23 18:20:38 +01:00
Eelco Dolstra 674c51af3c Merge remote-tracking branch 'origin/master' into stdenv-updates 2013-03-07 19:33:52 +01:00
aszlig 5ae408b618
chromium: Update all channels to latest versions.
This updates all release channels to the latest versions:

stable: 25.0.1364.97 -> 25.0.1364.152 (builds fine, untested)
beta:   26.0.1410.12 -> 26.0.1410.28  (builds fine, tested)
dev:    26.0.1410.12 -> 26.0.1410.28  (builds fine, tested)

Still, we should have version 27 already for the dev channel, so we might look
about where to find the newest tarball.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-03-07 10:24:18 +01:00
Vladimír Čunát d7abc31f5a fix the last master merge, sorry for the problems
Now I carefully re-merged all the conflicts and tested some builds.
Hopefully it's all OK now.
2013-03-02 22:34:37 +01:00
Vladimír Čunát 26af997d41 Merge branch 'master' into stdenv-updates
Conflicts (simple):
	pkgs/applications/networking/browsers/chromium/default.nix
	pkgs/development/libraries/libsoup/default.nix
	pkgs/os-specific/linux/kernel/manual-config.nix
	pkgs/os-specific/linux/qemu-kvm/default.nix
2013-03-02 10:41:53 +01:00
aszlig 3423ea9e7b
chromium: Remove version 24 specific stuff.
This gets rid of the patch for newer pulseaudio library versions.

In addition, we now have protobuf and pciutils in default dependencies, as those
are required (or better: optional, but recommended and thus activated by the
default gyp options) by versions >= 25.

Also, we now no longer depend on libpng, but I'm not dropping this, as we want
to get back to libpng from nixpkgs again 'real soon'.

The stack-protector flag is now disabled by default accross all versions, and
probably didn't hurt back in version 24, but at least we're now no longer add it
dependant on a particular version.

And those pesky post/onlyXX version booleans are now pre/postXX, to ensure
better clarity.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-02-28 01:16:50 +01:00
aszlig b3c3579172
chromium: Update stable channel to v25.0.1364.97.
So, after searching for days in the wrong spot, eventually discovering that
postPatch isn't run on Hydra, we're now set to move forward to version 25, YAY!

Build has been tested locally (not that this would mean anything for Hydra, as
we've seen) and the output has been actively used for browsing by me :-)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-02-28 01:16:50 +01:00
aszlig 3254c0ac29
chromium: Add /dev/null to patches list.
This is needed in order to ensure that the postPatch hook is executed, which is
not when the patches list is empty.

It is fixed by 82f94df719 in stdenv-updates.
So as soon as the branch gets merged, we can get rid of this hack as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-02-28 01:16:50 +01:00