libical-3.0.18

Introduction to libical

The libical package contains an implementation of the iCalendar protocols and data formats.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

libical Dependencies

Required

CMake-3.31.2

Recommended

Optional

Doxygen-1.12.0 (for the API documentation), Graphviz-12.2.1 (for the API documentation), GTK-Doc-1.34.0 (for the API documentation), ICU-76.1, PyGObject-3.50.0 (for some tests), and Berkeley DB (deprecated)

Installation of libical

If ICU-76.1 is installed, fix an incompatibility with ICU 75 or later:

sed -i '/getKeywordValuesForLocale/s/NULL/""/' src/libical/icalrecur.c

Install libical by running the following commands:

mkdir build &&
cd    build &&

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        \
      .. &&
make

If you have Doxygen-1.12.0, Graphviz-12.2.1, and GTK-Doc-1.34.0 installed and wish to build the API documentation, you should remove the -D ICAL_BUILD_DOCS=false switch and issue:

make docs

To test the results, issue: make test.

Now, as the root user:

make install

If you have built the API documentation, install by issuing, as root user:

install -vdm755 /usr/share/doc/libical-3.0.18/html &&
cp -vr apidocs/html/* /usr/share/doc/libical-3.0.18/html

Command Explanations

-D CMAKE_BUILD_TYPE=Release: This switch is used to apply higher level of the compiler optimizations.

-D SHARED_ONLY=yes: This switch is used in order to only build the shared libraries.

-D ICAL_BUILD_DOCS=false: This switch prevents building the GTK documentation. Remove if you want to build the documentation.

-D ICAL_BUILD_EXAMPLES=false: This switch prevents building examples. Remove if you want to build them.

-D GOBJECT_INTROSPECTION=true: This switch is used to generate GObject metadata bindings.

-D ICAL_GLIB_VAPI=true: This switch is used in order to build bindings for Vala-0.56.17.

-D USE_BUILTIN_TZDATA=yes: This switch is used in order to build using your own timezone data.

Contents

Installed Programs: None
Installed Libraries: libical_cxx.so, libical.so, libical-glib.so, libicalss_cxx.so, libicalss.so, and libicalvcal.so
Installed Directory: /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-3.0.18/html

Short Descriptions

libical.so

contains the libical API functions

libical_cxx.so

contains the libical C++ bindings

libical-glib.so

contains the libical glib bindings

libicalss.so

is a library that allows you to store iCal component data to disk in a variety of ways

libicalss_cxx.so

contains the libicalss C++ bindings

libicalvcal.so

is a vCard/vCalendar C interface