diff --git a/valgrind/valgrind.spec b/valgrind/valgrind.spec new file mode 100644 index 0000000..81076a1 --- /dev/null +++ b/valgrind/valgrind.spec @@ -0,0 +1,383 @@ + + +%if 0%{?!make_build:1} +%define make_build make -O %{?_smp_mflags} V=1 VERBOSE=1 +%endif + +# during building the major version of glibc is built into the suppression file +%define glibc_main_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut -d. -f1) +%define glibc_major_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut -d. -f2) +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "client-headers" +%define psuffix -client-headers-source +%endif +%bcond_without docs +Name: valgrind%{?psuffix} +Version: 3.26.0 +Release: 0 +Summary: Memory Management Debugger +License: GFDL-1.2-only AND GPL-3.0-or-later +Group: Development/Tools/Debuggers +URL: https://valgrind.org/ +Source0: https://sourceware.org/pub/valgrind/valgrind-%{version}.tar.bz2 +Source1: https://sourceware.org/pub/valgrind/valgrind-%{version}.tar.bz2.asc +Source2: valgrind.keyring +# https://bugs.kde.org/show_bug.cgi?id=390553 +# https://github.com/olafhering/valgrind/compare/olh-base-master...olh-fixes-master +Patch0: valgrind.xen.patch +# bko#276780 missing implementation for PINSRD +Patch1: VEX-x86-pinsrd.patch +Patch10: dhat-use-datadir.patch +BuildRequires: automake +BuildRequires: pkgconfig +%if %{suse_version} == 1600 && !0%{?is_opensuse} +ExclusiveArch: aarch64 x86_64 ppc64le s390x +%else +ExclusiveArch: aarch64 %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7l armv7hl armv6l armv6hl riscv64 +%endif +%if "%{flavor}" == "" +Requires: (glibc >= %{glibc_main_version}.%{glibc_major_version} with glibc < %{glibc_main_version}.%{lua:print(rpm.expand("%{glibc_major_version}")+1)}) +Provides: callgrind = %{version} +Obsoletes: callgrind < %{version} +%if %{with docs} +BuildRequires: docbook-xsl-stylesheets +BuildRequires: libxslt +%endif +%if 0%{?suse_version} < 1500 +BuildRequires: gcc8-c++ +%global cpp_version -8 +%else +BuildRequires: gcc-c++ +%endif +%if !0%{?disable_32bit} +%ifarch x86_64 ppc64 +BuildRequires: glibc-devel-32bit +%if 0%{?suse_version} < 1500 +BuildRequires: gcc8-c++-32bit +%else +BuildRequires: gcc-c++-32bit +%endif +%endif +%endif +%endif + +%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. + +%package devel +Summary: Header files for for Valgrind +License: GPL-2.0-or-later +Group: Development/Tools/Debuggers +Requires: %{name} = %{version} +Requires: %{name}-client-headers = %{version} + +%description devel +This package contains the Valgrind header files. + +%package -n valgrind-client-headers +Summary: Header files for for Valgrind +# The client headers are permissively licensed under a BSD-style +# license. SPDX License Request filed. +# License: BSD-3-Clause +License: GFDL-1.2-only AND GPL-2.0-or-later +Group: Development/Tools/Debuggers +Provides: valgrind-devel:%{_includedir}/valgrind/valgrind.h +BuildArch: noarch + +%description -n valgrind-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. + +%ifarch x86_64 ppc64 s390x +%package 32bit +Summary: Memory Management Debugger +License: GPL-2.0-or-later +Group: Development/Tools/Debuggers +Requires: %{name} = %{version} +Provides: valgrind:%{_libdir}/valgrind/32bit-core.xml + +%description 32bit +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. + +%endif + +%prep +%autosetup -p1 -n valgrind-%{version} + +%build +%define _lto_cflags %{nil} +# The preloaded libs for intercepting rely on lazy binding (bsc#1208407) +export SUSE_ZNOW=0 +export FLAGS="%{optflags}" +# not a good idea to build valgrind with fortify, as it does not link glibc +FLAGS="${FLAGS/-D_FORTIFY_SOURCE=2/}" +FLAGS="${FLAGS/-D_FORTIFY_SOURCE=3/}" +FLAGS="${FLAGS/-fstack-protector-strong/}" +FLAGS="${FLAGS/-fstack-protector/}" +# -m64 / -m32 is set explicitly everywhere, do not override it +FLAGS="${FLAGS/-m64/}" +export CFLAGS="$FLAGS" +export CXXFLAGS="$FLAGS" +export FFLAGS="$FLAGS" +export CXX="g++%{?cpp_version}" +export CC="gcc%{?cpp_version}" +autoreconf -fi + +export GDB=%{_bindir}/gdb +%configure \ +%ifnarch ppc64 + --enable-lto=yes \ +%endif +%ifarch aarch64 + --enable-only64bit \ +%endif + %{nil} + +%if "%{flavor}" == "" +%make_build +%if %{with docs} +pushd docs + #make all-docs + # building the docs needs network access at the moment :-( + %make_build FAQ.txt man-pages html-docs +popd +%endif +%endif + +%install +%if "%{flavor}" == "" +%make_install +rm %{buildroot}/%{_libdir}/valgrind/lib*.a # drop unreproducible unused files to fix boo#1118163 + +mkdir -p %{buildroot}/%{_defaultdocdir} +if test -d %{buildroot}%{_datadir}/doc/valgrind; then + # Remove Postscript manual (20 MByte), there are PDF and HTML versions + rm %{buildroot}%{_datadir}/doc/valgrind/valgrind_manual.ps + mv %{buildroot}%{_datadir}/doc/valgrind %{buildroot}/%{_defaultdocdir} +fi +mkdir -p %{buildroot}%{_docdir}/%{name} + +rm %{buildroot}/%{_includedir}/valgrind/{valgrind,cachegrind,callgrind,dhat,drd,helgrind,memcheck}.h + +%else +install -m 755 -d %{buildroot}/%{_includedir}/valgrind +install -m 644 -t %{buildroot}/%{_includedir}/valgrind \ + include/valgrind.h \ + cachegrind/cachegrind.h \ + callgrind/callgrind.h \ + dhat/dhat.h \ + drd/drd.h \ + helgrind/helgrind.h \ + memcheck/memcheck.h +%endif + +%check +%if "%{flavor}" == "" +# OBS doesn't have a z13 +%ifnarch s390x %{arm} +# has too many spurious failures +# make %{?_smp_mflags} regtest +#patent pending self test +VALGRIND_LIB=$PWD/.in_place VALGRIND_LIB_INNER=$PWD/.in_place ./coregrind/valgrind %{_bindir}/perl -wc tests/vg_regtest +%endif +%endif + +%if "%{flavor}" == "" +%files devel +%dir %{_includedir}/valgrind +%{_includedir}/valgrind/config.h +%{_includedir}/valgrind/vki +%{_includedir}/valgrind/libvex*.h +%{_includedir}/valgrind/pub_tool*.h +%{_libdir}/pkgconfig/valgrind.pc + +%files -n valgrind +%license COPYING COPYING.DOCS +%{_bindir}/* +%doc README* NEWS AUTHORS +%doc %{_defaultdocdir}/%{name}/* +%{_mandir}/*/* +%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 +%{_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 +%ifarch riscv64 +%{_libexecdir}/valgrind/*-riscv64-linux +%endif +%dir %{_datadir}/valgrind +%{_datadir}/valgrind/dh_view* +%{_libexecdir}/valgrind/*-linux.so +%{_libexecdir}/valgrind/*.supp +%{_libexecdir}/valgrind/valgrind-monitor-def.py +%{_libexecdir}//valgrind/valgrind-monitor.py +%{_libexecdir}/valgrind/64bit-core.xml +%{_libexecdir}/valgrind/64bit-linux.xml +%{_libexecdir}/valgrind/64bit-sse.xml +%{_libexecdir}/valgrind/64bit-core-valgrind-s*.xml +%{_libexecdir}/valgrind/64bit-linux-valgrind-s*.xml +%{_libexecdir}/valgrind/64bit-sse-valgrind-s*.xml +%{_libexecdir}/valgrind/amd64-coresse-valgrind.xml +%{_libexecdir}/valgrind/amd64-linux-valgrind.xml +%{_libexecdir}/valgrind/power64-core-valgrind-s*.xml +%{_libexecdir}/valgrind/power64-core.xml +%{_libexecdir}/valgrind/power64-core2-valgrind-s*.xml +%{_libexecdir}/valgrind/power64-linux-valgrind-s*.xml +%{_libexecdir}/valgrind/power64-linux.xml +%{_libexecdir}/valgrind/64bit-avx-valgrind-s*.xml +%{_libexecdir}/valgrind/64bit-avx.xml +%{_libexecdir}/valgrind/amd64-avx-coresse-valgrind.xml +%{_libexecdir}/valgrind/amd64-avx-coresse.xml +%{_libexecdir}/valgrind/amd64-avx-linux-valgrind.xml +%{_libexecdir}/valgrind/amd64-avx-linux.xml +%{_libexecdir}/valgrind/mips64-cp0-valgrind-s*.xml +%{_libexecdir}/valgrind/mips64-cp0.xml +%{_libexecdir}/valgrind/mips64-cpu-valgrind-s*.xml +%{_libexecdir}/valgrind/mips64-cpu.xml +%{_libexecdir}/valgrind/mips64-fpu-valgrind-s*.xml +%{_libexecdir}/valgrind/mips64-fpu.xml +%{_libexecdir}/valgrind/mips64-linux-valgrind.xml +%{_libexecdir}/valgrind/mips64-linux.xml +%{_libexecdir}/valgrind/power-core-valgrind-s*.xml +%{_libexecdir}/valgrind/s390x-core64-valgrind-s*.xml +%{_libexecdir}/valgrind/s390x-core64.xml +%{_libexecdir}/valgrind/s390x-generic-valgrind.xml +%{_libexecdir}/valgrind/s390x-generic.xml +%{_libexecdir}/valgrind/s390x-linux64-valgrind-s*.xml +%{_libexecdir}/valgrind/s390x-linux64.xml +%{_libexecdir}/valgrind/s390x-vx-linux-valgrind.xml +%{_libexecdir}/valgrind/s390x-vx-linux.xml +# See https://bugzilla.suse.com/show_bug.cgi?id=1147071#c0 +%{_libexecdir}/valgrind/s390-acr-valgrind-s*.xml +%{_libexecdir}/valgrind/s390-acr.xml +%{_libexecdir}/valgrind/s390-fpr-valgrind-s*.xml +%{_libexecdir}/valgrind/s390-fpr.xml +%{_libexecdir}/valgrind/s390-vx-valgrind-s*.xml +%{_libexecdir}/valgrind/s390-vx.xml + +%ifarch x86_64 ppc64 s390x +%files 32bit +%endif + +%ifarch %{ix86} x86_64 +%if !0%{?disable_32bit} +%{_libexecdir}/valgrind/*-x86-linux +%endif +%endif + +%ifarch ppc ppc64 +%{_libexecdir}/valgrind/*-ppc32-linux +%endif +%{_libexecdir}/valgrind/mips-cp0-valgrind-s*.xml +%{_libexecdir}/valgrind/mips-cp0.xml +%{_libexecdir}/valgrind/mips-cpu-valgrind-s*.xml +%{_libexecdir}/valgrind/mips-cpu.xml +%{_libexecdir}/valgrind/mips-fpu-valgrind-s*.xml +%{_libexecdir}/valgrind/mips-fpu.xml +%{_libexecdir}/valgrind/mips-linux-valgrind.xml +%{_libexecdir}/valgrind/mips-linux.xml +%{_libexecdir}/valgrind/32bit-core.xml +%{_libexecdir}/valgrind/32bit-linux.xml +%{_libexecdir}/valgrind/32bit-sse.xml +%{_libexecdir}/valgrind/arm-core-valgrind-s*.xml +%{_libexecdir}/valgrind/arm-core.xml +%{_libexecdir}/valgrind/arm-vfpv3-valgrind-s*.xml +%{_libexecdir}/valgrind/arm-vfpv3.xml +%{_libexecdir}/valgrind/arm-with-vfpv3-valgrind.xml +%{_libexecdir}/valgrind/arm-with-vfpv3.xml +%{_libexecdir}/valgrind/32bit-core-valgrind-s*.xml +%{_libexecdir}/valgrind/32bit-linux-valgrind-s*.xml +%{_libexecdir}/valgrind/32bit-sse-valgrind-s*.xml +%{_libexecdir}/valgrind/i386-coresse-valgrind.xml +%{_libexecdir}/valgrind/i386-linux-valgrind.xml +%{_libexecdir}/valgrind/power-altivec-valgrind-s*.xml +%{_libexecdir}/valgrind/power-altivec.xml +%{_libexecdir}/valgrind/power-core.xml +%{_libexecdir}/valgrind/power-fpu-valgrind-s*.xml +%{_libexecdir}/valgrind/power-fpu.xml +%{_libexecdir}/valgrind/power-linux-valgrind-s*.xml +%{_libexecdir}/valgrind/power-linux.xml +%{_libexecdir}/valgrind/power-vsx-valgrind-s1.xml +%{_libexecdir}/valgrind/power-vsx-valgrind-s2.xml +%{_libexecdir}/valgrind/power-vsx.xml +%{_libexecdir}/valgrind/powerpc-altivec32l-valgrind.xml +%{_libexecdir}/valgrind/powerpc-altivec32l.xml +%{_libexecdir}/valgrind/powerpc-altivec64l-valgrind.xml +%{_libexecdir}/valgrind/powerpc-altivec64l.xml +%{_libexecdir}/valgrind/riscv64-cpu.xml +%{_libexecdir}/valgrind/riscv64-cpu-valgrind-s*.xml +%{_libexecdir}/valgrind/riscv64-fpu-valgrind-s*.xml +%{_libexecdir}/valgrind/riscv64-fpu.xml +%{_libexecdir}/valgrind/riscv64-linux.xml +%{_libexecdir}/valgrind/riscv64-linux-valgrind.xml + +%else + +%files -n valgrind-client-headers +%dir %{_includedir}/valgrind +%{_includedir}/valgrind/cachegrind.h +%{_includedir}/valgrind/callgrind.h +%{_includedir}/valgrind/dhat.h +%{_includedir}/valgrind/drd.h +%{_includedir}/valgrind/helgrind.h +%{_includedir}/valgrind/memcheck.h +%{_includedir}/valgrind/valgrind.h +%endif + +%changelog diff --git a/wayland/wayland.spec b/wayland/wayland.spec index 46e9c9f..2370520 100644 --- a/wayland/wayland.spec +++ b/wayland/wayland.spec @@ -1,10 +1,12 @@ -# SPDX-License-Identifier: MulanPSL-2.0 # SPDX-FileCopyrightText: (C) 2025 Institute of Software, Chinese Academy of Sciences (ISCAS) # SPDX-FileCopyrightText: (C) 2025 openRuyi Project Contributors +# SPDX-FileContributor: jingyupu +# +# SPDX-License-Identifier: MulanPSL-2.0 Name: wayland Version: 1.24.0 -Release: 1 +Release: %autorelease Summary: Wayland Compositor Infrastructure License: MIT URL: https://wayland.freedesktop.org/ @@ -104,4 +106,5 @@ This package contains the API documentation for Wayland. %{_mandir}/man3/wl*.3* %{_docdir}/%{name}/ -%changelog \ No newline at end of file +%changelog +%{?autochangelog} \ No newline at end of file