Commit graph

146 commits

Author SHA1 Message Date
Eelco Dolstra
31189616e4 Rename chromium-stable -> chromium
Suffixes like "-stable" are superfluous because packages are assumed
to be stable. This makes "nix-env -i chromium" do the expected thing.
2014-10-03 17:47:30 +02:00
Dmitry V
62b20fc86e add symlink to chromium-browser for xdg-open to work as expected 2014-09-19 21:51:32 +02:00
Thomas Strobel
1f28161a41 Add configuration flag to chromium: hiDPISupport
By default, hiDPISupport is disabled.
2014-09-16 00:44:34 +02:00
Eelco Dolstra
40f7b0f9df Another attempt to eradicate ensureDir
See c556a6ea46.
2014-06-30 14:56:10 +02:00
aszlig
3d665679c1
chromium: Properly implement mksnapshot target.
Let's ensure we do all architecture-dependant stuff inside
mkChromiumDerivation and not pass archInfo around, so we can properly
decouple it from the main function.

This partially reverts 8d54dc6d13.

The main reason for doing this is because the architecture information
is no longer required in Chromium 37, so let's uglify and XXX it in
common.nix and remove it once version 37 hits the stable channel.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-06-19 01:51:34 +02:00
Ricardo M. Correia
8d54dc6d13 chromium: Add support for grsecurity 2014-05-15 13:25:51 +02:00
aszlig
d8f8f31726
chromium: Fix desktop icon and duplicate entry.
This should fix the desktop icon location for both desktop entries (the
one from the Chromium derivation itself and the wrapper) and renames the
name of the file so that it gets overridden by the wrappers desktop item
so we don't end up having two of them.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-27 18:52:28 +02:00
aszlig
35944168e4
Merge pull request #1970 from @ambrop72.
We already have a desktop icon from the browser wrapper, so this is only
for people who do not use the wrapper (for example if you don't want to
use Mozilla plugins).

Also, we someday might want to propagate the desktop item to the browser
wrapper as well.

Conflicts:
	pkgs/applications/networking/browsers/chromium/default.nix
2014-04-20 17:46:18 +02:00
aszlig
111caaad53
chromium: Factor out common build attributes.
This results in a new function called mkChromiumDerivation, which can be
used to easily build packages that are based on the Chromium source
tree.

We pass through this function as mkDerivation in the chromium wrappre,
so in the end if you want to create such a package, something like:

chromium.mkDerivation (base: {
  name = "your-shiny-package-based-on-chromium";
  ...
})

will suffice.

Of course, this is only the first step towards this functionality,
because right now I'm not even sure the Chromium browser itself will
build.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:46 +02:00
aszlig
8bc8b51375
chromium: Move source package into own subdir.
Next, we're going to refactor update.sh and the first step is to ensure
that we keep everything related to sources into its own subdirectory to
not clutter up the main directory too much.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:44 +02:00
aszlig
202755ca2f
chromium: Properly pass packageName and version.
We don't want ta have the source derivation in the runtime dependencies
of the browser itself. Also, we've broken the Firefox wrapper, because
we've no longer exposed the packageName attribute.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:44 +02:00
aszlig
c6fa73b26c
chromium: Propagate browser's meta to the wrapper.
We obviously don't want the Hydra job of nixpkgs to fail, so we need to
make sure that we have a proper meta attribute on the outermost
derivation.

For builds based on the Chromium source tree (like for example libcef),
we can still move the wrapper elsewhere when we need it.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:43 +02:00
aszlig
5021717099
chromium: Split off sandbox from the browser.
Now, we no longer tie the sandbox directly to the browser derivation but
wrap everything together into one derivation at the entry point at
default.nix.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:42 +02:00
aszlig
16af058ff9
chromium: Move plugins into its own Nix file.
We now no longer pass enablePepperFlash and enablePepperPDF to the
browser package itself and only use plugins.flagsEnabled from there.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:42 +02:00
aszlig
1ae328ba86
chromium: Factor out source into its own Nix file.
The name is a bit unfortunate, so it would make sense to rename
"sources.nix" into something else.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:41 +02:00
aszlig
88a939c2d1
chromium: Decouple browser from default.nix.
This currently only passes through the arguments and is nothing more
than the foundation of the new structure. In essence, I want to have a
really small default.nix which is then going down into the respective
subparts that are isolated from each other.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:41 +02:00
aszlig
c2abe4da6c
chromium: Add support for ppapi flash and PDF.
This is hardcoded for the dev channel at the moment and we're going to
fetch it along with the main Chromium sources.

