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>
This commit is contained in:
parent
88a939c2d1
commit
1ae328ba86
@ -19,7 +19,6 @@
|
|||||||
, libgcrypt ? null # gnomeSupport || cupsSupport
|
, libgcrypt ? null # gnomeSupport || cupsSupport
|
||||||
|
|
||||||
# package customization
|
# package customization
|
||||||
, channel ? "stable"
|
|
||||||
, enableSELinux ? false, libselinux ? null
|
, enableSELinux ? false, libselinux ? null
|
||||||
, enableNaCl ? false
|
, enableNaCl ? false
|
||||||
, useOpenSSL ? false, nss ? null, openssl ? null
|
, useOpenSSL ? false, nss ? null, openssl ? null
|
||||||
@ -30,77 +29,13 @@
|
|||||||
, enablePepperPDF ? false
|
, enablePepperPDF ? false
|
||||||
, cupsSupport ? false
|
, cupsSupport ? false
|
||||||
, pulseSupport ? false, pulseaudio ? null
|
, pulseSupport ? false, pulseaudio ? null
|
||||||
|
|
||||||
|
, source
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
src = with getAttr channel (import ./sources.nix); stdenv.mkDerivation {
|
|
||||||
name = "chromium-source-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
inherit url sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ python ]; # cannot patch shebangs otherwise
|
|
||||||
|
|
||||||
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
|
|
||||||
|
|
||||||
opensslPatches = optional useOpenSSL openssl.patches;
|
|
||||||
|
|
||||||
prePatch = "patchShebangs .";
|
|
||||||
|
|
||||||
patches = singleton ./sandbox_userns_31.patch;
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
sed -i -r \
|
|
||||||
-e 's/-f(stack-protector)(-all)?/-fno-\1/' \
|
|
||||||
-e 's|/bin/echo|echo|' \
|
|
||||||
-e "/python_arch/s/: *'[^']*'/: '""'/" \
|
|
||||||
build/common.gypi chrome/chrome_tests.gypi
|
|
||||||
sed -i '/not RunGN/,+1d' build/gyp_chromium
|
|
||||||
sed -i -e 's|/usr/bin/gcc|gcc|' \
|
|
||||||
third_party/WebKit/Source/build/scripts/scripts.gypi \
|
|
||||||
third_party/WebKit/Source/build/scripts/preprocessor.pm
|
|
||||||
'' + optionalString useOpenSSL ''
|
|
||||||
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
|
|
||||||
'' + optionalString (!versionOlder version "34.0.0.0") ''
|
|
||||||
sed -i '/import.*depot/d' build/gyp_chromium
|
|
||||||
'';
|
|
||||||
|
|
||||||
outputs = [ "out" "sandbox" "bundled" "main" ];
|
|
||||||
installPhase = ''
|
|
||||||
ensureDir "$out" "$sandbox" "$bundled" "$main"
|
|
||||||
|
|
||||||
header "copying browser main sources to $main"
|
|
||||||
find . -mindepth 1 -maxdepth 1 \
|
|
||||||
\! -path ./sandbox \
|
|
||||||
\! -path ./third_party \
|
|
||||||
\! -path ./build \
|
|
||||||
\! -path ./tools \
|
|
||||||
\! -name '.*' \
|
|
||||||
-print | xargs cp -rt "$main"
|
|
||||||
stopNest
|
|
||||||
|
|
||||||
header "copying sandbox components to $sandbox"
|
|
||||||
cp -rt "$sandbox" sandbox/*
|
|
||||||
stopNest
|
|
||||||
|
|
||||||
header "copying third party sources to $bundled"
|
|
||||||
cp -rt "$bundled" third_party/*
|
|
||||||
stopNest
|
|
||||||
|
|
||||||
header "copying build requisites to $out"
|
|
||||||
cp -rt "$out" build tools
|
|
||||||
stopNest
|
|
||||||
|
|
||||||
rm -rf "$out/tools/gyp" # XXX: Don't even copy it in the first place.
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit version;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mkGypFlags =
|
mkGypFlags =
|
||||||
let
|
let
|
||||||
@ -136,7 +71,7 @@ let
|
|||||||
use_system_libusb = false; # http://crbug.com/266149
|
use_system_libusb = false; # http://crbug.com/266149
|
||||||
use_system_skia = false;
|
use_system_skia = false;
|
||||||
use_system_sqlite = false; # http://crbug.com/22208
|
use_system_sqlite = false; # http://crbug.com/22208
|
||||||
use_system_v8 = !versionOlder src.version "34.0.0.0";
|
use_system_v8 = !versionOlder source.version "34.0.0.0";
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultDependencies = [
|
defaultDependencies = [
|
||||||
@ -149,7 +84,7 @@ let
|
|||||||
|
|
||||||
sandbox = import ./sandbox.nix {
|
sandbox = import ./sandbox.nix {
|
||||||
inherit stdenv;
|
inherit stdenv;
|
||||||
src = src.sandbox;
|
src = source.sandbox;
|
||||||
binary = "${packageName}_sandbox";
|
binary = "${packageName}_sandbox";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -223,8 +158,9 @@ let
|
|||||||
sandboxPath = "${sandbox}/bin/${packageName}_sandbox";
|
sandboxPath = "${sandbox}/bin/${packageName}_sandbox";
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "${packageName}-${src.version}";
|
name = "${packageName}-${source.version}";
|
||||||
inherit packageName src;
|
inherit packageName;
|
||||||
|
src = source;
|
||||||
|
|
||||||
buildInputs = defaultDependencies ++ [
|
buildInputs = defaultDependencies ++ [
|
||||||
which makeWrapper
|
which makeWrapper
|
||||||
@ -248,9 +184,9 @@ in stdenv.mkDerivation rec {
|
|||||||
# XXX: Figure out a way how to split these properly.
|
# XXX: Figure out a way how to split these properly.
|
||||||
#cpflags="-dsr --no-preserve=mode"
|
#cpflags="-dsr --no-preserve=mode"
|
||||||
cpflags="-dr"
|
cpflags="-dr"
|
||||||
cp $cpflags "${src.main}"/* .
|
cp $cpflags "${source.main}"/* .
|
||||||
cp $cpflags "${src.bundled}" third_party
|
cp $cpflags "${source.bundled}" third_party
|
||||||
cp $cpflags "${src.sandbox}" sandbox
|
cp $cpflags "${source.sandbox}" sandbox
|
||||||
chmod -R u+w . # XXX!
|
chmod -R u+w . # XXX!
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -321,7 +257,7 @@ in stdenv.mkDerivation rec {
|
|||||||
in ''
|
in ''
|
||||||
ensureDir "${libExecPath}"
|
ensureDir "${libExecPath}"
|
||||||
cp -v "${buildPath}/"*.pak "${libExecPath}/"
|
cp -v "${buildPath}/"*.pak "${libExecPath}/"
|
||||||
${optionalString (!versionOlder src.version "34.0.0.0") ''
|
${optionalString (!versionOlder source.version "34.0.0.0") ''
|
||||||
cp -v "${buildPath}/icudtl.dat" "${libExecPath}/"
|
cp -v "${buildPath}/icudtl.dat" "${libExecPath}/"
|
||||||
''}
|
''}
|
||||||
cp -vR "${buildPath}/locales" "${buildPath}/resources" "${libExecPath}/"
|
cp -vR "${buildPath}/locales" "${buildPath}/resources" "${libExecPath}/"
|
||||||
|
@ -18,8 +18,14 @@ let
|
|||||||
callPackage = newScope chromium;
|
callPackage = newScope chromium;
|
||||||
|
|
||||||
chromium = {
|
chromium = {
|
||||||
|
source = callPackage ./source.nix {
|
||||||
|
inherit channel;
|
||||||
|
# XXX: common config
|
||||||
|
inherit useOpenSSL;
|
||||||
|
};
|
||||||
|
|
||||||
browser = callPackage ./browser.nix {
|
browser = callPackage ./browser.nix {
|
||||||
inherit channel enableSELinux enableNaCl useOpenSSL gnomeSupport
|
inherit enableSELinux enableNaCl useOpenSSL gnomeSupport
|
||||||
gnomeKeyringSupport proprietaryCodecs enablePepperFlash
|
gnomeKeyringSupport proprietaryCodecs enablePepperFlash
|
||||||
enablePepperPDF cupsSupport pulseSupport;
|
enablePepperPDF cupsSupport pulseSupport;
|
||||||
};
|
};
|
||||||
|
74
pkgs/applications/networking/browsers/chromium/source.nix
Normal file
74
pkgs/applications/networking/browsers/chromium/source.nix
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
{ stdenv, fetchurl, python
|
||||||
|
, channel ? "stable"
|
||||||
|
, useOpenSSL # XXX
|
||||||
|
}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
with getAttr channel (import ./sources.nix);
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "chromium-source-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
inherit url sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ python ]; # cannot patch shebangs otherwise
|
||||||
|
|
||||||
|
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
|
||||||
|
|
||||||
|
opensslPatches = optional useOpenSSL openssl.patches;
|
||||||
|
|
||||||
|
prePatch = "patchShebangs .";
|
||||||
|
|
||||||
|
patches = singleton ./sandbox_userns_31.patch;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -i -r \
|
||||||
|
-e 's/-f(stack-protector)(-all)?/-fno-\1/' \
|
||||||
|
-e 's|/bin/echo|echo|' \
|
||||||
|
-e "/python_arch/s/: *'[^']*'/: '""'/" \
|
||||||
|
build/common.gypi chrome/chrome_tests.gypi
|
||||||
|
sed -i '/not RunGN/,+1d' build/gyp_chromium
|
||||||
|
sed -i -e 's|/usr/bin/gcc|gcc|' \
|
||||||
|
third_party/WebKit/Source/build/scripts/scripts.gypi \
|
||||||
|
third_party/WebKit/Source/build/scripts/preprocessor.pm
|
||||||
|
'' + optionalString useOpenSSL ''
|
||||||
|
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
|
||||||
|
'' + optionalString (!versionOlder version "34.0.0.0") ''
|
||||||
|
sed -i '/import.*depot/d' build/gyp_chromium
|
||||||
|
'';
|
||||||
|
|
||||||
|
outputs = [ "out" "sandbox" "bundled" "main" ];
|
||||||
|
installPhase = ''
|
||||||
|
ensureDir "$out" "$sandbox" "$bundled" "$main"
|
||||||
|
|
||||||
|
header "copying browser main sources to $main"
|
||||||
|
find . -mindepth 1 -maxdepth 1 \
|
||||||
|
\! -path ./sandbox \
|
||||||
|
\! -path ./third_party \
|
||||||
|
\! -path ./build \
|
||||||
|
\! -path ./tools \
|
||||||
|
\! -name '.*' \
|
||||||
|
-print | xargs cp -rt "$main"
|
||||||
|
stopNest
|
||||||
|
|
||||||
|
header "copying sandbox components to $sandbox"
|
||||||
|
cp -rt "$sandbox" sandbox/*
|
||||||
|
stopNest
|
||||||
|
|
||||||
|
header "copying third party sources to $bundled"
|
||||||
|
cp -rt "$bundled" third_party/*
|
||||||
|
stopNest
|
||||||
|
|
||||||
|
header "copying build requisites to $out"
|
||||||
|
cp -rt "$out" build tools
|
||||||
|
stopNest
|
||||||
|
|
||||||
|
rm -rf "$out/tools/gyp" # XXX: Don't even copy it in the first place.
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit version;
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user