Blob Blame Raw
Name:           acpica-tools
Version:        20160527
Release:        3%{?dist}
Summary:        ACPICA tools for the development and debug of ACPI tables

Group:          Development/Languages
License:        GPLv2
URL:            https://www.acpica.org/

Source0:        https://acpica.org/sites/acpica/files/acpica-unix2-%{version}.tar.gz
Source1:        https://acpica.org/sites/acpica/files/acpitests-unix-%{version}.tar.gz
Source2:        README
Source3:        iasl.1
Source4:        acpibin.1
Source5:        acpidump.1
Source6:        acpiexec.1
Source7:        acpihelp.1
Source8:        acpinames.1
Source9:        acpisrc.1
Source10:       acpixtract.1
Source11:       badcode.asl.result
Source12:       grammar.asl.result
Source13:       run-misc-tests.sh
Source14:       COPYING

Patch0:         debian-big_endian.patch
Patch1:         debian-unaligned.patch
Patch2:         name-miscompare.patch
Patch3:         asllookup-miscompare.patch
Patch4:         re-enable-big-endian.patch
Patch5:         DSDT-too-long.patch
Patch6:		add-nfit-subtable7.patch

BuildRequires:  bison patchutils flex

# The previous iasl package contained only a very small subset of these tools
# and it produced only the iasl package listed below; further, the pmtools
# package -- which provides acpidump -- also provides a /usr/sbin/acpixtract
# that we don't really want to collide with
Provides:       acpixtract >= 20120913-7
Provides:       iasl = %{version}-%{release}
Obsoletes:      iasl < 20120913-7

# The pmtools package provides an obsolete and deprecated version of the
# acpidump command from lesswatts.org which has now been taken off-line.
# ACPICA, however, is providing a new version and we again do not want to
# conflict with the command name.
Provides:       acpidump >= 20100513-5
Provides:       pmtools = %{version}-%{release}
Obsoletes:      pmtools < 20100513-5

%description
The ACPI Component Architecture (ACPICA) project provides an OS-independent
reference implementation of the Advanced Configuration and Power Interface
Specification (ACPI).  ACPICA code contains those portions of ACPI meant to
be directly integrated into the host OS as a kernel-resident subsystem, and
a small set of tools to assist in developing and debugging ACPI tables.

This package contains only the user-space tools needed for ACPI table
development, not the kernel implementation of ACPI.  The following commands
are installed:
   -- iasl: compiles ASL (ACPI Source Language) into AML (ACPI Machine
      Language), suitable for inclusion as a DSDT in system firmware.
      It also can disassemble AML, for debugging purposes.
   -- acpibin: performs basic operations on binary AML files (e.g.,
      comparison, data extraction)
   -- acpidump: write out the current contents of ACPI tables
   -- acpiexec: simulate AML execution in order to debug method definitions
   -- acpihelp: display help messages describing ASL keywords and op-codes
   -- acpinames: display complete ACPI name space from input AML
   -- acpisrc: manipulate the ACPICA source tree and format source files
      for specific environments
   -- acpixtract: extract binary ACPI tables from acpidump output (see
      also the pmtools package)

This version of the tools is being released under GPLv2 license.

%prep
%setup -q -n acpica-unix2-%{version}
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -

%patch0 -p1 -b .debian-big_endian
%patch1 -p1 -b .debian-unaligned
%patch2 -p1 -b .name-miscompare
%patch3 -p1 -b .asllookup-miscompare
%patch4 -p1 -b .re-enable-big-endian
%patch5 -p1 -b .DSDT-too-long
%patch6 -p1 -b .add-nfit-subtable7

cp -p %{SOURCE2} README
cp -p %{SOURCE3} iasl.1
cp -p %{SOURCE4} acpibin.1
cp -p %{SOURCE5} acpidump.1
cp -p %{SOURCE6} acpiexec.1
cp -p %{SOURCE7} acpihelp.1
cp -p %{SOURCE8} acpinames.1
cp -p %{SOURCE9} acpisrc.1
cp -p %{SOURCE10} acpixtract.1
cp -p %{SOURCE11} badcode.asl.result
cp -p %{SOURCE12} grammar.asl.result
cp -p %{SOURCE13} tests/run-misc-tests.sh
chmod a+x tests/run-misc-tests.sh
cp -p %{SOURCE14} COPYING

# remove spurious group write permissions from all files in tests directory
chmod -R g-w tests/


%build
make OPT_CFLAGS="%{optflags} -fno-strict-aliasing"


