]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: provide OL6 and OL7 spec file with new features
authorKris Van Hees <kris.van.hees@oracle.com>
Tue, 18 Aug 2015 21:47:27 +0000 (17:47 -0400)
committerKris Van Hees <kris.van.hees@oracle.com>
Wed, 14 Oct 2015 10:45:06 +0000 (06:45 -0400)
Because of some small differences in building the DTrace modules for OL6
vs OL7,currently two different spec file are used.  This commit removes
the old single spec file, and introduces the two specific ones.

This commit also adds support for module signing.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
dtrace/dtrace-module-OL6.spec [moved from dtrace/dtrace-module.spec with 93% similarity]
dtrace/dtrace-module-OL7.spec [new file with mode: 0644]

similarity index 93%
rename from dtrace/dtrace-module.spec
rename to dtrace/dtrace-module-OL6.spec
index d8a412797bd948adbf7bf9368e24dac510ad0b49..3c5421ef43cc71afc2cb075da2092e212db7601a 100644 (file)
@@ -13,7 +13,9 @@
 %define variant %{?build_variant:%{build_variant}}%{!?build_variant:-uek}
 
 # Set this to the version of the kernel this module is compiled against.
-%define kver %{?build_kver:%{build_kver}}%{!?build_kver:4.0.4-15.el6uek}
+%define kver %{?build_kver:%{build_kver}}%{!?build_kver:4.1.4-3.el6uek}
+
+%define _signmodules %{?signmodules: %{signmodules}} %{?!signmodules: 1}
 
 # Select the correct source code version based on the kernel version.
 # Failing to pick the correct version can have disasterous effects!
 %{lua:
        local kver = rpm.expand("%{kver}")
 
-       if rpm.vercmp(kver, "4.0.0-1") >= 0 then
+       if rpm.vercmp(kver, "4.1.4-3") >= 0 then
                rpm.define("arches x86_64 sparc64")
        else
                rpm.define("arches x86_64")
        end
 
-       if rpm.vercmp(kver, "4.0.4-15") >= 0 then
+       if rpm.vercmp(kver, "4.1.4-3") >= 0 then
                rpm.define("srcver 0.5.0")
-               rpm.define("bldrel 1")
+               rpm.define("bldrel 2")
                rpm.define("dt_vcode "..rpm.expand("%{dt_0_5_0}"))
        elseif rpm.vercmp(kver, "3.8.13-87") >= 0 then
                rpm.define("srcver 0.4.5")
-               rpm.define("bldrel 2")
+               rpm.define("bldrel 3")
                rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_5}"))
        elseif rpm.vercmp(kver, "3.8.13-69") >= 0 then
                rpm.define("srcver 0.4.4")
@@ -106,6 +108,11 @@ BuildRequires: kernel%{variant}-devel = %{kver}
 BuildRequires: libdtrace-ctf
 ExclusiveArch: x86_64
 
+%if %{_signmodules}
+Source1: mod-sign.sh
+%define modsign_cmd %{SOURCE1}
+%endif
+
 %description
 DTrace kernel modules.
 
@@ -198,6 +205,10 @@ cd dtrace
 KSRC=/usr/src/kernels/%{kver}.%{karch}
 make KERNELDIR=$KSRC karch=%{karch} modules
 
+%if %{_signmodules}
+%{modsign_cmd} ${RPM_BUILD_DIR}/%{name}/dtrace
+%endif
+
 %install
 rm -rf %{buildroot}
 mkdir -p %{buildroot}/lib/modules/%{kver}.%{karch}/kernel/drivers/dtrace
@@ -249,13 +260,19 @@ rm -rf %{buildroot}
 
 %changelog
 %if %{dt_vcode} >= %{dt_0_5_0}
-* Tue Jul  6 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.5.0-1
+* Mon Jul  6 2015 Natalya Naumova <natalya.naumova@oracle.com> - 0.5.0-2
+- modules signing support
+* Mon Aug 10 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.5.0-1
+- Use kernel-provided SDT trampoline memory area for SPARC64.
+  [Orabug: 21220344]
 - Add support for sparc64.
   [Orabug: 19005048]
 - Update uid / gid handling in view of namespaces in UEK4 kernels.
   [Orabug: 20456825]
 %endif
 %if %{dt_vcode} >= %{dt_0_4_5}
