Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to devel-xorg-modular grimoire by Treeve Jelbert (ff60ffc45761511bb10eeb58dea492f4534b3428)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Treeve Jelbert <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to devel-xorg-modular grimoire by Treeve Jelbert (ff60ffc45761511bb10eeb58dea492f4534b3428)
  • Date: Tue, 25 Dec 2012 03:42:48 -0600

GIT changes to devel-xorg-modular grimoire by Treeve Jelbert
<treeve AT sourcemage.org>:

ChangeLog |
11
apache.gpg
|binary
audio-drivers/pulseaudio/DETAILS |
4
audio-drivers/pulseaudio/HISTORY |
3
audio-drivers/pulseaudio/pulseaudio-2.0.tar.gz.sig |
0
audio-drivers/pulseaudio/pulseaudio-3.0.tar.xz.sig
|binary
audio-libs/libmusicbrainz/DEPENDS |
2
audio-libs/libmusicbrainz/HISTORY |
4
audio-libs/openal-soft/DETAILS |
4
audio-libs/openal-soft/HISTORY |
4
audio-libs/openal-soft/PRE_BUILD |
3
audio-libs/openal-soft/avutil.patch |
11
audio-libs/wavpack/DETAILS |
4
audio-libs/wavpack/HISTORY |
3
audio-players/listen/DEPENDS |
2
audio-players/listen/HISTORY |
3
crypto/gnutls/DETAILS |
2
crypto/gnutls/HISTORY |
3
crypto/openssl/DETAILS |
2
crypto/openssl/HISTORY |
3
dev/null
|binary
devel/automake/DETAILS |
2
devel/automake/HISTORY |
3
devel/cscope/DETAILS |
6
devel/cscope/HISTORY |
3
devel/dev86/DETAILS |
4
devel/dev86/HISTORY |
3
disk/eject/DETAILS |
8
disk/eject/HISTORY |
3
doc/dvi2tty/DETAILS |
8
doc/dvi2tty/HISTORY |
5
doc/dvi2tty/PRE_BUILD |
4
doc/dvi2tty/disdvi.c.patch |
24
doc/dvi2tty/dvi2tty.c.patch |
33
doc/dvi2tty/malloc_cleanup.patch |
13
doc/dvipdfmx/DETAILS |
4
doc/dvipdfmx/HISTORY |
3
doc/enca/DETAILS |
4
doc/enca/HISTORY |
3
doc/help2man/DETAILS |
2
doc/help2man/HISTORY |
3
doc/lcdf-typetools/DETAILS |
4
doc/lcdf-typetools/HISTORY |
3
doc/t1utils/DETAILS |
4
doc/t1utils/HISTORY |
3
editors/sed/DETAILS |
2
editors/sed/HISTORY |
3
gnome2-libs/glib2/HISTORY |
3
gnome2-libs/glib2/PRE_BUILD |
10
gnome2-libs/glib2/py3.patch.xz |
0
graphics-libs/agg/HISTORY |
4
graphics-libs/agg/PRE_BUILD |
2
graphics-libs/graphite2/DETAILS |
4
graphics-libs/graphite2/HISTORY |
3
graphics-libs/graphite2/graphite2-1.1.3.tgz.sig |
0
graphics-libs/graphite2/graphite2-1.2.0.tgz.sig
|binary
graphics-libs/libwmf/DETAILS |
2
graphics-libs/libwmf/HISTORY |
3
graphics/netpbm/DETAILS |
4
graphics/netpbm/HISTORY |
3
http/gnash/BUILD |
2
http/gnash/DEPENDS |
2
http/gnash/DETAILS |
2
http/gnash/HISTORY |
4
http/lightspark/DETAILS |
6
http/lightspark/HISTORY |
3
java/icedtea-web/DETAILS |
2
java/icedtea-web/HISTORY |
3
java/icedtea-web/icedtea-web-1.2.1.tar.gz.sig |
0
java/icedtea-web/icedtea-web-1.3.1.tar.gz.sig
|binary
kernels/linux/HISTORY |
10
kernels/linux/info/kernels/3.7 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.0.56 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.0.57 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.4.23 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.4.24 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.6.11 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.7 |
5
kernels/linux/info/patches/maintenance_patches_3/patch-3.7.1 |
5
kernels/linux/latest.defaults |
4
latex/glosstex/DETAILS |
2
latex/glosstex/HISTORY |
3
latex/lacheck/DETAILS |
2
latex/lacheck/HISTORY |
3
libs/apr/DETAILS |
2
libs/apr/HISTORY |
3
libs/findlib/DETAILS |
4
libs/findlib/HISTORY |
3
libs/libvformat/0004-Provide-info-documentation.patch |
939 +++
libs/libvformat/0005-Add-manpages.patch |
2606 ++++++++++
libs/libvformat/0006-Remove-leading-space-when-unfolding.patch |
36
libs/libvformat/0007-Cast-NULL-in-void-in-functions-using-va_arg.patch |
51
libs/libvformat/0008-Fix-typo-in-manpage-and-source.patch |
69
libs/libvformat/DETAILS |
15
libs/libvformat/HISTORY |
9
libs/libvformat/PRE_BUILD |
11
lua-forge/lgi/BUILD |
1
lua-forge/lgi/DEPENDS |
2
lua-forge/lgi/DETAILS |
14
lua-forge/lgi/HISTORY |
3
lxde/menu-cache/DETAILS |
4
lxde/menu-cache/HISTORY |
3
mail/lbdb/DEPENDS |
6
mail/lbdb/DETAILS |
34
mail/lbdb/HISTORY |
3
net/iputils-tracepath/DETAILS |
12
net/iputils-tracepath/HISTORY |
3
net/iputils-tracepath/PRE_BUILD |
3
perl-cpan/ps2eps/DETAILS |
4
perl-cpan/ps2eps/HISTORY |
3
python-pypi/ctypes/BUILD |
1
python-pypi/ctypes/DETAILS |
26
python-pypi/ctypes/DOWNLOAD |
1
python-pypi/ctypes/HISTORY |
5
python-pypi/ctypes/INSTALL |
1
python-pypi/ctypes/PRE_BUILD |
1
python-pypi/ctypes/TRIGGERS |
1
python-pypi/pydot/DETAILS |
4
python-pypi/pydot/HISTORY |
3
science/units/DETAILS |
4
science/units/HISTORY |
3
security-libs/cracklib/DETAILS |
4
security-libs/cracklib/HISTORY |
3
utils/atop/DEPENDS |
2
utils/atop/DETAILS |
4
utils/atop/HISTORY |
4
utils/iotop/DETAILS |
4
utils/iotop/HISTORY |
3
utils/joystick/BUILD |
5
utils/joystick/DEPENDS |
2
utils/joystick/DETAILS |
24
utils/joystick/DOWNLOAD |
1
utils/joystick/HISTORY |
5
utils/joystick/INSTALL |
15
utils/joystick/PRE_BUILD |
4
utils/joystick/TRIGGERS |
1
utils/linuxconsoletools/BUILD |
1
utils/linuxconsoletools/DEPENDS |
1
utils/linuxconsoletools/DETAILS |
16
utils/linuxconsoletools/HISTORY |
3
utils/linuxconsoletools/INSTALL |
2
utils/procinfo/BUILD |
1
utils/procinfo/DEPENDS |
3
utils/procinfo/DETAILS |
13
utils/procinfo/HISTORY |
6
utils/procinfo/INSTALL |
1
utils/procinfo/PRE_BUILD |
7
utils/procinfo/procinfo-19.2.patch.bz2 |
0
utils/xen/DETAILS |
3
utils/xen/HISTORY |
5
utils/xen/PRE_BUILD |
19
utils/xen/xsa-12.patch |
22
utils/xen/xsa-13.patch |
30
utils/xen/xsa-14.patch |
22
utils/xen/xsa-16.patch |
31
utils/xen/xsa-17.patch |
113
utils/xen/xsa-19.patch |
11
utils/xen/xsa-20.patch |
38
utils/xen/xsa-21.patch |
31
utils/xen/xsa-22.patch |
40
utils/xen/xsa-23.patch |
32
utils/xen/xsa-24.patch |
26
utils/xen/xsa-25.patch |
461 -
utils/xen/xsa-26.patch |
107
utils/xen/xsa-27.patch |
168
utils/xen/xsa-28.patch |
36
utils/xen/xsa-29.patch |
49
utils/xen/xsa-30.patch |
57
utils/xen/xsa-31.patch |
50
video-libs/smpeg/DETAILS |
2
video-libs/smpeg/HISTORY |
3
video/mkvtoolnix/BUILD |
3
video/mkvtoolnix/DEPENDS |
8
video/mkvtoolnix/DETAILS |
4
video/mkvtoolnix/HISTORY |
6
video/mkvtoolnix/INSTALL |
1
x11/xcompmgr/DETAILS |
5
x11/xcompmgr/HISTORY |
3
xfce/exo/DETAILS |
4
xfce/exo/HISTORY |
3
xfce/gtk-xfce-engine/DETAILS |
4
xfce/gtk-xfce-engine/HISTORY |
3
xfce/thunar/DETAILS |
4
xfce/thunar/HISTORY |
3
xfce/tumbler/DETAILS |
4
xfce/tumbler/HISTORY |
3
xorg-app/xconsole/DETAILS |
4
xorg-app/xconsole/HISTORY |
3
xorg-app/xfontsel/DETAILS |
4
xorg-app/xfontsel/HISTORY |
3
xorg-extras/xterm/DETAILS |
2
xorg-extras/xterm/HISTORY |
3
xorg-extras/xterm/xterm-267.tgz.sig |
0
193 files changed, 4199 insertions(+), 1613 deletions(-)

New commits:
commit f0a7a0c27ea5c6680e4ce0789dfa6355168bde7a
Author: Pol Vinogradov <vin.public AT gmail.com>
Commit: Pol Vinogradov <vin.public AT gmail.com>

http/lightspark: version 0.7.1

commit 65a5932fefb9485030236f02958db380d000743d
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/findlib: version 1.3.3

commit 1ed1259b60468ab89bb3ea64b9295a09ce93314e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

graphics/netpbm: version 10.35.87

commit 3e7e119030b551ddd6e46ec25d89733989c04932
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

python-pypi/pydot: version 1.0.28

commit 8273f3d17631e9d326ce9658334c78a671f46856
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

xorg-extras/xterm: version 287

commit 0a0d30822dd8a7badcf2bf9fd7943d80808589ab
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/apr: version 1.4.6

commit 60b4efff6acfaeae4c4635558df335c059feb8f9
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

apache.gpg: update keys, add key 9E49284A

commit 26aa73301e096ff2abe489bcb64f4ec4ceed4448
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

utils/iotop: version 0.4.4

commit afad9b07e4efdb7de8b4728e4acfe4328356d6e8
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

doc/help2man: version 1.40.9

commit e79a5b4cd5401d296f7fc188b108c3337d1e554d
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

devel/dev86: version 0.16.19

commit 68d388239252866add34f5a7f819fffc14abf847
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

graphics-libs/libwmf: correct WEB_SITE

commit 430f6142d75c45874be11aebd626a3f9466524b4
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

net/iputils-tracepath: version 20101006-3

commit af7f749ca775a28a2ae5832a51f91278de60b75a
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

lxde/menu-cache: version 0.4.1

commit ed9c36d5e944d2bd732b4df4a15552ef7f6f6258
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

utils/atop: version 2.0.2

commit cbb342b0f31c057f0223a73c386f9193b8da891e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

science/units: version 2.01

commit 78b895c357b8c62441dfd655254aac0d5a883046
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

x11/xcompmgr: version 1.1.6

commit 12a00d490eeaa84dff63da0cd103cdd1e2dfa362
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-libs/wavpack: version 4.60.1

commit 89ecb4f142685ccccacaa6bfa54e836b609ecdf6
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

latex/glosstex: fix WEB_SITE

commit 38528766c9e07c748fa8d954741d9a254cb3db87
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

devel/cscope: version 15.8a

commit 0c945bc84a10a90fb19b0a411a7ffaf89d030baf
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

doc/enca: version 1.14

commit a6d8862f5cdaf2e09d32574b4a75d766c94f814a
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

utils/joystick: deprecated in favour of utils/linuxconsoletools

commit 652d015c668a78cbd83406e595a7a6e041e9fdad
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

utils/linuxconsoletools: new spell, tools for testing and configuring
joysticks

commit 0dd3fc36db6d20774649296e951c4490b40828df
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

video/mkvtoolnix: version 5.9.0

commit 05fc9f79bd0ad7c3dfba13ad5cf3a5055c2a572e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

perl-cpan/ps2eps: version 1.68

commit b227311f4297bc4af50ec76a5e0e0f2f3c1c0703
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

latex/lacheck: fix WEB_SITE

commit 2a7fd9e1ad7aeee1f970bce23352ad9b76dcbf0c
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

doc/lcdf-typetools: version 2.97

commit a000209570a15f1dff1b7a37444b663f843293da
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

doc/dvipdfmx: version 20110311

commit cfb9a2f760671bee57b37ad3d3dd41bb0bb361e9
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

doc/dvi2tty: version 5.3.4

commit c492c895f478a1957b2e1802d417adc247ba159e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

doc/t1utils: version 1.37

commit 2e77d6706fae25b63ea4c6fd8c9c87840f3273af
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

xorg-apps/xfontsel: version 1.0.4

commit 0eb457b6aea8cd6c6f3849766f9373a1fb62d37a
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

xorg-apps/xconsole: version 1.0.4

commit 4162344f977a7b15a472095e2864466df0ba42a1
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

utils/procinfo: version 2.0.304

commit 0cc6bba9b6644f53a73d4b2d05aeeca06793e2ba
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

thunar: => 1.6.1

commit a7fad4d079f20ab01addfaf41c5e15183912e807
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

python-pypi/ctypes: deprecated in favour of python

commit f95455fa82946688dc68751dc4aaef0ad3eac172
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

gtk-xfce-engine: => 3.0.1

commit 72462358b85eb3aece919880b700ba34279bf2c8
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-players/listen: change dependency on ctypes to dependency on python

commit fcebbfcfe69b7dda54fe08eccd5168659ad01bd3
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-libs/libmusicbrainz: change dependency on ctypes to python

commit 2df2973a1cd8bbc976efa48c90fef517652a5b7c
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

tumbler: => 0.1.26

commit 4184038732a2695c495a928110651d0a86a700cc
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

exo: => 0.10.1

commit 638b0424faf16714b87b95b83a05cd9291cf8af0
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

crypto/gnutls update WEB_SITE

commit 80763c3c213fc9a8221c8d53943bdc7a5ae9fabe
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

crypto/openssl: version 1.0.1c

commit 712e8d8048d910006569f0c358f5347385151ec2
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

lua-forge/lgi: new spell, gobject-introspection for lua

commit 29b6b3294251dc06f94ed7ab877205fcd79a915e
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>

glib2 - remove obsolete patch

commit c2fd7c86935979718da89e0e0c5e3dfeffd0f434
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

video-libs/smpeg: fix WEB_SITE

commit b4bc76b5547b6be9abcd293b9c359d3af0a23cd4
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

disk/eject: fix SOURCE_URL and WEB_SITE

commit 5717aeb4cbf55fe69c3d501d40cbe2bde75b8ddd
Author: Pol Vinogradov <vin.public AT gmail.com>
Commit: Pol Vinogradov <vin.public AT gmail.com>

graphics-libs/agg: fixes to build with current autotools

commit 0e8f2f2af5e63fbb2c10ea4ec436a2e2be3b345d
Author: Pol Vinogradov <vin.public AT gmail.com>
Commit: Pol Vinogradov <vin.public AT gmail.com>

http/gnash: fixed linking with current boost

commit b57588d6bb2a4873d34cb33e64a2e677d041ff35
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

editors/sed: version 4.2.2

commit 2ac5173e8d5cc92a11bf44ef0c7b3a4248ca579f
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

audio-libs/openal-soft: version 1.15.1

commit 23db475b0bab94465766913b789bd75f62c1968a
Author: Ladislav Hagara <hgr AT vabo.cz>
Commit: Ladislav Hagara <hgr AT vabo.cz>

pulseaudio 3.0

commit 37dec40026488b4dea395e603c8bcdf49c4b3a89
Author: Ladislav Hagara <hgr AT vabo.cz>
Commit: Ladislav Hagara <hgr AT vabo.cz>

automake 1.12.6

commit a6f05ce88ccea108efe94ad8a5c49305fe25bbeb
Author: Ladislav Hagara <hgr AT vabo.cz>
Commit: Ladislav Hagara <hgr AT vabo.cz>

cracklib 2.8.22

commit 652f88dab97fc9104b727cb5861aae3265f9862c
Author: Pol Vinogradov <vin.public AT gmail.com>
Commit: Pol Vinogradov <vin.public AT gmail.com>

http/gnash: updated to 0.8.10

commit 4af1cc625bdb1164c3b9c69b94a2f7f9183a17e9
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

mail/lbdb: new spell, the little brother's database

commit 47123ff4cfb43ec4ee7232daa9705227d8efe7c2
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

libs/libvformat: new spell, an interface to vcard files

commit fb367dbda8cdae748e17029c0a3b1d60a332fc3e
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

linux: => 3.6.11 (eol)

commit 78c1188e87461e848687a13202bf70abd4335323
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

linux: => 3.4.24 (lts)

commit d67b973203429e17b89469a78570bf356ea8e0c3
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

linux: => 3.0.57 (lts)

commit c13f90b28aa40be4ab4ad4c17ea42904340b799c
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>

xen: => 4.1.4

commit 8d4f6fdc40e847e99ba9fe0016a7a657d7ccbe74
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

kernels/linux: version 3.7.1

commit f05044a8266653b3c2b97c6a31243102cc5bbbd8
Author: Robin Cook <rcook AT wyrms.net>
Commit: Robin Cook <rcook AT wyrms.net>

graphite2: updated to 1.2.0

commit f98cd865657171859fb77ed7f0a78bc2d9efb62c
Author: Robin Cook <rcook AT wyrms.net>
Commit: Robin Cook <rcook AT wyrms.net>

icedtea-web: updated to 1.3.1

diff --git a/ChangeLog b/ChangeLog
index 98907d0..68e7fce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * utils/linuxconsoletools: new spell, replacement for utils/joystick
+ * utils/joystick: spell deprecated [project has been renamed]
+ * apache.gpg: updated keys, added key 9E49284A
+
+2012-12-22 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * libs/libvformat: new spell, provides an interface to vcard files
+ * mail/lbdb: new spell, the little brother's database
+ * lua-forge/lgi: new spell, gobject-introspection for lua
+ * python-pypi/ctypes: spell deprecated [part of python as of version
2.5]
+
2012-12-22 Justin Boffemmyer <flux AT sourcemage.org>
* lua-forge/luajit: new spell, Just-In-Time implementation of Lua

diff --git a/apache.gpg b/apache.gpg
index 67d54cc..6161b51 100644
Binary files a/apache.gpg and b/apache.gpg differ
diff --git a/audio-drivers/pulseaudio/DETAILS
b/audio-drivers/pulseaudio/DETAILS
index ac3ef41..2cffa1a 100755
--- a/audio-drivers/pulseaudio/DETAILS
+++ b/audio-drivers/pulseaudio/DETAILS
@@ -1,6 +1,6 @@
SPELL=pulseaudio
- VERSION=2.0
- SOURCE=${SPELL}-${VERSION}.tar.gz
+ VERSION=3.0
+ SOURCE=${SPELL}-${VERSION}.tar.xz
SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
SOURCE_URL=http://freedesktop.org/software/$SPELL/releases/$SOURCE
SOURCE_GPG=gurus.gpg:${SOURCE}.sig
diff --git a/audio-drivers/pulseaudio/HISTORY
b/audio-drivers/pulseaudio/HISTORY
index d759129..0031889 100644
--- a/audio-drivers/pulseaudio/HISTORY
+++ b/audio-drivers/pulseaudio/HISTORY
@@ -1,3 +1,6 @@
+2012-12-22 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 3.0
+
2012-08-30 Tommy Boatman <tboatman AT sourcemage.org>
* [PRE_]SUB_DEPENDS: add glib2 to force Gnome support
Fixes issue #400
diff --git a/audio-drivers/pulseaudio/pulseaudio-2.0.tar.gz.sig
b/audio-drivers/pulseaudio/pulseaudio-2.0.tar.gz.sig
deleted file mode 100644
index fa03635..0000000
Binary files a/audio-drivers/pulseaudio/pulseaudio-2.0.tar.gz.sig and
/dev/null differ
diff --git a/audio-drivers/pulseaudio/pulseaudio-3.0.tar.xz.sig
b/audio-drivers/pulseaudio/pulseaudio-3.0.tar.xz.sig
new file mode 100644
index 0000000..7c222a2
Binary files /dev/null and
b/audio-drivers/pulseaudio/pulseaudio-3.0.tar.xz.sig differ
diff --git a/audio-libs/libmusicbrainz/DEPENDS
b/audio-libs/libmusicbrainz/DEPENDS
index fd65bda..530054e 100755
--- a/audio-libs/libmusicbrainz/DEPENDS
+++ b/audio-libs/libmusicbrainz/DEPENDS
@@ -1,5 +1,5 @@
depends -sub CXX gcc &&
depends expat &&
if [[ "${LIBMUSICBRAINZ_PYTHON}" == "y" ]]
-then depends ctypes
+then depends python
fi
diff --git a/audio-libs/libmusicbrainz/HISTORY
b/audio-libs/libmusicbrainz/HISTORY
index 4e8d341..e627d63 100644
--- a/audio-libs/libmusicbrainz/HISTORY
+++ b/audio-libs/libmusicbrainz/HISTORY
@@ -1,3 +1,7 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: change dependency on ctypes to python since recent
+ versions of python contain ctypes
+
2011-07-30 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DEPENDS: changed dependency on g++ to dependency on gcc with
sub-depends on CXX (scripted)
diff --git a/audio-libs/openal-soft/DETAILS b/audio-libs/openal-soft/DETAILS
index 627cdec..c7d25a7 100755
--- a/audio-libs/openal-soft/DETAILS
+++ b/audio-libs/openal-soft/DETAILS
@@ -1,6 +1,6 @@
SPELL=openal-soft
- VERSION=1.14
-
SOURCE_HASH=sha512:58ce4d1281aba790790e5cb88d4ff016ca5d053f8f78f68ca8ab3af59b69c74d473bd65f9ed1053351df40c6d2d909076a41a8be88c23927f37f9617d3c30f94
+ VERSION=1.15.1
+
SOURCE_HASH=sha512:ca6dafdd503d06892dff08763bc00b974ec6e7c4bf3dcebb4cb41a486b4ea777c278299a198db182fee888a19a5716bd57d91a2859b764a532138a79f2bd672f
SOURCE="${SPELL}-${VERSION}.tar.bz2"
SOURCE_URL[0]=http://kcat.strangesoft.net/openal-releases/${SOURCE}
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
diff --git a/audio-libs/openal-soft/HISTORY b/audio-libs/openal-soft/HISTORY
index 9f8232f..e57c201 100644
--- a/audio-libs/openal-soft/HISTORY
+++ b/audio-libs/openal-soft/HISTORY
@@ -1,3 +1,7 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.15.1
+ * avutil.patch, PRE_BUILD: removed
+
2012-04-25 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* avutil.patch, PRE_BUILD: fixed linkage against libavutil

diff --git a/audio-libs/openal-soft/PRE_BUILD
b/audio-libs/openal-soft/PRE_BUILD
deleted file mode 100755
index 77944db..0000000
--- a/audio-libs/openal-soft/PRE_BUILD
+++ /dev/null
@@ -1,3 +0,0 @@
-default_pre_build &&
-cd ${SOURCE_DIRECTORY} &&
-patch -p1 < ${SCRIPT_DIRECTORY}/avutil.patch
diff --git a/audio-libs/openal-soft/avutil.patch
b/audio-libs/openal-soft/avutil.patch
deleted file mode 100644
index 9adea43..0000000
--- a/audio-libs/openal-soft/avutil.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- openal-soft-1.14/CMakeLists.txt.orig 2012-04-25 21:19:57.838343605
+0200
-+++ openal-soft-1.14/CMakeLists.txt 2012-04-25 21:20:08.572209185 +0200
-@@ -762,7 +762,7 @@
- IF(EXAMPLES)
- IF(FFMPEG_FOUND)
- ADD_EXECUTABLE(alstream examples/alhelpers.c examples/alffmpeg.c
examples/alstream.c)
-- TARGET_LINK_LIBRARIES(alstream ${FFMPEG_LIBRARIES} ${LIBNAME})
-+ TARGET_LINK_LIBRARIES(alstream ${FFMPEG_LIBRARIES} ${LIBNAME}
-lavutil)
- SET_TARGET_PROPERTIES(alstream PROPERTIES COMPILE_FLAGS
"${FFMPEG_CFLAGS}")
- INSTALL(TARGETS alstream
- RUNTIME DESTINATION bin
diff --git a/audio-libs/wavpack/DETAILS b/audio-libs/wavpack/DETAILS
index 36cc385..f783324 100755
--- a/audio-libs/wavpack/DETAILS
+++ b/audio-libs/wavpack/DETAILS
@@ -1,11 +1,11 @@
SPELL=wavpack
- VERSION=4.60.0
+ VERSION=4.60.1
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://www.wavpack.com/$SOURCE
WEB_SITE=http://www.wavpack.com
ENTERED=20041115
-
SOURCE_HASH=sha512:efc70e9e4ac455a5a9e224950cf59a35dcd687c473a0226a15a597f9bc9f19b938dc0a97e0a02c9a0742b516b8f157534505ec6b26a8773a410f3d0bc6d8d525
+
SOURCE_HASH=sha512:fae00bba5c6f9c487d5dd4cd4c08ab4ce2a255c12ba3a47614a7b896d7706999b8ebe70c77e9083e943f0fe05b5ddcef206fad1801ce7a21698d5350514ee814
LICENSE[0]=GPL
KEYWORDS="music audio libs"
SHORT="Lossless music compression program"
diff --git a/audio-libs/wavpack/HISTORY b/audio-libs/wavpack/HISTORY
index 3801089..56cde47 100644
--- a/audio-libs/wavpack/HISTORY
+++ b/audio-libs/wavpack/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 4.60.1
+
2009-11-03 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: updated spell to 4.60.0

diff --git a/audio-players/listen/DEPENDS b/audio-players/listen/DEPENDS
index ead4305..7014133 100755
--- a/audio-players/listen/DEPENDS
+++ b/audio-players/listen/DEPENDS
@@ -1,7 +1,7 @@
depends pygtk2 &&
depends pyvorbis &&
depends pymad &&
-depends ctypes &&
+depends python &&
depends gst-python &&
depends pysqlite &&
depends gnome-python-extras &&
diff --git a/audio-players/listen/HISTORY b/audio-players/listen/HISTORY
index 8e68eb9..5d4cd37 100644
--- a/audio-players/listen/HISTORY
+++ b/audio-players/listen/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS: change dep on ctypes to python
+
2010-03-14 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 0.6.5

diff --git a/crypto/gnutls/DETAILS b/crypto/gnutls/DETAILS
index 4613af4..9bb3801 100755
--- a/crypto/gnutls/DETAILS
+++ b/crypto/gnutls/DETAILS
@@ -59,7 +59,7 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE2_URL[0]=${SOURCE_URL[0]}.sig
SOURCE_GPG=gnu.gpg:$SOURCE2:UPSTREAM_KEY
SOURCE2_IGNORE=signature
- WEB_SITE=http://www.gnu.org/software/gnutls/
+ WEB_SITE=http://www.gnutls.org/
LICENSE[0]=LGPL
LICENSE[1]=GPL
ENTERED=20030829
diff --git a/crypto/gnutls/HISTORY b/crypto/gnutls/HISTORY
index 9534264..679fd65 100644
--- a/crypto/gnutls/HISTORY
+++ b/crypto/gnutls/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: updated WEB_SITE
+
2012-07-09 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 2.12.20 & 3.0.21

diff --git a/crypto/openssl/DETAILS b/crypto/openssl/DETAILS
index 9c5aa04..f0409a7 100755
--- a/crypto/openssl/DETAILS
+++ b/crypto/openssl/DETAILS
@@ -10,7 +10,7 @@ case $OPENSSL_BRANCH in
SECURITY_PATCH=19
;;
1.0)
- VERSION=1.0.0j
+ VERSION=1.0.1c
SECURITY_PATCH=19
PATCHLEVEL=0
;;
diff --git a/crypto/openssl/HISTORY b/crypto/openssl/HISTORY
index 7fcc22c..43ec5fb 100644
--- a/crypto/openssl/HISTORY
+++ b/crypto/openssl/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.0.1c
+
2012-06-09 Vlad Glagolev <stealth AT sourcemage.org>
* UP_TRIGGERS: don't go below spell_ok if it fails check

diff --git a/devel/automake/DETAILS b/devel/automake/DETAILS
index 831de32..86a65cf 100755
--- a/devel/automake/DETAILS
+++ b/devel/automake/DETAILS
@@ -1,5 +1,5 @@
SPELL=automake
- VERSION=1.12.5
+ VERSION=1.12.6
SECURITY_PATCH=1
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE2=$SOURCE.sig
diff --git a/devel/automake/HISTORY b/devel/automake/HISTORY
index 8f3ce8c..ed6f149 100644
--- a/devel/automake/HISTORY
+++ b/devel/automake/HISTORY
@@ -1,3 +1,6 @@
+2012-12-22 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 1.12.6
+
2012-12-09 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 1.12.5

