Blob Blame History Raw
%global api_ver 0.12

Name:           vala
Version:        0.11.5
Release:        2%{?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.11/vala-%{version}.tar.bz2
Source1:        vala-mode.el
Source2:        vala-init.el
Source3:        emacs-vala-COPYING

BuildRequires:  flex
BuildRequires:  bison
BuildRequires:  glib2-devel
BuildRequires:  libxslt

# for Emacs modes
BuildRequires:  emacs emacs-el

# for tests
BuildRequires:  dbus-x11


%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}
Requires:       pkgconfig

%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
Provides:       %{name}-docs = %{version}-%{release}
Obsoletes:      %{name}-docs < %{version}-%{release}
# might seem redundant, but needed to kill off the old arch-ed -doc
# subpackage
Obsoletes:      %{name}-doc < %{version}-%{release}


%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.


%package -n emacs-%{name}
Summary:        Vala mode for Emacs
Group:          Applications/Editors
License:        GPLv2+

BuildArch:      noarch
# Provide upgrade path from older, arch-specific package
Obsoletes:      emacs-%{name} < %{version}-%{release}
Requires:       emacs(bin) >= %{_emacs_version}


%description -n emacs-%{name}
An Emacs mode for editing Vala source code.

%package -n emacs-%{name}-el
Summary:        Elisp source files for emacs-%{name}
Group:          Applications/Editors
License:        GPLv2+

BuildArch:      noarch
Requires:       emacs-%{name} = %{version}-%{release}

%description -n emacs-%{name}-el
This package contains the elisp source files for Vala under GNU
Emacs. You do not need to install this package to run Vala. Install
the emacs-%{name} package to use Vala with GNU Emacs.


%prep
%setup -q


%build
%configure --enable-vapigen
# Don't use rpath!
sed -i 's|/lib /usr/lib|/lib /usr/lib /lib64 /usr/lib64|' libtool
make %{?_smp_mflags}
# Compile emacs module
mkdir emacs-vala && cd emacs-vala && cp -p %{SOURCE1} .
%{_emacs_bytecompile} vala-mode.el
# and copy its licensing file
cp -p %{SOURCE3} COPYING


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
# own this directory for third-party *.vapi files
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vala
rm $RPM_BUILD_ROOT%{_libdir}/libvala-%{api_ver}.la

# Emacs mode files
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
cp -p emacs-vala/*.el* $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}
cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_emacs_sitestartdir}


%check
# make check


%if 0%{?fedora} >= 13
%else
%clean
rm -rf $RPM_BUILD_ROOT
%endif


%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig


%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
%{_bindir}/vala-%{api_ver}
%{_bindir}/valac-%{api_ver}
%{_datadir}/vala
%{_datadir}/vala-%{api_ver}
%{_libdir}/libvala-%{api_ver}.so.*
%{_mandir}/*/valac*

%files devel
%defattr(-,root,root,-)
%{_includedir}/vala-%{api_ver}
%{_libdir}/libvala-%{api_ver}.so
%{_libdir}/pkgconfig/libvala-%{api_ver}.pc
# directory ownership satisfied by this chain:
# vala-devel R vala R gtk2-devel R automake
%{_datadir}/aclocal/vala.m4

