File valgrind.spec of Package valgrind

#
# spec file for package valgrind
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

%global  _buildshell /bin/bash
%define _lto_cflags %nil

Name:           valgrind
Version:        0
Release:        0
Summary:        Memory Management Debugger
License:        GPL-2.0+
Group:          Development/Tools/Debuggers
Url:            http://valgrind.org/
%define valgrind_revision_full 6c949b85762849c70b65db803eae547874edffa3
%define valgrind_revision_short 6c949b857
%define valgrind_date_unix 1703796606
%define valgrind_date_commit 2023-12-28 21:50:06 +0100

Patch1582727262: valgrind.track-xenversion-for-unversioned-interfaces.patch
Patch1582894143: valgrind.fix-XEN_SYSCTL_getdomaininfolist.patch
Patch1582728990: valgrind.rename-HVMOP_inject_trap-struct.patch
Patch1582734251: valgrind.adjust-name-of-domctl-mem_event_op_00000007.patch
Patch1543144063: valgrind.Remove-dead-code-from-XEN_DOMCTL_monitor_op.patch
Patch1542385256: valgrind.fix-xen_sysctl_numainfo-handling.patch
Patch1543142906: valgrind.Expect-earliest-version-for-versioned-xen-domctl-sys.patch
Patch1543143585: valgrind.fix-typo-in-xen-domctl-and-sysctl-header.patch
Patch1542904729: valgrind.remove-unhelpful-comments-from-xen-domctl.patch
Patch1542904867: valgrind.merge-two-xen-domctl-values-for-clearity.patch
Patch1542887649: valgrind.mention-sysctl-and-domctl-numbers-from-ancient-Xen-v.patch
Patch1542385263: valgrind.xen-include-vki-xen-physdev.h-earlier-in-vki-xen.h.patch
Patch1542385274: valgrind.xen-3.0-versioned-xen_domctl_settimeoffset.patch
Patch1542385270: valgrind.xen-3.0.4-versioned-xen_domctl_createdomain.patch
Patch1542385258: valgrind.xen-3.1-handle-IOCTL_GNTDEV_MAP_GRANT_REF.patch
Patch1542385259: valgrind.xen-3.1-handle-IOCTL_GNTDEV_UNMAP_GRANT_REF.patch
Patch1542385260: valgrind.xen-3.1-handle-IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR.patch
Patch1542385261: valgrind.xen-3.3-handle-IOCTL_GNTDEV_SET_MAX_GRANTS.patch
Patch1542385793: valgrind.xen-3.4-handle-XENMEM_set_pod_target-XENMEM_get_pod_.patch
Patch1542385782: valgrind.xen-3.4-versioned-hvmcontext_partial.patch
Patch1582735076: valgrind.xen-4.1-fix-XEN_DOMCTL_mem_event_op.patch
Patch1582730167: valgrind.xen-4.1-handle-XEN_HVMOP_inject_trap.patch
Patch1582730967: valgrind.xen-4.1-fix-xen_domctl_getdomaininfo-layout.patch
Patch1542385273: valgrind.xen-4.1-versioned-XEN_SYSCTL_numainfo.patch
Patch1542385262: valgrind.xen-4.2-handle-IOCTL_GNTALLOC_ALLOC_GREF.patch
Patch1542620989: valgrind.xen-4.2-handle-IOCTL_GNTALLOC_DEALLOC_GREF.patch
Patch1542621368: valgrind.xen-4.2-handle-IOCTL_GNTALLOC_SET_UNMAP_NOTIFY.patch
Patch1542385264: valgrind.xen-4.2-define-XENMEM-paging_op-and-sharing_op.patch
Patch1542385265: valgrind.xen-4.4-define-add_to_physmap_batch.patch
Patch1542385266: valgrind.xen-4.5-define-sysctl-psr_cmt_op.patch
Patch1542385267: valgrind.xen-4.5-define-GNTTABOP_cache_flush.patch
Patch1542385269: valgrind.xen-4.5-define-domctl-setvnumainfo.patch
Patch1542982815: valgrind.xen-4.5-define-domctl-psr_cmt_op.patch
Patch1542982979: valgrind.xen-4.5-define-domctl-arm_configure_domain.patch
Patch1542385271: valgrind.xen-4.5-define-XENMEM_get_vnumainfo.patch
Patch1542385272: valgrind.xen-4.5-versioned-XEN_SYSCTL_topologyinfo.patch
Patch1543008313: valgrind.xen-4.5-handle-all-versioned-domctl-ops.patch
Patch1542986331: valgrind.xen-4.6-adjust-case-value-for-VKI_XEN_DOMCTL_monitor.patch
Patch1542385275: valgrind.xen-4.6-new-sysctl-value.patch
Patch1542983121: valgrind.xen-4.6-versioned-xen_domctl_createdomain.patch
Patch1542385277: valgrind.xen-4.6-versioned-xen_domctl_settimeoffset.patch
Patch1542983211: valgrind.xen-4.6-define-domctl-psr_cat_op.patch
Patch1542385279: valgrind.xen-4.6-define-XENMEM_reserved_device_memory_map.patch
Patch1543007892: valgrind.xen-4.6-versioned-XEN_SYSCTL_numainfo.patch
Patch1542385282: valgrind.xen-4.6-handle-XEN_SYSCTL_cputopoinfo.patch
Patch1542385283: valgrind.xen-4.6-handle-XEN_SYSCTL_pcitopoinfo.patch
Patch1542385284: valgrind.xen-4.6-define-sysctl-psr_cat_op.patch
Patch1542983798: valgrind.xen-4.6-define-sysctl-tmem_op.patch
Patch1542385285: valgrind.xen-4.6-define-hypercall-xenpmu_op.patch
Patch1543008809: valgrind.xen-4.6-handle-all-versioned-domctl-ops.patch
Patch1542385294: valgrind.xen-4.7-new-sysctl-value.patch
Patch1543101569: valgrind.xen-4.7-fix-domctl-value-in-comment.patch
Patch1542984325: valgrind.xen-4.7-versioned-xen_arch_domainconfig.patch
Patch1542385287: valgrind.xen-4.7-define-XEN_VCPUAFFINITY_FORCE.patch
Patch1542385288: valgrind.xen-4.7-define-SCHEDOP-put-getvcpuinfo.patch
Patch1542385289: valgrind.xen-4.7-handle-domctl-soft_reset.patch
Patch1542385290: valgrind.xen-4.7-define-SCHEDOP_pin_override.patch
Patch1542385291: valgrind.xen-4.7-versioned-XEN_SYSCTL_get_cpu_featureset.patch
Patch1542385292: valgrind.xen-4.7-define-sysctl-get_cpu_levelling_caps.patch
Patch1542985577: valgrind.xen-4.7-define-sysctl-livepatch_op.patch
Patch1542385293: valgrind.xen-4.7-handle-XENVER_build_id.patch
Patch1543103505: valgrind.xen-4.7-handle-all-versioned-sysctl-ops.patch
Patch1542985886: valgrind.xen-4.8-new-domctl-value.patch
Patch1542385769: valgrind.xen-4.8-new-sysctl-value.patch
Patch1542385767: valgrind.xen-4.8-handle-IOCTL_GNTDEV_GRANT_COPY.patch
Patch1542385768: valgrind.xen-4.8-versioned-xen_domctl_monitor_op.patch
Patch1542986172: valgrind.xen-4.8-handle-all-versioned-domctl-ops.patch
Patch1543103608: valgrind.xen-4.8-handle-all-versioned-sysctl-ops.patch
Patch1542385773: valgrind.xen-4.9-new-domctl-value.patch
Patch1542385776: valgrind.xen-4.9-new-sysctl-value.patch
Patch1542385774: valgrind.xen-4.9-define-NULL-scheduler.patch
Patch1542385777: valgrind.xen-4.9-define-sysctl-gcov_op-which-replaces-coverag.patch
Patch1542385779: valgrind.xen-4.9-handle-IOCTL_PRIVCMD_DM_OP.patch
Patch1542986804: valgrind.xen-4.9-handle-IOCTL_PRIVCMD_RESTRICT.patch
Patch1542385778: valgrind.xen-4.9-handle-dm_op-hypercall.patch
Patch1542987046: valgrind.xen-4.9-handle-all-versioned-domctl-ops.patch
Patch1543104184: valgrind.xen-4.9-handle-all-versioned-sysctl-ops.patch
Patch1542385780: valgrind.xen-4.10-add-domctl-value.patch
Patch1542385788: valgrind.xen-4.10-new-sysctl-value.patch
Patch1542385781: valgrind.xen-4.10-handle-xen_domctl_assign_device.patch
Patch1542385783: valgrind.xen-4.10-versioned-hvmcontext_partial.patch
Patch1542987488: valgrind.xen-4.10-versioned-xen_domctl_monitor_op.patch
Patch1542987740: valgrind.xen-4.10-support-xen_domctl_set_gnttab_limits.patch
Patch1542987825: valgrind.xen-4.10-define-domctl-vuart_op.patch
Patch1542385791: valgrind.xen-4.10-define-sysctl-set_parameter.patch
Patch1542989554: valgrind.xen-4.10-handle-all-versioned-domctl-ops.patch
Patch1543106038: valgrind.xen-4.10-handle-all-versioned-sysctl-ops.patch
Patch1542385795: valgrind.xen-4.10.1-new-domctl-value-from-shim.patch
Patch1542385796: valgrind.xen-4.10.1-versioned-xen_domctl_getdomaininfo.patch
Patch1542989726: valgrind.xen-4.10.1-handle-all-versioned-domctl-ops.patch
Patch1542707209: valgrind.xen-4.11-new-domctl-value.patch
Patch1542705292: valgrind.xen-4.11-new-sysctl-value.patch
Patch1542707751: valgrind.xen-4.11-versioned-xen_domctl_monitor_op.patch
Patch1542708335: valgrind.xen-4.11-handle-IOCTL_PRIVCMD_MMAP_RESOURCE.patch
Patch1543105206: valgrind.xen-4.11-handle-all-versioned-domctl-ops.patch
Patch1543106160: valgrind.xen-4.11-handle-all-versioned-sysctl-ops.patch
Patch1542792801: valgrind.xen-4.12-new-domctl-value.patch
Patch1542709754: valgrind.xen-4.12-new-sysctl-value.patch
Patch1581099902: valgrind.xen-4.12-implement-sysctl-get_cpu_policy.patch
Patch1581099934: valgrind.xen-4.12-implement-domctl-get_cpu_policy.patch
Patch1542712038: valgrind.xen-4.12-handle-IOCTL_PRIVCMD_UNIMPLEMENTED.patch
Patch1542990270: valgrind.xen-4.12-versioned-xen_domctl_createdomain.patch
Patch1543106369: valgrind.xen-4.12-handle-all-versioned-domctl-ops.patch
Patch1543106441: valgrind.xen-4.12-handle-all-versioned-sysctl-ops.patch
Patch1580212198: valgrind.xen-4.13-new-domctl-value.patch
Patch1580213193: valgrind.xen-4.13-versioned-xen_domctl_createdomain.patch
Patch1582899301: valgrind.xen-4.13-versioned-xen_sysctl_getdomaininfolist.patch
Patch1581100741: valgrind.xen-4.13-obsolete-domctls.patch
Patch1581101120: valgrind.xen-4.13-implement-XEN_DOMCTL_set_cpu_policy.patch
Patch1580214102: valgrind.xen-4.13-handle-all-versioned-domctl-ops.patch
Patch1580214372: valgrind.xen-4.14-new-sysctl-value.patch
Patch1580214452: valgrind.xen-4.14-handle-all-versioned-sysctl-ops.patch
%if %suse_version > 1110
BuildRequires: python(abi) > 3.0
%endif
BuildRoot:      %_tmppath/%name-%version-build
BuildRequires:  automake
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  docbook_4
BuildRequires:  gcc-c++
BuildRequires:  libxslt
BuildRequires:  pkgconfig
ExclusiveArch:  aarch64 %ix86 x86_64 ppc ppc64 ppc64le s390x armv7l armv7hl armv6l armv6hl
%ifarch x86_64 ppc64
BuildRequires:  gcc-32bit
BuildRequires:  glibc-devel-32bit
%endif
%if %suse_version < 1320
BuildRequires:  gcc9
BuildRequires:  gcc9-c++
%ifarch x86_64 ppc64
BuildRequires:  gcc9-32bit
%endif
%endif
#
%define _vg_memcheck set -ex\
exe='%2'\
sexe="${exe//\\\//_}"\
vg="$(type -P valgrind)"\
x="$(type -P ${exe})"\
test -n "${vg}"\
test -n "${x}"\
exec \\\
	"${vg}" \\\
	--tool=memcheck \\\
	--error-limit=no \\\
	--log-file=/dev/shm/valgrind.memcheck.${sexe}.%%p.%%n.txt \\\
	--show-leak-kinds=all \\\
	--leak-check=full \\\
	--malloc-fill=0xa5 \\\
	--free-fill=0x5a \\\
	"${x}" "$@"\
