Commit Graph

155 Commits

Author SHA1 Message Date
aszlig
0aad4b7ee4
chromium: Update all channels to latest versions.
Overview of the updated versions:

stable: 40.0.2214.91 -> 40.0.2214.115
beta:   41.0.2272.16 -> 41.0.2272.64
dev:    41.0.2272.16 -> 42.0.2305.3

Introduces 42.0.2305.3 as the new dev version, which no longer requires
our user namespaces sandbox patch. Thanks to everyone participating in
https://crbug.com/312380 for finally having this upstream.

In the course of supporting the official namespace sandbox (that's what
the user namespace sandbox is called), a few things needed to be fixed
for version 42:

 * Add an updated nix_plugin_paths.patch, because the old
   one tries to patch the path for libpdf, which is now natively included
   in Chromium.

 * Don't copy libpdf.so to libexec path for version 42, it's no longer
   needed as it's completely built-in now.

 * Disable SUID sandbox directly in the source instead of going the easy
   route of passing --disable-setuid-sandbox. The reason is that with
   the command line flag a nasty nagbar will appear.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-02-22 07:52:52 +01:00
aszlig
9343f6f461
chromium: Ensure runtime deps for enabled plugins.
We're propagating the plugin flags by importing from another Nix
expression file, which in turn exports the Nix path to the wrapper. This
causes that the store path isn't referenced in the wrapper and the path
isn't recognized by scanning the wrapper script (only those already
referenced at build time are).

So let's add the activated plugins to the buildInputs of the wrapper.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-01-26 09:31:03 +01:00
Domen Kožar
4124a0bd9c chromium: enable cups by default 2014-12-07 14:56:18 +01:00
Domen Kožar
412a2e21fb chromium: set two additional mimetypes for desktop icon 2014-11-26 20:56:29 +01:00
aszlig
690a845de9
chromium: Use Nix expressions for plugin settings.
We now create Nix expressions within the plugin output path(s) which
then will be imported and incorporated into the wrapper. This makes it
easier for other plugins to provide configuration settings to the main
Chromium wrapper.

Of course, in order to allow for external plugins we need to allow
passing a list of plugins to the Chromium derivation, but right now we
keep it internal and only use it for things such as NaCl (as soon as we
support it, of course).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-11-25 14:14:43 +01:00
aszlig
518173ac24
chromium: Shorten line length of name attribute.
No feature change, I'm just very nitpicky if it comes to lines with more
than 79 characters.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-11-25 14:14:43 +01:00
aszlig
7eb4d3a3a9
chromium: Switch to use open-source PDF plugin.
The Chromium PDF plugin is now available as open source software and is
already included in the Chromium source tree in current stable, so there
is no need to extract it from the Chrome binary package anymore.

See release announcement at http://blog.foxitsoftware.com/?p=641

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-11-22 04:26:18 +01:00
aszlig
1b84fbf0ca
chromium: Allow env vars for passing plugin paths.
Introduces environment variables to set plugin base paths. The schema
for these is like NIX_CHROMIUM_PLUGIN_PATH_<N>. Where <N> is the path
type we want to change, the supported (full) variable names are:

 * NIX_CHROMIUM_PLUGIN_PATH_ALL
 * NIX_CHROMIUM_PLUGIN_PATH_PEPPERFLASH
 * NIX_CHROMIUM_PLUGIN_PATH_FILEFLASH
 * NIX_CHROMIUM_PLUGIN_PATH_PDF
 * NIX_CHROMIUM_PLUGIN_PATH_FILE_EFFECTS
 * NIX_CHROMIUM_PLUGIN_PATH_NACL
 * NIX_CHROMIUM_PLUGIN_PATH_PNACL
 * NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE

Whereas NIX_CHROMIUM_PLUGIN_PATH_ALL is the plugin base path for every
path which is not set explicitly, so by setting ..._ALL and not setting
..._WIDEVINE, the widevine plugin will be searched in the directory
specified using ..._ALL.

Right now, the only plugin where this is used is widevine, and it still
doesn't properly work yet.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-11-22 04:26:17 +01:00
aszlig
d3a7c50364
chromium: Add WideVine content decryption plugin.
Seems to be needed in order to view Netflix content, but this only pulls
in the proprietary plugin and doesn't yet compile Chromium with support
for it, so this is only in preparation for the bright and shiny future
(where we all have rootkits implanted in our body).

Of course, this plugin is disabled by default as well as all the other
proprietary plugins.

For the plugin derivation, we now do the checkPhase _after_ the
installPhase, to make sure we also detect RPATHs pointing to the plugin
directory itself, because the shared object files only exist after the
installPhase.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-10-06 07:24:33 +02:00
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