glfs/general/genlib/libical.xml
2024-04-01 10:37:49 -05:00

326 lines
9.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!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 libical-download-http "https://github.com/libical/libical/releases/download/v&libical-version;/libical-&libical-version;.tar.gz">
<!ENTITY libical-download-ftp " ">
<!ENTITY libical-md5sum "cc790ea49701df0335d42b89d57c04bc">
<!ENTITY libical-size "888 KB">
<!ENTITY libical-buildsize "24 MB (with tests)">
<!ENTITY libical-time "0.1 SBU (iusing parallelism=4; with tests)">
<!-- run at -j1 because it fails at -j4 -->
]>
<sect1 id="libical" xreflabel="libical-&libical-version;">
<?dbhtml filename="libical.html"?>
<title>libical-&libical-version;</title>
<indexterm zone="libical">
<primary sortas="a-libical">libical</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to libical</title>
<para>
The <application>libical</application> package contains an implementation
of the iCalendar protocols and data formats.
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&libical-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&libical-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &libical-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &libical-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &libical-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &libical-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">libical Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="cmake"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
&gobject-introspection; and
<xref linkend="vala"/> (both required for GNOME)
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="doxygen"/> (for the API documentation),
<xref linkend="graphviz"/> (for the API documentation),
<xref linkend="gtk-doc"/> (for the API documentation),
<xref linkend="icu"/>,
<xref linkend="pygobject3"/> (for some tests), and
&berkeley-db;
</para>
</sect2>
<sect2 role="installation">
<title>Installation of libical</title>
<para>
Install <application>libical</application> by running the
following commands:
</para>
<!-- Needs confirmation, but I got a race condition at -j8,
-j1 allowed the build to pass. Pierre 2019-12-06
I always have it actually. Hence the entity.
Works at -j8 and -j4 for version 3.0.18
&parallel_issues;-->
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D SHARED_ONLY=yes \
-D ICAL_BUILD_DOCS=false \
-D ICAL_BUILD_EXAMPLES=false \
-D GOBJECT_INTROSPECTION=true \
-D ICAL_GLIB_VAPI=true \
.. &amp;&amp;
make</userinput></screen>
<para>
If you have <xref linkend="doxygen"/>, <xref linkend="graphviz"/>,
and <xref linkend="gtk-doc"/>
installed and wish to build the API documentation, you should
remove the <parameter>-DICAL_BUILD_DOCS=false</parameter> switch
and issue:
</para>
<screen remap="doc"><userinput>make docs</userinput></screen>
<para>
To test the results, issue: <command>make test</command>.
<!-- One test, timezones, is known to fail on SysV systems. -->
<!-- On systemd, we symlink the current timezone to
/etc/localtime, which is what libical expects.
This is now done on SysV as well.-->
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<para>
If you have built the API documentation, install by issuing, as
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"
remap="doc"><userinput>install -vdm755 /usr/share/doc/libical-&libical-version;/html &amp;&amp;
cp -vr apidocs/html/* /usr/share/doc/libical-&libical-version;/html</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>-D CMAKE_BUILD_TYPE=Release</parameter>: This switch is used
to apply higher level of the compiler optimizations.
</para>
<para>
<parameter>-D SHARED_ONLY=yes</parameter>: This switch is used
in order to only build the shared libraries.
</para>
<para>
<parameter>-D ICAL_BUILD_DOCS=false</parameter>: This switch prevents
building the <application>GTK</application> documentation. Remove
if you want to build the documentation.
</para>
<para>
<parameter>-D ICAL_BUILD_EXAMPLES=false</parameter>: This switch prevents
building examples. Remove if you want to build them.
</para>
<para>
<parameter>-D GOBJECT_INTROSPECTION=true</parameter>: This switch is used
to generate GObject metadata bindings.
</para>
<para>
<parameter>-D ICAL_GLIB_VAPI=true</parameter>: This switch is used
in order to build bindings for <xref linkend="vala"/>.
</para>
<para>
<option>-D USE_BUILTIN_TZDATA=yes</option>: This switch is used
in order to build using your own timezone data.
</para>
<!-- No CMake equivalents
<para>
<parameter>- -enable-cxx</parameter>: This switch enables
<application>libical</application> C++ library.
</para>
<para>
<option>- -enable-python</option>: This switch enables
<application>libical</application> Python bindings.
</para> -->
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directory</segtitle>
<seglistitem>
<seg>
None
</seg>
<seg>
libical_cxx.so,
libical.so,
libical-glib.so,
libicalss_cxx.so,
libicalss.so,
and libicalvcal.so
</seg>
<seg>
/usr/include/libical,
/usr/include/libical-glib,
/usr/lib/cmake/LibIcal,
/usr/libexec/libical,
/usr/share/gtk-doc/html/libical-glib (optional),
and /usr/share/doc/libical-&libical-version;/html
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="libical-lib">
<term><filename class="libraryfile">libical.so</filename></term>
<listitem>
<para>
contains the <application>libical</application> API
functions
</para>
<indexterm zone="libical libical-lib">
<primary sortas="c-libical">libical.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libical_cxx-lib">
<term><filename class="libraryfile">libical_cxx.so</filename></term>
<listitem>
<para>
contains the <application>libical</application> C++ bindings
</para>
<indexterm zone="libical libical_cxx-lib">
<primary sortas="c-libical_cxx">libical_cxx.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libical-glib">
<term><filename class="libraryfile">libical-glib.so</filename></term>
<listitem>
<para>
contains the <application>libical</application> glib bindings
</para>
<indexterm zone="libical libical-glib">
<primary sortas="c-libical-glib">libical-glib.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libicalss">
<term><filename class="libraryfile">libicalss.so</filename></term>
<listitem>
<para>
is a library that allows you to store iCal component data
to disk in a variety of ways
</para>
<indexterm zone="libical libicalss">
<primary sortas="c-libicalss">libicalss.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libicalss_cxx">
<term><filename class="libraryfile">libicalss_cxx.so</filename></term>
<listitem>
<para>
contains the <application>libicalss</application> C++
bindings
</para>
<indexterm zone="libical libicalss_cxx">
<primary sortas="c-libicalss_cxx">libicalss_cxx.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libicalvcal">
<term><filename class="libraryfile">libicalvcal.so</filename></term>
<listitem>
<para>
is a vCard/vCalendar C interface
</para>
<indexterm zone="libical libicalvcal">
<primary sortas="c-libicalvcal">libicalvcal.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>