# # spec file for package perl-File-Unpack # # Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: perl-File-Unpack Version: 0.66 Release: 0%{?dist} Summary: An strong archive file unpacker, based on mime-types License: GPL-1.0+ or Artistic-1.0 Group: Development/Libraries/Perl Source: http://search.cpan.org/CPAN/authors/id/J/JN/JNW/File-Unpack-%{version}.tar.gz Url: http://github.com/jnweiger/perl-File-Unpack BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch BuildRequires: perl(Test::CheckManifest) BuildRequires: perl(Test::More) BuildRequires: perl(Test::Pod) BuildRequires: perl(Test::Pod::Coverage) BuildRequires: perl(Carp) BuildRequires: perl(Cwd) BuildRequires: perl(File::Compare) BuildRequires: perl(File::LibMagic) BuildRequires: perl(File::MimeInfo::Magic) BuildRequires: perl(File::Path) BuildRequires: perl(File::Temp) %if 0%{?suse_version} > 1110 # SLES11 does does not have this: BuildRequires: perl(Compress::Raw::Lzma) # (provider perl-Compress-Raw-Zlib is obsoleted by installed perl) BuildRequires: perl(Compress::Raw::Zlib) >= 2.024 %else ## almost all in ibs: provider perl obsoletes installed perl-macros ## but SLE_11_SP1 fails without it: BuildRequires: perl-macros %endif BuildRequires: perl(BSD::Resource) BuildRequires: perl(Compress::Raw::Bzip2) BuildRequires: perl(Filesys::Statvfs) BuildRequires: perl(IPC::Run) BuildRequires: perl(JSON) BuildRequires: perl(String::ShellQuote) BuildRequires: perl(Text::Sprintf::Named) # shared-mime-info is a dependency of perl-File-MimeInfo # file is a dependency of perl-File-LibMagic BuildRequires: fdupes BuildRequires: file >= 5.03 BuildRequires: shared-mime-info >= 0.60 Requires: perl(Carp) Requires: perl(Cwd) Requires: perl(File::LibMagic) Requires: perl(File::MimeInfo::Magic) Requires: perl(File::Path) Requires: perl(File::Temp) %if 0%{?suse_version} >= 1110 # SLES11 does does not have this: Requires: perl(Compress::Raw::Lzma) %endif Requires: perl(Compress::Raw::Bzip2) Requires: perl(Compress::Raw::Zlib) # 2.024 is provided by perl-5.12.1 in 11.3 Requires: file >= 5.03 Requires: shared-mime-info >= 0.60 Requires: perl(BSD::Resource) Requires: perl(Compress::Raw::Zlib) >= 2.024 Requires: perl(Filesys::Statvfs) Requires: perl(IPC::Run) Requires: perl(JSON) Requires: perl(Text::Sprintf::Named) # App-cpanminus provides a bogus String::ShellQuote. We need to go by package name here. # Requires: perl(String::ShellQuote) Requires: perl-String-ShellQuote ## refer to Unpack.pm:@builtin_mime_handlers and to the helper subdirectory ## to see what we might need: # grep '# Requires: ' Unpack.pm helper/* %if 0%{?suse_version} > 1110 # 11.1 and SLES11 say: unresolvable: nothing provides xz BuildRequires: xz Requires: xz %else Recommends: xz %endif %if 0%{?suse_version} > 1230 BuildRequires: lzip Requires: lzip %else Recommends: lzip %endif %if 0%{?suse_version} > 1010 # SLES10 says: nothing provides poppler-tools BuildRequires: poppler-tools Requires: poppler-tools %else Recommends: poppler-tools %endif ## The following BuildRequires is for testing existance only. ## If you cannot provide a package, you may remove it from both BuildRequires ## and Requires, and move it over to Recommends. BuildRequires: binutils BuildRequires: bzip2 BuildRequires: cabextract BuildRequires: cpio BuildRequires: genisoimage BuildRequires: gzip BuildRequires: p7zip BuildRequires: rpm BuildRequires: sharutils BuildRequires: tar BuildRequires: unzip Requires: binutils Requires: bzip2 Requires: cabextract Requires: cpio Requires: genisoimage Requires: gzip Requires: p7zip Requires: rpm Requires: sharutils Requires: tar Requires: unzip Recommends: unrar poppler-tools xz upx antiword %if 0%{?suse_version} < 1140 Requires: perl = %{perl_version} %else %{perl_requires} %endif Requires: file_unpack == %version %description File::Unpack is an unpacker for archives and files (bz2/gz/zip/tar/cpio/iso/rpm/deb/cab/lzma/7z/rar/...). We call it strong, because it is not fooled by file suffixes, or multiply wrapped packages. It reliably detects mime-types and recursivly descends into each archive found until it finally exposes all unpackable payload contents. A precise logfile can be written, describing mimetypes and unpack actions. Most of the known archive file formats are supported. Shell-script-style plugins can be added to support additinal formats. Authors: -------- Jürgen Weigert %package -n file_unpack Summary: Command line tool to unpack anything Group: Productivity/Archiving/Compression Requires: perl(File::Unpack) == %version # BUGALERT: this package is implicitly noarch, although it contains an # architecture dependand binary. If I try, I get this nonsense: # error: line 161: Only noarch subpackages are supported %description -n file_unpack /usr/bin/file_unpack is a trivial command line frontend that ships with the File::Unpack perl module. Authors: -------- Juergen Weigert %prep %setup -q -n File-Unpack-%{version} %build if [ -f Build.PL ]; then %{__perl} Build.PL --installdirs vendor ./Build build flags=%{?_smp_mflags} else %{__perl} Makefile.PL INSTALLDIRS=vendor %{__make} %{?_smp_mflags} fi (cd contrib && %{__make} stringsx) %install if [ -f Build.PL ]; then ./Build pure_install --destdir %{buildroot} else %{__make} pure_install PERL_INSTALL_ROOT=%{buildroot} fi install -D file_unpack.pl $RPM_BUILD_ROOT/usr/bin/file_unpack install -d $RPM_BUILD_ROOT/usr/share/File-Unpack/helper/ install helper/* $RPM_BUILD_ROOT/usr/share/File-Unpack/helper/ %fdupes $RPM_BUILD_ROOT/usr/share/File-Unpack/ ln -s /usr/bin/file_unpack $RPM_BUILD_ROOT/usr/bin/unpack_file ## CAUTION: a line beginning with . is a macro-expanded by nroff. # echo .nf > file_unpack.1 # perl -Iblib/lib file_unpack.pl --help >> file_unpack.1 && true # rm -rf file_unpack.1 cat < file_unpack.pod =pod =head1 SYNOPSIS EOF perl file_unpack.pl --help >> file_unpack.pod && true cat <> file_unpack.pod =head1 REFERENCES See also C EOF1 pod2man file_unpack.pod > file_unpack.1 rm file_unpack.pod echo file_unpack.1 >> MANIFEST install -m0644 -D file_unpack.1 $RPM_BUILD_ROOT/%_mandir/man1/file_unpack.1 ln -s %_mandir/man1/file_unpack.1 $RPM_BUILD_ROOT/%_mandir/man1/unpack_file.1 install -m0755 -D contrib/stringsx $RPM_BUILD_ROOT/%_bindir/stringsx rm contrib/stringsx # so that the Manifest in make check is not confused. # FIXME: use ./Build install destdir=$RPM_BUILD_ROOT create_packlist=0 # maybe then we would not need to remove the .packlist files :-) find %{buildroot} -type f -name .packlist -exec rm -f {} ';' find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null ';' %{_fixperms} %{buildroot}/* %perl_process_packlist %perl_gen_filelist ## seperate bin man from the main package mv %{name}.files /tmp/%{name}.files sed -ie '/\/man\?/d' /tmp/%{name}.files sed -ie '/\/bin\//d' /tmp/%{name}.files %check export RELEASE_TESTING=1 # echo >> MANIFEST.SKIP # echo >> MANIFEST.SKIP ^PERCENT{name}\.files\$ if [ -f Build.PL ]; then ./Build test else %{__make} test fi %clean [ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && %{__rm} -rf $RPM_BUILD_ROOT %files -f /tmp/%{name}.files %defattr(-,root,root,-) %doc README Changes %dir /usr/share/File-Unpack /usr/share/File-Unpack/* %doc %_mandir/man3/* %files -n file_unpack %defattr(-,root,root) /usr/bin/* %doc %_mandir/man1/* %changelog