%install
# Install the binaries
mkdir -p %{buildroot}%{_bindir}
install -pD generate/unix/bin*/* %{buildroot}%{_bindir}/
mv %{buildroot}%{_bindir}/acpidump %{buildroot}%{_bindir}/acpidump-acpica
mv %{buildroot}%{_bindir}/acpixtract %{buildroot}%{_bindir}/acpixtract-acpica

# Install the man pages
mkdir -p %{buildroot}%{_mandir}/man1
install -pDm 0644 -p -D *.1 %{buildroot}%{_mandir}/man1/
mv %{buildroot}%{_mandir}/man1/acpixtract.1 \
   %{buildroot}%{_mandir}/man1/acpixtract-acpica.1
mv %{buildroot}%{_mandir}/man1/acpidump.1 \
   %{buildroot}%{_mandir}/man1/acpidump-acpica.1

%check
cd tests

# ASL tests
./aslts.sh                         # relies on non-zero exit
[ $? -eq 0 ] || exit 1

# misc tests
./run-misc-tests.sh %{buildroot}%{_bindir} %{version}

# Template tests
cd templates
make
if [ -f diff.log ]
then
    if [ -s diff.log ]
    then
        exit 1                  # implies errors occurred
    fi
fi
cd ..


%post
alternatives --install %{_bindir}/acpixtract acpixtract \
                       %{_bindir}/acpixtract-acpica 120 \
               --slave %{_mandir}/man1/acpixtract.1.gz acpixtract.1.gz \
                       %{_mandir}/man1/acpixtract-acpica.1.gz

alternatives --install %{_bindir}/acpidump acpidump \
                       %{_bindir}/acpidump-acpica 120 \
               --slave %{_mandir}/man1/acpidump.1.gz acpidump.1.gz \
                       %{_mandir}/man1/acpidump-acpica.1.gz


%postun
if [ ! -e %{_bindir}/acpixtract-acpica ]
then
    alternatives --remove acpixtract %{_bindir}/acpixtract-acpica
fi
if [ ! -e %{_bindir}/acpidump-acpica ]
then
    alternatives --remove acpidump %{_bindir}/acpidump-acpica
fi


%files
%doc changes.txt source/compiler/new_table.txt
%doc README COPYING
%{_bindir}/*
%{_mandir}/*/*


%changelog
* Tue Jul 24 2018 Al Stone <ahs3@redhat.com> - 20160527-3
- Added in support for NFIT subtable type 7 with an additional patch.
  Resolves: #1600053.

* Thu Jul 12 2018 Al Stone <ahs3@redhat.com> - 20160527-2
- Corrected the use of percent signs in the change log and made sure
  they are all properly escaped.  Resolves: #1425899.

* Tue Jun 14 2016 Dean Nelson <dnelson@redhat.com> - 20160527-1
- Update to the latest upstream version of acpica as requested by RHBZ 1278038.
- Refresh existing patches and add/delete ones to enable a clean build.

* Wed Jul 15 2015 Dean Nelson <dnelson@redhat.com> - 20150619-3
- Remove acpitests-unix-%%{version} directory from the build because it was a
  mistake that it was present and it complicated the fixing of the file
  permissions done related to RHBZ 1211328's requested rebase.

* Wed Jul 01 2015 Dean Nelson <dnelson@redhat.com> - 20150619-2
- Fix the file permissions issue reported by rpmdiff related to RHBZ 1211328's
  requested rebase.

* Mon Jun 22 2015 Dean Nelson <dnelson@redhat.com> - 20150619-1
- Update to the latest upstream version of acpica as requested by RHBZ 1211328.
- Refresh existing patches and add/delete ones to enable a clean build.
- Add missing return status checks after a few calls to AcpiDmDumpTable() and
  one to fopen().

* Mon Sep 29 2014 Dean Nelson <dnelson@redhat.com> - 20140926-1
- Update to the latest upstream version of acpica as requested by RHBZ 967963.
- Refresh existing patches and add new ones to enable a clean build.
- Fix build failures that start before and finish after midnight.

* Wed Aug 06 2014 Dean Nelson <dnelson@redhat.com> - 20130823-8
- Fix run-misc-tests.sh script to properly set the number of BITS to 64 when run
  on a ppc64le system as requested by RHBZ 1125471.

* Wed Aug 06 2014 Dean Nelson <dnelson@redhat.com> - 20130823-7
- Fix the dangling symlink issue for acpidump(1) and acpixtract(1) man pages
  that was reported in RHBZ 1074681.

* Tue Jan 28 2014 Daniel Mach <dmach@redhat.com> - 20130823-6
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 20130823-5
- Mass rebuild 2013-12-27

* Mon Oct 21 2013 Dean Nelson <dnelson@redhat.com> - 20130823-4
- Fix the four issues identified by RPMdiff that were reported in RHBZ 1017311.

* Wed Sep 04 2013 Dean Nelson <dnelson@redhat.com> - 20130823-3
- Fix run-misc-tests.sh script to properly set the number of BITS to 64 when run
  on a s390x system.

* Tue Aug 27 2013 Al Stone <ahs3@redhat.com> - 20130823-2
- Add in a copy of the GPLv2 text in order to comply with the requirement
  to always redistribute the terms of the license.

