]>
Commit | Line | Data |
---|---|---|
1 | # TODO: | |
2 | # - fix CC detection in configure, so CC=gcc won't be needed | |
3 | # | |
4 | # Conditional build: | |
5 | %bcond_with mpi # MPI wrapper module | |
6 | # | |
7 | Summary: An open-source memory debugger | |
8 | Summary(pl.UTF-8): Otwarty odpluskwiacz pamięci | |
9 | Name: valgrind | |
10 | Version: 3.18.1 | |
11 | Release: 1 | |
12 | License: GPL v2+ | |
13 | Group: Development/Tools | |
14 | Source0: https://sourceware.org/pub/valgrind/%{name}-%{version}.tar.bz2 | |
15 | # Source0-md5: de56a5532b0c81781db677ca712c585a | |
16 | Patch0: %{name}-native-cpuid.patch | |
17 | Patch1: %{name}-ld_linux_strlen.patch | |
18 | Patch2: %{name}-datadir.patch | |
19 | URL: https://www.valgrind.org/ | |
20 | BuildRequires: autoconf >= 2.50 | |
21 | BuildRequires: automake >= 1:1.10 | |
22 | BuildRequires: gcc >= 5:3.0 | |
23 | %ifarch x32 | |
24 | BuildRequires: gcc-multilib-64 >= 5:3.0 | |
25 | %endif | |
26 | # check in configure.ac:882 AC_MSG_CHECKING([the GLIBC_VERSION version]) | |
27 | BuildRequires: glibc-devel >= 6:2.2 | |
28 | BuildRequires: libgomp-devel | |
29 | BuildRequires: libstdc++-devel | |
30 | %{?with_mpi:BuildRequires: mpi-devel} | |
31 | Obsoletes: valgrind-callgrind < 0.11 | |
32 | Obsoletes: valgrind-calltree < 0.10 | |
33 | ExclusiveArch: %{ix86} %{x8664} armv7hl armv7hnl armv7l ppc ppc64 s390x x32 aarch64 | |
34 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
35 | ||
36 | %define _noautostrip .*/vgpreload.*\\.so | |
37 | %define filterout_c -fstack-protector-strong | |
38 | # ld portion broken | |
39 | %undefine with_ccache | |
40 | ||
41 | %description | |
42 | Valgrind is a GPL'd system for debugging and profiling Linux programs. | |
43 | With the tools that come with Valgrind, you can automatically detect | |
44 | many memory management and threading bugs, avoiding hours of | |
45 | frustrating bug-hunting, making your programs more stable. You can | |
46 | also perform detailed profiling to help speed up your programs. | |
47 | ||
48 | %description -l pl.UTF-8 | |
49 | Valgrind jest systemem służącym do odpluskwiania i profilowania | |
50 | programów na Linuksie. Używając dostarczanych z nim narzędzi można | |
51 | automatycznie wykrywać wiele błędów związanych z zarządzaniem pamięcią | |
52 | i wątkowaniem, dzięki czemu unika się frustrującego polowania na | |
53 | błędy, a także czyni się programy bardziej stabilnymi. Możliwe jest | |
54 | również dokładne profilowanie, dzięki któremu programy zaczną szybciej | |
55 | pracować. | |
56 | ||
57 | %prep | |
58 | %setup -q | |
59 | %patch0 -p1 | |
60 | %patch1 -p1 | |
61 | %patch2 -p1 | |
62 | ||
63 | sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.ac | |
64 | ||
65 | %build | |
66 | %{__aclocal} | |
67 | %{__autoconf} | |
68 | %{__autoheader} | |
69 | %{__automake} | |
70 | ||
71 | ac_cv_path_GDB=/usr/bin/gdb \ | |
72 | %configure \ | |
73 | --enable-tls \ | |
74 | %{!?with_mpi:--with-mpicc=/bin/false} \ | |
75 | %if "%{_lib}" != "lib" | |
76 | --enable-only64bit \ | |
77 | %endif \ | |
78 | --enable-lto \ | |
79 | LDFLAGS="" # no strip! | |
80 | ||
81 | %{__make} | |
82 | ||
83 | %install | |
84 | rm -rf $RPM_BUILD_ROOT | |
85 | ||
86 | %{__make} install \ | |
87 | DESTDIR=$RPM_BUILD_ROOT | |
88 | ||
89 | %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc | |
90 | cp -p docs/index.pdf docs/valgrind_manual.pdf | |
91 | cp -p docs/index.ps docs/valgrind_manual.ps | |
92 | ||
93 | %clean | |
94 | rm -rf $RPM_BUILD_ROOT | |
95 | ||
96 | %files | |
97 | %defattr(644,root,root,755) | |
98 | %doc AUTHORS NEWS README README_MISSING_SYSCALL_OR_IOCTL | |
99 | %doc docs/html docs/valgrind_manual.pdf docs/valgrind_manual.ps | |
100 | %attr(755,root,root) %{_bindir}/callgrind_annotate | |
101 | %attr(755,root,root) %{_bindir}/callgrind_control | |
102 | %attr(755,root,root) %{_bindir}/cg_annotate | |
103 | %attr(755,root,root) %{_bindir}/cg_diff | |
104 | %attr(755,root,root) %{_bindir}/cg_merge | |
105 | %attr(755,root,root) %{_bindir}/ms_print | |
106 | %attr(755,root,root) %{_bindir}/valgrind | |
107 | %attr(755,root,root) %{_bindir}/valgrind-di-server | |
108 | %attr(755,root,root) %{_bindir}/valgrind-listener | |
109 | %attr(755,root,root) %{_bindir}/vgdb | |
110 | %dir %{_libdir}/%{name} | |
111 | %{_libdir}/%{name}/lib*-linux.a | |
112 | %if %{with mpi} | |
113 | # TODO: subpackage? | |
114 | %attr(755,root,root) %{_libdir}/%{name}/libmpiwrap-*-linux.so | |
115 | %endif | |
116 | %if "%{_libexecdir}" != "%{_libdir}" | |
117 | %dir %{_libexecdir}/%{name} | |
118 | %endif | |
119 | %attr(755,root,root) %{_libexecdir}/%{name}/*-linux | |
120 | %attr(755,root,root) %{_libexecdir}/%{name}/vgpreload_*-linux.so | |
121 | %{_libexecdir}/%{name}/*.xml | |
122 | %{_libexecdir}/%{name}/default.supp | |
123 | %{_datadir}/%{name} | |
124 | %{_includedir}/valgrind | |
125 | %{_mandir}/man1/callgrind_annotate.1* | |
126 | %{_mandir}/man1/callgrind_control.1* | |
127 | %{_mandir}/man1/cg_annotate.1* | |
128 | %{_mandir}/man1/cg_diff.1* | |
129 | %{_mandir}/man1/cg_merge.1* | |
130 | %{_mandir}/man1/ms_print.1* | |
131 | %{_mandir}/man1/valgrind.1* | |
132 | %{_mandir}/man1/valgrind-di-server.1* | |
133 | %{_mandir}/man1/valgrind-listener.1* | |
134 | %{_mandir}/man1/vgdb.1* | |
135 | %{_pkgconfigdir}/valgrind.pc |