diff --git a/devel/cscope/DETAILS b/devel/cscope/DETAILS
index 4055e6c..70d4e80 100755
--- a/devel/cscope/DETAILS
+++ b/devel/cscope/DETAILS
@@ -1,10 +1,10 @@
SPELL=cscope
- VERSION=15.7a
+ VERSION=15.8a
SECURITY_PATCH=1
- SOURCE=$SPELL-$VERSION.tar.bz2
+ SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
-
SOURCE_HASH=sha512:5cc17c3ea124b5351eccf66d681b394336c54b8fcb1b6dbe86e74805c6c30a61d1ec4a7ce0f04dc9dcb7f7cd1e80f980e5b1ec3170d9be2c882840d261a75d32
+
SOURCE_HASH=sha512:bedba69820eca86420f6c975d1f267de67a457b182a3fe49720a2ae5ea48759c5b5b8db06ed5ffd85173ddf4a0f12ca722e87200dea4a2da7d43c8c711b00318
LICENSE[0]=BSD
WEB_SITE=http://cscope.sourceforge.net/index.html
ENTERED=20020125
diff --git a/devel/cscope/HISTORY b/devel/cscope/HISTORY
index 3c12d40..d3a0a8c 100644
--- a/devel/cscope/HISTORY
+++ b/devel/cscope/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 15.8a
+
2009-10-31 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: Changed SOURCE extension
updated spell to 15.7a
diff --git a/devel/dev86/DETAILS b/devel/dev86/DETAILS
index 8d8af01..a460485 100755
--- a/devel/dev86/DETAILS
+++ b/devel/dev86/DETAILS
@@ -1,7 +1,7 @@
SPELL=dev86
- VERSION=0.16.18
+ VERSION=0.16.19
SOURCE=Dev86src-$VERSION.tar.gz
-
SOURCE_HASH=sha512:d14523bc1623e027188f4003be9725adaa56a1703edc434d747c1a0e6cffdfdf8dfa593d430eda28e7e77ae84e97e65a119f4b5d2e7fe6146f3a84f42e3c92ac
+
SOURCE_HASH=sha512:4077f7ac800330eb4658ffaa53dc8cc982792b1dcd7a59625cba4a5dac494117c6bd4ec5307bf02349ad6ae3d0c0903ab2e41123a8df94373e469092fa005cd3
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://www.debath.co.uk/dev86/$SOURCE
WEB_SITE=http://www.debath.co.uk/dev86/
diff --git a/devel/dev86/HISTORY b/devel/dev86/HISTORY
index 0ad93fd..81abd6b 100644
--- a/devel/dev86/HISTORY
+++ b/devel/dev86/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.16.19
+
2010-12-23 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: Updated to version 0.16.18.
Fixed SOURCE_URL[0].
diff --git a/disk/eject/DETAILS b/disk/eject/DETAILS
index 24a2103..8bb4ea0 100755
--- a/disk/eject/DETAILS
+++ b/disk/eject/DETAILS
@@ -1,11 +1,11 @@
SPELL=eject
VERSION=2.1.5
- SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL
- SOURCE_URL[0]=http://ca.geocities.com/jefftranter%40rogers.com/$SOURCE
- SOURCE_GPG="gurus.gpg:${SOURCE}.sig:WORKS_FOR_ME"
+ SOURCE_URL[0]=http://www.paldo.org/paldo/sources/${SPELL}/${SOURCE}
+
SOURCE_HASH=sha512:bc0f7726d854d2b89cad5c5f073d114c7a25c0f33ce058714f7f671e21704b40efc6ca63a10b49f3bfb5f49975cb36e45846bdc103498b5d0d5446cfa6a67da6
LICENSE[0]=GPL
- WEB_SITE=http://ca.geocities.com/jefftranter%40rogers.com/eject.html
+ WEB_SITE=http://eject.sourceforge.net/
ENTERED=20010922
UPDATED=20051230
KEYWORDS="disk cdrom"
diff --git a/disk/eject/HISTORY b/disk/eject/HISTORY
index 183e3d1..57d9677 100644
--- a/disk/eject/HISTORY
+++ b/disk/eject/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: fixed SOURCE_URL and WEB_SITE
+
2006-06-14 Juuso Alasuutari <iuso AT sourcemage.org>
* DETAILS: Updated to 2.1.5. Removed stale SOURCE_URL[1], added
keyword cdrom, modified short & long descriptions.
diff --git a/doc/dvi2tty/DETAILS b/doc/dvi2tty/DETAILS
index cbc2485..a736965 100755
--- a/doc/dvi2tty/DETAILS
+++ b/doc/dvi2tty/DETAILS
@@ -1,10 +1,10 @@
SPELL=dvi2tty
- VERSION=5.3.1
- SOURCE="${SPELL}-${VERSION}.tar.gz"
+ VERSION=5.3.4
+ SOURCE="${SPELL}-${VERSION}.tgz"
SOURCE_URL[0]=http://www.mesa.nl/pub/${SPELL}/${SOURCE}
-
SOURCE_HASH=sha512:d1d8c9e8eefe0a2bd616d6bae5ed9da4dab5d09a04f7b7222848a1c519c9d9a59151e6f20d1ee5c656086f793ea6b5a3a3571c85aed4a5a29e11eee7071cbc38
+
SOURCE_HASH=sha512:5ad91f346d882cbe8a64e746aafec51dce208a01f83a058a86669a3eecb9546804831bf0b283553c54cfd751f0b08fda80343de0ebe78c6f86360d606a839877
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/$SPELL-$VERSION"
-
WEB_SITE="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=dvi2tty";
+ WEB_SITE="http://ctan.org/tex-archive/dviware/${SPELL}";
LICENSE[0]="GPL"
ENTERED=20090729
KEYWORDS=""
diff --git a/doc/dvi2tty/HISTORY b/doc/dvi2tty/HISTORY
index 4795220..e659c6d 100644
--- a/doc/dvi2tty/HISTORY
+++ b/doc/dvi2tty/HISTORY
@@ -1,3 +1,8 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 5.3.4, fixed WEB_SITE
+ * disdvi.c.patch, dvi2tty.c.patch, malloc_cleanup.patch: removed
+ * PRE_BUILD: removed patches
+
2009-07-29 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
* BUILD, DETAILS, PRE_BUILD: spell created
* disdvi.c.patch, dvi2tty.c.patch, malloc_cleanup.patch: needed for
diff --git a/doc/dvi2tty/PRE_BUILD b/doc/dvi2tty/PRE_BUILD
index 2e0a69b..7060a20 100755
--- a/doc/dvi2tty/PRE_BUILD
+++ b/doc/dvi2tty/PRE_BUILD
@@ -1,13 +1,11 @@
default_pre_build &&
cd $SOURCE_DIRECTORY &&
-patch -p0 < $SPELL_DIRECTORY/disdvi.c.patch &&
-patch -p0 < $SPELL_DIRECTORY/dvi2tty.c.patch &&
+
sed -i -e "s:^prefix.*:prefix = $INSTALL_ROOT/usr:" \
-e 's:^mandir.*:mandir = \$(prefix)/share/man/man1:' \
-e "s:^CFLAGS.*:CFLAGS = $CFLAGS:g" \
-e "s:^LDFLAGS.*:LDFLAGS = $LDFLAGS:g" Makefile &&
sed -i -e "s:getline:own_getline:g" dvistuff.c &&
-patch -p0 < $SPELL_DIRECTORY/malloc_cleanup.patch &&
sed -i -e "s:/usr/bin/more:/bin/more:g" dvi2tty.c
#sed -i -e "s:malloc:own_malloc:g" disdvi.c &&
#sed -i -e "s:malloc:own_malloc:g" dvi2tty.c &&
diff --git a/doc/dvi2tty/disdvi.c.patch b/doc/dvi2tty/disdvi.c.patch
deleted file mode 100644
index 17c6a00..0000000
--- a/doc/dvi2tty/disdvi.c.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-$OpenBSD: patch-disdvi_c,v 1.1.1.1 2002/11/03 15:47:06 naddy Exp $
---- disdvi.c.orig Mon May 27 18:49:40 1996
-+++ disdvi.c Sun Nov 3 16:15:50 2002
-@@ -91,11 +91,6 @@ char * progname;
- char * malloc ();
- #endif
-
--#if defined(VMS)
-- main (int argc, char ** argv);
--#else
--void main (int argc, char ** argv);
--#endif
- void bop (void);
- void preamble (void);
- void postamble (void);
-@@ -118,7 +113,7 @@ void usage (void);
- #if defined(VMS)
- main(int argc, char **argv)
- #else
--void main(int argc, char **argv)
-+int main(int argc, char **argv)
- #endif
- {
- register int opcode; /* dvi opcode
*/
diff --git a/doc/dvi2tty/dvi2tty.c.patch b/doc/dvi2tty/dvi2tty.c.patch
deleted file mode 100644
index 5a60a5e..0000000
--- a/doc/dvi2tty/dvi2tty.c.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-$OpenBSD: patch-dvi2tty_c,v 1.1.1.1 2002/11/03 15:47:06 naddy Exp $
---- dvi2tty.c.orig Mon May 27 18:48:17 1996
-+++ dvi2tty.c Sun Nov 3 16:16:12 2002
-@@ -157,7 +157,7 @@
- /* don't have terminals with Scand. nat.
chars */
- #define WANTPAGER TRUE /* default: try to pipe through a pager (like
*/
- /* more) if stdout is tty and no -o switch
*/
--#define DEFPAGER "/usr/bin/pg" /* CHANGE TO YOUR LOCAL PAGER
*/
-+#define DEFPAGER "/usr/bin/more" /* CHANGE TO YOUR LOCAL PAGER
*/
-
- /*------------------ end of customization constants
---------------------*/
-
-@@ -240,11 +240,6 @@ int getlong (long *, int *, char *
- void usage (int);
- #else
-
--# if defined(VMS)
-- main (int argc, char ** argv);
--# else
--void main (int argc, char ** argv);
--# endif
- void setoption (char * optarg);
- void getargs (void);
- void getpages (int j, char * str);
-@@ -265,7 +260,7 @@ void usage (int uerr);
- #if defined(VMS)
- main(int argc, char **argv)
- #else
--void main(int argc, char **argv)
-+int main(int argc, char **argv)
- #endif
- {
-
diff --git a/doc/dvi2tty/malloc_cleanup.patch
b/doc/dvi2tty/malloc_cleanup.patch
deleted file mode 100644
index 587c7a8..0000000
--- a/doc/dvi2tty/malloc_cleanup.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- disdvi.c.orig 2009-07-29 13:00:25.000000000 +0200
-+++ disdvi.c 2009-07-29 13:00:42.000000000 +0200
-@@ -107,10 +107,6 @@
- * Function declarations
- */
-
--#if !defined(THINK_C)
--char * malloc ();
--#endif
--
- void bop (void);
- void preamble (void);
- void postamble (void);
diff --git a/doc/dvipdfmx/DETAILS b/doc/dvipdfmx/DETAILS
index 9dcf67c..cfab9cf 100755
--- a/doc/dvipdfmx/DETAILS
+++ b/doc/dvipdfmx/DETAILS
@@ -1,8 +1,8 @@
SPELL=dvipdfmx
- VERSION=20090708
+ VERSION=20110311
SOURCE="$SPELL-${VERSION}.tar.gz"
SOURCE_URL[0]=http://project.ktug.or.kr/$SPELL/snapshot/latest/${SOURCE}
-
SOURCE_HASH=sha512:57ff3a1c348746682b953bad26e162fd6000b9ca332f2edea20a85179d678ad794abcc2ed9ef5b728b37a3fd5061a8dc8f6cee161f7898a89afac4bd055489eb
+
SOURCE_HASH=sha512:0d5fc5dba35b0fe7074a392a99338861ce999809e5c20da830ebd6ba4c8ba45819054463862f3025d3a30c78aad227d3e014651ebf5e7976e86a3d9dac93d406
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/$SPELL-${VERSION}"
WEB_SITE="http://project.ktug.or.kr/dvipdfmx/";
LICENSE[0]="GPL"
diff --git a/doc/dvipdfmx/HISTORY b/doc/dvipdfmx/HISTORY
index 7996a6c..c3b7861 100644
--- a/doc/dvipdfmx/HISTORY
+++ b/doc/dvipdfmx/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 20110311
+
2009-07-29 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
* DEPENDS, DETAILS: spell created

diff --git a/doc/enca/DETAILS b/doc/enca/DETAILS
index 295ac17..8bc7a74 100755
--- a/doc/enca/DETAILS
+++ b/doc/enca/DETAILS
@@ -1,12 +1,12 @@
SPELL=enca
- VERSION=1.12
+ VERSION=1.14
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://dl.cihar.com/$SPELL/$SOURCE
WEB_SITE=http://gitorious.org/enca
ENTERED=20060604
LICENSE[0]=GPL
-
SOURCE_HASH=sha512:78c5d275c3a53db08be456da9deeb9a6ce1502e3371d1b778f3c6f624100657cb8ddeafbf566dadd1ee50039d6f2c3f0f4165422b1a26661cb8b413eda79b7f9
+
SOURCE_HASH=sha512:9d0582cc8187f3e868339c3e13ca2c654359b240dd564b64a31615aeffb0ec7ae025659576cc72f6cab73b0bfa22286060f665f2c952f8dfe702cf97a39d2245
SHORT="Enca is an Extremely Naive Charset Analyser"
cat << EOF
Enca is an Extremely Naive Charset Analyser. It detects
diff --git a/doc/enca/HISTORY b/doc/enca/HISTORY
index 5e11ff9..71fa02f 100644
--- a/doc/enca/HISTORY
+++ b/doc/enca/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.14
+
2009-10-30 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: updated spell to 1.12
fixed SOURCE_URL & WEBSITE
diff --git a/doc/help2man/DETAILS b/doc/help2man/DETAILS
index ff9fa93..2057f45 100755
--- a/doc/help2man/DETAILS
+++ b/doc/help2man/DETAILS
@@ -1,5 +1,5 @@
SPELL=help2man
- VERSION=1.38.4
+ VERSION=1.40.9
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE2="${SOURCE}.sig"
SOURCE_GPG="gnu.gpg:$SOURCE2:UPSTREAM_KEY"
diff --git a/doc/help2man/HISTORY b/doc/help2man/HISTORY
index ffbc09e..3b6e7b2 100644
--- a/doc/help2man/HISTORY
+++ b/doc/help2man/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.40.9
+
2011-01-01 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 1.38.4

diff --git a/doc/lcdf-typetools/DETAILS b/doc/lcdf-typetools/DETAILS
index c2b0b7d..7118e9f 100755
--- a/doc/lcdf-typetools/DETAILS
+++ b/doc/lcdf-typetools/DETAILS
@@ -1,8 +1,8 @@
SPELL=lcdf-typetools
- VERSION=2.79
+ VERSION=2.97
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE_URL[0]=http://www.lcdf.org/type/${SOURCE}
-
SOURCE_HASH=sha512:fb2dbe7e57e7c154815209c4b120e477d4a1704263d9a166e932cd16ce63cde9564aa5672ed79a8225c7bc7caa5fdec7c6897521c7f4b73ddff717ce572bdbe6
+
SOURCE_HASH=sha512:8812436843721b7134ec796549092854050d1e9017fef048a62e7aa0e866d20e9757b246dbad738cdf8d8583afada3a2db9c6c7dc2546154cafd4dcd0f27f7f2
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="http://www.lcdf.org/type/";
LICENSE[0]="GPL"
diff --git a/doc/lcdf-typetools/HISTORY b/doc/lcdf-typetools/HISTORY
index 7996a6c..e1a094d 100644
--- a/doc/lcdf-typetools/HISTORY
+++ b/doc/lcdf-typetools/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 2.97
+
2009-07-29 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
* DEPENDS, DETAILS: spell created

diff --git a/doc/t1utils/DETAILS b/doc/t1utils/DETAILS
index 21bf0d7..11dbdc0 100755
--- a/doc/t1utils/DETAILS
+++ b/doc/t1utils/DETAILS
@@ -1,11 +1,11 @@
SPELL=t1utils
- VERSION=1.34
+ VERSION=1.37
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://www.lcdf.org/~eddietwo/type/$SOURCE
WEB_SITE=http://www.lcdf.org/~eddietwo/type/
ENTERED=20041129
-
SOURCE_HASH=sha512:49523e32f2f55c71a9415935597142c238120fcd9b3fb6dffb90c84b506087029572dcc2a5c0382a3c439d644c77ee36a6ca84a6b241f2bdbc9266b3d212bebc
+
SOURCE_HASH=sha512:72b6eec7669be078f11927f0d8061fe9956f9a37c159cedb95344abedb7c79687c774916024f3eec2279d1b4e6d1430c78a8c8e2c95c563cb1df316d0c863a9f
LICENSE[0]="Copyright (c) 1992 by I. Lee Hetherington, all rights
reserved. Permission is hereby granted to use, modify, and distribute this
program for any purpose provided this copyright notice and the one below
remain intact. Note that these tools should not be used to illegally copy
type-1 font programs. Typeface design is an intricate art that should be
rewarded. I. Lee Hetherington ilh AT lcs.mit.edu"
KEYWORDS="fonts doc"
SHORT="Type1 font utilities"
diff --git a/doc/t1utils/HISTORY b/doc/t1utils/HISTORY
index d7c1405..39cdbfe 100644
--- a/doc/t1utils/HISTORY
+++ b/doc/t1utils/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.37
+
2009-07-28 Jaka Kranjc <lynxlynxlynx AT sourcemage.org>
* DETAILS: updated spell to 1.34
* PRE_BUILD: added to fix recent glibc incompatibility #15322
diff --git a/editors/sed/DETAILS b/editors/sed/DETAILS
index 945440f..f58745f 100755
--- a/editors/sed/DETAILS
+++ b/editors/sed/DETAILS
@@ -1,5 +1,5 @@
SPELL=sed
- VERSION=4.2.1
+ VERSION=4.2.2
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.sig
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/editors/sed/HISTORY b/editors/sed/HISTORY
index ced3305..654ae4b 100644
--- a/editors/sed/HISTORY
+++ b/editors/sed/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 4.2.2
+
2011-04-11 Vlad Glagolev <stealth AT sourcemage.org>
* DEPENDS: added gettext optional dependency

diff --git a/gnome2-libs/glib2/HISTORY b/gnome2-libs/glib2/HISTORY
index 63ec881..d916ede 100644
--- a/gnome2-libs/glib2/HISTORY
+++ b/gnome2-libs/glib2/HISTORY
@@ -1,3 +1,6 @@
+2012-04-22 Treeve Jelbert <treeve AT sourcemage.org>
+ * PRE_BUILD ,py3.patch.xz: deleted
+
2012-12-08 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 2.34.3

diff --git a/gnome2-libs/glib2/PRE_BUILD b/gnome2-libs/glib2/PRE_BUILD
deleted file mode 100755
index 3106958..0000000
--- a/gnome2-libs/glib2/PRE_BUILD
+++ /dev/null
@@ -1,10 +0,0 @@
-default_pre_build &&
-cd $SOURCE_DIRECTORY &&
-if is_depends_enabled $SPELL python3; then
- message "patching for python3" &&
- xzcat $SPELL_DIRECTORY/py3.patch.xz |patch -p1
-elif is_depends_enabled $SPELL python; then
- message "not patching for python3"
-else
- find . -name 'Makefile*' -exec sed -i -e '/^SUBDIRS =/,/[^\]$/ {;s,
tests,,g;s, gdbus-2.0/codegen,,g;}' {} +
-fi
diff --git a/gnome2-libs/glib2/py3.patch.xz b/gnome2-libs/glib2/py3.patch.xz
deleted file mode 100644
index 9e1fee1..0000000
Binary files a/gnome2-libs/glib2/py3.patch.xz and /dev/null differ
diff --git a/graphics-libs/agg/HISTORY b/graphics-libs/agg/HISTORY
index 27e86c3..3646b63 100644
--- a/graphics-libs/agg/HISTORY
+++ b/graphics-libs/agg/HISTORY
@@ -1,3 +1,7 @@
+2012-12-22 Pol Vinogradov <vin.public AT gmail.com>
+ * PRE_BUILD: added fixes for buiding with current
+ autoconf and automake
+
2011-07-30 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DEPENDS: changed dependency on g++ to dependency on gcc with
sub-depends on CXX (scripted)
diff --git a/graphics-libs/agg/PRE_BUILD b/graphics-libs/agg/PRE_BUILD
index 61e28c4..e219e86 100755
--- a/graphics-libs/agg/PRE_BUILD
+++ b/graphics-libs/agg/PRE_BUILD
@@ -1,6 +1,8 @@
default_pre_build &&
cd $SOURCE_DIRECTORY &&
patch -p1 < $SCRIPT_DIRECTORY/agg-2.5-libtool22_fix-1.patch &&
+sed -i 's: -L@x_libraries@::' src/platform/X11/Makefile.am &&
+sed -i '/^AM_C_PROTOTYPES/d' configure.in &&
sedit '/configure/d' autogen.sh &&
chmod +x autogen.sh &&
./autogen.sh
diff --git a/graphics-libs/graphite2/DETAILS b/graphics-libs/graphite2/DETAILS
index 599292f..0efdaf5 100755
--- a/graphics-libs/graphite2/DETAILS
+++ b/graphics-libs/graphite2/DETAILS
@@ -1,7 +1,7 @@
SPELL=graphite2
- VERSION=1.1.3
+ VERSION=1.2.0
SOURCE="${SPELL}-${VERSION}.tgz"
- SOURCE_URL[0]="${SOURCEFORGE_URL}/silgraphite/${SOURCE}"
+ SOURCE_URL[0]=http://projects.palaso.org/attachments/download/298/$SOURCE
SOURCE_GPG="gurus.gpg:${SOURCE}.sig"
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="http://graphite.sil.org";
diff --git a/graphics-libs/graphite2/HISTORY b/graphics-libs/graphite2/HISTORY
index 29a3f9d..7fc0e47 100644
--- a/graphics-libs/graphite2/HISTORY
+++ b/graphics-libs/graphite2/HISTORY
@@ -1,3 +1,6 @@
+2012-12-21 Robin Cook <rcook AT wyrms.net>
+ * DETAILS: updated VERSION to 1.2.0
+
2012-06-24 Sukneet Basuta <sukneet AT sourcemage.org>
* DETAILS: updated spell to 1.1.3

diff --git a/graphics-libs/graphite2/graphite2-1.1.3.tgz.sig
b/graphics-libs/graphite2/graphite2-1.1.3.tgz.sig
deleted file mode 100644
index 80c2121..0000000
Binary files a/graphics-libs/graphite2/graphite2-1.1.3.tgz.sig and /dev/null
differ
diff --git a/graphics-libs/graphite2/graphite2-1.2.0.tgz.sig
b/graphics-libs/graphite2/graphite2-1.2.0.tgz.sig
new file mode 100644
index 0000000..b5931b9
Binary files /dev/null and b/graphics-libs/graphite2/graphite2-1.2.0.tgz.sig
differ
diff --git a/graphics-libs/libwmf/DETAILS b/graphics-libs/libwmf/DETAILS
index 4845e03..1a0f202 100755
--- a/graphics-libs/libwmf/DETAILS
+++ b/graphics-libs/libwmf/DETAILS
@@ -4,7 +4,7 @@
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=$SOURCEFORGE_URL/wvware/$SOURCE
- WEB_SITE=http://sourceforge.net/projects/wvware
+ WEB_SITE=http://wvware.sourceforge.net/
ENTERED=20020509
LICENSE[0]=GPL
KEYWORDS="images graphics libs"
diff --git a/graphics-libs/libwmf/HISTORY b/graphics-libs/libwmf/HISTORY
index e584c95..927f38f 100644
--- a/graphics-libs/libwmf/HISTORY
+++ b/graphics-libs/libwmf/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: corrected WEB_SITE
+
2010-11-03 Ladislav Hagara <hgr AT vabo.cz>
* DEPENDS: jpeg -> JPEG

diff --git a/graphics/netpbm/DETAILS b/graphics/netpbm/DETAILS
index 7559af3..4719b05 100755
--- a/graphics/netpbm/DETAILS
+++ b/graphics/netpbm/DETAILS
@@ -6,8 +6,8 @@ if [[ $NETPBM_SVN == y ]]; then
SOURCE_IGNORE=volatile
FORCE_DOWNLOAD=1
else
- VERSION=10.35.81
-
SOURCE_HASH=sha512:477daf333aee6d0d3669b9810cb8ef40d40d216bec1268c9cd93a7075793031b6c9c0607c063195e19c07ee42b66f090b4d40909ed9ebd611498c4887765a42e
+ VERSION=10.35.87
+
SOURCE_HASH=sha512:c0c4a971ff7cb9268be398fcdf85a205504b6f675f89e490a2dd235da07d6c59ab1ebfe18cb899aa724e2d3b88b7220fae15a5fc6d9bb2e09299e02c9dc214a3
SOURCE=$SPELL-$VERSION.tgz
SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE
fi
diff --git a/graphics/netpbm/HISTORY b/graphics/netpbm/HISTORY
index 1af17e4..81cd3e9 100644
--- a/graphics/netpbm/HISTORY
+++ b/graphics/netpbm/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 10.35.87
+
2011-07-10 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 10.35.81
* DEPENDS: xorg-libs => libx11
diff --git a/http/gnash/BUILD b/http/gnash/BUILD
index c680f94..be4394c 100755
--- a/http/gnash/BUILD
+++ b/http/gnash/BUILD
@@ -1,6 +1,8 @@
CXXFLAGS=${CXXFLAGS/-Os/-O2}
CFLAGS=${CFLAGS/-Os/-O2}
OPTS="$GNASH_OPTS $OPTS" &&
+sed -i '/^LIBS/s/\(.*\)/\1 -lboost_system/' \
+ gui/Makefile.in utilities/Makefile.in &&
if [[ "$GNASH_MEMORY" == "posix" ]]; then
list_add OPTS "--with-shm=posix"
else
diff --git a/http/gnash/DEPENDS b/http/gnash/DEPENDS
index a8ce0dc..4b22f09 100755
--- a/http/gnash/DEPENDS
+++ b/http/gnash/DEPENDS
@@ -1,4 +1,4 @@
-depends -sub "THREAD DATE_TIME" boost &&
+depends -sub "THREAD DATE_TIME PROGRAM_OPTIONS SYSTEM" boost &&
depends curl &&
depends fontconfig &&
depends -sub CXX gcc &&
diff --git a/http/gnash/DETAILS b/http/gnash/DETAILS
index e64b25b..06ecba3 100755
--- a/http/gnash/DETAILS
+++ b/http/gnash/DETAILS
@@ -1,5 +1,5 @@
SPELL=gnash
- VERSION=0.8.9
+ VERSION=0.8.10
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE2=$SOURCE.sig
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/http/gnash/HISTORY b/http/gnash/HISTORY
index cd9e177..5b91dbe 100644
--- a/http/gnash/HISTORY
+++ b/http/gnash/HISTORY
@@ -1,3 +1,7 @@
+2012-12-22 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS: version 0.8.10
+ * BUILD, DEPENDS: boost specific fixes from BLFS project
+
2011-10-04 Bor Kraljič <pyrobor AT ver.si>
* DEPENDS,CONFIGURE: removed kde3 as option for GUI

diff --git a/http/lightspark/DETAILS b/http/lightspark/DETAILS
index b32732a..28e79df 100755
--- a/http/lightspark/DETAILS
+++ b/http/lightspark/DETAILS
@@ -1,9 +1,9 @@
SPELL=lightspark
- VERSION=0.7.0
-
SOURCE_HASH=sha512:d4e25dbd60d7bc3a4a50eb0708fe8c7f5b940006f598b7a5939ff8d596e6618502793cfde62839343ac8403d76d62fc127c0262a595ff57b54932db6d50c8b70
+ VERSION=0.7.1
+
SOURCE_HASH=sha512:a8c10782f144cf4b9a39d32ca4c78f441957550f790161671fa52fec686672f22ab977b41c55b5e33d1e65eaa28e78bf48e729ce01f51b56ef24d2d09e62eeae
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
-
SOURCE_URL[0]=http://launchpad.net/$SPELL/trunk/lightspark-$VERSION/+download/$SOURCE
+
SOURCE_URL[0]=http://launchpad.net/$SPELL/trunk/$SPELL-$VERSION/+download/$SOURCE
WEB_SITE=http://sourceforge.net/apps/trac/lightspark
ENTERED=20110528
LICENSE[0]=GPL
diff --git a/http/lightspark/HISTORY b/http/lightspark/HISTORY
index a07bbe7..2fe32d1 100644
--- a/http/lightspark/HISTORY
+++ b/http/lightspark/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS: updated to version 0.7.1
+
2012-11-14 Pol Vinogradov <vin.public AT gmail.com>
* DETAILS: version 0.7.0
* DEPENDS: now requires rtmpdump
diff --git a/java/icedtea-web/DETAILS b/java/icedtea-web/DETAILS
index cbd0143..3d41765 100755
--- a/java/icedtea-web/DETAILS
+++ b/java/icedtea-web/DETAILS
@@ -1,5 +1,5 @@
SPELL=icedtea-web
- VERSION=1.2.1
+ VERSION=1.3.1
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://icedtea.classpath.org/download/source/$SOURCE
diff --git a/java/icedtea-web/HISTORY b/java/icedtea-web/HISTORY
index 84fae04..bc9d78b 100644
--- a/java/icedtea-web/HISTORY
+++ b/java/icedtea-web/HISTORY
@@ -1,3 +1,6 @@
+2012-12-02 Robin Cook <rcook AT wyrms.net>
+ * DETAILS: updated VERSION to 1.3.1
+
2012-08-24 Robin Cook <rcook AT wyrms.net>
* DETAILS: updated VERSION to 1.2.1

diff --git a/java/icedtea-web/icedtea-web-1.2.1.tar.gz.sig
b/java/icedtea-web/icedtea-web-1.2.1.tar.gz.sig
deleted file mode 100644
index 01825f2..0000000
Binary files a/java/icedtea-web/icedtea-web-1.2.1.tar.gz.sig and /dev/null
differ
diff --git a/java/icedtea-web/icedtea-web-1.3.1.tar.gz.sig
b/java/icedtea-web/icedtea-web-1.3.1.tar.gz.sig
new file mode 100644
index 0000000..c374afd
Binary files /dev/null and b/java/icedtea-web/icedtea-web-1.3.1.tar.gz.sig
differ
diff --git a/kernels/linux/HISTORY b/kernels/linux/HISTORY
index 4f53228..ddd4ed6 100644
--- a/kernels/linux/HISTORY
+++ b/kernels/linux/HISTORY
@@ -1,3 +1,13 @@
+2012-12-22 Vlad Glagolev <stealth AT sourcemage.org>
+ * info/patches/maintenance_patches_3/patch-3.0.{56,57}: added
+ * info/patches/maintenance_patches_3/patch-3.4.{23,24}: added
+ * info/patches/maintenance_patches_3/patch-3.6.11: added
+
+2012-12-22 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * latest_defaults, info/kernels/3.7,
+ info/patches/maintenance_patches_3/patch-3.7,
+ info/patches/maintenance_patches_3/patch-3.7.1: version 3.7.1
+
2012-12-10 Ladislav Hagara <hgr AT vabo.cz>
* latest.defaults: LATEST_maintenance_patches_3=patch-3.6.10
* info/patches/maintenance_patches_3/patch-3.6.10: added
diff --git a/kernels/linux/info/kernels/3.7 b/kernels/linux/info/kernels/3.7
new file mode 100755
index 0000000..c38697d
--- /dev/null
+++ b/kernels/linux/info/kernels/3.7
@@ -0,0 +1,5 @@
+version="3.7"
+source="linux-${version}.tar.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source}"
+source2="linux-${version}.tar.sign"
+source2_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source2}"
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.0.56
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.0.56
new file mode 100755
index 0000000..b0a7559
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.0.56
@@ -0,0 +1,5 @@
+appliedkernels="3.0"
+patchversion="${appliedkernels}.56"
+source="patch-${patchversion}.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.0/${source}"
+sha1sum="744f8d00d51b574375830bddd5505d5405a33b36"
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.0.57
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.0.57
new file mode 100755
index 0000000..0520ba6
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.0.57
@@ -0,0 +1,5 @@
+appliedkernels="3.0"
+patchversion="${appliedkernels}.57"
+source="patch-${patchversion}.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.0/${source}"
+sha1sum="9fe793bb477e77fe16875e3187d704c110b62477"
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.4.23
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.4.23
new file mode 100755
index 0000000..0f64a0a
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.4.23
@@ -0,0 +1,5 @@
+appliedkernels="3.4"
+patchversion="${appliedkernels}.23"
+source="patch-${patchversion}.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source}"
+sha1sum="8c9322c6f53a3990e2adaafdc03d285e0f8e1595"
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.4.24
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.4.24
new file mode 100755
index 0000000..72315f2
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.4.24
@@ -0,0 +1,5 @@
+appliedkernels="3.4"
+patchversion="${appliedkernels}.24"
+source="patch-${patchversion}.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source}"
+sha1sum="101614d14b524424c41303c6b7d06645e531ed3f"
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.6.11
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.6.11
new file mode 100755
index 0000000..d9928e0
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.6.11
@@ -0,0 +1,5 @@
+appliedkernels="3.6"
+patchversion="${appliedkernels}.11"
+source="patch-${patchversion}.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source}"
+sha1sum="c7b3c4c5a4e1ee92365372b5a7e9c6152867fd71"
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.7
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.7
new file mode 100755
index 0000000..6fe77ce
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.7
@@ -0,0 +1,5 @@
+patchversion="3.7.0"
+source=""
+source_url=""
+appliedkernels="3.7"
+md5sum=""
diff --git a/kernels/linux/info/patches/maintenance_patches_3/patch-3.7.1
b/kernels/linux/info/patches/maintenance_patches_3/patch-3.7.1
new file mode 100755
index 0000000..8612281
--- /dev/null
+++ b/kernels/linux/info/patches/maintenance_patches_3/patch-3.7.1
@@ -0,0 +1,5 @@
+appliedkernels="3.7"
+patchversion="${appliedkernels}.1"
+source="patch-${patchversion}.bz2"
+source_url="${KERNEL_URL}/pub/linux/kernel/v3.x/${source}"
+sha1sum="05816e9e9434234fd3808837635338cf498bc95d"
diff --git a/kernels/linux/latest.defaults b/kernels/linux/latest.defaults
index 2b0a0da..51c5225 100644
--- a/kernels/linux/latest.defaults
+++ b/kernels/linux/latest.defaults
@@ -1,8 +1,8 @@
-LATEST_3=3.6
+LATEST_3=3.7
LATEST_2_6=2.6.39
LATEST_PRE_2_6=patch-2.6.39
LATEST_maintenance_patches=patch-2.6.39.4
-LATEST_maintenance_patches_3=patch-3.6.10
+LATEST_maintenance_patches_3=patch-3.7.1
LATEST_git_patches=patch-2.6.25-rc6-git7
LATEST_2_4=2.4.37.9
LATEST_PRE_2_4=patch-2.4.33-pre1
diff --git a/latex/glosstex/DETAILS b/latex/glosstex/DETAILS
index 012ce3f..bd7b8f3 100755
--- a/latex/glosstex/DETAILS
+++ b/latex/glosstex/DETAILS
@@ -4,7 +4,7 @@
SOURCE_URL[0]=http://theory.uwinnipeg.ca/scripts/CTAN/support/${SOURCE}

SOURCE_HASH=sha512:9b7d077dad3774449cdc6a637f6de3847202f8c359cb70e57ff3c5f2ec43b005d1249ee1bf770b58074f7659fa7c7065a69ba11010539038e7a06a1a24f956db
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}"
-
WEB_SITE="http://www.ctan.org/tex-archive/help/Catalogue/entries/glosstex.html";
+ WEB_SITE="http://www.ctan.org/pkg/glosstex";
LICENSE[0]=GPL
ENTERED=20091104
SHORT="a tool for the automatic preparation of glossaries"
diff --git a/latex/glosstex/HISTORY b/latex/glosstex/HISTORY
index 7d6b651..f272e75 100644
--- a/latex/glosstex/HISTORY
+++ b/latex/glosstex/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: fix WEB_SITE
+
2009-11-05 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: set VERSION correctly

