summaryrefslogtreecommitdiff
path: root/irfanview/irfanview.spec
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2018-09-03 12:34:45 +0000
committerB Stack <bgstack15@gmail.com>2018-09-03 12:34:45 +0000
commit17d59452e9cfcc26d3f73e67f9250586bd82ddd8 (patch)
treef8a23c535815ec5e12224154768a33ee3247e4cf /irfanview/irfanview.spec
parentMerge branch 'fix-veracrypt' into 'master' (diff)
downloadstackrpms-17d59452e9cfcc26d3f73e67f9250586bd82ddd8.tar.gz
stackrpms-17d59452e9cfcc26d3f73e67f9250586bd82ddd8.tar.bz2
stackrpms-17d59452e9cfcc26d3f73e67f9250586bd82ddd8.zip
Add irfanview
Diffstat (limited to 'irfanview/irfanview.spec')
-rw-r--r--irfanview/irfanview.spec258
1 files changed, 258 insertions, 0 deletions
diff --git a/irfanview/irfanview.spec b/irfanview/irfanview.spec
new file mode 100644
index 0000000..8721cba
--- /dev/null
+++ b/irfanview/irfanview.spec
@@ -0,0 +1,258 @@
+%global dummy_package 0
+%global include_plugins 1
+%global devtty /dev/null
+# select irfanview binary build: 32 or 64
+%global arch 32
+
+Name: irfanview
+Version: 4.51
+Release: 2
+Summary: Irfanview graphic viewer
+%define version_num %( echo %version | tr -d '\.' )
+
+Group: Applications/Graphics
+License: Freeware
+URL: http://bgstack15.wordpress.com
+# must download like: curl 'https://www.irfanview.info/files/iview451_x64.zip' --compressed -H 'Referer: https://www.irfanview.info/files/iview451_x64.zip' iview451_x64.zip
+%if 0%{?arch} == 64
+Source0: http://www.irfanview.info/files/iview%{version_num}_x64.zip
+Source1: http://www.irfanview.info/files/iview%{version_num}_plugins_x64.zip
+%else
+Source0: http://www.irfanview.info/files/iview%{version_num}.zip
+Source1: http://www.irfanview.info/files/iview%{version_num}_plugins.zip
+%endif
+Source2: %{name}.desktop
+Source3: %{name}
+Source4: %{name}.default
+Source5: %{name}-vlc
+Source6: i_view32.ini
+Source7: %{name}-icons.tgz
+
+Packager: Bgstack15 <bgstack15@gmail.com>
+Buildarch: noarch
+BuildRequires: desktop-file-utils
+BuildRequires: ImageMagick
+Requires(pre): bgscripts-core >= 1.1-20
+# WORKHERE: this requires will depend on if this is i686 or x86_64 package
+%if 0%{?arch} == 64
+Requires: /usr/bin/wine64
+%else
+Requires: /usr/bin/wine32
+%endif
+Obsoletes: irfan < 4.51-2
+Provides: application(irfanview.desktop)
+Provides: mimehandler(image/bmp)
+Provides: mimehandler(image/gif)
+Provides: mimehandler(image/ico)
+Provides: mimehandler(image/jpeg)
+Provides: mimehandler(image/jpg)
+Provides: mimehandler(image/png)
+Provides: mimehandler(image/tiff)
+Provides: mimehandler(vnd.adobe.photoshop)
+Provides: mimehandler(x-content/image-dcf)
+
+%description
+Irfanview is an amazing graphics application for a different platform. Irfanview is ported to GNU/Linux using wine.
+
+%prep
+# main
+export UNZIP=-o || :
+%setup -q -c
+
+# plugins
+%if 0%{?include_plugins}
+pushd Plugins
+%{__unzip} -o %{SOURCE1}
+popd
+%endif
+
+# icons
+%{__tar} -zxvf %{SOURCE7}
+for shape in square clear lubuntu circle ;
+do
+ for s in 16 22 24 32 48 64 96 128 256 ;
+ do
+ convert %{name}-${shape}.svg -filter Lanczos -resize ${s}x${s} %{name}-${shape}-${s}.png
+ done
+done
+
+%build
+# the upstream source is the binaries; nothing to do here
+:
+
+%install
+# main files
+%if 0%{?arch} == 64
+%{__install} -p -D -m0755 -t %{buildroot}%{_datadir}/%{name} i_view64.exe
+%else
+%{__install} -p -D -m0755 -t %{buildroot}%{_datadir}/%{name} i_view32.exe
+%endif
+# skipped iv_uninstall.exe
+
+%if 0%{?include_plugins}
+#%{__install} -p -D -m0644 -t %{buildroot}%{_datadir}/%{name}/Plugins Plugins/*
+%{__cp} -pr Plugins %{buildroot}%{_datadir}/%{name}/
+%{__chmod} -R u=rwX,g=rX,o=rX %{buildroot}%{_datadir}/%{name}/Plugins
+%endif
+
+%{__install} -p -D -m0644 -t %{buildroot}%{_datadir}/%{name}/Toolbars Toolbars/*
+%{__install} -p -D -m0644 -t %{buildroot}%{_datadir}/%{name}/Languages Languages/*
+
+# desktop files
+%{__mkdir_p} %{buildroot}%{_datadir}/applications
+desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE2}
+
+# application start and default scripts
+%{__install} -p -D -m0755 %{SOURCE3} %{buildroot}%{_bindir}/%{name}
+%{__install} -p -D -m0666 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
+%{__install} -p -D -m0755 %{SOURCE5} %{buildroot}%{_bindir}/%{name}-vlc
+
+# select architecture
+%if 0%{?arch} == 64
+ %{__sed} -i -r -e 's/32/64/g;' -e 's/\.wine$/\.wine64/;' \
+ %{buildroot}%{_sysconfdir}/sysconfig/%{name}
+%endif
+
+# application default config
+%{__install} -p -D -m0666 %{SOURCE6} %{buildroot}%{_sysconfdir}/i_view32.ini
+%{__ln_s} ../../..%{_sysconfdir}/i_view32.ini %{buildroot}%{_datadir}/%{name}/i_view32.ini
+
+# man pages
+%{__install} -p -D -m0644 -t %{buildroot}%{_docdir}/%{name} *.txt *.chm
+%{__install} -p -D -m0644 -t %{buildroot}%{_docdir}/%{name}/Html Html/*
+
+# icons
+%{__install} -p -D -m0644 -t %{buildroot}%{_datadir}/%{name}/icons *.svg *.png
+%{__install} -p -D -m0644 %{name}-square.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
+
+# system services
+# none
+
+%clean
+rm -rf %{buildroot} || :
+
+%post
+# Deploy theme icons
+which xdg-icon-resource 1>%{devtty} 2>&1 && {
+
+ # Deploy default apps icons
+ for theme in locolor Numix-Circle Lubuntu ;
+ do
+ shape=square
+ case "${theme}" in Numix-Circle) shape=circle;; Lubuntu) shape=lubuntu;; esac
+ # Deploy scalable application icons
+ %{__cp} -p %{_datadir}/%{name}/icons/%{name}-${shape}.svg %{_datadir}/icons/${theme}/scalable/apps/%{name}.svg
+ done
+
+ # Deploy custom apps icons
+ # custom: Numix-Circle apps 48 uses svg
+ cp -p %{_datadir}/%{name}/icons/%{name}-circle.svg %{_datadir}/icons/Numix-Circle/48/apps/%{name}.svg &
+ # custom: Lubuntu apps 48 uses svg
+ cp -p %{_datadir}/%{name}/icons/%{name}-lubuntu.svg %{_datadir}/icons/Lubuntu/apps/48/%{name}.svg &
+ # default
+ cp -p %{_datadir}/%{name}/icons/%{name}-square-48.png %{_datadir}/icons/hicolor/48x48/apps/%{name}.png
+
+} 1>%{devtty} 2>&1
+
+# Mimetypes and default applications
+which xdg-mime 1>/dev/null 2>&1 &&
+{
+ for user in $( /usr/share/bgscripts/enumerate-users.sh || : ) ;
+ do
+
+ # Skip non-user objects
+ ! getent passwd "${user}" && continue
+
+ # Add new mimetypes
+ #su "${user}" -c "xdg-mime install %{_datadir}/%{name}/inc/nonedefined.xml &"
+
+ # Assign default applications
+ while read line;
+ do
+ echo "${user} ${line}"
+ # Assign mimetype a default application
+ su "${user}" -c "test -f ~/.config/mimeapps.list && xdg-mime default irfanview.desktop ${line} &" &
+
+ done <<'EOW'
+image/bmp
+image/gif
+image/ico
+image/jpeg
+image/png
+image/tiff
+image/vnd.adobe.photoshop
+x-content/image-dcf
+EOW
+ done
+} 1>%{devtty} 2>&1
+
+# Update icon caches
+for word in hicolor locolor Numix-Circle Numix Lubuntu elementary-xfce ;
+do
+ touch --no-create %{_datadir}/icons/${word} || :
+done
+/usr/bin/update-mime-database "%{_datadir}/mime" &> /dev/null || :
+update-desktop-database &> /dev/null || :
+/sbin/ldconfig || :
+
+%preun
+if test "$1" = "0" ; # total uninstall
+then
+{
+
+ # Remove theme icons
+ which xdg-icon-resource 1>%{devtty} 2>&1 && {
+
+ # Remove default apps icons
+ for theme in locolor Numix-Circle Lubuntu ;
+ do
+
+ # Remove scalable apps icons
+ %{__rm} -f %{_datadir}/icons/${theme}/scalable/apps/%{name}.svg
+
+ # Remove custom apps icons
+ # custom: Numix-Circle apps 48 uses svg
+ rm -f %{_datadir}/icons/Numix-Circle/48/apps/%{name}.svg
+ # custom: Lubuntu apps 48 uses svg
+ rm -f %{_datadir}/icons/Lubuntu/apps/48/%{name}.svg
+ # default
+ rm -f %{_datadir}/icons/hicolor/48x48/apps/%{name}.png
+
+ done
+
+ }
+} 1>%{devtty} 2>&1
+fi
+
+%postun
+update-desktop-database &> /dev/null || :
+if test "$1" = "0" ;
+then
+
+ for word in hicolor locolor Numix-Circle Numix Lubuntu elementary-xfce ;
+ do
+ touch --no-create %{_datadir}/icons/${word} &>/dev/null
+ gtk-update-icon-cache %{_datadir}/icons/${word} &>/dev/null || :
+ done
+
+ /usr/bin/update-mime-database "%{_datadir}/mime" &>/dev/null || :
+
+fi
+/sbin/ldconfig || :
+
+%posttrans
+/usr/bin/gtk-update-icon-cache "%{_datadir}/icons/hicolor" &>/dev/null || :
+/usr/bin/update-mime-database "%{_datadir}/mime" &>/dev/null || :
+
+%files
+%{_datadir}/%{name}
+%{_docdir}/%{name}
+%{_datadir}/applications/*
+%{_datadir}/icons/hicolor/*/*/*
+%attr(755, -, -) %{_bindir}/*
+%config %{_sysconfdir}/sysconfig/%{name}
+%config %attr(666, -, -) %{_sysconfdir}/i_view32.ini
+
+%changelog
+* Tue Nov 29 2016 B Stack <bgstack15@gmail.com>
+- initial package built
bgstack15