From d531a1e96784cc64d17cef1892d1f747c7c02b10 Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Sun, 1 Apr 2018 00:00:02 +0000 Subject: [PATCH] texinfo: merge expressions for 5.2 and 6.5 Also add me as a maintainer. --- pkgs/development/tools/misc/texinfo/4.13a.nix | 33 ++-------- pkgs/development/tools/misc/texinfo/5.2.nix | 56 +--------------- pkgs/development/tools/misc/texinfo/6.5.nix | 58 +---------------- .../development/tools/misc/texinfo/common.nix | 64 +++++++++++++++++++ 4 files changed, 75 insertions(+), 136 deletions(-) create mode 100644 pkgs/development/tools/misc/texinfo/common.nix diff --git a/pkgs/development/tools/misc/texinfo/4.13a.nix b/pkgs/development/tools/misc/texinfo/4.13a.nix index 2e0d020688ea..63e5bea19d74 100644 --- a/pkgs/development/tools/misc/texinfo/4.13a.nix +++ b/pkgs/development/tools/misc/texinfo/4.13a.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, ncurses, lzma }: +{ stdenv, fetchurl, texinfo, ncurses, lzma }: stdenv.mkDerivation rec { - name = "texinfo-4.13a"; + name = "texinfo-${version}"; + version = "4.13a"; src = fetchurl { - url = "mirror://gnu/texinfo/texinfo-4.13a.tar.lzma"; + url = "mirror://gnu/texinfo/${name}.tar.lzma"; sha256 = "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d"; }; @@ -14,29 +15,5 @@ stdenv.mkDerivation rec { # Disabled because we don't have zdiff in the stdenv bootstrap. #doCheck = true; - meta = { - description = "The GNU documentation system"; - - longDescription = '' - Texinfo is the official documentation format of the GNU project. - It was invented by Richard Stallman and Bob Chassell many years - ago, loosely based on Brian Reid's Scribe and other formatting - languages of the time. It is used by many non-GNU projects as - well. - - Texinfo uses a single source file to produce output in a number - of formats, both online and printed (dvi, html, info, pdf, xml, - etc.). This means that instead of writing different documents - for online information and another for a printed manual, you - need write only one document. And when the work is revised, you - need revise only that one document. The Texinfo system is - well-integrated with GNU Emacs. - ''; - - license = stdenv.lib.licenses.gpl3Plus; - - homepage = http://www.gnu.org/software/texinfo/; - branch = "4.13"; - platforms = stdenv.lib.platforms.unix; - }; + meta = texinfo.meta // { branch = version; }; } diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix index 0feb4b943df3..d395494984d5 100644 --- a/pkgs/development/tools/misc/texinfo/5.2.nix +++ b/pkgs/development/tools/misc/texinfo/5.2.nix @@ -1,54 +1,4 @@ -{ stdenv, buildPackages, fetchurl, ncurses, perl, xz, procps, interactive ? false }: - -with stdenv.lib; - -stdenv.mkDerivation rec { - name = "texinfo-5.2"; - - src = fetchurl { - url = "mirror://gnu/texinfo/${name}.tar.xz"; - sha256 = "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"; - }; - - # We need a native compiler to build perl XS extensions - # when cross-compiling. - depsBuildBuild = [ buildPackages.stdenv.cc perl ]; - - buildInputs = [ perl xz.bin ] - ++ optional interactive ncurses - ++ optional doCheck procps; # for tests - - configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ] - ++ stdenv.lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk"; - - preInstall = '' - installFlags="TEXMF=$out/texmf-dist"; - installTargets="install install-tex"; - ''; - - doCheck = !stdenv.isDarwin; - - meta = { - homepage = http://www.gnu.org/software/texinfo/; - description = "The GNU documentation system"; - license = licenses.gpl3Plus; - platforms = platforms.all; - - longDescription = '' - Texinfo is the official documentation format of the GNU project. - It was invented by Richard Stallman and Bob Chassell many years - ago, loosely based on Brian Reid's Scribe and other formatting - languages of the time. It is used by many non-GNU projects as - well. - - Texinfo uses a single source file to produce output in a number - of formats, both online and printed (dvi, html, info, pdf, xml, - etc.). This means that instead of writing different documents - for online information and another for a printed manual, you - need write only one document. And when the work is revised, you - need revise only that one document. The Texinfo system is - well-integrated with GNU Emacs. - ''; - branch = "5.2"; - }; +import ./common.nix { + version = "5.2"; + sha256 = "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"; } diff --git a/pkgs/development/tools/misc/texinfo/6.5.nix b/pkgs/development/tools/misc/texinfo/6.5.nix index afa7e9a0a206..34596f306581 100644 --- a/pkgs/development/tools/misc/texinfo/6.5.nix +++ b/pkgs/development/tools/misc/texinfo/6.5.nix @@ -1,56 +1,4 @@ -{ stdenv, buildPackages, fetchurl, ncurses, perl, xz, libiconv, gawk, procps, interactive ? false }: - -with stdenv.lib; - -stdenv.mkDerivation rec { - name = "texinfo-6.5"; - - src = fetchurl { - url = "mirror://gnu/texinfo/${name}.tar.xz"; - sha256 = "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp"; - }; - - # We need a native compiler to build perl XS extensions - # when cross-compiling. - depsBuildBuild = [ buildPackages.stdenv.cc perl ]; - - buildInputs = [ xz ] - ++ optionals stdenv.isSunOS [ libiconv gawk ] - ++ optional interactive ncurses - ++ optional doCheck procps; # for tests - - configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ] - ++ stdenv.lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk"; - - preInstall = '' - installFlags="TEXMF=$out/texmf-dist"; - installTargets="install install-tex"; - ''; - - doCheck = interactive # simplify bootstrapping - && !stdenv.isDarwin && !stdenv.isSunOS/*flaky*/; - - meta = with stdenv.lib; { - homepage = http://www.gnu.org/software/texinfo/; - description = "The GNU documentation system"; - license = licenses.gpl3Plus; - platforms = platforms.all; - maintainers = [ maintainers.vrthra ]; - - longDescription = '' - Texinfo is the official documentation format of the GNU project. - It was invented by Richard Stallman and Bob Chassell many years - ago, loosely based on Brian Reid's Scribe and other formatting - languages of the time. It is used by many non-GNU projects as - well. - - Texinfo uses a single source file to produce output in a number - of formats, both online and printed (dvi, html, info, pdf, xml, - etc.). This means that instead of writing different documents - for online information and another for a printed manual, you - need write only one document. And when the work is revised, you - need revise only that one document. The Texinfo system is - well-integrated with GNU Emacs. - ''; - }; +import ./common.nix { + version = "6.5"; + sha256 = "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp"; } diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix new file mode 100644 index 000000000000..12534297ff3d --- /dev/null +++ b/pkgs/development/tools/misc/texinfo/common.nix @@ -0,0 +1,64 @@ +{ version, sha256 }: + +{ stdenv, buildPackages, fetchurl, perl, xz + +# we are a dependency of gcc, this simplifies bootstraping +, interactive ? false, ncurses, procps +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "texinfo-${optionalString interactive "interactive-"}${version}"; + inherit version; + + src = fetchurl { + url = "mirror://gnu/texinfo/texinfo-${version}.tar.xz"; + inherit sha256; + }; + + # We need a native compiler to build perl XS extensions + # when cross-compiling. + depsBuildBuild = [ buildPackages.stdenv.cc perl ]; + + buildInputs = [ xz.bin ] + ++ optionals stdenv.isSunOS [ libiconv gawk ] + ++ optionals interactive [ ncurses procps ]; + + configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ] + ++ stdenv.lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk"; + + preInstall = '' + installFlags="TEXMF=$out/texmf-dist"; + installTargets="install install-tex"; + ''; + + doCheck = interactive + && !stdenv.isDarwin + && !stdenv.isSunOS; # flaky + + meta = { + homepage = http://www.gnu.org/software/texinfo/; + description = "The GNU documentation system"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = with maintainers; [ vrthra oxij ]; + + longDescription = '' + Texinfo is the official documentation format of the GNU project. + It was invented by Richard Stallman and Bob Chassell many years + ago, loosely based on Brian Reid's Scribe and other formatting + languages of the time. It is used by many non-GNU projects as + well. + + Texinfo uses a single source file to produce output in a number + of formats, both online and printed (dvi, html, info, pdf, xml, + etc.). This means that instead of writing different documents + for online information and another for a printed manual, you + need write only one document. And when the work is revised, you + need revise only that one document. The Texinfo system is + well-integrated with GNU Emacs. + ''; + branch = version; + }; +}