From 3c71d0ed5c8cd0a4b51de31be12349eed6a47f13 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: May 29 2014 20:53:47 +0000 Subject: Update to 5.0 --- diff --git a/.gitignore b/.gitignore index 28ead46..e74b637 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /4.0.tar.gz +/5.0.tar.gz diff --git a/apitrace-4.0_gzguts.patch b/apitrace-4.0_gzguts.patch deleted file mode 100644 index b477b46..0000000 --- a/apitrace-4.0_gzguts.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -rupN apitrace-4.0/common/trace_file_zlib.cpp apitrace-4.0-new/common/trace_file_zlib.cpp ---- apitrace-4.0/common/trace_file_zlib.cpp 2013-05-02 09:05:06.000000000 +0200 -+++ apitrace-4.0-new/common/trace_file_zlib.cpp 2013-11-13 22:34:22.019159995 +0100 -@@ -31,7 +31,6 @@ - #include - - #include --#include - - // for lseek - #ifdef _WIN32 -@@ -44,6 +43,7 @@ - #include "os.hpp" - - #include -+#include - - - using namespace trace; -@@ -70,6 +70,7 @@ protected: - private: - gzFile m_gzFile; - double m_endOffset; -+ int raw_fd; - }; - - ZLibFile::ZLibFile(const std::string &filename, -@@ -86,18 +87,23 @@ ZLibFile::~ZLibFile() - - bool ZLibFile::rawOpen(const std::string &filename, File::Mode mode) - { -- m_gzFile = gzopen(filename.c_str(), -- (mode == File::Write) ? "wb" : "rb"); -+ FILE *file = fopen(filename.c_str(), -+ (mode == File::Write) ? "wb" : "rb") ; -+ if (file == NULL) -+ return false; -+ -+ raw_fd = fileno(file); -+ m_gzFile = gzdopen(raw_fd, -+ (mode == File::Write) ? "wb" : "rb"); - - if (mode == File::Read && m_gzFile) { - //XXX: unfortunately zlib doesn't support - // SEEK_END or we could've done: - //m_endOffset = gzseek(m_gzFile, 0, SEEK_END); - //gzrewind(m_gzFile); -- gz_state *state = (gz_state *)m_gzFile; -- off_t loc = lseek(state->fd, 0, SEEK_CUR); -- m_endOffset = lseek(state->fd, 0, SEEK_END); -- lseek(state->fd, loc, SEEK_SET); -+ off_t loc = lseek(raw_fd, 0, SEEK_CUR); -+ m_endOffset = lseek(raw_fd, 0, SEEK_END); -+ lseek(raw_fd, loc, SEEK_SET); - } - - return m_gzFile != NULL; -@@ -149,8 +155,7 @@ bool ZLibFile::rawSkip(size_t) - - int ZLibFile::rawPercentRead() - { -- gz_state *state = (gz_state *)m_gzFile; -- return 100 * (lseek(state->fd, 0, SEEK_CUR) / m_endOffset); -+ return 100 * (lseek(raw_fd, 0, SEEK_CUR) / m_endOffset); - } - - diff --git a/apitrace-4.0_libdir.patch b/apitrace-4.0_libdir.patch deleted file mode 100644 index 8f8f0bf..0000000 --- a/apitrace-4.0_libdir.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -rupN apitrace-4.0/CMakeLists.txt apitrace-4.0-new/CMakeLists.txt ---- apitrace-4.0/CMakeLists.txt 2013-11-13 21:25:26.198656786 +0100 -+++ apitrace-4.0-new/CMakeLists.txt 2013-11-13 21:29:41.600529255 +0100 -@@ -204,11 +204,11 @@ if (WIN32 OR APPLE) - set (LIB_ARCH_INSTALL_DIR lib) - else () - set (DOC_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME}) -- set (LIB_INSTALL_DIR lib/${CMAKE_PROJECT_NAME}) -+ set (LIB_INSTALL_DIR ${LIB_INSTALL_DIR}/${CMAKE_PROJECT_NAME}) - if (ARCH_SUBDIR) -- set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME}) -+ set (LIB_ARCH_INSTALL_DIR ${LIB_INSTALL_DIR}) - else () -- set (LIB_ARCH_INSTALL_DIR lib/${CMAKE_PROJECT_NAME}) -+ set (LIB_ARCH_INSTALL_DIR ${LIB_INSTALL_DIR}) - endif () - endif () - diff --git a/apitrace-4.0_resources.patch b/apitrace-4.0_resources.patch deleted file mode 100644 index f3f233b..0000000 --- a/apitrace-4.0_resources.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -rupN apitrace-4.0/cli/cli_resources.cpp apitrace-4.0-new/cli/cli_resources.cpp ---- apitrace-4.0/cli/cli_resources.cpp 2013-05-02 09:05:06.000000000 +0200 -+++ apitrace-4.0-new/cli/cli_resources.cpp 2013-11-13 23:01:42.288012440 +0100 -@@ -106,44 +77,13 @@ os::String - findScript(const char *scriptFilename) - { - os::String scriptPath; -- -- os::String processDir = os::getProcessName(); -- processDir.trimFilename(); -- -- // Try relative build directory -- // XXX: Just make build and install directory layout match --#if defined(APITRACE_SOURCE_DIR) -- scriptPath = APITRACE_SOURCE_DIR; -+ scriptPath = APITRACE_LIB_DIR; - scriptPath.join("scripts"); - scriptPath.join(scriptFilename); - if (scriptPath.exists()) { - return scriptPath; - } --#endif -- -- // Try relative install directory -- scriptPath = processDir; --#if defined(_WIN32) -- scriptPath.join("..\\lib\\scripts"); --#elif defined(__APPLE__) -- scriptPath.join("../lib/scripts"); --#else -- scriptPath.join("../lib/apitrace/scripts"); --#endif -- scriptPath.join(scriptFilename); -- if (scriptPath.exists()) { -- return scriptPath; -- } -- --#ifndef _WIN32 -- // Try absolute install directory -- scriptPath = APITRACE_SCRIPTS_INSTALL_DIR; -- scriptPath.join(scriptFilename); -- if (scriptPath.exists()) { -- return scriptPath; -- } --#endif -- -+ - std::cerr << "error: cannot find " << scriptFilename << " script\n"; - - return ""; -diff -rupN apitrace-4.0/CMakeLists.txt apitrace-4.0-new/CMakeLists.txt ---- apitrace-4.0/CMakeLists.txt 2013-11-13 23:06:27.739494611 +0100 -+++ apitrace-4.0-new/CMakeLists.txt 2013-11-13 23:07:09.199998235 +0100 -@@ -215,6 +215,8 @@ endif () - set (SCRIPTS_INSTALL_DIR ${LIB_INSTALL_DIR}/scripts) - set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers) - -+add_definitions(-DAPITRACE_LIB_DIR=\"${LIB_INSTALL_DIR}\") -+ - - ############################################################################## - diff --git a/apitrace-4.0_support-32bit-preload.patch b/apitrace-4.0_support-32bit-preload.patch deleted file mode 100644 index 93c54eb..0000000 --- a/apitrace-4.0_support-32bit-preload.patch +++ /dev/null @@ -1,107 +0,0 @@ -diff -rupN apitrace-4.0/cli/cli_resources.cpp apitrace-4.0-new/cli/cli_resources.cpp ---- apitrace-4.0/cli/cli_resources.cpp 2013-05-02 09:05:06.000000000 +0200 -+++ apitrace-4.0-new/cli/cli_resources.cpp 2014-03-07 22:09:42.186333361 +0100 -@@ -32,6 +32,45 @@ - - #include "cli_resources.hpp" - -+#include -+ -+// Stolen from elfio -+#define EI_NIDENT 16 -+#define EI_MAG0 0 -+#define EI_MAG1 1 -+#define EI_MAG2 2 -+#define EI_MAG3 3 -+#define EI_CLASS 4 -+#define ELFMAG0 0x7F -+#define ELFMAG1 'E' -+#define ELFMAG2 'L' -+#define ELFMAG3 'F' -+#define ELFCLASSNONE 0 -+#define ELFCLASS32 1 -+#define ELFCLASS64 2 -+ -+int get_elf_class(const char* filename) { -+ std::ifstream stream; -+ stream.open( filename, std::ios::in | std::ios::binary ); -+ if ( !stream ) { -+ return ELFCLASSNONE; -+ } -+ unsigned char e_ident[EI_NIDENT]; -+ -+ // Read ELF file signature -+ stream.seekg( 0 ); -+ stream.read( reinterpret_cast( &e_ident ), sizeof( e_ident ) ); -+ -+ // Is it ELF file? -+ if ( stream.gcount() != sizeof( e_ident ) || -+ e_ident[EI_MAG0] != ELFMAG0 || -+ e_ident[EI_MAG1] != ELFMAG1 || -+ e_ident[EI_MAG2] != ELFMAG2 || -+ e_ident[EI_MAG3] != ELFMAG3 ) { -+ return ELFCLASSNONE; -+ } -+ return e_ident[EI_CLASS]; -+} - - os::String - findProgram(const char*programFilename) -@@ -60,7 +99,7 @@ findProgram(const char*programFilename) - } - - os::String --findWrapper(const char *wrapperFilename) -+findWrapper(const char *wrapperFilename, const char *argv0) - { - os::String wrapperPath; - -@@ -83,8 +122,24 @@ findWrapper(const char *wrapperFilename) - #elif defined(__APPLE__) - wrapperPath.join("../lib/wrappers"); - #else -+ // If we are on a 64-bit architecture, support tracing 32-bit executables by preloading the appropriate shared library -+#ifdef __LP64__ -+ int elfclass = get_elf_class(argv0); -+ if(elfclass == ELFCLASS32) { -+ wrapperPath.join("../lib/apitrace/wrappers"); -+ if (!wrapperPath.exists()) { -+ std::cerr << "32-bit wrapper libraries not found, please install apitrace-libs.i686" << std::endl; -+ } -+ } else if(elfclass == ELFCLASS64) { -+ wrapperPath.join("../lib64/apitrace/wrappers"); -+ } else if(elfclass == ELFCLASSNONE) { -+ std::cerr << "error: failed to determine elf class for " << argv0 << ", assuming ELFCLASS64" << std::endl; -+ wrapperPath.join("../lib64/apitrace/wrappers"); -+ } -+#else - wrapperPath.join("../lib/apitrace/wrappers"); - #endif -+#endif - wrapperPath.join(wrapperFilename); - if (wrapperPath.exists()) { - return wrapperPath; -diff -rupN apitrace-4.0/cli/cli_resources.hpp apitrace-4.0-new/cli/cli_resources.hpp ---- apitrace-4.0/cli/cli_resources.hpp 2013-05-02 09:05:06.000000000 +0200 -+++ apitrace-4.0-new/cli/cli_resources.hpp 2014-02-22 23:47:43.917645323 +0100 -@@ -40,7 +40,7 @@ os::String - findScript(const char *name); - - os::String --findWrapper(const char *wrapperFilename); -+findWrapper(const char *wrapperFilename, const char *argv0); - - - #endif /* _CLI_RESOURCES_HPP_ */ -diff -rupN apitrace-4.0/cli/cli_trace.cpp apitrace-4.0-new/cli/cli_trace.cpp ---- apitrace-4.0/cli/cli_trace.cpp 2013-05-02 09:05:06.000000000 +0200 -+++ apitrace-4.0-new/cli/cli_trace.cpp 2014-03-07 22:06:51.312093308 +0100 -@@ -126,7 +126,7 @@ traceProgram(trace::API api, - return 1; - } - -- os::String wrapperPath = findWrapper(wrapperFilename); -+ os::String wrapperPath = findWrapper(wrapperFilename, argv[0]); - if (!wrapperPath.length()) { - std::cerr << "error: failed to find " << wrapperFilename << "\n"; - goto exit; diff --git a/apitrace-4.0_unbundle.patch b/apitrace-4.0_unbundle.patch deleted file mode 100644 index b46af3f..0000000 --- a/apitrace-4.0_unbundle.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -rupN apitrace-4.0/CMakeLists.txt apitrace-4.0-new/CMakeLists.txt ---- apitrace-4.0/CMakeLists.txt 2013-05-02 09:05:06.000000000 +0200 -+++ apitrace-4.0-new/CMakeLists.txt 2013-11-13 22:45:17.960075853 +0100 -@@ -217,53 +217,21 @@ set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INST - - - ############################################################################## --# Bundled dependencies --# --# We always use the bundled zlib, libpng, and snappy sources: --# - on Windows to make it easy to deploy the wrappers DLLs --# - on unices to prevent symbol collisions when tracing applications that link --# against other versions of these libraries -- --set (ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib) --set (ZLIB_LIBRARIES z_bundled) --add_subdirectory (thirdparty/zlib) - -+find_package (ZLIB REQUIRED) - include_directories (${ZLIB_INCLUDE_DIRS}) - --set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) --set (SNAPPY_LIBRARIES snappy_bundled) --add_subdirectory (thirdparty/snappy) -- -+set (SNAPPY_INCLUDE_DIRS "") -+set (SNAPPY_LIBRARIES -lsnappy) - include_directories (${SNAPPY_INCLUDE_DIRS}) - --set (PNG_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng) --set (PNG_DEFINITIONS "") --set (PNG_LIBRARIES png_bundled) -- --add_subdirectory (thirdparty/libpng) -- --if (MSVC) -- add_subdirectory (thirdparty/getopt) -- include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/getopt) -- set (GETOPT_LIBRARIES getopt_bundled) --endif () -- --if (WIN32) -- add_subdirectory (thirdparty/less) -- add_subdirectory (thirdparty/directxtex) --endif () -+find_package (PNG REQUIRED) -+include_directories (${PNG_INCLUDE_DIR}) - --# Always use bundled QJSon. --# - The packaged versions QJson are very old, and do not support NaN/Infinity. --# - To make it easier to build the GUI on Windows and MacOSX, as there are no --# binaries at all. - if (QT4_FOUND) - add_definitions (-DQJSON_EXPORT=) -- add_subdirectory (thirdparty/qjson) -- set (QJSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty) -- set (QJSON_LIBRARY_DIRS) -- set (QJSON_LIBRARIES qjson_bundled) -- set (QJSON_FOUND TRUE) -+ find_package (QJSON REQUIRED) -+ include_directories (${QJSON_INCLUDE_DIRS}) - endif () - - # We use bundled headers for all Khronos APIs, to guarantee support for both diff --git a/apitrace-5.0_dlsym.patch b/apitrace-5.0_dlsym.patch new file mode 100644 index 0000000..5f39153 --- /dev/null +++ b/apitrace-5.0_dlsym.patch @@ -0,0 +1,30 @@ +diff -rupN apitrace-5.0/dispatch/glproc_gl.cpp apitrace-5.0-new/dispatch/glproc_gl.cpp +--- apitrace-5.0/dispatch/glproc_gl.cpp 2014-05-03 00:22:02.000000000 +0200 ++++ apitrace-5.0-new/dispatch/glproc_gl.cpp 2014-05-29 22:47:27.403694537 +0200 +@@ -160,11 +160,6 @@ logSymbol(const char *name, void *ptr) { + } + + +-#ifdef __GLIBC__ +-extern "C" void * __libc_dlsym(void *, const char *); +-#endif +- +- + /* + * Protect against dlsym interception. + * +@@ -193,13 +188,12 @@ _dlsym(void *handle, const char *symbol) + if (!dlsym_ptr) { + void *libdl_handle = _dlopen("libdl.so.2", RTLD_LOCAL | RTLD_NOW); + if (libdl_handle) { +- dlsym_ptr = (PFN_DLSYM)__libc_dlsym(libdl_handle, "dlsym"); ++ dlsym_ptr = (PFN_DLSYM)dlvsym(libdl_handle, "dlsym", "GLIBC_2.2.5"); + } + if (!dlsym_ptr) { + os::log("apitrace: error: failed to look up real dlsym\n"); + return NULL; + } +- + logSymbol("dlsym", (void*)dlsym_ptr); + } + diff --git a/apitrace-5.0_gzguts.patch b/apitrace-5.0_gzguts.patch new file mode 100644 index 0000000..804b0eb --- /dev/null +++ b/apitrace-5.0_gzguts.patch @@ -0,0 +1,68 @@ +diff -rupN apitrace-5.0/common/trace_file_zlib.cpp apitrace-5.0-new/common/trace_file_zlib.cpp +--- apitrace-5.0/common/trace_file_zlib.cpp 2014-05-03 00:22:02.000000000 +0200 ++++ apitrace-5.0-new/common/trace_file_zlib.cpp 2014-05-13 18:31:56.866095617 +0200 +@@ -31,7 +31,6 @@ + #include + + #include +-#include + + // for lseek + #ifdef _WIN32 +@@ -44,7 +43,7 @@ + #include "os.hpp" + + #include +- ++#include + + using namespace trace; + +@@ -70,6 +69,7 @@ protected: + private: + gzFile m_gzFile; + double m_endOffset; ++ int raw_fd; + }; + + ZLibFile::ZLibFile(const std::string &filename, +@@ -86,18 +86,23 @@ ZLibFile::~ZLibFile() + + bool ZLibFile::rawOpen(const std::string &filename, File::Mode mode) + { +- m_gzFile = gzopen(filename.c_str(), +- (mode == File::Write) ? "wb" : "rb"); ++ FILE *file = fopen(filename.c_str(), ++ (mode == File::Write) ? "wb" : "rb") ; ++ if (file == NULL) ++ return false; ++ ++ raw_fd = fileno(file); ++ m_gzFile = gzdopen(raw_fd, ++ (mode == File::Write) ? "wb" : "rb"); + + if (mode == File::Read && m_gzFile) { + //XXX: unfortunately zlib doesn't support + // SEEK_END or we could've done: + //m_endOffset = gzseek(m_gzFile, 0, SEEK_END); + //gzrewind(m_gzFile); +- gz_state *state = (gz_state *)m_gzFile; +- off_t loc = lseek(state->fd, 0, SEEK_CUR); +- m_endOffset = lseek(state->fd, 0, SEEK_END); +- lseek(state->fd, loc, SEEK_SET); ++ off_t loc = lseek(raw_fd, 0, SEEK_CUR); ++ m_endOffset = lseek(raw_fd, 0, SEEK_END); ++ lseek(raw_fd, loc, SEEK_SET); + } + + return m_gzFile != NULL; +@@ -149,8 +154,7 @@ bool ZLibFile::rawSkip(size_t) + + int ZLibFile::rawPercentRead() + { +- gz_state *state = (gz_state *)m_gzFile; +- return int(100 * (lseek(state->fd, 0, SEEK_CUR) / m_endOffset)); ++ return 100 * (lseek(raw_fd, 0, SEEK_CUR) / m_endOffset); + } + + diff --git a/apitrace-5.0_unbundle.patch b/apitrace-5.0_unbundle.patch new file mode 100644 index 0000000..5968747 --- /dev/null +++ b/apitrace-5.0_unbundle.patch @@ -0,0 +1,56 @@ +diff -rupN apitrace-5.0/CMakeLists.txt apitrace-5.0-new/CMakeLists.txt +--- apitrace-5.0/CMakeLists.txt 2014-05-03 00:22:02.000000000 +0200 ++++ apitrace-5.0-new/CMakeLists.txt 2014-05-13 19:09:23.620723212 +0200 +@@ -257,34 +257,19 @@ set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INST + # - on unices to prevent symbol collisions when tracing applications that link + # against other versions of these libraries + +-set (ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib) +-set (ZLIB_LIBRARIES z_bundled) +-add_subdirectory (thirdparty/zlib) +- ++find_package (ZLIB REQUIRED) + include_directories (${ZLIB_INCLUDE_DIRS}) + +-set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) +-set (SNAPPY_LIBRARIES snappy_bundled) +-add_subdirectory (thirdparty/snappy) +- ++set (SNAPPY_INCLUDE_DIRS "") ++set (SNAPPY_LIBRARIES -lsnappy) + include_directories (${SNAPPY_INCLUDE_DIRS}) + + set (PNG_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng) + set (PNG_DEFINITIONS "") + set (PNG_LIBRARIES png_bundled) + +-add_subdirectory (thirdparty/libpng) +- +-if (MSVC) +- add_subdirectory (thirdparty/getopt) +- include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/getopt) +- set (GETOPT_LIBRARIES getopt_bundled) +-endif () +- +-if (WIN32) +- add_subdirectory (thirdparty/less) +- add_subdirectory (thirdparty/directxtex) +-endif () ++find_package (PNG REQUIRED) ++include_directories (${PNG_INCLUDE_DIR}) + + if (CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") + add_subdirectory (thirdparty/libbacktrace) +@@ -304,10 +289,8 @@ set (MD5_LIBRARIES md5_bundled) + if (QT4_FOUND) + add_definitions (-DQJSON_EXPORT=) + add_subdirectory (thirdparty/qjson) +- set (QJSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty) +- set (QJSON_LIBRARY_DIRS) +- set (QJSON_LIBRARIES qjson_bundled) +- set (QJSON_FOUND TRUE) ++ find_package (QJSON REQUIRED) ++ include_directories (${QJSON_INCLUDE_DIRS}) + endif () + + # We use bundled headers for all Khronos APIs, to guarantee support for both diff --git a/apitrace.spec b/apitrace.spec index 13ccddc..4d199c4 100644 --- a/apitrace.spec +++ b/apitrace.spec @@ -1,22 +1,18 @@ Name: apitrace -Version: 4.0 -Release: 5%{?dist} +Version: 5.0 +Release: 1%{?dist} Summary: Tools for tracing OpenGL License: MIT URL: http://apitrace.github.io/ Source0: https://github.com/apitrace/apitrace/archive/%{version}.tar.gz Source1: qapitrace.desktop -# Don't bundle any libraries (not upstreamable, unless upstream reconsiders bundling libraries) -Patch0: apitrace-4.0_unbundle.patch -# Use LIB_INSTALL_DIR (upstreamable) -Patch1: apitrace-4.0_libdir.patch -# Search for resources in the correct place (the APITRACE_LIB_DIR macro could be adopted upstream) -Patch2: apitrace-4.0_resources.patch -# Remove gzguts.h requirement (not upstreamable, needed for Patch0) -Patch3: apitrace-4.0_gzguts.patch -# Support tracing 32bit binaries on 64bit -Patch4: apitrace-4.0_support-32bit-preload.patch +# Don't bundle libraries, except libbacktrace +Patch0: apitrace-5.0_unbundle.patch +# Remove gzguts.h requirement (needed for Patch0) +Patch1: apitrace-5.0_gzguts.patch +# Avoid using private glibc symbol +Patch2: apitrace-5.0_dlsym.patch BuildRequires: cmake BuildRequires: qtwebkit-devel @@ -30,6 +26,11 @@ Requires: %{name}-libs%{_isa} = %{version}-%{release} # scripts/snapdiff.py Requires: python-pillow +# See http://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions +Provides: bundled(md5-plumb) +# See https://fedorahosted.org/fpc/ticket/429 +Provides: bundled(libbacktrace) + %description apitrace consists of a set of tools to: @@ -60,11 +61,9 @@ This package contains qapitrace, the Graphical frontend for apitrace. %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 -%patch4 -p1 -# Remove bundled libraries, except khronos headers -rm -rf `ls -1 thirdparty | grep -v khronos` +# Remove bundled libraries, except khronos headers and libbacktrace +rm -rf `ls -1 thirdparty | egrep -v "(khronos|md5|libbacktrace)"` # Fix shebangs find scripts -name '*.py' | xargs sed -i '1s|^#!.*python|#!%{__python}|' @@ -112,6 +111,9 @@ chmod 0644 %{buildroot}%{_libdir}/%{name}/scripts/highlight.py %changelog +* Tue May 13 2014 Sandro Mani - 5.0-1 +- Update to 5.0 + * Fri Mar 07 2014 Sandro Mani - 4.0-5 - Split off libs package - Allow tracing 32bit binaries on 64bit diff --git a/sources b/sources index 0a4b5b8..3c3e2dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -57d9c353c20972990ca08129d48667cc 4.0.tar.gz +b9713d4c210ca9b3398f6424626d0b42 5.0.tar.gz