diff --git a/latex/lacheck/DETAILS b/latex/lacheck/DETAILS
index 73b60f5..226d2aa 100755
--- a/latex/lacheck/DETAILS
+++ b/latex/lacheck/DETAILS
@@ -4,7 +4,7 @@
SOURCE_URL[0]=http://tug.ctan.org/get/support/${SPELL}/${SOURCE}

SOURCE_HASH=sha512:8fbe808a84eb7e5c018ca2b8445525f337ec2f8ce3d220a07ed932fb2aaaca6d1d552ccbd8b3ed1d3f0b27e3be3698247ded975bf86ccf4dc58258587a060bfa
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
-
WEB_SITE="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=lacheck";
+ WEB_SITE="http://www.ctan.org/tex-archive/support/lacheck";
LICENSE[0]="GPLv1"
ENTERED=20090729
KEYWORDS=""
diff --git a/latex/lacheck/HISTORY b/latex/lacheck/HISTORY
index 0b9844f..84c9799 100644
--- a/latex/lacheck/HISTORY
+++ b/latex/lacheck/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: fixed WEB_SITE
+
2009-07-29 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
* BUILD, DEPENDS, DETAILS: spell created
* PRE_BUILD: spell created
diff --git a/libs/apr/DETAILS b/libs/apr/DETAILS
index c4e60c0..39d413a 100755
--- a/libs/apr/DETAILS
+++ b/libs/apr/DETAILS
@@ -1,5 +1,5 @@
SPELL=apr
- VERSION=1.4.5
+ VERSION=1.4.6
SECURITY_PATCH=1
REPOS_URI="branches/${VERSION%.*}.x"
# APR_LATEST replaces APR_CVS; remove APR_CVS in May, 2005
diff --git a/libs/apr/HISTORY b/libs/apr/HISTORY
index 9449ae5..0ed26fe 100644
--- a/libs/apr/HISTORY
+++ b/libs/apr/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.4.6
+
2011-05-22 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 1.4.5; SECURITY_PATCH++

diff --git a/libs/findlib/DETAILS b/libs/findlib/DETAILS
index 37d5ff9..b435b2e 100755
--- a/libs/findlib/DETAILS
+++ b/libs/findlib/DETAILS
@@ -1,8 +1,8 @@
SPELL=findlib
- VERSION=1.2.8
+ VERSION=1.3.3
SOURCE=${SPELL}-${VERSION}.tar.gz
SOURCE_URL[0]=http://www.ocaml-programming.de/packages/${SOURCE}
-
SOURCE_HASH=sha512:562bac4f4d85bc3af96a05db97c0683f71d524b26f8d2ae7adedb8fe707b1e4d7cfe4cdaa857cb63a35b31d0d87fe60d98f4ce0ad3ff393bd068ab1bbdf88196
+
SOURCE_HASH=sha512:c5e5a6911a0f79c2036ad59e5ac2bc16a0de9b086c29e30625c49748d3f54844730d0f9a9aaadc7e7c47f4bcbeec4ad9351a4179ff9a0743b30b6c7e8da6159d
SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
WEB_SITE=http://www.ocaml-programming.de/programming/findlib.html
ENTERED=20060629
diff --git a/libs/findlib/HISTORY b/libs/findlib/HISTORY
index 14e874b..cc78bf5 100644
--- a/libs/findlib/HISTORY
+++ b/libs/findlib/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.3.3
+
2012-03-31 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 1.2.8

