From f5a130b6b3ccd7c44c23357e32573cb2ab466c5a Mon Sep 17 00:00:00 2001 From: "Jason \\\"Don\\\" O'Conal" Date: Sun, 2 Jun 2013 16:27:00 +1000 Subject: [PATCH] newsbeuter: add expression --- .../feedreaders/newsbeuter/default.nix | 41 ++++++++++ pkgs/development/libraries/ncurses/5_4.nix | 75 +++++++++++++++++++ pkgs/development/libraries/stfl/default.nix | 37 +++++++++ pkgs/top-level/all-packages.nix | 18 ++++- 4 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/networking/feedreaders/newsbeuter/default.nix create mode 100644 pkgs/development/libraries/ncurses/5_4.nix create mode 100644 pkgs/development/libraries/stfl/default.nix diff --git a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix new file mode 100644 index 00000000000..db29c4f22ea --- /dev/null +++ b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json_c, ncurses +, gettext, libiconvOrEmpty, makeWrapper }: + +stdenv.mkDerivation rec { + name = "newsbeuter-2.6"; + + src = fetchurl { + url = "http://www.newsbeuter.org/downloads/${name}.tar.gz"; + sha256 = "1hywz5206k0ykjklkjvnfy9fm4jfv9phz8dkzzwhfcjvqv9zv29i"; + }; + + buildInputs + # use gettext instead of libintlOrEmpty so we have access to the msgfmt + # command + = [ pkgconfig sqlite curl libxml2 stfl json_c ncurses gettext ] + ++ libiconvOrEmpty + ++ stdenv.lib.optional stdenv.isDarwin makeWrapper; + + preBuild = '' + sed -i -e 104,108d config.sh + export LDFLAGS=-lncursesw + ''; + + installPhase = '' + DESTDIR=$out prefix=\"\" make install + '' + + stdenv.lib.optionalString stdenv.isDarwin '' + for prog in $out/bin/*; do + wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib" + done + ''; + + meta = { + homepage = http://www.newsbeuter.org; + description = "An open-source RSS/Atom feed reader for text terminals"; + maintainers = with stdenv.lib.maintainers; [ lovek323 ]; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.unix; + }; +} + diff --git a/pkgs/development/libraries/ncurses/5_4.nix b/pkgs/development/libraries/ncurses/5_4.nix new file mode 100644 index 00000000000..1cf08bd30c6 --- /dev/null +++ b/pkgs/development/libraries/ncurses/5_4.nix @@ -0,0 +1,75 @@ +{stdenv, fetchurl, unicode ? true}: + +let + /* C++ bindings fail to build on `i386-pc-solaris2.11' with GCC 3.4.3: + . + It seems that it could be worked around by #including in the + right place, according to + , + but this is left as an exercise to the reader. + So disable them for now. */ + cxx = stdenv.system != "i686-solaris"; +in +stdenv.mkDerivation (rec { + name = "ncurses-5.4"; + + src = fetchurl { + url = "mirror://gnu/ncurses/${name}.tar.gz"; + sha256 = "0div11f5flig67v702fd3sj362zagrnaj0d8wvs905s3rxiy1g2s"; + }; + + configureFlags = '' + --with-shared --includedir=''${out}/include --without-debug + ${if unicode then "--enable-widec" else ""}${if cxx then "" else "--without-cxx-binding"} + ''; + + selfNativeBuildInput = true; + + enableParallelBuilding = true; + + preBuild = + # On Darwin, we end up using the native `sed' during bootstrap, and it + # fails to run this command, which isn't needed anyway. + stdenv.lib.optionalString (!stdenv.isDarwin) + ''sed -e "s@\([[:space:]]\)sh @\1''${SHELL} @" -i */Makefile Makefile''; + + # When building a wide-character (Unicode) build, create backward + # compatibility links from the the "normal" libraries to the + # wide-character libraries (e.g. libncurses.so to libncursesw.so). + postInstall = if unicode then '' + ${if cxx then "chmod 644 $out/lib/libncurses++w.a" else ""} + for lib in curses ncurses form panel menu; do + if test -e $out/lib/lib''${lib}w.a; then + rm -f $out/lib/lib$lib.so + echo "INPUT(-l''${lib}w)" > $out/lib/lib$lib.so + ln -svf lib''${lib}w.a $out/lib/lib$lib.a + ln -svf lib''${lib}w.so.5 $out/lib/lib$lib.so.5 + fi + done; + '' else ""; + + meta = { + description = "GNU Ncurses, a free software emulation of curses in SVR4 and more"; + + longDescription = '' + The Ncurses (new curses) library is a free software emulation of + curses in System V Release 4.0, and more. It uses Terminfo + format, supports pads and color and multiple highlights and + forms characters and function-key mapping, and has all the other + SYSV-curses enhancements over BSD Curses. + + The ncurses code was developed under GNU/Linux. It has been in + use for some time with OpenBSD as the system curses library, and + on FreeBSD and NetBSD as an external package. It should port + easily to any ANSI/POSIX-conforming UNIX. It has even been + ported to OS/2 Warp! + ''; + + homepage = http://www.gnu.org/software/ncurses/; + + license = "X11"; + + maintainers = [ stdenv.lib.maintainers.ludo ]; + platforms = stdenv.lib.platforms.all; + }; +} // ( if stdenv.isDarwin then { postFixup = "rm $out/lib/*.so"; } else { } ) ) diff --git a/pkgs/development/libraries/stfl/default.nix b/pkgs/development/libraries/stfl/default.nix new file mode 100644 index 00000000000..9e3f749ca8f --- /dev/null +++ b/pkgs/development/libraries/stfl/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, ncurses, libiconvOrEmpty }: + +stdenv.mkDerivation rec { + name = "stfl-0.22"; + + src = fetchurl { + url = "http://www.clifford.at/stfl/${name}.tar.gz"; + sha256 = "062lqlf3qhp8bcapbpc0k3wym7x6ngncql8jmx5x06p6679szp9d"; + }; + + buildInputs = [ ncurses ] ++ libiconvOrEmpty; + + buildPhase = '' + sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h + '' + ( stdenv.lib.optionalString stdenv.isDarwin '' + sed -i 's/LDLIBS += -lncursesw/LDLIBS += -lncursesw -liconv/' Makefile + sed -i s/-soname/-install_name/ Makefile + '' ) + '' + make + ''; + + installPhase = '' + DESTDIR=$out prefix=\"\" make install + + # some programs rely on libstfl.so.0 to be present, so link it + ln -s $out/lib/libstfl.so.0.22 $out/lib/libstfl.so.0 + ''; + + meta = { + homepage = http://www.clifford.at/stfl/; + description = "A library which implements a curses-based widget set for text terminals"; + maintainers = with stdenv.lib.maintainers; [ lovek323 ]; + license = stdenv.lib.licenses.lgpl3; + platforms = stdenv.lib.platforms.unix; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 13131781b39..ad6a1032d9b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1319,6 +1319,8 @@ let networkmanagerapplet = newScope gnome ../tools/networking/network-manager-applet { }; + newsbeuter = callPackage ../applications/networking/feedreaders/newsbeuter { }; + pa_applet = callPackage ../tools/audio/pa-applet { }; nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {}; @@ -4982,7 +4984,14 @@ let mythes = callPackage ../development/libraries/mythes { }; - ncurses = makeOverridable (import ../development/libraries/ncurses) { + ncurses_5_4 = makeOverridable (import ../development/libraries/ncurses/5_4.nix) { + inherit fetchurl; + unicode = system != "i686-cygwin"; + stdenv = if stdenv.isDarwin + then allStdenvs.stdenvNative + else stdenv; + }; + ncurses_5_9 = makeOverridable (import ../development/libraries/ncurses) { inherit fetchurl; unicode = system != "i686-cygwin"; stdenv = @@ -4993,6 +5002,7 @@ let then allStdenvs.stdenvNative else stdenv; }; + ncurses = ncurses_5_9; neon = callPackage ../development/libraries/neon { compressionSupport = true; @@ -5339,6 +5349,12 @@ let inherit readline ncurses; }); + stfl = callPackage ../development/libraries/stfl { + stdenv = if stdenv.isDarwin + then overrideGCC stdenv gccApple + else stdenv; + }; + stlink = callPackage ../development/tools/misc/stlink { }; stlport = callPackage ../development/libraries/stlport { };