diff options
| author | Michel Alexandre Salim <salimma@fedoraproject.org> | 2012-02-03 14:20:11 +0100 |
|---|---|---|
| committer | Michel Alexandre Salim <salimma@fedoraproject.org> | 2012-02-03 14:20:11 +0100 |
| commit | f3fa21fcb0d1e1656d41245cd63750cae6d2a9eb (patch) | |
| tree | f74050de3df87283df3f7153901ef4a148c83c24 | |
| parent | 99646c96456e00a11674fbffb66414cc50e4b0ca (diff) | |
vala0.14 -- parallel-installable older version of vala
| -rw-r--r-- | gnome/vala0.14.spec | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/gnome/vala0.14.spec b/gnome/vala0.14.spec new file mode 100644 index 0000000..b0b646a --- /dev/null +++ b/gnome/vala0.14.spec @@ -0,0 +1,248 @@ +%global api_ver 0.14 + +Name: vala%{api_ver} +Version: 0.14.1 +Release: 1%{?dist} +Summary: A modern programming language for GNOME + +Group: Development/Languages +# Most files are LGPLv2.1+, curses.vapi is 2-clause BSD +License: LGPLv2+ and BSD +URL: http://live.gnome.org/Vala +#VCS: git:git://git.gnome.org/vala +# note: do not use a macro for directory name +# as it breaks Colin Walters' automatic build script +# see https://bugzilla.redhat.com/show_bug.cgi?id=609292 +Source0: http://download.gnome.org/sources/vala/0.14/vala-%{version}.tar.xz + +BuildRequires: flex +BuildRequires: bison +BuildRequires: glib2-devel +BuildRequires: libxslt +# only if Vala source files are patched +# BuildRequires: vala + +# for tests +# 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 +Vala is a new programming language that aims to bring modern programming +language features to GNOME developers without imposing any additional +runtime requirements and without using a different ABI compared to +applications and libraries written in C. + +valac, the Vala compiler, is a self-hosting compiler that translates +Vala source code into C source and header files. It uses the GObject +type system to create classes and interfaces declared in the Vala source +code. It's also planned to generate GIDL files when gobject- +introspection is ready. + +The syntax of Vala is similar to C#, modified to better fit the GObject +type system. + + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Vala is a new programming language that aims to bring modern programming +language features to GNOME developers without imposing any additional +runtime requirements and without using a different ABI compared to +applications and libraries written in C. + +This package contains development files for %{name}. This is not necessary for +using the %{name} compiler. + + +%package tools +Summary: Tools for creating projects and bindings for %{name} +Group: Development/Languages +License: LGPLv2+ +Requires: %{name} = %{version}-%{release} +Requires: gnome-common intltool libtool +Provides: %{name}-vapigen = %{version}-%{release} +Obsoletes: %{name}-vapigen < %{version}-%{release} + +%description tools +Vala is a new programming language that aims to bring modern programming +language features to GNOME developers without imposing any additional +runtime requirements and without using a different ABI compared to +applications and libraries written in C. + +This package contains tools to generate Vala projects, as well as API bindings +from existing C libraries, allowing access from Vala programs. + + +%package doc +Summary: Documentation for %{name} +Group: Documentation +License: LGPLv2+ + +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: devhelp + + +%description doc +Vala is a new programming language that aims to bring modern programming +language features to GNOME developers without imposing any additional +runtime requirements and without using a different ABI compared to +applications and libraries written in C. + +This package contains documentation in a devhelp HTML book. + + +%prep +%setup -q -n vala-%{version} + + +%build +%configure --enable-vapigen +# Don't use rpath! +sed -i 's|/lib /usr/lib|/lib /usr/lib /lib64 /usr/lib64|' libtool +make %{?_smp_mflags} + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +# 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/vapi +rm $RPM_BUILD_ROOT%{_libdir}/libvala-%{api_ver}.la + + +%check +# make check + + +%if 0%{?fedora} >= 13 +%else +%clean +rm -rf $RPM_BUILD_ROOT +%endif + + +%post +/sbin/ldconfig +for f in %{vala_binaries}; +do + %{_sbindir}/update-alternatives --install %{_bindir}/$f \ + $f %{_bindir}/$f-%{api_ver} 10 +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 10 +done + +%post tools +for f in %{vala_tools_binaries}; +do + %{_sbindir}/update-alternatives --install %{_bindir}/$f \ + $f %{_bindir}/$f-%{api_ver} 10 +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 10 +done + +%postun +/sbin/ldconfig +if [ $1 -eq 0 ]; +then + for f in %{vala_binaries}; + do + echo %{_sbindir}/update-alternatives --remove $f \ + %{_bindir}/$f-%{api_ver} + done + for f in %{vala_manpages}; + do + echo %{_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 +%ghost %{_bindir}/vala +%ghost %{_bindir}/valac +%{_bindir}/vala-%{api_ver} +%{_bindir}/valac-%{api_ver} +# owning only the directories, they should be empty +%dir %{_datadir}/vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala-%{api_ver} +%{_libdir}/libvala-%{api_ver}.so.* +%ghost %{_mandir}/man1/valac.1.gz +%{_mandir}/man1/valac-%{api_ver}.1.gz + +%files devel +%defattr(-,root,root,-) +%{_includedir}/vala-%{api_ver} +%{_libdir}/libvala-%{api_ver}.so +%{_libdir}/pkgconfig/libvala-%{api_ver}.pc +# directory owned by filesystem +%{_datadir}/aclocal/vala.m4 + +%files tools +%defattr(-,root,root,-) +%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} +%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,-) +%doc %{_datadir}/devhelp/books/vala-%{api_ver} + + +%changelog +* Fri Feb 3 2012 Michel Salim <salimma@fedoraproject.org> - 0.14.1-1 +- Initial package, based on vala 0.15.1-2 spec |