%nil
#
%define vg_memcheck() tee %name.memcheck.%1.sh <<'_EOS_'\
#!/bin/bash\
%_vg_memcheck\
_EOS_\
%nil

%define _vg_massif(nye:) set -ex\
exe='%{-e:%{-e*}}'\
sexe="${exe//\\\//_}"\
vg="$(type -P valgrind)"\
x="$(type -P ${exe})"\
test -n "${vg}"\
test -n "${x}"\
mmap='%{-n:no}%{-y:yes}'\
case "${mmap}" in\
	yes) mode=mmap ; heap=yes ;;\
	no) mode=malloc ; heap=no ;;\
	*) exit 1\
esac\
exec \\\
	"${vg}" \\\
	--tool=massif \\\
	--log-file=/dev/shm/valgrind.massif.${mode}.${sexe}.%%p.%%n.txt \\\
	--heap=yes \\\
	--time-unit=B \\\
	--threshold=0.1 \\\
	--pages-as-heap="${heap}" \\\
	--depth=30 \\\
	--massif-out-file=/dev/shm/valgrind.massif.${mode}.${sexe}.%%p.%%n.out \\\
	"${x}" "$@"\
%nil
#
%define vg_malloc() tee %name.massif.malloc.%1.sh <<'_EOS_'\
#!/bin/bash\
%{_vg_massif -n -e %2}\
_EOS_\
%nil
#
%define vg_mmap() tee %name.massif.mmap.%1.sh <<'_EOS_'\
#!/bin/bash\
%{_vg_massif -y -e %2}\
_EOS_\
%nil

