glfs/general/prog/vala.xml
Pierre Labastie e1e58be454 Remove all ftp urls
neither firefox nor epiphany can download them, and they are not
well maintained, because rarely tested.
This is WIP because the "(HTTP)" part of "Download (HTTP)" will
need to be removed too.
But let's see what users think first...
2023-10-15 21:43:08 +02:00

263 lines
8.2 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY vala-download-http "&gnome-download-http;/vala/&vala-major-version;/vala-&vala-version;.tar.xz">
<!ENTITY vala-download-ftp " ">
<!ENTITY vala-md5sum "c8d3e343c93b1e4c1070d662da768de6">
<!ENTITY vala-size "3.8 MB">
<!ENTITY vala-buildsize "199 MB (add 18 MB for tests)">
<!ENTITY vala-time "0.5 SBU (add 1.3 SBU for tests; both using parallelism=4)">
]>
<sect1 id="vala" xreflabel="Vala-&vala-version;">
<?dbhtml filename="vala.html"?>
<title>Vala-&vala-version;</title>
<indexterm zone="vala">
<primary sortas="a-Vala">Vala</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Vala</title>
<para>
<application>Vala</application> is a new programming language that
aims to bring modern programming language features to
<application>GNOME</application> developers without imposing any
additional runtime requirements and without using a different ABI
compared to applications and libraries written in C.
</para>
&lfs120_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&vala-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&vala-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &vala-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &vala-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &vala-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &vala-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Vala Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="glib2"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="graphviz"/> (Required for valadoc)
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="dbus"/> (Required for the tests),
<xref linkend="libxslt"/> (Required for generating the documentation),
<ulink url="https://ftpmirror.gnu.org/gnu/help2man/">help2man</ulink>,
<ulink url="https://github.com/relaxng/jing-trang">jing</ulink>, and
<ulink url="https://weasyprint.org/">weasyprint</ulink>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Vala</title>
<!-- https://gitlab.gnome.org/GNOME/vala/-/issues/1485 -->
<para>
At first, fix an issue causing <command>vapigen</command> to crash
building some packages (for example NetworkManager):
</para>
<screen><userinput>sed -e "/next_pos =/s/$/ \
char buf[16]; \
Memory.copy (buf, next_pos, \
(end - next_pos >= buf.length ? buf.length - 1 : end - next_pos));/" \
-e 's/(string) next_pos/(string) buf/' \
-i vala/valamarkupreader.vala</userinput></screen>
<para>
Install <application>Vala</application> by running the following
commands:
</para>
<screen><userinput>./configure --prefix=/usr &amp;&amp;
make bootstrap</userinput></screen>
<para>
To test the results, issue: <command>make check</command>.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>bootstrap</parameter>: This <command>make</command>
target forces the building system to build the package twice and use
the <command>vala</command> executable produced in the first build
to regenerate the <filename class="extension">.c</filename> files
from the <filename class="extension">.vala</filename> files if needed.
Since the <command>vala</command> executable is not installed yet,
this is necessary for really fixing the crash because the fix has
modified a <filename class="extension">.vala</filename> file.
</para>
<para>
<option>--disable-valadoc</option>: This option is
required if <xref linkend="graphviz"/> is not installed.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Library</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
vala,
vala-&vala-major-version;,
valac,
valadoc,
vala-gen-introspect, and
vapigen (symlinks);
valac-&vala-major-version;,
valadoc-&vala-major-version;,
vala-gen-introspect-&vala-major-version;, and
vapigen-&vala-major-version;
</seg>
<seg>
libvala-&vala-major-version;.so and
libvaladoc-&vala-major-version;.so
</seg>
<seg>
/usr/include/vala-&vala-major-version;,
/usr/include/valadoc-&vala-major-version;,
/usr/lib/vala-&vala-major-version;,
/usr/lib/valadoc-&vala-major-version;,
/usr/share/vala,
/usr/share/vala-&vala-major-version;,
/usr/share/valadoc-&vala-major-version;, and
/usr/share/devhelp/books/vala-&vala-major-version;
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="valac">
<term><command>valac</command></term>
<listitem>
<para>
is a compiler that translates <application>Vala</application>
source code into C source and header files
</para>
<indexterm zone="vala valac">
<primary sortas="b-valac">valac</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="valadoc">
<term><command>valadoc</command></term>
<listitem>
<para>
is a documentation generator for generating API documentation
from <application>Vala</application> source code based on libvala
</para>
<indexterm zone="vala valadoc">
<primary sortas="b-valadoc">valadoc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="vala-gen-introspect">
<term><command>vala-gen-introspect</command></term>
<listitem>
<para>
generates a GI file for GObject and
<application>GLib</application> based packages
</para>
<indexterm zone="vala vala-gen-introspect">
<primary sortas="b-vala-gen-introspect">vala-gen-introspect</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="vapigen">
<term><command>vapigen</command></term>
<listitem>
<para>
is an utility which generates <application>Vala</application> API
(VAPI) files from GI files
</para>
<indexterm zone="vala vapigen">
<primary sortas="b-vapigen">vapigen</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libvala">
<term><filename class="libraryfile">libvala-&vala-major-version;.so</filename></term>
<listitem>
<para>
contains the <application>Vala</application> API functions
</para>
<indexterm zone="vala libvala">
<primary sortas="c-libvala">libvala-&vala-major-version;.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>