Subversion Repositories pub

Compare Revisions

No changes between revisions

Regard whitespace Rev 486 → Rev 485

/video-contact-sheet/branches/1.13/dist/docs/Makefile
File deleted
/video-contact-sheet/branches/1.13/dist/docs/src/vcs.conf.man.xml
File deleted
/video-contact-sheet/branches/1.13/dist/docs/src/flatten_settings_xml.bash
File deleted
Property changes:
Deleted: svn:executable
-*
\ No newline at end of property
/video-contact-sheet/branches/1.13/dist/docs/src/settings.man.inc.xml
File deleted
/video-contact-sheet/branches/1.13/dist/docs/src/vcs.man.xml
File deleted
Property changes:
Deleted: svn:keywords
-Rev Id Date
\ No newline at end of property
/video-contact-sheet/branches/1.13/dist/vcs.man.xml
0,0 → 1,836
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!--
$Id$
 
Useful Docbook References:
- Creating DocBook Documents - List of elements
<http://www.docbook.org/tdg5/en/html/ch02.html>
- Writing with DocBook elements - Useful commands (elements)
<http://www.ibiblio.org/godoy/sgml/docbook/howto/writing-docbook.html#WRITING-DOCBOOK-COMMANDS>
- DocBook Guide for Authors of Geant4 User Manuals - Tag Mapping Table - (X)HTML vs. DocBook
<http://geant4.web.cern.ch/geant4/workAreaUserDocKA/AuthorsInstruction/IntroDocBook.html#TagMap>
- DocBook 5: The Definitive Guide (includes list of elements)
<http://docbook.org/tdg51/en/html/docbook.html>
 
Generation of man page:
 
$ xmlto man manpage.xml
OR
$ xsltproc -''-nonet \
-''-param man.charmap.use.subset "0" \
-''-param make.year.ranges "1" \
-''-param make.single.year.ranges "1" \
/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
manpage.xml
 
Will generate vcs.1.
 
View with:
 
$ nroff -man vcs.1 | less
or
$ man vcs.1
 
Validation: xmllint -''-noout -''-valid manpage.xml
 