%description
Valgrind checks all memory operations in an application, like read,
write, malloc, new, free, and delete. Valgrind can find uses of
uninitialized memory, access to already freed memory, overflows,
illegal stack operations, memory leaks, and any illegal
new/malloc/free/delete commands. Another program in the package is
"cachegrind," a profiler based on the valgrind engine.

To use valgrind you should compile your application with "-g -O0"
compiler options. Afterwards you can use it with:

valgrind --tool=memcheck --sloppy-malloc=yes --leak-check=yes
--db-attach=yes my_application, for example.

More valgrind options can be listed via "valgrind --help". There is
also complete documentation in the %_docdir/valgrind/
directory. A debugged application runs slower and needs much more
memory, but is usually still usable. Valgrind is still in development,
but it has been successfully used to optimize several KDE applications.

%ifarch x86_64
%package x86
Summary:        Memory Management Debugger
Group:          Development/Tools/Debuggers
Requires:       %name = %version-%release
%description x86
%endif

%if 0%{?suse_version} > 1100
%package devel
Summary:        Memory Management Debugger
Group:          Development/Tools/Debuggers
Requires:       %name = %version-%release
Requires:       %name-client-headers = %version-%release

%description devel
Valgrind checks all memory operations in an application, like read,
write, malloc, new, free, and delete. Valgrind can find uses of
uninitialized memory, access to already freed memory, overflows,
illegal stack operations, memory leaks, and any illegal
new/malloc/free/delete commands. Another program in the package is
"cachegrind," a profiler based on the valgrind engine.

