- add subpackage with kernel module sources
- obsolete kmod-sysprof - add patch for warning user about missing module - add README.Fedora file with module build procedure
This commit is contained in:
parent
c549583696
commit
5359af473c
5
README.Fedora
Normal file
5
README.Fedora
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
How to build the kernel module for sysprof
|
||||||
|
|
||||||
|
In order to build and install in the proper location the sysprof kernel
|
||||||
|
module, run as root:
|
||||||
|
|
96
sysprof-1.0.9-warn-for-missing-module.patch
Normal file
96
sysprof-1.0.9-warn-for-missing-module.patch
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
Index: sysprof-1.0.9/sysprof.c
|
||||||
|
===================================================================
|
||||||
|
--- sysprof-1.0.9.orig/sysprof.c
|
||||||
|
+++ sysprof-1.0.9/sysprof.c
|
||||||
|
@@ -543,32 +543,67 @@ on_start_toggled (GtkWidget *widget, gpo
|
||||||
|
|
||||||
|
if (app->input_fd == -1)
|
||||||
|
{
|
||||||
|
- int fd;
|
||||||
|
|
||||||
|
- fd = open ("/proc/sysprof-trace", O_RDONLY);
|
||||||
|
- if (fd < 0)
|
||||||
|
- {
|
||||||
|
- load_module();
|
||||||
|
-
|
||||||
|
- fd = open ("/proc/sysprof-trace", O_RDONLY);
|
||||||
|
-
|
||||||
|
- if (fd < 0)
|
||||||
|
- {
|
||||||
|
- sorry (app->main_window,
|
||||||
|
- "Can't open /proc/sysprof-trace. You need to insert\n"
|
||||||
|
- "the sysprof kernel module. Run\n"
|
||||||
|
- "\n"
|
||||||
|
- " modprobe sysprof-module\n"
|
||||||
|
- "\n"
|
||||||
|
- "as root.");
|
||||||
|
-
|
||||||
|
- update_sensitivity (app);
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ // Check for kernel module existence
|
||||||
|
+ gchar * modules_path;
|
||||||
|
+ gchar * standard_output;
|
||||||
|
+ gchar * standard_error;
|
||||||
|
+ int exit_status = -1;
|
||||||
|
+ if (g_spawn_command_line_sync ("/bin/uname -r",
|
||||||
|
+ &standard_output, &standard_error,
|
||||||
|
+ &exit_status,
|
||||||
|
+ NULL))
|
||||||
|
+ {
|
||||||
|
+ g_strchomp( standard_output );
|
||||||
|
+ gchar * module_path;
|
||||||
|
+ module_path = g_strdup_printf( "/lib/modules/%s/extra/sysprof-module.ko", standard_output );
|
||||||
|
+
|
||||||
|
+ if ( ! g_file_test( module_path, G_FILE_TEST_EXISTS ))
|
||||||
|
+ {
|
||||||
|
+ sorry (app->main_window,
|
||||||
|
+ "Can not find sysprof kernel module in:\n\n"
|
||||||
|
+ " %s\n\n"
|
||||||
|
+ "Please see:\n"
|
||||||
|
+ "\n"
|
||||||
|
+ " %s/README.Fedora\n"
|
||||||
|
+ "\n"
|
||||||
|
+ "for more info about module installation.", module_path, PACKAGE_DOCDIR );
|
||||||
|
+ g_free( module_path );
|
||||||
|
+ update_sensitivity (app);
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+ g_free (standard_output);
|
||||||
|
+ g_free (standard_error);
|
||||||
|
+ g_free( module_path );
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int fd;
|
||||||
|
+
|
||||||
|
+ fd = open ("/proc/sysprof-trace", O_RDONLY);
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ {
|
||||||
|
+ load_module();
|
||||||
|
+
|
||||||
|
+ fd = open ("/proc/sysprof-trace", O_RDONLY);
|
||||||
|
+
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ {
|
||||||
|
+ sorry (app->main_window,
|
||||||
|
+ "Can't open /proc/sysprof-trace. You need to insert\n"
|
||||||
|
+ "the sysprof kernel module. Run\n"
|
||||||
|
+ "\n"
|
||||||
|
+ " modprobe sysprof-module\n"
|
||||||
|
+ "\n"
|
||||||
|
+ "as root.");
|
||||||
|
+
|
||||||
|
+ update_sensitivity (app);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- app->input_fd = fd;
|
||||||
|
- fd_add_watch (app->input_fd, app);
|
||||||
|
+ app->input_fd = fd;
|
||||||
|
+ fd_add_watch (app->input_fd, app);
|
||||||
|
}
|
||||||
|
|
||||||
|
fd_set_read_callback (app->input_fd, on_read);
|
47
sysprof.spec
47
sysprof.spec
@ -1,6 +1,6 @@
|
|||||||
Name: sysprof
|
Name: sysprof
|
||||||
Version: 1.0.9
|
Version: 1.0.9
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Sysprof is a sampling CPU profiler
|
Summary: Sysprof is a sampling CPU profiler
|
||||||
Group: Development/System
|
Group: Development/System
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -9,12 +9,16 @@ Source0: http://www.daimi.au.dk/~sandmann/sysprof/sysprof-%{version}.tar.
|
|||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
Source1: sysprof.desktop
|
Source1: sysprof.desktop
|
||||||
|
Source2: README.Fedora
|
||||||
|
Patch0: sysprof-1.0.9-warn-for-missing-module.patch
|
||||||
|
|
||||||
BuildRequires: gtk2-devel => 2.6
|
BuildRequires: gtk2-devel => 2.6
|
||||||
BuildRequires: libglade2-devel
|
BuildRequires: libglade2-devel
|
||||||
BuildRequires: binutils-devel
|
BuildRequires: binutils-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
|
|
||||||
|
Requires: sysprof-module = %{version}
|
||||||
|
|
||||||
ExclusiveArch: %{ix86} x86_64
|
ExclusiveArch: %{ix86} x86_64
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -23,12 +27,41 @@ to profile the entire system, not just a single application.
|
|||||||
Sysprof handles shared libraries and applications do not need to be
|
Sysprof handles shared libraries and applications do not need to be
|
||||||
recompiled. In fact they don't even have to be restarted.
|
recompiled. In fact they don't even have to be restarted.
|
||||||
|
|
||||||
|
|
||||||
|
%package module
|
||||||
|
Summary: Source code for the required kernel module
|
||||||
|
Group: Development/System
|
||||||
|
Requires: kernel-devel
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
|
||||||
|
# Replace old kmods - to be removed in Fedora 11
|
||||||
|
Obsoletes: kmod-sysprof <= 1.0.9-3
|
||||||
|
|
||||||
|
|
||||||
|
%description module
|
||||||
|
Sysprof needs a kernel module to be inserted before profiling could start.
|
||||||
|
|
||||||
|
This package provides the necessary source files for building sysprof-module
|
||||||
|
|
||||||
|
The full build/install procedure is described in:
|
||||||
|
%{_docdir}/%{name}-%{version}/README.Fedora
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
# Finish up README file
|
||||||
|
cp %{SOURCE2} ./README.Fedora
|
||||||
|
echo "cd %{_docdir}/sysprof-module-%{version}/module" >> README.Fedora
|
||||||
|
echo "make modules install" >> README.Fedora
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --disable-kernel-module
|
%configure --disable-kernel-module
|
||||||
|
|
||||||
|
# Add info about README.Fedora
|
||||||
|
echo "#define PACKAGE_DOCDIR \"%{_docdir}/sysprof-module-%{version}\"" >> config.h
|
||||||
|
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
|
||||||
@ -55,7 +88,19 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_datadir}/sysprof/sysprof.glade
|
%{_datadir}/sysprof/sysprof.glade
|
||||||
%{_datadir}/applications/*.desktop
|
%{_datadir}/applications/*.desktop
|
||||||
|
|
||||||
|
|
||||||
|
%files module
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc README.Fedora config.h module/
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 27 2007 Gianluca Sforna <giallu gmail com> - 1.0.9-3
|
||||||
|
- add subpackage with kernel module sources
|
||||||
|
- obsolete kmod-sysprof
|
||||||
|
- add patch for warning user about missing module
|
||||||
|
- add README.Fedora file with module build procedure
|
||||||
|
|
||||||
* Fri Dec 07 2007 Release Engineering <rel-eng at fedoraproject dot org> - 1.0.9-2
|
* Fri Dec 07 2007 Release Engineering <rel-eng at fedoraproject dot org> - 1.0.9-2
|
||||||
- Rebuild for deps
|
- Rebuild for deps
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user