source: general/prog/vala.xml@ e7bef35

12.1 12.2 gimp3 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128
Last change on this file since e7bef35 was e34c9a40, checked in by Xi Ruoyao <xry111@…>, 12 months ago

vala: Fix a crash building NetworkManager

  • Property mode set to 100644
File size: 8.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY vala-download-http "&gnome-download-http;/vala/&vala-major-version;/vala-&vala-version;.tar.xz">
8 <!ENTITY vala-download-ftp "&gnome-download-ftp;/vala/&vala-major-version;/vala-&vala-version;.tar.xz">
9 <!ENTITY vala-md5sum "c8d3e343c93b1e4c1070d662da768de6">
10 <!ENTITY vala-size "3.8 MB">
11 <!ENTITY vala-buildsize "199 MB (add 18 MB for tests)">
12 <!ENTITY vala-time "0.5 SBU (add 1.3 SBU for tests; both using parallelism=4)">
13]>
14
15<sect1 id="vala" xreflabel="Vala-&vala-version;">
16 <?dbhtml filename="vala.html"?>
17
18 <title>Vala-&vala-version;</title>
19
20 <indexterm zone="vala">
21 <primary sortas="a-Vala">Vala</primary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title>Introduction to Vala</title>
26
27 <para>
28 <application>Vala</application> is a new programming language that
29 aims to bring modern programming language features to
30 <application>GNOME</application> developers without imposing any
31 additional runtime requirements and without using a different ABI
32 compared to applications and libraries written in C.
33 </para>
34
35 &lfs120_checked;
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&vala-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&vala-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &vala-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &vala-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &vala-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &vala-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Vala Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Required</bridgehead>
74 <para role="required">
75 <xref linkend="glib2"/>
76 </para>
77
78 <bridgehead renderas="sect4">Recommended</bridgehead>
79 <para role="recommended">
80 <xref linkend="graphviz"/> (Required for valadoc)
81 </para>
82
83 <bridgehead renderas="sect4">Optional</bridgehead>
84 <para role="optional">
85 <xref linkend="dbus"/> (Required for the tests),
86 <xref linkend="libxslt"/> (Required for generating the documentation),
87 <ulink url="https://ftpmirror.gnu.org/gnu/help2man/">help2man</ulink>,
88 <ulink url="https://github.com/relaxng/jing-trang">jing</ulink>, and
89 <ulink url="https://weasyprint.org/">weasyprint</ulink>
90 </para>
91
92 </sect2>
93
94 <sect2 role="installation">
95 <title>Installation of Vala</title>
96
97 <!-- https://gitlab.gnome.org/GNOME/vala/-/issues/1485 -->
98 <para>
99 At first, fix an issue causing <command>vapigen</command> to crash
100 building some packages (for example NetworkManager):
101 </para>
102
103<screen><userinput>sed -e "/next_pos =/s/$/ \
104 char buf[16]; \
105 Memory.copy (buf, next_pos, \
106 (end - next_pos >= buf.length ? buf.length - 1 : end - next_pos));/" \
107 -e 's/(string) next_pos/(string) buf/' \
108 -i vala/valamarkupreader.vala</userinput></screen>
109
110 <para>
111 Install <application>Vala</application> by running the following
112 commands:
113 </para>
114
115<screen><userinput>./configure --prefix=/usr &amp;&amp;
116make bootstrap</userinput></screen>
117
118 <para>
119 To test the results, issue: <command>make check</command>.
120 </para>
121
122 <para>
123 Now, as the <systemitem class="username">root</systemitem> user:
124 </para>
125
126<screen role="root"><userinput>make install</userinput></screen>
127
128 </sect2>
129
130 <sect2 role="commands">
131 <title>Command Explanations</title>
132
133 <para>
134 <parameter>bootstrap</parameter>: This <command>make</command>
135 target forces the building system to build the package twice and use
136 the <command>vala</command> executable produced in the first build
137 to regenerate the <filename class="extension">.c</filename> files
138 from the <filename class="extension">.vala</filename> files if needed.
139 Since the <command>vala</command> executable is not installed yet,
140 this is necessary for really fixing the crash because the fix has
141 modified a <filename class="extension">.vala</filename> file.
142 </para>
143
144 <para>
145 <option>--disable-valadoc</option>: This option is
146 required if <xref linkend="graphviz"/> is not installed.
147 </para>
148 </sect2>
149
150 <sect2 role="content">
151 <title>Contents</title>
152
153 <segmentedlist>
154 <segtitle>Installed Programs</segtitle>
155 <segtitle>Installed Library</segtitle>
156 <segtitle>Installed Directories</segtitle>
157
158 <seglistitem>
159 <seg>
160 vala,
161 vala-&vala-major-version;,
162 valac,
163 valadoc,
164 vala-gen-introspect, and
165 vapigen (symlinks);
166
167 valac-&vala-major-version;,
168 valadoc-&vala-major-version;,
169 vala-gen-introspect-&vala-major-version;, and
170 vapigen-&vala-major-version;
171 </seg>
172 <seg>
173 libvala-&vala-major-version;.so and
174 libvaladoc-&vala-major-version;.so
175 </seg>
176 <seg>
177 /usr/include/vala-&vala-major-version;,
178 /usr/include/valadoc-&vala-major-version;,
179 /usr/lib/vala-&vala-major-version;,
180 /usr/lib/valadoc-&vala-major-version;,
181 /usr/share/vala,
182 /usr/share/vala-&vala-major-version;,
183 /usr/share/valadoc-&vala-major-version;, and
184 /usr/share/devhelp/books/vala-&vala-major-version;
185 </seg>
186 </seglistitem>
187 </segmentedlist>
188
189 <variablelist>
190 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
191 <?dbfo list-presentation="list"?>
192 <?dbhtml list-presentation="table"?>
193
194 <varlistentry id="valac">
195 <term><command>valac</command></term>
196 <listitem>
197 <para>
198 is a compiler that translates <application>Vala</application>
199 source code into C source and header files
200 </para>
201 <indexterm zone="vala valac">
202 <primary sortas="b-valac">valac</primary>
203 </indexterm>
204 </listitem>
205 </varlistentry>
206
207 <varlistentry id="valadoc">
208 <term><command>valadoc</command></term>
209 <listitem>
210 <para>
211 is a documentation generator for generating API documentation
212 from <application>Vala</application> source code based on libvala
213 </para>
214 <indexterm zone="vala valadoc">
215 <primary sortas="b-valadoc">valadoc</primary>
216 </indexterm>
217 </listitem>
218 </varlistentry>
219
220 <varlistentry id="vala-gen-introspect">
221 <term><command>vala-gen-introspect</command></term>
222 <listitem>
223 <para>
224 generates a GI file for GObject and
225 <application>GLib</application> based packages
226 </para>
227 <indexterm zone="vala vala-gen-introspect">
228 <primary sortas="b-vala-gen-introspect">vala-gen-introspect</primary>
229 </indexterm>
230 </listitem>
231 </varlistentry>
232
233 <varlistentry id="vapigen">
234 <term><command>vapigen</command></term>
235 <listitem>
236 <para>
237 is an utility which generates <application>Vala</application> API
238 (VAPI) files from GI files
239 </para>
240 <indexterm zone="vala vapigen">
241 <primary sortas="b-vapigen">vapigen</primary>
242 </indexterm>
243 </listitem>
244 </varlistentry>
245
246 <varlistentry id="libvala">
247 <term><filename class="libraryfile">libvala-&vala-major-version;.so</filename></term>
248 <listitem>
249 <para>
250 contains the <application>Vala</application> API functions
251 </para>
252 <indexterm zone="vala libvala">
253 <primary sortas="c-libvala">libvala-&vala-major-version;.so</primary>
254 </indexterm>
255 </listitem>
256 </varlistentry>
257
258 </variablelist>
259
260 </sect2>
261
262</sect1>
Note: See TracBrowser for help on using the repository browser.