From 4ce95e453b13f3a53ec4c788278d95a88330b701 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 8 Aug 2018 01:31:21 +0200 Subject: [PATCH 1/2] libinfinity: modernize expression * Use multiple outputs to reduce the number of rebuilds necessary. * Fix build with GTK+ support --- nixos/modules/services/editors/infinoted.nix | 8 +- .../libraries/libinfinity/default.nix | 87 ++++++++++--------- pkgs/top-level/all-packages.nix | 4 +- 3 files changed, 49 insertions(+), 50 deletions(-) diff --git a/nixos/modules/services/editors/infinoted.nix b/nixos/modules/services/editors/infinoted.nix index bba21caca85..9cc8d421270 100644 --- a/nixos/modules/services/editors/infinoted.nix +++ b/nixos/modules/services/editors/infinoted.nix @@ -10,8 +10,8 @@ in { package = mkOption { type = types.package; - default = pkgs.libinfinity.override { daemon = true; }; - defaultText = "pkgs.libinfinity.override { daemon = true; }"; + default = pkgs.libinfinity; + defaultText = "pkgs.libinfinity"; description = '' Package providing infinoted ''; @@ -119,7 +119,7 @@ in { users.groups = optional (cfg.group == "infinoted") { name = "infinoted"; }; - + systemd.services.infinoted = { description = "Gobby Dedicated Server"; @@ -129,7 +129,7 @@ in { serviceConfig = { Type = "simple"; Restart = "always"; - ExecStart = "${cfg.package}/bin/infinoted-${versions.majorMinor cfg.package.version} --config-file=/var/lib/infinoted/infinoted.conf"; + ExecStart = "${cfg.package.infinoted} --config-file=/var/lib/infinoted/infinoted.conf"; User = cfg.user; Group = cfg.group; PermissionsStartOnly = true; diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix index 208e0111062..78c0fd6fb26 100644 --- a/pkgs/development/libraries/libinfinity/default.nix +++ b/pkgs/development/libraries/libinfinity/default.nix @@ -1,52 +1,53 @@ { gtkWidgets ? false # build GTK widgets for libinfinity -, daemon ? false # build infinote daemon -, documentation ? false # build documentation , avahiSupport ? false # build support for Avahi in libinfinity , stdenv, fetchurl, pkgconfig, glib, libxml2, gnutls, gsasl -, gtk2 ? null, gtkdoc ? null, avahi ? null, libdaemon ? null, libidn, gss +, gobjectIntrospection +, gtk3 ? null, gtk-doc, docbook_xsl, docbook_xml_dtd_412, avahi ? null, libdaemon, libidn, gss , libintl }: +assert avahiSupport -> avahi != null; +assert gtkWidgets -> gtk3 != null; + let - edf = flag: feature: (if flag then "--with-" else "--without-") + feature; - optional = cond: elem: assert cond -> elem != null; if cond then [elem] else []; + mkFlag = flag: feature: (if flag then "--with-" else "--without-") + feature; -in stdenv.mkDerivation rec { + self = stdenv.mkDerivation rec { + name = "libinfinity-${version}"; + version = "0.7.1"; + src = fetchurl { + url = "http://releases.0x539.de/libinfinity/${name}.tar.gz"; + sha256 = "1jw2fhrcbpyz99bij07iyhy9ffyqdn87vl8cb1qz897y3f2f0vk2"; + }; - name = "libinfinity-${version}"; - version = "0.7.1"; - src = fetchurl { - url = "http://releases.0x539.de/libinfinity/${name}.tar.gz"; - sha256 = "1jw2fhrcbpyz99bij07iyhy9ffyqdn87vl8cb1qz897y3f2f0vk2"; + outputs = [ "bin" "out" "dev" "man" "devdoc" ]; + + nativeBuildInputs = [ pkgconfig gtk-doc docbook_xsl docbook_xml_dtd_412 gobjectIntrospection ]; + buildInputs = [ glib libxml2 gsasl libidn gss libintl libdaemon ] + ++ stdenv.lib.optional gtkWidgets gtk3 + ++ stdenv.lib.optional avahiSupport avahi; + + propagatedBuildInputs = [ gnutls ]; + + configureFlags = [ + "--enable-gtk-doc" + "--enable-introspection" + (mkFlag gtkWidgets "inftextgtk") + (mkFlag gtkWidgets "infgtk") + "--with-infinoted" + "--with-libdaemon" + (mkFlag avahiSupport "avahi") + ]; + + passthru = { + infinoted = "${self.bin}/bin/infinoted-${stdenv.lib.versions.majorMinor version}"; + }; + + meta = { + homepage = http://gobby.0x539.de/; + description = "An implementation of the Infinote protocol written in GObject-based C"; + license = stdenv.lib.licenses.lgpl2Plus; + maintainers = [ stdenv.lib.maintainers.phreedom ]; + platforms = with stdenv.lib.platforms; linux ++ darwin; + }; }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ glib libxml2 gsasl libidn gss libintl ] - ++ optional gtkWidgets gtk2 - ++ optional documentation gtkdoc - ++ optional avahiSupport avahi - ++ optional daemon libdaemon; - - propagatedBuildInputs = [ gnutls ]; - - configureFlags = '' - ${if documentation then "--enable-gtk-doc" else "--disable-gtk-doc"} - ${edf gtkWidgets "inftextgtk"} - ${edf gtkWidgets "infgtk"} - ${edf daemon "infinoted"} - ${edf daemon "libdaemon"} - ${edf avahiSupport "avahi"} - ''; - - passthru = { - inherit version; - }; - - meta = { - homepage = http://gobby.0x539.de/; - description = "An implementation of the Infinote protocol written in GObject-based C"; - license = stdenv.lib.licenses.lgpl2Plus; - maintainers = [ stdenv.lib.maintainers.phreedom ]; - platforms = with stdenv.lib.platforms; linux ++ darwin; - }; - -} +in self diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1623c1262d6..55a69af840f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10471,9 +10471,7 @@ with pkgs; libiec61883 = callPackage ../development/libraries/libiec61883 { }; - libinfinity = callPackage ../development/libraries/libinfinity { - inherit (gnome2) gtkdoc; - }; + libinfinity = callPackage ../development/libraries/libinfinity { }; libinput = callPackage ../development/libraries/libinput { graphviz = graphviz-nox; From 59a2753e9e0ed17ae57f6270e155167263c8390b Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 8 Aug 2018 03:01:22 +0200 Subject: [PATCH 2/2] =?UTF-8?q?gobby5:=200.5.0=20=E2=86=92=20unstable-2018?= =?UTF-8?q?-04-03?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix build --- pkgs/applications/editors/gobby/default.nix | 28 +++++++++------------ pkgs/top-level/all-packages.nix | 4 +-- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix index de1e5e4c64b..e59def88de5 100644 --- a/pkgs/applications/editors/gobby/default.nix +++ b/pkgs/applications/editors/gobby/default.nix @@ -1,26 +1,22 @@ { avahiSupport ? false # build support for Avahi in libinfinity -, gnomeSupport ? false # build support for Gnome(gnome-vfs) -, stdenv, fetchurl, pkgconfig -, gtkmm2, gsasl, gtksourceview, libxmlxx, libinfinity, intltool -, gnome_vfs ? null}: +, stdenv, fetchurl, fetchFromGitHub, autoconf, automake, pkgconfig, wrapGAppsHook +, gtkmm3, gsasl, gtksourceview3, libxmlxx, libinfinity, intltool, itstool, gnome3 }: let libinf = libinfinity.override { gtkWidgets = true; inherit avahiSupport; }; - in stdenv.mkDerivation rec { - - name = "gobby-0.5.0"; - src = fetchurl { - url = "http://releases.0x539.de/gobby/${name}.tar.gz"; - sha256 = "165x0r668ma5blziisvbr8qig3jw9hf7i6w8r7wwvz3wsac3bswc"; + name = "gobby-unstable-2018-04-03"; + src = fetchFromGitHub { + owner = "gobby"; + repo = "gobby"; + rev = "ea4df27c9b6b885434797b0071ce198b23f9f63b"; + sha256 = "0q7lq64yn16lxvj4jphs8y9194h0xppj8k7y9x8b276krraak2az"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtkmm2 gsasl gtksourceview libxmlxx libinf intltool ] - ++ stdenv.lib.optional gnomeSupport gnome_vfs; - - configureFlags = '' - ''; + nativeBuildInputs = [ autoconf automake pkgconfig intltool itstool gnome3.yelp-tools wrapGAppsHook ]; + buildInputs = [ gtkmm3 gsasl gtksourceview3 libxmlxx libinf ]; + + preConfigure = "./autogen.sh"; meta = with stdenv.lib; { homepage = http://gobby.0x539.de/; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 55a69af840f..c3dee5d37da 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16499,9 +16499,7 @@ with pkgs; gocr = callPackage ../applications/graphics/gocr { }; - gobby5 = callPackage ../applications/editors/gobby { - inherit (gnome2) gtksourceview; - }; + gobby5 = callPackage ../applications/editors/gobby { }; gphoto2 = callPackage ../applications/misc/gphoto2 { };