diff --git a/libs/libvformat/0004-Provide-info-documentation.patch
b/libs/libvformat/0004-Provide-info-documentation.patch
new file mode 100644
index 0000000..d843ffb
--- /dev/null
+++ b/libs/libvformat/0004-Provide-info-documentation.patch
@@ -0,0 +1,939 @@
+From c05fb67cf74a6231949b7917cbe766cdb7bcdca6 Mon Sep 17 00:00:00 2001
+From: Mathias Palm <mathias.palm AT gmx.net>
+Date: Sat, 8 May 2010 23:00:09 +0200
+Subject: Provide info documentation
+
+Create texi files so that info files can be generated with texinfo.
+
+Origin: vendor
+Forwarded: http://vformat.cvs.sourceforge.net/viewvc/vformat/doc/
+Last-Update: 2010-05-09
+Applied-Upstream: http://vformat.cvs.sourceforge.net/viewvc/vformat/doc/
+---
+ doc/Makefile.am | 6 +-
+ doc/libvformat-1.texi | 733
+++++++++++++++++++++++++++++++++++++++++++++++++
+ doc/libvformat-2.texi | 79 ++++++
+ doc/libvformat-i.texi | 5 +
+ doc/libvformat.texi | 51 ++++
+ 5 files changed, 872 insertions(+), 2 deletions(-)
+ create mode 100644 doc/libvformat-1.texi
+ create mode 100644 doc/libvformat-2.texi
+ create mode 100644 doc/libvformat-i.texi
+ create mode 100644 doc/libvformat.texi
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 57591c5..e078504 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -1,8 +1,8 @@
+ # No automatisation found. Write me if any idea.
++info_TEXINFOS = libvformat.texi
++libvformat_TEXINFOS = libvformat-1.texi libvformat-2.texi libvformat-i.texi
+
+ install-data-hook:
+- c2man -P "gcc -E -C -I.." ../vformat/vf_iface.h
+-
+ $(mkinstalldirs) $(mandir)/man3
+
+ for i in *.3; do \
+@@ -14,3 +14,5 @@ install-data-hook:
+ echo " $(INSTALL_DATA) $$file $(mandir)/man3/$$inst"; \
+ $(INSTALL_DATA) $$file $(mandir)/man3/$$inst; \
+ done
++
++ cp /usr/share/texmf-dist/tex/texinfo/texinfo.tex .
+diff --git a/doc/libvformat-1.texi b/doc/libvformat-1.texi
+new file mode 100644
+index 0000000..ec59664
+--- /dev/null
++++ b/doc/libvformat-1.texi
+@@ -0,0 +1,733 @@
++@node Functions of libvformat
++@chapter Functions of libvformat
++@deftypefun {VFORMATDECLSPEC bool_t} vf_parse_init (
++@multitable{VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string from}
++@item VF_PARSER_T @tab @var{**pp_parser},@tab Ptr to allocated parser.
++@item VF_OBJECT_T @tab @var{pp_object} @tab The object we're parsing into.
++@end multitable
++)
++
++
++
++Allocate and initialise a parser. To parse a VCARD (or any vObject)
++a user allocates a parser, pushes data through it using vf_parse_text()
++and finally calls vf_parse_end():
++
++@verbatim
++
++ VF_PARSER_T *p_parser;
++
++ if (vf_parse_init(&p_parser, pp_object))
++ {
++ do
++ {
++ char buffer[...];
++ int numchars;
++
++ numchars = get_chars_from_somewhere(buffer, ...);
++
++ ret = vf_parse_text(p_parser, buffer, numchars);
++ }
++ while (ret && (0 < charsread))
++ ;
++
++ if (!vf_parse_end(p_parser))
++ {
++ ret = FALSE;
++ }
++ }
++
++@end verbatim
++
++A parser allocated by vf_parse_init(), must be deallocated by calling
++vf_parse_end() whether or not parsing succeeds. Also, parsing may not
++be complete (ie. values may be held buffered and not evaluated fully
++or assigned to a VF_OBJECT_T) untill the final call to vf_parse_end()
++=> after a vf_parse_init() you _must_ vf_parse_end().
++
++Returns TRUE iff parser allocated successfully.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_parse_text (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PARSER_T @tab @var{*p_parser}, @tab The parser
++@item char @tab @var{*p_chars},@tab New characters to parse into object
++@item int @tab @var{numchars}@tab Number of new characters
++@end multitable
++)
++
++
++Parse indicated text into the object associated with the VPARSE_T. See
++notes for vf_parse_init().
++
++Returns TRUE <=> allocation & syntax OK, FALSE else.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_parse_end (
++ @multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to
locate string from}
++ @item VF_PARSER_T @tab @var{*p_parse} @tab The parser
++ @end multitable
++ )
++
++
++
++Ensure parse completion, release memory associated with the parser.
++
++Returns TRUE <=> parse complete with no error.
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_read_file (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_OBJECT_T @tab @var{**pp_object},@tab Pointer to output object
++@item const char @tab @var{*p_name},@tab Name of file to read
++@end multitable
++)
++
++
++Reads indicated VOBJECT_T file.
++
++Returns TRUE <=> read OK, FALSE else.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_write_file (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item const char @tab @var{*p_name},@tab Output filename
++@item VF_OBJECT_T @tab @var{*p_object},@tab The object to write
++@item bool_t @tab @var{write_all}@tab Should write p_next as well?
++@end multitable
++)
++
++
++Write indicated vobject to file. For lists of objects (eg. read from
++a phonebook) the write_all parameter allows the caller to control if
++the library writes the entire list or just the head item.
++
++Returns TRUE <=> written OK, FALSE else.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_get_next_object (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_OBJECT_T @tab @var{**pp_object}@tab Ptr to pointer to current
object
++@end multitable
++)
++
++
++
++Find "next" vobject. Typically called after a call to vf_read_file()
++which may well read a list of objects from a file for example:
++
++@verbatim
++ if (vf_read_file(&p_object, p_filename))
++ {
++ do
++ {
++ ...
++ }
++ while (vf_get_next_object(&p_object))
++ ;
++ }
++@end verbatim
++
++The value of *pp_object is updated by the call if it returns TRUE.
++
++Returns TRUE iff found (ie. there is a "next" object).
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC VF_OBJECT_T *} vf_create_object (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item const char @tab @var{*p_type},@tab Type of object to create
++@item VF_OBJECT_T @tab @var{*p_parent}@tab Parent object if any
++@end multitable
++)
++
++
++Creates an empty vformat object.
++
++Returns Ptr to object if created else NULL.
++@end deftypefun
++
++@deftypefun {const VFORMATDECLSPEC char *} vf_get_object_type (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_OBJECT_T @tab @var{*p_object}@tab Object to locate type of
++@end multitable
++)
++
++
++
++Return the type string identifying the indicated vformat object, the
++string after the 'BEGIN' mark so 'VCARD' or 'VNOTE' etc.
++
++Return Ptr to string.
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_get_property (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{**pp_prop}, @tab Output pointer
++@item VF_OBJECT_T @tab @var{*p_object}, @tab Object to add to
++@item vf_get_t @tab @var{ops}, @tab Search flags
++@item const char @tab @var{*p_group}, @tab Group name if any
++@item const char @tab @var{*p_name}, @tab Name of tag

++@item const char @tab @var{*p_qualifier}, @tab First qualifier if any
++@item ... @tab @tab Subequent qualifiers
++@end multitable
++)
++
++
++Basic searching function locating elements of the VOBJECT by qualified
++name. The function is a varargs function (like sprintf) and the list
++of arguments must be NULL terminated (hence the appearance of the
++p_qualifier argument in the arglist). Valid calls might be:
++
++@example
++ vf_get_property(&p_out, p_object, VFGP_FIND, NULL, "N", NULL);
++ - find and return "N" properties. If there are none, return FALSE.
++
++ vf_get_property(&p_out, p_object, VFGP_FIND, NULL, "TEL", "WORK", NULL);
++ - find and return "TEL" entries qualified by the "work" attribute
++ (ie. work phone numbers). If there are none, return FALSE.
++
++ vf_get_property(&p_out, p_object, VFGP_GET, NULL, "TEL", "WORK", NULL);
++ - find and return work phone number. The entry is automatically
++ added if not pre-existing.
++
++ vf_get_property(&p_out, p_object, VFGP_GET, NULL, "TEL", "WORK", NULL);
++ - find and return work phone numbers in the group identifier by the "ME"
++ identifier. The entry is automatically added if not pre-existing.
++
++ vf_get_property(&p_out, p_object, VFGP_FIND, "ME", "*", NULL);
++ - effectively enumerates all entries in the "ME" group.
++@end example
++
++A pointer to the first property matching the search criteria is returned
++via the pp_prop argument. The search actually locates all such matches
++and pointer to subsequent entries (if there are >1) may be found by
++calling the vf_get_next_property() function.
++
++The tags may occur in any order _except_ that the p_name must be first.
++
++Note that the VF_PROP_T returned by pp_prop is an opaque type and the
++functions vf_get_prop_xxxx() etc. must be used to locate real "values".
++
++Cached search results (the list enumerated by subsequent calls to the
++vf_get_next_property() function) are maintained through the use of a
++a single internal pointer therefore this method is not thread safe.
++
++Returns TRUE iff found/added successfully. Ptr to prop returned via
pp_prop.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_get_property_ex (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{**pp_prop}, @tab Output pointer

++@item VF_OBJECT_T @tab @var{*p_object}, @tab Object to search
++@item vf_get_t @tab @var{ops}, @tab Search flags

++@item const char @tab @var{*p_group}, @tab Group name if any
++@item const char @tab @var{*p_name}, @tab Name of tag
++@item const char @tab @var{*p_qualifier}, @tab First qualifier if any
++@item va_list args @tab Argument list
++@end multitable
++)
++
++
++The grunt behind vf_get_property(). Manages the search as described
++vf_get_property() but takes the list of arguments as a va_list.
++This function should be used when writing higher layer functions
++which take varargs (eg. DDX functions).
++
++Returns TRUE iff found/added successfully. ptr to prop returned via
pp_prop.
++
++@end deftypefun
++
++@deftypefun bool_t vf_get_next_property (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{**pp_prop}, @tab Output pointer
++@end multitable
++)
++
++
++
++Find the next property given the current search critera. User
++calls vf_get_property() to locate first in a bunch of properties
++and can iterate over the rest by calling vf_get_next_property().
++
++Returns TRUE iff found, FALSE else. *pp_prop points to the nex property.
++
++@end deftypefun
++
++@deftypefun bool_t vf_get_prop_value (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item void @tab @var{**pp_value}, @tab Pointer value
++@item uint32_t @tab @var{*p_size}, @tab Integer value
++@item vf_encoding_t @tab @var{*p_encoding} @tab Type of return values
++@end multitable
++)
++
++Get hold of raw fields associated with the property. These are of
++rious types:
++
++@example
++VF_ENC_VOBJECT
++ - *pp_value = pointer to contained VF_OBJECT_T which can be
++ passed back to any of the object manipulation functions.
++
++VF_ENC_7BIT, VF_ENC_QUOTEDPRINTABLE
++ - *pp_value = ptr to array of char*, *p_size = number of elts.
++
++VF_ENC_8BIT, VF_BASE64
++ - *pp_value = ptr to bytes, *p_size = number of bytes
++@end example
++
++Returns TRUE <=> encoding is valid, FALSE else.
++
++
++@end deftypefun
++
++
++@deftypefun bool_t vf_set_prop_value (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item void @tab @var{*p_value}, @tab Pointer to the
data
++@item uint32_t @tab @var{n_param}, @tab Data size or
index
++@item vf_encoding_t @tab @var{encoding}, @tab Encoding in use
++@item bool_t @tab @var{copy} @tab Copy the data?
++@end multitable
++)
++
++Set values associated with a property.
++
++Passing a value of encoding not the same as the current property
++encoding will cause the property contents to be freed prior to
++setting the indicated value.
++
++Returns TRUE <=> re-allocation success & encoding correct, FALSE else.
++
++@end deftypefun
++
++@deftypefun {char *} vf_get_prop_value_string (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property to locate
string from
++@item uint32_t @tab @var{n_string} @tab Index to string required
++@end multitable
++)
++
++Obtain string pointer value from VF_PROP_T. For example a property
++may be defined as:
++
++THING;THIS=STUFF;WITH-QUALIFIERS:fred-fred-fred;gogogo;baabaabaa
++
++A call to vf_get_prop_value_string() specifying n_string=1 will
++return a pointer to the gogogo value.
++
++Return NULL if out of range request, ie. n_string=3 for N:0;1;2
++
++Returns Pointer to string value if value present, NULL if index too large.
++
++@end deftypefun
++
++@deftypefun bool_t vf_get_prop_value (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The
property
++@item void @tab @var{**pp_value}, @tab Pointer
value
++@item vf_encoding_t @tab @var{*p_encoding}, @tab Type
++of return values
++@item uint32_t @tab @var{*p_size}, @tab Integer
value
++@end multitable
++)
++
++Get hold of raw fields associated with the property. These are of
++various types:
++
++ VF_ENC_VOBJECT
++ - *pp_value = pointer to contained VF_OBJECT_T which can be
++ passed back to any of the object manipulation functions.
++
++ VF_ENC_7BIT, VF_ENC_QUOTEDPRINTABLE
++ - *pp_value = ptr to array of char*, *p_size = number of elts.
++
++ VF_ENC_8BIT, VF_BASE64
++ - *pp_value = ptr to bytes, *p_size = number of bytes
++
++Returns TRUE <=> encoding is valid, FALSE else.
++
++
++@end deftypefun
++
++
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_prop_value (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item void @tab @var{*p_value}, @tab Pointer to the data
++@item uint32_t @tab @var{n_param}, @tab Data size or index
++@item vf_encoding_t @tab @var{encoding}, @tab Encoding in use
++@item bool_t @tab @var{copy} @tab Copy the data?
++@end multitable
++)
++
++Set values associated with a property.
++
++Passing a value of encoding not the same as the current property
++encoding will cause the property contents to be freed prior to
++setting the indicated value.
++Returns TRUE <=> re-allocation success & encoding correct, FALSE else.
++
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC char *} vf_get_prop_value_string (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property to locate
string from
++@item uint32_t @tab @var{n_string} @tab Index to string
required
++@end multitable
++)
++
++Obtain string pointer value from VF_PROP_T. For example a property
++may be defined as:
++
++THING;THIS=STUFF;WITH-QUALIFIERS:fred-fred-fred;gogogo;baabaabaa
++
++A call to vf_get_prop_value_string() specifying n_string=1 will
++return a pointer to the gogogo value.
++
++Return NULL if out of range request, ie. n_string=3 for N:0;1;2
++
++Returns Pointer to string value if value present, NULL if index too large.
++
++
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC char *} vf_get_prop_name_string (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property to locate
string from
++@item uint32_t @tab @var{n_string} @tab Index to string
required
++@end multitable
++)
++
++
++Get n'th name string. For example a property may be defined as:
++THING;THIS=STUFF;WITH-QUALIFIERS:fred-fred-fred;gogogo;baabaabaa
++A call to vf_get_prop_name_string() specifying n_string=2 will
++return a pointer to the WITH-QUALIFIERS value.
++Return NULL if out of range request, ie. n_string=4 for X;A;B;C:foo
++
++Returns Pointer to string value if value present, NULL if index too large.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_prop_name_string (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property we're
setting a value in
++@item uint32_t @tab @var{n_string}, @tab Index to string
++@item const char @tab @var{*p_string} @tab Pointer to string
++@end multitable
++)
++
++
++
++Set n'th name string.
++
++Returns TRUE iff allocation OK, FALSE else.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC void} vf_get_prop_name (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item char @tab @var{*p_buffer}, @tab The buffer
++@item uint32_t @tab @var{bufsize} @tab Size of the buffer
++@end multitable
++)
++
++
++
++
++Build the property name string in the indicated buffer.
++
++Returns (none)
++
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC VF_OBJECT_T *} vf_get_prop_value_object (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop} @tab Property to locate
object from
++@end multitable
++)
++
++
++Obtain object pointer value from VF_PROP_T.
++
++Returns Pointer to vobject value (or NULL if not found).
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_prop_value_object (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop},
++@item VF_OBJECT_T @tab @var{*p_object}
++@end multitable
++)
++
++
++Set the value of the indicated property to be a VOBJECT.
++
++Returns TRUE <=> set successfully.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_prop_value_string (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property we're
setting a value in
++@item uint32_t @tab @var{n_string}, @tab Index to string
++@item const char @tab @var{*p_string } @tab Pointer to string
++@end multitable
++)
++
++Set the value of a property.
++
++Returns TRUE <=> set successfully.
++
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_prop_value_base64 (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property we're
setting a value in
++@item const uint8_t @tab @var{*p_data}, @tab Pointer to the binary
data
++@item uint32_t @tab @var{length}, @tab Length of the binary
data
++@item bool_t @tab @var{copy} @tab Copy or keep pointer
++@end multitable
++)
++
++
++
++Set the value of a property.
++
++Returns TRUE <=> set successfully.
++
++
++@end deftypefun
++
++@deftypefun {const VFORMATDECLSPEC uint8_t *} vf_get_prop_value_base64 (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab Property we're
setting a value in
++@item uint32_t @tab @var{*p_length} @tab Length of the binary
data
++@end multitable
++)
++
++
++
++Get a BASE64 property. Returns ptr, passes length via parameter.
++
++Returns Ptr to data.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_property_from_file (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item vf_encoding_t @tab @var{encoding}, @tab Encoding to use
++@item const char @tab @var{*p_filename} @tab Source filename
++@end multitable
++)
++
++
++
++Loads the indicated file into memory and sets the indicated property.
++
++Returns TRUE iff succeded, FALSE else.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC void} vf_delete_object (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_OBJECT_T @tab @var{*p_object}, @tab The object to delete
++@item bool_t @tab @var{all } @tab Delete all subsequent
objects?
++@end multitable
++)
++
++
++Cleans up the memory used by the indicated vformat object.
++
++Returns (none)
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC void} vf_delete_prop (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_OBJECT_T @tab @var{*p_object}, @tab The object we're
deleting from
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property we're
removing
++@item bool_t dc @tab Should property contents be
deleted?
++@end multitable
++)
++
++
++Deletes indicated property from the indicated object. Deletes prop
++contents if dc is set.
++
++Returns (none)
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_find_prop_qual_index (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
we're querying
++@item uint32_t @tab @var{*p_qualifier_index}, @tab Ptr to output
name index
++@item uint32_t @tab @var{*p_found_value_index}, @tab Ptr to output
index in array
++@item const char @tab @var{**pp_possible_values}, @tab Array of possible
values
++@item const char @tab @var{*p_token}, @tab Token searched
for
++@item vf_search_flags_t @tab @var{match} @tab String comparison
flags
++@end multitable
++)
++
++
++
++Locate property qualifier given either an array of possible values
++or a single token that is either present or absent. For example
++if we have a property:
++
++NAME;THIRD;TIME;LUCKY:VALUE1;VALUE2;VALUE3
++
++Then there are two possible searches.
++
++Firstly we can look for the property qualifier which can take values
++from the array @{ "FIRST", "SECOND", THIRD" @} in which case the array
++is passed as pp_possible_values and the function returns with the
++values *p_found_value_index=2, p_qualifier_index=1
++
++Secondly we can look for the token with value "TIME" in which case
++p_token is set to "TIME" and the function returns *p_qualifier_index=2.
++
++Returns TRUE iff found, FALSE else.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_is_modified (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_OBJECT_T @tab @var{*p_object} @tab The object
++@end multitable
++)
++
++
++
++
++Fetch status of modified flag.
++
++Returns TRUE iff modified since list read/write.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC const char *} vf_find_charset (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop} @tab The property we're
querying
++@end multitable
++)
++
++
++
++Locate the CHARSET property which indicates the character encoding
++in use - which indicates how the octet stream encoded in the VCARD
++is to be decoded into characters.
++
++Returns Pointer to character encoding name eg. "UTF-8".
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_date_string_to_time (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item uint32_t @tab @var{*p_time}, @tab Output time value
++@item const char @tab @var{*p_string} @tab Input string
++@end multitable
++)
++
++
++
++Convert calendar string to absolute time. The basic formats are
++19960401, 19960401T073000Z
++
++Returns TRUE <=> conversion OK, FALSE else.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_period_string_to_time (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_ISO8601_PERIOD_T @tab @var{*p_period}, @tab Output time value
++@item const char @tab @var{*p_string} @tab Input string
++@end multitable
++)
++
++
++Convert period definition string to time value. The format is
++P[aaaY][bbbM][cccW][dddD]T[eeeH][fffM][gggS] where 'aaa' is a
++number of years, bbb months etc.
++
++Returns TRUE <=> conversion OK, FALSE else.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC uint32_t} vf_period_time_to_string (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item char @tab @var{*p_string}, @tab Output string
++@item const VF_ISO8601_PERIOD_T @tab @var{*p_period} @tab Input period
value
++@end multitable
++)
++
++
++Convert a VF_ISO8601_PERIOD_T to a string.
++
++Returns Number of characters written.
++
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_set_prop_value_time (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item uint32_t @tab @var{n_string}, @tab Which string we're
encoding to
++@item const time_t @tab @var{t_value} @tab Time value
++@end multitable
++)
++
++
++Set a time_t value into a VF property.
++
++Returns TRUE iff property added & set OK.
++
++@end deftypefun
++
++@deftypefun {VFORMATDECLSPEC bool_t} vf_get_prop_value_time (
++@multitable {VF_PROP_Taaaa}{*n_stringaaaaa}{Property to locate string
from}
++@item VF_PROP_T @tab @var{*p_prop}, @tab The property
++@item uint32_t @tab @var{n_string}, @tab Which string we're
decoding
++@item time_t @tab @var{*p_t_value} @tab Pointer to output time
value
++@end multitable
++)
++
++
++Fetch a time_t value from a VF property.
++
++Returns TRUE iff foudn & converted OK.
++
++@end deftypefun
+diff --git a/doc/libvformat-2.texi b/doc/libvformat-2.texi
+new file mode 100644
+index 0000000..0511a56
+--- /dev/null
++++ b/doc/libvformat-2.texi
+@@ -0,0 +1,79 @@
++@node Public structures
++@chapter Public structures
++
++@defvr {Public Type} VF_PARSER_T
++
++Type representing "parser" - an object used to parse VOBJECTS.
++
++@end defvr
++
++@defvr {Public Type} VF_OBJECT_T
++
++Type representing an "object" - objects are collections of properties.
++
++@end defvr
++
++@defvr {Public Type} VF_PROP_T
++
++Type representing a "property" - properties associate a name & a value.
++
++@end defvr
++
++@deftp {Structure} VF_ISO8601_PERIOD_T @*
++ @{@*
++ uint32_t years@*
++ uint32_t months@*
++ uint32_t weeks@*
++ uint32_t days@*
++ uint32_t hours@*
++ uint32_t minutes@*
++ uint32_t seconds@*
++ @}
++
++
++VF_ISO8601_PERIOD_T is used to encapsulate an ISO time 'period'.
++
++@end deftp
++
++
++@deftypevr {Public Type} uint8_t vf_encoding_t
++
++vf_encoding_t enumerates the supported encodings (formats) of a
++vformat object property. Each "value" has a field of this type.
++
++Predefined values
++
++@multitable {VF_ENC_QUOTEDPRINTABLE}{((vf_encoding_t)aaaa}{123456}
++@item VF_ENC_UNKNOWN @tab ((vf_encoding_t)(0))
++@item VF_ENC_7BIT @tab ((vf_encoding_t)(1))
++@item VF_ENC_8BIT @tab ((vf_encoding_t)(2))
++@item VF_ENC_BASE64 @tab ((vf_encoding_t)(3))
++@item VF_ENC_QUOTEDPRINTABLE @tab ((vf_encoding_t)(4))
++@item VF_ENC_VOBJECT @tab ((vf_encoding_t)(5))
++@end multitable
++
++@end deftypevr
++
++
++@deftypevr {Public Type} uint16_t vf_get_t
++
++vf_get_t controls the operation of vf_get_property() (qv). Controls
++how far the search algorithm is prepared to go in order to return a
++property ready for modification.
++
++Predefined values
++
++@multitable {VF_ENC_QUOTEDPRINTABLE}{((vf_encoding_t)aaaa}{Find &
append if not present123456}
++@item VFGP_FIND @tab ((vf_get_t)(0x0001)) @tab Search for property

++@item VFGP_APPEND @tab ((vf_get_t)(0x0002)) @tab Append property, no
search
++@item VFGP_GET @tab ((vf_get_t)(0x0003)) @tab Find & append if not
present
++@end multitable
++
++@end deftypevr
++
++@deftypevr {Public Type} uint32_t vf_search_flags_t
++
++vf_search_flags_t is used to describe how string matching is performed
++when searching for properties, qualifiers, values etc.
++
++@end deftypevr
+diff --git a/doc/libvformat-i.texi b/doc/libvformat-i.texi
+new file mode 100644
+index 0000000..66d6996
+--- /dev/null
++++ b/doc/libvformat-i.texi
+@@ -0,0 +1,5 @@
++@node Function index
++@unnumbered Function Index
++
++@printindex fn
++
+diff --git a/doc/libvformat.texi b/doc/libvformat.texi
+new file mode 100644
+index 0000000..c5ff663
+--- /dev/null
++++ b/doc/libvformat.texi
+@@ -0,0 +1,51 @@
++\input texinfo @c -*-texinfo-*-
++@c %**start of header
++@setfilename libvformat.info
++@settitle libvformat
++@setchapternewpage odd
++@c %**end of header
++
++@ifinfo
++This file documents libvformat
++
++Copyright 2001 Nick Marley <Tilda@@indigo8.freeserve.co.uk>
++
++licensed under the LGPL license.
++@end ifinfo
++
++@c This title page illustrates only one of the
++@c two methods of forming a title page.
++
++@dircategory Libraries
++@direntry
++* libvformat: (libvformat). Library to manipulate vcards
++@end direntry
++
++@titlepage
++@title libvformat
++@subtitle library to access versit cards
++@author Nick <Tilda@@indigo8.freeserve.co.uk>
++@end titlepage
++
++
++@ifnottex
++@node Top, , (dir), (dir)
++@top TITLE
++
++This document describes libvformat
++
++This document applies to version 1.13
++of the program named libvformat
++@end ifnottex
++
++@menu
++* Functions of libvformat:: description of interface.
++* Public structures:: public structures of libvformat
++* Function index:: index.
++@end menu
++
++@include libvformat-1.texi
++@include libvformat-2.texi
++@include libvformat-i.texi
++
++@bye
+--
+1.7.6.3
+
diff --git a/libs/libvformat/0005-Add-manpages.patch
b/libs/libvformat/0005-Add-manpages.patch
new file mode 100644
index 0000000..f58c858
--- /dev/null
+++ b/libs/libvformat/0005-Add-manpages.patch
@@ -0,0 +1,2606 @@
+From 905759e8a6cf637a0dbcc869f04c79110968b41c Mon Sep 17 00:00:00 2001
+From: Mathias Palm <mathias.palm AT gmx.net>
+Date: Sat, 8 May 2010 23:00:09 +0200
+Subject: Add manpages
+
+Provides manpages instead of generating them from c2man as c2man is
deprecated.
+
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/313265
+Forwarded: not-needed
+Last-Update: 2010-10-10
+---
+ doc/Makefile.am | 6 +-
+ doc/vf_create_object.3 | 63 +++++++++++++++++++
+ doc/vf_date_string_to_time.3 | 64 +++++++++++++++++++
+ doc/vf_delete_object.3 | 63 +++++++++++++++++++
+ doc/vf_delete_prop.3 | 69 +++++++++++++++++++++
+ doc/vf_find_charset.3 | 54 ++++++++++++++++
+ doc/vf_find_prop_qual_index.3 | 97 +++++++++++++++++++++++++++++
+ doc/vf_get_next_object.3 | 65 ++++++++++++++++++++
+ doc/vf_get_next_property.3 | 54 ++++++++++++++++
+ doc/vf_get_object_type.3 | 53 ++++++++++++++++
+ doc/vf_get_prop_name.3 | 68 +++++++++++++++++++++
+ doc/vf_get_prop_name_string.3 | 70 +++++++++++++++++++++
+ doc/vf_get_prop_value.3 | 87 ++++++++++++++++++++++++++
+ doc/vf_get_prop_value_base64.3 | 63 +++++++++++++++++++
+ doc/vf_get_prop_value_object.3 | 52 ++++++++++++++++
+ doc/vf_get_prop_value_string.3 | 71 +++++++++++++++++++++
+ doc/vf_get_prop_value_time.3 | 68 +++++++++++++++++++++
+ doc/vf_get_property.3 | 128
+++++++++++++++++++++++++++++++++++++++
+ doc/vf_get_property_ex.3 | 91 +++++++++++++++++++++++++++
+ doc/vf_is_modified.3 | 52 ++++++++++++++++
+ doc/vf_parse_end.3 | 54 ++++++++++++++++
+ doc/vf_parse_init.3 | 93 ++++++++++++++++++++++++++++
+ doc/vf_parse_text.3 | 70 +++++++++++++++++++++
+ doc/vf_period_string_to_time.3 | 65 ++++++++++++++++++++
+ doc/vf_period_time_to_string.3 | 63 +++++++++++++++++++
+ doc/vf_read_file.3 | 63 +++++++++++++++++++
+ doc/vf_set_prop_name_string.3 | 68 +++++++++++++++++++++
+ doc/vf_set_prop_value.3 | 82 +++++++++++++++++++++++++
+ doc/vf_set_prop_value_base64.3 | 73 ++++++++++++++++++++++
+ doc/vf_set_prop_value_object.3 | 63 +++++++++++++++++++
+ doc/vf_set_prop_value_string.3 | 68 +++++++++++++++++++++
+ doc/vf_set_prop_value_time.3 | 68 +++++++++++++++++++++
+ doc/vf_set_property_from_file.3 | 68 +++++++++++++++++++++
+ doc/vf_write_file.3 | 70 +++++++++++++++++++++
+ 34 files changed, 2303 insertions(+), 3 deletions(-)
+ create mode 100644 doc/vf_create_object.3
+ create mode 100644 doc/vf_date_string_to_time.3
+ create mode 100644 doc/vf_delete_object.3
+ create mode 100644 doc/vf_delete_prop.3
+ create mode 100644 doc/vf_find_charset.3
+ create mode 100644 doc/vf_find_prop_qual_index.3
+ create mode 100644 doc/vf_get_next_object.3
+ create mode 100644 doc/vf_get_next_property.3
+ create mode 100644 doc/vf_get_object_type.3
+ create mode 100644 doc/vf_get_prop_name.3
+ create mode 100644 doc/vf_get_prop_name_string.3
+ create mode 100644 doc/vf_get_prop_value.3
+ create mode 100644 doc/vf_get_prop_value_base64.3
+ create mode 100644 doc/vf_get_prop_value_object.3
+ create mode 100644 doc/vf_get_prop_value_string.3
+ create mode 100644 doc/vf_get_prop_value_time.3
+ create mode 100644 doc/vf_get_property.3
+ create mode 100644 doc/vf_get_property_ex.3
+ create mode 100644 doc/vf_is_modified.3
+ create mode 100644 doc/vf_parse_end.3
+ create mode 100644 doc/vf_parse_init.3
+ create mode 100644 doc/vf_parse_text.3
+ create mode 100644 doc/vf_period_string_to_time.3
+ create mode 100644 doc/vf_period_time_to_string.3
+ create mode 100644 doc/vf_read_file.3
+ create mode 100644 doc/vf_set_prop_name_string.3
+ create mode 100644 doc/vf_set_prop_value.3
+ create mode 100644 doc/vf_set_prop_value_base64.3
+ create mode 100644 doc/vf_set_prop_value_object.3
+ create mode 100644 doc/vf_set_prop_value_string.3
+ create mode 100644 doc/vf_set_prop_value_time.3
+ create mode 100644 doc/vf_set_property_from_file.3
+ create mode 100644 doc/vf_write_file.3
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index e078504..ac63498 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -3,7 +3,7 @@ info_TEXINFOS = libvformat.texi
+ libvformat_TEXINFOS = libvformat-1.texi libvformat-2.texi libvformat-i.texi
+
+ install-data-hook:
+- $(mkinstalldirs) $(mandir)/man3
++ $(mkinstalldirs) $(DESTDIR)$(mandir)/man3
+
+ for i in *.3; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+@@ -11,8 +11,8 @@ install-data-hook:
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+- echo " $(INSTALL_DATA) $$file $(mandir)/man3/$$inst"; \
+- $(INSTALL_DATA) $$file $(mandir)/man3/$$inst; \
++ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man3/$$inst"; \
++ $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man3/$$inst; \
+ done
+
+ cp /usr/share/texmf-dist/tex/texinfo/texinfo.tex .
+diff --git a/doc/vf_create_object.3 b/doc/vf_create_object.3
+new file mode 100644
+index 0000000..b9ce4a4
+--- /dev/null
++++ b/doc/vf_create_object.3
+@@ -0,0 +1,63 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_create_object" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_create_object \- vf_create_object()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern VF_OBJECT_T *vf_create_object
++.br
++(
++.br
++ const char *p_type,
++.br
++ VF_OBJECT_T *p_parent
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "const char *p_type"
++Type of object to create.
++.TP
++.B "VF_OBJECT_T *p_parent"
++Parent object if any.
++.SH "DESCRIPTION"
++Creates an empty vformat object.
++.SH "RETURNS"
++Ptr to object if created else NULL.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_date_string_to_time.3 b/doc/vf_date_string_to_time.3
+new file mode 100644
+index 0000000..0bfadb4
+--- /dev/null
++++ b/doc/vf_date_string_to_time.3
+@@ -0,0 +1,64 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_date_string_to_time" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_date_string_to_time \- vf_date_string_to_time()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_date_string_to_time
++.br
++(
++.br
++ uint32_t *p_time,
++.br
++ const char *p_string
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "uint32_t *p_time"
++Output time value.
++.TP
++.B "const char *p_string"
++Input string.
++.SH "DESCRIPTION"
++Convert calendar string to absolute time. The basic formats are
++19960401, 19960401T073000Z.
++.SH "RETURNS"
++TRUE <=> conversion OK, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_delete_object.3 b/doc/vf_delete_object.3
+new file mode 100644
+index 0000000..0597129
+--- /dev/null
++++ b/doc/vf_delete_object.3
+@@ -0,0 +1,63 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_delete_object" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_delete_object \- vf_delete_object()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern void vf_delete_object
++.br
++(
++.br
++ VF_OBJECT_T *p_object,
++.br
++ bool_t all
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_OBJECT_T *p_object"
++The object to delete.
++.TP
++.B "bool_t all"
++Delete all subsequent objects?.
++.SH "DESCRIPTION"
++Cleans up the memory used by the indicated vformat object.
++.SH "RETURNS"
++(None)
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_delete_prop.3 b/doc/vf_delete_prop.3
+new file mode 100644
+index 0000000..ac25e96
+--- /dev/null
++++ b/doc/vf_delete_prop.3
+@@ -0,0 +1,69 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_delete_prop" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_delete_prop \- vf_delete_prop()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern void vf_delete_prop
++.br
++(
++.br
++ VF_OBJECT_T *p_object,
++.br
++ VF_PROP_T *p_prop,
++.br
++ bool_t dc
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_OBJECT_T *p_object"
++The object we're deleting from.
++.TP
++.B "VF_PROP_T *p_prop"
++The property we're removing.
++.TP
++.B "bool_t dc"
++Should property contents be deleted?.
++.SH "DESCRIPTION"
++Deletes indicated property from the indicated object. Deletes prop
++contents if dc is set.
++.SH "RETURNS"
++(None)
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_find_charset.3 b/doc/vf_find_charset.3
+new file mode 100644
+index 0000000..7c541da
+--- /dev/null
++++ b/doc/vf_find_charset.3
+@@ -0,0 +1,54 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_find_charset" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_find_charset \- vf_find_charset()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern const char *vf_find_charset(VF_PROP_T *p_prop);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property we're querying.
++.SH "DESCRIPTION"
++Locate the CHARSET property which indicates the character encoding
++in use - which indicates how the octet stream encoded in the VCARD
++is to be decoded into characters.
++.SH "RETURNS"
++Pointer to character encoding name eg. "UTF-8".
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_find_prop_qual_index.3 b/doc/vf_find_prop_qual_index.3
+new file mode 100644
+index 0000000..9e3f6c6
+--- /dev/null
++++ b/doc/vf_find_prop_qual_index.3
+@@ -0,0 +1,97 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_find_prop_qual_index" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_find_prop_qual_index \- vf_find_prop_qual_index()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_find_prop_qual_index
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t *p_qualifier_index,
++.br
++ uint32_t *p_found_value_index,
++.br
++ const char **pp_possible_values,
++.br
++ const char *p_token,
++.br
++ vf_search_flags_t match
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property we're querying.
++.TP
++.B "uint32_t *p_qualifier_index"
++Ptr to output name index.
++.TP
++.B "uint32_t *p_found_value_index"
++Ptr to output index in array.
++.TP
++.B "const char **pp_possible_values"
++Array of possible values.
++.TP
++.B "const char *p_token"
++Token searched for.
++.TP
++.B "vf_search_flags_t match"
++String comparison flags.
++.SH "DESCRIPTION"
++Locate property qualifier given either an array of possible values
++or a single token that is either present or absent. For example
++if we have a property:
++
++NAME;THIRD;TIME;LUCKY:VALUE1;VALUE2;VALUE3
++
++Then there are two possible searches.
++
++Firstly we can look for the property qualifier which can take values
++from the array { "FIRST", "SECOND", THIRD" } in which case the array
++is passed as pp_possible_values and the function returns with the
++values *p_found_value_index=2, p_qualifier_index=1
++
++Secondly we can look for the token with value "TIME" in which case
++p_token is set to "TIME" and the function returns *p_qualifier_index=2.
++.SH "RETURNS"
++TRUE iff found, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_next_object.3 b/doc/vf_get_next_object.3
+new file mode 100644
+index 0000000..9c8efbe
+--- /dev/null
++++ b/doc/vf_get_next_object.3
+@@ -0,0 +1,65 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_next_object" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_next_object \- vf_get_next_object()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_get_next_object(VF_OBJECT_T **pp_object);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_OBJECT_T **pp_object"
++Ptr to pointer to current object.
++.SH "DESCRIPTION"
++Find "next" vobject. Typically called after a call to vf_read_file()
++which may well read a list of objects from a file for example:
++
++if (vf_read_file(&p_object, p_filename))
++{
++do
++{
++\ ...
++}
++while (vf_get_next_object(&p_object))
++;
++}
++
++The value of *pp_object is updated by the call if it returns TRUE.
++.SH "RETURNS"
++TRUE iff found (ie. There is a "next" object).
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_next_property.3 b/doc/vf_get_next_property.3
+new file mode 100644
+index 0000000..e6c491f
+--- /dev/null
++++ b/doc/vf_get_next_property.3
+@@ -0,0 +1,54 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_next_property" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_next_property \- vf_get_next_property()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_get_next_property(VF_PROP_T **pp_prop);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T **pp_prop"
++Output pointer.
++.SH "DESCRIPTION"
++Find the next property given the current search critera. User
++calls vf_get_property() to locate first in a bunch of properties
++and can iterate over the rest by calling vf_get_next_property().
++.SH "RETURNS"
++TRUE iff found, FALSE else. *Pp_prop points to the nex property.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_object_type.3 b/doc/vf_get_object_type.3
+new file mode 100644
+index 0000000..91cde4c
+--- /dev/null
++++ b/doc/vf_get_object_type.3
+@@ -0,0 +1,53 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_object_type" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_object_type \- vf_get_object_type()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern const char *vf_get_object_type(VF_OBJECT_T *p_object);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_OBJECT_T *p_object"
++Object to locate type of.
++.SH "DESCRIPTION"
++Return the type string identifying the indicated vformat object,
++the string after the 'BEGIN' mark so 'VCARD' or 'VNOTE' etc.
++.SH "RETURNS"
++Ptr to string.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_name.3 b/doc/vf_get_prop_name.3
+new file mode 100644
+index 0000000..538c137
+--- /dev/null
++++ b/doc/vf_get_prop_name.3
+@@ -0,0 +1,68 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_name" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_name \- vf_get_prop_name()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern void vf_get_prop_name
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ char *p_buffer,
++.br
++ uint32_t bufsize
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property.
++.TP
++.B "char *p_buffer"
++The buffer.
++.TP
++.B "uint32_t bufsize"
++Size of the buffer.
++.SH "DESCRIPTION"
++Build the property name string in the indicated buffer.
++.SH "RETURNS"
++(None)
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_name_string.3 b/doc/vf_get_prop_name_string.3
+new file mode 100644
+index 0000000..7d1cfee
+--- /dev/null
++++ b/doc/vf_get_prop_name_string.3
+@@ -0,0 +1,70 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_name_string" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_name_string \- vf_get_prop_name_string()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern char *vf_get_prop_name_string
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t n_string
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property to locate string from.
++.TP
++.B "uint32_t n_string"
++Index to string requred.
++.SH "DESCRIPTION"
++Get n'th name string. For example a property may be defined as:
++
++THING;THIS=STUFF;WITH-QUALIFIERS:fred-fred-fred;gogogo;baabaabaa
++
++A call to vf_get_prop_name_string() specifying n_string=2 will
++return a pointer to the WITH-QUALIFIERS value.
++
++Return NULL if out of range request, ie. N_string=4 for X;A;B;C:foo.
++.SH "RETURNS"
++Pointer to string value if value present, NULL if index too large.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_value.3 b/doc/vf_get_prop_value.3
+new file mode 100644
+index 0000000..4b821c8
+--- /dev/null
++++ b/doc/vf_get_prop_value.3
+@@ -0,0 +1,87 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_value" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_value \- vf_get_prop_value()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_get_prop_value
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ void **pp_value,
++.br
++ uint32_t *p_size,
++.br
++ vf_encoding_t *p_encoding
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property.
++.TP
++.B "void **pp_value"
++Pointer value.
++.TP
++.B "uint32_t *p_size"
++Integer value.
++.TP
++.B "vf_encoding_t *p_encoding"
++Type of return values.
++.SH "DESCRIPTION"
++Get hold of raw fields associated with the property. These are of
++various types:
++
++VF_ENC_VOBJECT
++.br
++- *Pp_value = pointer to contained VF_OBJECT_T which can be
++passed back to any of the object manipulation functions.
++
++VF_ENC_7BIT, VF_ENC_QUOTEDPRINTABLE
++.br
++- *Pp_value = ptr to array of char*, *p_size = number of elts.
++
++VF_ENC_8BIT, VF_BASE64
++.br
++- *Pp_value = ptr to bytes, *p_size = number of bytes.
++.SH "RETURNS"
++TRUE <=> encoding is valid, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_value_base64.3 b/doc/vf_get_prop_value_base64.3
+new file mode 100644
+index 0000000..e9cdec5
+--- /dev/null
++++ b/doc/vf_get_prop_value_base64.3
+@@ -0,0 +1,63 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_value_base64" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_value_base64 \- vf_get_prop_value_base64()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern const uint8_t *vf_get_prop_value_base64
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t *p_length
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property we're setting a value in.
++.TP
++.B "uint32_t *p_length"
++Length of the binary data.
++.SH "DESCRIPTION"
++Get a BASE64 property. Returns ptr, passes length via parameter.
++.SH "RETURNS"
++Ptr to data.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_value_object.3 b/doc/vf_get_prop_value_object.3
+new file mode 100644
+index 0000000..0fa3cc6
+--- /dev/null
++++ b/doc/vf_get_prop_value_object.3
+@@ -0,0 +1,52 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_value_object" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_value_object \- vf_get_prop_value_object()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern VF_OBJECT_T *vf_get_prop_value_object(VF_PROP_T *p_prop);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property to locate object from.
++.SH "DESCRIPTION"
++Obtain object pointer value from VF_PROP_T.
++.SH "RETURNS"
++Pointer to vobject value (or NULL if not found).
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_value_string.3 b/doc/vf_get_prop_value_string.3
+new file mode 100644
+index 0000000..4fc9a81
+--- /dev/null
++++ b/doc/vf_get_prop_value_string.3
+@@ -0,0 +1,71 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_value_string" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_value_string \- vf_get_prop_value_string()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern char *vf_get_prop_value_string
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t n_string
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property to locate string from.
++.TP
++.B "uint32_t n_string"
++Index to string requred.
++.SH "DESCRIPTION"
++Obtain string pointer value from VF_PROP_T. For example a property
++may be defined as:
++
++THING;THIS=STUFF;WITH-QUALIFIERS:fred-fred-fred;gogogo;baabaabaa
++
++A call to vf_get_prop_value_string() specifying n_string=1 will
++return a pointer to the gogogo value.
++
++Return NULL if out of range request, ie. N_string=3 for N:0;1;2.
++.SH "RETURNS"
++Pointer to string value if value present, NULL if index too large.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_prop_value_time.3 b/doc/vf_get_prop_value_time.3
+new file mode 100644
+index 0000000..cf446c9
+--- /dev/null
++++ b/doc/vf_get_prop_value_time.3
+@@ -0,0 +1,68 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_prop_value_time" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_prop_value_time \- vf_get_prop_value_time()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_get_prop_value_time
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t n_string,
++.br
++ long int *p_t_value
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property.
++.TP
++.B "uint32_t n_string"
++Which string we're decoding.
++.TP
++.B "long int *p_t_value"
++Pointer to output time value.
++.SH "DESCRIPTION"
++Fetch a time_t value from a VF property.
++.SH "RETURNS"
++TRUE iff foudn & converted OK.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3)
+diff --git a/doc/vf_get_property.3 b/doc/vf_get_property.3
+new file mode 100644
+index 0000000..828e414
+--- /dev/null
++++ b/doc/vf_get_property.3
+@@ -0,0 +1,128 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_property" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_property \- vf_get_property()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_get_property
++.br
++(
++.br
++ VF_PROP_T **pp_prop,
++.br
++ VF_OBJECT_T *p_object,
++.br
++ vf_get_t ops,
++.br
++ const char *p_group,
++.br
++ const char *p_name,
++.br
++ const char *p_qualifier,
++.br
++ ...
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T **pp_prop"
++Output pointer.
++.TP
++.B "VF_OBJECT_T *p_object"
++Object to add to.
++.TP
++.B "vf_get_t ops"
++Search flags.
++.TP
++.B "const char *p_group"
++Group name if any.
++.TP
++.B "const char *p_name"
++Name of tag.
++.TP
++.B "const char *p_qualifier"
++First qualifier if any.
++.TP
++.B "..."
++Subequent qualifiers.
++.SH "DESCRIPTION"
++Basic searching function locating elements of the VOBJECT by qualified
++name. The function is a varargs function (like sprintf) and the list
++of arguments must be NULL terminated (hence the appearance of the
++p_qualifier argument in the arglist). Valid calls might be:
++
++vf_get_property(&p_out, p_object, VFGP_FIND, NULL, "N", NULL);
++.br
++- Find and return "N" properties. If there are none, return FALSE.
++
++Vf_get_property(&p_out, p_object, VFGP_FIND, NULL, "TEL", "WORK", NULL);
++.br
++- Find and return "TEL" entries qualified by the "work" attribute
++(ie. Work phone numbers). If there are none, return FALSE.
++
++Vf_get_property(&p_out, p_object, VFGP_GET, NULL, "TEL", "WORK", NULL);
++.br
++- Find and return work phone number. The entry is automatically
++added if not pre-existing.
++
++Vf_get_property(&p_out, p_object, VFGP_GET, NULL, "TEL", "WORK", NULL);
++.br
++- Find and return work phone numbers in the group identifier by the "ME"
++identifier. The entry is automatically added if not pre-existing.
++
++Vf_get_property(&p_out, p_object, VFGP_FIND, "ME", "*", NULL);
++.br
++- Effectively enumerates all entries in the "ME" group.
++
++A pointer to the first property matching the search criteria is returned
++via the pp_prop argument. The search actually locates all such matches
++and pointer to subsequent entries (if there are >1) may be found by
++calling the vf_get_next_property() function.
++
++The tags may occur in any order _except_ that the p_name must be first.
++
++Note that the VF_PROP_T returned by pp_prop is an opaque type and the
++functions vf_get_prop_xxxx() etc. Must be used to locate real "values".
++
++Cached search results (the list enumerated by subsequent calls to the
++vf_get_next_property() function) are maintained through the use of a
++a single internal pointer therefore this method is not thread safe.
++.SH "RETURNS"
++TRUE iff found/added successfully. Ptr to prop returned via pp_prop.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_get_property_ex.3 b/doc/vf_get_property_ex.3
+new file mode 100644
+index 0000000..9937b3f
+--- /dev/null
++++ b/doc/vf_get_property_ex.3
+@@ -0,0 +1,91 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_get_property_ex" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_get_property_ex \- vf_get_property_ex()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_get_property_ex
++.br
++(
++.br
++ VF_PROP_T **pp_prop,
++.br
++ VF_OBJECT_T *p_object,
++.br
++ vf_get_t ops,
++.br
++ const char *p_group,
++.br
++ const char *p_name,
++.br
++ const char *p_qualifier,
++.br
++ char args
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T **pp_prop"
++Output pointer.
++.TP
++.B "VF_OBJECT_T *p_object"
++Object to search.
++.TP
++.B "vf_get_t ops"
++Search flags.
++.TP
++.B "const char *p_group"
++Group name if any.
++.TP
++.B "const char *p_name"
++Name of tag.
++.TP
++.B "const char *p_qualifier"
++First qualifier if any.
++.TP
++.B "char args"
++Argument list.
++.SH "DESCRIPTION"
++The grunt behind vf_get_property(). Manages the search as described
++vf_get_property() but takes the list of arguments as a va_list.
++This function should be used when writing higher layer functions
++which take varargs (eg. DDX functions).
++.SH "RETURNS"
++TRUE iff found/added successfully. Ptr to prop returned via pp_prop.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_is_modified.3 b/doc/vf_is_modified.3
+new file mode 100644
+index 0000000..9dab0df
+--- /dev/null
++++ b/doc/vf_is_modified.3
+@@ -0,0 +1,52 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_is_modified" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_is_modified \- vf_is_modified()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_is_modified(VF_OBJECT_T *p_object);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_OBJECT_T *p_object"
++The object.
++.SH "DESCRIPTION"
++Fetch status of modified flag.
++.SH "RETURNS"
++TRUE iff modified since list read/write.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_parse_end.3 b/doc/vf_parse_end.3
+new file mode 100644
+index 0000000..80daf5c
+--- /dev/null
++++ b/doc/vf_parse_end.3
+@@ -0,0 +1,54 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_parse_end" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_parse_end \- vf_parse_end()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_parse_end(VF_PARSER_T *p_parse);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PARSER_T *p_parse"
++The parser.
++.SH "DESCRIPTION"
++Ensure parse completion, release memory associated with the parser.
++
++See notes for vf_parse_init().
++.SH "RETURNS"
++TRUE <=> parse complete with no error.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_parse_init.3 b/doc/vf_parse_init.3
+new file mode 100644
+index 0000000..3ffcc51
+--- /dev/null
++++ b/doc/vf_parse_init.3
+@@ -0,0 +1,93 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_parse_init" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_parse_init \- vf_parse_init()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_parse_init
++.br
++(
++.br
++ VF_PARSER_T **pp_parser,
++.br
++ VF_OBJECT_T **pp_object
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PARSER_T **pp_parser"
++Ptr to allocated parser.
++.TP
++.B "VF_OBJECT_T **pp_object"
++The object we're parsing into.
++.SH "DESCRIPTION"
++Allocate and initialise a parser. To parse a VCARD (or any vObject)
++a user allocates a parser, pushes data through it using vf_parse_text()
++and finally calls vf_parse_end():
++
++VF_PARSER_T *p_parser;
++
++if (vf_parse_init(&p_parser, pp_object))
++{
++do
++{
++char buffer[...];
++Int numchars;
++
++numchars = get_chars_from_somewhere(buffer, ...);
++
++Ret = vf_parse_text(p_parser, buffer, numchars);
++}
++while (ret && (0 < charsread))
++;
++
++if (!vf_parse_end(p_parser))
++{
++ret = FALSE;
++}
++}
++
++A parser allocated by vf_parse_init(), must be deallocated by calling
++vf_parse_end() whether or not parsing succeeds. Also, parsing may not
++be complete (ie. Values may be held buffered and not evaluated fully
++or assigned to a VF_OBJECT_T) untill the final call to vf_parse_end()
++=> after a vf_parse_init() you _must_ vf_parse_end().
++.SH "RETURNS"
++TRUE iff parser allocated successfully.
++.SH "SEE ALSO"
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_parse_text.3 b/doc/vf_parse_text.3
+new file mode 100644
+index 0000000..0c21fc7
+--- /dev/null
++++ b/doc/vf_parse_text.3
+@@ -0,0 +1,70 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_parse_text" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_parse_text \- vf_parse_text()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_parse_text
++.br
++(
++.br
++ VF_PARSER_T *p_parse,
++.br
++ char *p_chars,
++.br
++ int numchars
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PARSER_T *p_parse"
++The parser.
++.TP
++.B "char *p_chars"
++New characters to parse into object.
++.TP
++.B "int numchars"
++Number of new characters.
++.SH "DESCRIPTION"
++Parse indicated text into the object associated with the VPARSE_T.
++
++See notes for vf_parse_init().
++.SH "RETURNS"
++TRUE <=> allocation & syntax OK, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_period_string_to_time.3 b/doc/vf_period_string_to_time.3
+new file mode 100644
+index 0000000..56682f2
+--- /dev/null
++++ b/doc/vf_period_string_to_time.3
+@@ -0,0 +1,65 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_period_string_to_time" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_period_string_to_time \- vf_period_string_to_time()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_period_string_to_time
++.br
++(
++.br
++ VF_ISO8601_PERIOD_T *p_period,
++.br
++ const char *p_string
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_ISO8601_PERIOD_T *p_period"
++Output time value.
++.TP
++.B "const char *p_string"
++Input string.
++.SH "DESCRIPTION"
++Convert period definition string to time value. The format is
++P[aaaY][bbbM][cccW][dddD]T[eeeH][fffM][gggS] where 'aaa' is a
++number of years, bbb months etc.
++.SH "RETURNS"
++TRUE <=> conversion OK, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_period_time_to_string.3 b/doc/vf_period_time_to_string.3
+new file mode 100644
+index 0000000..ffdfe5c
+--- /dev/null
++++ b/doc/vf_period_time_to_string.3
+@@ -0,0 +1,63 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_period_time_to_string" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_period_time_to_string \- vf_period_time_to_string()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern uint32_t vf_period_time_to_string
++.br
++(
++.br
++ char *p_string,
++.br
++ const VF_ISO8601_PERIOD_T *p_period
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "char *p_string"
++Output string.
++.TP
++.B "const VF_ISO8601_PERIOD_T *p_period"
++Input period value.
++.SH "DESCRIPTION"
++Convert a VF_ISO8601_PERIOD_T to a string.
++.SH "RETURNS"
++Number of characters written.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_read_file.3 b/doc/vf_read_file.3
+new file mode 100644
+index 0000000..406736d
+--- /dev/null
++++ b/doc/vf_read_file.3
+@@ -0,0 +1,63 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_read_file" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_read_file \- vf_read_file()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_read_file
++.br
++(
++.br
++ VF_OBJECT_T **pp_object,
++.br
++ const char *p_name
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_OBJECT_T **pp_object"
++Pointer to output object.
++.TP
++.B "const char *p_name"
++Name of file to read.
++.SH "DESCRIPTION"
++Reads indicated VOBJECT_T file.
++.SH "RETURNS"
++TRUE <=> read OK, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_prop_name_string.3 b/doc/vf_set_prop_name_string.3
+new file mode 100644
+index 0000000..82e55ac
+--- /dev/null
++++ b/doc/vf_set_prop_name_string.3
+@@ -0,0 +1,68 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_prop_name_string" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_prop_name_string \- vf_set_prop_name_string()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_prop_name_string
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t n_string,
++.br
++ const char *p_string
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property we're setting a value in.
++.TP
++.B "uint32_t n_string"
++Index to string.
++.TP
++.B "const char *p_string"
++Pointer to string.
++.SH "DESCRIPTION"
++Set n'th name string.
++.SH "RETURNS"
++TRUE iff allocation OK, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_prop_value.3 b/doc/vf_set_prop_value.3
+new file mode 100644
+index 0000000..d41e4c9
+--- /dev/null
++++ b/doc/vf_set_prop_value.3
+@@ -0,0 +1,82 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_prop_value" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_prop_value \- vf_set_prop_value()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_prop_value
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ void *p_value,
++.br
++ uint32_t n_param,
++.br
++ vf_encoding_t encoding,
++.br
++ bool_t copy
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property.
++.TP
++.B "void *p_value"
++Pointer to the data.
++.TP
++.B "uint32_t n_param"
++Data size or index.
++.TP
++.B "vf_encoding_t encoding"
++Encoding in use.
++.TP
++.B "bool_t copy"
++Copy the data?.
++.SH "DESCRIPTION"
++Set values associated with a property.
++
++Passing a value of encoding not the same as the current property
++encoding will cause the property contents to be freed prior to
++setting the indicated value.
++.SH "RETURNS"
++TRUE <=> re-allocation success & encoding correct, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_prop_value_base64.3 b/doc/vf_set_prop_value_base64.3
+new file mode 100644
+index 0000000..70821f1
+--- /dev/null
++++ b/doc/vf_set_prop_value_base64.3
+@@ -0,0 +1,73 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_prop_value_base64" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_prop_value_base64 \- vf_set_prop_value_base64()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_prop_value_base64
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ const uint8_t *p_data,
++.br
++ uint32_t length,
++.br
++ bool_t copy
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property we're setting a value in.
++.TP
++.B "const uint8_t *p_data"
++Pointer to the binary data.
++.TP
++.B "uint32_t length"
++Length of the binary data.
++.TP
++.B "bool_t copy"
++Copy or keep pointer.
++.SH "DESCRIPTION"
++Set the value of a property.
++.SH "RETURNS"
++TRUE <=> set successfully.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_prop_value_object.3 b/doc/vf_set_prop_value_object.3
+new file mode 100644
+index 0000000..85d96c2
+--- /dev/null
++++ b/doc/vf_set_prop_value_object.3
+@@ -0,0 +1,63 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_prop_value_object" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_prop_value_object \- vf_set_prop_value_object()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_prop_value_object
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ VF_OBJECT_T *p_object
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Not Documented.
++.TP
++.B "VF_OBJECT_T *p_object"
++Not Documented.
++.SH "DESCRIPTION"
++Set the value of the indicated property to be a VOBJECT.
++.SH "RETURNS"
++TRUE <=> set successfully.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_prop_value_string.3 b/doc/vf_set_prop_value_string.3
+new file mode 100644
+index 0000000..47cb2d7
+--- /dev/null
++++ b/doc/vf_set_prop_value_string.3
+@@ -0,0 +1,68 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_prop_value_string" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_prop_value_string \- vf_set_prop_value_string()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_prop_value_string
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t n_string,
++.br
++ const char *p_string
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++Property we're setting a value in.
++.TP
++.B "uint32_t n_string"
++Index to string.
++.TP
++.B "const char *p_string"
++Pointer to string.
++.SH "DESCRIPTION"
++Set the value of a property.
++.SH "RETURNS"
++TRUE <=> set successfully.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_prop_value_time.3 b/doc/vf_set_prop_value_time.3
+new file mode 100644
+index 0000000..68af0f9
+--- /dev/null
++++ b/doc/vf_set_prop_value_time.3
+@@ -0,0 +1,68 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_prop_value_time" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_prop_value_time \- vf_set_prop_value_time()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_prop_value_time
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ uint32_t n_string,
++.br
++ const long int t_value
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property.
++.TP
++.B "uint32_t n_string"
++Which string we're encoding to.
++.TP
++.B "const long int t_value"
++Time value.
++.SH "DESCRIPTION"
++Set a time_t value into a VF property.
++.SH "RETURNS"
++TRUE iff property added & set OK.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_set_property_from_file.3
b/doc/vf_set_property_from_file.3
+new file mode 100644
+index 0000000..fc0d43f
+--- /dev/null
++++ b/doc/vf_set_property_from_file.3
+@@ -0,0 +1,68 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_set_property_from_file" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_set_property_from_file \- vf_set_property_from_file()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_set_property_from_file
++.br
++(
++.br
++ VF_PROP_T *p_prop,
++.br
++ vf_encoding_t encoding,
++.br
++ const char *p_filename
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "VF_PROP_T *p_prop"
++The property.
++.TP
++.B "vf_encoding_t encoding"
++Encoding to use.
++.TP
++.B "const char *p_filename"
++Source filename.
++.SH "DESCRIPTION"
++Loads the indicated file into memory and sets the indicated property.
++.SH "RETURNS"
++TRUE iff succeded, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_write_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+diff --git a/doc/vf_write_file.3 b/doc/vf_write_file.3
+new file mode 100644
+index 0000000..ebc0b74
+--- /dev/null
++++ b/doc/vf_write_file.3
+@@ -0,0 +1,70 @@
++.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
++.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
++.TH "vf_write_file" 3 "30 April 2003" "c2man vf_iface.h"
++.SH "NAME"
++vf_write_file \- vf_write_file()
++.SH "SYNOPSIS"
++.ft B
++#include <../vformat/vf_iface.h>
++.sp
++extern bool_t vf_write_file
++.br
++(
++.br
++ const char *p_name,
++.br
++ VF_OBJECT_T *p_object,
++.br
++ bool_t write_all
++.br
++);
++.ft R
++.SH "PARAMETERS"
++.TP
++.B "const char *p_name"
++Outpt filename.
++.TP
++.B "VF_OBJECT_T *p_object"
++The object to write.
++.TP
++.B "bool_t write_all"
++Should write p_next as well?.
++.SH "DESCRIPTION"
++Write indicated vobject to file. For lists of objects (eg. Read from
++a phonebook) the write_all parameter allows the caller to control if
++the library writes the entire list or just the head item.
++.SH "RETURNS"
++TRUE <=> written OK, FALSE else.
++.SH "SEE ALSO"
++vf_parse_init(3),
++vf_parse_text(3),
++vf_parse_end(3),
++vf_read_file(3),
++vf_get_next_object(3),
++vf_create_object(3),
++vf_get_object_type(3),
++vf_get_property(3),
++vf_get_property_ex(3),
++vf_get_next_property(3),
++vf_get_prop_value(3),
++vf_set_prop_value(3),
++vf_get_prop_value_string(3),
++vf_get_prop_name_string(3),
++vf_set_prop_name_string(3),
++vf_get_prop_name(3),
++vf_get_prop_value_object(3),
++vf_set_prop_value_object(3),
++vf_set_prop_value_string(3),
++vf_set_prop_value_base64(3),
++vf_get_prop_value_base64(3),
++vf_set_property_from_file(3),
++vf_delete_object(3),
++vf_delete_prop(3),
++vf_find_prop_qual_index(3),
++vf_is_modified(3),
++vf_find_charset(3),
++vf_date_string_to_time(3),
++vf_period_string_to_time(3),
++vf_period_time_to_string(3),
++vf_set_prop_value_time(3),
++vf_get_prop_value_time(3)
+--
+1.7.6.3
+
diff --git a/libs/libvformat/0006-Remove-leading-space-when-unfolding.patch
b/libs/libvformat/0006-Remove-leading-space-when-unfolding.patch
new file mode 100644
index 0000000..613a2eb
--- /dev/null
+++ b/libs/libvformat/0006-Remove-leading-space-when-unfolding.patch
@@ -0,0 +1,36 @@
+From 792e010c299c4483d0fac836dba8119e6112c165 Mon Sep 17 00:00:00 2001
+From: Daniele Forsi <dforsi AT gmail.com>
+Date: Sun, 9 May 2010 19:34:56 +0200
+Subject: Remove leading space when unfolding
+
+According to RFC 2425 paragraph 5.8.1, the leading whitespace on folded lines
+must be removed when unfolding happens.
+
+Origin: vendor,
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=testcase.c;att=1;bug=539442
+Bug-Debian: http://bugs.debian.org/539442
+Forwarded:
https://sourceforge.net/tracker/?func=detail&aid=3084903&group_id=37192&atid=419516
+Last-Update: 2010-12-23
+Applied-Upstream:
http://vformat.cvs.sourceforge.net/viewvc/vformat/src/vformat/src/vf_parser.c?revision=1.26&view=markup
+---
+ src/vf_parser.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/vf_parser.c b/src/vf_parser.c
+index 2c7221c..1197154 100644
+--- a/src/vf_parser.c
++++ b/src/vf_parser.c
+@@ -333,9 +333,9 @@ bool_t vf_parse_text(
+ /* Ignore */
+ }
+ else
+- if (SPACE == c)
++ if ((SPACE == c) || (TAB == c))
+ {
+- ok = append_to_curr_string(&(p_parse->prop.value.v.s),
NULL, &c, 1);
++ /* Ignore leading white space characters when unfolding
*/
+
+ p_parse->state = _VF_STATE_RFC822VALUE;
+ }
+--
+1.7.6.3
+
diff --git
a/libs/libvformat/0007-Cast-NULL-in-void-in-functions-using-va_arg.patch
b/libs/libvformat/0007-Cast-NULL-in-void-in-functions-using-va_arg.patch
new file mode 100644
index 0000000..a0b4182
--- /dev/null
+++ b/libs/libvformat/0007-Cast-NULL-in-void-in-functions-using-va_arg.patch
@@ -0,0 +1,51 @@
+From a20a232e48b80958b977e3be96f6a859ba61260c Mon Sep 17 00:00:00 2001
+From: Thomas Preud'homme <thomas.preudhomme AT celest.fr>
+Date: Wed, 12 May 2010 18:39:30 +0200
+Subject: Cast NULL in void * in functions using va_arg
+
+NULL isn't necessary a zero value. For instance, on AMD64 architecture,
+a null pointer is 0x7fff00000000. Usually things works automagically as
+the compiler always cast NULL and 0 in void * if stored in a pointer
+variable. But with functions with variable number of arguments the
+compiler can't know the type of the arguments and thus don't make the
+cast. In consequences, NULL and 0 must be cast explicitely in void * if
+the parameter is a pointer.
+
+Origin: vendor
+Forwarded:
https://sourceforge.net/tracker/?func=detail&aid=3084905&group_id=37192&atid=419516
+Last-Update: 2010-12-23
+Applied-Upstream:
http://vformat.cvs.sourceforge.net/viewvc/vformat/build/vformat/vformat.c?revision=1.22&view=markup
+---
+ test/vformat.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/test/vformat.c b/test/vformat.c
+index b4a753d..40c299e 100644
+--- a/test/vformat.c
++++ b/test/vformat.c
+@@ -489,19 +489,19 @@ static void check_extract_fields(
+ }
+
+ printf(" Looking for {%s, %s}...\n", p_array[0], p_array[1]);
+- if (vf_get_property(&p_tmp, p_object, VFGP_FIND, NULL, p_array[0],
p_array[1], NULL))
++ if (vf_get_property(&p_tmp, p_object, VFGP_FIND, NULL, p_array[0],
p_array[1], (void *) NULL))
+ {
+ print_search_results(p_tmp);
+ }
+
+ printf(" Looking for {%s, %s}...\n", p_array[0], p_array[2]);
+- if (vf_get_property(&p_tmp, p_object, VFGP_FIND, NULL, p_array[0],
p_array[2], NULL))
++ if (vf_get_property(&p_tmp, p_object, VFGP_FIND, NULL, p_array[0],
p_array[2], (void *) NULL))
+ {
+ print_search_results(p_tmp);
+ }
+
+ printf(" Looking for {%s, %s, %s}...\n", p_array[0], p_array[1],
p_array[2]);
+- if (vf_get_property(&p_tmp, p_object, VFGP_FIND, NULL, p_array[0],
p_array[1], p_array[2], NULL))
++ if (vf_get_property(&p_tmp, p_object, VFGP_FIND, NULL, p_array[0],
p_array[1], p_array[2], (void *) NULL))
+ {
+ print_search_results(p_tmp);
+ }
+--
+1.7.6.3
+
diff --git a/libs/libvformat/0008-Fix-typo-in-manpage-and-source.patch
b/libs/libvformat/0008-Fix-typo-in-manpage-and-source.patch
new file mode 100644
index 0000000..9d8c979
--- /dev/null
+++ b/libs/libvformat/0008-Fix-typo-in-manpage-and-source.patch
@@ -0,0 +1,69 @@
+From 4f9b820244bfb52e58a11871986e7159e636d57e Mon Sep 17 00:00:00 2001
+From: Thomas Preud'homme <thomas.preudhomme AT celest.fr>
+Date: Wed, 11 Aug 2010 10:45:08 +0200
+Subject: Fix typo in manpage and source
+
+Two function declarations suffer from a mispell: requred instead of required.
+As a consequences, these typo are also found in the manpages generated by
c2man.
+
+Origin: vendor
+Forworded:
https://sourceforge.net/tracker/?func=detail&aid=3084926&group_id=37192&atid=419516
+Last-Update: 2010-12-23
+Applied-Upstream:
http://vformat.cvs.sourceforge.net/viewvc/vformat/src/vformat/vf_iface.h?revision=1.41&view=markup
+---
+ doc/vf_get_prop_name_string.3 | 2 +-
+ doc/vf_get_prop_value_string.3 | 2 +-
+ vformat/vf_iface.h | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/doc/vf_get_prop_name_string.3 b/doc/vf_get_prop_name_string.3
+index 7d1cfee..aa3bf3b 100644
+--- a/doc/vf_get_prop_name_string.3
++++ b/doc/vf_get_prop_name_string.3
+@@ -23,7 +23,7 @@ extern char *vf_get_prop_name_string
+ Property to locate string from.
+ .TP
+ .B "uint32_t n_string"
+-Index to string requred.
++Index to string required.
+ .SH "DESCRIPTION"
+ Get n'th name string. For example a property may be defined as:
+
+diff --git a/doc/vf_get_prop_value_string.3 b/doc/vf_get_prop_value_string.3
+index 4fc9a81..afc6f66 100644
+--- a/doc/vf_get_prop_value_string.3
++++ b/doc/vf_get_prop_value_string.3
+@@ -23,7 +23,7 @@ extern char *vf_get_prop_value_string
+ Property to locate string from.
+ .TP
+ .B "uint32_t n_string"
+-Index to string requred.
++Index to string required.
+ .SH "DESCRIPTION"
+ Obtain string pointer value from VF_PROP_T. For example a property
+ may be defined as:
+diff --git a/vformat/vf_iface.h b/vformat/vf_iface.h
+index ab5e8d9..12c5f22 100644
+--- a/vformat/vf_iface.h
++++ b/vformat/vf_iface.h
+@@ -906,7 +906,7 @@ extern VFORMATDECLSPEC bool_t vf_set_prop_value(
+
+ extern VFORMATDECLSPEC char *vf_get_prop_value_string(
+ VF_PROP_T *p_prop, /* Property to locate string from */
+- uint32_t n_string /* Index to string requred */
++ uint32_t n_string /* Index to string required */
+ );
+
+
+@@ -931,7 +931,7 @@ extern VFORMATDECLSPEC char *vf_get_prop_value_string(
+
+ extern VFORMATDECLSPEC char *vf_get_prop_name_string(
+ VF_PROP_T *p_prop, /* Property to locate string from */
+- uint32_t n_string /* Index to string requred */
++ uint32_t n_string /* Index to string required */
+ );
+
+
+--
+1.7.6.3
+
diff --git a/libs/libvformat/DETAILS b/libs/libvformat/DETAILS
new file mode 100755
index 0000000..83fe870
--- /dev/null
+++ b/libs/libvformat/DETAILS
@@ -0,0 +1,15 @@
+ SPELL=libvformat
+ VERSION=1.13
+ XVERSION=a6r3
+ SOURCE="${SPELL}-${VERSION}-${XVERSION}.tar.gz"
+ SOURCE_URL[0]=${SOURCEFORGE_URL}/vformat/vformat/Alpha-6-Linux/${SOURCE}
+
SOURCE_HASH=sha512:f809c993db004be0c490a79b123c4357dc4e7106bf7875a91ef3a23a6aaeac1135b53248feb5ab739994e79749eb8aca2ac4a544da9df274b7aa87c1f665076b
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="http://vformat.sourceforge.net/";
+ LICENSE[0]=GPL
+ ENTERED=20121220
+ SHORT="small, portable library for accessing vformat objects eg
VCARD"
+cat << EOF
+This library provides an interface to vcard files according to the
definitions
+laid down in the rfc2426.
+EOF
diff --git a/libs/libvformat/HISTORY b/libs/libvformat/HISTORY
new file mode 100644
index 0000000..686061b
--- /dev/null
+++ b/libs/libvformat/HISTORY
@@ -0,0 +1,9 @@
+2012-12-20 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * 0004-Provide-info-documentation.patch,
+ 0005-Add-manpages.patch,
+ 0006-Remove-leading-space-when-unfolding.patch,
+ 0007-Cast-NULL-in-void-in-functions-using-va_arg.patch,
+ 0008-Fix-typo-in-manpage-and-source.patch,
+ DETAILS,
+ PRE_BUILD: spell created
+
diff --git a/libs/libvformat/PRE_BUILD b/libs/libvformat/PRE_BUILD
new file mode 100755
index 0000000..852b201
--- /dev/null
+++ b/libs/libvformat/PRE_BUILD
@@ -0,0 +1,11 @@
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&
+
+
+patch -p1 < ${SPELL_DIRECTORY}/0004-Provide-info-documentation.patch &&
+patch -p1 < ${SPELL_DIRECTORY}/0005-Add-manpages.patch &&
+patch -p1 <
${SPELL_DIRECTORY}/0006-Remove-leading-space-when-unfolding.patch &&
+patch -p1 <
${SPELL_DIRECTORY}/0007-Cast-NULL-in-void-in-functions-using-va_arg.patch &&
+patch -p1 < ${SPELL_DIRECTORY}/0008-Fix-typo-in-manpage-and-source.patch &&
+
+autoreconf -fi
diff --git a/lua-forge/lgi/BUILD b/lua-forge/lgi/BUILD
new file mode 100755
index 0000000..6dfecc1
--- /dev/null
+++ b/lua-forge/lgi/BUILD
@@ -0,0 +1 @@
+default_build_make
diff --git a/lua-forge/lgi/DEPENDS b/lua-forge/lgi/DEPENDS
new file mode 100755
index 0000000..fb3d247
--- /dev/null
+++ b/lua-forge/lgi/DEPENDS
@@ -0,0 +1,2 @@
+depends LUA &&
+depends gobject-introspection
diff --git a/lua-forge/lgi/DETAILS b/lua-forge/lgi/DETAILS
new file mode 100755
index 0000000..94f2e62
--- /dev/null
+++ b/lua-forge/lgi/DETAILS
@@ -0,0 +1,14 @@
+ SPELL=lgi
+ VERSION=0.6.2
+ SOURCE="${SPELL}-${VERSION}.zip"
+ SOURCE_URL[0]=https://github.com/pavouk/${SPELL}/archive/${VERSION}.zip
+
SOURCE_HASH=sha512:0ccd86ed45e7c64858b7147695e9b784a12762d226ac84d942f26ef099f106049c668a2cf786b997029d5d7c7daf4b294ff983f49f6952246e1429e86ac50442
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="https://github.com/pavouk/lgi";
+ LICENSE[0]=MIT
+ ENTERED=20121223
+ SHORT="Dynamic Lua binding to GObject libraries using
GObject-Introspection"
+cat << EOF
+LGI is gobject-introspection based dynamic Lua binding to GObject based
+libraries. It allows using GObject-based libraries directly from Lua.
+EOF
diff --git a/lua-forge/lgi/HISTORY b/lua-forge/lgi/HISTORY
new file mode 100644
index 0000000..d3d4cd0
--- /dev/null
+++ b/lua-forge/lgi/HISTORY
@@ -0,0 +1,3 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * BUILD, DEPENDS, DETAILS: spell created
+
diff --git a/lxde/menu-cache/DETAILS b/lxde/menu-cache/DETAILS
index e9e400d..cdd8f2f 100755
--- a/lxde/menu-cache/DETAILS
+++ b/lxde/menu-cache/DETAILS
@@ -1,8 +1,8 @@
SPELL=menu-cache
- VERSION=0.3.2
+ VERSION=0.4.1
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE_URL[0]=$SOURCEFORGE_URL/lxde/${SOURCE}
-
SOURCE_HASH=sha512:7cc9e0f6b2e992233149b7db3ee571fc1e67692125c4bd52fe08ab1bc63d3e937a383a3345d513369f530cecc9ed40708826421d7adff2150a4f1c92cb251056
+
SOURCE_HASH=sha512:9744765f6894462139cbb9cbeec74c915df27bfeb31179743fc6dbf2ac20e26520be6d089c8733f0a17248a2aa6687730c5ee28f26eb15195eaa16db5c73aec6
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE=http://lxde.sourceforge.net/
LICENSE[0]=GPL
diff --git a/lxde/menu-cache/HISTORY b/lxde/menu-cache/HISTORY
index 1892541..23a85ad 100644
--- a/lxde/menu-cache/HISTORY
+++ b/lxde/menu-cache/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.4.1
+
2010-06-01 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: updated spell to 0.3.2

diff --git a/mail/lbdb/DEPENDS b/mail/lbdb/DEPENDS
new file mode 100755
index 0000000..03b8f2c
--- /dev/null
+++ b/mail/lbdb/DEPENDS
@@ -0,0 +1,6 @@
+depends libvformat &&
+depends perl &&
+suggest_depends mutt "" "" "use lbdb in mutt's query function" &&
+suggest_depends procmail "" "" "pipe incoming mails to lbdb for analysis" &&
+suggest_depends finger "" "" "for lbdb's finger backend" &&
+suggest_depends abook "" "" "for lbdb's abook backend"
diff --git a/mail/lbdb/DETAILS b/mail/lbdb/DETAILS
new file mode 100755
index 0000000..9690df8
--- /dev/null
+++ b/mail/lbdb/DETAILS
@@ -0,0 +1,34 @@
+ SPELL=lbdb
+ VERSION=0.38
+ SOURCE="${SPELL}_${VERSION}.tar.gz"
+ SOURCE_URL[0]=http://www.spinnaker.de/debian/${SOURCE}
+
SOURCE_HASH=sha512:7c8dca22fb82f127e773086517ed21deecc78d4b595ef0e08467d05424f0f11a6d5ce3bcea7827ab7e2e78d1cf96c71b1ce65f9fff5263a4d959374ea1865cac
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="http://www.spinnaker.de/lbdb/";
+ LICENSE[0]=GPL
+ ENTERED=20121220
+ SHORT="Little Brother's DataBase for the mutt mail reader"
+cat << EOF
+This package consists of a set of small tools, which collect mail addresses
+from several sources and offer these addresses to the mutt external query
+feature. At the moment the following modules are supported:
+ - m_finger (uses the finger(1) command)
+ - m_inmail (scans incoming mail for addresses)
+ - m_passwd (searches /etc/passwd)
+ - m_yppasswd (searches the YP password database)
+ - m_nispasswd (searches the NIS password database)
+ - m_getent (searches the configured password database)
+ - m_pgp2, m_pgp5, m_gpg (searches your PGP or GnuPG keyrings)
+ - m_fido (searches the Fidonet nodelist)
+ - m_abook (uses the address book application abook(1))
+ - m_addr_email (uses addr-email from the addressbook Tk program)
+ - m_muttalias (searches your Mutt mail aliases)
+ - m_pine (searches your Pine addressbook files)
+ - m_wanderlust (search the WanderLust alias database)
+ - m_palm (uses your Palm database; needs libpalm-perl package)
+ - m_gnomecard (uses GnomeCard database files)
+ - m_bbdb (search your BBDB (big brother database))
+ - m_ldap (query some LDAP server)
+ - m_evolution (search in the Evolution addressbook)
+ - m_vcf (search in vcard files using libvformat)
+EOF
diff --git a/mail/lbdb/HISTORY b/mail/lbdb/HISTORY
new file mode 100644
index 0000000..692d9d5
--- /dev/null
+++ b/mail/lbdb/HISTORY
@@ -0,0 +1,3 @@
+2012-12-20 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DEPENDS, DETAILS: spell created
+
diff --git a/net/iputils-tracepath/DETAILS b/net/iputils-tracepath/DETAILS
index 639173f..c54cf85 100755
--- a/net/iputils-tracepath/DETAILS
+++ b/net/iputils-tracepath/DETAILS
@@ -1,14 +1,14 @@
SPELL=iputils-tracepath
- VERSION=20071127-1
+ VERSION=20101006-3
SOURCE=iputils_${VERSION:0:8}.orig.tar.gz
- SOURCE2=iputils_${VERSION}.diff.gz
-SOURCE_DIRECTORY=$BUILD_DIRECTORY/iputils_${VERSION:0:8}.orig
+ SOURCE2=iputils_${VERSION}.debian.tar.gz
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/iputils
SOURCE_URL[0]=http://ftp.debian.org/debian/pool/main/i/iputils/$SOURCE
- SOURCE2_URL[0]=http://ftp.debian.org/debian/pool/main/i/iputils/$SOURCE2
+ SOURCE2_URL[0]=http://ftp.debian.org/debian/pool/main/i/iputils/${SOURCE2}

WEB_SITE=http://packages.debian.org/unstable/net/iputils-tracepath.html
ENTERED=20030515
-
SOURCE_HASH=sha512:7791934d2110e934043d373463f758239d6706a7d87e5dfab2377523830b12aebc24c5f29da7b294df2102f3f0f00589b842eb5c74d86eb29ce1e304d5de7a7d
-
SOURCE2_HASH=sha512:3285ac37dd5645e34e373131dc562fa7d258763c505a37762c7cd5cbb61c2fbdc5548ea728c9a0571afdd13203bbe2a825b09430a0a4c7daccee9c847a8bfd15
+ SOURCE_HASH=sha512:
+ SOURCE2_HASH=sha512:
LICENSE[0]=GPL
DOCS="README"
KEYWORDS="net"
diff --git a/net/iputils-tracepath/HISTORY b/net/iputils-tracepath/HISTORY
index f3b0a59..425d30d 100644
--- a/net/iputils-tracepath/HISTORY
+++ b/net/iputils-tracepath/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS, PRE_BUILD: version 20101006-3
+
2010-06-13 Robin Cook <rcook AT wyrms.net>
* BUILD: corrected spelling of function so docs build

diff --git a/net/iputils-tracepath/PRE_BUILD b/net/iputils-tracepath/PRE_BUILD
index 8b80431..4f18aee 100755
--- a/net/iputils-tracepath/PRE_BUILD
+++ b/net/iputils-tracepath/PRE_BUILD
@@ -1,5 +1,4 @@
default_pre_build &&
cd $SOURCE_DIRECTORY &&

- unpack_file 2 &&
- gunzip -c $SOURCE_CACHE/$SOURCE2 | patch -p1
+ unpack_file 2
diff --git a/perl-cpan/ps2eps/DETAILS b/perl-cpan/ps2eps/DETAILS
index 72c5996..03c4327 100755
--- a/perl-cpan/ps2eps/DETAILS
+++ b/perl-cpan/ps2eps/DETAILS
@@ -1,8 +1,8 @@
SPELL=ps2eps
- VERSION=1.64
+ VERSION=1.68
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE_URL[0]=http://www.tm.uka.de/~bless/${SOURCE}
-
SOURCE_HASH=sha512:b41c70d9a2d1ff2abb2782afd5e78726715278a65cf4ae787070773b87552d5df4e2566dc2983291fc2985a9d888677deb3478bb9f8cfc23836b244b778b490f
+
SOURCE_HASH=sha512:7fc84da5da00d5b1169d6e337b1db232adf80d9d957e48bfdd9272946151adca3e44f712587387ef557488cd15f44210b3fbd8c545488ec0071641d9d25a9c2b
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}"
WEB_SITE="http://www.tm.uka.de/~bless/ps2eps.html";
LICENSE[0]="GPL"
diff --git a/perl-cpan/ps2eps/HISTORY b/perl-cpan/ps2eps/HISTORY
index 5ade3eb..a08f381 100644
--- a/perl-cpan/ps2eps/HISTORY
+++ b/perl-cpan/ps2eps/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.68
+
2009-07-29 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
* DEPENDS, DETAILS: spell created
* BUILD, INSTALL: spell created
diff --git a/python-pypi/ctypes/BUILD b/python-pypi/ctypes/BUILD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/python-pypi/ctypes/BUILD
@@ -0,0 +1 @@
+true
diff --git a/python-pypi/ctypes/DETAILS b/python-pypi/ctypes/DETAILS
index 8999a23..5091789 100755
--- a/python-pypi/ctypes/DETAILS
+++ b/python-pypi/ctypes/DETAILS
@@ -1,19 +1,7 @@
- SPELL=ctypes
- VERSION=1.0.2
- SOURCE=$SPELL-$VERSION.tar.gz
-SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
- SOURCE_URL=$SOURCEFORGE_URL/$SPELL/$SOURCE
-
SOURCE_HASH=sha512:40f8909945ad25a9b92a52903a9c524f37c4c902b122959c6e08bcfe4c30572541f15174e33a08e7ceb5e4f1a69566af0201779a519c643705d355c9f47aacd3
- WEB_SITE=http://starship.python.net/crew/theller/ctypes/
- ENTERED=20060627
- LICENSE[0]=GPL
- SHORT="advanced ffi package"
-cat << EOF
-ctypes is an advanced ffi (Foreign Function Interface) package for Python 2.3
-and higher.
-
-ctypes allows to call functions exposed from dlls/shared libraries and has
-extensive facilities to create, access and manipulate simple and complicated
C
-data types in Python - in other words: wrap libraries in pure Python. It is
-even possible to implement C callback functions in pure Python.
-EOF
+ SPELL=ctypes
+ VERSION=0
+ PATCHLEVEL=9999
+ SHORT="deprecated"
+ cat << EOF
+ deprecated spell [replaced by python]
+ EOF
diff --git a/python-pypi/ctypes/DOWNLOAD b/python-pypi/ctypes/DOWNLOAD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/python-pypi/ctypes/DOWNLOAD
@@ -0,0 +1 @@
+true
diff --git a/python-pypi/ctypes/HISTORY b/python-pypi/ctypes/HISTORY
index 78b9e53..64f20b3 100644
--- a/python-pypi/ctypes/HISTORY
+++ b/python-pypi/ctypes/HISTORY
@@ -1,3 +1,8 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * spell deprecated [part of python as of version 2.5]
+ * PATCHLEVEL=9999
+ * DETAILS: version 0
+
2008-01-13 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated to 1.0.2, cleaned up

diff --git a/python-pypi/ctypes/INSTALL b/python-pypi/ctypes/INSTALL
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/python-pypi/ctypes/INSTALL
@@ -0,0 +1 @@
+true
diff --git a/python-pypi/ctypes/PRE_BUILD b/python-pypi/ctypes/PRE_BUILD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/python-pypi/ctypes/PRE_BUILD
@@ -0,0 +1 @@
+true
diff --git a/python-pypi/ctypes/TRIGGERS b/python-pypi/ctypes/TRIGGERS
new file mode 100755
index 0000000..9550326
--- /dev/null
+++ b/python-pypi/ctypes/TRIGGERS
@@ -0,0 +1 @@
+on_cast ctypes dispel_self
diff --git a/python-pypi/pydot/DETAILS b/python-pypi/pydot/DETAILS
index e2d05da..c1f379c 100755
--- a/python-pypi/pydot/DETAILS
+++ b/python-pypi/pydot/DETAILS
@@ -1,6 +1,6 @@
SPELL=pydot
- VERSION=1.0.25
-
SOURCE_HASH=sha512:50246e5edc132cf49734634ce6381acc492a12124b08b4bae5654b5823b89ad9c5170d6d79ac51b311986e133a3687336c539fddec2493ad54b07e906b1cf1c9
+ VERSION=1.0.28
+
SOURCE_HASH=sha512:54b4d7bfb01bbcae9a4832d1c3321d4f453a93f062ee55b35e3d59bee3f8989f4a544afb56c3d16b22bca8e6ef24b6286ac2688c9045b16906ef625999b35055
SOURCE="$SPELL-$VERSION.tar.gz"
SOURCE_URL[0]="http://$SPELL.googlecode.com/files/$SOURCE";
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/python-pypi/pydot/HISTORY b/python-pypi/pydot/HISTORY
index 6217129..e52e44e 100644
--- a/python-pypi/pydot/HISTORY
+++ b/python-pypi/pydot/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.0.28
+
2011-06-22 Peng Chang (Charles) <chp AT sourcemage.org>
* DETAILS: Fixed SOURCE_URL[0], WEB_SITE
updated spell to 1.0.25
diff --git a/science/units/DETAILS b/science/units/DETAILS
index e801674..e49d4e6 100755
--- a/science/units/DETAILS
+++ b/science/units/DETAILS
@@ -1,10 +1,10 @@
SPELL=units
- VERSION=1.88
+ VERSION=2.01
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=$GNU_URL/$SPELL/$SOURCE
SOURCE_URL[1]=ftp://ftp.gnu.org/pub/gnu/$SPELL/$SOURCE
-
SOURCE_HASH=sha512:8e5630f6c3223d4c1139cfd905e8c2ede42ede4e5c73f310617b60c3082d2e22f39ddeef2ba7c7fe655b27423f138c8883fca78703d31f5dc3653382c8bac961
+
SOURCE_HASH=sha512:ddaa9d8ad84aea963e84379f6d5d6298ec0431c56ba2c805a5fbc3695504279a7ba81609e33bb9d52771ee3ca739570b925d30aa1637dacb5a90d8c8c483fd37
WEB_SITE=http://www.gnu.org/software/units/units.html
LICENSE[0]=GPL
ENTERED=20021127
diff --git a/science/units/HISTORY b/science/units/HISTORY
index 64adadd..5afb54d 100644
--- a/science/units/HISTORY
+++ b/science/units/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 2.01
+
2010-02-17 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 1.88

diff --git a/security-libs/cracklib/DETAILS b/security-libs/cracklib/DETAILS
index 54731af..9ddc28e 100755
--- a/security-libs/cracklib/DETAILS
+++ b/security-libs/cracklib/DETAILS
@@ -1,5 +1,5 @@
SPELL=cracklib
- VERSION=2.8.19
+ VERSION=2.8.22
VERSIONWORDS=20080507
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SPELL-words-$VERSIONWORDS.gz
@@ -7,7 +7,7 @@
SOURCE2_URL[0]=$SOURCEFORGE_URL/$SPELL/$SOURCE2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
# SOURCE_GPG="gurus.gpg:${SOURCE}.sig"
-
SOURCE_HASH=sha512:64fa9c9d53e9d7f82fa8de9708096b6d6ad4704c4a89c42e113395612af1a82385a7de5f8678fe521016960ebfd0ed4258041afe3a5e4d15bd50ec76bb76fc2c
+
SOURCE_HASH=sha512:7ec9f93d1bb8132dc143e320373c0ffab2c3e4a9da4e449ce7c6e9b3aada5a30933d3bccbca4d2ea0ef5e72ef5593427756e06c03a97940edf74bac37f2fd08b

SOURCE2_HASH='sha512:d21055d6439a2b92b23ab6fd31222d9330315a0b44f53fae308ce5749a9fcb33b7df982f85ca8e2d6d2f9cc4c7264dfc3ed454edbccecd76289713df09fd633e'
WEB_SITE=http://sf.net/projects/$SPELL
ENTERED=20050310
diff --git a/security-libs/cracklib/HISTORY b/security-libs/cracklib/HISTORY
index d3c46d7..b00b4d2 100644
--- a/security-libs/cracklib/HISTORY
+++ b/security-libs/cracklib/HISTORY
@@ -1,3 +1,6 @@
+2012-12-22 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 2.8.22
+
2012-10-20 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: 2.8.19

diff --git a/utils/atop/DEPENDS b/utils/atop/DEPENDS
new file mode 100755
index 0000000..c2af731
--- /dev/null
+++ b/utils/atop/DEPENDS
@@ -0,0 +1,2 @@
+depends ncurses &&
+depends zlib
diff --git a/utils/atop/DETAILS b/utils/atop/DETAILS
index dd07dd1..cafe49e 100755
--- a/utils/atop/DETAILS
+++ b/utils/atop/DETAILS
@@ -1,9 +1,9 @@
SPELL=atop
- VERSION=1.25
+ VERSION=2.0.2
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://www.atoptool.nl/download/$SOURCE
-
SOURCE_HASH=sha512:dcd10730f06226e6fddfaa6a5b35341f6d5329bb214ecda5601f68004374d3d1ec16d0586020dd4c6e860fdab20ecb231e215edc4d1129b0e1d5df28c8334cdc
+
SOURCE_HASH=sha512:c02b1c2ebf5c49fb0ad17bbcf0b86af8e5623c8d0b6ba8b1096d9b592cbb358e011933142cdebc90f619221785e859aaa009a338f3682d8bfa4340a50b308471
WEB_SITE=http://www.atconsultancy.nl/atop/home.html
ENTERED=20020725
LICENSE=GPL
diff --git a/utils/atop/HISTORY b/utils/atop/HISTORY
index e47ff26..9182bc6 100644
--- a/utils/atop/HISTORY
+++ b/utils/atop/HISTORY
@@ -1,3 +1,7 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 2.0.2
+ * DEPENDS: added dependencies on ncurses and zlib
+
2010-05-10 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* BUILD: fixed CFLAGS substitution so it works with -Os

diff --git a/utils/iotop/DETAILS b/utils/iotop/DETAILS
index 46f417e..0232afc 100755
--- a/utils/iotop/DETAILS
+++ b/utils/iotop/DETAILS
@@ -1,8 +1,8 @@
SPELL=iotop
- VERSION=0.4.3
+ VERSION=0.4.4
SOURCE="${SPELL}-${VERSION}.tar.bz2"
SOURCE_URL[0]=http://guichaz.free.fr/${SPELL}/files/${SOURCE}
-
SOURCE_HASH=sha512:53051bc72b84a76905b7d3b122442ca6520ca68e02dbd7ec4192174ba5990c51bd9ce932799f351d7b885927474284060d38716946a955f75c6427652752b557
+
SOURCE_HASH=sha512:4db85fc0d828e42bc3a73a2c2ca11ae98ef64b8fd2b276691603f10523291188779db648db65beca720d4f72ef01f9aabd4353b279752b4c660b18b14e8475eb
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="http://guichaz.free.fr/iotop/";
LICENSE[0]=GPL
diff --git a/utils/iotop/HISTORY b/utils/iotop/HISTORY
index 588cc5d..35ff6ce 100644
--- a/utils/iotop/HISTORY
+++ b/utils/iotop/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 0.4.4
+
2011-03-29 Ladislav Hagara <hgr AT vabo.cz>
* DETAILS: 0.4.3

diff --git a/utils/joystick/BUILD b/utils/joystick/BUILD
index a057968..27ba77d 100755
--- a/utils/joystick/BUILD
+++ b/utils/joystick/BUILD
@@ -1,4 +1 @@
-cd ${SOURCE_DIRECTORY}/utils &&
-make_single &&
-make &&
-make_normal
+true
diff --git a/utils/joystick/DEPENDS b/utils/joystick/DEPENDS
index 7ddd3ee..0e86e55 100755
--- a/utils/joystick/DEPENDS
+++ b/utils/joystick/DEPENDS
@@ -1 +1 @@
-depends sdl
+depends linuxconsoletools
diff --git a/utils/joystick/DETAILS b/utils/joystick/DETAILS
index d6271b9..3402ee1 100755
--- a/utils/joystick/DETAILS
+++ b/utils/joystick/DETAILS
@@ -1,17 +1,7 @@
- SPELL=joystick
- VERSION=20051019
- SOURCE="${SPELL}_${VERSION}.orig.tar.gz"
-
SOURCE_URL[0]=http://archive.ubuntu.com/ubuntu/pool/universe/j/${SPELL}/${SOURCE}
-
SOURCE_HASH=sha512:6ef91c3af1614b7db580ad349f306acb126fff6ced47bf2a854dd31550b174658ad12895ae289aeea9ef86415d270847aa441ea4a8f3c6ada0c153ac95c72ed5
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}.orig"
- WEB_SITE="http://sourceforge.net/projects/linuxconsole";
- LICENSE[0]=GPL
- ENTERED=20090901
- SHORT="some useful tools for using joysticks"
-cat << EOF
-set of testing and calibration tools for joysticks:
-
- evtest (1) - input device event monitor inputattach (1) - attach serial-port
- peripherals to the input subsystem jstest (1) - joystick test program jscal
- (1) - joystick calibration program
-EOF
+ SPELL=joystick
+ VERSION=0
+ PATCHLEVEL=9999
+ SHORT="deprecated"
+ cat << EOF
+ deprecated spell [replaced by linuxconsoletools]
+ EOF
diff --git a/utils/joystick/DOWNLOAD b/utils/joystick/DOWNLOAD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/utils/joystick/DOWNLOAD
@@ -0,0 +1 @@
+true
diff --git a/utils/joystick/HISTORY b/utils/joystick/HISTORY
index 39eebcf..44f5271 100644
--- a/utils/joystick/HISTORY
+++ b/utils/joystick/HISTORY
@@ -1,2 +1,7 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * spell deprecated [project has been renamed]
+ * PATCHLEVEL=9999
+ * DETAILS: version 0
+
2009-09-01 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* BUILD, DEPENDS, DETAILS, INSTALL, PRE_BUILD: spell created
diff --git a/utils/joystick/INSTALL b/utils/joystick/INSTALL
index 762082f..27ba77d 100755
--- a/utils/joystick/INSTALL
+++ b/utils/joystick/INSTALL
@@ -1,14 +1 @@
-for i in cvmove \
- evtest \
- ffcfstress \
- ffmvforce \
- ffset \
- fftest \
- inputattach \
- jscal \
- jstest;
-do
- install -v -m 755 \
- ${SOURCE_DIRECTORY}/utils/$i \
- ${INSTALL_ROOT}/usr/bin
-done
+true
diff --git a/utils/joystick/PRE_BUILD b/utils/joystick/PRE_BUILD
index 76b88d3..27ba77d 100755
--- a/utils/joystick/PRE_BUILD
+++ b/utils/joystick/PRE_BUILD
@@ -1,3 +1 @@
-default_pre_build &&
-cd ${SOURCE_DIRECTORY}/utils &&
-sedit "s:CFLAGS.*-I:CFLAGS = $CFLAGS -I:" Makefile
+true
diff --git a/utils/joystick/TRIGGERS b/utils/joystick/TRIGGERS
new file mode 100755
index 0000000..84ebf50
--- /dev/null
+++ b/utils/joystick/TRIGGERS
@@ -0,0 +1 @@
+on_cast joystick dispel_self
diff --git a/utils/linuxconsoletools/BUILD b/utils/linuxconsoletools/BUILD
new file mode 100755
index 0000000..6dfecc1
--- /dev/null
+++ b/utils/linuxconsoletools/BUILD
@@ -0,0 +1 @@
+default_build_make
diff --git a/utils/linuxconsoletools/DEPENDS b/utils/linuxconsoletools/DEPENDS
new file mode 100755
index 0000000..7ddd3ee
--- /dev/null
+++ b/utils/linuxconsoletools/DEPENDS
@@ -0,0 +1 @@
+depends sdl
diff --git a/utils/linuxconsoletools/DETAILS b/utils/linuxconsoletools/DETAILS
new file mode 100755
index 0000000..5943bc7
--- /dev/null
+++ b/utils/linuxconsoletools/DETAILS
@@ -0,0 +1,16 @@
+ SPELL=linuxconsoletools
+ VERSION=1.4.4
+ SOURCE="${SPELL}-${VERSION}.tar.bz2"
+ SOURCE_URL[0]=$SOURCEFORGE_URL/project/linuxconsole/${SOURCE}
+
SOURCE_HASH=sha512:ab2f15e26da3705cea35e26dda149f83d5792b0643aa8f684854be26d98a69943cfac3f07c8eac83485a289c9bdc7d41ad3af8990cec0a168b6b6e30381ee33a
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE="http://sourceforge.net/projects/linuxconsole/";
+ LICENSE[0]=GPL
+ ENTERED=20121224
+ SHORT="utilities to test and configure joysticks"
+cat << EOF
+This project maintains the Linux Console tools, which include utilities to
+test and configure joysticks, connect legacy devices to the kernel's input
+subsystem (providing support for serial mice, touchscreens etc.), and test
+the input event layer.
+EOF
diff --git a/utils/linuxconsoletools/HISTORY b/utils/linuxconsoletools/HISTORY
new file mode 100644
index 0000000..ca1f4e9
--- /dev/null
+++ b/utils/linuxconsoletools/HISTORY
@@ -0,0 +1,3 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * BUILD, DEPENDS, DETAILS, INSTALL: spell created
+
diff --git a/utils/linuxconsoletools/INSTALL b/utils/linuxconsoletools/INSTALL
new file mode 100755
index 0000000..2f84ddf
--- /dev/null
+++ b/utils/linuxconsoletools/INSTALL
@@ -0,0 +1,2 @@
+cd ${SOURCE_DIRECTORY}/utils && DESTDIR=${INSTALL_ROOT} PREFIX=/usr
default_install &&
+cd ${SOURCE_DIRECTORY}/docs && DESTDIR=${INSTALL_ROOT} PREFIX=/usr
default_install
diff --git a/utils/procinfo/BUILD b/utils/procinfo/BUILD
deleted file mode 100755
index 8f58e6d..0000000
--- a/utils/procinfo/BUILD
+++ /dev/null
@@ -1 +0,0 @@
-make
diff --git a/utils/procinfo/DEPENDS b/utils/procinfo/DEPENDS
index 6826bc7..ad85ec2 100755
--- a/utils/procinfo/DEPENDS
+++ b/utils/procinfo/DEPENDS
@@ -1 +1,2 @@
-depends perl
+depends -sub CXX gcc &&
+depends ncurses
diff --git a/utils/procinfo/DETAILS b/utils/procinfo/DETAILS
index c271682..e1f34fa 100755
--- a/utils/procinfo/DETAILS
+++ b/utils/procinfo/DETAILS
@@ -1,11 +1,10 @@
SPELL=procinfo
- VERSION=19.2
- VERSION_OLD=18
- SOURCE=$SPELL-$VERSION_OLD.tar.gz
-
SOURCE_HASH=sha512:12c4d7983f5d6531be6d4df39f5f1e1ee2ea2394a6eb8fb8df0573f0085499e4b7d43355bfa549a24ddf1ecb09bbfa7b038cef9c483620c74ad5cedc219e35fa
-SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION_OLD"
- SOURCE_URL[0]=ftp://ftp.cistron.nl/pub/people/00-OLD/sandervm/$SOURCE
- WEB_SITE=ftp://ftp.cistron.nl/pub/people/00-OLD/sandervm
+ VERSION=2.0.304
+ SOURCE=$SPELL-ng-$VERSION.tar.bz2
+
SOURCE_HASH=sha512:db336d2ff3bb3b31ac83a51a9d273fae8d16d36bd805f548eda06cb501699473fd8e4b4f9b722165fbf685d76c3fc09bfea9e516eabc37a888e2fae7679c08cf
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-ng-$VERSION"
+ SOURCE_URL[0]=$SOURCEFORGE_URL/$SPELL-ng/$SPELL-ng/${VERSION}/${SOURCE}
+ WEB_SITE=http://procinfo-ng.sourceforge.net/
ENTERED=20010922
KEYWORDS="utils"
SHORT="tools to acquire useful information from /proc"
diff --git a/utils/procinfo/HISTORY b/utils/procinfo/HISTORY
index 471fd1f..e764abc 100644
--- a/utils/procinfo/HISTORY
+++ b/utils/procinfo/HISTORY
@@ -1,3 +1,9 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 2.0.304
+ * DEPENDS: removed dependency on perl, added dependencies on ncurses
and gcc
+ with CXX
+ * BUILD, INSTALL, PRE_BUILD, procinfo-19.2.patch.bz2: removed
+
2008-07-11 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: fixed SOURCE_URL[0], quoting the paths! Updated spell to
19.2
* BUILD, DEPENDS: cleaned up
diff --git a/utils/procinfo/INSTALL b/utils/procinfo/INSTALL
deleted file mode 100755
index 26606b0..0000000
--- a/utils/procinfo/INSTALL
+++ /dev/null
@@ -1 +0,0 @@
-make -e PREFIX="$INSTALL_ROOT/usr" install
diff --git a/utils/procinfo/PRE_BUILD b/utils/procinfo/PRE_BUILD
deleted file mode 100755
index c2961a8..0000000
--- a/utils/procinfo/PRE_BUILD
+++ /dev/null
@@ -1,7 +0,0 @@
-default_pre_build &&
-cd "$SOURCE_DIRECTORY" &&
-
-bzcat "$SPELL_DIRECTORY/$SPELL-$VERSION.patch.bz2" | patch -p1 &&
-
-sed -i "s/-ltermcap/-lncurses/;s/\$(prefix)\/man/\$(prefix)\/share\/man/" \
- Makefile
diff --git a/utils/procinfo/procinfo-19.2.patch.bz2
b/utils/procinfo/procinfo-19.2.patch.bz2
deleted file mode 100644
index 85f9618..0000000
Binary files a/utils/procinfo/procinfo-19.2.patch.bz2 and /dev/null differ
diff --git a/utils/xen/DETAILS b/utils/xen/DETAILS
index f48118c..dd80218 100755
--- a/utils/xen/DETAILS
+++ b/utils/xen/DETAILS
@@ -1,7 +1,6 @@
SPELL=xen
- VERSION=4.1.3
+ VERSION=4.1.4
SECURITY_PATCH=5
- PATCHLEVEL=1
SOURCE=${SPELL}-${VERSION}.tar.gz
SOURCE2=$SOURCE.sig
SOURCE2_IGNORE=signature
diff --git a/utils/xen/HISTORY b/utils/xen/HISTORY
index 65146a9..118a9bf 100644
--- a/utils/xen/HISTORY
+++ b/utils/xen/HISTORY
@@ -1,3 +1,8 @@
+2012-12-22 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 4.1.4
+ * PRE_BUILD: removed patches
+ * xsa-*.patch: removed, fixed by upstream
+
2012-12-11 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: PATCHLEVEL=1
* init.d/xendomains: corrected detection of running domUs after
instant
diff --git a/utils/xen/PRE_BUILD b/utils/xen/PRE_BUILD
index c738dc4..c7f9a4a 100755
--- a/utils/xen/PRE_BUILD
+++ b/utils/xen/PRE_BUILD
@@ -1,25 +1,6 @@
default_pre_build &&
cd ${SOURCE_DIRECTORY} &&

-patch -p1 < "$SPELL_DIRECTORY/xsa-12.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-13.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-14.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-16.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-17.patch" &&
-patch -p0 < "$SPELL_DIRECTORY/xsa-19.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-20.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-21.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-22.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-23.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-24.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-25.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-26.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-27.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-28.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-29.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-30.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/xsa-31.patch" &&
-
if [[ $XEN_UPINIT != y ]]; then
sedit "s:all install-initd:all:" tools/hotplug/Linux/Makefile
fi &&
diff --git a/utils/xen/xsa-12.patch b/utils/xen/xsa-12.patch
deleted file mode 100644
index 271c4d8..0000000
--- a/utils/xen/xsa-12.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-xen: prevent a 64 bit guest setting reserved bits in DR7
-
-The upper 32 bits of this register are reserved and should be written as
-zero.
-
-This is XSA-12 / CVE-2012-3494
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-Reviewed-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff -r 353bc0801b11 xen/include/asm-x86/debugreg.h
---- a/xen/include/asm-x86/debugreg.h Mon Aug 06 12:28:03 2012 +0100
-+++ b/xen/include/asm-x86/debugreg.h Wed Aug 15 12:00:21 2012 +0100
-@@ -58,7 +58,7 @@
- We can slow the instruction pipeline for instructions coming via the
- gdt or the ldt if we want to. I am not sure why this is an advantage */
-
--#define DR_CONTROL_RESERVED_ZERO (0x0000d800ul) /* Reserved, read as zero */
-+#define DR_CONTROL_RESERVED_ZERO (~0xffff27fful) /* Reserved, read as zero
*/
- #define DR_CONTROL_RESERVED_ONE (0x00000400ul) /* Reserved, read as one */
- #define DR_LOCAL_EXACT_ENABLE (0x00000100ul) /* Local exact enable */
- #define DR_GLOBAL_EXACT_ENABLE (0x00000200ul) /* Global exact enable */
diff --git a/utils/xen/xsa-13.patch b/utils/xen/xsa-13.patch
deleted file mode 100644
index 35c4715..0000000
--- a/utils/xen/xsa-13.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-xen: handle out-of-pirq condition correctly in PHYSDEVOP_get_free_pirq
-
-This is XSA-13 / CVE-2012-3495
-
-Signed-off-by: Ian Campbell <ian.campbell AT citrix.com>
-Signed-off-by: Jan Beulich <JBeulich AT suse.com>
-
-diff -r 1225aff05dd2 xen/arch/x86/physdev.c
---- a/xen/arch/x86/physdev.c Thu Aug 09 16:48:07 2012 +0100
-+++ b/xen/arch/x86/physdev.c Thu Aug 16 11:07:36 2012 +0100
-@@ -587,11 +587,16 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
- break;
-
- spin_lock(&d->event_lock);
-- out.pirq = get_free_pirq(d, out.type, 0);
-- d->arch.pirq_irq[out.pirq] = PIRQ_ALLOCATED;
-+ ret = get_free_pirq(d, out.type, 0);
-+ if ( ret >= 0 )
-+ d->arch.pirq_irq[ret] = PIRQ_ALLOCATED;
- spin_unlock(&d->event_lock);
-
-- ret = copy_to_guest(arg, &out, 1) ? -EFAULT : 0;
-+ if ( ret >= 0 )
-+ {
-+ out.pirq = ret;
-+ ret = copy_to_guest(arg, &out, 1) ? -EFAULT : 0;
-+ }
-
- rcu_unlock_domain(d);
- break;
diff --git a/utils/xen/xsa-14.patch b/utils/xen/xsa-14.patch
deleted file mode 100644
index cd185b3..0000000
--- a/utils/xen/xsa-14.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-xen: Don't BUG_ON() PoD operations on a non-translated guest.
-
-This is XSA-14 / CVE-2012-3496
-
-Signed-off-by: Tim Deegan <tim AT xen.org>
-Reviewed-by: Ian Campbell <ian.campbell AT citrix.com>
-Tested-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff -r 6779ddca8593 -r 8ebda5388e4e xen/arch/x86/mm/p2m.c
---- a/xen/arch/x86/mm/p2m.c Wed Sep 05 12:28:17 2012 +0100
-+++ b/xen/arch/x86/mm/p2m.c Wed Sep 05 12:29:05 2012 +0100
-@@ -2414,7 +2414,8 @@ guest_physmap_mark_populate_on_demand(st
- int pod_count = 0;
- int rc = 0;
-
-- BUG_ON(!paging_mode_translate(d));
-+ if ( !paging_mode_translate(d) )
-+ return -EINVAL;
-
- rc = gfn_check_limit(d, gfn, order);
- if ( rc != 0 )
-
diff --git a/utils/xen/xsa-16.patch b/utils/xen/xsa-16.patch
deleted file mode 100644
index d9662d8..0000000
--- a/utils/xen/xsa-16.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-x86/pvhvm: properly range-check PHYSDEVOP_map_pirq/MAP_PIRQ_TYPE_GSI
-
-This is being used as a array index, and hence must be validated before
-use.
-
-This is XSA-16 / CVE-2012-3498.
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-
-diff -r 1225aff05dd2 xen/arch/x86/physdev.c
---- a/xen/arch/x86/physdev.c Thu Aug 09 16:48:07 2012 +0100
-+++ b/xen/arch/x86/physdev.c Thu Aug 16 13:03:36 2012 +0100
-@@ -40,11 +40,18 @@ static int physdev_hvm_map_pirq(
- struct hvm_girq_dpci_mapping *girq;
- uint32_t machine_gsi = 0;
-
-+ if ( map->index < 0 || map->index >= NR_HVM_IRQS )
-+ {
-+ ret = -EINVAL;
-+ break;
-+ }
-+
- /* find the machine gsi corresponding to the
- * emulated gsi */
- hvm_irq_dpci = domain_get_irq_dpci(d);
- if ( hvm_irq_dpci )
- {
-+ BUILD_BUG_ON(ARRAY_SIZE(hvm_irq_dpci->girq) < NR_HVM_IRQS);
- list_for_each_entry ( girq,
- &hvm_irq_dpci->girq[map->index],
- list )
diff --git a/utils/xen/xsa-17.patch b/utils/xen/xsa-17.patch
deleted file mode 100644
index 9aa28e0..0000000
--- a/utils/xen/xsa-17.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-console: bounds check whenever changing the cursor due to an escape code
-
-This is XSA-17 / CVE-2012-3515
-
-Signed-off-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff --git a/console.c b/console.c
-index 5e6e3d0..9984d6f 100644
---- a/tools/ioemu-qemu-xen/console.c
-+++ b/tools/ioemu-qemu-xen/console.c
-@@ -794,6 +794,26 @@ static void console_clear_xy(TextConsole *s, int x, int
y)
- update_xy(s, x, y);
- }
-
-+/* set cursor, checking bounds */
-+static void set_cursor(TextConsole *s, int x, int y)
-+{
-+ if (x < 0) {
-+ x = 0;
-+ }
-+ if (y < 0) {
-+ y = 0;
-+ }
-+ if (y >= s->height) {
-+ y = s->height - 1;
-+ }
-+ if (x >= s->width) {
-+ x = s->width - 1;
-+ }
-+
-+ s->x = x;
-+ s->y = y;
-+}
-+
- static void console_putchar(TextConsole *s, int ch)
- {
- TextCell *c;
-@@ -869,7 +889,8 @@ static void console_putchar(TextConsole *s, int ch)
- s->esc_params[s->nb_esc_params] * 10 + ch - '0';
- }
- } else {
-- s->nb_esc_params++;
-+ if (s->nb_esc_params < MAX_ESC_PARAMS)
-+ s->nb_esc_params++;
- if (ch == ';')
- break;
- #ifdef DEBUG_CONSOLE
-@@ -883,59 +904,37 @@ static void console_putchar(TextConsole *s, int ch)
- if (s->esc_params[0] == 0) {
- s->esc_params[0] = 1;
- }
-- s->y -= s->esc_params[0];
-- if (s->y < 0) {
-- s->y = 0;
-- }
-+ set_cursor(s, s->x, s->y - s->esc_params[0]);
- break;
- case 'B':
- /* move cursor down */
- if (s->esc_params[0] == 0) {
- s->esc_params[0] = 1;
- }
-- s->y += s->esc_params[0];
-- if (s->y >= s->height) {
-- s->y = s->height - 1;
-- }
-+ set_cursor(s, s->x, s->y + s->esc_params[0]);
- break;
- case 'C':
- /* move cursor right */
- if (s->esc_params[0] == 0) {
- s->esc_params[0] = 1;
- }
-- s->x += s->esc_params[0];
-- if (s->x >= s->width) {
-- s->x = s->width - 1;
-- }
-+ set_cursor(s, s->x + s->esc_params[0], s->y);
- break;
- case 'D':
- /* move cursor left */
- if (s->esc_params[0] == 0) {
- s->esc_params[0] = 1;
- }
-- s->x -= s->esc_params[0];
-- if (s->x < 0) {
-- s->x = 0;
-- }
-+ set_cursor(s, s->x - s->esc_params[0], s->y);
- break;
- case 'G':
- /* move cursor to column */
-- s->x = s->esc_params[0] - 1;
-- if (s->x < 0) {
-- s->x = 0;
-- }
-+ set_cursor(s, s->esc_params[0] - 1, s->y);
- break;
- case 'f':
- case 'H':
- /* move cursor to row, column */
-- s->x = s->esc_params[1] - 1;
-- if (s->x < 0) {
-- s->x = 0;
-- }
-- s->y = s->esc_params[0] - 1;
-- if (s->y < 0) {
-- s->y = 0;
-- }
-+ set_cursor(s, s->esc_params[1] - 1, s->esc_params[0] - 1);
- break;
- case 'J':
- switch (s->esc_params[0]) {
diff --git a/utils/xen/xsa-19.patch b/utils/xen/xsa-19.patch
deleted file mode 100644
index 65b25ca..0000000
--- a/utils/xen/xsa-19.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/ioemu-qemu-xen/vl.c.orig 2012-04-24 21:35:40.000000000 +0400
-+++ tools/ioemu-qemu-xen/vl.c 2012-09-19 14:44:19.190522811 +0400
-@@ -4910,7 +4910,7 @@
- kernel_cmdline = "";
- cyls = heads = secs = 0;
- translation = BIOS_ATA_TRANSLATION_AUTO;
-- monitor_device = "vc:80Cx24C";
-+ monitor_device = "null";
-
- serial_devices[0] = "vc:80Cx24C";
- for(i = 1; i < MAX_SERIAL_PORTS; i++)
diff --git a/utils/xen/xsa-20.patch b/utils/xen/xsa-20.patch
deleted file mode 100644
index bedd318..0000000
--- a/utils/xen/xsa-20.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-VCPU/timers: Prevent overflow in calculations, leading to DoS vulnerability
-
-The timer action for a vcpu periodic timer is to calculate the next
-expiry time, and to reinsert itself into the timer queue. If the
-deadline ends up in the past, Xen never leaves __do_softirq(). The
-affected PCPU will stay in an infinite loop until Xen is killed by the
-watchdog (if enabled).
-
-This is a security problem, XSA-20 / CVE-2012-4535.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3 AT citrix.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff -r 478ba3f146df xen/common/domain.c
---- a/xen/common/domain.c
-+++ b/xen/common/domain.c
-@@ -903,6 +903,9 @@ long do_vcpu_op(int cmd, int vcpuid, XEN
- if ( set.period_ns < MILLISECS(1) )
- return -EINVAL;
-
-+ if ( set.period_ns > STIME_DELTA_MAX )
-+ return -EINVAL;
-+
- v->periodic_period = set.period_ns;
- vcpu_force_reschedule(v);
-
-diff -r 478ba3f146df xen/include/xen/time.h
---- a/xen/include/xen/time.h
-+++ b/xen/include/xen/time.h
-@@ -55,6 +55,8 @@ struct tm gmtime(unsigned long t);
- #define MILLISECS(_ms) ((s_time_t)((_ms) * 1000000ULL))
- #define MICROSECS(_us) ((s_time_t)((_us) * 1000ULL))
- #define STIME_MAX ((s_time_t)((uint64_t)~0ull>>1))
-+/* Chosen so (NOW() + delta) wont overflow without an uptime of 200 years */
-+#define STIME_DELTA_MAX ((s_time_t)((uint64_t)~0ull>>2))
-
- extern void update_vcpu_system_time(struct vcpu *v);
- extern void update_domain_wallclock_time(struct domain *d);
diff --git a/utils/xen/xsa-21.patch b/utils/xen/xsa-21.patch
deleted file mode 100644
index 14158ef..0000000
--- a/utils/xen/xsa-21.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-x86/physdev: Range check pirq parameter from guests
-
-Otherwise Xen will read beyond either end of the struct
-domain.arch.pirq_emuirq array, usually resulting in a fatal page fault.
-
-This vulnerability was introduced by c/s 23241:d21100f1d00e, which adds
-a call to domain_pirq_to_emuirq() which uses the guest provided pirq
-value before range checking it, and was fixed by c/s 23573:584c2e5e03d9
-which changed the behaviour of the domain_pirq_to_emuirq() macro to use
-radix trees instead of a flat array.
-
-This is XSA-21 / CVE-2012-4536.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3 AT citrix.com>
-Acked-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff -r 7a401a73d86d xen/arch/x86/physdev.c
---- a/xen/arch/x86/physdev.c
-+++ b/xen/arch/x86/physdev.c
-@@ -234,6 +234,10 @@ static int physdev_unmap_pirq(struct phy
- if ( ret )
- return ret;
-
-+ ret = -EINVAL;
-+ if ( unmap->pirq < 0 || unmap->pirq >= d->nr_pirqs )
-+ goto free_domain;
-+
- if ( is_hvm_domain(d) )
- {
- spin_lock(&d->event_lock);
diff --git a/utils/xen/xsa-22.patch b/utils/xen/xsa-22.patch
deleted file mode 100644
index bb2b88e..0000000
--- a/utils/xen/xsa-22.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-x86/physmap: Prevent incorrect updates of m2p mappings
-
-In certain conditions, such as low memory, set_p2m_entry() can fail.
-Currently, the p2m and m2p tables will get out of sync because we still
-update the m2p table after the p2m update has failed.
-
-If that happens, subsequent guest-invoked memory operations can cause
-BUG()s and ASSERT()s to kill Xen.
-
-This is fixed by only updating the m2p table iff the p2m was
-successfully updated.
-
-This is a security problem, XSA-22 / CVE-2012-4537.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3 AT citrix.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-diff -r 3a27f4e44b6a xen/arch/x86/mm/p2m.c
---- a/xen/arch/x86/mm/p2m.c
-+++ b/xen/arch/x86/mm/p2m.c
-@@ -2558,7 +2558,10 @@ guest_physmap_add_entry(struct p2m_domai
- if ( mfn_valid(_mfn(mfn)) )
- {
- if ( !set_p2m_entry(p2m, gfn, _mfn(mfn), page_order, t,
p2m->default_access) )
-+ {
- rc = -EINVAL;
-+ goto out; /* Failed to update p2m, bail without updating m2p. */
-+ }
- if ( !p2m_is_grant(t) )
- {
- for ( i = 0; i < (1UL << page_order); i++ )
-@@ -2579,6 +2582,7 @@ guest_physmap_add_entry(struct p2m_domai
- }
- }
-
-+out:
- audit_p2m(p2m, 1);
- p2m_unlock(p2m);
-
diff --git a/utils/xen/xsa-23.patch b/utils/xen/xsa-23.patch
deleted file mode 100644
index 82cb8b9..0000000
--- a/utils/xen/xsa-23.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-xen/mm/shadow: check toplevel pagetables are present before unhooking them.
-
-If the guest has not fully populated its top-level PAE entries when it calls
-HVMOP_pagetable_dying, the shadow code could try to unhook entries from
-MFN 0. Add a check to avoid that case.
-
-This issue was introduced by c/s 21239:b9d2db109cf5.
-
-This is a security problem, XSA-23 / CVE-2012-4538.
-
-Signed-off-by: Tim Deegan <tim AT xen.org>
-Tested-by: Andrew Cooper <andrew.cooper3 AT citrix.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff -r bfd22d40db06 xen/arch/x86/mm/shadow/multi.c
---- a/xen/arch/x86/mm/shadow/multi.c
-+++ b/xen/arch/x86/mm/shadow/multi.c
-@@ -4737,8 +4737,12 @@ static void sh_pagetable_dying(struct vc
- }
- for ( i = 0; i < 4; i++ )
- {
-- if ( fast_path )
-- smfn = _mfn(pagetable_get_pfn(v->arch.shadow_table[i]));
-+ if ( fast_path ) {
-+ if ( pagetable_is_null(v->arch.shadow_table[i]) )
-+ smfn = _mfn(INVALID_MFN);
-+ else
-+ smfn = _mfn(pagetable_get_pfn(v->arch.shadow_table[i]));
-+ }
- else
- {
- /* retrieving the l2s */
diff --git a/utils/xen/xsa-24.patch b/utils/xen/xsa-24.patch
deleted file mode 100644
index e46f513..0000000
--- a/utils/xen/xsa-24.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-compat/gnttab: Prevent infinite loop in compat code
-
-c/s 20281:95ea2052b41b, which introduces Grant Table version 2
-hypercalls introduces a vulnerability whereby the compat hypercall
-handler can fall into an infinite loop.
-
-If the watchdog is enabled, Xen will die after the timeout.
-
-This is a security problem, XSA-24 / CVE-2012-4539.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3 AT citrix.com>
-Acked-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-diff -r bac883cf805a xen/common/compat/grant_table.c
---- a/xen/common/compat/grant_table.c
-+++ b/xen/common/compat/grant_table.c
-@@ -318,6 +318,8 @@ int compat_grant_table_op(unsigned int c
- #undef XLAT_gnttab_get_status_frames_HNDL_frame_list
- if ( unlikely(__copy_to_guest(cmp_uop, &cmp.get_status, 1))
)
- rc = -EFAULT;
-+ else
-+ i = 1;
- }
- break;
- }
diff --git a/utils/xen/xsa-25.patch b/utils/xen/xsa-25.patch
deleted file mode 100644
index f8a9be2..0000000
--- a/utils/xen/xsa-25.patch
+++ /dev/null
@@ -1,461 +0,0 @@
-libxc: builder: limit maximum size of kernel/ramdisk.
-
-Allowing user supplied kernels of arbitrary sizes, especially during
-decompression, can swallow up dom0 memory leading to either virtual
-address space exhaustion in the builder process or allocation
-failures/OOM killing of both toolstack and unrelated processes.
-
-We disable these checks when building in a stub domain for pvgrub
-since this uses the guest's own memory and is isolated.
-
-Decompression of gzip compressed kernels and ramdisks has been safe
-since 14954:58205257517d (Xen 3.1.0 onwards).
-
-This is XSA-25 / CVE-2012-4544.
-
-Also make explicit checks for buffer overflows in various
-decompression routines. These were already ruled out due to other
-properties of the code but check them as a belt-and-braces measure.
-
-Signed-off-by: Ian Campbell <ian.campbell AT citrix.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-[ Includes 25589:60f09d1ab1fe for CVE-2012-2625 ]
-
-diff --git a/stubdom/grub/kexec.c b/stubdom/grub/kexec.c
-index 06bef52..b21c91a 100644
---- a/stubdom/grub/kexec.c
-+++ b/stubdom/grub/kexec.c
-@@ -137,6 +137,10 @@ void kexec(void *kernel, long kernel_size, void
*module, long module_size, char
- dom = xc_dom_allocate(xc_handle, cmdline, features);
- dom->allocate = kexec_allocate;
-
-+ /* We are using guest owned memory, therefore no limits. */
-+ xc_dom_kernel_max_size(dom, 0);
-+ xc_dom_ramdisk_max_size(dom, 0);
-+
- dom->kernel_blob = kernel;
- dom->kernel_size = kernel_size;
-
-diff --git a/tools/libxc/xc_dom.h b/tools/libxc/xc_dom.h
-index e72f066..7043f96 100644
---- a/tools/libxc/xc_dom.h
-+++ b/tools/libxc/xc_dom.h
-@@ -52,6 +52,9 @@ struct xc_dom_image {
- void *ramdisk_blob;
- size_t ramdisk_size;
-
-+ size_t max_kernel_size;
-+ size_t max_ramdisk_size;
-+
- /* arguments and parameters */
- char *cmdline;
- uint32_t f_requested[XENFEAT_NR_SUBMAPS];
-@@ -175,6 +178,23 @@ void xc_dom_release_phys(struct xc_dom_image *dom);
- void xc_dom_release(struct xc_dom_image *dom);
- int xc_dom_mem_init(struct xc_dom_image *dom, unsigned int mem_mb);
-
-+/* Set this larger if you have enormous ramdisks/kernels. Note that
-+ * you should trust all kernels not to be maliciously large (e.g. to
-+ * exhaust all dom0 memory) if you do this (see CVE-2012-4544 /
-+ * XSA-25). You can also set the default independently for
-+ * ramdisks/kernels in xc_dom_allocate() or call
-+ * xc_dom_{kernel,ramdisk}_max_size.
-+ */
-+#ifndef XC_DOM_DECOMPRESS_MAX
-+#define XC_DOM_DECOMPRESS_MAX (1024*1024*1024) /* 1GB */
-+#endif
-+
-+int xc_dom_kernel_check_size(struct xc_dom_image *dom, size_t sz);
-+int xc_dom_kernel_max_size(struct xc_dom_image *dom, size_t sz);
-+
-+int xc_dom_ramdisk_check_size(struct xc_dom_image *dom, size_t sz);
-+int xc_dom_ramdisk_max_size(struct xc_dom_image *dom, size_t sz);
-+
- size_t xc_dom_check_gzip(xc_interface *xch,
- void *blob, size_t ziplen);
- int xc_dom_do_gunzip(xc_interface *xch,
-@@ -224,7 +244,8 @@ void xc_dom_log_memory_footprint(struct xc_dom_image
*dom);
- void *xc_dom_malloc(struct xc_dom_image *dom, size_t size);
- void *xc_dom_malloc_page_aligned(struct xc_dom_image *dom, size_t size);
- void *xc_dom_malloc_filemap(struct xc_dom_image *dom,
-- const char *filename, size_t * size);
-+ const char *filename, size_t * size,
-+ const size_t max_size);
- char *xc_dom_strdup(struct xc_dom_image *dom, const char *str);
-
- /* --- alloc memory pool ------------------------------------------- */
-diff --git a/tools/libxc/xc_dom_bzimageloader.c
b/tools/libxc/xc_dom_bzimageloader.c
-index 9852e67..73cfad1 100644
---- a/tools/libxc/xc_dom_bzimageloader.c
-+++ b/tools/libxc/xc_dom_bzimageloader.c
-@@ -47,13 +47,19 @@ static int xc_try_bzip2_decode(
- char *out_buf;
- char *tmp_buf;
- int retval = -1;
-- int outsize;
-+ unsigned int outsize;
- uint64_t total;
-
- stream.bzalloc = NULL;
- stream.bzfree = NULL;
- stream.opaque = NULL;
-
-+ if ( dom->kernel_size == 0)
-+ {
-+ DOMPRINTF("BZIP2: Input is 0 size");
-+ return -1;
-+ }
-+
- ret = BZ2_bzDecompressInit(&stream, 0, 0);
- if ( ret != BZ_OK )
- {
-@@ -66,6 +72,17 @@ static int xc_try_bzip2_decode(
- * the input buffer to start, and we'll realloc as needed.
- */
- outsize = dom->kernel_size;
-+
-+ /*
-+ * stream.avail_in and outsize are unsigned int, while kernel_size
-+ * is a size_t. Check we aren't overflowing.
-+ */
-+ if ( outsize != dom->kernel_size )
-+ {
-+ DOMPRINTF("BZIP2: Input too large");
-+ goto bzip2_cleanup;
-+ }
-+
- out_buf = malloc(outsize);
- if ( out_buf == NULL )
- {
-@@ -98,13 +115,20 @@ static int xc_try_bzip2_decode(
- if ( stream.avail_out == 0 )
- {
- /* Protect against output buffer overflow */
-- if ( outsize > INT_MAX / 2 )
-+ if ( outsize > UINT_MAX / 2 )
- {
- DOMPRINTF("BZIP2: output buffer overflow");
- free(out_buf);
- goto bzip2_cleanup;
- }
-
-+ if ( xc_dom_kernel_check_size(dom, outsize * 2) )
-+ {
-+ DOMPRINTF("BZIP2: output too large");
-+ free(out_buf);
-+ goto bzip2_cleanup;
-+ }
-+
- tmp_buf = realloc(out_buf, outsize * 2);
- if ( tmp_buf == NULL )
- {
-@@ -172,9 +196,15 @@ static int xc_try_lzma_decode(
- unsigned char *out_buf;
- unsigned char *tmp_buf;
- int retval = -1;
-- int outsize;
-+ size_t outsize;
- const char *msg;
-
-+ if ( dom->kernel_size == 0)
-+ {
-+ DOMPRINTF("LZMA: Input is 0 size");
-+ return -1;
-+ }
-+
- ret = lzma_alone_decoder(&stream, 128*1024*1024);
- if ( ret != LZMA_OK )
- {
-@@ -251,13 +281,20 @@ static int xc_try_lzma_decode(
- if ( stream.avail_out == 0 )
- {
- /* Protect against output buffer overflow */
-- if ( outsize > INT_MAX / 2 )
-+ if ( outsize > SIZE_MAX / 2 )
- {
- DOMPRINTF("LZMA: output buffer overflow");
- free(out_buf);
- goto lzma_cleanup;
- }
-
-+ if ( xc_dom_kernel_check_size(dom, outsize * 2) )
-+ {
-+ DOMPRINTF("LZMA: output too large");
-+ free(out_buf);
-+ goto lzma_cleanup;
-+ }
-+
- tmp_buf = realloc(out_buf, outsize * 2);
- if ( tmp_buf == NULL )
- {
-@@ -327,6 +364,12 @@ static int xc_try_lzo1x_decode(
- 0x89, 0x4c, 0x5a, 0x4f, 0x00, 0x0d, 0x0a, 0x1a, 0x0a
- };
-
-+ /*
-+ * lzo_uint should match size_t. Check that this is the case to be
-+ * sure we won't overflow various lzo_uint fields.
-+ */
-+ XC_BUILD_BUG_ON(sizeof(lzo_uint) != sizeof(size_t));
-+
- ret = lzo_init();
- if ( ret != LZO_E_OK )
- {
-@@ -406,6 +449,14 @@ static int xc_try_lzo1x_decode(
- if ( src_len <= 0 || src_len > dst_len || src_len > left )
- break;
-
-+ msg = "Output buffer overflow";
-+ if ( *size > SIZE_MAX - dst_len )
-+ break;
-+
-+ msg = "Decompressed image too large";
-+ if ( xc_dom_kernel_check_size(dom, *size + dst_len) )
-+ break;
-+
- msg = "Failed to (re)alloc memory";
- tmp_buf = realloc(out_buf, *size + dst_len);
- if ( tmp_buf == NULL )
-diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
-index fea9de5..2a01d7c 100644
---- a/tools/libxc/xc_dom_core.c
-+++ b/tools/libxc/xc_dom_core.c
-@@ -159,7 +159,8 @@ void *xc_dom_malloc_page_aligned(struct xc_dom_image
*dom, size_t size)
- }
-
- void *xc_dom_malloc_filemap(struct xc_dom_image *dom,
-- const char *filename, size_t * size)
-+ const char *filename, size_t * size,
-+ const size_t max_size)
- {
- struct xc_dom_mem *block = NULL;
- int fd = -1;
-@@ -171,6 +172,13 @@ void *xc_dom_malloc_filemap(struct xc_dom_image *dom,
- lseek(fd, 0, SEEK_SET);
- *size = lseek(fd, 0, SEEK_END);
-
-+ if ( max_size && *size > max_size )
-+ {
-+ xc_dom_panic(dom->xch, XC_OUT_OF_MEMORY,
-+ "tried to map file which is too large");
-+ goto err;
-+ }
-+
- block = malloc(sizeof(*block));
- if ( block == NULL )
- goto err;
-@@ -222,6 +230,40 @@ char *xc_dom_strdup(struct xc_dom_image *dom, const
char *str)
- }
-
- /* ------------------------------------------------------------------------
*/
-+/* decompression buffer sizing
*/
-+int xc_dom_kernel_check_size(struct xc_dom_image *dom, size_t sz)
-+{
-+ /* No limit */
-+ if ( !dom->max_kernel_size )
-+ return 0;
-+
-+ if ( sz > dom->max_kernel_size )
-+ {
-+ xc_dom_panic(dom->xch, XC_INVALID_KERNEL,
-+ "kernel image too large");
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+int xc_dom_ramdisk_check_size(struct xc_dom_image *dom, size_t sz)
-+{
-+ /* No limit */
-+ if ( !dom->max_ramdisk_size )
-+ return 0;
-+
-+ if ( sz > dom->max_ramdisk_size )
-+ {
-+ xc_dom_panic(dom->xch, XC_INVALID_KERNEL,
-+ "ramdisk image too large");
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+/* ------------------------------------------------------------------------
*/
- /* read files, copy memory blocks, with transparent gunzip
*/
-
- size_t xc_dom_check_gzip(xc_interface *xch, void *blob, size_t ziplen)
-@@ -235,7 +277,7 @@ size_t xc_dom_check_gzip(xc_interface *xch, void *blob,
size_t ziplen)
-
- gzlen = blob + ziplen - 4;
- unziplen = gzlen[3] << 24 | gzlen[2] << 16 | gzlen[1] << 8 | gzlen[0];
-- if ( (unziplen < 0) || (unziplen > (1024*1024*1024)) ) /* 1GB limit */
-+ if ( (unziplen < 0) || (unziplen > XC_DOM_DECOMPRESS_MAX) )
- {
- xc_dom_printf
- (xch,
-@@ -288,6 +330,9 @@ int xc_dom_try_gunzip(struct xc_dom_image *dom, void
**blob, size_t * size)
- if ( unziplen == 0 )
- return 0;
-
-+ if ( xc_dom_kernel_check_size(dom, unziplen) )
-+ return 0;
-+
- unzip = xc_dom_malloc(dom, unziplen);
- if ( unzip == NULL )
- return -1;
-@@ -588,6 +633,9 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
- memset(dom, 0, sizeof(*dom));
- dom->xch = xch;
-
-+ dom->max_kernel_size = XC_DOM_DECOMPRESS_MAX;
-+ dom->max_ramdisk_size = XC_DOM_DECOMPRESS_MAX;
-+
- if ( cmdline )
- dom->cmdline = xc_dom_strdup(dom, cmdline);
- if ( features )
-@@ -608,10 +656,25 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
- return NULL;
- }
-
-+int xc_dom_kernel_max_size(struct xc_dom_image *dom, size_t sz)
-+{
-+ DOMPRINTF("%s: kernel_max_size=%zx", __FUNCTION__, sz);
-+ dom->max_kernel_size = sz;
-+ return 0;
-+}
-+
-+int xc_dom_ramdisk_max_size(struct xc_dom_image *dom, size_t sz)
-+{
-+ DOMPRINTF("%s: ramdisk_max_size=%zx", __FUNCTION__, sz);
-+ dom->max_ramdisk_size = sz;
-+ return 0;
-+}
-+
- int xc_dom_kernel_file(struct xc_dom_image *dom, const char *filename)
- {
- DOMPRINTF("%s: filename=\"%s\"", __FUNCTION__, filename);
-- dom->kernel_blob = xc_dom_malloc_filemap(dom, filename,
&dom->kernel_size);
-+ dom->kernel_blob = xc_dom_malloc_filemap(dom, filename,
&dom->kernel_size,
-+ dom->max_kernel_size);
- if ( dom->kernel_blob == NULL )
- return -1;
- return xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size);
-@@ -621,7 +684,9 @@ int xc_dom_ramdisk_file(struct xc_dom_image *dom, const
char *filename)
- {
- DOMPRINTF("%s: filename=\"%s\"", __FUNCTION__, filename);
- dom->ramdisk_blob =
-- xc_dom_malloc_filemap(dom, filename, &dom->ramdisk_size);
-+ xc_dom_malloc_filemap(dom, filename, &dom->ramdisk_size,
-+ dom->max_ramdisk_size);
-+
- if ( dom->ramdisk_blob == NULL )
- return -1;
- // return xc_dom_try_gunzip(dom, &dom->ramdisk_blob, &dom->ramdisk_size);
-@@ -781,7 +846,11 @@ int xc_dom_build_image(struct xc_dom_image *dom)
- void *ramdiskmap;
-
- unziplen = xc_dom_check_gzip(dom->xch, dom->ramdisk_blob,
dom->ramdisk_size);
-+ if ( xc_dom_ramdisk_check_size(dom, unziplen) != 0 )
-+ unziplen = 0;
-+
- ramdisklen = unziplen ? unziplen : dom->ramdisk_size;
-+
- if ( xc_dom_alloc_segment(dom, &dom->ramdisk_seg, "ramdisk", 0,
- ramdisklen) != 0 )
- goto err;
-diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub
-index 17c0083..1a3c1c3 100644
---- a/tools/pygrub/src/pygrub
-+++ b/tools/pygrub/src/pygrub
-@@ -28,6 +28,7 @@ import grub.LiloConf
- import grub.ExtLinuxConf
-
- PYGRUB_VER = 0.6
-+FS_READ_MAX = 1024 * 1024
-
- def enable_cursor(ison):
- if ison:
-@@ -421,7 +422,8 @@ class Grub:
- if self.__dict__.get('cf', None) is None:
- raise RuntimeError, "couldn't find bootloader config file in
the image provided."
- f = fs.open_file(self.cf.filename)
-- buf = f.read()
-+ # limit read size to avoid pathological cases
-+ buf = f.read(FS_READ_MAX)
- del f
- self.cf.parse(buf)
-
-@@ -670,6 +672,37 @@ if __name__ == "__main__":
- def usage():
- print >> sys.stderr, "Usage: %s [-q|--quiet] [-i|--interactive]
[-n|--not-really] [--output=] [--kernel=] [--ramdisk=] [--args=] [--entry=]
[--output-directory=] [--output-format=sxp|simple|simple0] <image>"
%(sys.argv[0],)
-
-+ def copy_from_image(fs, file_to_read, file_type, output_directory,
-+ not_really):
-+ if not_really:
-+ if fs.file_exists(file_to_read):
-+ return "<%s:%s>" % (file_type, file_to_read)
-+ else:
-+ sys.exit("The requested %s file does not exist" % file_type)
-+ try:
-+ datafile = fs.open_file(file_to_read)
-+ except Exception, e:
-+ print >>sys.stderr, e
-+ sys.exit("Error opening %s in guest" % file_to_read)
-+ (tfd, ret) = tempfile.mkstemp(prefix="boot_"+file_type+".",
-+ dir=output_directory)
-+ dataoff = 0
-+ while True:
-+ data = datafile.read(FS_READ_MAX, dataoff)
-+ if len(data) == 0:
-+ os.close(tfd)
-+ del datafile
-+ return ret
-+ try:
-+ os.write(tfd, data)
-+ except Exception, e:
-+ print >>sys.stderr, e
-+ os.close(tfd)
-+ os.unlink(ret)
-+ del datafile
-+ sys.exit("Error writing temporary copy of "+file_type)
-+ dataoff += len(data)
-+
- try:
- opts, args = getopt.gnu_getopt(sys.argv[1:], 'qinh::',
- ["quiet", "interactive", "not-really",
"help",
-@@ -786,24 +819,18 @@ if __name__ == "__main__":
- if not fs:
- raise RuntimeError, "Unable to find partition containing kernel"
-
-- if not_really:
-- bootcfg["kernel"] = "<kernel:%s>" % chosencfg["kernel"]
-- else:
-- data = fs.open_file(chosencfg["kernel"]).read()
-- (tfd, bootcfg["kernel"]) = tempfile.mkstemp(prefix="boot_kernel.",
-- dir=output_directory)
-- os.write(tfd, data)
-- os.close(tfd)
-+ bootcfg["kernel"] = copy_from_image(fs, chosencfg["kernel"], "kernel",
-+ output_directory, not_really)
-
- if chosencfg["ramdisk"]:
-- if not_really:
-- bootcfg["ramdisk"] = "<ramdisk:%s>" % chosencfg["ramdisk"]
-- else:
-- data = fs.open_file(chosencfg["ramdisk"],).read()
-- (tfd, bootcfg["ramdisk"]) = tempfile.mkstemp(
-- prefix="boot_ramdisk.", dir=output_directory)
-- os.write(tfd, data)
-- os.close(tfd)
-+ try:
-+ bootcfg["ramdisk"] = copy_from_image(fs, chosencfg["ramdisk"],
-+ "ramdisk",
output_directory,
-+ not_really)
-+ except:
-+ if not not_really:
-+ os.unlink(bootcfg["kernel"])
-+ raise
- else:
- initrd = None
-
diff --git a/utils/xen/xsa-26.patch b/utils/xen/xsa-26.patch
deleted file mode 100644
index e8b8e7d..0000000
--- a/utils/xen/xsa-26.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-gnttab: fix releasing of memory upon switches between versions
-
-gnttab_unpopulate_status_frames() incompletely freed the pages
-previously used as status frame in that they did not get removed from
-the domain's xenpage_list, thus causing subsequent list corruption
-when those pages did get allocated again for the same or another purpose.
-
-Similarly, grant_table_create() and gnttab_grow_table() both improperly
-clean up in the event of an error - pages already shared with the guest
-can't be freed by just passing them to free_xenheap_page(). Fix this by
-sharing the pages only after all allocations succeeded.
-
-This is CVE-2012-5510 / XSA-26.
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
-index 6c0aa6f..a180aef 100644
---- a/xen/common/grant_table.c
-+++ b/xen/common/grant_table.c
-@@ -1126,12 +1126,13 @@ fault:
- }
-
- static int
--gnttab_populate_status_frames(struct domain *d, struct grant_table *gt)
-+gnttab_populate_status_frames(struct domain *d, struct grant_table *gt,
-+ unsigned int req_nr_frames)
- {
- unsigned i;
- unsigned req_status_frames;
-
-- req_status_frames = grant_to_status_frames(gt->nr_grant_frames);
-+ req_status_frames = grant_to_status_frames(req_nr_frames);
- for ( i = nr_status_frames(gt); i < req_status_frames; i++ )
- {
- if ( (gt->status[i] = alloc_xenheap_page()) == NULL )
-@@ -1162,7 +1163,12 @@ gnttab_unpopulate_status_frames(struct domain *d,
struct grant_table *gt)
-
- for ( i = 0; i < nr_status_frames(gt); i++ )
- {
-- page_set_owner(virt_to_page(gt->status[i]), dom_xen);
-+ struct page_info *pg = virt_to_page(gt->status[i]);
-+
-+ BUG_ON(page_get_owner(pg) != d);
-+ if ( test_and_clear_bit(_PGC_allocated, &pg->count_info) )
-+ put_page(pg);
-+ BUG_ON(pg->count_info & ~PGC_xen_heap);
- free_xenheap_page(gt->status[i]);
- gt->status[i] = NULL;
- }
-@@ -1200,19 +1206,18 @@ gnttab_grow_table(struct domain *d, unsigned int
req_nr_frames)
- clear_page(gt->shared_raw[i]);
- }
-
-- /* Share the new shared frames with the recipient domain */
-- for ( i = nr_grant_frames(gt); i < req_nr_frames; i++ )
-- gnttab_create_shared_page(d, gt, i);
--
-- gt->nr_grant_frames = req_nr_frames;
--
- /* Status pages - version 2 */
- if (gt->gt_version > 1)
- {
-- if ( gnttab_populate_status_frames(d, gt) )
-+ if ( gnttab_populate_status_frames(d, gt, req_nr_frames) )
- goto shared_alloc_failed;
- }
-
-+ /* Share the new shared frames with the recipient domain */
-+ for ( i = nr_grant_frames(gt); i < req_nr_frames; i++ )
-+ gnttab_create_shared_page(d, gt, i);
-+ gt->nr_grant_frames = req_nr_frames;
-+
- return 1;
-
- shared_alloc_failed:
-@@ -2134,7 +2139,7 @@
gnttab_set_version(XEN_GUEST_HANDLE(gnttab_set_version_t uop))
-
- if ( op.version == 2 && gt->gt_version < 2 )
- {
-- res = gnttab_populate_status_frames(d, gt);
-+ res = gnttab_populate_status_frames(d, gt, nr_grant_frames(gt));
- if ( res < 0)
- goto out_unlock;
- }
-@@ -2449,9 +2454,6 @@ grant_table_create(
- clear_page(t->shared_raw[i]);
- }
-
-- for ( i = 0; i < INITIAL_NR_GRANT_FRAMES; i++ )
-- gnttab_create_shared_page(d, t, i);
--
- /* Status pages for grant table - for version 2 */
- t->status = xmalloc_array(grant_status_t *,
- grant_to_status_frames(max_nr_grant_frames));
-@@ -2459,6 +2461,10 @@ grant_table_create(
- goto no_mem_4;
- memset(t->status, 0,
- grant_to_status_frames(max_nr_grant_frames) *
sizeof(t->status[0]));
-+
-+ for ( i = 0; i < INITIAL_NR_GRANT_FRAMES; i++ )
-+ gnttab_create_shared_page(d, t, i);
-+
- t->nr_status_frames = 0;
-
- /* Okay, install the structure. */
diff --git a/utils/xen/xsa-27.patch b/utils/xen/xsa-27.patch
deleted file mode 100644
index f0764cb..0000000
--- a/utils/xen/xsa-27.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-hvm: Limit the size of large HVM op batches
-
-Doing large p2m updates for HVMOP_track_dirty_vram without preemption
-ties up the physical processor. Integrating preemption into the p2m
-updates is hard so simply limit to 1GB which is sufficient for a 15000
-* 15000 * 32bpp framebuffer.
-
-For HVMOP_modified_memory and HVMOP_set_mem_type preemptible add the
-necessary machinery to handle preemption.
-
-This is CVE-2012-5511 / XSA-27.
-
-Signed-off-by: Tim Deegan <tim AT xen.org>
-Signed-off-by: Ian Campbell <ian.campbell AT citrix.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-x86/paging: Don't allocate user-controlled amounts of stack memory.
-
-This is XSA-27 / CVE-2012-5511.
-
-Signed-off-by: Tim Deegan <tim AT xen.org>
-Acked-by: Jan Beulich <jbeulich AT suse.com>
-v2: Provide definition of GB to fix x86-32 compile.
-
-Signed-off-by: Jan Beulich <JBeulich AT suse.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-
-diff -r 5639047d6c9f xen/arch/x86/hvm/hvm.c
---- a/xen/arch/x86/hvm/hvm.c Mon Nov 19 09:43:48 2012 +0100
-+++ b/xen/arch/x86/hvm/hvm.c Mon Nov 19 16:00:33 2012 +0000
-@@ -3471,6 +3471,9 @@ long do_hvm_op(unsigned long op, XEN_GUE
- if ( !is_hvm_domain(d) )
- goto param_fail2;
-
-+ if ( a.nr > GB(1) >> PAGE_SHIFT )
-+ goto param_fail2;
-+
- rc = xsm_hvm_param(d, op);
- if ( rc )
- goto param_fail2;
-@@ -3498,7 +3501,6 @@ long do_hvm_op(unsigned long op, XEN_GUE
- struct xen_hvm_modified_memory a;
- struct domain *d;
- struct p2m_domain *p2m;
-- unsigned long pfn;
-
- if ( copy_from_guest(&a, arg, 1) )
- return -EFAULT;
-@@ -3526,8 +3528,9 @@ long do_hvm_op(unsigned long op, XEN_GUE
- goto param_fail3;
-
- p2m = p2m_get_hostp2m(d);
-- for ( pfn = a.first_pfn; pfn < a.first_pfn + a.nr; pfn++ )
-+ while ( a.nr > 0 )
- {
-+ unsigned long pfn = a.first_pfn;
- p2m_type_t t;
- mfn_t mfn = gfn_to_mfn(p2m, pfn, &t);
- if ( p2m_is_paging(t) )
-@@ -3548,6 +3551,19 @@ long do_hvm_op(unsigned long op, XEN_GUE
- /* don't take a long time and don't die either */
- sh_remove_shadows(d->vcpu[0], mfn, 1, 0);
- }
-+
-+ a.first_pfn++;
-+ a.nr--;
-+
-+ /* Check for continuation if it's not the last interation */
-+ if ( a.nr > 0 && hypercall_preempt_check() )
-+ {
-+ if ( copy_to_guest(arg, &a, 1) )
-+ rc = -EFAULT;
-+ else
-+ rc = -EAGAIN;
-+ break;
-+ }
- }
-
- param_fail3:
-@@ -3595,7 +3611,6 @@ long do_hvm_op(unsigned long op, XEN_GUE
- struct xen_hvm_set_mem_type a;
- struct domain *d;
- struct p2m_domain *p2m;
-- unsigned long pfn;
-
- /* Interface types to internal p2m types */
- p2m_type_t memtype[] = {
-@@ -3625,8 +3640,9 @@ long do_hvm_op(unsigned long op, XEN_GUE
- goto param_fail4;
-
- p2m = p2m_get_hostp2m(d);
-- for ( pfn = a.first_pfn; pfn < a.first_pfn + a.nr; pfn++ )
-+ while ( a.nr > 0 )
- {
-+ unsigned long pfn = a.first_pfn;
- p2m_type_t t;
- p2m_type_t nt;
- mfn_t mfn;
-@@ -3662,6 +3678,19 @@ long do_hvm_op(unsigned long op, XEN_GUE
- goto param_fail4;
- }
- }
-+
-+ a.first_pfn++;
-+ a.nr--;
-+
-+ /* Check for continuation if it's not the last interation */
-+ if ( a.nr > 0 && hypercall_preempt_check() )
-+ {
-+ if ( copy_to_guest(arg, &a, 1) )
-+ rc = -EFAULT;
-+ else
-+ rc = -EAGAIN;
-+ goto param_fail4;
-+ }
- }
-
- rc = 0;
-diff -r 5639047d6c9f xen/arch/x86/mm/paging.c
---- a/xen/arch/x86/mm/paging.c Mon Nov 19 09:43:48 2012 +0100
-+++ b/xen/arch/x86/mm/paging.c Mon Nov 19 16:00:33 2012 +0000
-@@ -529,13 +529,18 @@ int paging_log_dirty_range(struct domain
-
- if ( !d->arch.paging.log_dirty.fault_count &&
- !d->arch.paging.log_dirty.dirty_count ) {
-- int size = (nr + BITS_PER_LONG - 1) / BITS_PER_LONG;
-- unsigned long zeroes[size];
-- memset(zeroes, 0x00, size * BYTES_PER_LONG);
-+ static uint8_t zeroes[PAGE_SIZE];
-+ int off, size;
-+
-+ size = ((nr + BITS_PER_LONG - 1) / BITS_PER_LONG) * sizeof (long);
- rv = 0;
-- if ( copy_to_guest_offset(dirty_bitmap, 0, (uint8_t *) zeroes,
-- size * BYTES_PER_LONG) != 0 )
-- rv = -EFAULT;
-+ for ( off = 0; !rv && off < size; off += sizeof zeroes )
-+ {
-+ int todo = min(size - off, (int) PAGE_SIZE);
-+ if ( copy_to_guest_offset(dirty_bitmap, off, zeroes, todo) )
-+ rv = -EFAULT;
-+ off += todo;
-+ }
- goto out;
- }
- d->arch.paging.log_dirty.fault_count = 0;
-diff -r 5639047d6c9f xen/include/asm-x86/config.h
---- a/xen/include/asm-x86/config.h Mon Nov 19 09:43:48 2012 +0100
-+++ b/xen/include/asm-x86/config.h Mon Nov 19 16:00:33 2012 +0000
-@@ -108,6 +108,9 @@ extern unsigned int trampoline_xen_phys_
- extern unsigned char trampoline_cpu_started;
- extern char wakeup_start[];
- extern unsigned int video_mode, video_flags;
-+
-+#define GB(_gb) (_gb ## UL << 30)
-+
- #endif
-
- #define asmlinkage
-@@ -123,7 +126,6 @@ extern unsigned int video_mode, video_fl
- #define PML4_ADDR(_slot) \
- ((((_slot ## UL) >> 8) * 0xffff000000000000UL) | \
- (_slot ## UL << PML4_ENTRY_BITS))
--#define GB(_gb) (_gb ## UL << 30)
- #else
- #define PML4_ENTRY_BYTES (1 << PML4_ENTRY_BITS)
- #define PML4_ADDR(_slot) \
diff --git a/utils/xen/xsa-28.patch b/utils/xen/xsa-28.patch
deleted file mode 100644
index fe4638e..0000000
--- a/utils/xen/xsa-28.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-x86/HVM: range check xen_hvm_set_mem_access.hvmmem_access before use
-
-Otherwise an out of bounds array access can happen if changing the
-default access is being requested, which - if it doesn't crash Xen -
-would subsequently allow reading arbitrary memory through
-HVMOP_get_mem_access (again, unless that operation crashes Xen).
-
-This is XSA-28 / CVE-2012-5512.
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Tim Deegan <tim AT xen.org>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 66cf805..08b6418 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -3699,7 +3699,7 @@ long do_hvm_op(unsigned long op,
XEN_GUEST_HANDLE(void) arg)
- return rc;
-
- rc = -EINVAL;
-- if ( !is_hvm_domain(d) )
-+ if ( !is_hvm_domain(d) || a.hvmmem_access >= ARRAY_SIZE(memaccess) )
- goto param_fail5;
-
- p2m = p2m_get_hostp2m(d);
-@@ -3719,9 +3719,6 @@ long do_hvm_op(unsigned long op,
XEN_GUEST_HANDLE(void) arg)
- ((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d)) )
- goto param_fail5;
-
-- if ( a.hvmmem_access >= ARRAY_SIZE(memaccess) )
-- goto param_fail5;
--
- for ( pfn = a.first_pfn; pfn < a.first_pfn + a.nr; pfn++ )
- {
- p2m_type_t t;
diff --git a/utils/xen/xsa-29.patch b/utils/xen/xsa-29.patch
deleted file mode 100644
index f8f6e38..0000000
--- a/utils/xen/xsa-29.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-xen: add missing guest address range checks to XENMEM_exchange handlers
-
-Ever since its existence (3.0.3 iirc) the handler for this has been
-using non address range checking guest memory accessors (i.e.
-the ones prefixed with two underscores) without first range
-checking the accessed space (via guest_handle_okay()), allowing
-a guest to access and overwrite hypervisor memory.
-
-This is XSA-29 / CVE-2012-5513.
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
-index 2402984..1d877fc 100644
---- a/xen/common/compat/memory.c
-+++ b/xen/common/compat/memory.c
-@@ -114,6 +114,12 @@ int compat_memory_op(unsigned int cmd,
XEN_GUEST_HANDLE(void) compat)
- (cmp.xchg.out.nr_extents << cmp.xchg.out.extent_order)) )
- return -EINVAL;
-
-+ if ( !compat_handle_okay(cmp.xchg.in.extent_start,
-+ cmp.xchg.in.nr_extents) ||
-+ !compat_handle_okay(cmp.xchg.out.extent_start,
-+ cmp.xchg.out.nr_extents) )
-+ return -EFAULT;
-+
- start_extent = cmp.xchg.nr_exchanged;
- end_extent = (COMPAT_ARG_XLAT_SIZE - sizeof(*nat.xchg)) /
- (((1U << ABS(order_delta)) + 1) *
-diff --git a/xen/common/memory.c b/xen/common/memory.c
-index 4e7c234..59379d3 100644
---- a/xen/common/memory.c
-+++ b/xen/common/memory.c
-@@ -289,6 +289,13 @@ static long
memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
- goto fail_early;
- }
-
-+ if ( !guest_handle_okay(exch.in.extent_start, exch.in.nr_extents) ||
-+ !guest_handle_okay(exch.out.extent_start, exch.out.nr_extents) )
-+ {
-+ rc = -EFAULT;
-+ goto fail_early;
-+ }
-+
- /* Only privileged guests can allocate multi-page contiguous extents. */
- if ( !multipage_allocation_permitted(current->domain,
- exch.in.extent_order) ||
diff --git a/utils/xen/xsa-30.patch b/utils/xen/xsa-30.patch
deleted file mode 100644
index 817879a..0000000
--- a/utils/xen/xsa-30.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-xen: fix error handling of guest_physmap_mark_populate_on_demand()
-
-The only user of the "out" label bypasses a necessary unlock, thus
-enabling the caller to lock up Xen.
-
-Also, the function was never meant to be called by a guest for itself,
-so rather than inspecting the code paths in depth for potential other
-problems this might cause, and adjusting e.g. the non-guest printk()
-in the above error path, just disallow the guest access to it.
-
-Finally, the printk() (considering its potential of spamming the log,
-the more that it's not using XENLOG_GUEST), is being converted to
-P2M_DEBUG(), as debugging is what it apparently was added for in the
-first place.
-
-This is XSA-30 / CVE-2012-5514.
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Ian Campbell <ian.campbell AT citrix.com>
-Acked-by: George Dunlap <george.dunlap AT eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-diff -r 5639047d6c9f xen/arch/x86/mm/p2m.c
---- a/xen/arch/x86/mm/p2m.c Mon Nov 19 09:43:48 2012 +0100
-+++ b/xen/arch/x86/mm/p2m.c Thu Nov 22 17:07:37 2012 +0000
-@@ -2412,6 +2412,9 @@ guest_physmap_mark_populate_on_demand(st
- mfn_t omfn;
- int rc = 0;
-
-+ if ( !IS_PRIV_FOR(current->domain, d) )
-+ return -EPERM;
-+
- if ( !paging_mode_translate(d) )
- return -EINVAL;
-
-@@ -2430,8 +2433,7 @@ guest_physmap_mark_populate_on_demand(st
- omfn = gfn_to_mfn_query(p2m, gfn + i, &ot);
- if ( p2m_is_ram(ot) )
- {
-- printk("%s: gfn_to_mfn returned type %d!\n",
-- __func__, ot);
-+ P2M_DEBUG("gfn_to_mfn returned type %d!\n", ot);
- rc = -EBUSY;
- goto out;
- }
-@@ -2453,10 +2455,10 @@ guest_physmap_mark_populate_on_demand(st
- BUG_ON(p2m->pod.entry_count < 0);
- }
-
-+out:
- audit_p2m(p2m, 1);
- p2m_unlock(p2m);
-
--out:
- return rc;
- }
-
diff --git a/utils/xen/xsa-31.patch b/utils/xen/xsa-31.patch
deleted file mode 100644
index 1f3d929..0000000
--- a/utils/xen/xsa-31.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-memop: limit guest specified extent order
-
-Allowing unbounded order values here causes almost unbounded loops
-and/or partially incomplete requests, particularly in PoD code.
-
-The added range checks in populate_physmap(), decrease_reservation(),
-and the "in" one in memory_exchange() architecturally all could use
-PADDR_BITS - PAGE_SHIFT, and are being artificially constrained to
-MAX_ORDER.
-
-This is XSA-31 / CVE-2012-5515.
-
-Signed-off-by: Jan Beulich <jbeulich AT suse.com>
-Acked-by: Tim Deegan <tim AT xen.org>
-Acked-by: Ian Jackson <ian.jackson AT eu.citrix.com>
-
-diff --git a/xen/common/memory.c b/xen/common/memory.c
-index 4e7c234..9b9fb18 100644
---- a/xen/common/memory.c
-+++ b/xen/common/memory.c
-@@ -117,7 +117,8 @@ static void populate_physmap(struct memop_args *a)
-
- if ( a->memflags & MEMF_populate_on_demand )
- {
-- if ( guest_physmap_mark_populate_on_demand(d, gpfn,
-+ if ( a->extent_order > MAX_ORDER ||
-+ guest_physmap_mark_populate_on_demand(d, gpfn,
- a->extent_order) < 0
)
- goto out;
- }
-@@ -216,7 +217,8 @@ static void decrease_reservation(struct memop_args *a)
- xen_pfn_t gmfn;
-
- if ( !guest_handle_subrange_okay(a->extent_list, a->nr_done,
-- a->nr_extents-1) )
-+ a->nr_extents-1) ||
-+ a->extent_order > MAX_ORDER )
- return;
-
- for ( i = a->nr_done; i < a->nr_extents; i++ )
-@@ -278,6 +280,9 @@ static long
memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
- if ( (exch.nr_exchanged > exch.in.nr_extents) ||
- /* Input and output domain identifiers match? */
- (exch.in.domid != exch.out.domid) ||
-+ /* Extent orders are sensible? */
-+ (exch.in.extent_order > MAX_ORDER) ||
-+ (exch.out.extent_order > MAX_ORDER) ||
- /* Sizes of input and output lists do not overflow a long? */
- ((~0UL >> exch.in.extent_order) < exch.in.nr_extents) ||
- ((~0UL >> exch.out.extent_order) < exch.out.nr_extents) ||
diff --git a/video-libs/smpeg/DETAILS b/video-libs/smpeg/DETAILS
index 3ba39af..6dd2810 100755
--- a/video-libs/smpeg/DETAILS
+++ b/video-libs/smpeg/DETAILS
@@ -3,7 +3,7 @@
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION

SOURCE_URL[0]=http://mirrors.sunsite.dk/lokigames/open-source/smpeg/$SOURCE
- WEB_SITE=http://www.lokigames.com/development/smpeg.php3
+ WEB_SITE=http://icculus.org/smpeg/
ENTERED=20010922

SOURCE_HASH=sha512:d566bb68b0caacecdf61cd766b26e003fd4e153c243d873f7aae33ab69919202bd121bb9c10f494bd9530267ddec2a9e018eb46ee8bb9d502a29cd2de2f1bbfb
LICENSE[0]=GPL
diff --git a/video-libs/smpeg/HISTORY b/video-libs/smpeg/HISTORY
index d03e316..2b9a613 100644
--- a/video-libs/smpeg/HISTORY
+++ b/video-libs/smpeg/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: fix WEB_SITE
+
2006-10-03 Juuso Alasuutari <iuso AT sourcemage.org>
* DETAILS: [automated] Removed UPDATED.

diff --git a/video/mkvtoolnix/BUILD b/video/mkvtoolnix/BUILD
index 25630f0..3ace354 100755
--- a/video/mkvtoolnix/BUILD
+++ b/video/mkvtoolnix/BUILD
@@ -6,4 +6,5 @@ then
export RCC="${INSTALL_ROOT}/usr/bin/qt4/rcc"
export UIC="${INSTALL_ROOT}/usr/bin/qt4/uic"
fi &&
-default_build
+default_build_configure &&
+./drake -j${MAKE_NJOBS}
diff --git a/video/mkvtoolnix/DEPENDS b/video/mkvtoolnix/DEPENDS
index d2e2424..ae31e69 100755
--- a/video/mkvtoolnix/DEPENDS
+++ b/video/mkvtoolnix/DEPENDS
@@ -1,10 +1,14 @@
+depends curl &&
+depends expat &&
+depends gettext &&
depends libebml &&
depends libmatroska &&
-depends expat &&
depends libogg &&
depends libvorbis &&
depends zlib &&
-depends -sub REGEX boost "--with-boost-libdir=${INSTALL_ROOT}/usr/lib" &&
+depends -sub REGEX boost "--with-boost-libdir=${INSTALL_ROOT}/usr/lib"
&&
+depends -sub FILESYSTEM boost &&
+depends -sub SYSTEM boost &&

optional_depends WXWIDGET \
'--enable-gui --enable-wxwidgets' \
diff --git a/video/mkvtoolnix/DETAILS b/video/mkvtoolnix/DETAILS
index 3a083f8..6fd40ae 100755
--- a/video/mkvtoolnix/DETAILS
+++ b/video/mkvtoolnix/DETAILS
@@ -1,10 +1,10 @@
SPELL=mkvtoolnix
- VERSION=2.9.8
+ VERSION=5.9.0
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://www.bunkus.org/videotools/mkvtoolnix/sources/$SOURCE
WEB_SITE=http://www.bunkus.org/videotools/mkvtoolnix/
-
SOURCE_HASH=sha512:0768f04205f82aed92ae9b3452df224e35ce95cee8912575f0c998b4e694d11f221b731e49f35c17283a09b5836e05e7d513030dd7af8da31d277d9e09595e12
+
SOURCE_HASH=sha512:d186e799ee6d95699d0ed4c820be3c7255e77e02b9330d4832cd114714a6a3f2c8fc27f7615f5e8da99ee5c7bb1cfca6b838954b58aff2d3739dbe3ecea203fc
LICENSE[0]=GPL
ENTERED=20030520
KEYWORDS="video"
diff --git a/video/mkvtoolnix/HISTORY b/video/mkvtoolnix/HISTORY
index 5bf5e26..6306df2 100644
--- a/video/mkvtoolnix/HISTORY
+++ b/video/mkvtoolnix/HISTORY
@@ -1,3 +1,9 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 5.9.0
+ * DEPENDS: added dependencies n curl and gettext, added
+ sub dependencies on FILESYSTEM and SYSTEM for boost
+ * BUILD, INSTALL: use supplied drake
+
2009-08-30 Quentin Rameau <quinq AT sourcemage.org>
* DETAILS: updated to version 2.9.8
* DEPENDS: added dependencies on libebml, libogg, zlib,
diff --git a/video/mkvtoolnix/INSTALL b/video/mkvtoolnix/INSTALL
new file mode 100755
index 0000000..a593c70
--- /dev/null
+++ b/video/mkvtoolnix/INSTALL
@@ -0,0 +1 @@
+./drake install
diff --git a/x11/xcompmgr/DETAILS b/x11/xcompmgr/DETAILS
index 0da941a..078d618 100755
--- a/x11/xcompmgr/DETAILS
+++ b/x11/xcompmgr/DETAILS
@@ -1,10 +1,9 @@
SPELL=xcompmgr
- VERSION=1.1.5
+ VERSION=1.1.6
SOURCE=$SPELL-$VERSION.tar.bz2
- SOURCE_GPG="gurus.gpg:$SOURCE.sig:UPSTREAM_HASH"
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
SOURCE_URL[0]=http://xorg.freedesktop.org/releases/individual/app/$SOURCE
-#
SOURCE_HASH=sha512:a8843feee37047a37d1d2c017e0d8c84679b0904e55f230f4962d6290e791099709dc716b71ae2590f002f74098a9ca8c6668ed62117730980eada95bc283d04
+
SOURCE_HASH=sha512:c1dd2ab42575fcf9d53fc923b4fe98ee4b2617e2bd652b8f20d34404e8547f8dfecb6bcd14d1d54da1a618ccb8e822b89e75d57f0320e9d55edbfb0dc83ddcbd
WEB_SITE=http://xorg.freedesktop.org/
GATHER_DOCS=off
ENTERED=20040622
diff --git a/x11/xcompmgr/HISTORY b/x11/xcompmgr/HISTORY
index dc5690c..a993ab6 100644
--- a/x11/xcompmgr/HISTORY
+++ b/x11/xcompmgr/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.1.6
+
2009-12-17 Eric Sandall <sandalle AT sourcemage.org>
* DETAILS: Updated to 1.1.5
SOURCE matches upstream posted SHA1
diff --git a/xfce/exo/DETAILS b/xfce/exo/DETAILS
index 1d3c6de..8ecd079 100755
--- a/xfce/exo/DETAILS
+++ b/xfce/exo/DETAILS
@@ -1,10 +1,10 @@
SPELL=exo
- VERSION=0.10.0
+ VERSION=0.10.1
BRANCH=`echo $VERSION | cut -d . -f 1,2`
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=http://archive.xfce.org/src/xfce/$SPELL/$BRANCH/$SOURCE
-
SOURCE_HASH=sha512:75ffd791b68e54613ac8f6f564a1ae476943415860f25c0a0d25ea283e231a1234667b5031ef2c8dc1d09c598b78f7140364d167530639ffd031f08fac5ac150
+
SOURCE_HASH=sha512:920b5b0e6015f0ff68b6daa3d8691c5f0795b2a418dd2c80e227d29b0ab036998d8cddf0f92d5e34b3d5da452783efe99c50267986b96143d500de45b4b2e1fb
WEB_SITE=http://thunar.xfce.org/
ENTERED=20050101
LICENSE=LGPL
diff --git a/xfce/exo/HISTORY b/xfce/exo/HISTORY
index 1e2643d..40377a9 100644
--- a/xfce/exo/HISTORY
+++ b/xfce/exo/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 0.10.1
+
2012-12-03 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 0.10.0

diff --git a/xfce/gtk-xfce-engine/DETAILS b/xfce/gtk-xfce-engine/DETAILS
index 874452c..3502f13 100755
--- a/xfce/gtk-xfce-engine/DETAILS
+++ b/xfce/gtk-xfce-engine/DETAILS
@@ -1,11 +1,11 @@
SPELL=gtk-xfce-engine
- VERSION=3.0.0
+ VERSION=3.0.1
BRANCH=`echo $VERSION | cut -d . -f 1,2`
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=http://archive.xfce.org/src/xfce/$SPELL/$BRANCH/$SOURCE
WEB_SITE=http://www.xfce.org/
-
SOURCE_HASH=sha512:468c97f000f17975ab5cef59158a455ba6ddb8d266d191fca14eff3790f28647e2db4f132eb4f9b0a54de96f265be8846830821c8cc60b643e5eb31954378ad6
+
SOURCE_HASH=sha512:0cd701cc485fcf7e112221c550f58078ca63773b0dd8c22d052b55564ad7954c721398735fbcf85b72f2b56ac5c65c1648522c1238fe97c274093d90f80af058
LICENSE[0]=GPL
ENTERED=20030608
KEYWORDS="theme xfce"
diff --git a/xfce/gtk-xfce-engine/HISTORY b/xfce/gtk-xfce-engine/HISTORY
index 58d4a5b..2aa04d8 100644
--- a/xfce/gtk-xfce-engine/HISTORY
+++ b/xfce/gtk-xfce-engine/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 3.0.1
+
2012-04-29 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: updated spell to 3.0.0

diff --git a/xfce/thunar/DETAILS b/xfce/thunar/DETAILS
index 7ba7cf6..da3b75c 100755
--- a/xfce/thunar/DETAILS
+++ b/xfce/thunar/DETAILS
@@ -1,11 +1,11 @@
SPELL=thunar
- VERSION=1.6.0
+ VERSION=1.6.1
BRANCH=`echo $VERSION | cut -d . -f 1,2`
SOURCE=Thunar-$VERSION.tar.bz2
SOURCE_DIRECTORY="$BUILD_DIRECTORY/Thunar-$VERSION"
SOURCE_URL[0]=http://archive.xfce.org/src/xfce/$SPELL/$BRANCH/$SOURCE
WEB_SITE=http://thunar.xfce.org/
-
SOURCE_HASH=sha512:f869b3cb27bdf664d0ec7c39e2019cc3ddcbcb474c53efd3cda56777a570800b51d3792d9c9c4232a17e4ef10156562085b211047cff2c668846e98fe7a641ad
+
SOURCE_HASH=sha512:6adc99a0734b3caf5fac20f796d2532f409811bc3581abc17d72c8f9f92ed2ba6bdce5d5d83010afed82f258863ed4b641950cc31c2adf0774f226f5be58a043
LICENSE[0]=GPL
LICENSE[1]=LGPL
ENTERED=20030608
diff --git a/xfce/thunar/HISTORY b/xfce/thunar/HISTORY
index b0dafea..3ba3b45 100644
--- a/xfce/thunar/HISTORY
+++ b/xfce/thunar/HISTORY
@@ -1,3 +1,6 @@
+2012-12-23 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 1.6.1
+
2012-12-03 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 1.6.0

diff --git a/xfce/tumbler/DETAILS b/xfce/tumbler/DETAILS
index 7a15e90..a9a514d 100755
--- a/xfce/tumbler/DETAILS
+++ b/xfce/tumbler/DETAILS
@@ -1,11 +1,11 @@
SPELL=tumbler
- VERSION=0.1.25
+ VERSION=0.1.26
BRANCH=`echo $VERSION | cut -d . -f 1,2`
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URL[0]=http://archive.xfce.org/src/xfce/$SPELL/$BRANCH/$SOURCE
WEB_SITE=http://www.xfce.org/
-
SOURCE_HASH=sha512:2dc61bd90a480fe3de7eacee3dc864fbdb29a521550746d39fed5cdf9c8fbeded8a2cf7192d393dacc03e35c1e3ba7a2c1c911e28acab85417abc68d083cc221
+
SOURCE_HASH=sha512:72c3bffa594f3a99e599dee7d35544cdc5fd21a18397b1b0b045378ed10037879aa14fb95a02040348da7cfdf65cfd932b92f1eeda529b5c86c378da98d8e06a
LICENSE[0]=GPL
ENTERED=20121130
KEYWORDS="xfce"
diff --git a/xfce/tumbler/HISTORY b/xfce/tumbler/HISTORY
index e9bc070..ce2e470 100644
--- a/xfce/tumbler/HISTORY
+++ b/xfce/tumbler/HISTORY
@@ -1,2 +1,5 @@
+2012-12-23 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: updated spell to 0.1.26
+
2012-11-30 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS, DEPENDS: spell created (as part of Xfce 4.10)
diff --git a/xorg-app/xconsole/DETAILS b/xorg-app/xconsole/DETAILS
index f531d00..386d139 100755
--- a/xorg-app/xconsole/DETAILS
+++ b/xorg-app/xconsole/DETAILS
@@ -1,10 +1,10 @@
SPELL=xconsole
PKG=xconsole
- VERSION=1.0.3
+ VERSION=1.0.4
XORG_VER=X11R7.1
SOURCE=${PKG}-${VERSION}.tar.bz2

SOURCE_URL[0]=http://xorg.freedesktop.org/releases/individual/app/${SOURCE}
-
SOURCE_HASH=sha512:404ae64e81c63f64ad11caeae937eb77dfdb323a287830d742c5ca9d545f700c640905781dd727ae81be275d97bce76ceeda1da37a43b568f0e199a465fc6b00
+
SOURCE_HASH=sha512:2f199c557da00d487425bef7da1f74794157a690e14dba9ff51cec931599f8f8537760d7b5cb8d82a0416ca8d7b6ae2183e7149462c80ecd0c3c7278bdf19cb8
SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${PKG}-${VERSION}
WEB_SITE=http://xorg.freedesktop.org
ENTERED=20051125
diff --git a/xorg-app/xconsole/HISTORY b/xorg-app/xconsole/HISTORY
index 29c8043..54e5275 100644
--- a/xorg-app/xconsole/HISTORY
+++ b/xorg-app/xconsole/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.0.4
+
2009-01-26 Andraž "ruskie" Levstik <ruskie AT mages.ath.cx>
* DEPENDS: killing off XPrint
* DETAILS: patchlevel++
diff --git a/xorg-app/xfontsel/DETAILS b/xorg-app/xfontsel/DETAILS
index a956ca9..45a42c4 100755
--- a/xorg-app/xfontsel/DETAILS
+++ b/xorg-app/xfontsel/DETAILS
@@ -1,10 +1,10 @@
SPELL=xfontsel
PKG=xfontsel
- VERSION=1.0.2
+ VERSION=1.0.4
XORG_VER=X11R7.0
SOURCE=${PKG}-${VERSION}.tar.bz2

SOURCE_URL[0]=http://xorg.freedesktop.org/releases/individual/app/${SOURCE}
-
SOURCE_HASH=sha512:63195156352c969dc174065b9c32f05e17f5d2d61134eb1d9a9800d80ca8b5a8b3720fc189901a5c98bab39321f79635549e42a0bd0ce10967bbc8187352144a
+
SOURCE_HASH=sha512:0c5eeb39b77a10607dce4c42f710864b750de04b06b4d746ed804757b6d1e4357679d52d30155f506c69f5186162da756132689b5e38bd9694bfaf9d004ee452
SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${PKG}-${VERSION}
WEB_SITE=http://xorg.freedesktop.org
ENTERED=20051125
diff --git a/xorg-app/xfontsel/HISTORY b/xorg-app/xfontsel/HISTORY
index aaf0b6c..a88071f 100644
--- a/xorg-app/xfontsel/HISTORY
+++ b/xorg-app/xfontsel/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.0.4
+
2009-01-26 Andraž "ruskie" Levstik <ruskie AT mages.ath.cx>
* DEPENDS: killing off XPrint
* DETAILS: patchlevel++
diff --git a/xorg-extras/xterm/DETAILS b/xorg-extras/xterm/DETAILS
index f36742d..0022f93 100755
--- a/xorg-extras/xterm/DETAILS
+++ b/xorg-extras/xterm/DETAILS
@@ -1,5 +1,5 @@
SPELL=xterm
- VERSION=270
+ VERSION=287
SOURCE=$SPELL-$VERSION.tgz
SOURCE2=$SOURCE.asc
SOURCE_URL[0]=ftp://invisible-island.net/xterm/$SOURCE
diff --git a/xorg-extras/xterm/HISTORY b/xorg-extras/xterm/HISTORY
index f880917..1fb8e4c 100644
--- a/xorg-extras/xterm/HISTORY
+++ b/xorg-extras/xterm/HISTORY
@@ -1,3 +1,6 @@
+2012-12-24 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 287
+
2011-06-07 Bor Kraljič <pyrobor AT ver.si>
* DETAILS: updated spell to 270

diff --git a/xorg-extras/xterm/xterm-267.tgz.sig
b/xorg-extras/xterm/xterm-267.tgz.sig
deleted file mode 100644
index 2d1b810..0000000
Binary files a/xorg-extras/xterm/xterm-267.tgz.sig and /dev/null differ



  • [SM-Commit] GIT changes to devel-xorg-modular grimoire by Treeve Jelbert (ff60ffc45761511bb10eeb58dea492f4534b3428), Treeve Jelbert, 12/25/2012

Archive powered by MHonArc 2.6.24.

Top of Page