To use valgrind you should compile your application with "-g -O0"
compiler options. Afterwards you can use it with:

valgrind --tool=memcheck --sloppy-malloc=yes --leak-check=yes
--db-attach=yes my_application, for example.

More valgrind options can be listed via "valgrind --help". There is
also complete documentation in the %_docdir/valgrind/
directory. A debugged application runs slower and needs much more
memory, but is usually still usable. Valgrind is still in development,
but it has been successfully used to optimize several KDE applications.

%package client-headers
Summary:        Header files for for Valgrind
Group:          Development/Tools/Debuggers
Requires:       %name-devel = %version-%release
%description client-headers
This package contains the BSD-style licensed Valgrind header
files for inclusion into regular programs. The program can
detect if it is running under Valgrind and interact with the
Valgrind core and plugins.

%endif

%prep
rm -rf %_builddir/%name-%version
mv %_sourcedir/%name-%version %_builddir/%name-%version
%setup -c -T -D
pushd '.'
%patch1582727262 -p1
%patch1582894143 -p1
%patch1582728990 -p1
%patch1582734251 -p1
%patch1543144063 -p1
%patch1542385256 -p1
%patch1543142906 -p1
%patch1543143585 -p1
%patch1542904729 -p1
%patch1542904867 -p1
%patch1542887649 -p1
%patch1542385263 -p1
%patch1542385274 -p1
%patch1542385270 -p1
%patch1542385258 -p1
%patch1542385259 -p1
%patch1542385260 -p1
%patch1542385261 -p1
%patch1542385793 -p1
%patch1542385782 -p1
%patch1582735076 -p1
%patch1582730167 -p1
%patch1582730967 -p1
%patch1542385273 -p1
%patch1542385262 -p1
%patch1542620989 -p1
%patch1542621368 -p1
%patch1542385264 -p1
%patch1542385265 -p1
%patch1542385266 -p1
%patch1542385267 -p1
%patch1542385269 -p1
%patch1542982815 -p1
%patch1542982979 -p1
%patch1542385271 -p1
%patch1542385272 -p1
%patch1543008313 -p1
%patch1542986331 -p1
%patch1542385275 -p1
%patch1542983121 -p1
%patch1542385277 -p1
%patch1542983211 -p1
%patch1542385279 -p1
%patch1543007892 -p1
%patch1542385282 -p1
%patch1542385283 -p1
%patch1542385284 -p1
%patch1542983798 -p1
%patch1542385285 -p1
%patch1543008809 -p1
%patch1542385294 -p1
%patch1543101569 -p1
%patch1542984325 -p1
%patch1542385287 -p1
%patch1542385288 -p1
%patch1542385289 -p1
%patch1542385290 -p1
%patch1542385291 -p1
%patch1542385292 -p1
%patch1542985577 -p1
%patch1542385293 -p1
%patch1543103505 -p1
%patch1542985886 -p1
%patch1542385769 -p1
%patch1542385767 -p1
%patch1542385768 -p1
%patch1542986172 -p1
%patch1543103608 -p1
%patch1542385773 -p1
%patch1542385776 -p1
%patch1542385774 -p1
%patch1542385777 -p1
%patch1542385779 -p1
%patch1542986804 -p1
%patch1542385778 -p1
%patch1542987046 -p1
%patch1543104184 -p1
%patch1542385780 -p1
%patch1542385788 -p1
%patch1542385781 -p1
%patch1542385783 -p1
%patch1542987488 -p1
%patch1542987740 -p1
%patch1542987825 -p1
%patch1542385791 -p1
%patch1542989554 -p1
%patch1543106038 -p1
%patch1542385795 -p1
%patch1542385796 -p1
%patch1542989726 -p1
%patch1542707209 -p1
%patch1542705292 -p1
%patch1542707751 -p1
%patch1542708335 -p1
%patch1543105206 -p1
%patch1543106160 -p1
%patch1542792801 -p1
%patch1542709754 -p1
%patch1581099902 -p1
%patch1581099934 -p1
%patch1542712038 -p1
%patch1542990270 -p1
%patch1543106369 -p1
%patch1543106441 -p1
%patch1580212198 -p1
%patch1580213193 -p1
%patch1582899301 -p1
%patch1581100741 -p1
%patch1581101120 -p1
%patch1580214102 -p1
%patch1580214372 -p1
%patch1580214452 -p1
popd