Also I'm putting this in default.nix at the moment, because we're going
to tear apart the whole Chromium package into several subparts soon.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:41 +02:00
aszlig
c9c9ca38b9
chromium: Build using minizip from nixpkgs.
Well, the gyp flag mentions "zlib" but in reality, minizip is used.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:40 +02:00
aszlig
5b67290740
chromium: Build using libpng from nixpkgs.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:39 +02:00
aszlig
823b72d0ad
chromium: Build with libwebp from nixpkgs.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:39 +02:00
aszlig
2f23f57b28
chromium: Build beta/dev with v8 from nixpkgs.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:38 +02:00
aszlig
9f45c2cbba
chromium: Prepare for building the -lite package.
We currently can't build the -lite package because beta and dev versions
aren't yet compatible with ICU version 52. But apart from that blocker,
this should get us ready for the switch.

Also, we're now correctly unbundling all dependencies which are used
from <nixpkgs>.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:37 +02:00
aszlig
e2dba7c6cf
chromium: Use version 3 of libgnome_keyring.
Starting with version 35, version 2 of libgnome_keyring is no longer
supported and it's probably pretty useless to do backports to version 2,
given the assumption that most users on Nix probably don't use it.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:37 +02:00
aszlig
51e449aabb
chromium: Fix build of beta and dev channels.
Okay, now this time we really broke beta and dev, because python_arch no
longer is in build/common.gypi anymore.

This just adds chrome/chrome_tests.gypi to the list of files to be
changed by sed.

Also, this time I did test at least whether gyp is running fine and
interrupted after the first 1000 build targets, so all channels *should*
now build fine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-01 09:33:04 +02:00
aszlig
1ae4db3a80
chromium: Fix build of stable channel.
Build failure on Hydra:

https://hydra.nixos.org/build/9823160

This was caused by the update of file in 5885709.

As file seems to be used for only one substition in the gyp files, we
can now drop the build dependency on file and patch out the substition
expression, as it is done before actually testing if the value has been
set by -D (gyp, y u no have lazy eval!?).

PS: Proudly untested against beta and dev channels, redeployed my own
Hydra and building on my workstation here really is ... annoying (lavg
41 on a system with nproc 8, less than 8 GB RAM and you probably will
have as much "fun" as I just had writing this commit mess...a....g

FUCK^H^H^H^H^H^H...e).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-01 04:01:58 +02:00
aszlig
a5a5abd2fe
chromium: Fix startup of beta and dev channels.
Since version 34, ICU data files are now created separately and thus
need to be installed as well.

Closes #2016

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
(cherry picked from commit f117341ff2de4b95d223b41b36942e2f60ada2a3)
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-03-26 01:33:07 +01:00
ambrop7@gmail.com
5533e05ca1 Chromium: Add desktop entry. 2014-03-16 13:35:43 +01:00
Ricardo M. Correia
17b473449b Add myself as maintainer of pkgs I wish to keep up-to-date 2014-03-14 21:22:09 +01:00
aszlig
e18cd2f8ae
chromium: Update all channels to latest versions.
This closes #1623, and updates _all_ channels to the corresponding
latest upstream versions.

Thanks to @wizeman for opening the pull request noted above and for
another update in between, @aristidb for fixing the patcheShebangs issue
and @shlevy for notifying me about the build failure in stdenv-updates
in the first place.

Sorry to everyone for my inactivity lately.

The following changes were needed in order to build those new releases:

 * Patch out /bin/echo to allow building with all options enabled.
 * Always use GN from the source tree.
 * Remove import of depot_tools for version 34.
 * Drop version 32 specific stuff.

With this commit, the following new upstream versions are introduced:

stable: 32.0.1700.77 -> 32.0.1700.102 (builds fine, tested)
beta:   32.0.1700.19 -> 33.0.1750.46  (builds fine, tested)
dev:    33.0.1712.4  -> 34.0.1809.0   (build broken with gnome_keyring)

The dev version requires a more recent version gnome_keyring and thus
won't build if gnomeKeyringSupport is set to true. I haven't tested this
build without gnomeKeyringSupport yet, so it might be broken and will be
fixed later.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-01-29 13:23:30 +01:00
Aristid Breitkreuz
4417dd33c2 fix chromium chroot build 2014-01-26 18:02:03 +01:00
aszlig
da62e513e7
chromium: Update all channels to latest versions.
This introduces version 31.0.1650.57 as the new version for the stable
channel.

Overview of the updated channels:

stable: 30.0.1599.114 -> 31.0.1650.57
beta:   31.0.1650.34  -> 32.0.1700.19
dev:    32.0.1671.3   -> 33.0.1712.4

This drops the sandbox_userns_30.patch as version 30 is no longer
stable. In addition, we had to patch out some references to /usr/bin/gcc
in the bundled WebKit sources.

Builds are passing and running fine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-11-26 03:00:01 +01:00
aszlig
d02be2520f
chromium: Remove conditionals for version 29.
This removes the conditionals and obsolete cruft for version 29,
especially the old user namespaces sandbox patch.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-10-02 20:18:12 +02:00
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
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
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
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
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
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
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
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
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
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
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