0017287
%global cache_dir /var/cache/0install.net
5339e55
%global gettext_domain_name zero-install
0017287
Name:           0install
e0f9466
Version:        2.10
d12496a
Release:        2%{?dist}
0017287
Summary:        A decentralized cross-distribution software installation system
0017287
0017287
License:        LGPLv2+
0017287
URL:            http://0install.net
0017287
Source0:        http://downloads.sf.net/project/zero-install/%{name}/%{version}/%{name}-%{version}.tar.bz2
0017287
# Temporarily disable tests, some failures within mock env
0017287
Patch0:         %{name}-2.6-no-tests.patch
0017287
# multilib: use lib64 instead of lib on 64-bit arches
5339e55
Patch1:         %{name}-2.9.1-lib64.patch
e0f9466
Patch2:         %{name}-2.10-makefile.patch
0017287
0017287
BuildRequires:  ocaml >= 3.10.0
0017287
BuildRequires:  ocaml-biniou-devel
0017287
BuildRequires:  ocaml-easy-format-devel
0017287
BuildRequires:  ocaml-findlib
0017287
BuildRequires:  ocaml-camlp4-devel
0017287
BuildRequires:  ocaml-curl-devel
0017287
BuildRequires:  ocaml-extlib-devel
0017287
BuildRequires:  ocaml-lablgtk-devel
0017287
BuildRequires:  ocaml-lwt-devel
0017287
# not packaged yet, optional
0017287
# BuildRequires:  ocaml-obus-devel
0017287
BuildRequires:  ocaml-ounit-devel
0017287
BuildRequires:  ocaml-ssl-devel
0017287
BuildRequires:  ocaml-xmlm-devel
0017287
BuildRequires:  ocaml-yojson-devel
0017287
BuildRequires:  glib2-devel
0017287
BuildRequires:  libev-devel
0017287
BuildRequires:  gettext
0017287
BuildRequires:  desktop-file-utils
0017287
0017287
Requires(pre):  shadow-utils
0017287
0017287
# for icons
0017287
Requires:       hicolor-icon-theme
0017287
5339e55
%if 0%{?epel}
5339e55
# Explict require ocaml-react-devel, otherwise 
5339e55
# ocamlfind: Package `lwt.react' not found
5339e55
BuildRequires:  ocaml-react-devel
5339e55
ExcludeArch:   ppc64
5339e55
%endif
5339e55
0017287
Provides:       zeroinstall-injector = %{version}-%{release}
0017287
Obsoletes:      zeroinstall-injector < 2.4-1%{?dist}
0017287
0017287
%description
0017287
Zero Install is a decentralized cross-distribution software
0017287
installation system available under the LGPL. It allows software
0017287
developers to publish programs directly from their own web-sites,
0017287
while supporting features familiar from centralized distribution
0017287
repositories such as shared libraries, automatic updates and digital
0017287
signatures. It is intended to complement, rather than replace, the
0017287
operating system's package management. 0install packages never
0017287
interfere with those provided by the distribution.
0017287
0017287
0install does not define a new packaging format; unmodified tarballs
0017287
or zip archives can be used. Instead, it defines an XML metadata
0017287
format to describe these packages and the dependencies between them. A
0017287
single metadata file can be used on multiple platforms (e.g. Ubuntu,
0017287
Debian, Fedora, openSUSE, Mac OS X and Windows), assuming binary or
0017287
source archives are available that work on those systems.
0017287
0017287
0install also has some interesting features not often found in
0017287
traditional package managers. For example, while it will share
0017287
libraries whenever possible, it can always install multiple versions
0017287
of a package in parallel when there are conflicting
0017287
requirements. Installation is always side-effect-free (each package is
0017287
unpacked to its own directory and will not touch shared directories
0017287
such as /usr/bin), making it ideal for use with sandboxing
0017287
technologies and virtualization.
0017287
0017287
The XML file describing the program's requirements can also be
0017287
included in a source-code repository, allowing full dependency
0017287
handling for unreleased developer versions. For example, a user can
0017287
clone a Git repository and build and test the program, automatically
0017287
downloading newer versions of libraries where necessary, without
0017287
interfering with the versions of those libraries installed by their
0017287
distribution, which continue to be used for other software.
0017287
0017287
0017287
%prep
0017287
%setup -q
0017287
%patch0 -p1 -b .no-tests
0017287
%if "%{_lib}" == "lib64"
5339e55
%patch1 -p0 -b .lib64
0017287
%endif
e0f9466
%patch2 -p0 -b .translation
0017287
b76909b
## Remove Utilities from .desktop file, so it will use Settings as main category
b76909b
sed -i -e 's/Utility;//' share/applications/%{name}.desktop
b76909b
0017287
%build
0017287
make
e0f9466
make update-mo
0017287
0017287
0017287
%install
0017287
make install_system DESTDIR=$RPM_BUILD_ROOT
0017287
0017287
# fix permission of shared objects
0017287
chmod +x $RPM_BUILD_ROOT%{_libdir}/0install.net/gui_gtk.cmxs
0017287
0017287
mkdir -p "$RPM_BUILD_ROOT%{cache_dir}/implementations"
0017287
0017287
desktop-file-validate \
0017287
    $RPM_BUILD_ROOT%{_datadir}/applications/0install.desktop
