diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix index f48309d0b049..d631f4aa2146 100644 --- a/pkgs/applications/networking/irc/quassel/default.nix +++ b/pkgs/applications/networking/irc/quassel/default.nix @@ -1,15 +1,26 @@ { monolithic ? true # build monolithic Quassel , daemon ? false # build Quassel daemon , client ? false # build Quassel client -, previews ? false # enable webpage previews on hovering over URLs , tag ? "" # tag added to the package name -, withKDE ? stdenv.isLinux # enable KDE integration -, kdelibs ? null , static ? false # link statically -, stdenv, fetchurl, cmake, makeWrapper, qt, automoc4, phonon, dconf, qca2 }: +, stdenv, fetchurl, cmake, makeWrapper, dconf +, qtbase, qtscript +, phonon, libdbusmenu, qca-qt5 -let buildClient = monolithic || client; +, withKDE ? stdenv.isLinux # enable KDE integration +, extra-cmake-modules +, kconfigwidgets +, kcoreaddons +, knotifications +, knotifyconfig +, ktextwidgets +, kwidgetsaddons +, kxmlgui +}: + +let + buildClient = monolithic || client; buildCore = monolithic || daemon; in @@ -17,7 +28,6 @@ assert stdenv.isLinux; assert monolithic -> !client && !daemon; assert client || daemon -> !monolithic; -assert withKDE -> kdelibs != null; assert !buildClient -> !withKDE; # KDE is used by the client only let @@ -31,21 +41,28 @@ in with stdenv; mkDerivation rec { enableParallelBuilding = true; - buildInputs = - [ cmake makeWrapper qt ] - ++ lib.optionals buildCore [qca2] - ++ lib.optionals withKDE [automoc4 kdelibs phonon]; + # Prevent ``undefined reference to `qt_version_tag''' in SSL check + NIX_CFLAGS_COMPILE = [ "-DQT_NO_VERSION_TAGGING=1" ]; - NIX_CFLAGS_COMPILE = "-fPIC"; + buildInputs = + [ cmake makeWrapper qtbase ] + ++ lib.optionals buildCore [qtscript qca-qt5] + ++ lib.optionals buildClient [libdbusmenu phonon] + ++ lib.optionals (buildClient && withKDE) [ + extra-cmake-modules kconfigwidgets kcoreaddons + knotifications knotifyconfig ktextwidgets kwidgetsaddons + kxmlgui + ]; cmakeFlags = [ - "-DEMBED_DATA=OFF" ] + "-DEMBED_DATA=OFF" + "-DUSE_QT5=ON" + ] ++ edf static "STATIC" ++ edf monolithic "WANT_MONO" ++ edf daemon "WANT_CORE" ++ edf client "WANT_QTCLIENT" - ++ edf withKDE "WITH_KDE" - ++ edf previews "WITH_WEBKIT"; + ++ edf withKDE "WITH_KDE"; preFixup = lib.optionalString buildClient '' @@ -66,6 +83,6 @@ in with stdenv; mkDerivation rec { license = stdenv.lib.licenses.gpl3; maintainers = with maintainers; [ phreedom ttuegel ]; repositories.git = https://github.com/quassel/quassel.git; - inherit (qt.meta) platforms; + inherit (qtbase.meta) platforms; }; } diff --git a/pkgs/applications/networking/irc/quassel/qt-5.nix b/pkgs/applications/networking/irc/quassel/qt-5.nix deleted file mode 100644 index d631f4aa2146..000000000000 --- a/pkgs/applications/networking/irc/quassel/qt-5.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ monolithic ? true # build monolithic Quassel -, daemon ? false # build Quassel daemon -, client ? false # build Quassel client -, tag ? "" # tag added to the package name -, static ? false # link statically - -, stdenv, fetchurl, cmake, makeWrapper, dconf -, qtbase, qtscript -, phonon, libdbusmenu, qca-qt5 - -, withKDE ? stdenv.isLinux # enable KDE integration -, extra-cmake-modules -, kconfigwidgets -, kcoreaddons -, knotifications -, knotifyconfig -, ktextwidgets -, kwidgetsaddons -, kxmlgui -}: - -let - buildClient = monolithic || client; - buildCore = monolithic || daemon; -in - -assert stdenv.isLinux; - -assert monolithic -> !client && !daemon; -assert client || daemon -> !monolithic; -assert !buildClient -> !withKDE; # KDE is used by the client only - -let - edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))]; - source = import ./source.nix { inherit fetchurl; }; - -in with stdenv; mkDerivation rec { - inherit (source) src version; - - name = "quassel${tag}-${version}"; - - enableParallelBuilding = true; - - # Prevent ``undefined reference to `qt_version_tag''' in SSL check - NIX_CFLAGS_COMPILE = [ "-DQT_NO_VERSION_TAGGING=1" ]; - - buildInputs = - [ cmake makeWrapper qtbase ] - ++ lib.optionals buildCore [qtscript qca-qt5] - ++ lib.optionals buildClient [libdbusmenu phonon] - ++ lib.optionals (buildClient && withKDE) [ - extra-cmake-modules kconfigwidgets kcoreaddons - knotifications knotifyconfig ktextwidgets kwidgetsaddons - kxmlgui - ]; - - cmakeFlags = [ - "-DEMBED_DATA=OFF" - "-DUSE_QT5=ON" - ] - ++ edf static "STATIC" - ++ edf monolithic "WANT_MONO" - ++ edf daemon "WANT_CORE" - ++ edf client "WANT_QTCLIENT" - ++ edf withKDE "WITH_KDE"; - - preFixup = - lib.optionalString buildClient '' - wrapProgram "$out/bin/quassel${lib.optionalString client "client"}" \ - --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" - ''; - - meta = with stdenv.lib; { - homepage = http://quassel-irc.org/; - description = "Qt/KDE distributed IRC client suppporting a remote daemon"; - longDescription = '' - Quassel IRC is a cross-platform, distributed IRC client, - meaning that one (or multiple) client(s) can attach to - and detach from a central core -- much like the popular - combination of screen and a text-based IRC client such - as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5). - ''; - license = stdenv.lib.licenses.gpl3; - maintainers = with maintainers; [ phreedom ttuegel ]; - repositories.git = https://github.com/quassel/quassel.git; - inherit (qtbase.meta) platforms; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 89ef5f5e4f78..880fa138b9c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14843,7 +14843,7 @@ with pkgs; qtscrobbler = callPackage ../applications/audio/qtscrobbler { }; - quassel = qt5.callPackage ../applications/networking/irc/quassel/qt-5.nix { + quassel = qt5.callPackage ../applications/networking/irc/quassel { monolithic = true; daemon = false; client = false; @@ -16783,49 +16783,6 @@ with pkgs; qtcurve = callPackage ../misc/themes/qtcurve { }; - quassel = callPackage ../applications/networking/irc/quassel rec { - monolithic = true; - daemon = false; - client = false; - withKDE = stdenv.isLinux; - qt = if withKDE then qt4 else qt5; # KDE supported quassel cannot build with qt5 yet (maybe in 0.12.0) - dconf = gnome3.dconf; - }; - - quasselWithoutKDE = (quassel.override { - monolithic = true; - daemon = false; - client = false; - withKDE = false; - #qt = qt5; - tag = "-without-kde"; - }); - - quasselDaemon = (quassel.override { - monolithic = false; - daemon = true; - client = false; - withKDE = false; - #qt = qt5; - tag = "-daemon"; - }); - - quasselClient = (quassel.override { - monolithic = false; - daemon = false; - client = true; - tag = "-client"; - }); - - quasselClientWithoutKDE = (quasselClient.override { - monolithic = false; - daemon = false; - client = true; - withKDE = false; - #qt = qt5; - tag = "-client-without-kde"; - }); - rekonq-unwrapped = callPackage ../applications/networking/browsers/rekonq { }; rekonq = wrapFirefox rekonq-unwrapped { };