# # spec file for package perl-File-Unpack # # Copyright (c) 2012 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/ # # norootforbuild Name: perl-File-Unpack Version: 0.54 Release: 0%{?dist} License: GPL+ or Artistic Group: Development/Libraries/Perl Summary: An strong archive file unpacker, based on mime-types 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::More) BuildRequires: perl(Test::Pod) BuildRequires: perl(Test::Pod::Coverage) BuildRequires: perl(Test::CheckManifest) BuildRequires: perl(Carp) BuildRequires: perl(Cwd) BuildRequires: perl(File::Path) BuildRequires: perl(File::Compare) BuildRequires: perl(File::Temp) BuildRequires: perl(File::LibMagic) BuildRequires: perl(File::MimeInfo::Magic) BuildRequires: perl-macros %if 0%{?suse_version} > 1110 # SLES11 does does not have this: BuildRequires: perl(Compress::Raw::Lzma) %endif BuildRequires: perl(Compress::Raw::Bzip2) BuildRequires: perl(Compress::Raw::Zlib) >= 2.024 BuildRequires: perl(BSD::Resource) BuildRequires: perl(Filesys::Statvfs) BuildRequires: perl(String::ShellQuote) BuildRequires: perl(JSON) BuildRequires: perl(IPC::Run) BuildRequires: perl(Text::Sprintf::Named) # shared-mime-info is a dependency of perl-File-MimeInfo # file is a dependency of perl-File-LibMagic BuildRequires: shared-mime-info >= 0.60 BuildRequires: fdupes file >= 5.03 Requires: perl(Carp) Requires: perl(Cwd) Requires: perl(File::Path) Requires: perl(File::Temp) Requires: perl(File::LibMagic) Requires: perl(File::MimeInfo::Magic) %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: perl(Compress::Raw::Zlib) >= 2.024 Requires: perl(BSD::Resource) Requires: perl(Filesys::Statvfs) Requires: perl(String::ShellQuote) Requires: perl(JSON) Requires: perl(IPC::Run) Requires: perl(Text::Sprintf::Named) Requires: shared-mime-info >= 0.60 Requires: file >= 5.03 ## 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} > 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 bzip2 cabextract cpio genisoimage gzip p7zip rpm sharutils tar unzip Requires: binutils bzip2 cabextract cpio genisoimage gzip p7zip rpm sharutils tar unzip Recommends: unrar poppler-tools xz upx %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 Requires: perl(File::Unpack) == %version Group: Productivity/Archiving/Compression BuildArch: noarch %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 else %{__perl} Makefile.PL INSTALLDIRS=vendor fi if [ -f Build.PL ]; then ./Build build flags=%{?_smp_mflags} else %{__make} %{?_smp_mflags} fi %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.pl $RPM_BUILD_ROOT/%_bindir/stringsx # 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