-->
<!ENTITY firstname "Toni">
<!ENTITY surname "Corvera">
<!-- fullname could also be set to "&firstname; &surname;". -->
<!ENTITY fullname "Toni Corvera">
<!ENTITY email "outlyer@gmail.com">
<!ENTITY section "1">
<!-- TITLE should be something like "User commands" or similar (see
http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
<!ENTITY title "Video Contact Sheet *NIX User Manual">
<!ENTITY ucpackage "VCS">
<!ENTITY package "vcs">
<!ENTITY emdash "&#x2014;">
<!ENTITY xrefinterval 'See the accepted syntax at <xref linkend="interval_format" />.'>
]>
<refentry>
<refentryinfo>
<title>&title;</title>
<productname>&package;</productname>
<author>
<firstname>&firstname;</firstname>
<surname>&surname;</surname>
<contrib />
<!-- <contrib>VCS author.</contrib> -->
<address>
<email>&email;</email>
<!-- <uri type="homepage">http://corvera.eu</uri> -->
</address>
</author>
<copyright>
<year>2007-2011</year>
<holder>&fullname;</holder>
</copyright>
<legalnotice>
<para>Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License,
Version 2 or (at your option) any later version published by
the Free Software Foundation.</para>
</legalnotice>
<edition>$Rev$</edition>
<!--<date>$Date$</date>-->
</refentryinfo>
<refmeta>
<refentrytitle>&ucpackage;</refentrytitle>
<manvolnum>&section;</manvolnum>
</refmeta>
<refnamediv>
<refname>&package;</refname>
<refpurpose>create contact sheets from videos</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>&package;</command>
<arg choice="opt" rep="repeat"><replaceable class="option">OPTION</replaceable></arg>
<arg choice="plain"><replaceable class="parameter">FILE</replaceable></arg>
<arg choice="opt" rep="repeat"><replaceable class="parameter">FILE</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>&package;</command>
<arg choice="opt"><option>--output=<replaceable>OUTPUT1</replaceable></option></arg>
<arg choice="opt"><option>--output=<replaceable>OUTPUT2</replaceable></option></arg>
<arg choice="opt"><option>...</option></arg>
<arg choice="plain"><replaceable>INPUT1</replaceable></arg>
<arg choice="opt" rep="repeat"><replaceable>INPUT2</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>&package;</command>
<group choice="opt">
<arg><option>-n <replaceable>20</replaceable></option></arg>
<arg><option>-i <replaceable>1m</replaceable></option></arg>
</group>
<arg><option>-c <replaceable>4</replaceable></option></arg>
<arg><option>-H <replaceable>120</replaceable></option></arg>
<arg rep="repeat"></arg>
<arg choice="plain" rep="repeat"><replaceable>FILE</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>&package;</command>
<!-- Help/test options.
They stop the program after outputting their related information. -->
<group choice="opt">
<arg choice="plain">
<group choice="req">
<arg choice="plain"><option>-h</option></arg>
<arg choice="plain"><option>--help</option></arg>
</group>
</arg>
<arg choice="plain">
<arg choice="plain"><option>--fullhelp</option></arg>
</arg>
<arg choice="plain">
<arg choice="plain"><option>-DD</option></arg>
</arg>
</group>
</cmdsynopsis>
<cmdsynopsis>
<command>&package;</command>
<arg choice="opt" rep="repeat"><replaceable class="option">OPTION</replaceable></arg>
<arg choice="plain"><option>--generate</option>
<group choice="req">
<arg choice="plain">config</arg>
<arg choice="plain">profile</arg>
</group>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id="description">
<title>DESCRIPTION</title>
<para><command>&package;</command> creates a preview
image from videos in a contact sheet-like format (i.e. captures from
different frames in the video are placed in a mosaic).</para>
<para>By default the output file will be named like the input file plus the
png extension. Example: &quot;<filename>file.avi</filename>&quot; will produce
a contact sheet in the file &quot;<filename>file.avi.png</filename>&quot;.</para>
<para>The default mode of operation is to obtain captures every five minutes in the
video, so the amount of captures will vary with each file. The command-line
argument <parameter>--numcaps</parameter> (<parameter>-n</parameter>) can be used
to change this behaviour or alternatively a configuration file might
be used to change the mode of operation (see <citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>).
</para>
<para>This manual page documents <command>&package;</command>,
further documentation can be found in the
<ulink url="http://p.outlyer.net/dox/vcs">online documentation</ulink> site.</para>
</refsect1><!--/DESCRIPTION-->
<refsect1 id="options">
<title>OPTIONS</title>
<para>The program follows the usual GNU command line syntax,
with long options starting with two dashes (`-'). A summary of
options is included below.</para>
<variablelist>
<varlistentry>
<term><option>-n <replaceable>number</replaceable></option></term>
<term><option>--numcaps=<replaceable>number</replaceable></option></term>
<listitem>
<para>Fixes the number of captures to obtain.</para>
<para>Sets the mode of operation to capture a fixed number of frames.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-i <replaceable>INTERVAL</replaceable></option></term>
<term><option>--interval=<replaceable>INTERVAL</replaceable></option></term>
<listitem>
<para>Sets the interval between captures.</para>
<para>Sets the mode of operation to capture at fixed intervals.</para>
<para>The number of captures will depend on the video length.</para>
<para>&xrefinterval;</para>
</listitem>
</varlistentry>
 
<varlistentry>
<term><option>-c <replaceable>NUMBER</replaceable></option></term>
<term><option>--columns=<replaceable>NUMBER</replaceable></option></term>
<listitem>
<para>Number of columns in the contact sheet.</para>
<para>The number of rows will depend on this value and the number of captures (there's no
way to set the number of rows).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-H <replaceable>HEIGHT</replaceable></option></term>
<term><option>--height=<replaceable>HEIGHT</replaceable></option></term>
<listitem>
<para>Height of captures.</para>
<para>Can be a number (of pixels) or a percentage (of the video height).</para>
<para>By default the same size as the video is used.</para>
<note>
<para>The width is derived from height and aspect ratio.</para>
</note>
<tip>
<para><replaceable>HEIGHT</replaceable> x <replaceable>WIDTH</replaceable>
can be manually forced by setting both <option>-H</option> and
<option>-a</option>, e.g. <replaceable>640x480</replaceable>:</para>
<para><literal>$ <command>vcs -a 640/480 -H 480 <replaceable><optional>...</optional></replaceable></command></literal></para>
</tip>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o <replaceable>FILENAME</replaceable></option></term>
<term><option>--output=<replaceable>FILENAME</replaceable></option></term>
<listitem>
<para>Name of output file.</para>
<para>By default the video file name plus the output
format is used (e.g. &quot;<filename>video.avi.png</filename>&quot;
for &quot;<filename>video.avi</filename>&quot;).</para>
<para>If an extension is provided, it will define the output format, otherwise
PNG will be used. I.e. <filename>sheet.jpg</filename> will produce
a JPEG file while <filename>sheet</filename> or
<filename>sheet.png</filename> will produce a PNG file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Show summary of most common options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--fullhelp</option></term>
<listitem>
<para>Show summary of all options.</para>
</listitem>
</varlistentry>
 
<varlistentry>
<term><option>-a <replaceable>ASPECT</replaceable></option></term>
<term><option>--aspect <replaceable>ASPECT</replaceable></option></term>
<listitem>
<para>Aspect ratio.</para>
<para>Accepts a floating point number or a fraction.</para>
</listitem>
</varlistentry>
 
<varlistentry>
<term><option>-f <replaceable>TIMESTAMP</replaceable></option></term>
<term><option>--from <replaceable>TIMESTAMP</replaceable></option></term>
<listitem>
<para>Set starting time. No captures will be made before this <replaceable>TIMESTAMP</replaceable>.</para>
<para>&xrefinterval;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t <replaceable>TIMESTAMP</replaceable></option></term>
<term><option>--to <replaceable>TIMESTAMP</replaceable></option></term>
<listitem>
<para>Set ending time. No captures will be made after this TIMESTAMP.</para>
<para>&xrefinterval;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-T <replaceable>TITLE</replaceable></option></term>
<term><option>--title <replaceable>TITLE</replaceable></option></term>
<listitem>
<para>Add a title above the captures.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-j</option></term>
<term><option>--jpeg</option></term>
<listitem>
<para>Output file in JPEG format.</para>
<para>The default output format is PNG.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-j2</option></term>
<term><option>--jpeg2</option></term>
<term><option>--jpeg=2</option></term>
<listitem>
<para>Output file in JPEG 2000 format.</para>
<para>The default output format is PNG.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-V</option></term>
<term><option>--dvd</option></term>
<listitem>
<para>DVD mode.</para>
<para>In this mode the input files must be the DVD
device(s) or ISO(s).</para>
<para>When in DVD mode all input files must be DVDs.</para>
<note>
<para>Implies <option>-A</option> (auto aspect ratio).</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--dvd-title <replaceable>TITLENUM</replaceable></option></term>
<listitem>
<para>DVD title to use.</para>
<para>Using 0 (the default) will use the longest title.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-M</option></term>
<term><option>--mplayer</option></term>
<listitem>
<para>Use Mplayer to capture.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-F</option></term>
<term><option>--ffmpeg</option></term>
<listitem>
<para>Use FFmpeg to capture.</para>
<para>This is the default, except in DVD mode.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-E <replaceable>OFFSET</replaceable></option></term>
<term><option>--end-offset <replaceable>OFFSET</replaceable></option></term>
<listitem>
<para>This amount of time is ignored from the end of the video.</para>
<para>This value is not used when a explicit ending time is set (<option>--to</option>).</para>
<para>Accepted formats:</para>
<itemizedlist spacing="compact">
<listitem><para>Timestamp (&xrefinterval;)</para></listitem>
<listitem><para>Percentage of video length.</para></listitem>
</itemizedlist>
<para>The default is 5.5%.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<term><option>--quiet</option></term>
<listitem>
<para>Don't print progress messages just errors.</para>
<para>Repeat to mute completely, even on error.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-d <replaceable>FEATURE</replaceable></option></term>
<term><option>--disable <replaceable>FEATURE</replaceable></option></term>
<listitem>
<para>Disable some default functionality.</para>
<para>Features that can be disabled are:</para>
<itemizedlist spacing="compact">
<listitem>
<para><replaceable>timestamps</replaceable>: use <option>-d<replaceable>t</replaceable></option> or
<option>--disable <replaceable>timestamps</replaceable></option></para>
</listitem>
<listitem>
<para><replaceable>shadows</replaceable>: use <option>-d<replaceable>s</replaceable></option>
or <option>--disable <replaceable>shadows</replaceable></option></para>
</listitem>
<listitem>
<para><replaceable>padding</replaceable>: use <option>-d<replaceable>p</replaceable></option>
or <option>--disable <replaceable>padding</replaceable></option></para>
</listitem>
</itemizedlist>
<note>
<para>Shadows introduce some extra padding</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-A</option></term>
<term><option>--autoaspect</option></term>
<listitem>
<para>Try to guess aspect ratio from resolution.</para>
<para>A rude hardcoded method is used based only on known common dimensions.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-e</option></term>
<term><option>-e<optional><replaceable>FACTOR</replaceable></optional></option></term>
<term><option>--extended=<optional><replaceable>FACTOR</replaceable></optional></option></term>
<listitem>
<para>Enables extended mode and optionally sets the extended factor.</para>
<para>When <replaceable>FACTOR</replaceable> is omitted, 4 is used, i.e. <option>-e</option> is the same as <option>-e4</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-l <replaceable>TIMESTAMP</replaceable></option></term>
<term><option>--highlight <replaceable>TIMESTAMP</replaceable></option></term>
<listitem>
<para>Add the frame found at <replaceable>TIMESTAMP</replaceable> as a highlight.</para>
<para>&xrefinterval;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<term><option>--manual</option></term>
<listitem>
<para>Manual mode.</para>
<para>In this mode only timestamps indicated by the user are used (use in
conjunction with <option>-S</option>).</para>
<para>When using this option, <option>-i</option> and <option>-n</option> are ignored.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-S <replaceable>TIMESTAMP</replaceable></option></term>
<term><option>--stamp <replaceable>TIMESTAMP</replaceable></option></term>
<listitem>
<para>Add the frame at <replaceable>TIMESTAMP</replaceable> to the set of captures.</para>
<para>&xrefinterval;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u <replaceable>NAME</replaceable></option></term>
<term><option>--user <replaceable>NAME</replaceable></option></term>
<listitem>
<para>Set the username (included by default in the contact sheet's footer)
to <replaceable>NAME</replaceable>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-U</option></term>
<term><option>--fullname</option></term>
<listitem>
<para>Use user's full/real name (e.g. John Smith) as set in the system's list of users
(i.e. in <filename>/etc/passwd</filename> or through <command>getent</command>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-p <replaceable>PROFILE</replaceable></option></term>
<term><option>--profile <replaceable>PROFILE</replaceable></option></term>
<listitem>
<para>Load profile named <replaceable>PROFILE</replaceable>.</para>
<para>Profile names starting with ':' are reserved and have special meanings, currently:</para>
<itemizedlist>
<listitem><para><replaceable>:list</replaceable> &emdash; Will list all profiles found in the
system</para></listitem>
</itemizedlist>
<para>If <replaceable>PROFILE</replaceable> doesn't exist, exit with error.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-C <replaceable>CONFIG</replaceable></option></term>
<term><option>--config <replaceable>CONFIG</replaceable></option></term>
<listitem>
<para>Load configuration file <filename><replaceable>CONFIG</replaceable></filename></para>
<para>Configuration <emphasis>file names</emphasis> starting with ':' are reserved
and have special meanings, currently:</para>
<itemizedlist>
<listitem><para><replaceable>:pwd</replaceable> &emdash; Will try to load
<filename>./vcs.conf</filename>.</para>
<para>This file has been loaded by default up to vcs v1.13</para></listitem>
</itemizedlist>
<para>If <filename><replaceable>CONFIG</replaceable></filename> doesn't exist, exit with error.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--generate <replaceable>config|profile</replaceable></option></term>
<listitem>
<para>Generate configuration or profile from the current settings and print it.</para>
<para>All settings changed from the default, by either configuration, profiles or command-line
options, will be included in the generated text.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-k <replaceable>MODE</replaceable></option></term>
<term><option>--funky <replaceable>MODE</replaceable></option></term>
<listitem>
<para>Funky modes</para>
<para>These are <emphasis>toy</emphasis> output modes in which the contact sheet
gets a more informal look.</para>
<warning>
<para>Order <emphasis role="strong">IS IMPORTANT</emphasis>. A bad order gets a bad result :P</para>
</warning>
<para>Many of these modes are random in nature so using the same mode twice
will usually lead to very different results.</para>
<para>Currently available <emphasis>funky modes</emphasis>:</para>
<variablelist id="funkymodes">
<varlistentry>
<term><replaceable>overlap</replaceable>:
Use <option>-k<replaceable>o</replaceable></option>
or <option>--funky <replaceable>overlap</replaceable></option></term>
<listitem><para>Randomly overlap captures.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>rotate</replaceable>:
Use <option>-k<replaceable>r</replaceable></option>
or <option>--funky <replaceable>rotate</replaceable></option></term>
<listitem><para>Randomly rotate each image.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>photoframe</replaceable>:
Use <option>-k<replaceable>f</replaceable></option>
or <option>--funky <replaceable>photoframe</replaceable></option></term>
<listitem><para>Adds a photo-like white frame to each image.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>polaroidframe</replaceable>:
Use <option>-k<replaceable>L</replaceable></option>
or <option>--funky <replaceable>polaroidframe</replaceable></option></term>
<listitem><para>Adds a polaroid picture-like white frame to each image.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>photos</replaceable>:
Use <option>-k<replaceable>c</replaceable></option>
or <option>--funky <replaceable>photos</replaceable></option></term>
<listitem><para>Combination of <replaceable>rotate</replaceable>,
<replaceable>photoframe</replaceable> and <replaceable>overlap</replaceable>.</para>
<para>Same as <option>-kp -kr -ko</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>polaroid</replaceable>:
Use <option>-k<replaceable>p</replaceable></option>
or <option>--funky <replaceable>polaroid</replaceable></option></term>
<listitem><para>Combination of <replaceable>rotate</replaceable>,
<replaceable>polaroidframe</replaceable> and <replaceable>overlap</replaceable>.</para>
<para>Same as <option>-kL -kr -ko</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>film</replaceable>:
Use <option>-k<replaceable>i</replaceable></option>
or <option>--funky <replaceable>film</replaceable></option></term>
<listitem><para>Imitates filmstrip look.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>random</replaceable>:
Use <option>-k<replaceable>x</replaceable></option>
or <option>--funky <replaceable>random</replaceable></option></term>
<listitem><para>Randomises colours and fonts.</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--anonymous</option></term>
<listitem>
<para>Disable the «Preview created by <replaceable>USERNAME</replaceable>» line in the footer.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-Ij<optional>=<replaceable>FONTNAME</replaceable></optional></option></term>
<term><option>-Ik<optional>=<replaceable>FONTNAME</replaceable></optional></option></term>
<term><option>--nonlatin</option></term>
<listitem>
<para>Use an alternate font in the heading for the video file name.</para>
<para>Required to display correctly file names in some languages with non-latin
alphabets (Chinese, Japanese, Hangul, Cyrillic, ...).</para>
<para>When no font name is given, a reasonable choice will be made if possible.</para>
<para>When <replaceable>FONTNAME</replaceable> is given, it can be either
a font name:</para>
<para><literal>$ <command>vcs -Ij=Sazanami-Mincho-Regular <filename>file.avi</filename></command></literal></para>
<para>Or a font file name:</para>
<para><literal>$ <command>vcs -Ij=<filename>/usr/share/fonts/ttf/ttf-japanese-mincho.ttf</filename> <filename>file.avi</filename></command></literal></para>
<para>A list of available fonts and their names can be obtained with the command
<command>identify <option>-list font</option></command></para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-O <replaceable>SETTING=VALUE</replaceable></option></term>
<term><option>--override <replaceable>SETTING=VALUE</replaceable></option></term>
<listitem>
<para>Changes the value of SETTING to VALUE,
as if it was set from a configuration file.</para>
<para>Some settings can only be changed through configuration files or overrides, while
others have associated command-line options.</para>
<para><replaceable>VALUE</replaceable> can be quoted to include spaces:</para>
<para><literal>$ <command>vcs -O SOME_SETTING="my value" <replaceable>...</replaceable></command></literal></para>
<para><replaceable>VALUE</replaceable> can also refer to some other setting:</para>
<para><literal>$ <command>vcs -O SOME_SETTING='$SOME_OTHER_SETTING' <replaceable>...</replaceable></command></literal></para>
<para>See <citerefentry><refentrytitle>vcs.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry>
and the
<ulink url="http://p.outlyer.net/dox/vcs">online documentation</ulink> for
a list of possible <replaceable>SETTING</replaceable>s.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W <replaceable>WORKAROUND</replaceable></option></term>
<listitem>
<para>Enables one of the known workarounds for problematic files, or some tweak:</para>
<variablelist id="workarounds">
<varlistentry>
<term><option>-W<replaceable>s</replaceable></option></term>
<listitem><para>Increase length of safe measuring (try harder).</para>
<para>Repeat to increase further.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-W<replaceable>S</replaceable></option></term>
<listitem><para>Scan all video, if required, to get a safe measuring.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-W<replaceable>p</replaceable></option></term>
<listitem><para>Increase safe measuring precission (i.e. halve the probe stepping).</para>
<para>Repeat to increase further.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W<replaceable>P</replaceable></option></term>
<listitem><para>Inverse of <option>-Wp</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-W<replaceable>o</replaceable></option></term>
<listitem><para>Change ffmpeg's arguments order, might work
with some files that fail otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W<replaceable>c</replaceable></option></term>
<listitem><para>Disable colour in console messages.</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="debug_options">
<title>DEBUGGING OPTIONS</title>
<variablelist>
<varlistentry>
<term><option>-R <replaceable>FILE</replaceable></option></term>
<term><option>--randomsource <replaceable>FILE</replaceable></option></term>
<listitem>
<para>Use FILE as a source for "random" values.</para>
<para>They won't be random anymore, so two runs with the same source and same
arguments will produce the same output in modes which use randomisation
(e.g. the modes triggered by <option>-k <replaceable>photos</replaceable></option>
and <option>-k <replaceable>polaroid</replaceable></option>).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-D</option></term>
<listitem>
<para>Debug mode.</para>
<para>Used to test features/integrity. It:</para>
<itemizedlist>
<listitem><para>Prints the input command line</para></listitem>
<listitem><para>Sets the title to reflect the command line</para></listitem>
<listitem><para>Does a basic test of consistency</para></listitem>
<listitem><para>Prints a trace of all internal functions as they are called</para></listitem>
</itemizedlist>
<para>Repeat to just test consistency and exit</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-Z <replaceable>FEATURE</replaceable></option></term>
<term><option>--undocumented <replaceable>FEATURE</replaceable></option></term>
<listitem>
<para>Testbed for experimental and debugging features. Some <replaceable>FEATURE</replaceable>s
might be <emphasis>promoted</emphasis> in the future to actual command-line
options.</para>
<para><replaceable>FEATURE</replaceable>s here are rough implementations
and have no error-handling.</para>
<para><replaceable>FEATURE</replaceable> names can be added or removed
in every version, silently, so don't rely on them.</para>
<para>Useful for end-users:</para>
<variablelist>
<varlistentry>
<term><replaceable>idonly</replaceable></term>
<listitem><para>Prints the file probing/identification information and exit.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>display</replaceable></term>
<listitem><para>Display the generated contact sheet.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>discard</replaceable></term>
<listitem><para>Remove the created file on exit.</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
 
</variablelist>
</refsect1>
<refsect1 id="files">
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/vcs.conf</filename></term>
<listitem>
<para>The system-wide configuration file to control the
behaviour of <application>&package;</application>. See
<citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry> for further details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>${HOME}/.vcs.conf</filename></term>
<term><filename>${HOME}/.vcs/vcs.conf</filename></term>
<listitem>
<para>The per-user configuration file to control the
behaviour of <application>&package;</application>. See
<citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry> for further details.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="interval_format">
<title>INTERVALS</title>
<para>
Intervals and timestamps can be specified in seconds or in a human-readable format
that follows the syntax
<programlisting><replaceable>HOURS</replaceable>h<replaceable>MINUTES</replaceable>m<replaceable>SECONDS</replaceable>s.<replaceable>MILLISECONDS</replaceable></programlisting>
 
where each element is optional.</para>
<para>See <ulink url="http://p.outlyer.net/dox/vcs:time_syntax" /> for more details.</para>
 
<table>
<title>Interval syntax examples</title>
<tgroup cols="3">
<thead>
<row>
<entry>Example</entry>
<entry>Equivalence</entry>
<entry>Standard time format</entry>
</row>
</thead>
<tbody>
<row>
<entry>1h30m30</entry><entry>1h30m30s.00</entry><entry>1:30:30.00</entry>
</row>
<row>
<entry>30</entry><entry>0h0m30s.00</entry><entry>0:00:30.00</entry>
</row>
<row>
<entry>3600</entry><entry>1h0m0s.00</entry><entry>1:00:00.00</entry>
</row>
</tbody>
</tgroup>
</table>
</refsect1>
<refsect1 id="environment">
<title>ENVIRONMENT</title>
<variablelist>
<varlistentry>
<term><envar>TEMPDIR</envar></term>
<listitem>
<para>Fallback temporary directory when
<filename class="directory">/dev/shm</filename> is not available.
Due to the big size of temporary files, it is recommended to use
a temporary directory on a fast filesystem.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="diagnostics">
<title>DIAGNOSTICS</title>
<para>The default verbosity level will print <package>&package;</package>' progress
and any errors or warnings on <filename class="devicefile">stderr</filename>.</para>
<para><option>--quiet</option> can be used to reduce verbosity.</para>
<para>The verbosity level and where to direct <filename class="devicefile">stderr</filename>
can be controlled through configuration files, see <citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>.
</para>
<para><command>&package;</command> provides some return codes, they follow
the semi-standardised values defined in
<filename class="headerfile">sysexits.h</filename>:</para>
<segmentedlist>
<!-- Force table-style presentation instead of list with repeated
headings.
<http://www.docbook.org/tdg/en/html/segmentedlist.html>
-->
<?dbhtml list-presentation="table"?>
<?dbfo list-presentation="table"?>
<segtitle>Code</segtitle>
<segtitle>Diagnostic</segtitle>
<seglistitem>
<seg><errorcode>&nbsp;0</errorcode> (<errorcode>EX_OK</errorcode>)</seg>
<seg>Program exited successfully.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>64</errorcode> (<errorcode>EX_USAGE</errorcode>)</seg>
<seg>Error in the arguments.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>66</errorcode> (<errorcode>EX_NOINPUT</errorcode>)</seg>
<seg>Can't access some input file or it has an incorrect format.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>69</errorcode> (<errorcode>EX_UNAVAILABLE</errorcode>)</seg>
<seg>Unsatisfied dependency.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>70</errorcode> (<errorcode>EX_SOFTWARE</errorcode>)</seg>
<seg>Internal inconsistency (bug).</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>73</errorcode> (<errorcode>EX_CANTCREAT</errorcode>)</seg>
<seg>Error creating temporary or output files.</seg>
</seglistitem>
</segmentedlist>
</refsect1>
<refsect1 id="bugs">
<!-- Or use this section to tell about upstream BTS. -->
<title>BUGS</title>
<note>
<para>Recent versions of <application>ImageMagick</application>,
<application>mplayer</application> and
<application>ffmpeg</application> should be used
for maximum compatibility.</para>
</note>
<para>The upstream's <acronym>BTS</acronym> can be found
at <ulink url="http://b.outlyer.net"/>.</para>
</refsect1>
<refsect1 id="see_also">
<title>SEE ALSO</title>
<!-- In alpabetical order. -->
<para><citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>convert</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>ffmpeg</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>mplayer</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry></para>
</refsect1>
</refentry>
<!-- vim:set ts=4 et: -->
Property changes:
Added: svn:keywords
+Rev Id Date
\ No newline at end of property
/video-contact-sheet/branches/1.13/dist/vcs.conf.man.xml
0,0 → 1,184
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!--
$Id: vcs.conf.man.xml 2313 2011-08-27 03:06:44Z toni $
See vcs.man.xml for comments on docbook+man handling.
-->
<!ENTITY firstname "Toni">
<!ENTITY surname "Corvera">
<!ENTITY fullname "&firstname; &surname;">
<!ENTITY email "outlyer@gmail.com">
<!ENTITY title "vcs User Manual">
<!ENTITY package "vcs.conf">
<!ENTITY section "5">
<!ENTITY emdash "&#x2014;">
 
<!--
XInclude trickery
 
This voodoo is only required for the file to validate, it can be used
by e.g. xsltproc without all of this
 
Reference: http://www.sagehill.net/docbookxsl/ValidXinclude.html#XincludeDTD
-->
<!-- Define the xi:include and xi:fallback elements -->
<!ELEMENT xi:include (xi:fallback?) >
<!ATTLIST xi:include
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
href CDATA #IMPLIED
parse (xml|text) "xml"
xpointer CDATA #IMPLIED
encoding CDATA #IMPLIED
accept CDATA #IMPLIED
accept-language CDATA #IMPLIED >
<!ELEMENT xi:fallback ANY>
<!ATTLIST xi:fallback
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" >
<!--
Add xi:include to the list of possible children of <refsect1>
See http://www.oasis-open.org/docbook/xml/4.5/dbhierx.mod for the DTD
module that defines which elements are allowed inside which.
Can't allow xi:include in arbitrary places inside <refentry>
-->
<!ENTITY % local.refcomponent.mix "| xi:include">
]><!--/!DOCTYPE-->
<refentry>
<refentryinfo>
<title>&title;</title>
<productname>&package;</productname>
<author>
<firstname>&firstname;</firstname>
<surname>&surname;</surname>
<contrib />
<address><email>&email;</email></address>
</author>
<copyright>
<year>2007-2011</year>
<holder>&fullname;</holder>
</copyright>
<legalnotice>
<para>Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License,
Version 2 or (at your option) any later version published by
the Free Software Foundation.</para>
</legalnotice>
<edition>$Rev: 2313 $</edition>
<!--<date>$Date: 2011-08-27 05:06:44 +0200 (ds, 27 ago 2011) $</date>-->
</refentryinfo>
<refmeta>
<refentrytitle>&package;</refentrytitle>
<manvolnum>&section;</manvolnum>
</refmeta>
<refnamediv>
<refname>&package;</refname>
<refpurpose>vcs configuration file</refpurpose>
</refnamediv>
<refsect1 id="description">
<title>DESCRIPTION</title>
<para>This manual page describes the format and available settings
in configuration and profile files for
<citerefentry>
<refentrytitle>vcs</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>
</para>
<para>There's two types of files that follow this syntax:
<link linkend="configfiles">configuration files</link>
(see <xref linkend="configfiles"/>)
and <link linkend="profiles">profiles</link>
(see <xref linkend="profiles"/>). They'll be called collectively
<emphasis>settings files</emphasis> in this manual page.</para>
<para>Configuration files are meant to be loaded by default, intended to
set user's preferred options, while
profiles are meant to be loaded on-demand, intended to allow
different parallel sets of settings.</para>
</refsect1><!--/DESCRIPTION-->
<refsect1 id="syntax">
<title>SYNTAX</title>
<para>Settings files contain a series of
<replaceable>SETTING</replaceable>=<replaceable>VALUE</replaceable>
assignments.
</para>
<para>Comments can be included by preceding `<literal>#</literal>' to them.</para>
<refsect2 id="metainfo">
<title>META-INFORMATION</title>
<para>Meta-information fields can be contained in comments.
They are written as '<literal>vcs:<replaceable>FIELDNAME</replaceable>:</literal>'.</para>
<para>Currently supported meta-information fields:</para>
<variablelist>
<varlistentry>
<term><literal>vcs:conf:</literal></term>
<listitem><para>Marks a file as following this format.</para>
<para>Files without this field will be rejected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>vcs:desc:</literal> <replaceable>DESCRIPTION</replaceable></term>
<listitem><para>Describes this particular file's purporse,
it is shown e.g. when listing available profiles.
</para>
<para>It is currently ignored for configuration files.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2><!--/META-INFORMATION-->
<refsect2 id="syntax-example">
<title>SYNTAX EXAMPLE</title>
<programlisting># vcs:conf:
# vcs:desc: White-on-black
bg_all=black # Black background
fg_all=white # White foreground</programlisting>
</refsect2><!--/SYNTAX EXAMPLE-->
</refsect1><!--/SYNTAX-->
<refsect1 id="configfiles">
<title>CONFIGURATION FILES</title>
<para>There's three configuration files loaded by default if present, in order:</para>
<itemizedlist>
<listitem><para><filename>/etc/vcs.conf</filename></para></listitem>
<listitem><para><filename><envar>${HOME}</envar>/.vcs.conf</filename></para></listitem>
<listitem><para><filename><envar>${HOME}</envar>/vcs/vcs.conf</filename></para></listitem>
</itemizedlist>
<para>Every file in this list overrides the previous when it
re-defines a setting.</para>
<para>Configuration files can be loaded manually off of any path by using the
<option>--config <replaceable>FILENAME</replaceable></option> option.</para>
</refsect1><!--/CONFIGURATION FILES-->
<refsect1 id="profiles">
<title>PROFILE FILES</title>
<para>No profile is loaded by default.</para>
<para>Profiles are searched in three possible locations, in order:</para>
<itemizedlist id="profile-paths">
<listitem><para><filename class="directory"><envar>${HOME}</envar>/.vcs/profiles/</filename></para></listitem>
<listitem><para><filename class="directory">/usr/local/share/vcs/profiles/</filename></para></listitem>
<listitem><para><filename class="directory">/usr/share/vcs/profiles/</filename></para></listitem>
</itemizedlist>
<para>Only the first profile for each name will be considered.
Profiles with the same name will be hidden.</para>
<para><literal>$ <command>vcs --profile :list</command></literal></para>
<para>can be used to get a list of available profiles.</para>
<para>Profiles can only be loaded from the <link linkend="profile-paths">listed
paths</link>.</para>
</refsect1><!--/PROFILE FILES-->
<refsect1>
<title>SETTINGS</title>
<para>This list details the available settings. Settings are listed in
alphabetical order.</para>
<para>A list of available settings, grouped by categories, is also kept
online at <ulink url="http://p.outlyer.net/dox/vcs:conf_files" /></para>
<xi:include
xmlns:xi="http://www.w3.org/2001/XInclude"
href="mansrc/settings.man.inc.xml" />
</refsect1>
<refsect1 id="see_also">
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>vcs</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>
</para>
</refsect1><!--/SEE ALSO-->
</refentry>
<!-- vim:set ts=4 et: -->
 
/video-contact-sheet/branches/1.13/dist/rpm/vcs.spec.in
94,17 → 94,13
%{prefix}/share/vcs/profiles/black.conf
%{prefix}/share/vcs/profiles/mosaic.conf
%{prefix}/share/vcs/profiles/white.conf
# Manpages
# Manpage
%{_mandir}/man1/%{name}.1.gz
%{_mandir}/man5/%{name}.conf.5.gz
%doc CHANGELOG
# Config example
%doc examples/vcs.conf.example
 
%changelog
* Sun Aug 28 2011 - outlyer (at) gmail (dot) com
- Install additional manpage for configuration file
 
* Tue Aug 24 2010 - outlyer (at) gmail (dot) com
- Install manpage
 
/video-contact-sheet/branches/1.13/dist/common.mk
15,14 → 15,10
DESTDIR:=/
TGZ=vcs-$(VERSION).tar.gz
 
MANDIR:=$(prefix)/share/man
MANDIR:=$(prefix)/share/man/man1/
 
all:
# Nothing to be done
# Automatically detected value:
# PACKAGER=$(PACKAGER)
# To set it manually add it to Make's command-line like:
# $$ $(MAKE) PACKAGER="This Is My Name"
 
dist: vcs.spec
 
34,26 → 30,25
install -m755 vcs $(DESTDIR)$(prefix)/bin/vcs
install -d $(DESTDIR)$(prefix)/share/vcs/profiles
install -m644 profiles/*.conf $(DESTDIR)$(prefix)/share/vcs/profiles/
install -d $(DESTDIR)$(MANDIR)/man1/ $(DESTDIR)$(MANDIR)/man5/
install -m644 docs/vcs.1 $(DESTDIR)$(MANDIR)/man1/
install -m644 docs/vcs.conf.5 $(DESTDIR)$(MANDIR)/man5/
install -d $(DESTDIR)$(MANDIR)
install -m644 vcs.1 $(DESTDIR)$(MANDIR)/
 
uninstall:
$(RM) $(DESTDIR)$(prefix)/bin/vcs
$(RM) $(DESTDIR)$(MANDIR)/man1/vcs.1 $(DESTDIR)$(MANDIR)/man5/vcs.conf.5
$(RM) $(DESTDIR)$(MANDIR)/vcs.1
for file in profiles/*.conf ; do \
$(RM) $(DESTDIR)$(prefix)/share/vcs/profiles/`basename $$file` ; \
done
-rmdir -p $(DESTDIR)$(prefix)/bin
-rmdir -p $(DESTDIR)$(prefix)/share/vcs/profiles
-rmdir -p $(DESTDIR)$(MANDIR)/man1 $(DESTDIR)$(MANDIR)/man5
-rmdir -p $(DESTDIR)$(MANDIR)
 
examples/vcs.conf.example: examples/vcs.conf
sed -e 's/^/#/;s/^#$$//;s/^##/#/' < $< > $@
 
vcs.spec: rpm/vcs.spec.in vcs
test "$(VERSION)" # Version (=$(VERSION)) must be defined
@echo "[creating vcs.spec]"
test "$(VERSION)" # Version (=$(VERSION)) must be detected
@echo "[vcs.spec]"
@cat $< | sed 's!@VERSION@!$(VERSION)!g' | \
sed 's!@PACKAGER@!$(PACKAGER)!g' > $@
 
/video-contact-sheet/branches/1.13/dist/GNUmakefile
3,10 → 3,10
# Makefile for GNU-make
#
 
VERSION:=$(shell sed -n '/VERSION=/s/.*"\([^"]*\)".*/\1/p' vcs)
VERSION:=$(shell head -50 vcs | grep 'declare -r VERSION=' | sed -e 's/.*"\(.*\)".*/\1/')
PACKAGER:=$(shell finger -lp `echo $USER` 2>/dev/null | head -n1 | cut -d: -f3)
ifeq ($(PACKAGER),)
PACKAGER:=$(shell getent passwd "`id -un`" | cut -d: -f5 | cut -d, -f1)
PACKAGER:=$(shell grep ^`id -un` /etc/passwd | cut -d: -f5 | cut -d, -f1)
endif
 
include common.mk
/video-contact-sheet/branches/1.13/Makefile
1,38 → 1,62
#
#!/usr/bin/make -f
# $Id$
#
 
srcdir=dist
#VER=$(shell grep VERSION= $(srcdir)/vcs | sed 's/.*"\([^"]*\)".*/\1/')
VER=$(shell sed -n '/VERSION=/s/.*"\([^"]*\)".*/\1/p' $(srcdir)/vcs)
VER=$(shell grep VERSION $(srcdir)/vcs | head -n1 | sed 's/\#.*//' | sed -r 's/.*"(.*)".*/\1/g')
 
all:
@echo "-------------------------------------------------------------------------------"
@echo " Use: "
@echo " $$ $(MAKE) dist # to create the actual v$(VER) distribution files"
@echo " $$ $(MAKE) manpages # to create only the manpages (in $(srcdir)/docs)"
@echo " $$ $(MAKE) docs # to create all documentation formats (in $(srcdir)/docs)"
@echo
@echo " $$ $(MAKE) lint # to validate documentation sources"
@echo " $$ $(MAKE) clean # to clean generated files"
@echo " $$ $(MAKE) distclean # to clean generated and distribution files"
@echo " $$ $(MAKE) uploadclean # to clean non-distribution files"
@echo "------------------------------------------------------------------------------"
ALL=$(addprefix $(srcdir)/,vcs.1 vcs.conf.5 \
$(addprefix vcs.man,.html .xhtml) \
$(addprefix vcs.conf.man,.html .xhtml) \
)
# Common part of command to convert docbook to man
DOCBOOK_TO_MAN=xsltproc -o $(srcdir)/ -nonet \
--xinclude \
-param man.charmap.use.subset "0" \
-param make.year.ranges "1" \
-param make.single.year.ranges "1" \
/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl
 
docs: lint
$(MAKE) -C $(srcdir)/docs all
all: $(ALL)
@echo "Use $(MAKE) dist to create the actual distribution files"
 
manpages: lint
$(MAKE) -C $(srcdir)/docs vcs.1 vcs.conf.5
# man2html produces output closer to man and better formatted but
# easily broken while xsltproc produces cleaner, more robust, and
# cross-referenced output
$(srcdir)/vcs.%.xhtml: $(srcdir)/vcs.%.xml
xsltproc -nonet \
--xinclude \
-param man.charmap.use.subset "0" \
-param make.year.ranges "1" \
-param make.single.year.ranges "1" \
/usr/share/xml/docbook/stylesheet/docbook-xsl/xhtml/docbook.xsl \
"$<" > "$@"
sed -i \
's!</head>!<link rel="stylesheet" type="text/css" href="man.css"/></head>!' \
"$@"
 
lint:
$(MAKE) -C $(srcdir)/docs lint
# Check all XML files for validity
xmllint:
find . -type f -name '*.xml' -print0 | xargs -0 xmllint --xinclude -noout --valid
 
$(srcdir)/vcs.man.html: $(srcdir)/vcs.1
man2html -r "$<" > "$@"
 
$(srcdir)/vcs.conf.man.html: $(srcdir)/vcs.conf.5
man2html -r "$<" > "$@"
 
$(srcdir)/vcs.1: $(srcdir)/vcs.man.xml
#xmlto -o `dirname $@`/ man $<
$(DOCBOOK_TO_MAN) "$<"
 
$(srcdir)/vcs.conf.5: $(srcdir)/vcs.conf.man.xml
$(DOCBOOK_TO_MAN) "$<"
 
 
tgz: vcs-$(VER).tar.gz
 
vcs-$(VER).tar.gz:
cp -rvpP $(srcdir)/ vcs-$(VER)
make -C vcs-$(VER) dist
cp -rvpP pkg/ vcs-$(VER)
cd vcs-$(VER) && make dist
tar zcvf vcs-$(VER).tar.gz --exclude '.svn' --exclude '*.swp' --exclude '*.swo' vcs-$(VER)
$(RM) -r vcs-$(VER)
 
43,35 → 67,30
echo "** Don't release from SVN working copy **" ; \
echo '*************************************************' ; \
echo '*************************************************' ; \
echo ; \
fi
 
check-rel:
@if head -n50 vcs | grep -q 'RELEASE=0' ; then \
echo '*************************************************' ; \
echo '*************************************************' ; \
echo '** RELEASE is set to 0! **' ; \
echo '*************************************************' ; \
echo '*************************************************' ; \
echo ; \
fi
echo 'RELEASE is set to 0!' ; false ; fi
 
dist: check-rel check-no-svn \
pkg/vcs.1 \
pkg/manpage.html \
vcs-$(VER).tar.gz \
PKGBUILD-$(VER) \
$(addprefix vcs-$(VER), .gz .bz2 .bash) \
vcs-$(VER).gz vcs-$(VER).bz2 vcs-$(VER).bash \
CHANGELOG.gz CHANGELOG \
rpm deb
 
# This shouldn't be re-built
devel_tools/mansrc/settings.man.inc.xml:
cd `dirname $@` && $(MAKE)
dist/mansrc/settings.man.inc.xml:
cd dist/mansrc && $(MAKE)
 
PKGBUILD-$(VER): vcs-$(VER).tar.gz
cd $(srcdir) && ln -s ../vcs-$(VER).tar.gz ./
make -C $(srcdir) PKGBUILD
$(RM) $(srcdir)/vcs-$(VER).tar.gz
mv $(srcdir)/PKGBUILD $@
cd pkg && ln -s ../vcs-$(VER).tar.gz ./
cd pkg && make PKGBUILD
$(RM) pkg/vcs-$(VER).tar.gz
mv pkg/PKGBUILD $@
 
vcs-$(VER).gz: $(srcdir)/vcs
gzip -c9 < vcs > $@
88,12 → 107,7
CHANGELOG: $(srcdir)/CHANGELOG
cp $< $@
 
distclean: clean
$(RM) PKGBUILD-$(VER) vcs-$(VER).tar.gz $(addprefix vcs-$(VER), .gz .bz2 .bash) \
CHANGELOG.gz CHANGELOG *.deb *.rpm
 
# That's the old distclean
uploadclean:
distclean:
$(RM) -ri vcs Makefile *.changes pkg
 
deb:
106,9 → 120,6
test -d ~/RPM/RPMS/noarch && ln -s ~/RPM/RPMS/noarch/vcs-$(VER)-*.rpm . || true
 
clean:
-$(RM) vcs[-_]$(VER)* CHANGELOG*
make -C $(srcdir)/docs clean
-$(RM) vcs[-_]$(VER)* CHANGELOG* $(ALL)
 
.PHONY: all docs manpages lint clean dist distclean uploadclean \
check-no-svn check-rel \
deb rpm tgz
.PHONY: dist