+* Tue Jul  7 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.5-3
+- Synchronize versions with OL7
 * Tue Jun 23 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.5-2
 - Validate d_path() argument pointer to avoid crash.
   [Orabug: 21304207]
@@ -321,8 +338,8 @@ rm -rf %{buildroot}
   [Orabug: 17591351]
 %endif
 %if %{dt_vcode} == %{dt_0_4_0}
-* Thu Oct 17 2013 Nick Alcock <nick.alcock@oracle.com> - 0.4.0-3 
-- fix changelog, no code changes 
+* Thu Oct 17 2013 Nick Alcock <nick.alcock@oracle.com> - 0.4.0-3
+- fix changelog, no code changes
 %endif
 %if %{dt_vcode} >= %{dt_0_4_0}
 * Thu Oct 10 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.0-2
diff --git a/dtrace/dtrace-module-OL7.spec b/dtrace/dtrace-module-OL7.spec
new file mode 100644 (file)
index 0000000..a48e3d7
--- /dev/null
@@ -0,0 +1,379 @@
+%ifarch i686
+%define karch i686
+%endif
+%ifarch x86_64
+%define karch x86_64
+%endif
+%ifarch sparc64
+%define karch sparc64
+%endif
+
+# Redefine 'build_variant' at build time to create a kernel package named
+# something like 'kernel-uek-dtrace'.
+%define variant %{?build_variant:%{build_variant}}%{!?build_variant:-uek}
+
+# Set this to the version of the kernel this module is compiled against.
+%define kver %{?build_kver:%{build_kver}}%{!?build_kver:4.1.4-3.el7uek}
+
+%define _signmodules %{?signmodules: %{signmodules}} %{?!signmodules: 1}
+
+# Select the correct source code version based on the kernel version.
+# Failing to pick the correct version can have disasterous effects!
+# For safety, we assume that the kernel version is not supported, unless we
+# explicitly recognize it below...  Unsupported versions will always have
+# version code 0.
+#
+# We also set a version code (vercode) to make it possible to make parts of
+# the specfile conditional on the modules version.
+%define dt_vcode       0
+%define dt_0_3_2       770
+%define dt_0_4_0       1024
+%define dt_0_4_1       1025
+%define dt_0_4_2       1026
+%define dt_0_4_3       1027
+%define dt_0_4_4       1028
+%define dt_0_4_5       1029
+%define dt_0_5_0       1280
+%{lua:
+       local kver = rpm.expand("%{kver}")
+
+       if rpm.vercmp(kver, "4.1.4-3") >= 0 then
+               rpm.define("arches x86_64 sparc64")
+       else
+               rpm.define("arches x86_64")
+       end
+
+       if rpm.vercmp(kver, "4.1.4-3") >= 0 then
+               rpm.define("srcver 0.5.0")
+               rpm.define("bldrel 2")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_5_0}"))
+       elseif rpm.vercmp(kver, "3.8.13-87") >= 0 then
+               rpm.define("srcver 0.4.5")
+               rpm.define("bldrel 3")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_5}"))
+       elseif rpm.vercmp(kver, "3.8.13-69") >= 0 then
+               rpm.define("srcver 0.4.4")
+               rpm.define("bldrel 1")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_4}"))
+       elseif rpm.vercmp(kver, "3.8.13-33") >= 0 then
+               rpm.define("srcver 0.4.3")
+               rpm.define("bldrel 4")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_3}"))
+       elseif rpm.vercmp(kver, "3.8.13-22") >= 0 then
+               rpm.define("srcver 0.4.2")
+               rpm.define("bldrel 3")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_2}"))
+       elseif rpm.vercmp(kver, "3.8.13-16.2.1") >= 0 then
+               rpm.define("srcver 0.4.1")
+               rpm.define("bldrel 3")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_1}"))
+       elseif rpm.vercmp(kver, "3.8.13-16") >= 0 then
+               rpm.define("srcver 0.4.0")
+               rpm.define("bldrel 3")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_0}"))
+       elseif rpm.vercmp(kver, "3") >= 0 then
+               -- No DTrace in 3.x kernels prior to 3.8.13-16
+       elseif rpm.vercmp(kver, "2.6.39-201.0.2") >= 0 then
+               rpm.define("srcver 0.3.2")
+               rpm.define("bldrel 2")
+               rpm.define("dt_vcode "..rpm.expand("%{dt_0_3_2}"))
+       end
+}
+%if %{dt_vcode} == 0
+ %{error:Kernel %{kver} is not supported for DTrace or source code missing}
+%endif
+
+#
+# Current (new) RPM specification, with cleaned up dependencies.
+#
+%if %{dt_vcode} >= %{dt_0_4_2}
+
+%if %{dt_vcode} >= %{dt_0_4_4}
+%define header_pkg dtrace-modules-shared-headers
+%else
+%define header_pkg dtrace-modules-headers
+%endif
+
+Name: dtrace-modules-%{kver}
+Summary: dtrace module
+Version: %{srcver}
+Release: %{bldrel}.el7
+Provides: dtrace-modules
+License: CDDL
+Group: System Environment/Kernel
+Requires: kernel%{variant} = %{kver}
+Source0: dtrace-module-%{srcver}.tar.bz2
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: kernel%{variant}-devel = %{kver}
+BuildRequires: libdtrace-ctf
+ExclusiveArch: x86_64
+
+%if %{_signmodules}
+Source1: mod-sign.sh
+%define modsign_cmd %{SOURCE1}
+%endif
+
+%description
+DTrace kernel modules.
+
+This package contains the DTrace core module, and standard provider modules:
+dtrace, profile, syscall, sdt (io, proc,sched), and fasttrap (USDT).
+
+Maintainers:
+------------
+Nick Alcock <nick.alcock@oracle.com>
+Kris Van Hees <kris.van.hees@oracle.com>
+
+%package -n %{header_pkg}
+Summary:       Header files for communication with the DTrace kernel module.
+%if %{dt_vcode} >= %{dt_0_4_4}
+Obsoletes:      dtrace-modules-headers
+Provides:       dtrace-modules-headers 1:1
+%endif
+%description -n %{header_pkg}
+This package contains header files describing the protocol used by userspace to
+communicate with the DTrace kernel module.
+
+%package -n dtrace-modules-provider-headers
+Summary:       Header files for implementation of DTrace providers.
+Requires:      %{header_pkg}
+%description -n dtrace-modules-provider-headers
+This package contains header files defining the API used to implement DTrace
+providers.
+
+%else
+
+Name: dtrace-modules-%{kver}
+Summary: dtrace module
+Version: %{srcver}
+Release: %{bldrel}.el7
+Provides: dtrace-kernel-interface = 1
+License: CDDL
+Group: System Environment/Kernel
+Requires: kernel%{variant} = %{kver}
+Source0: dtrace-module-%{srcver}.tar.bz2
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: kernel%{variant}-devel = %{kver}
+BuildRequires: libdtrace-ctf
+ExclusiveArch: x86_64
+
+%description
+DTrace kernel modules.
+
+This package contains the DTrace core module, and standard provider modules:
+dtrace, profile, syscall, sdt (io, proc,sched), and fasttrap (USDT).
+
+Maintainers:
+------------
+Nick Alcock <nick.alcock@oracle.com>
+Kris Van Hees <kris.van.hees@oracle.com>
+
+%package headers
+Summary:       Header files for communication with the DTrace kernel module.
+Requires:      dtrace-modules-%{kver}
+Provides:      dtrace-modules-headers = 1
+%description headers
+This package contains header files describing the protocol used by userspace to
+communicate with the DTrace kernel module.
+
+%package provider-headers
+Summary:       Header files for implementation of DTrace providers.
+Requires:      dtrace-modules-headers = 1
+Provides:      dtrace-modules-provider-headers = 1
+%description provider-headers
+This package contains header files defining the API used to implement DTrace
+providers.
+
+%endif
+
+%prep
+rm -rf %{BuildRoot}
+
+%setup -c -n %{name}
+
+%build
+cd dtrace
+KSRC=/usr/src/kernels/%{kver}.%{karch}
+make KERNELDIR=$KSRC karch=%{karch} modules
+
+%if %{_signmodules}
+%{modsign_cmd} ${RPM_BUILD_DIR}/%{name}/dtrace
+%endif
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}/lib/modules/%{kver}.%{karch}/kernel/drivers/dtrace
+install -m0644 ${RPM_BUILD_DIR}/%{name}/dtrace/*.ko %{buildroot}/lib/modules/%{kver}.%{karch}/kernel/drivers/dtrace/
+mkdir -p %{buildroot}/usr/share/doc/dtrace-modules-%{kver}
+install -m0644 ${RPM_BUILD_DIR}/%{name}/dtrace/NEWS %{buildroot}/usr/share/doc/dtrace-modules-%{kver}
+cd dtrace
+KSRC=/usr/src/kernels/%{kver}.%{karch}
+make KERNELDIR=$KSRC karch=%{karch} headers_install INSTALL_HDR_PATH=%{buildroot}
+
+%post
+depmod -a %{kver}.%{karch} > /dev/null 2> /dev/null
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+/lib/modules/%{kver}.%{karch}/kernel/drivers/dtrace*
+/usr/share/doc/dtrace-modules-%{kver}*
+
+%if %{dt_vcode} >= %{dt_0_4_2}
+
+%files -n %{header_pkg}
+%defattr(-,root,root,-)
+/usr/include/linux/dtrace
+%exclude /usr/include/linux/dtrace/provider*.h
+%exclude /usr/include/linux/dtrace/types.h
+
+%files -n dtrace-modules-provider-headers
+%defattr(-,root,root,-)
+/usr/include/linux/dtrace/provider*.h
+/usr/include/linux/dtrace/types.h
+
+%else
+
+%files headers
+%defattr(-,root,root,-)
+/usr/include/linux/dtrace
+%exclude /usr/include/linux/dtrace/provider*.h
+%exclude /usr/include/linux/dtrace/types.h
+
+%files provider-headers
+%defattr(-,root,root,-)
+/usr/include/linux/dtrace/provider*.h
+/usr/include/linux/dtrace/types.h
+
+%endif
+
+%changelog
+%if %{dt_vcode} >= %{dt_0_5_0}
+* Tue Aug 18 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.5.0-2
+- Synchronize versions with OL6.
+* Mon Aug 10 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.5.0-1
+- Use kernel-provided SDT trampoline memory area for SPARC64.
+  [Orabug: 21220344]
+- Add support for sparc64.
+  [Orabug: 19005048]
+- Update uid / gid handling in view of namespaces in UEK4 kernels.
+  [Orabug: 20456825]
+%endif
+%if %{dt_vcode} >= %{dt_0_4_5}
+* Mon Jul 6 2015 Natalya Naumova <natalya.naumova@oracle.com> - 0.4.5-3
+- modules signing support
+
+* Tue Jun 23 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.5-2
+- Validate d_path() argument pointer to avoid crash.
+  [Orabug: 21304207]
+* Wed Jun 17 2015 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.5-1
+- Support USDT for 32-bit applications on 64-bit hosts.
+  [Orabug: 21219315]
+- Convert from sdt_instr_t to asm_instr_t.
+  [Orabug: 21219374]
+- Restructuring to support DTrace on multiple architectures.
+  [Orabug: 21273259]
+- Fix dtrace_helptrace_buffer memory leak.
+  [Orabug: 20514336]
+- Add .gitignore file.
+  [Orabug: 20266608]
+%endif
+%if %{dt_vcode} >= %{dt_0_4_4}
+* Thu Mar  9 2015 Nick Alcock <nick.alcock@oracle.com> - 0.4.4-1
+- Rename dtrace-modules-headers to dtrace-modules-shared-headers.
+  [Orabug: 20508087]
+%endif
+%if %{dt_vcode} >= %{dt_0_4_3}
+* Fri Apr 24 2014 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.3-4
+- Updated NEWS file: test stress/buffering/tst.resize1.d is XFAIL for now.
+- Align with kernel header file change: FOLL_NOFAULT -> FOLL_IMMED.
+  [Orabug: 18653713]
+* Fri Apr 24 2014 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.3-3
+- Rebuild with cleaned up source tree.
+* Thu Apr 24 2014 Nick Alcock <nick.alcock@oracle.com> - 0.4.3-2
+- Various fixes to handle multi-threaded processes.
+  [Orabug: 18412802]
+* Tue Apr 15 2014 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.3-1
+- Implmentation of profile-* probes in the profile provider.
+  [Orabug: 18323513]
+%endif
+%if %{dt_vcode} >= %{dt_0_4_2}
+* Wed Jan 29 2014 Nick Alcock <nick.alcock@oracle.com> - 0.4.2-3
+- Obsolete the old provider headers package.
+  [Orabug: 18061595]
+* Mon Jan 27 2014 Nick Alcock <nick.alcock@oracle.com> - 0.4.2-2
+- Change name of provider headers package, to avoid conflicts on yum update.
+  [Orabug: 18061595]
+* Fri Dec 20 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.2-1
+- Fix 'vtimestamp' implementation.
+  [Orabug: 17741477]
+- Support SDT probes points in kernel modules.
+  [Orabug: 17851716]
+%endif
+%if %{dt_vcode} >= %{dt_0_4_1}
+* Wed Nov  6 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.1-3
+- Fix 'errno' implementation.
+  [Orabug: 17704568]
+* Wed Oct 26 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.1-2
+- Fix lock ordering issues.
+  [Orabug: 17624236]
+* Wed Oct 16 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.1-1
+- Align with new cyclic implementation in UEK3 kernel.
+  [Orabug: 17553446]
+- Bugfix for module reference counting.
+- Fix memory leak.
+- Fix race condition in speculative tracing buffer cleaning.
+  [Orabug: 17591351]
+- Ensure safe access to userspace stack memory location.
+  [Orabug: 17591351]
+%endif
+%if %{dt_vcode} == %{dt_0_4_0}
+* Thu Oct 17 2013 Nick Alcock <nick.alcock@oracle.com> - 0.4.0-3
+- fix changelog, no code changes
+%endif
+%if %{dt_vcode} >= %{dt_0_4_0}
+* Thu Oct 10 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.0-2
+- Bugfix for ustack() to avoid using vma data.
+* Wed Aug  7 2013 Kris Van Hees <kris.van.hees@oracle.com> - 0.4.0-1
+- Bugfix for module unloading.
+- Support meta-providers, USDT, and fasttrap (for USDT only).
+- Export DTrace kernel headers to userspace.
+- Improved ustack() robustness.
+  [Orabug: 17591351]
+- Reimplemented ustack().
+  (Nick Alcock) [Orabug: 17591351]
+- Bugfixes.
+%endif
+%if %{dt_vcode} >= %{dt_0_3_2}
+* Fri Nov  2 2012 Nick Alcock <nick.alcock@oracle.com> - 0.3.2
+- Release for new kernel and CTF section layout
+%endif
+* Mon Oct  1 2012 Kris Van Hees <kris.van.hees@oracle.com> - 0.3.1
+- Skipped version number
+* Mon Sep 17 2012 Kris Van Hees <kris.van.hees@oracle.com> - 0.3.0-2
+- Remove development-only providers because they should not be built/released.
+* Fri Sep 14 2012 Kris Van Hees <kris.van.hees@oracle.com> - 0.3.0
+- Release of the DTrace kernel modules for UEK2 2.6.39-201.0.1 (DTrace kernel).
+* Mon Mar 19 2012 Nick Alcock <nick.alcock@oracle.com> - 0.2.5-2
+- Fix typo causing unconditional depmod at postinstall time
+* Tue Mar 13 2012 Nick Alcock <nick.alcock@oracle.com> - 0.2.5
+- New kernel, new userspace: no module changes.
+* Wed Feb 15 2012 Kris van Hees <kris.van.hees@oracle.com> - 0.2.4
+- Ban unloading of in-use dtrace modules while dtrace is running.
+* Thu Feb  9 2012 Nick Alcock <nick.alcock@oracle.com> - 0.2.3
+- There is one new DTrace option now, used internally by the
+  testsuite.
+* Tue Feb  7 2012 Kris Van Hees <kris.van.hees@oracle.com> - 0.2.2
+- Switch MUTEX_HELD() from using mutex_is_locked() to new mutex_owned().
+* Mon Jan 23 2012 Kris Van Hees <kris.van.hees@oracle.com> - 0.2.1
+- Ensure that allocation attempts are done in atomic fashion so that a failing
+  allocation attempt won't interfere with other allocations.
+- Surpress OOM warnings.
+* Mon Jan 23 2012 Kris Van Hees <kris.van.hees@oracle.com> - 0.2.0
+- Release of the DTrace kernel modules for UEK2 2.6.39-101.0.1 (DTrace kernel).
+* Wed Oct 19 2011 Kris Van Hees <kris.van.hees@oracle.com> - 0.1.0-1.el6
+- Disable stub-based syscalls in the release pending merging in fixes.
+* Thu Sep 29 2011 Maxim Uvarov <maxim.uvarov@oracle.com> - 0.1
+- Initial release.