diff --git a/.devtoolset-4-dyninst.metadata b/.devtoolset-4-dyninst.metadata index 99d138b..cc83aab 100644 --- a/.devtoolset-4-dyninst.metadata +++ b/.devtoolset-4-dyninst.metadata @@ -1,4 +1,3 @@ -fbd3aa2b7d1fad7c6332d10d2b5d8f60622161eb SOURCES/dyninst-8.2.1.tar.gz -4c861851f7e5d09225a920e6d8987aa41e0dfe50 SOURCES/dyninst-docs-8.2.0.1.tar.gz -d202c4b34415da2d6958e2b218760c5ca08b26cf SOURCES/dyninst-testsuite-8.2.0.1.tar.gz -0294dad1e4021a87ad94462a5cead1effc469585 SOURCES/libdwarf-20140805.tar.gz +e6809c3f1605f343de6fd922edf0abefcba700f0 SOURCES/DyninstAPI-9.1.0.tgz +177dfd7c86ae7ebcf78e1409de6c302c8f48bbd3 SOURCES/Testsuite-9.1.0.tgz +7c464379be6e478526886d9ca26847f72cc2a4cb SOURCES/libdwarf-20150915.tar.gz diff --git a/.gitignore b/.gitignore index 8362f24..0892a4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -SOURCES/dyninst-8.2.1.tar.gz -SOURCES/dyninst-docs-8.2.0.1.tar.gz -SOURCES/dyninst-testsuite-8.2.0.1.tar.gz -SOURCES/libdwarf-20140805.tar.gz +SOURCES/DyninstAPI-9.1.0.tgz +SOURCES/Testsuite-9.1.0.tgz +SOURCES/libdwarf-20150915.tar.gz diff --git a/SOURCES/dyninst-export.patch b/SOURCES/dyninst-export.patch new file mode 100644 index 0000000..f01f32a --- /dev/null +++ b/SOURCES/dyninst-export.patch @@ -0,0 +1,11 @@ +diff -up DyninstAPI-9.1.0/dyninstAPI_RT/h/dyninstRTExport.h.export DyninstAPI-9.1.0/dyninstAPI_RT/h/dyninstRTExport.h +--- DyninstAPI-9.1.0/dyninstAPI_RT/h/dyninstRTExport.h.export 2016-03-09 12:53:59.440594409 -0500 ++++ DyninstAPI-9.1.0/dyninstAPI_RT/h/dyninstRTExport.h 2016-03-09 12:54:58.334974970 -0500 +@@ -116,6 +116,7 @@ DLLEXPORT extern dyntid_t (*DYNINST_pthr + DLLEXPORT extern unsigned int DYNINSTobsCostLow; + DLLEXPORT extern int libdyninstAPI_RT_init_localCause; + DLLEXPORT extern int libdyninstAPI_RT_init_localPid; ++DLLEXPORT extern int libdyninstAPI_RT_init_maxthreads; + DLLEXPORT extern int libdyninstAPI_RT_init_debug_flag; + DLLEXPORT extern struct DYNINST_bootstrapStruct DYNINST_bootstrap_info; + diff --git a/SPECS/dyninst.spec b/SPECS/dyninst.spec index 002e542..d49eec8 100644 --- a/SPECS/dyninst.spec +++ b/SPECS/dyninst.spec @@ -6,27 +6,19 @@ Name: %{?scl_prefix}dyninst Group: Development/Libraries Release: 3%{?dist} URL: http://www.dyninst.org -Version: 8.2.1 +Version: 9.1.0 Exclusiveos: linux #dyninst only knows the following architectures ExclusiveArch: %{ix86} x86_64 ppc ppc64 -# The source for this package was pulled from upstream's vcs. Use the -# following commands to generate the tarball: -# git clone http://git.dyninst.org/dyninst.git; cd dyninst -# git archive --format=tar.gz --prefix=dyninst/ v8.2.1 > dyninst-8.2.1.tar.gz -# git clone http://git.dyninst.org/docs.git; cd docs -# git archive --format=tar.gz --prefix=docs/ v8.2.0.1 > dyninst-docs-8.2.0.1.tar.gz -# git clone http://git.dyninst.org/testsuite.git; cd testsuite -# git archive --format=tar.gz --prefix=testsuite/ v8.2.0.1 > dyninst-testsuite-8.2.0.1.tar.gz -# Verify the commit ids with: -# gunzip -c dyninst-8.2.1.tar.gz | git get-tar-commit-id -# gunzip -c dyninst-docs-8.2.0.1.tar.gz | git get-tar-commit-id -# gunzip -c dyninst-testsuite-8.2.0.1.tar.gz | git get-tar-commit-id -Source0: dyninst-8.2.1.tar.gz -Source1: dyninst-docs-8.2.0.1.tar.gz -Source2: dyninst-testsuite-8.2.0.1.tar.gz -Source3: libdwarf-20140805.tar.gz +Source0: http://www.paradyn.org/release%{version}/DyninstAPI-%{version}.tgz +Source1: http://www.paradyn.org/release%{version}/Testsuite-%{version}.tgz +Patch1: dyninst-export.patch + +%global dyninst_base DyninstAPI-%{version} +%global testsuite_base Testsuite-%{version} + +Source3: libdwarf-20150915.tar.gz # XXX: temporarily bundled # BuildRequires: %{scl_prefix}libdwarf-devel >= 20111030 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -99,7 +91,8 @@ making sure that dyninst works properly. %prep %setup -q -n %{name}-%{version} -c %setup -q -T -D -a 1 -%setup -q -T -D -a 2 + +%patch1 -p0 -b .export # XXX: bundled libdwarf %setup -q -T -D -b 3 @@ -107,57 +100,61 @@ making sure that dyninst works properly. %build # bundled libdwarf build - assemble an .a archive, but built with -fPIC -pushd ../dwarf-20140805/libdwarf +pushd ../dwarf-20150915/libdwarf libdwarf_builddir=`pwd` %configure --disable-shared make %{?_smp_mflags} dwfpic=-fPIC popd -cd dyninst +cd %{dyninst_base} %cmake \ + -DENABLE_STATIC_LIBS=1 \ -DCMAKE_BUILD_TYPE:STRING=None \ -DINSTALL_LIB_DIR:PATH=%{_libdir}/dyninst \ -DINSTALL_INCLUDE_DIR:PATH=%{_includedir}/dyninst \ -DINSTALL_CMAKE_DIR:PATH=%{_libdir}/cmake/Dyninst \ -DLIBDWARF_LIBRARIES:FILEPATH=$libdwarf_builddir/libdwarf.a \ -DLIBDWARF_INCLUDE_DIR:PATH=$libdwarf_builddir \ + -DBoost_NO_BOOST_CMAKE=ON \ -DCMAKE_SKIP_RPATH:BOOL=YES make %{?_smp_mflags} # Hack to install dyninst nearby, so the testsuite can use it make DESTDIR=../install install -sed -i -e 's!%{_libdir}/dyninst!../install%{_libdir}/dyninst!' \ - ../install%{_libdir}/cmake/Dyninst/*.cmake +find ../install -name '*.cmake' -execdir \ + sed -i -e 's!%{_prefix}!../install&!' '{}' '+' -cd ../testsuite +cd ../%{testsuite_base} %cmake \ - -DDyninst_DIR:PATH=../install%{_libdir}/cmake/Dyninst \ + -DDyninst_DIR:PATH=$PWD/../install%{_libdir}/cmake/Dyninst \ -DINSTALL_DIR:PATH=%{_libdir}/dyninst/testsuite \ -DCMAKE_BUILD_TYPE:STRING=Debug \ + -DBoost_NO_BOOST_CMAKE=ON \ -DCMAKE_SKIP_RPATH:BOOL=YES make %{?_smp_mflags} %install -cd dyninst +cd %{dyninst_base} make DESTDIR=$RPM_BUILD_ROOT install -cd ../testsuite +# It doesn't install docs the way we want, so remove them. +# We'll just grab the pdfs later, directly from the build dir. +rm -v %{buildroot}%{_docdir}/*-%{version}.pdf + +cd ../%{testsuite_base} make DESTDIR=$RPM_BUILD_ROOT install mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d echo "%{_libdir}/dyninst" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-%{_arch}.conf -# Ugly hack to fix permissions -chmod 644 $RPM_BUILD_ROOT%{_includedir}/dyninst/* -chmod 644 $RPM_BUILD_ROOT%{_libdir}/dyninst/*.a - -# Uglier hack to mask testsuite files from debuginfo extraction. Running the +# Ugly hack to mask testsuite files from debuginfo extraction. Running the # testsuite requires debuginfo, so extraction is useless. However, debuginfo # extraction is still nice for the main libraries, so we don't want to disable # it package-wide. The permissions are restored by attr(755,-,-) in files. -chmod 644 $RPM_BUILD_ROOT%{_libdir}/dyninst/testsuite/* +find %{buildroot}%{_libdir}/dyninst/testsuite/ \ + -type f '!' -name '*.a' -execdir chmod 644 '{}' '+' %post -p /sbin/ldconfig %postun -p /sbin/ldconfig @@ -168,22 +165,21 @@ chmod 644 $RPM_BUILD_ROOT%{_libdir}/dyninst/testsuite/* %dir %{_libdir}/dyninst %{_libdir}/dyninst/*.so.* -%doc dyninst/COPYRIGHT -%doc dyninst/LGPL +%doc %{dyninst_base}/COPYRIGHT +%doc %{dyninst_base}/LGPL %config(noreplace) /etc/ld.so.conf.d/* %files doc %defattr(-,root,root,-) -%doc docs/dynC_API.pdf -%doc docs/DyninstAPI.pdf -%doc docs/dyninstAPI/examples/ -%doc docs/InstructionAPI.pdf -%doc docs/ParseAPI.pdf -%doc docs/PatchAPI.pdf -%doc docs/ProcControlAPI.pdf -%doc docs/StackwalkerAPI.pdf -%doc docs/SymtabAPI.pdf +%doc %{dyninst_base}/dynC_API/doc/dynC_API.pdf +%doc %{dyninst_base}/dyninstAPI/doc/dyninstAPI.pdf +%doc %{dyninst_base}/instructionAPI/doc/instructionAPI.pdf +%doc %{dyninst_base}/parseAPI/doc/parseAPI.pdf +%doc %{dyninst_base}/patchAPI/doc/patchAPI.pdf +%doc %{dyninst_base}/proccontrol/doc/proccontrol.pdf +%doc %{dyninst_base}/stackwalk/doc/stackwalk.pdf +%doc %{dyninst_base}/symtabAPI/doc/symtabAPI.pdf %files devel %defattr(-,root,root,-) @@ -198,12 +194,28 @@ chmod 644 $RPM_BUILD_ROOT%{_libdir}/dyninst/testsuite/* %files testsuite %defattr(-,root,root,-) -#%{_bindir}/parseThat +#{_bindir}/parseThat %dir %{_libdir}/dyninst/testsuite/ # Restore the permissions that were hacked out above, during install. %attr(755,root,root) %{_libdir}/dyninst/testsuite/* +%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Fri Mar 11 2016 Frank Ch. Eigler - 9.1.0-3 +- Export libdyninstAPI_RT_init_maxthreads (ref rhbz1315841/1316956) + +* Thu Feb 25 2016 Frank Ch. Eigler - 9.1.0-2 +- buildroot bump respin + +* Wed Jan 13 2016 Josh Stone - 9.1.0-1 +- Update to 9.1.0 + +* Mon Sep 21 2015 Josh Stone - 8.2.1-5 +- Rebuild for x86_64 only. + +* Mon Sep 21 2015 Josh Stone - 8.2.1-4 +- rhbz1261061: Make sure the system's Boost.cmake is not used. + * Wed Jan 07 2015 Josh Stone - 8.2.1-3 - Rebuild for x86_64 only.