|
Packit |
3ff1e7 |
General
|
|
Packit |
3ff1e7 |
=======
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
libquvi is a cross-platform library with C API for parsing
|
|
Packit |
3ff1e7 |
adobe flash media properties.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
gitweb: <http://repo.or.cz/w/libquvi.git>
|
|
Packit |
3ff1e7 |
Home : <http://quvi.sourceforge.net/>
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Installation
|
|
Packit |
3ff1e7 |
============
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Notes
|
|
Packit |
3ff1e7 |
-----
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* This document does not cover how to use GNU Autotools for building
|
|
Packit |
3ff1e7 |
and installing software, instead, refer to the GNU Autotools documentation,
|
|
Packit |
3ff1e7 |
the INSTALL file and the "configure --help" output for more information.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* If you're not familiar with GNU Autotools and/or installing software
|
|
Packit |
3ff1e7 |
from the source code, you may prefer to install libquvi using a binary
|
|
Packit |
3ff1e7 |
package, instead. You can find libquvi packaged for many distros already.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* If you have previously installed libquvi from the source code to your
|
|
Packit |
3ff1e7 |
system, the recommended practice is to uninstall the previous installation
|
|
Packit |
3ff1e7 |
first, before you continue with the new one. You would, typically, run
|
|
Packit |
3ff1e7 |
"make uninstall" (as root if necessary) from the same directory you ran
|
|
Packit |
3ff1e7 |
"make install" from.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* If you are building libquvi from the git repository code, run the
|
|
Packit |
3ff1e7 |
`bootstrap.sh' first. This generates the configuration files. See also
|
|
Packit |
3ff1e7 |
the -h output for any additional info.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Simple install procedure
|
|
Packit |
3ff1e7 |
------------------------
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
% ./configure && make
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
[ Become root if necessary ]
|
|
Packit |
3ff1e7 |
% make install
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The configure script supports also the following options which are
|
|
Packit |
3ff1e7 |
relevant to the installation:
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
--with-scriptsdir=DIR (default:no)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Look in DIR for libquvi-scripts. This negates the default check for
|
|
Packit |
3ff1e7 |
the libquvi-scripts package. DIR is presumed to contain similar
|
|
Packit |
3ff1e7 |
directory structure to the $prefix/share/libquvi-scripts/ directory
|
|
Packit |
3ff1e7 |
which is normally created by a typical libquvi-scripts installation.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
--with(out)-manual (default:yes)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Install the manual page for libquvi.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Requirements
|
|
Packit |
3ff1e7 |
------------
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* libquvi-scripts 0.9
|
|
Packit |
3ff1e7 |
http://quvi.sourceforge.net/
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* libcurl 7.21.0
|
|
Packit |
3ff1e7 |
http://curl.haxx.se/
|
|
Packit |
3ff1e7 |
$ sudo aptitude install libcurl4-gnutls-dev
|
|
Packit |
3ff1e7 |
(or libcurl4-openssl-dev)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* GLib 2.24.2
|
|
Packit |
3ff1e7 |
http://library.gnome.org/devel/glib/
|
|
Packit |
3ff1e7 |
$ sudo aptitude install libglib2.0-dev
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* liblua 5.1
|
|
Packit |
3ff1e7 |
http://lua.org/
|
|
Packit |
3ff1e7 |
$ sudo aptitude install liblua5.1-0-dev
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
2013-06-04: (Debian, Wheezy)
|
|
Packit |
3ff1e7 |
At the time of writing this, the lua-socket (listed among the
|
|
Packit |
3ff1e7 |
libquvi-scripts prerequisites) package does not contain the
|
|
Packit |
3ff1e7 |
files for Lua 5.2, forcing the installation of liblua 5.1.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* libproxy 0.3.1
|
|
Packit |
3ff1e7 |
http://code.google.com/p/libproxy/
|
|
Packit |
3ff1e7 |
$ sudo aptitude install libproxy-dev
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* libgcrypt 1.4.5
|
|
Packit |
3ff1e7 |
http://directory.fsf.org/wiki/Libgcrypt
|
|
Packit |
3ff1e7 |
$ sudo aptitude install libgcrypt11-dev
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* pkg-config for tracking the compilation flags needed for libraries
|
|
Packit |
3ff1e7 |
http://www.freedesktop.org/software/pkgconfig/
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* GNU gettext is recommended
|
|
Packit |
3ff1e7 |
http://www.gnu.org/software/gettext/
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* GNU make is recommended
|
|
Packit |
3ff1e7 |
http://www.gnu.org/software/make/
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* Doxygen for producing the C API reference documentation
|
|
Packit |
3ff1e7 |
http://www.stack.nl/~dimitri/doxygen/
|
|
Packit |
3ff1e7 |
(to produce PDF: install LaTeX, e.g. TeX Live or teTeX, refer to
|
|
Packit |
3ff1e7 |
the Doxygen documentation for more information)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
See also "Documentation".
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* asciidoc (a2x) for producing the manual pages
|
|
Packit |
3ff1e7 |
http://www.methods.co.nz/asciidoc/
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
See also "Documentation".
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Installation directories
|
|
Packit |
3ff1e7 |
------------------------
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The location of the installed files is determined by the --prefix
|
|
Packit |
3ff1e7 |
and the --exec-prefix options given to the configure script.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The .pc file for libquvi is installed in $exec_prefix/lib/pkgconfig to provide
|
|
Packit |
3ff1e7 |
information when compiling packages that depend on libquvi.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
If you set PKG_CONFIG_PATH so that it points to this directory, then you
|
|
Packit |
3ff1e7 |
can get the correct include and library flags for compiling a libquvi
|
|
Packit |
3ff1e7 |
application with:
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
% pkg-config --cflags libquvi-0.9
|
|
Packit |
3ff1e7 |
% pkg-config --libs libquvi-0.9
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Documentation
|
|
Packit |
3ff1e7 |
=============
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
To build the documentation suite, you need to have the doxygen/asciidoc
|
|
Packit |
3ff1e7 |
-toolchain. Because not all users are inclined to install these tools,
|
|
Packit |
3ff1e7 |
the default build target does not build the documentation. See
|
|
Packit |
3ff1e7 |
"make doc" below for more information.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The libquvi documentation is split into:
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
- libquvi C API reference documentation
|
|
Packit |
3ff1e7 |
(generated by doxygen from the libquvi source code comments)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The dist does NOT contain the libquvi C API reference documentation.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Installation: The build suite does not currently install the C API
|
|
Packit |
3ff1e7 |
reference documentation. See "make doc" and "make distdoc" below.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
- libquvi manual pages
|
|
Packit |
3ff1e7 |
(generated by asciidoc, or a2x to be precise)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Installation: The libquvi dist tarball contains prebuilt manual
|
|
Packit |
3ff1e7 |
pages, and are installed by default. See `--with(out)-manual' above.
|
|
Packit |
3ff1e7 |
See also "make doc" below.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Make targets:
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'make doc' builds the C API reference documentation from the doxygen
|
|
Packit |
3ff1e7 |
comments. This produces the 'html' and 'latex' versions of the
|
|
Packit |
3ff1e7 |
documentation. They are stored under the directory:
|
|
Packit |
3ff1e7 |
$top_builddir/doc/dox/libquvi-$VERSION
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Additionally, this target generates the manual pages if a2x(1) was
|
|
Packit |
3ff1e7 |
found by configure. The manual page files can be found at:
|
|
Packit |
3ff1e7 |
$top_srcdir/doc/man3/ -- input
|
|
Packit |
3ff1e7 |
$top_builddir/doc/man3/ -- output
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The Doxygen configuration file can be found at:
|
|
Packit |
3ff1e7 |
$top_srcdir/doc/dox/Doxygen.in -- input
|
|
Packit |
3ff1e7 |
$top_builddir/doc/dox/Doxygen -- output
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
See also "Documentation".
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'make distdoc' like above but produces tarballs from the documentation.
|
|
Packit |
3ff1e7 |
These tarballs are stored under the $top_builddir/ directory.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Alternatively, these targets may be run individually:
|
|
Packit |
3ff1e7 |
'make distdoc-html'
|
|
Packit |
3ff1e7 |
'make distdoc-pdf'
|
|
Packit |
3ff1e7 |
'make distdoc-latex' (depends on distdoc-pdf)
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Note that it is that Doxygen produces the Makefile that will be
|
|
Packit |
3ff1e7 |
used to generate the PDF file from the LaTeX files.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Tests
|
|
Packit |
3ff1e7 |
=====
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The tests use the GLib framework for testing. These tests require
|
|
Packit |
3ff1e7 |
the libquvi-scripts. The tests reside in the tests/ directory.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'make check' will run the test programs listed in the TEST_PROGS
|
|
Packit |
3ff1e7 |
variable in the tests/Makefile.am . 'make check' will fail if any
|
|
Packit |
3ff1e7 |
of the tests fail. This is identical to running 'make test'.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'make distcheck' will fail if any of the tests fail.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
NOTE: Define either
|
|
Packit |
3ff1e7 |
DISTCHECK_CONFIGURE_FLAGS=--with--scriptsdir=DIR
|
|
Packit |
3ff1e7 |
or
|
|
Packit |
3ff1e7 |
PKG_CONFIG_PATH=DIR
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
See also the --with-scriptsdir description above
|
|
Packit |
3ff1e7 |
(under "Simple install procedure").
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'make test-mem' requires the valgrind(1) program. These tests will
|
|
Packit |
3ff1e7 |
not automatically.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The tests use the gtester(1) and gtester-report(1) commands to produce
|
|
Packit |
3ff1e7 |
the logs. These programs are part of GLib. The test programs will produce:
|
|
Packit |
3ff1e7 |
$(top_builddir)/tests/$test_program.html # gtester-report
|
|
Packit |
3ff1e7 |
$(top_builddir)/tests/$test_program.xml # gtester
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The 'test-mem' target will, additionally, produce:
|
|
Packit |
3ff1e7 |
$(top_builddir)/tests/$test_program.vgdump # valgrind
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Tests: Environment variables
|
|
Packit |
3ff1e7 |
----------------------------
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The testsuite supports the following environment variables:
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
TEST_INTERNET will enable the tests that require an Internet connection.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
TEST_VERBOSE will enable verbose libcurl(3) output.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
TEST_SKIP will disable the specified tests. This list is a comma-separated
|
|
Packit |
3ff1e7 |
list of test names. The comma-separated values are treated as regular
|
|
Packit |
3ff1e7 |
expression patterns.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Example:
|
|
Packit |
3ff1e7 |
% env TEST_VERBOSE=1 TEST_SKIP=test_quvi,test_resolve_ make test
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Tests: Scripts
|
|
Packit |
3ff1e7 |
--------------
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
The tests/ directory contains:
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'find_tests.sh' will dump a list of available tests.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
'run_tests.sh' is a convenience script that wraps many of the
|
|
Packit |
3ff1e7 |
testsuite features making them available via GUI. Note that
|
|
Packit |
3ff1e7 |
this script requires zenity(1).
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
For more info, run these scripts with the '-h' switch.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Tests: Notes
|
|
Packit |
3ff1e7 |
------------
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* The test 'test/supports' uses the HTTP proxy address
|
|
Packit |
3ff1e7 |
"http://localhost:12345" to simulate a network access error.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
If you have something listening to that port, you may want to edit
|
|
Packit |
3ff1e7 |
test/supports.c to use some other port.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
* Apart from the above, the testsuite does not force any specific
|
|
Packit |
3ff1e7 |
proxy address with the Internet requiring tests.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
If you need to use a proxy, refer to the curl(1) manual page for
|
|
Packit |
3ff1e7 |
a complete list of the supported environment variables (e.g. http_proxy).
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
libquvi uses libcurl to connect to the internet.
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
How to report bugs
|
|
Packit |
3ff1e7 |
==================
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Please see: http://quvi.sourceforge.net/#bugs
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Patches
|
|
Packit |
3ff1e7 |
=======
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
Please see: http://quvi.sourceforge.net/contrib/
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
License
|
|
Packit |
3ff1e7 |
=======
|
|
Packit |
3ff1e7 |
|
|
Packit |
3ff1e7 |
libquvi is Free Software licensed under the GNU Affero GPLv3+
|