diff --git a/0001-docs-use-xsltproc-nonet-to-avoid-network-access-when.patch b/0001-docs-use-xsltproc-nonet-to-avoid-network-access-when.patch new file mode 100644 index 0000000..5d4e7a8 --- /dev/null +++ b/0001-docs-use-xsltproc-nonet-to-avoid-network-access-when.patch @@ -0,0 +1,26 @@ +From 0b1add3e48db9862b499ffab10087336c0738243 Mon Sep 17 00:00:00 2001 +From: Scott Tsai +Date: Mon, 26 Nov 2012 23:55:29 +0800 +Subject: [PATCH] docs: use "xsltproc --nonet" to avoid network access when + building the manual + +--- + docs/manual/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docs/manual/Makefile.am b/docs/manual/Makefile.am +index 256cf21..adc439d 100644 +--- a/docs/manual/Makefile.am ++++ b/docs/manual/Makefile.am +@@ -10,7 +10,7 @@ GENERATED = manual.html + all: + + manual.html: manual.xml manual.xsl +- xsltproc manual.xsl manual.xml > $@ ++ xsltproc --nonet manual.xsl manual.xml > $@ + + maintainer-clean-local: + rm -rf $(GENERATED) +-- +1.7.11.7 + diff --git a/0001-tests-disable-testgen-32-64-to-accomodate-yasm-1.2.0.patch b/0001-tests-disable-testgen-32-64-to-accomodate-yasm-1.2.0.patch new file mode 100644 index 0000000..ecf36de --- /dev/null +++ b/0001-tests-disable-testgen-32-64-to-accomodate-yasm-1.2.0.patch @@ -0,0 +1,33 @@ +From 28f91c54cb16895f5017a19ce0534ab284243d02 Mon Sep 17 00:00:00 2001 +From: Scott Tsai +Date: Mon, 26 Nov 2012 23:38:43 +0800 +Subject: [PATCH] tests: disable testgen{32,64} to accomodate yasm <= 1.2.0 + +--- + tests/Makefile.am | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 0254b2d..e801a19 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -38,9 +38,13 @@ yasm_tests = \ + testjmp \ + testobscure \ + testcorner \ +- testgen16 \ +- testgen32 \ +- testgen64 ++ testgen16 ++ ++# testgen{32,64} need yasm > 1.2.0 for "pmulhrw" typo fix in https://github.com/yasm/yasm/pull/65 ++# testgen__32.asm:345: error: instruction expected after label ++# testgen__64.asm:265: error: instruction expected after label ++# testgen32 \ ++# testgen64 + + no_yasm_tests = \ + testoverrun +-- +1.7.11.7 + diff --git a/udis86-ax_prog_sphinx_version.patch b/udis86-ax_prog_sphinx_version.patch deleted file mode 100644 index 6c67e4f..0000000 --- a/udis86-ax_prog_sphinx_version.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up udis86-56ff6c8/m4/ax_prog_sphinx_version.m4.orig udis86-56ff6c8/m4/ax_prog_sphinx_version.m4 ---- udis86-56ff6c8/m4/ax_prog_sphinx_version.m4.orig 2014-12-25 07:00:50.000000000 -0500 -+++ udis86-56ff6c8/m4/ax_prog_sphinx_version.m4 2019-05-01 14:20:35.330757713 -0400 -@@ -40,7 +40,7 @@ AC_DEFUN([AX_PROG_SPHINX],[ - - AC_MSG_CHECKING([for sphinx version]) - changequote(<<,>>) -- sphinx_version=`$SPHINX_BUILD -h 2>&1 | $GREP "^Sphinx v" | $SED -e 's/^.* v\([0-9]*\.[0-9]*\.[0-9]*\)/\1/'` -+ sphinx_version=`$SPHINX_BUILD --version 2>&1 | cut -d ' ' -f 2` - changequote([,]) - AC_MSG_RESULT($sphinx_version) - diff --git a/udis86-docs_manual_Makefile.am.patch b/udis86-docs_manual_Makefile.am.patch deleted file mode 100644 index 51d9800..0000000 --- a/udis86-docs_manual_Makefile.am.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -up udis86-56ff6c8/docs/manual/Makefile.am.orig udis86-56ff6c8/docs/manual/Makefile.am ---- udis86-56ff6c8/docs/manual/Makefile.am.orig 2014-12-25 07:00:50.000000000 -0500 -+++ udis86-56ff6c8/docs/manual/Makefile.am 2019-05-01 14:26:35.118265404 -0400 -@@ -19,8 +19,6 @@ MAINTAINERCLEANFILES = \ - Makefile.in \ - udis86.info - --if HAVE_SPHINX_DOC -- - html-local: - $(SPHINX_BUILD) -c $(srcdir) -b html $(srcdir) $(builddir)/html - -@@ -30,24 +28,6 @@ udis86.info: $(rst_sources) - - check-local: html-local - --else -- --udis86.info: $(rst_sources) --html-local udis86.info: -- @echo "" -- @echo "------------------------------------------------------------------" -- @echo "" -- @echo " Please make sure you have Sphinx (sphinx-doc.org) version 1.1.3" -- @echo " or above, to be able to build documentation." -- @echo "" -- @echo " You can also find documentation at http://udis86.sourceforge.net/" -- @echo "" -- @echo "------------------------------------------------------------------" -- @echo "" -- @exit 1 -- --endif -- - install-info-local: udis86.info - install-info --info-dir=$(infodir) $< - diff --git a/udis86-symresolve.patch b/udis86-symresolve.patch deleted file mode 100644 index e2901f0..0000000 --- a/udis86-symresolve.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up udis86-56ff6c8/tests/symresolve.c.orig udis86-56ff6c8/tests/symresolve.c ---- udis86-56ff6c8/tests/symresolve.c.orig 2014-12-25 07:00:50.000000000 -0500 -+++ udis86-56ff6c8/tests/symresolve.c 2019-05-01 12:20:20.597531514 -0400 -@@ -26,9 +26,9 @@ static void - dis_loop(struct ud *ud_obj) - { - while (ud_disassemble(ud_obj) != 0) { -- printf("%016llx %-16s %s\n", ud_insn_off(ud_obj), -- ud_insn_hex(ud_obj), -- ud_insn_asm(ud_obj)); -+ printf("%016lx %-16s %s\n", ud_insn_off(ud_obj), -+ ud_insn_hex(ud_obj), -+ ud_insn_asm(ud_obj)); - } - } - diff --git a/udis86-ud_opcode.patch b/udis86-ud_opcode.patch deleted file mode 100644 index 87a0738..0000000 --- a/udis86-ud_opcode.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up udis86-56ff6c8/scripts/ud_opcode.py.ud_opcode udis86-56ff6c8/scripts/ud_opcode.py ---- udis86-56ff6c8/scripts/ud_opcode.py.ud_opcode 2014-12-25 07:00:50.000000000 -0500 -+++ udis86-56ff6c8/scripts/ud_opcode.py 2019-05-01 11:57:38.643255204 -0400 -@@ -24,6 +24,8 @@ - # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - import os -+import struct -+import binascii - - # Some compatibility stuff for supporting python 2.x as well as python 3.x - def itemslist(dict): -@@ -549,11 +551,15 @@ class UdOpcodeTables(object): - def printWalk(tbl, indent=""): - entries = tbl.entries() - for k, e in entries: -+ if type(k) == float: -+ val = "0x" + binascii.hexlify(struct.pack(' %s" % (indent, k, e)) -+ self.log("%s |-<%s> %s" % (indent, val, e)) - printWalk(e, indent + " |") - elif isinstance(e, UdInsnDef): -- self.log("%s |-<%02x> %s" % (indent, k, e)) -+ self.log("%s |-<%s> %s" % (indent, val, e)) - printWalk(self.root) - - diff --git a/udis86.spec b/udis86.spec index 4c91e18..77f1933 100644 --- a/udis86.spec +++ b/udis86.spec @@ -2,21 +2,20 @@ Name: udis86 Version: 1.7.2 -Release: 31.%{gitrev}%{?dist} +Release: 4.%{gitrev}%{?dist} Summary: A disassembler library for x86 and x86-64 -License: BSD-2-Clause +Group: System Environment/Libraries +License: BSD URL: https://github.com/vmt/udis86 Source0: %{name}-%{gitrev}.tar.xz -Patch0: udis86-ud_opcode.patch -Patch1: udis86-symresolve.patch -Patch2: udis86-ax_prog_sphinx_version.patch -Patch3: udis86-docs_manual_Makefile.am.patch -BuildRequires: make +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + BuildRequires: libtool BuildRequires: python -BuildRequires: python3-sphinx +BuildRequires: yasm +BuildRequires: python-sphinx %description udis86 is a disassembler library (libudis86) for x86 and x86-64. @@ -24,6 +23,7 @@ The primary intent is to aid binary code analysis. %package devel Summary: Development files for %{name} +Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel @@ -33,128 +33,51 @@ developing applications that use %{name}. %prep %setup -q -n %{name}-%{gitrev} -%patch -P0 -p1 -b .ud_opcode -%patch -P1 -p1 -b .symresolve -%patch -P2 -p1 -b .origm4 -%patch -P3 -p1 -b .automake find '(' -name '*.c' -or -name '*.h' ')' -exec chmod 644 {} \; %build ./autogen.sh -%configure --disable-static \ - --enable-shared \ - --disable-silent-rules \ - --with-python=%{_bindir}/python3 \ - --without-yasm \ - --with-sphinx-build=%{_bindir}/sphinx-build-3 +%configure --disable-static --enable-shared sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool make %{?_smp_mflags} -make -C docs/manual html-local %install -make install DESTDIR=%{buildroot} -find %{buildroot} -name '*.la' -exec rm -f {} ';' +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' # udis86 overrides "docdir" from automake to datadir/docs rm -rf %{buildroot}%{_datadir}/docs rm -rf %{buildroot}%{_docdir} -%ldconfig_scriptlets +%check +# test the libudis86 we just built. this is the only part that requires yasm +export LD_LIBRARY_PATH=$(pwd)/libudis86/.libs +make check + + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig %files +%defattr(-,root,root,-) %{_bindir}/udcli %{_libdir}/*.so.* %files devel +%defattr(-,root,root,-) %doc docs/x86/optable.* docs/manual/html/*.html docs/manual/html/_static %{_includedir}/* %{_libdir}/*.so %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 1.7.2-31.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Tue Jan 20 2026 Fedora Release Engineering - 1.7.2-30.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Aug 27 2025 David Cantrell - 1.7.2-29.56ff6c8 -- Drop nasm dependency; build udis86 without yasm or nasm (#2390545) - -* Tue Aug 26 2025 David Cantrell - 1.7.2-28.56ff6c8 -- Drop yasm build requirement and replace with nasm (#2390545) - -* Fri Jul 25 2025 Fedora Release Engineering - 1.7.2-27.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jan 19 2025 Fedora Release Engineering - 1.7.2-26.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jul 20 2024 Fedora Release Engineering - 1.7.2-25.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 1.7.2-24.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 1.7.2-23.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 21 2023 Fedora Release Engineering - 1.7.2-22.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 03 2023 David Cantrell - 1.7.2-21.56ff6c8 -- Change License to BSD-2-Clause (SPDX expression) - -* Sat Jul 23 2022 Fedora Release Engineering - 1.7.2-20.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 1.7.2-19.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 1.7.2-18.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jan 27 2021 Fedora Release Engineering - 1.7.2-17.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 1.7.2-16.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 1.7.2-15.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 1.7.2-14.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed May 01 2019 David Cantrell - 1.7.2-13.56ff6c8 -- Fix building package on rawhide (#1676171) - -* Sun Feb 03 2019 Fedora Release Engineering - 1.7.2-12.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 1.7.2-11.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 1.7.2-10.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Aug 03 2017 Fedora Release Engineering - 1.7.2-9.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 1.7.2-8.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 1.7.2-7.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Feb 05 2016 Fedora Release Engineering - 1.7.2-6.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jun 19 2015 Fedora Release Engineering - 1.7.2-5.56ff6c8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - * Wed May 13 2015 Scott Tsai - 1.7.2-4.56ff6c8 - Package post 1.7.2 snapshot 56ff6c8