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