0017287
e0f9466
## Copy mo files
e0f9466
mkdir -p %{buildroot}%{_datadir}/locale
e0f9466
cp -R build/share/locale/* %{buildroot}%{_datadir}/locale
e0f9466
5339e55
%find_lang %{gettext_domain_name}
0017287
5339e55
## Remove excess doc
5339e55
rm -fr %{buildroot}/usr/share/doc/%{name}
0017287
0017287
%pre
0017287
# Add the "zeroinst" user.
0017287
# This is not used by default, but is required if you want to
0017287
# set up sharing of downloads later.
0017287
getent group  zeroinst >/dev/null || groupadd -r zeroinst
0017287
getent passwd zeroinst >/dev/null || \
0017287
useradd -r -g zeroinst -d %{cache_dir} -s /sbin/nologin \
0017287
    -c "Zero Install shared cache" zeroinst
0017287
exit 0
0017287
0017287
%post
0017287
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
0017287
0017287
%postun
0017287
if [ $1 -eq 0 ] ; then
0017287
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
0017287
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
0017287
fi
0017287
0017287
%posttrans
0017287
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
0017287
0017287
5339e55
%files -f %{gettext_domain_name}.lang
0017287
%doc COPYING README.md
0017287
%{_bindir}/0*
0017287
%{_libdir}/0install.net
0017287
%{_datadir}/0install.net
5339e55
%{_datadir}/appdata/0install*
0017287
%{_datadir}/applications/0install.desktop
0017287
%{_datadir}/icons/hicolor/*/apps/zeroinstall.*
0017287
%dir %{_datadir}/bash-completion
0017287
%dir %{_datadir}/bash-completion/completions
0017287
%{_datadir}/bash-completion/completions/0*
0017287
%dir %{_datadir}/fish
0017287
%dir %{_datadir}/fish/completions
0017287
%{_datadir}/fish/completions/0*.fish
0017287
%dir %{_datadir}/zsh
0017287
%dir %{_datadir}/zsh/site-functions
0017287
%{_datadir}/zsh/site-functions/_0*
0017287
%{_mandir}/man1/0*
0017287
%dir %{cache_dir}
0017287
%attr(755,zeroinst,zeroinst) %{cache_dir}/implementations
0017287
0017287
0017287
%changelog
b76909b
* Tue Oct 06 2015 Ding-Yi Chen <dchen@redhat.com> - 2.10-2
b76909b
- Remove Utilities from .desktop file, so it will use Settings as main category.
b76909b
e0f9466
* Tue Oct 06 2015 Ding-Yi Chen <dchen@redhat.com> - 2.10-1
e0f9466
- Upstream update to 2.10.
e0f9466
5339e55
* Thu Oct 01 2015 Ding-Yi Chen <dchen@redhat.com> - 2.9.1-1
5339e55
- Upstream update to 2.9.1.
5339e55
- Add buildrequires: ocaml-react-devel for EPEL.
5339e55
- Exclude ppc64 for EPEL, as the build dependency ocaml-findlib-devel is not available on it.
5339e55
30778ee
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.1-6
30778ee
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
30778ee
461732a
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.1-5
461732a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
461732a
77b9e88
* Fri Jun 06 2014 Dennis Gilmore <Dennis@ausil.us> - 2.6.1-4
77b9e88
- Remove the no longer needed ExclusiveArch line the macro used has been removed
a3f2801
31e84b6
* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.1-3
31e84b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
31e84b6
0017287
* Sat Feb 15 2014 Michel Salim <salimma@fedoraproject.org> - 2.6.1-2
0017287
- Spec clean-up
0017287
- Fix permission of shared objects so they get properly handled when
0017287
  generating debuginfo
0017287
0017287
* Fri Feb 14 2014 Michel Salim <salimma@fedoraproject.org> - 2.6.1-1
0017287
- Update to 2.6.1
0017287
- Install to proper libdir depending on the actual architecture
0017287
- Fix ExclusiveArch, build requirements and obsoletion
0017287
- Fix license tag
0017287
- Yank old changelog from zero-install
0017287
0017287
* Mon Jan 20 2014 Michel Salim <salimma@fedoraproject.org> - 2.6-1
0017287
- Update to 2.6
0017287
0017287
* Mon Jan 20 2014 Michel Salim <salimma@fedoraproject.org> - 2.5.1-1
0017287
- Rename package to 0install
0017287
- Update to 2.5.1