diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2016-09-17 05:19:53 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-17 05:19:53 +0000 |
commit | ad2d4f583c5d0c6fca33ba94495f6f9860e614c8 (patch) | |
tree | 2000305867a001acd1d9499e0f84dbc662b570a6 /pkgs/applications/office | |
parent | 83e611fcd1c81e2dc6b9b47818a2b24e58b47151 (diff) | |
parent | bb8d294270b36205ff4b5e5de39e37f9f22300c1 (diff) |
Merge pull request #18682 from chris-martin/libreoffice-fetch
libreoffice: add nix shells for source generation
Diffstat (limited to 'pkgs/applications/office')
9 files changed, 116 insertions, 25 deletions
diff --git a/pkgs/applications/office/libreoffice/README.md b/pkgs/applications/office/libreoffice/README.md new file mode 100644 index 0000000000000..eb21fe2f441ec --- /dev/null +++ b/pkgs/applications/office/libreoffice/README.md @@ -0,0 +1,10 @@ +LibreOffice +=========== + +To generate `libreoffice-srcs.nix`: + + nix-shell default-gen-shell.nix --run generate + +To generate `libreoffice-srcs-still.nix`: + + nix-shell still-gen-shell.nix --run generate diff --git a/pkgs/applications/office/libreoffice/default-gen-shell.nix b/pkgs/applications/office/libreoffice/default-gen-shell.nix new file mode 100644 index 0000000000000..c3cb23d863952 --- /dev/null +++ b/pkgs/applications/office/libreoffice/default-gen-shell.nix @@ -0,0 +1,27 @@ +{ pkgs ? (import <nixpkgs> {}) }: + +with pkgs; + +let + + primary-src = callPackage ./default-primary-src.nix {}; + +in + +stdenv.mkDerivation { + name = "generate-libreoffice-srcs-shell"; + + buildCommand = "exit 1"; + + downloadList = stdenv.mkDerivation { + name = "libreoffice-${primary-src.version}-download-list"; + inherit (primary-src) src version; + builder = ./download-list-builder.sh; + }; + + shellHook = '' + function generate { + ./generate-libreoffice-srcs.sh | tee libreoffice-srcs.nix + } + ''; +} diff --git a/pkgs/applications/office/libreoffice/default-primary-src.nix b/pkgs/applications/office/libreoffice/default-primary-src.nix new file mode 100644 index 0000000000000..2af9e43378931 --- /dev/null +++ b/pkgs/applications/office/libreoffice/default-primary-src.nix @@ -0,0 +1,17 @@ +{ fetchurl }: + +rec { + major = "5"; + minor = "2"; + patch = "1"; + tweak = "2"; + + subdir = "${major}.${minor}.${patch}"; + + version = "${subdir}${if tweak == "" then "" else "."}${tweak}"; + + src = fetchurl { + url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; + sha256 = "14g2xwpid4vsgmc69rs7hz1wx96dfkq0cbm32vjgljsm7a19qfc1"; + }; +} diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 88a9a6baf147b..d929bc99b101d 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -19,14 +19,14 @@ }: let + primary-src = import ./default-primary-src.nix { inherit fetchurl; }; +in + +with { inherit (primary-src) major minor subdir version; }; + +let lib = stdenv.lib; langsSpaces = lib.concatStringsSep " " langs; - major = "5"; - minor = "2"; - patch = "1"; - tweak = "2"; - subdir = "${major}.${minor}.${patch}"; - version = "${subdir}${if tweak == "" then "" else "."}${tweak}"; fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl { inherit name md5; @@ -64,10 +64,7 @@ let in stdenv.mkDerivation rec { name = "libreoffice-${version}"; - src = fetchurl { - url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; - sha256 = "14g2xwpid4vsgmc69rs7hz1wx96dfkq0cbm32vjgljsm7a19qfc1"; - }; + inherit (primary-src) src; # Openoffice will open libcups dynamically, so we link it directly # to make its dlopen work. diff --git a/pkgs/applications/office/libreoffice/download-list-builder.sh b/pkgs/applications/office/libreoffice/download-list-builder.sh new file mode 100644 index 0000000000000..c054e2c72cbe9 --- /dev/null +++ b/pkgs/applications/office/libreoffice/download-list-builder.sh @@ -0,0 +1,3 @@ +source $stdenv/setup + +tar --extract --file=$src libreoffice-$version/download.lst -O > $out diff --git a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh index 2367fa1c7f447..82c5013f1607d 100755 --- a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh +++ b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh @@ -2,10 +2,6 @@ # Ideally we would move as much as possible into derivation dependencies -# Take the list of files from the main package, ooo.lst.in - -# This script wants an argument: download list file - cat <<EOF [ EOF @@ -22,7 +18,7 @@ write_entry(){ } saved_line= -cat "$(dirname "$0")/libreoffice-srcs-additions.sh" "$@" | +cat "$(dirname "$0")/libreoffice-srcs-additions.sh" "$downloadList" | while read line; do case "$line" in EVAL\ *) diff --git a/pkgs/applications/office/libreoffice/still-gen-shell.nix b/pkgs/applications/office/libreoffice/still-gen-shell.nix new file mode 100644 index 0000000000000..991492e2d986f --- /dev/null +++ b/pkgs/applications/office/libreoffice/still-gen-shell.nix @@ -0,0 +1,27 @@ +{ pkgs ? (import <nixpkgs> {}) }: + +with pkgs; + +let + + primary-src = callPackage ./still-primary-src.nix {}; + +in + +stdenv.mkDerivation { + name = "generate-libreoffice-srcs-shell"; + + buildCommand = "exit 1"; + + downloadList = stdenv.mkDerivation { + name = "libreoffice-${primary-src.version}-download-list"; + inherit (primary-src) src version; + builder = ./download-list-builder.sh; + }; + + shellHook = '' + function generate { + ./generate-libreoffice-srcs.sh | tee libreoffice-srcs-still.nix + } + ''; +} diff --git a/pkgs/applications/office/libreoffice/still-primary-src.nix b/pkgs/applications/office/libreoffice/still-primary-src.nix new file mode 100644 index 0000000000000..33ba558ed298c --- /dev/null +++ b/pkgs/applications/office/libreoffice/still-primary-src.nix @@ -0,0 +1,17 @@ +{ fetchurl }: + +rec { + major = "5"; + minor = "1"; + patch = "5"; + tweak = "2"; + + subdir = "${major}.${minor}.${patch}"; + + version = "${subdir}${if tweak == "" then "" else "."}${tweak}"; + + src = fetchurl { + url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; + sha256 = "1qg0dj0zwh5ifhmvv4k771nmyqddz4ifn75s9mr1p0nyix8zks8x"; + }; +} diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix index 2b3d4ad2ec6e1..383e43a74aad7 100644 --- a/pkgs/applications/office/libreoffice/still.nix +++ b/pkgs/applications/office/libreoffice/still.nix @@ -19,14 +19,14 @@ }: let + primary-src = import ./still-primary-src.nix { inherit fetchurl; }; +in + +with { inherit (primary-src) major minor subdir version; }; + +let lib = stdenv.lib; langsSpaces = lib.concatStringsSep " " langs; - major = "5"; - minor = "1"; - patch = "5"; - tweak = "2"; - subdir = "${major}.${minor}.${patch}"; - version = "${subdir}${if tweak == "" then "" else "."}${tweak}"; fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl { inherit name md5; @@ -64,10 +64,7 @@ let in stdenv.mkDerivation rec { name = "libreoffice-${version}"; - src = fetchurl { - url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; - sha256 = "1qg0dj0zwh5ifhmvv4k771nmyqddz4ifn75s9mr1p0nyix8zks8x"; - }; + inherit (primary-src) src; # we only have this problem on i686 ATM patches = if stdenv.is64bit then null else [ |