if pushd subprojects/packagefiles 2>/dev/null
then
  for prj in *
  do
    if pushd "${prj}" > /dev/null
    then
      for f in *
      do
        test -f "${f}" || continue
        ln -vt "../../${prj}/" *
        break
      done
      popd > /dev/null
    fi
  done
  popd > /dev/null
fi

%build
test -x "$(type -p gcc)"   && CC=$_
test -x "$(type -p gcc-6)" && CC=$_
test -x "$(type -p gcc-7)" && CC=$_
test -x "$(type -p gcc-8)" && CC=$_
test -x "$(type -p gcc-9)" && CC=$_
test -x "$(type -p g++)"   && CXX=$_
test -x "$(type -p g++-6)" && CXX=$_
test -x "$(type -p g++-7)" && CXX=$_
test -x "$(type -p g++-8)" && CXX=$_
test -x "$(type -p g++-9)" && CXX=$_
export CC="`readlink -f $CC`"
export CPP="`readlink -f $CC` -E"
export CXX="`readlink -f $CXX`"
cflags=( %optflags )
# not a good idea to build valgrind with fortify, as it does not link glibc
cflags+=( '-U_FORTIFY_SOURCE' ) 
cflags+=( '-fno-stack-protector' )
cflags+=( '-ffat-lto-objects' )
cflags+=( '-Werror=implicit-fallthrough=2' )
cflags+=( '-Werror=implicit-function-declaration' )
cflags+=( '-Werror=return-type' )
CFLAGS="${cflags[@]}"
CXXFLAGS="${CFLAGS}"
bash -x autogen.sh
export GDB=%_bindir/gdb
%configure \
	--enable-lto=no \