* Mon Aug 26 2013 Al Stone <ahs3@redhat.com> - 20130823-1
- Update to latest upstream source.

* Tue Aug 20 2013 Al Stone <ahs3@redhat.com> - 20130725-2
- Fix several rpmlint items (listed below)
- Add versions to explicit provides for acpixtract, acpidump
- Not all setup steps used -q
- Setup executable test script (run-misc-tests.sh) differently
- Removed unneeded commented out line with macros in it
- Removed mixed use of spaces and tabs (all spaces now)
- Corrected source URLs (upstream moved)

* Sun Aug 18 2013 Al Stone <ahs3@redhat.com> - 20130725-1
- Update to latest upstream source.

* Wed Jul 24 2013 Al Stone <ahs3@redhat.com> - 20130626-1
- Update to latest upstream source.
- Move acpidump to acpidump-acpica so it be an alternative properly
- Add basic man page for acpidump
- Enable use of AAPITS tests during the check step

* Sun Jun 02 2013 Al Stone <ahs3@redhat.com> - 20130517-2
- Correct an oversight: we provide an acpidump in conflict with the
  version in pmtools (which appears to be dead upstream) but had not
  made it an alternative before

* Tue May 28 2013 Al Stone <ahs3@redhat.com> - 20130517-1
- Update to latest upstream source.
- Remove acpica-tools-config.patch -- now in upstream
- Remove iasl-signed-char.patch -- now in upstream
- Updated debian-big_endian.patch
- Updated debian-unaligned.patch

* Mon May 13 2013 Al Stone <ahs3@redhat.com> - 20130328-1
- Update to latest upstream source.

* Wed Mar 20 2013 Al Stone <ahs3@redhat.com> - 20130214-2
- Incorporate use of optflags macro in the build.
- Remove extraneous rm -rf of buildroot.
- Remove extraneous use of defattr in the files section.
- Incorporate use of parallel make.
- Remove extraneous use of the clean section.
- Use simpler globbing in the files section.
- Use simpler globbing in the install section.
- Remove obsolete git notes from README.Fedora.
- Remove ExcludeArch restrictions.

* Mon Feb 18 2013 Al Stone <ahs3@redhat.com> - 20130214-1
- New upstream.
- Remove most of the config file patch; still need to remove -m{32,64}.
- Clarify the licensing; this source is dual-licensed and is being released
  under the GPLv2 as allowed by the original Intel license.
- Redo the misc tests so they compare results properly.

* Wed Feb 06 2013 Al Stone <ahs3@redhat.com> - 20130117-6
- Added a zero-fill to a date used in comparing testing results so that the
  comparison would be correct on days numbered < 10.

* Thu Jan 31 2013 Al Stone <ahs3@redhat.com> - 20130117-5
- Simplify versioning scheme and revert to the original scheme in use by
  iasl, which is use the latest official tarball date (2013017) as the
  version and 1%%{?dist} as the release, to be incremented for packaging
  and bug fixes as needed.

* Wed Jan 30 2013 Al Stone <ahs3@redhat.com> - 20130117-4
- Do a little reset: go back to using just the original upstream tarball
  instead of the latest git; the snapshot approach was more complicated
  than needed.
- Upstream tarballs split commands from test suites, so had to add the
  test suite back in as another Source: file.
- Change versioning scheme to include the APCI specification level (5.0),
  the latest official tarball date (2013017) and a revision level  (the
  .1 at the end) for packaging and bug fixes as needed.
- Changed the License field to reflect the source tarball change; the release
  tarball is dual-licensed, Intel ACPI or GPLv2.
- Updated patches to apply cleanly as needed.
- Corrected Obsoletes and Provides version numbers.

* Mon Jan 28 2013 Al Stone <ahs3@redhat.com> - 20130117-3
- Reconcile Fedora and Debian patches to be as alike as possible

* Mon Jan 28 2013 Al Stone <ahs3@redhat.com> - 20130117-2
- Verify ExcludeArch restrictions -- the architectures excluded can have
  no use for these tools.  Hardware support for ACPI is simply not
  implemented for them.
- Corrected versioning to note this source came from a git pull.
- Add License file as upstream has not yet provided one (and has not for
  many years).
- Insert properly versioned Provides and Obsoletes for iasl.
- Corrected files to use man.1* (vs man.1.gz) to allow flexibility in the
  compression being used.

* Wed Jan 23 2013 Al Stone <ahs3@redhat.com> - 20130117-1
- Clone from the current iasl package, with the intent of replacing it
- Update source to latest upstream
- NB: ACPICA documentation would normally be included in a source tarball.
  But, since it is not clearly redistributable, it is not included in the
  source RPM for this package.
- Build all ACPICA tools, not just iasl (and hence the package replacement)
- Add in brief man pages
- Set up acpixtract from this package as an alternative to the same command
  in the pmtools package
- Run the check step once built