diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f01a145 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/udis86-1.7.tar.gz +/udis86-5c60189.tar.bz2 +/udis86-1.7.1.tar.gz +/udis86-*.src.rpm +.build-*.log +/udis86-1.7.2.tar.gz +/udis86-56ff6c8.tar.xz diff --git a/Makefile b/Makefile deleted file mode 100644 index 9172e96..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: udis86 -# $Id$ -NAME := udis86 -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/sources b/sources index e69de29..1d6ccea 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +0993ed97d0513bf2005b067401967e8e udis86-56ff6c8.tar.xz diff --git a/udis86-ax_prog_sphinx_version.patch b/udis86-ax_prog_sphinx_version.patch new file mode 100644 index 0000000..6c67e4f --- /dev/null +++ b/udis86-ax_prog_sphinx_version.patch @@ -0,0 +1,12 @@ +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 new file mode 100644 index 0000000..51d9800 --- /dev/null +++ b/udis86-docs_manual_Makefile.am.patch @@ -0,0 +1,37 @@ +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 new file mode 100644 index 0000000..e2901f0 --- /dev/null +++ b/udis86-symresolve.patch @@ -0,0 +1,16 @@ +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 new file mode 100644 index 0000000..87a0738 --- /dev/null +++ b/udis86-ud_opcode.patch @@ -0,0 +1,30 @@ +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 new file mode 100644 index 0000000..4c91e18 --- /dev/null +++ b/udis86.spec @@ -0,0 +1,205 @@ +%global gitrev 56ff6c8 + +Name: udis86 +Version: 1.7.2 +Release: 31.%{gitrev}%{?dist} +Summary: A disassembler library for x86 and x86-64 + +License: BSD-2-Clause +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 +BuildRequires: libtool +BuildRequires: python +BuildRequires: python3-sphinx + +%description +udis86 is a disassembler library (libudis86) for x86 and x86-64. +The primary intent is to aid binary code analysis. + +%package devel +Summary: Development files for %{name} +Requires: %{name} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +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 +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 {} ';' +# udis86 overrides "docdir" from automake to datadir/docs +rm -rf %{buildroot}%{_datadir}/docs +rm -rf %{buildroot}%{_docdir} + + +%ldconfig_scriptlets + +%files +%{_bindir}/udcli +%{_libdir}/*.so.* + +%files devel +%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 + +* Mon Aug 18 2014 Fedora Release Engineering - 1.7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 1.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Sep 02 2013 Scott Tsai 1.7.2-1 +- upstream 1.7.2 + +* Sun Aug 04 2013 Fedora Release Engineering - 1.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Jun 01 2013 Scott Tsai 1.7.1-1 +- upstream 1.7.1 + +* Fri Feb 15 2013 Fedora Release Engineering - 1.7-8.5c60189 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Nov 26 2012 Scott Tsai 1.7-7 +- Upstream 5c60189 + +* Sun Jul 22 2012 Fedora Release Engineering - 1.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 1.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 1.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Dec 04 2009 Scott Tsai 1.7-3 +- Actually remove commented out requires line +- Move check section after install section +- Place udcli in the main package instead of -devel +- Fix source file permissions + +* Thu Dec 03 2009 Scottt Tsai 1.7-2 +- Fix source url +- Remove commented out requires line +- Fix summary +- Move "make check" to check section +- Mark doc files instead of relying on make install + +* Thu Dec 03 2009 Scott Tsai 1.7-1 +- upstream 1.7