%files tools
%defattr(-,root,root,-)
%{_bindir}/vala-gen-introspect
%{_bindir}/vapicheck
%{_bindir}/vapigen
%{_bindir}/vala-gen-introspect-%{api_ver}
%{_bindir}/vapicheck-%{api_ver}
%{_bindir}/vapigen-%{api_ver}
%{_libdir}/vala-%{api_ver}
%{_mandir}/*/*gen*

%files doc
%defattr(-,root,root,-)
%doc %{_datadir}/devhelp/books/vala-%{api_ver}

%files -n emacs-%{name}
%defattr(-,root,root,-)
%doc emacs-vala/COPYING
%dir %{_emacs_sitelispdir}/%{name}
%{_emacs_sitelispdir}/%{name}/*.elc
%{_emacs_sitestartdir}/*.el

%files -n emacs-%{name}-el
%defattr(-,root,root,-)
%{_emacs_sitelispdir}/%{name}/*.el


%changelog
* Mon Feb  7 2011 Michel Salim <salimma@fedoraproject.org> - 0.11.5-2
- Own %%{_datadir}/vala directory (# 661603)

* Wed Feb  2 2011 Christopher Aillon <caillon@redhat.com> - 0.11.5-1
- Update to 0.11.5

* Mon Jan 17 2011 Matthias Clasen <mclasen@redhat.com> - 0.11.4-1
- Update to 0.11.4

* Fri Jan  7 2011 Peter Robinson <pbrobinson@gmail.com> - 0.11.3-1
- Update to 0.11.3
- disable make check as its currently broken

* Tue Nov  9 2010 Peter Robinson <pbrobinson@gmail.com> - 0.11.2-1
- Update to 0.11.2

* Sun Nov  7 2010 Michel Salim <salimma@fedoraproject.org> - 0.11.1-2
- Improved rpath handling, allowing test suite to run

* Sat Nov  6 2010 Michel Salim <salimma@fedoraproject.org> - 0.11.1-1
- Update to 0.11.1
- Drop unneeded build requirements

* Tue Oct 19 2010 Michel Salim <salimma@fedoraproject.org> - 0.11.0-1
- Update to 0.11.0

* Wed Sep 29 2010 jkeating - 0.10.0-2
- Rebuilt for gcc bug 634757

* Wed Sep 22 2010 Matthias Clasen <mclasen@redhat.com> - 0.10.0-1
- Update to 0.10.0
- Work with gobject-introspection >= 0.9.5

* Sun Sep 12 2010 Michel Salim <salimma@fedoraproject.org> - 0.9.8-1
- Update to 0.9.8
- Make -doc subpackage noarch
- Mark -doc files as %%doc

* Wed Aug 25 2010 Brian Pepple <bpepple@fedoraproject.org> - 0.9.7-1
- Update to 0.9.7.
- Remove clean section & buildroot. No longer needed.

* Mon Aug  9 2010 Michel Salim <salimma@fedoraproject.org> - 0.9.5-1
- Update to 0.9.5

* Mon Aug  2 2010 Peter Robinson <pbrobinson@gmail.com> - 0.9.4-1
- Update to 0.9.4

* Thu Jul 15 2010 Michel Salim <salimma@fedoraproject.org> - 0.9.3-1
- Update to 0.9.3

* Mon Jul 12 2010 Michel Salim <salimma@fedoraproject.org> - 0.9.2-2
- Add COPYING file to emacs-vala

* Sat Jul  3 2010 Michel Salim <salimma@fedoraproject.org> - 0.9.2-1
- Update to 0.9.2

* Sun Jun 13 2010 Michel Salim <salimma@fedoraproject.org> - 0.9.1-1
- Update to 0.9.1
- Make emacs-vala subpackage noarch; split off source file to -el subpackage
  according to Emacs packaging guidelines

* Tue Apr 27 2010 Michel Salim <salimma@fedoraproject.org> - 0.8.1-1
- Update to 0.8.1

* Fri Apr  9 2010 Peter Robinson <pbrobinson@gmail.com> - 0.8.0-1
- Update to new major release 0.8.0

* Tue Mar  2 2010 Peter Robinson <pbrobinson@gmail.com> - 0.7.10-1
- Update to 0.7.10

* Tue Jan  5 2010 Peter Robinson <pbrobinson@gmail.com> - 0.7.9-1
- Update to 0.7.9

* Tue Nov 17 2009 Peter Robinson <pbrobinson@gmail.com> - 0.7.8-1
- Update to 0.7.8

* Sat Oct  3 2009 Michel Salim <salimma@fedoraproject.org> - 0.7.7-1
- Update to 0.7.7

* Thu Aug 20 2009 Michel Salim <salimma@fedoraproject.org> - 0.7.5-1
- Update to 0.7.5

* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Jul 14 2009 Michel Salim <salimma@fedoraproject.org> - 0.7.4-2
- Patch broken ModuleInit attribute (upstream bug 587444)

* Tue Jul  7 2009 Michel Salim <salimma@fedoraproject.org> - 0.7.4-1
- Update to 0.7.4

* Wed Jun  3 2009 Peter Robinson <pbrobinson@gmail.com> - 0.7.3-1
- Update to 0.7.3

* Sat Apr 18 2009 Michel Salim <salimma@fedoraproject.org> - 0.6.1-1
- Update to 0.6.1

* Mon Feb 23 2009 Michel Salim <salimma@fedoraproject.org> - 0.5.7-1
- Update to 0.5.7

* Tue Jan 27 2009 Michel Salim <salimma@fedoraproject.org> - 0.5.6-1
- Update to 0.5.6

* Tue Dec 16 2008 Michel Salim <salimma@fedoraproject.org> - 0.5.3-1
- Update to 0.5.3

* Mon Dec 15 2008 Michel Salim <salimma@fedoraproject.org> - 0.5.2-3
- Fix bug in Emacs version detection

* Sat Dec 13 2008 Michel Salim <salimma@fedoraproject.org> - 0.5.2-2
- Use buildsystem variables to determine available Emacs version
- BR on gecko-devel >= 1.9, since older version is also in RHEL repo

* Sat Dec 13 2008 Michel Salim <salimma@fedoraproject.org> - 0.5.2-1
- Update to 0.5.2

* Sun Nov 23 2008 Michel Salim <salimma@fedoraproject.org> - 0.5.1-1
- Update to 0.5.1

* Fri Aug 22 2008 Michel Salim <salimma@fedoraproject.org> - 0.3.5-1
- Update to 0.3.5

* Tue Jul 15 2008 Michel Salim <salimma@fedoraproject.org> - 0.3.4-2
- Add vala-mode for editing Vala code in Emacs

* Tue Jul  1 2008 Lennart Poettering <lpoetter@redhat.com> - 0.3.4-1
- Update to 0.3.4

* Wed Jun  4 2008 Michel Salim <salimma@fedoraproject.org> - 0.3.3-1
- Update to 0.3.3

* Fri May 16 2008 Michel Salim <salimma@fedoraproject.org> - 0.3.2-1
- Update to 0.3.2

* Thu Apr 10 2008 Michel Salim <salimma@fedoraproject.org> - 0.2.0-1
- Update to 0.2.0

* Wed Mar  5 2008 Michel Salim <salimma@fedoraproject.org> - 0.1.7-1
- Update to 0.1.7
- -tool subpackage now requires gnome-common, intltool and libtoolize
  for out-of-the-box vala-gen-project support

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 0.1.6-2
- Autorebuild for GCC 4.3

* Sat Jan 19 2008 Michel Salim <salimma@fedoraproject.org> - 0.1.6-1
- Update to 0.1.6
- Revert vapi addition, needed declarations have been inlined (r846)
- Rename -docs subpackage to -doc, to comply with guidelines

* Tue Jan 15 2008 Michel Salim <salimma@fedoraproject.org> - 0.1.5-5
- Manually add Gee vapi file to package (bz #428692)

* Tue Dec  4 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.5-4
- Backport patch to autodetect location of automake shared files

* Tue Dec  4 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.5-3
- Add build dependency on gtk2-devel

* Tue Dec  4 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.5-2
- Enable project generator tool

* Tue Nov 27 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.5-1
- Update to 0.1.5

* Sun Nov 11 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.4-2
- Add build dependency on devhelp

* Fri Oct 19 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.4-1
- Update to 0.1.4
- Put newly-added documentation in its own subpackage (depends on devhelp)

* Mon Sep 17 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.3-5
- vapigen subpackage: add missing Require: on perl-XML-Twig

* Sat Sep  8 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.3-4
- Split -vapigen subpackage. It is functionally self-contained and the license
  is more restricted
- Updated license declarations

* Wed Sep  5 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.3-3
- Licensing and URL updates

* Tue Sep  4 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.3-2
- Enable binding generation tools

* Sun Sep  2 2007 Michel Salim <salimma@fedoraproject.org> - 0.1.3-1
- Update to 0.1.3

* Sun Mar 25 2007 Michel Salim <salimma@fedoraproject.org> - 0.0.8-1
- Update to 0.0.8

* Wed Mar  7 2007 Michel Salim <salimma@fedoraproject.org> - 0.0.7-1
- Update to 0.0.7

* Wed Feb 28 2007 Michel Salim <salimma@fedoraproject.org> - 0.0.6-1
- Update to 0.0.6

* Mon Nov  6 2006 Michel Salim <salimma@fedoraproject.org> - 0.0.5-1
- Initial package