Support parallel installation with other Vala versions

This commit is contained in:
Michel Alexandre Salim 2012-02-03 14:18:40 +01:00
parent 12a59588a7
commit 467f4085c4

115
vala.spec
View File

@ -2,7 +2,7 @@
Name: vala
Version: 0.15.1
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A modern programming language for GNOME
Group: Development/Languages
@ -22,14 +22,22 @@ BuildRequires: flex
BuildRequires: bison
BuildRequires: glib2-devel
BuildRequires: libxslt
# only while we carry the patch
BuildRequires: vala
# only if Vala source files are patched
# BuildRequires: vala
# for Emacs modes
BuildRequires: emacs emacs-el
# for tests
BuildRequires: dbus-x11
# BuildRequires: dbus-x11
# alternatives
%global vala_binaries vala valac
%global vala_manpages valac
%global vala_tools_binaries vala-gen-introspect vapicheck vapigen
%global vala_tools_manpages vala-gen-introspect vapigen
Requires(post): %{_sbindir}/update-alternatives
Requires(postun): %{_sbindir}/update-alternatives
%description
@ -52,7 +60,6 @@ type system.
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
%description devel
Vala is a new programming language that aims to bring modern programming
@ -154,8 +161,21 @@ cp -p %{SOURCE3} COPYING
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
# Makefile.vapigen somehow gets copied; bug authors
rm $RPM_BUILD_ROOT%{_datadir}/vala/Makefile.vapigen
# remove symlinks, using alternatives
for f in %{vala_binaries} %{vala_tools_binaries};
do
rm $RPM_BUILD_ROOT%{_bindir}/$f
touch $RPM_BUILD_ROOT%{_bindir}/$f
done
for f in %{vala_manpages} %{vala_tools_manpages};
do
rm $RPM_BUILD_ROOT%{_mandir}/man1/$f.1*
touch $RPM_BUILD_ROOT%{_mandir}/man1/$f.1.gz
done
# own this directory for third-party *.vapi files
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vala
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vala/vapi
rm $RPM_BUILD_ROOT%{_libdir}/libvala-%{api_ver}.la
# Emacs mode files
@ -176,24 +196,77 @@ rm -rf $RPM_BUILD_ROOT
%endif
%post -p /sbin/ldconfig
%post
/sbin/ldconfig
for f in %{vala_binaries};
do
%{_sbindir}/update-alternatives --install %{_bindir}/$f \
$f %{_bindir}/$f-%{api_ver} 90
done
for f in %{vala_manpages};
do
%{_sbindir}/update-alternatives --install %{_mandir}/man1/$f.1.gz \
$f.1.gz %{_mandir}/man1/$f-%{api_ver}.1.gz 90
done
%postun -p /sbin/ldconfig
%post tools
for f in %{vala_tools_binaries};
do
%{_sbindir}/update-alternatives --install %{_bindir}/$f \
$f %{_bindir}/$f-%{api_ver} 90
done
for f in %{vala_tools_manpages};
do
%{_sbindir}/update-alternatives --install %{_mandir}/man1/$f.1.gz \
$f.1.gz %{_mandir}/man1/$f-%{api_ver}.1.gz 90
done
%postun
/sbin/ldconfig
if [ $1 -eq 0 ];
then
for f in %{vala_binaries};
do
%{_sbindir}/update-alternatives --remove $f \
%{_bindir}/$f-%{api_ver}
done
for f in %{vala_manpages};
do
%{_sbindir}/update-alternatives --remove $f.1.gz \
%{_mandir}/man1/$f-%{api_ver}.1.gz
done
fi
%postun tools
if [ $1 -eq 0 ];
then
for f in %{vala_tools_binaries};
do
%{_sbindir}/update-alternatives --remove $f \
%{_bindir}/$f-%{api_ver}
done
for f in %{vala_tools_manpages};
do
%{_sbindir}/update-alternatives --remove $f.1.gz \
%{_mandir}/man1/$f-%{api_ver}.1.gz
done
fi
%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING INSTALL MAINTAINERS NEWS README THANKS
# TODO to support parallel installation, the symlinks in bin/ must be
# migrated to use the alternatives system
%{_bindir}/vala
%{_bindir}/valac
%ghost %{_bindir}/vala
%ghost %{_bindir}/valac
%{_bindir}/vala-%{api_ver}
%{_bindir}/valac-%{api_ver}
%{_datadir}/vala
# owning only the directories, they should be empty
%dir %{_datadir}/vala
%dir %{_datadir}/vala/vapi
%{_datadir}/vala-%{api_ver}
%{_libdir}/libvala-%{api_ver}.so.*
%{_mandir}/*/valac*
%ghost %{_mandir}/man1/valac.1.gz
%{_mandir}/man1/valac-%{api_ver}.1.gz
%files devel
%defattr(-,root,root,-)
@ -205,16 +278,19 @@ rm -rf $RPM_BUILD_ROOT
%files tools
%defattr(-,root,root,-)
%{_bindir}/vala-gen-introspect
%{_bindir}/vapicheck
%{_bindir}/vapigen
%ghost %{_bindir}/vala-gen-introspect
%ghost %{_bindir}/vapicheck
%ghost %{_bindir}/vapigen
%{_bindir}/vala-gen-introspect-%{api_ver}
%{_bindir}/vapicheck-%{api_ver}
%{_bindir}/vapigen-%{api_ver}
%{_libdir}/vala-%{api_ver}
%{_datadir}/aclocal/vapigen.m4
%{_datadir}/pkgconfig/vapigen*.pc
%{_mandir}/*/*gen*
%ghost %{_mandir}/man1/vala-gen-introspect.1.gz
%ghost %{_mandir}/man1/vapigen.1.gz
%{_mandir}/man1/vala-gen-introspect-%{api_ver}.1.gz
%{_mandir}/man1/vapigen-%{api_ver}.1.gz
%files doc
%defattr(-,root,root,-)
@ -233,6 +309,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Fri Feb 3 2012 Michel Salim <salimma@fedoraproject.org> - 0.15.1-2
- Support parallel installation with other Vala versions
* Mon Jan 30 2012 Michel Salim <salimma@fedoraproject.org> - 0.15.1-1
- Update to 0.15.1