Blame README

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+