diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 7bce8e44ecc..6fe29af3a00 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -383,6 +383,7 @@ ./services/misc/sundtek.nix ./services/misc/svnserve.nix ./services/misc/synergy.nix + ./services/misc/sysprof.nix ./services/misc/taskserver ./services/misc/tzupdate.nix ./services/misc/uhub.nix diff --git a/nixos/modules/services/misc/sysprof.nix b/nixos/modules/services/misc/sysprof.nix new file mode 100644 index 00000000000..ab91a8b586a --- /dev/null +++ b/nixos/modules/services/misc/sysprof.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: + +{ + options = { + services.sysprof = { + enable = lib.mkEnableOption "sysprof profiling daemon"; + }; + }; + + config = lib.mkIf config.services.sysprof.enable { + environment.systemPackages = [ pkgs.sysprof ]; + + services.dbus.packages = [ pkgs.sysprof ]; + + systemd.packages = [ pkgs.sysprof ]; + }; + + meta.maintainers = pkgs.sysprof.meta.maintainers; +} diff --git a/pkgs/development/tools/profiling/sysprof/configure.patch b/pkgs/development/tools/profiling/sysprof/configure.patch deleted file mode 100644 index 212840ee406..00000000000 --- a/pkgs/development/tools/profiling/sysprof/configure.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- sysprof-1.0.10/configure 2008-04-28 01:41:25.000000000 +0200 -+++ sysprof-1.0.10/configure 2008-06-07 15:40:07.000000000 +0200 -@@ -3342,14 +3342,6 @@ if test $kernel_module = "yes"; then - echo \* - exit 1 - fi -- -- if ! test -f /lib/modules/`uname -r`/build/Makefile ; then -- echo \* -- echo \* Sysprof requires the kernel source code to be installed. -- echo \* On a Fedora Core system the relevant package is kernel-devel -- echo \* -- exit 1 -- fi - fi - - # Pkgconfig dependencies diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix index a2ea3444db6..f28fe187e6c 100644 --- a/pkgs/development/tools/profiling/sysprof/default.nix +++ b/pkgs/development/tools/profiling/sysprof/default.nix @@ -1,24 +1,53 @@ { stdenv -, fetchurl, pkgconfig -, gtk2, glib, pango, libglade +, desktop-file-utils +, fetchurl +, gettext +, glib +, gtk3 +, itstool +, libxml2 +, meson, ninja +, pango +, pkgconfig +, polkit +, shared-mime-info +, systemd +, wrapGAppsHook +, gnome3 }: +let + version = "3.28.1"; + pname = "sysprof"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; -stdenv.mkDerivation rec { - name = "sysprof-1.2.0"; + outputs = [ "out" "lib" "dev" ]; src = fetchurl { - url = "http://www.sysprof.com/sysprof-1.2.0.tar.gz"; - sha256 = "1wb4d844rsy8qjg3z5m6rnfm72da4xwzrrkkb1q5r10sq1pkrw5s"; + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "05534dvwrzrmryb4y2m1sb2q0r8i6nr88pzjg7xs5nr9zq8a87p3"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtk2 glib pango libglade ]; + nativeBuildInputs = [ desktop-file-utils gettext itstool libxml2 meson ninja pkgconfig shared-mime-info wrapGAppsHook ]; + buildInputs = [ glib gtk3 pango polkit systemd.dev systemd.lib ]; - meta = { - homepage = http://sysprof.com/; + mesonFlags = [ + "-Dsystemdunitdir=lib/systemd/system" + ]; + + postInstall = '' + rm $out/share/applications/mimeinfo.cache + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + }; + }; + + meta = with stdenv.lib; { description = "System-wide profiler for Linux"; - license = stdenv.lib.licenses.gpl2Plus; - + homepage = https://wiki.gnome.org/Apps/Sysprof; longDescription = '' Sysprof is a sampling CPU profiler for Linux that uses the perf_event_open system call to profile the entire system, not just a single @@ -26,6 +55,8 @@ stdenv.mkDerivation rec { do not need to be recompiled. In fact they don't even have to be restarted. ''; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ]; platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d5df97c1ddb..3193a56514f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14084,9 +14084,7 @@ with pkgs; sysfsutils = callPackage ../os-specific/linux/sysfsutils { }; - sysprof = callPackage ../development/tools/profiling/sysprof { - inherit (gnome2) libglade; - }; + sysprof = callPackage ../development/tools/profiling/sysprof { }; # Provided with sysfsutils. libsysfs = sysfsutils;