%ifarch aarch64
           --enable-only64bit \
%endif
	%nil

%make_build
pushd docs
    #make all-docs
    # building the docs needs network access at the moment :-(
    make FAQ.txt man-pages html-docs
popd

%install
%make_install
find %buildroot -ls
mkdir -vp %buildroot/%_defaultdocdir
if test -d %buildroot%_datadir/doc/valgrind; then
     mv %buildroot%_datadir/doc/valgrind/html .
fi
rm -fv %buildroot%_libexecdir/%name/dh_view.*

pushd %buildroot%_bindir
tee %name.install-debuginfo.sh <<'_EOF_'
#!/bin/bash
set -ex
pkgs="
glibc-debuginfo
libgcrypt20-debuginfo
libglib-2_0-0-debuginfo
libgnutls28-debuginfo
libgnutls30-debuginfo
libgobject-2_0-0-debuginfo
libnl3-200-debuginfo
libnuma1-debuginfo
libopenssl1_0_0-debuginfo
libpixman-1-0-debuginfo
libspice-server1-debuginfo
libstdc++6-debuginfo
libtasn1-6-debuginfo
libvirt
libvirt-daemon-debuginfo
libvirt-daemon-driver-libxl
libvirt-daemon-driver-libxl-debuginfo
libvirt-libs-debuginfo
qemu-debuginfo
qemu-tools-debuginfo
qemu-x86
qemu-x86-debuginfo
valgrind
xen
xen-libs-debuginfo
xen-tools
xen-tools-debuginfo
"
exec $(type -P zypper) install ${pkgs}
_EOF_
#
%vg_memcheck qemu-dm %_libexecdir/xen/bin/qemu-dm
%vg_malloc   qemu-dm %_libexecdir/xen/bin/qemu-dm
%vg_mmap     qemu-dm %_libexecdir/xen/bin/qemu-dm
#
%vg_memcheck qemu-xen %_libexecdir/xen/bin/qemu-system-i386
%vg_malloc   qemu-xen %_libexecdir/xen/bin/qemu-system-i386
%vg_mmap     qemu-xen %_libexecdir/xen/bin/qemu-system-i386
#
%vg_memcheck qemu-system-i386 qemu-system-i386
%vg_malloc   qemu-system-i386 qemu-system-i386
%vg_mmap     qemu-system-i386 qemu-system-i386
#
%vg_memcheck xenstored xenstored
%vg_malloc   xenstored xenstored
%vg_mmap     xenstored xenstored
#
%vg_memcheck xl xl
%vg_malloc   xl xl
%vg_mmap     xl xl
#
%vg_memcheck libxl-save-helper %_libexecdir/xen/bin/libxl-save-helper
%vg_malloc   libxl-save-helper %_libexecdir/xen/bin/libxl-save-helper
%vg_mmap     libxl-save-helper %_libexecdir/xen/bin/libxl-save-helper
#
%vg_memcheck libvirtd libvirtd
%vg_malloc   libvirtd libvirtd
%vg_mmap     libvirtd libvirtd
#
%vg_memcheck claws-mail claws-mail
%vg_malloc   claws-mail claws-mail
%vg_mmap     claws-mail claws-mail
#
%vg_memcheck claws-mail-gtk3 claws-mail-gtk3
%vg_malloc   claws-mail-gtk3 claws-mail-gtk3
%vg_mmap     claws-mail-gtk3 claws-mail-gtk3
#
%vg_memcheck claws-mail-olh claws-mail-olh
%vg_malloc   claws-mail-olh claws-mail-olh
%vg_mmap     claws-mail-olh claws-mail-olh
#
%vg_memcheck xfwm4 xfwm4
%vg_malloc   xfwm4 xfwm4
%vg_mmap     xfwm4 xfwm4
#
%vg_memcheck xfce4-power-manager xfce4-power-manager
%vg_malloc   xfce4-power-manager xfce4-power-manager
%vg_mmap     xfce4-power-manager xfce4-power-manager
#
%vg_memcheck screen screen
%vg_malloc   screen screen
%vg_mmap     screen screen
#
chmod -v 755 *.sh
popd
mkdir -vp %buildroot%_unitdir
pushd %buildroot%_unitdir
tee %name-libvirtd.service <<'_EOF_'
[Unit]
Description=%name libvirtd
Requires=virtlogd.socket
Requires=virtlockd.socket
Wants=systemd-machined.service
Before=libvirt-guests.service
After=network.target
After=dbus.service
After=iscsid.service
After=apparmor.service
After=local-fs.target
After=remote-fs.target
After=systemd-logind.service
After=systemd-machined.service
After=xencommons.service
Documentation=man:libvirtd(8)
Documentation=https://libvirt.org

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/libvirtd
ExecStart=/usr/bin/%name-libvirtd.sh $LIBVIRTD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Also=virtlockd.socket
Also=virtlogd.socket
_EOF_
popd
%files
%license COPYING COPYING.DOCS
%doc html
%_bindir/*
%_mandir/*/*
%_unitdir/*
%dir %_libexecdir/valgrind
%ifarch aarch64
%_libexecdir/valgrind/*-arm64-linux
%endif
%ifarch x86_64
%_libexecdir/valgrind/*-amd64-linux
%endif
%ifarch %ix86
%_libexecdir/valgrind/*-x86-linux
%endif
%ifarch ppc ppc64
%_libexecdir/valgrind/*-ppc32-linux
%endif
%ifarch ppc64
%_libexecdir/valgrind/*-ppc64be-linux
%endif
%ifarch ppc64le
%_libexecdir/valgrind/*-ppc64le-linux
%endif
%ifarch s390x
%_libexecdir/valgrind/*-s390x-linux
%endif
%ifarch %arm
%_libexecdir/valgrind/*-arm-linux
%endif
%_libexecdir/valgrind/*.py
%_libexecdir/valgrind/*.so
%_libexecdir/valgrind/*.supp
%_libexecdir/valgrind/*.xml

%ifarch x86_64
%files x86
%dir %_libexecdir/valgrind
%_libexecdir/valgrind/*-x86-linux
%endif

%if 0%{?suse_version} > 1100
%files client-headers
%dir %_includedir/valgrind

%files devel
%endif
%dir %_libdir/valgrind
%_libdir/valgrind/lib*.a
%_includedir/valgrind
%_libdir/pkgconfig/valgrind.pc

%changelog
openSUSE Build Service is sponsored by