summaryrefslogtreecommitdiffstats
path: root/abs/not_built
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2012-12-01 18:26:09 (GMT)
committerJames Meyer <james.meyer@operamail.com>2012-12-01 18:26:22 (GMT)
commite2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37 (patch)
treebee3fe89f2988dd244e11791755e129aa8c03b14 /abs/not_built
parent8132c218cfc1f1acb1c6d12154e0d4ca075e77f2 (diff)
downloadlinhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.zip
linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.tar.gz
linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.tar.bz2
Mass move of uncompiled packages to abs_not_built.
The will sit here for a bit, and then will be removed completely if no one claims them.
Diffstat (limited to 'abs/not_built')
-rw-r--r--abs/not_built/core/LinHES-timezone/Makefile62
-rw-r--r--abs/not_built/core/LinHES-timezone/PKGBUILD30
-rw-r--r--abs/not_built/core/LinHES-timezone/Tux.csv1268
-rw-r--r--abs/not_built/core/LinHES-timezone/WorldTZ_102.zipbin0 -> 1628730 bytes
-rw-r--r--abs/not_built/core/LinHES-timezone/create_map_include.c186
-rw-r--r--abs/not_built/core/LinHES-timezone/extract_map_data.c188
-rw-r--r--abs/not_built/core/LinHES-timezone/linhes_timezone.c1120
-rw-r--r--abs/not_built/core/alsa-oss/PKGBUILD20
-rw-r--r--abs/not_built/core/aufs2-util/PKGBUILD24
-rw-r--r--abs/not_built/core/cdrdao/PKGBUILD21
-rw-r--r--abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch73
-rw-r--r--abs/not_built/core/cdrdao/gcc4.patch23
-rw-r--r--abs/not_built/core/cdrkit/PKGBUILD42
-rw-r--r--abs/not_built/core/ceton-scripts/PKGBUILD24
-rw-r--r--abs/not_built/core/ceton-scripts/ccm.patch13
-rw-r--r--abs/not_built/core/ceton-scripts/cqcm.patch13
-rw-r--r--abs/not_built/core/cloog-ppl/PKGBUILD32
-rw-r--r--abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch135
-rw-r--r--abs/not_built/core/coreutils/PKGBUILD66
-rw-r--r--abs/not_built/core/coreutils/coreutils-pam.patch428
-rw-r--r--abs/not_built/core/coreutils/coreutils.install21
-rw-r--r--abs/not_built/core/coreutils/su.pam9
-rw-r--r--abs/not_built/core/cpio/PKGBUILD30
-rw-r--r--abs/not_built/core/cpio/cpio-gcc43.patch139
-rw-r--r--abs/not_built/core/cpio/cpio.install21
-rw-r--r--abs/not_built/core/dash/PKGBUILD32
-rw-r--r--abs/not_built/core/db4.5/PKGBUILD41
-rw-r--r--abs/not_built/core/dhcp/ChangeLog11
-rw-r--r--abs/not_built/core/dhcp/PKGBUILD77
-rw-r--r--abs/not_built/core/dhcp/dhclient-script-pathFixes.patch118
-rw-r--r--abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch39
-rw-r--r--abs/not_built/core/dhcp/dhcp.conf.d6
-rw-r--r--abs/not_built/core/dhcp/dhcp.install11
-rwxr-xr-xabs/not_built/core/dhcp/dhcpd40
-rw-r--r--abs/not_built/core/directfb/PKGBUILD32
-rw-r--r--abs/not_built/core/directfb/directfb.changelog35
-rw-r--r--abs/not_built/core/diskless-legacy/PKGBUILD14
-rwxr-xr-xabs/not_built/core/diskless-legacy/config_diskless_frontend.bash704
-rw-r--r--abs/not_built/core/dvd+rw-tools/PKGBUILD32
-rw-r--r--abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch22
-rw-r--r--abs/not_built/core/eggdbus/PKGBUILD24
-rw-r--r--abs/not_built/core/evieext/PKGBUILD25
-rw-r--r--abs/not_built/core/fam/PKGBUILD47
-rwxr-xr-xabs/not_built/core/fam/fam44
-rw-r--r--abs/not_built/core/fam/fam-2.7.0-buildfixes.patch69
-rw-r--r--abs/not_built/core/fam/fam-2.7.0-dnotify.patch975
-rw-r--r--abs/not_built/core/fam/fam-2.7.0-largefiles.patch8
-rw-r--r--abs/not_built/core/fam/fam-2.7.0-limits.patch11
-rw-r--r--abs/not_built/core/feh/PKGBUILD31
-rw-r--r--abs/not_built/core/feh/__changelog1
-rw-r--r--abs/not_built/core/fltk/PKGBUILD26
-rw-r--r--abs/not_built/core/fontcacheproto/PKGBUILD21
-rw-r--r--abs/not_built/core/ftgl/PKGBUILD27
-rw-r--r--abs/not_built/core/fxload/PKGBUILD22
-rw-r--r--abs/not_built/core/gen-init-cpio/Makefile42
-rw-r--r--abs/not_built/core/gen-init-cpio/PKGBUILD26
-rw-r--r--abs/not_built/core/gen-init-cpio/gen_init_cpio.c592
-rw-r--r--abs/not_built/core/giblib/PKGBUILD26
-rw-r--r--abs/not_built/core/glibc/PKGBUILD153
-rw-r--r--abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch51
-rw-r--r--abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch226
-rw-r--r--abs/not_built/core/glibc/glibc.install20
-rwxr-xr-xabs/not_built/core/glibc/locale-gen42
-rw-r--r--abs/not_built/core/glibc/locale.gen.txt23
-rwxr-xr-xabs/not_built/core/glibc/nscd.rcd65
-rw-r--r--abs/not_built/core/glibc/nscd.service17
-rw-r--r--abs/not_built/core/glibc/nscd.tmpfiles1
-rw-r--r--abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch623
-rw-r--r--abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff16
-rw-r--r--abs/not_built/core/grub-gfx/PKGBUILD106
-rw-r--r--abs/not_built/core/grub-gfx/ext4.patch263
-rw-r--r--abs/not_built/core/grub-gfx/grub-0.97-graphics.patch1293
-rw-r--r--abs/not_built/core/grub-gfx/grub-gfx.install46
-rw-r--r--abs/not_built/core/grub-gfx/grub-inode-size.patch94
-rw-r--r--abs/not_built/core/grub-gfx/i2o.patch45
-rwxr-xr-xabs/not_built/core/grub-gfx/install-grub187
-rw-r--r--abs/not_built/core/grub-gfx/intelmac.patch67
-rw-r--r--abs/not_built/core/grub-gfx/menu.lst47
-rw-r--r--abs/not_built/core/grub-gfx/more-raid.patch100
-rw-r--r--abs/not_built/core/grub-gfx/special-devices.patch18
-rw-r--r--abs/not_built/core/grub-gfx/splash.xpm.gzbin0 -> 4019 bytes
-rw-r--r--abs/not_built/core/hal-info/PKGBUILD25
-rw-r--r--abs/not_built/core/hal/PKGBUILD83
-rw-r--r--abs/not_built/core/hal/cryptsetup_location.patch36
-rw-r--r--abs/not_built/core/hal/dbus-error-init.patch231
-rw-r--r--abs/not_built/core/hal/fix-libusb-detection.patch66
-rw-r--r--abs/not_built/core/hal/fix-udev-compatibility.patch31
-rw-r--r--abs/not_built/core/hal/hal54
-rw-r--r--abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch14
-rw-r--r--abs/not_built/core/hal/hal-HDAPS-blacklist.patch30
-rw-r--r--abs/not_built/core/hal/hal-KVM-evdev.patch36
-rw-r--r--abs/not_built/core/hal/hal-policy.patch32
-rw-r--r--abs/not_built/core/hal/hal-remove-dell-killswitch.patch201
-rw-r--r--abs/not_built/core/hal/hal-use-at-console.patch45
-rw-r--r--abs/not_built/core/hal/hal-xen-unignore-axes.patch39
-rw-r--r--abs/not_built/core/hal/hal.install24
-rw-r--r--abs/not_built/core/hal/handle-input-touchpad.patch101
-rw-r--r--abs/not_built/core/hal/macbook-fix-ioperm.patch41
-rw-r--r--abs/not_built/core/hal/ntfs-mount-fix.patch18
-rw-r--r--abs/not_built/core/hal/ntfs3g-valid-options.patch11
-rw-r--r--abs/not_built/core/hal/path-max.patch31
-rw-r--r--abs/not_built/core/heirloom-mailx/PKGBUILD64
-rw-r--r--abs/not_built/core/hwdetect/PKGBUILD19
-rwxr-xr-xabs/not_built/core/hwdetect/hwdetect592
-rw-r--r--abs/not_built/core/jack/40-hpet-permissions.rules2
-rw-r--r--abs/not_built/core/jack/99-audio.conf2
-rw-r--r--abs/not_built/core/jack/PKGBUILD58
-rw-r--r--abs/not_built/core/jack/jack.install5
-rw-r--r--abs/not_built/core/kakasi/PKGBUILD20
-rw-r--r--abs/not_built/core/kdelibs3/PKGBUILD57
-rw-r--r--abs/not_built/core/kdelibs3/__changelog1
-rwxr-xr-xabs/not_built/core/kdelibs3/kde3.profile15
-rw-r--r--abs/not_built/core/kdelibs3/kdelibs3.install11
-rw-r--r--abs/not_built/core/libcl/PKGBUILD38
-rw-r--r--abs/not_built/core/libdc1394/PKGBUILD25
-rw-r--r--abs/not_built/core/libdc1394/__changelog1
-rw-r--r--abs/not_built/core/libfetch/Makefile89
-rw-r--r--abs/not_built/core/libfetch/PKGBUILD46
l---------abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz1
-rw-r--r--abs/not_built/core/libgsf/PKGBUILD61
-rw-r--r--abs/not_built/core/libgsf/libgsf-gnome.install19
-rw-r--r--abs/not_built/core/libsmbios/PKGBUILD40
-rw-r--r--abs/not_built/core/libwmf/PKGBUILD41
-rw-r--r--abs/not_built/core/libwmf/libpng14.patch12
-rw-r--r--abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch10
-rw-r--r--abs/not_built/core/libwmf/libwmf.install13
-rw-r--r--abs/not_built/core/libx86/PKGBUILD38
-rw-r--r--abs/not_built/core/libx86/libx86-ifmask.patch21
-rw-r--r--abs/not_built/core/libxfontcache/LICENSE99
-rw-r--r--abs/not_built/core/libxfontcache/PKGBUILD28
-rw-r--r--abs/not_built/core/libxtrap/PKGBUILD27
-rw-r--r--abs/not_built/core/libxxf86misc/PKGBUILD28
-rw-r--r--abs/not_built/core/linhes-live/PKGBUILD32
-rwxr-xr-xabs/not_built/core/linhes-live/bin/gen_fstab122
-rwxr-xr-xabs/not_built/core/linhes-live/bin/km76
-rw-r--r--abs/not_built/core/linhes-live/etc/live-shutdown90
-rw-r--r--abs/not_built/core/linhes-live/etc/live-sysinit73
-rwxr-xr-xabs/not_built/core/linhes-live/etc/loginroot3
-rwxr-xr-xabs/not_built/core/linhes-live/etc/rc.shutdown-live168
-rwxr-xr-xabs/not_built/core/linhes-live/etc/rc.sysinit-live469
-rwxr-xr-xabs/not_built/core/linhes-live/etc/ulogin57
-rwxr-xr-xabs/not_built/core/linhes-live/lib/initcpio/gen_larch_init12
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1125
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/hooks/larch233
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs33
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3196
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/install/larch115
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/install/larch215
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs15
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/install/larch318
-rwxr-xr-xabs/not_built/core/linhes-live/lib/initcpio/kinit6
-rw-r--r--abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf54
-rw-r--r--abs/not_built/core/linuxtv-dvb-apps/PKGBUILD37
-rw-r--r--abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install8
-rw-r--r--abs/not_built/core/lshw/PKGBUILD34
-rw-r--r--abs/not_built/core/lshw/abi_stdlib.diff23
-rw-r--r--abs/not_built/core/lzop/PKGBUILD26
-rw-r--r--abs/not_built/core/mailx/PKGBUILD24
-rw-r--r--abs/not_built/core/mailx/mailx-8.1.1.patch32
-rw-r--r--abs/not_built/core/mailx/mailx-gcc4.patch12
-rw-r--r--abs/not_built/core/mcpp/PKGBUILD23
-rw-r--r--abs/not_built/core/mcpp/mcpp-2.6.4-patch22
-rw-r--r--abs/not_built/core/mjpegtools/PKGBUILD41
-rw-r--r--abs/not_built/core/mjpegtools/__changelog2
-rw-r--r--abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch11
-rw-r--r--abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch24
-rw-r--r--abs/not_built/core/mjpegtools/mjpegtools.install16
-rw-r--r--abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch10
-rw-r--r--abs/not_built/core/mythstream/PKGBUILD37
-rw-r--r--abs/not_built/core/mythstream/mythstream.0.24.patch529
-rw-r--r--abs/not_built/core/mythstream/mythstream.install23
-rw-r--r--abs/not_built/core/mythstream/streams.res281
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD66
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch22
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD129
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch303
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install3
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD23
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch8
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh39
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD38
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD109
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog1
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch12
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml94
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml3
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch12
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml59
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch37
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml20
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml20
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch16
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh5
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml111
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml419
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml9
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml20
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch16
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml574
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh4
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend38
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr9
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh117
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr9
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install63
-rwxr-xr-xabs/not_built/core/mythtv/stable-0.24/mythtv/pretty9
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch10
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD46
-rw-r--r--abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch11
-rw-r--r--abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD54
-rw-r--r--abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD54
-rw-r--r--abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD51
-rwxr-xr-xabs/not_built/core/mythtv/trunk/myththemes/PKGBUILD50
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/PKGBUILD97
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml94
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml3
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch12
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml59
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch38
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml20
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml20
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch16
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh5
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml111
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml419
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml20
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml26
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch16
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml574
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/myth.sh4
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/mythbackend38
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr9
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh117
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr9
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/mythtv.install30
-rwxr-xr-xabs/not_built/core/mythtv/trunk/mythtv/pretty9
-rw-r--r--abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch30
-rw-r--r--abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD51
-rw-r--r--abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD50
-rw-r--r--abs/not_built/core/mythtv/trunk/mythweb/mythweb.install10
-rw-r--r--abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD51
-rw-r--r--abs/not_built/core/ndiswrapper-utils/PKGBUILD27
-rw-r--r--abs/not_built/core/ndiswrapper/PKGBUILD42
-rw-r--r--abs/not_built/core/ndiswrapper/kernel-2.6.35.patch98
-rw-r--r--abs/not_built/core/ndiswrapper/kernel-2.6.36.patch27
-rw-r--r--abs/not_built/core/ndiswrapper/ndiswrapper.install23
-rw-r--r--abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch24
-rw-r--r--abs/not_built/core/netcfg/PKGBUILD27
-rw-r--r--abs/not_built/core/netkit-telnet-ssl/PKGBUILD33
-rw-r--r--abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff2591
-rw-r--r--abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install5
-rw-r--r--abs/not_built/core/netkit-telnet-ssl/telnet.xinetd10
-rw-r--r--abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi42
-rw-r--r--abs/not_built/core/ntfs-3g/PKGBUILD33
-rw-r--r--abs/not_built/core/ntfsprogs/PKGBUILD24
-rw-r--r--abs/not_built/core/ntfsprogs/ntfsprogs.install24
-rwxr-xr-xabs/not_built/core/nuvexport/MP4.pm316
-rw-r--r--abs/not_built/core/nuvexport/PKGBUILD33
-rwxr-xr-xabs/not_built/core/nuvexport/XviD.pm197
-rw-r--r--abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch12
-rw-r--r--abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf5
-rw-r--r--abs/not_built/core/nvidia-173xx-utils/PKGBUILD68
-rw-r--r--abs/not_built/core/nvidia-173xx-utils/nvidia.install6
-rw-r--r--abs/not_built/core/nvidia-173xx/PKGBUILD41
-rw-r--r--abs/not_built/core/nvidia-173xx/nvidia.install14
-rw-r--r--abs/not_built/core/nvidia-96xx-utils/PKGBUILD63
-rw-r--r--abs/not_built/core/nvidia-96xx-utils/nvidia.install6
-rw-r--r--abs/not_built/core/nvidia-96xx-utils/supported-cards.txt236
-rw-r--r--abs/not_built/core/nvidia-96xx/PKGBUILD40
-rw-r--r--abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch10
-rw-r--r--abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch103
-rw-r--r--abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch10
-rw-r--r--abs/not_built/core/nvidia-96xx/nvidia.install14
-rw-r--r--abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD23
-rw-r--r--abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD28
-rw-r--r--abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD22
-rw-r--r--abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD50
-rw-r--r--abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-javascript/PKGBUILD28
-rw-r--r--abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-list-member/PKGBUILD24
-rw-r--r--abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD23
-rw-r--r--abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD25
-rw-r--r--abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD23
-rw-r--r--abs/not_built/core/perl_modules/perl-pathtools/license.txt6
-rw-r--r--abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD31
-rw-r--r--abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD23
-rw-r--r--abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD23
-rw-r--r--abs/not_built/core/perl_modules/perl-time-format/PKGBUILD21
-rw-r--r--abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD32
-rwxr-xr-xabs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD34
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops29
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/entries95
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/format1
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base5
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base5
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base5
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base5
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base31
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base31
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base460
-rw-r--r--abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base76
-rwxr-xr-xabs/not_built/core/plextor-convertX-driver/PKGBUILD36
-rwxr-xr-xabs/not_built/core/plextor-convertX-driver/convertX.install34
-rw-r--r--abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff26
-rw-r--r--abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch83
-rw-r--r--abs/not_built/core/procinfo-ng/PKGBUILD38
-rw-r--r--abs/not_built/core/procps/ChangeLog10
-rw-r--r--abs/not_built/core/procps/PKGBUILD27
-rw-r--r--abs/not_built/core/procps/sysctl.conf13
-rw-r--r--abs/not_built/core/projectm-complete/PKGBUILD32
-rw-r--r--abs/not_built/core/projectm-complete/error-handling.patch308
-rw-r--r--abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch25
-rw-r--r--abs/not_built/core/pvr150-firmware/PKGBUILD17
-rw-r--r--abs/not_built/core/python2/PKGBUILD84
-rw-r--r--abs/not_built/core/python_modules/bluez-python/PKGBUILD20
-rwxr-xr-xabs/not_built/core/python_modules/cddb-py/PKGBUILD26
-rw-r--r--abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD26
-rw-r--r--abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch61
-rw-r--r--abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch22
-rw-r--r--abs/not_built/core/python_modules/imdbpy/PKGBUILD37
-rw-r--r--abs/not_built/core/python_modules/pycrypto/PKGBUILD23
-rw-r--r--abs/not_built/core/python_modules/python-beaker/PKGBUILD21
-rw-r--r--abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD51
-rw-r--r--abs/not_built/core/python_modules/python-beautifulsoup4/__changelog2
-rw-r--r--abs/not_built/core/python_modules/python-chardet/PKGBUILD20
-rw-r--r--abs/not_built/core/python_modules/python-geoip/PKGBUILD21
-rw-r--r--abs/not_built/core/python_modules/python-libconcord/PKGBUILD22
-rw-r--r--abs/not_built/core/python_modules/python-mako/PKGBUILD21
-rw-r--r--abs/not_built/core/python_modules/python-markupsafe/PKGBUILD23
-rw-r--r--abs/not_built/core/python_modules/python-numeric/PKGBUILD35
-rw-r--r--abs/not_built/core/python_modules/python-pymedia/PKGBUILD35
-rw-r--r--abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff64
-rw-r--r--abs/not_built/core/python_modules/python-pyserial/PKGBUILD21
-rw-r--r--abs/not_built/core/python_modules/python-simplejson/ChangeLog5
-rw-r--r--abs/not_built/core/python_modules/python-simplejson/PKGBUILD26
-rw-r--r--abs/not_built/core/python_modules/python2-distribute/PKGBUILD24
-rw-r--r--abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch51
-rw-r--r--abs/not_built/core/python_modules/pyusb/PKGBUILD18
-rw-r--r--abs/not_built/core/python_modules/pyxdg/PKGBUILD20
-rw-r--r--abs/not_built/core/rp-pppoe/PKGBUILD25
-rwxr-xr-xabs/not_built/core/rp-pppoe/adsl35
-rw-r--r--abs/not_built/core/speex/PKGBUILD28
-rw-r--r--abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch124
-rw-r--r--abs/not_built/core/systemd/systemd-tools/PKGBUILD205
-rw-r--r--abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev20
-rw-r--r--abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp14
-rw-r--r--abs/not_built/core/systemd/systemd-tools/initcpio-install-udev28
-rw-r--r--abs/not_built/core/systemd/systemd-tools/locale.sh60
-rw-r--r--abs/not_built/core/systemd/systemd-tools/systemd-tools.install35
-rw-r--r--abs/not_built/core/systemd/systemd-tools/systemd.install37
-rw-r--r--abs/not_built/core/test-pattern/PKGBUILD16
-rwxr-xr-xabs/not_built/core/test-pattern/test_pattern.bash326
-rw-r--r--abs/not_built/core/tftp-hpa/LICENSE32
-rw-r--r--abs/not_built/core/tftp-hpa/PKGBUILD29
-rw-r--r--abs/not_built/core/tftp-hpa/tftpd.conf4
-rwxr-xr-xabs/not_built/core/tftp-hpa/tftpd.rc38
-rw-r--r--abs/not_built/core/tiacx-firmware/PKGBUILD22
-rw-r--r--abs/not_built/core/tiacx-firmware/tiacx-firmware.install18
-rw-r--r--abs/not_built/core/tiacx/PKGBUILD41
-rw-r--r--abs/not_built/core/tiacx/acx.install19
-rw-r--r--abs/not_built/core/tiacx/kernel-2.6.27.patch82
-rw-r--r--abs/not_built/core/tiacx/kernel-2.6.30.patch16
-rw-r--r--abs/not_built/core/tiacx/kernel-2.6.31.patch88
-rw-r--r--abs/not_built/core/tiacx/kernel-2.6.33.patch11
-rw-r--r--abs/not_built/core/transcode/PKGBUILD76
-rw-r--r--abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch16
-rw-r--r--abs/not_built/core/transcode/transcode-1.1.5-mpa.patch10
-rw-r--r--abs/not_built/core/trapproto/PKGBUILD22
-rw-r--r--abs/not_built/core/ttf-bitstream-vera/PKGBUILD24
-rw-r--r--abs/not_built/core/ttf-bitstream-vera/vera.install20
-rw-r--r--abs/not_built/core/tweaker/PKGBUILD45
-rwxr-xr-xabs/not_built/core/tweaker/bin/LocalIPCheck.pl47
-rwxr-xr-xabs/not_built/core/tweaker/bin/SQLtweaker.sh86
-rwxr-xr-xabs/not_built/core/tweaker/bin/create-linhes-sql.sh166
-rwxr-xr-xabs/not_built/core/tweaker/bin/tweaker.pl333
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_EXAMPLE.pl134
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_RAM.pl81
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_audio.pl390
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_cpu.pl163
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_dragon.pl65
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh98
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_general.pl590
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_general.pl.orig579
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_graphics.pl149
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_keymap.sh66
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_localization.pl72
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_misc.pl13
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_scrub_sql.pl96
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_tuners.pl491
-rw-r--r--abs/not_built/core/tweaker/bin/twk_tuners_notes.txt55
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_upgrade.pl190
-rwxr-xr-xabs/not_built/core/tweaker/bin/twk_what_has_changed.sh183
-rw-r--r--abs/not_built/core/tweaker/fs/etc/asound.conf15
-rw-r--r--abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini429
-rw-r--r--abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state354
-rw-r--r--abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state567
-rw-r--r--abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm66
-rw-r--r--abs/not_built/core/tweaker/lib/Tweaker/Script.pm353
-rw-r--r--abs/not_built/core/tweaker/log4perl.conf13
-rw-r--r--abs/not_built/core/tweaker/tcf/EXAMPLE.tcf38
-rw-r--r--abs/not_built/core/tweaker/tcf/focus.tcf113
-rw-r--r--abs/not_built/core/tweaker/tcf/os.tcf10
-rw-r--r--abs/not_built/core/tweaker/tcf/tcf.dtd11
-rw-r--r--abs/not_built/core/tweaker/tcf/tweaker-core.tcf47
-rw-r--r--abs/not_built/core/tweaker/tcf/userland.tcf0
-rw-r--r--abs/not_built/core/tweaker/tweaker.install39
-rw-r--r--abs/not_built/core/tweaker/tweaker.sh4
-rw-r--r--abs/not_built/core/v4l-dvb/PKGBUILD49
-rw-r--r--abs/not_built/core/v4l-dvb/v4l-dvb.install12
-rw-r--r--abs/not_built/core/vbetool/PKGBUILD31
-rw-r--r--abs/not_built/core/vdpauinfo-legacy/PKGBUILD26
-rwxr-xr-xabs/not_built/core/vdpauinfo-legacy/vdpauinfo2
-rw-r--r--abs/not_built/core/xf86-input-acecad/LICENSE24
-rw-r--r--abs/not_built/core/xf86-input-acecad/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-input-aiptek/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-input-synaptics/10-synaptics.conf8
-rw-r--r--abs/not_built/core/xf86-input-synaptics/PKGBUILD39
-rw-r--r--abs/not_built/core/xf86-input-wacom/70-wacom.rules8
-rw-r--r--abs/not_built/core/xf86-input-wacom/PKGBUILD30
-rw-r--r--abs/not_built/core/xf86-video-apm/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-ark/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-ast/PKGBUILD25
-rw-r--r--abs/not_built/core/xf86-video-ati/PKGBUILD31
-rw-r--r--abs/not_built/core/xf86-video-chips/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-cirrus/LICENSE22
-rw-r--r--abs/not_built/core/xf86-video-cirrus/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-dummy/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-fbdev/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-geode/PKGBUILD30
-rw-r--r--abs/not_built/core/xf86-video-glint/LICENSE84
-rw-r--r--abs/not_built/core/xf86-video-glint/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-i128/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-i740/LICENSE47
-rw-r--r--abs/not_built/core/xf86-video-i740/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-mach64/LICENSE209
-rw-r--r--abs/not_built/core/xf86-video-mach64/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-mga/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-neomagic/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-nouveau/PKGBUILD41
-rw-r--r--abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install16
-rw-r--r--abs/not_built/core/xf86-video-nv/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-openchrome/LICENSE.txt26
-rw-r--r--abs/not_built/core/xf86-video-openchrome/PKGBUILD35
-rw-r--r--abs/not_built/core/xf86-video-openchrome/drm_stdint.patch10
-rw-r--r--abs/not_built/core/xf86-video-openchrome/svn-r839.patch1447
-rw-r--r--abs/not_built/core/xf86-video-r128/LICENSE219
-rw-r--r--abs/not_built/core/xf86-video-r128/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-rendition/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-s3/LICENSE25
-rw-r--r--abs/not_built/core/xf86-video-s3/PKGBUILD29
-rw-r--r--abs/not_built/core/xf86-video-s3virge/LICENSE25
-rw-r--r--abs/not_built/core/xf86-video-s3virge/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-savage/LICENSE97
-rw-r--r--abs/not_built/core/xf86-video-savage/PKGBUILD29
-rw-r--r--abs/not_built/core/xf86-video-siliconmotion/PKGBUILD28
-rw-r--r--abs/not_built/core/xf86-video-sis/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-sisusb/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-tdfx/LICENSE160
-rw-r--r--abs/not_built/core/xf86-video-tdfx/PKGBUILD29
-rw-r--r--abs/not_built/core/xf86-video-trident/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-tseng/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-unichrome/LICENSE23
-rw-r--r--abs/not_built/core/xf86-video-unichrome/PKGBUILD30
-rw-r--r--abs/not_built/core/xf86-video-unichrome/drm-include.patch11
-rw-r--r--abs/not_built/core/xf86-video-v4l/LICENSE826
-rw-r--r--abs/not_built/core/xf86-video-v4l/PKGBUILD27
-rw-r--r--abs/not_built/core/xf86-video-voodoo/PKGBUILD26
-rw-r--r--abs/not_built/core/xf86-video-xgi/PKGBUILD25
-rw-r--r--abs/not_built/core/xf86-video-xgixp/PKGBUILD25
-rw-r--r--abs/not_built/core/xf86bigfontproto/PKGBUILD25
-rw-r--r--abs/not_built/core/xmlrpc-c/PKGBUILD39
-rw-r--r--abs/not_built/core/xorg-apps/LICENSE1354
-rw-r--r--abs/not_built/core/xorg-apps/PKGBUILD16
-rw-r--r--abs/not_built/core/xorg-fonts-75dpi/PKGBUILD41
-rw-r--r--abs/not_built/core/xorg-fonts-75dpi/xfonts.install20
-rw-r--r--abs/not_built/core/xorg-res-utils/LICENSE.listres42
-rw-r--r--abs/not_built/core/xorg-res-utils/LICENSE.viewres42
-rw-r--r--abs/not_built/core/xorg-res-utils/PKGBUILD38
-rw-r--r--abs/not_built/core/xorg-utils/LICENSE.xdpyinfo26
-rw-r--r--abs/not_built/core/xorg-utils/LICENSE.xfd25
-rw-r--r--abs/not_built/core/xorg-utils/LICENSE.xlsfonts22
-rw-r--r--abs/not_built/core/xorg-utils/LICENSE.xprop45
-rw-r--r--abs/not_built/core/xorg-utils/PKGBUILD56
-rw-r--r--abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap22
-rw-r--r--abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd22
-rw-r--r--abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils22
-rw-r--r--abs/not_built/core/xorg-xkb-utils/PKGBUILD42
-rw-r--r--abs/not_built/core/xorg-xmessage/PKGBUILD23
-rw-r--r--abs/not_built/extra/abs/PKGBUILD31
-rw-r--r--abs/not_built/extra/abs/abs.install12
-rw-r--r--abs/not_built/extra/alpine/2.00-lpam.patch13
-rw-r--r--abs/not_built/extra/alpine/CVE-2008-5514.patch20
-rw-r--r--abs/not_built/extra/alpine/ChangeLog43
-rw-r--r--abs/not_built/extra/alpine/PKGBUILD37
-rw-r--r--abs/not_built/extra/alsa-driver/PKGBUILD25
-rw-r--r--abs/not_built/extra/alsa-driver/alsa-driver.install8
-rw-r--r--abs/not_built/extra/alsa-firmware/PKGBUILD37
-rw-r--r--abs/not_built/extra/apcupsd/PKGBUILD38
-rwxr-xr-xabs/not_built/extra/apcupsd/apcupsd44
-rw-r--r--abs/not_built/extra/apcupsd/apcupsd.conf325
-rw-r--r--abs/not_built/extra/apcupsd/run4
-rw-r--r--abs/not_built/extra/bash-completion/PKGBUILD33
-rw-r--r--abs/not_built/extra/beautiful-soup/PKGBUILD19
-rw-r--r--abs/not_built/extra/bluez-firmware/PKGBUILD25
-rw-r--r--abs/not_built/extra/bluez-hcidump/PKGBUILD27
-rw-r--r--abs/not_built/extra/cabextract/PKGBUILD23
-rw-r--r--abs/not_built/extra/ccache/PKGBUILD34
-rw-r--r--abs/not_built/extra/celt-0.7/PKGBUILD36
-rw-r--r--abs/not_built/extra/community/agg/PKGBUILD34
-rw-r--r--abs/not_built/extra/community/agg/agg-2.4-depends.patch48
-rw-r--r--abs/not_built/extra/community/agg/agg-2.5-pkgconfig.patch10
-rw-r--r--abs/not_built/extra/community/amule/PKGBUILD44
-rw-r--r--abs/not_built/extra/community/blockcontrol/PKGBUILD37
-rw-r--r--abs/not_built/extra/community/blockcontrol/blockcontrol.lib.patch15
-rw-r--r--abs/not_built/extra/community/chromium/PKGBUILD145
-rw-r--r--abs/not_built/extra/community/chromium/__changelog2
-rw-r--r--abs/not_built/extra/community/chromium/chromium-media-no-sse-r0.patch17
-rw-r--r--abs/not_built/extra/community/chromium/chromium.desktop113
-rw-r--r--abs/not_built/extra/community/chromium/chromium.install12
-rwxr-xr-xabs/not_built/extra/community/chromium/chromium.sh4
-rw-r--r--abs/not_built/extra/community/chromium/gcc-4.6.patch99
-rw-r--r--abs/not_built/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch17
-rw-r--r--abs/not_built/extra/community/chrpath/ChangeLog10
-rw-r--r--abs/not_built/extra/community/chrpath/PKGBUILD20
-rw-r--r--abs/not_built/extra/community/cksfv/PKGBUILD21
-rw-r--r--abs/not_built/extra/community/codecs/PKGBUILD22
-rw-r--r--abs/not_built/extra/community/curlftpfs/PKGBUILD30
-rw-r--r--abs/not_built/extra/community/curlftpfs/ioerror.patch11
-rw-r--r--abs/not_built/extra/community/cwiid-git/PKGBUILD67
-rw-r--r--abs/not_built/extra/community/cwiid-git/cwiid.install16
-rw-r--r--abs/not_built/extra/community/deluge/PKGBUILD40
-rw-r--r--abs/not_built/extra/community/deluge/__changelog1
-rw-r--r--abs/not_built/extra/community/deluge/deluge-web42
-rw-r--r--abs/not_built/extra/community/deluge/deluge.install29
-rw-r--r--abs/not_built/extra/community/deluge/deluged43
-rw-r--r--abs/not_built/extra/community/deluge/deluged.conf.d1
-rw-r--r--abs/not_built/extra/community/djmount/PKGBUILD25
-rw-r--r--abs/not_built/extra/community/djmount/djmount.confd2
-rwxr-xr-xabs/not_built/extra/community/djmount/djmount.rcd39
-rw-r--r--abs/not_built/extra/community/fluxconf/PKGBUILD24
-rw-r--r--abs/not_built/extra/community/fuzemux/PKGBUILD26
-rw-r--r--abs/not_built/extra/community/fuzemux/fuzemux.install5
-rw-r--r--abs/not_built/extra/community/gnash/PKGBUILD59
-rw-r--r--abs/not_built/extra/community/gpac/PKGBUILD44
-rw-r--r--abs/not_built/extra/community/gpac/libpng14-infopp-null.patch12
-rw-r--r--abs/not_built/extra/community/gtkglext/PKGBUILD25
-rw-r--r--abs/not_built/extra/community/gtkglext/gtkglext-1.0.6-pangox.patch30
-rw-r--r--abs/not_built/extra/community/ircii/PKGBUILD16
-rw-r--r--abs/not_built/extra/community/js/PKGBUILD31
-rw-r--r--abs/not_built/extra/community/js/spidermonkey-1.7-threadsafe.patch16
-rw-r--r--abs/not_built/extra/community/js/spidermonkey-Makefile.patch22
-rw-r--r--abs/not_built/extra/community/libcec/PKGBUILD30
-rw-r--r--abs/not_built/extra/community/libdnet/PKGBUILD33
-rw-r--r--abs/not_built/extra/community/libdnet/libdnet.install3
-rw-r--r--abs/not_built/extra/community/libelf/PKGBUILD25
-rw-r--r--abs/not_built/extra/community/libnetfilter_queue/PKGBUILD24
-rw-r--r--abs/not_built/extra/community/libnfnetlink/PKGBUILD22
-rw-r--r--abs/not_built/extra/community/libstdc++5/PKGBUILD41
-rw-r--r--abs/not_built/extra/community/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch11
-rw-r--r--abs/not_built/extra/community/mediatomb/PKGBUILD49
-rw-r--r--abs/not_built/extra/community/mediatomb/gcc46.patch10
-rw-r--r--abs/not_built/extra/community/mediatomb/mediatomb.conf23
-rw-r--r--abs/not_built/extra/community/mediatomb/mediatomb.install9
-rw-r--r--abs/not_built/extra/community/mediatomb/mediatomb.rc54
-rw-r--r--abs/not_built/extra/community/mediatomb/tonewjs.patch564
-rw-r--r--abs/not_built/extra/community/mmv/PKGBUILD35
-rw-r--r--abs/not_built/extra/community/mmv/mmv.install19
-rw-r--r--abs/not_built/extra/community/moblock/MoBlock-nfq.sh.patch53
-rwxr-xr-xabs/not_built/extra/community/moblock/PKGBUILD57
-rw-r--r--abs/not_built/extra/community/moblock/config30
-rwxr-xr-xabs/not_built/extra/community/moblock/moblock70
-rwxr-xr-xabs/not_built/extra/community/moblock/moblock-update174
-rw-r--r--abs/not_built/extra/community/moblock/moblock.install26
-rw-r--r--abs/not_built/extra/community/moblock/moblock.logrotate11
-rw-r--r--abs/not_built/extra/community/moblock/moblock_0.9_rc2.patch912
-rw-r--r--abs/not_built/extra/community/moblock/moblock_include.patch10
-rw-r--r--abs/not_built/extra/community/mobloquer/PKGBUILD26
-rw-r--r--abs/not_built/extra/community/motion-svn/PKGBUILD42
-rw-r--r--abs/not_built/extra/community/motion-svn/motion-svn.install11
-rw-r--r--abs/not_built/extra/community/motion-svn/rc.motion36
-rw-r--r--abs/not_built/extra/community/mre/PKGBUILD35
-rw-r--r--abs/not_built/extra/community/mre/mre-1.1.2.tar.gzbin0 -> 19685 bytes
-rwxr-xr-xabs/not_built/extra/community/mre/mre.install20
-rw-r--r--abs/not_built/extra/community/mre/mre.lr9
-rw-r--r--abs/not_built/extra/community/mre/patch.diff293
-rwxr-xr-xabs/not_built/extra/community/mre/run12
-rw-r--r--abs/not_built/extra/community/mythpywii/CONTROLS25
-rw-r--r--abs/not_built/extra/community/mythpywii/PKGBUILD37
-rw-r--r--abs/not_built/extra/community/mythpywii/mythpywii.install65
-rw-r--r--abs/not_built/extra/community/mythpywii/wiimote.rules6
-rw-r--r--abs/not_built/extra/community/nvclock/PKGBUILD27
-rw-r--r--abs/not_built/extra/community/nvclock/nvclock-0.8b4-buildfix.patch16
-rw-r--r--abs/not_built/extra/community/nxtvepg/PKGBUILD45
-rw-r--r--abs/not_built/extra/community/nxtvepg/nxtvepg-icon-16.pngbin0 -> 193 bytes
-rw-r--r--abs/not_built/extra/community/nxtvepg/nxtvepg-icon-32.pngbin0 -> 267 bytes
-rw-r--r--abs/not_built/extra/community/nxtvepg/nxtvepg-icon-48.pngbin0 -> 333 bytes
-rw-r--r--abs/not_built/extra/community/nxtvepg/nxtvepg.desktop10
-rw-r--r--abs/not_built/extra/community/nxtvepg/tcl_85.patch13
-rwxr-xr-xabs/not_built/extra/community/nzbperl/PKGBUILD16
-rw-r--r--abs/not_built/extra/community/patchutils/PKGBUILD27
-rwxr-xr-xabs/not_built/extra/community/peardb/PKGBUILD24
-rwxr-xr-xabs/not_built/extra/community/pearlog/PKGBUILD27
-rw-r--r--abs/not_built/extra/community/portaudio/PKGBUILD28
-rw-r--r--abs/not_built/extra/community/powernowd/PKGBUILD28
-rw-r--r--abs/not_built/extra/community/powernowd/finish25
-rw-r--r--abs/not_built/extra/community/powernowd/powernowd.conf.d6
-rw-r--r--abs/not_built/extra/community/powernowd/powernowd.install19
-rw-r--r--abs/not_built/extra/community/powernowd/run25
-rw-r--r--abs/not_built/extra/community/projectx/PKGBUILD45
-rw-r--r--abs/not_built/extra/community/projectx/projectx10
-rw-r--r--abs/not_built/extra/community/smplayer/ChangeLog74
-rw-r--r--abs/not_built/extra/community/smplayer/PKGBUILD35
-rw-r--r--abs/not_built/extra/community/squeezeboxserver/PKGBUILD34
-rw-r--r--abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.conf.d7
-rw-r--r--abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.install56
-rw-r--r--abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.rc47
-rw-r--r--abs/not_built/extra/community/tig/PKGBUILD27
-rw-r--r--abs/not_built/extra/community/transmission-cli/PKGBUILD45
-rwxr-xr-xabs/not_built/extra/community/transmission-cli/run.transmissiond29
-rw-r--r--abs/not_built/extra/community/transmission-cli/transmission-cli.install28
-rw-r--r--abs/not_built/extra/community/transmission-cli/transmission.include15
-rw-r--r--abs/not_built/extra/community/transmission-cli/transmissiond.conf2
-rw-r--r--abs/not_built/extra/community/tre/PKGBUILD28
-rw-r--r--abs/not_built/extra/community/twisted/PKGBUILD29
-rw-r--r--abs/not_built/extra/community/twisted/twisted.install11
-rw-r--r--abs/not_built/extra/community/unrar/PKGBUILD23
-rw-r--r--abs/not_built/extra/community/unrar/unrar-3.5.2-optimalization-fix.patch12
-rw-r--r--abs/not_built/extra/community/uriparser/PKGBUILD22
-rw-r--r--abs/not_built/extra/community/uudeview/PKGBUILD30
-rw-r--r--abs/not_built/extra/community/video4fuze/PKGBUILD38
-rw-r--r--abs/not_built/extra/community/video4fuze/video4fuze.install9
-rw-r--r--abs/not_built/extra/community/vsftpd/PKGBUILD44
-rw-r--r--abs/not_built/extra/community/vsftpd/__changelog1
-rw-r--r--abs/not_built/extra/community/vsftpd/run13
-rw-r--r--abs/not_built/extra/community/vsftpd/vsftpd.d67
-rw-r--r--abs/not_built/extra/community/vsftpd/vsftpd.install17
-rw-r--r--abs/not_built/extra/community/vsftpd/vsftpd.xinetd10
-rw-r--r--abs/not_built/extra/community/zope-interface/PKGBUILD21
-rw-r--r--abs/not_built/extra/community/zvbi/PKGBUILD25
-rw-r--r--abs/not_built/extra/community/zvbi/fix-includes.patch36
-rw-r--r--abs/not_built/extra/congruity/PKGBUILD25
-rw-r--r--abs/not_built/extra/conky/PKGBUILD47
-rw-r--r--abs/not_built/extra/conky/current-power.patch12
-rw-r--r--abs/not_built/extra/consolekit/PKGBUILD45
-rw-r--r--abs/not_built/extra/consolekit/add_since_option.patch220
-rw-r--r--abs/not_built/extra/consolekit/consolekit.logrotate5
-rw-r--r--abs/not_built/extra/consolekit/nodaemon.patch9
-rw-r--r--abs/not_built/extra/consolekit/pam-foreground-compat.ck16
-rw-r--r--abs/not_built/extra/consolekit/reorder-initialization.patch40
-rw-r--r--abs/not_built/extra/cpufreqd/PKGBUILD30
-rw-r--r--abs/not_built/extra/cpufreqd/cpufreqd35
-rw-r--r--abs/not_built/extra/cpufreqd/cpufreqd.install26
-rw-r--r--abs/not_built/extra/cpufrequtils/PKGBUILD32
-rw-r--r--abs/not_built/extra/cpufrequtils/cpufreq.confd14
-rw-r--r--abs/not_built/extra/cpufrequtils/cpufreq.rcd60
-rw-r--r--abs/not_built/extra/crypto++/PKGBUILD36
-rw-r--r--abs/not_built/extra/crypto++/libcrypto++.pc11
-rw-r--r--abs/not_built/extra/crystalhd-firmware/PKGBUILD24
-rw-r--r--abs/not_built/extra/crystalhd-git/PKGBUILD52
-rw-r--r--abs/not_built/extra/crystalhd-git/crystalhd-git.install6
-rw-r--r--abs/not_built/extra/cvs/PKGBUILD28
-rw-r--r--abs/not_built/extra/cvs/cvs-1.11.23-getline64.patch34
-rw-r--r--abs/not_built/extra/cvs/cvs.install20
-rw-r--r--abs/not_built/extra/diffstat/PKGBUILD24
-rw-r--r--abs/not_built/extra/dpgconv/PKGBUILD22
-rw-r--r--abs/not_built/extra/dpgconv/dpgconv-panscan.patch83
-rw-r--r--abs/not_built/extra/exo/PKGBUILD33
-rw-r--r--abs/not_built/extra/exo/exo.install11
-rw-r--r--abs/not_built/extra/fakeroot/PKGBUILD28
-rw-r--r--abs/not_built/extra/fakeroot/fakeroot.install30
-rw-r--r--abs/not_built/extra/ffmpegthumbnailer/PKGBUILD30
-rw-r--r--abs/not_built/extra/fuppes-svn/PKGBUILD54
-rw-r--r--abs/not_built/extra/fuppes-svn/PKGBUILD.orig52
-rw-r--r--abs/not_built/extra/fuppes-svn/fuppes-r634-archlinux.patch93
-rw-r--r--abs/not_built/extra/fuppes-svn/fuppes.cfg216
-rw-r--r--abs/not_built/extra/fuppes-svn/fuppes.ch2
-rw-r--r--abs/not_built/extra/fuppes-svn/fuppes.diff25
-rw-r--r--abs/not_built/extra/fuppes-svn/fuppes.install20
-rw-r--r--abs/not_built/extra/fuppes-svn/fuppes.lr9
-rwxr-xr-xabs/not_built/extra/fuppes-svn/run2
-rw-r--r--abs/not_built/extra/gdl/PKGBUILD23
-rw-r--r--abs/not_built/extra/glib-perl/PKGBUILD27
-rw-r--r--abs/not_built/extra/glib-perl/__changelog1
-rw-r--r--abs/not_built/extra/gnome-desktop/PKGBUILD30
-rw-r--r--abs/not_built/extra/gnome-keyring/PKGBUILD28
-rw-r--r--abs/not_built/extra/gnome-keyring/gnome-keyring.install11
-rw-r--r--abs/not_built/extra/gnome-keyring/gnome-keyring.service3
-rw-r--r--abs/not_built/extra/gnome-menus/PKGBUILD33
-rw-r--r--abs/not_built/extra/gnome-menus/menus.patch25
-rw-r--r--abs/not_built/extra/gnupg/PKGBUILD29
-rw-r--r--abs/not_built/extra/gnupg/gnupg.install21
-rw-r--r--abs/not_built/extra/gnuplot/PKGBUILD34
-rw-r--r--abs/not_built/extra/gpgme/PKGBUILD25
-rw-r--r--abs/not_built/extra/gpgme/__changelog1
-rw-r--r--abs/not_built/extra/gpgme/gpgme.install18
-rw-r--r--abs/not_built/extra/graphload/PKGBUILD16
-rwxr-xr-xabs/not_built/extra/graphload/graphload.sh17
-rw-r--r--abs/not_built/extra/i2c-tools/Makefile.patch19
-rw-r--r--abs/not_built/extra/i2c-tools/PKGBUILD21
-rw-r--r--abs/not_built/extra/icon-naming-utils/PKGBUILD28
-rw-r--r--abs/not_built/extra/iso-codes/PKGBUILD19
-rw-r--r--abs/not_built/extra/jade/PKGBUILD31
-rw-r--r--abs/not_built/extra/libass/PKGBUILD30
-rw-r--r--abs/not_built/extra/libassuan/PKGBUILD26
-rw-r--r--abs/not_built/extra/libconcord/PKGBUILD29
-rw-r--r--abs/not_built/extra/libdvbpsi/PKGBUILD29
-rw-r--r--abs/not_built/extra/libdvdnav/PKGBUILD30
-rw-r--r--abs/not_built/extra/libdvdnav/deadlock.patch17
-rw-r--r--abs/not_built/extra/libffi/PKGBUILD24
-rw-r--r--abs/not_built/extra/libffi/libffi.install18
-rw-r--r--abs/not_built/extra/libgda/Changelog2
-rw-r--r--abs/not_built/extra/libgda/PKGBUILD30
-rw-r--r--abs/not_built/extra/libgda/bdb43.patch18
-rw-r--r--abs/not_built/extra/libgda/libgda.install16
-rw-r--r--abs/not_built/extra/libgksu/PKGBUILD31
-rw-r--r--abs/not_built/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch359
-rw-r--r--abs/not_built/extra/libgksu/libgksu.install17
-rw-r--r--abs/not_built/extra/libgnomekbd/PKGBUILD31
-rw-r--r--abs/not_built/extra/libgnomekbd/libgnomekbd.install17
-rw-r--r--abs/not_built/extra/libgtkhtml/PKGBUILD22
-rw-r--r--abs/not_built/extra/libgtop/PKGBUILD25
-rw-r--r--abs/not_built/extra/libgtop/libgtop.install13
-rw-r--r--abs/not_built/extra/libmms/PKGBUILD25
-rw-r--r--abs/not_built/extra/libmpcdec/PKGBUILD22
-rw-r--r--abs/not_built/extra/libmpdclient/PKGBUILD26
-rw-r--r--abs/not_built/extra/libmtp/PKGBUILD26
-rw-r--r--abs/not_built/extra/libmtp/__changelog1
-rw-r--r--abs/not_built/extra/libnl/PKGBUILD28
-rw-r--r--abs/not_built/extra/libnl/fix-compilation.patch10
-rw-r--r--abs/not_built/extra/liboil/PKGBUILD25
-rw-r--r--abs/not_built/extra/libupnp/PKGBUILD31
-rw-r--r--abs/not_built/extra/libxklavier/PKGBUILD27
-rw-r--r--abs/not_built/extra/make/PKGBUILD20
-rw-r--r--abs/not_built/extra/mdbtools/PKGBUILD24
-rw-r--r--abs/not_built/extra/mdbtools/gmdb2.desktop9
-rw-r--r--abs/not_built/extra/mediaserv/PKGBUILD33
-rw-r--r--abs/not_built/extra/mediaserv/finish8
-rw-r--r--abs/not_built/extra/mediaserv/linhes-mediaserv.tar.bz2bin0 -> 17322 bytes
-rw-r--r--abs/not_built/extra/mediaserv/mediaserv.install38
-rw-r--r--abs/not_built/extra/mediaserv/mediaserv.no_daemon.patch17
-rw-r--r--abs/not_built/extra/mediaserv/run8
-rw-r--r--abs/not_built/extra/mercurial/PKGBUILD41
-rw-r--r--abs/not_built/extra/mercurial/__changelog1
-rw-r--r--abs/not_built/extra/mercurial/mercurial.profile1
-rw-r--r--abs/not_built/extra/mingetty/PKGBUILD30
-rw-r--r--abs/not_built/extra/mingetty/mingetty-utf8.patch158
-rw-r--r--abs/not_built/extra/monitorix/PKGBUILD47
-rw-r--r--abs/not_built/extra/monitorix/monitorix.rc.d56
-rw-r--r--abs/not_built/extra/monitorix/readme.install54
-rw-r--r--abs/not_built/extra/most/PKGBUILD20
-rw-r--r--abs/not_built/extra/most/most-debian.patch1655
-rw-r--r--abs/not_built/extra/mpc/ChangeLog15
-rw-r--r--abs/not_built/extra/mpc/PKGBUILD27
-rw-r--r--abs/not_built/extra/mpeg_stat/PKGBUILD22
-rw-r--r--abs/not_built/extra/mpgtx/PKGBUILD23
-rw-r--r--abs/not_built/extra/mupen64plus-svn/PKGBUILD71
-rw-r--r--abs/not_built/extra/mupen64plus-svn/fix-gcc4.4-const-char.patch22
-rw-r--r--abs/not_built/extra/mupen64plus-svn/install.patch13
-rw-r--r--abs/not_built/extra/mupen64plus/PKGBUILD33
-rw-r--r--abs/not_built/extra/mutt/PKGBUILD39
-rw-r--r--abs/not_built/extra/mutt/mutt-unmailbox.patch10
-rw-r--r--abs/not_built/extra/mutt/mutt.install15
-rwxr-xr-xabs/not_built/extra/myt2xvid3/PKGBUILD18
-rw-r--r--abs/not_built/extra/myt2xvid3/archive.php159
-rwxr-xr-xabs/not_built/extra/myt2xvid3/myt2xvid3310
-rwxr-xr-xabs/not_built/extra/myt2xvid3/myt2xvid3-userjob.sh6
-rwxr-xr-xabs/not_built/extra/myt2xvid3/myt2xvid3.install38
-rwxr-xr-xabs/not_built/extra/myth2ipod/PKGBUILD19
-rwxr-xr-xabs/not_built/extra/myth2ipod/iPod.pm184
-rwxr-xr-xabs/not_built/extra/myth2ipod/m2iweb.php157
-rwxr-xr-xabs/not_built/extra/myth2ipod/myth2ipod310
-rwxr-xr-xabs/not_built/extra/myth2ipod/myth2ipod-userjob.sh6
-rwxr-xr-xabs/not_built/extra/myth2ipod/myth2ipod.install38
-rw-r--r--abs/not_built/extra/netkit-bsd-finger/LICENSE36
-rw-r--r--abs/not_built/extra/netkit-bsd-finger/PKGBUILD26
-rw-r--r--abs/not_built/extra/netkit-bsd-finger/finger.xinetd8
-rw-r--r--abs/not_built/extra/numlockx/PKGBUILD26
-rw-r--r--abs/not_built/extra/perl-time-hires/PKGBUILD26
-rw-r--r--abs/not_built/extra/perl-yaml/PKGBUILD28
-rw-r--r--abs/not_built/extra/phonon/PKGBUILD53
-rw-r--r--abs/not_built/extra/phpmyadmin/PKGBUILD48
-rw-r--r--abs/not_built/extra/phpmyadmin/__changelog2
-rw-r--r--abs/not_built/extra/pmount/PKGBUILD22
-rw-r--r--abs/not_built/extra/pmount/pmount-dbus-close.patch11
-rw-r--r--abs/not_built/extra/pptpclient/PKGBUILD21
-rw-r--r--abs/not_built/extra/procmail/PKGBUILD21
-rw-r--r--abs/not_built/extra/pth/PKGBUILD22
-rw-r--r--abs/not_built/extra/pyxis/PKGBUILD27
-rw-r--r--abs/not_built/extra/pyxis/__changelog2
-rw-r--r--abs/not_built/extra/pyxis/python2.patch90
-rw-r--r--abs/not_built/extra/qscintilla/PKGBUILD59
-rw-r--r--abs/not_built/extra/qscintilla/configure.py-objdir-support.diff39
-rw-r--r--abs/not_built/extra/quilt/PKGBUILD20
-rw-r--r--abs/not_built/extra/read-edid/PKGBUILD20
-rw-r--r--abs/not_built/extra/recstat/PKGBUILD19
-rw-r--r--abs/not_built/extra/recstat/recstat56
-rw-r--r--abs/not_built/extra/recstat/recstat.install13
-rw-r--r--abs/not_built/extra/recstat/recstat.py38
-rwxr-xr-xabs/not_built/extra/recstat/run7
-rw-r--r--abs/not_built/extra/rrd_stats/PKGBUILD31
-rw-r--r--abs/not_built/extra/rrd_stats/rrd_stats.install34
-rw-r--r--abs/not_built/extra/rrd_stats/rrd_stats.tgzbin0 -> 18248 bytes
-rw-r--r--abs/not_built/extra/rrd_stats/run_rrd.sh8
-rw-r--r--abs/not_built/extra/sample-media/PKGBUILD37
-rw-r--r--abs/not_built/extra/sample-media/audio/05-Hush.mp3bin0 -> 4946841 bytes
-rw-r--r--abs/not_built/extra/sample-media/images/115_1573.jpgbin0 -> 482585 bytes
-rw-r--r--abs/not_built/extra/sample-media/images/345-1217206791B81W.jpgbin0 -> 176991 bytes
-rw-r--r--abs/not_built/extra/sample-media/images/classic-menugraph.pngbin0 -> 144106 bytes
-rw-r--r--abs/not_built/extra/sample-media/images/dvr_menugraph.pngbin0 -> 207288 bytes
-rw-r--r--abs/not_built/extra/sample-media/images/menu_diagram_color.pngbin0 -> 193264 bytes
-rw-r--r--abs/not_built/extra/sample-media/rom/PACMAN.SMCbin0 -> 524800 bytes
-rw-r--r--abs/not_built/extra/sample-media/sample.install41
-rw-r--r--abs/not_built/extra/sample-media/video/TripThe1939.mpegbin0 -> 23128735 bytes
-rw-r--r--abs/not_built/extra/sane/PKGBUILD72
-rw-r--r--abs/not_built/extra/sane/libv4l-0.8.3.patch64
-rw-r--r--abs/not_built/extra/sane/sane.install7
-rw-r--r--abs/not_built/extra/sane/sane.xinetd11
-rw-r--r--abs/not_built/extra/sane/saned.service8
-rw-r--r--abs/not_built/extra/sane/saned.socket9
-rw-r--r--abs/not_built/extra/sane/xerox_mfp_fix_usb_devices.patch67
-rw-r--r--abs/not_built/extra/sdl_perl/PKGBUILD27
-rw-r--r--abs/not_built/extra/sdl_sound/PKGBUILD29
-rw-r--r--abs/not_built/extra/sdl_sound/flac.patch126
-rw-r--r--abs/not_built/extra/sdlmame/ChangeLog5
-rw-r--r--abs/not_built/extra/sdlmame/PKGBUILD102
-rw-r--r--abs/not_built/extra/sdlmame/extras.tar.gzbin0 -> 4093 bytes
-rw-r--r--abs/not_built/extra/sdlmame/mame-0137-wiimote.diff424
-rw-r--r--abs/not_built/extra/sdlmame/sdlmame.install29
-rw-r--r--abs/not_built/extra/sdlmame/sdlmame.sh58
-rw-r--r--abs/not_built/extra/shepherd/PKGBUILD17
-rw-r--r--abs/not_built/extra/swh-plugins/PKGBUILD28
-rw-r--r--abs/not_built/extra/tango-icon-theme/PKGBUILD30
-rw-r--r--abs/not_built/extra/tatir/PKGBUILD21
-rw-r--r--abs/not_built/extra/tatir/__delete1
-rw-r--r--abs/not_built/extra/tatir/tatir.install19
-rw-r--r--abs/not_built/extra/tatir/tatir.tar.bz2bin0 -> 4525 bytes
-rw-r--r--abs/not_built/extra/terminal/PKGBUILD32
-rw-r--r--abs/not_built/extra/terminal/terminal-dont-die-on-dbus-kill.patch10
-rw-r--r--abs/not_built/extra/terminal/terminal.install11
-rw-r--r--abs/not_built/extra/ttf-ms-fonts/PKGBUILD27
-rw-r--r--abs/not_built/extra/ttf-ms-fonts/ttf-ms-fonts.install55
-rw-r--r--abs/not_built/extra/twinhan-remote/PKGBUILD19
-rw-r--r--abs/not_built/extra/twinhan-remote/twinhan-remote.conf3
-rw-r--r--abs/not_built/extra/twinhan-remote/twinhan-remote.install19
-rw-r--r--abs/not_built/extra/twinhan-remote/usbkbd.kobin0 -> 8017 bytes
-rw-r--r--abs/not_built/extra/unetbootin/PKGBUILD35
-rw-r--r--abs/not_built/extra/vcdimager/PKGBUILD24
-rw-r--r--abs/not_built/extra/vcdimager/__changelog1
-rw-r--r--abs/not_built/extra/vcdimager/cdio.patch11
-rw-r--r--abs/not_built/extra/vcdimager/vcdimager.install19
-rw-r--r--abs/not_built/extra/vlc-nogui/PKGBUILD58
-rw-r--r--abs/not_built/extra/vlc-nogui/__changelog2
-rw-r--r--abs/not_built/extra/wireshark/PKGBUILD54
-rw-r--r--abs/not_built/extra/wireshark/wireshark-gtk.install11
-rw-r--r--abs/not_built/extra/wireshark/wireshark.install19
-rw-r--r--abs/not_built/extra/wxpython/ChangeLog48
-rw-r--r--abs/not_built/extra/wxpython/PKGBUILD33
-rw-r--r--abs/not_built/extra/wxpython/editra-aui.diff11
-rw-r--r--abs/not_built/extra/xalan-java/PKGBUILD22
-rw-r--r--abs/not_built/extra/xautomation/PKGBUILD22
-rw-r--r--abs/not_built/extra/xcb-util-keysyms/LICENSE267
-rw-r--r--abs/not_built/extra/xcb-util-keysyms/PKGBUILD38
-rw-r--r--abs/not_built/extra/xerces2-java/PKGBUILD26
-rw-r--r--abs/not_built/extra/xfconf/PKGBUILD37
-rw-r--r--abs/not_built/extra/xine-lib/ChangeLog106
-rw-r--r--abs/not_built/extra/xine-lib/PKGBUILD50
-rw-r--r--abs/not_built/extra/xine-lib/__changelog3
-rw-r--r--abs/not_built/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch13
-rw-r--r--abs/not_built/extra/xine-lib/xine-lib-1.1.19-xvmc.patch17
-rwxr-xr-xabs/not_built/extra/xine-lib/xine.install27
-rw-r--r--abs/not_built/extra/xine-ui/PKGBUILD43
-rw-r--r--abs/not_built/extra/xine-ui/fix_lirc.diff13
-rw-r--r--abs/not_built/extra/xine-ui/lirc-check-a89347673097.patch64
-rw-r--r--abs/not_built/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch19
-rw-r--r--abs/not_built/extra/xine-ui/xine-ui-xdg.diff206
-rw-r--r--abs/not_built/extra/xine-ui/xine-ui.install13
-rw-r--r--abs/not_built/extra/xmbmon/Makefile.in.patch37
-rw-r--r--abs/not_built/extra/xmbmon/PKGBUILD20
-rw-r--r--abs/not_built/extra/xulrunner/PKGBUILD69
-rw-r--r--abs/not_built/extra/xulrunner/enable-x86_64-tracemonkey.patch25
-rw-r--r--abs/not_built/extra/xulrunner/fix-mozilla-launcher.patch23
-rw-r--r--abs/not_built/extra/xulrunner/mozconfig36
-rw-r--r--abs/not_built/extra/xulrunner/mozilla-pkgconfig.patch70
-rw-r--r--abs/not_built/extra/xulrunner/python2.7.patch11
-rw-r--r--abs/not_built/extra/xulrunner/xulrunner-png14.patch11
-rw-r--r--abs/not_built/extra/xulrunner/xulrunner-version.patch13
900 files changed, 59160 insertions, 0 deletions
diff --git a/abs/not_built/core/LinHES-timezone/Makefile b/abs/not_built/core/LinHES-timezone/Makefile
new file mode 100644
index 0000000..d543638
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/Makefile
@@ -0,0 +1,62 @@
+all: linhes_timezone
+
+clean:
+ rm -Rf tables maps \
+ WorldTZ.mdb WorldTZ.mfd WorldTZ.mas WorldTZ.mws WorldTZ_readme.txt map_data.txt \
+ extract_map_data create_map_include linhes_timezone timezone_map.h
+
+#WorldTZ.mdb WorldTZ.mfd : WorldTZ_102.zip
+# unzip WorldTZ_102.zip ; touch WorldTZ.mdb WorldTZ.mfd
+
+tables/AttrDesc : WorldTZ.mdb
+ mkdir -p tables
+ for table in $$(mdb-tables WorldTZ.mdb) ; do mdb-export WorldTZ.mdb $$table > tables/$$table ; done
+ sed -i 's/ //g' tables/AttrDesc # Fix TZ corruption.
+ echo 1254 >> tables/11001 # Add Central African Republic to the UTC+1 borders.
+ grep -v ^7867$$ tables/11017 > tables/11017.tmp ; mv tables/11017.tmp tables/11017 # Remove WA from UTC+9
+ grep -v ^7866$$ tables/11017 > tables/11017.tmp ; mv tables/11017.tmp tables/11017 # Remove WA/SA border from UTC+9
+ echo 7867 >> tables/11016 # Put WA in UTC+8
+
+map_data.txt : extract_map_data WorldTZ.mfd
+ ./extract_map_data > map_data.txt
+
+extract_map_data : extract_map_data.c
+ cc --std=c99 -o extract_map_data -lm extract_map_data.c
+
+maps : map_data.txt tables/AttrDesc
+ mkdir maps
+ for zone in $$(cat tables/AttrDesc | grep 110 | grep -v 11000 | grep -v 11020 | cut -d ',' -f 1) ; \
+ do \
+ offset=$$(grep $$zone tables/AttrDesc | cut -d '"' -f 2 | sed 's/+//g' ) ; \
+ echo $$offset >> maps/zones ; \
+ boundary=boundary$$offset; \
+ echo $$boundary ; \
+ for section in $$(cat tables/$$zone) ; do grep "^$$section," map_data.txt >> maps/$$boundary ; done ; \
+ done ; \
+ for i in `cat tables/U8000 | grep -v ObjID | cut -d '"' -f 2 ` ; do \
+ echo i=$$i ; \
+ zone=$$(grep "^\\\"$$i\\\"," tables/U8000 | cut -d '"' -f 4) ; \
+ echo zone=$$zone ; \
+ tz_name=$$(grep "^\\\"$$i\\\"," tables/U7000 | cut -d '"' -f 4) ; \
+ echo tz_name=$$tz_name ; \
+ tz_lat=$$(grep "^$$i," tables/U5000 | cut -d ',' -f 2) ; \
+ echo tz_lat=$$tz_lat ; \
+ tz_lon=$$(grep "^$$i," tables/U6000 | cut -d ',' -f 2) ; \
+ echo tz_lon=$$tz_lon ; \
+ echo $$tz_lat $$tz_lon $$tz_name >> maps/places$$zone ; \
+ done ;\
+ for places in maps/places* ; do \
+ sort -g -r $$places > $$places.sorted ; mv $$places.sorted $$places ; \
+ done ; \
+ sort -g maps/zones > maps/zones.sorted
+ cat Tux.csv >> maps/boundary14
+
+./create_map_include : create_map_include.c maps
+ cc -lm --std=gnu99 -o ./create_map_include create_map_include.c
+
+timezone_map.h : ./create_map_include
+ ./create_map_include > timezone_map.h
+
+linhes_timezone : linhes_timezone.c timezone_map.h
+ cc --std=gnu99 -O3 -pthread -lXt -llirc_client -lm -o linhes_timezone linhes_timezone.c
+
diff --git a/abs/not_built/core/LinHES-timezone/PKGBUILD b/abs/not_built/core/LinHES-timezone/PKGBUILD
new file mode 100644
index 0000000..8864102
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $
+# Maintainer: Greg Frost <gregfrost1@bigpond.com>
+pkgname=LinHES-timezone
+pkgver=1
+pkgrel=10
+pkgdesc="GUI timezone selector used by LinHES-config."
+arch=('i686' 'x86_64')
+depends=()
+makedepends=(mdbtools)
+source=(Makefile
+ Tux.csv
+ WorldTZ_102.zip
+ create_map_include.c
+ extract_map_data.c
+ linhes_timezone.c)
+
+build() {
+ cd ${srcdir}
+ make
+ MVDIR=$startdir/pkg/usr/MythVantage
+ mkdir -p $MVDIR/bin
+ install -m 0755 linhes_timezone $MVDIR/bin/timezone.bin
+}
+
+md5sums=('53976e51e938c555f84b43c933339051'
+ '0710658b3b46cc659f56260c03b904ed'
+ '0d9e51af5f650dd329edce4531c42a58'
+ 'c01e2335603d8395004e32bae9060fde'
+ 'b20bd68272644f607fbfe7d50e7be42a'
+ '96e8dd40e3b7c9f5ba2423dc4243758b')
diff --git a/abs/not_built/core/LinHES-timezone/Tux.csv b/abs/not_built/core/LinHES-timezone/Tux.csv
new file mode 100644
index 0000000..c781230
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/Tux.csv
@@ -0,0 +1,1268 @@
+1,1,1,76.855404,-29.9543607
+1,1,1,76.92874033,-29.8978647
+1,1,1,77.039595,-29.7662397
+1,1,1,77.101748,-29.6618607
+1,1,1,77.20296833,-29.4918717
+1,1,1,77.21614533,-29.4420057
+1,1,1,77.22810267,-29.1836937
+1,1,1,77.24999233,-28.7108082
+1,1,1,77.136483,-28.4430318
+1,1,1,76.76400433,-28.0888536
+1,1,1,76.50763367,-27.8450787
+1,1,1,76.470453,-27.7418799
+1,1,1,76.61730033,-27.6816627
+1,1,1,76.75328567,-27.6258996
+1,1,1,76.92623267,-27.6951834
+1,1,1,77.235358,-27.9292605
+1,1,1,77.82467367,-28.3755045
+1,1,1,78.17055333,-28.453236
+1,1,1,79.450732,-28.4271351
+1,1,1,80.82728767,-28.3990692
+1,1,1,81.57573867,-28.269135
+1,1,1,82.33406533,-27.9265767
+1,1,1,82.82386233,-27.7053213
+1,1,1,83.14567633,-27.4522509
+1,1,1,83.55725167,-26.9646801
+1,1,1,83.84563667,-26.6230461
+1,1,1,83.978035,-26.5048983
+1,1,1,84.14106833,-26.4436992
+1,1,1,84.410816,-26.342442
+1,1,1,84.553379,-26.5419792
+1,1,1,84.54716033,-27.012081
+1,1,1,84.54428433,-27.2295078
+1,1,1,84.516651,-27.370002
+1,1,1,84.40524567,-27.7336173
+1,1,1,84.10637767,-28.7090871
+1,1,1,84.01263633,-29.2582017
+1,1,1,84.09731667,-29.5373907
+1,1,1,84.146749,-29.7003687
+1,1,1,84.30427033,-29.8236867
+1,1,1,84.447027,-29.8111707
+1,1,1,84.54704167,-29.8023987
+1,1,1,84.551579,-29.7957657
+1,1,1,84.576327,-29.6220807
+1,1,1,84.590433,-29.5230807
+1,1,1,84.646968,-29.1855807
+1,1,1,84.70196033,-28.872081
+1,1,1,84.75695233,-28.558581
+1,1,1,84.82448533,-28.153581
+1,1,1,84.852034,-27.972081
+1,1,1,84.92401,-27.4978746
+1,1,1,84.97764,-26.0267505
+1,1,1,84.98108467,-24.432081
+1,1,1,84.984057,-23.0559882
+1,1,1,84.98429267,-23.0514891
+1,1,1,85.064223,-22.8429828
+1,1,1,85.12628933,-22.681077
+1,1,1,85.182713,-22.5995196
+1,1,1,85.314223,-22.4816214
+1,1,1,85.515724,-22.3009764
+1,1,1,85.70807133,-22.2370386
+1,1,1,86.136654,-22.208238
+1,1,1,86.422576,-22.1890242
+1,1,1,86.46410867,-22.0055526
+1,1,1,86.55894167,-21.5866278
+1,1,1,86.83585067,-21.3499071
+1,1,1,87.38406533,-21.2191119
+1,1,1,87.560966,-21.1769061
+1,1,1,87.73832567,-21.1632777
+1,1,1,88.11739867,-21.1627617
+1,1,1,88.667827,-21.1620123
+1,1,1,88.81997067,-21.1929951
+1,1,1,89.31645833,-21.4069392
+1,1,1,89.538465,-21.5026053
+1,1,1,89.73406533,-21.5371119
+1,1,1,89.73406533,-21.4806105
+1,1,1,89.73406533,-21.4362687
+1,1,1,89.463923,-21.2078802
+1,1,1,89.245717,-21.0677427
+1,1,1,89.132385,-20.9949579
+1,1,1,88.93715033,-20.8976658
+1,1,1,88.811862,-20.8515381
+1,1,1,88.64378133,-20.7896553
+1,1,1,88.58136233,-20.7511659
+1,1,1,88.573754,-20.7047133
+1,1,1,88.568083,-20.6700873
+1,1,1,88.61667767,-20.46858
+1,1,1,88.68174267,-20.2569192
+1,1,1,88.87554667,-19.6264602
+1,1,1,88.94017267,-19.2255144
+1,1,1,88.94444667,-18.627081
+1,1,1,88.95149667,-17.6398806
+1,1,1,88.755679,-16.9871793
+1,1,1,88.12010267,-15.8793735
+1,1,1,87.53107533,-14.8527021
+1,1,1,86.906687,-14.0993799
+1,1,1,86.411835,-13.8183546
+1,1,1,86.27147167,-13.7386428
+1,1,1,86.100732,-13.6845003
+1,1,1,86.100732,-13.7197026
+1,1,1,86.100732,-13.7302218
+1,1,1,86.21937033,-13.8903102
+1,1,1,86.36437233,-14.0754549
+1,1,1,87.04365433,-14.9427879
+1,1,1,87.74921167,-16.0510407
+1,1,1,88.05093167,-16.7246151
+1,1,1,88.29283867,-17.2646601
+1,1,1,88.475271,-17.9958819
+1,1,1,88.534416,-18.6625104
+1,1,1,88.63134367,-19.7549865
+1,1,1,88.30012167,-20.6880249
+1,1,1,87.73406533,-20.9170656
+1,1,1,87.62101267,-20.9628093
+1,1,1,87.49374967,-20.9805066
+1,1,1,87.21739867,-20.9889129
+1,1,1,86.77804267,-21.0022779
+1,1,1,86.71652967,-20.9806425
+1,1,1,86.600911,-20.772081
+1,1,1,86.51775633,-20.622081
+1,1,1,86.49607367,-19.422081
+1,1,1,86.459138,-17.3779224
+1,1,1,86.35176733,-17.0298399
+1,1,1,85.16175567,-15.0963924
+1,1,1,84.79572233,-14.5016874
+1,1,1,84.72367033,-14.3450778
+1,1,1,84.567994,-13.8058203
+1,1,1,84.247566,-12.6958665
+1,1,1,83.93769367,-12.0451716
+1,1,1,83.44948267,-11.457081
+1,1,1,82.707034,-10.5627393
+1,1,1,82.610579,-10.192056
+1,1,1,82.90503633,-9.364743
+1,1,1,83.095287,-8.830212
+1,1,1,83.09175067,-8.5522572
+1,1,1,82.89236233,-8.3687127
+1,1,1,82.745919,-8.233905
+1,1,1,82.63204133,-8.1882813
+1,1,1,81.96194267,-7.9959492
+1,1,1,80.94620867,-7.7044128
+1,1,1,80.47644333,-7.4435208
+1,1,1,80.346353,-7.098705
+1,1,1,80.217653,-6.7575747
+1,1,1,80.31044067,-6.2076204
+1,1,1,80.54299267,-5.9332134
+1,1,1,80.709859,-5.7363147
+1,1,1,80.92306,-5.6518473
+1,1,1,81.249935,-5.6531328
+1,1,1,81.46517933,-5.6539794
+1,1,1,81.55348967,-5.6692146
+1,1,1,81.702253,-5.7311661
+1,1,1,81.93476967,-5.8279965
+1,1,1,82.11721033,-5.9709996
+1,1,1,82.210109,-6.1292406
+1,1,1,82.30952767,-6.2985879
+1,1,1,82.305878,-6.7035003
+1,1,1,82.20224167,-7.002081
+1,1,1,82.034794,-7.4845062
+1,1,1,82.03911733,-7.4326629
+1,1,1,82.158339,-7.5285348
+1,1,1,82.37780267,-7.7050164
+1,1,1,82.71869167,-7.7190024
+1,1,1,82.87032167,-7.5577458
+1,1,1,82.99996367,-7.419873
+1,1,1,83.039238,-7.2783555
+1,1,1,83.05783367,-6.882081
+1,1,1,83.078155,-6.4490289
+1,1,1,83.02605433,-6.1615194
+1,1,1,82.82885033,-5.6184666
+1,1,1,82.558491,-4.8739614
+1,1,1,82.28860033,-4.6589769
+1,1,1,81.47380867,-4.5390918
+1,1,1,80.86367067,-4.4493186
+1,1,1,80.531004,-4.5204525
+1,1,1,80.22387067,-4.8063654
+1,1,1,79.741864,-5.2550691
+1,1,1,79.50483867,-5.9726496
+1,1,1,79.60021367,-6.6944496
+1,1,1,79.652888,-7.0930872
+1,1,1,79.643091,-7.1093583
+1,1,1,79.392839,-7.0388766
+1,1,1,79.16874567,-6.9757623
+1,1,1,78.68066533,-6.9245205
+1,1,1,78.397751,-6.9344061
+1,1,1,78.09219233,-6.9450828
+1,1,1,78.06754467,-6.9213609
+1,1,1,78.066821,-6.6159078
+1,1,1,78.06386633,-5.3686707
+1,1,1,77.64740567,-4.6928508
+1,1,1,76.88406533,-4.6965666
+1,1,1,76.352924,-4.699152
+1,1,1,75.923553,-5.05956
+1,1,1,75.76358567,-5.637081
+1,1,1,75.70119133,-5.8623393
+1,1,1,75.71174367,-6.50646
+1,1,1,75.783982,-6.882081
+1,1,1,75.926123,-7.6211817
+1,1,1,76.238141,-7.9884852
+1,1,1,76.47843367,-7.699581
+1,1,1,76.57874333,-7.5789789
+1,1,1,76.66785,-7.4229411
+1,1,1,76.66603233,-7.3710708
+1,1,1,76.665281,-7.3496265
+1,1,1,76.591027,-7.3010112
+1,1,1,76.501024,-7.2630369
+1,1,1,76.40085433,-7.2207732
+1,1,1,76.310634,-7.1550414
+1,1,1,76.268421,-7.0935699
+1,1,1,76.08144633,-6.8212914
+1,1,1,75.98584067,-6.3342483
+1,1,1,76.06770867,-6.0710841
+1,1,1,76.17040333,-5.740974
+1,1,1,76.67391267,-5.5373964
+1,1,1,77.02102633,-5.6856411
+1,1,1,77.31483533,-5.8111203
+1,1,1,77.62551633,-6.3944817
+1,1,1,77.59250267,-6.758694
+1,1,1,77.566032,-7.0507236
+1,1,1,77.506503,-7.1408397
+1,1,1,77.211671,-7.3352052
+1,1,1,77.06815467,-7.4298174
+1,1,1,76.830732,-7.6036137
+1,1,1,76.68406533,-7.7214198
+1,1,1,76.53739867,-7.8392259
+1,1,1,76.35739867,-7.9744995
+1,1,1,76.28406533,-8.0220279
+1,1,1,75.90931267,-8.2649109
+1,1,1,75.70080967,-8.5503375
+1,1,1,75.70075833,-8.8205352
+1,1,1,75.70072467,-8.9979627
+1,1,1,75.78157233,-9.0923688
+1,1,1,76.03033933,-9.2053884
+1,1,1,76.22540433,-9.2940099
+1,1,1,76.40432967,-9.4502322
+1,1,1,76.590694,-9.6946422
+1,1,1,76.839235,-10.0205949
+1,1,1,77.13504633,-10.1231244
+1,1,1,77.81739867,-10.1198235
+1,1,1,78.64636833,-10.1158131
+1,1,1,79.38927067,-9.9577836
+1,1,1,80.78353167,-9.4888698
+1,1,1,81.53932767,-9.2346828
+1,1,1,81.75062,-9.1519146
+1,1,1,81.794837,-9.0927183
+1,1,1,81.915689,-8.930925
+1,1,1,82.06130433,-8.817081
+1,1,1,82.14739867,-8.817081
+1,1,1,82.26254533,-8.817081
+1,1,1,82.36739867,-8.9161275
+1,1,1,82.36739867,-9.024897
+1,1,1,82.36739867,-9.206961
+1,1,1,82.053905,-9.3560016
+1,1,1,80.96739867,-9.6904827
+1,1,1,80.64656533,-9.7892514
+1,1,1,80.15156567,-9.9691704
+1,1,1,79.86739867,-10.0903026
+1,1,1,79.29183033,-10.3356516
+1,1,1,79.13397767,-10.3870272
+1,1,1,78.75541833,-10.4522145
+1,1,1,78.44709567,-10.5053073
+1,1,1,77.72847233,-10.5112692
+1,1,1,77.33799367,-10.4639739
+1,1,1,77.01553533,-10.4249175
+1,1,1,76.82474667,-10.4463762
+1,1,1,76.840486,-10.5199308
+1,1,1,76.857139,-10.5977556
+1,1,1,77.59504167,-11.1194427
+1,1,1,77.76571833,-11.1740574
+1,1,1,78.00549033,-11.2507821
+1,1,1,78.47855267,-11.2641102
+1,1,1,78.78804667,-11.2028607
+1,1,1,79.25106733,-11.1112278
+1,1,1,80.71495133,-10.5459018
+1,1,1,81.438632,-10.1792517
+1,1,1,81.684003,-10.0549356
+1,1,1,81.819503,-10.0041243
+1,1,1,81.906403,-10.003842
+1,1,1,82.05345267,-10.0033644
+1,1,1,82.16739867,-10.0854555
+1,1,1,82.16739867,-10.191873
+1,1,1,82.16739867,-10.3062546
+1,1,1,81.92110233,-10.5003639
+1,1,1,81.64838133,-10.6009173
+1,1,1,81.174322,-10.7757051
+1,1,1,81.072904,-10.8235059
+1,1,1,80.600732,-11.0946978
+1,1,1,79.95183567,-11.4673914
+1,1,1,79.66962367,-11.6529351
+1,1,1,79.243827,-11.9868108
+1,1,1,78.786,-12.3458022
+1,1,1,78.65726133,-12.3943269
+1,1,1,78.150732,-12.3988248
+1,1,1,77.745759,-12.4024212
+1,1,1,77.62394067,-12.3660336
+1,1,1,77.35892667,-12.1623093
+1,1,1,77.152538,-12.0036525
+1,1,1,76.65945067,-11.4503094
+1,1,1,76.51906367,-11.2198146
+1,1,1,76.37376833,-10.9812612
+1,1,1,76.04734067,-10.647081
+1,1,1,75.95961667,-10.647081
+1,1,1,75.90277433,-10.647081
+1,1,1,75.897383,-10.6603773
+1,1,1,75.80147867,-11.037081
+1,1,1,75.73310833,-11.3056344
+1,1,1,75.487643,-11.8160808
+1,1,1,75.08803067,-12.5206992
+1,1,1,74.60510933,-13.3722126
+1,1,1,74.58443433,-13.4465865
+1,1,1,74.583096,-14.337081
+1,1,1,74.581978,-15.081264
+1,1,1,74.602826,-15.0165909
+1,1,1,74.2011,-15.522081
+1,1,1,73.70643267,-16.1445192
+1,1,1,72.94018733,-17.774859
+1,1,1,72.755877,-18.597081
+1,1,1,72.61772367,-19.2133944
+1,1,1,72.52044367,-20.2588974
+1,1,1,72.54652333,-20.847081
+1,1,1,72.56724433,-21.3144093
+1,1,1,72.54048367,-21.4544064
+1,1,1,72.41739867,-21.5225967
+1,1,1,72.29094533,-21.5926533
+1,1,1,72.13967633,-21.5202696
+1,1,1,71.83101133,-21.2420052
+1,1,1,71.34181367,-20.8009887
+1,1,1,71.18672967,-20.4366534
+1,1,1,71.19042133,-19.737081
+1,1,1,71.192773,-19.2915099
+1,1,1,71.23668333,-18.9518016
+1,1,1,71.33486267,-18.6196296
+1,1,1,71.41748833,-18.34008
+1,1,1,71.419239,-18.2595
+1,1,1,71.34239867,-18.2727102
+1,1,1,71.26374233,-18.2862324
+1,1,1,71.08480933,-18.6186462
+1,1,1,70.99736733,-18.9136938
+1,1,1,70.94423633,-19.0929687
+1,1,1,70.92262267,-19.2748251
+1,1,1,70.91020433,-19.647081
+1,1,1,70.89503933,-20.1016662
+1,1,1,70.90072433,-20.1702489
+1,1,1,70.97983433,-20.487081
+1,1,1,71.07909133,-20.8846017
+1,1,1,71.27018533,-21.2592948
+1,1,1,71.53267267,-21.571074
+1,1,1,71.93530067,-22.0493106
+1,1,1,73.97860667,-23.6830821
+1,1,1,75.340802,-24.6159495
+1,1,1,75.66534067,-24.8382021
+1,1,1,76.02974533,-25.1161581
+1,1,1,76.15059033,-25.2336294
+1,1,1,76.87062033,-25.9335582
+1,1,1,76.72979533,-26.5766649
+1,1,1,75.747889,-27.0726498
+1,1,1,75.59361933,-27.1505751
+1,1,1,75.46739867,-27.2193429
+1,1,1,75.46739867,-27.2254671
+1,1,1,75.46739867,-27.2315913
+1,1,1,75.59283967,-27.3885846
+1,1,1,75.74615667,-27.5743416
+1,1,1,76.310185,-28.2577107
+1,1,1,76.637808,-28.7580405
+1,1,1,76.751267,-29.1092967
+1,1,1,76.82604367,-29.3407977
+1,1,1,76.82189333,-29.6727987
+1,1,1,76.741545,-29.8869987
+1,1,1,76.70645533,-29.9805447
+1,1,1,76.68771767,-30.057081
+1,1,1,76.69990567,-30.057081
+1,1,1,76.71209333,-30.057081
+1,1,1,76.78206767,-30.010857
+1,1,1,76.855404,-29.9543607
+1,,,,
+1,1,1,83.39948633,-9.0116883
+1,1,1,83.39948633,-9.7644165
+1,1,1,82.40413033,-9.9231924
+1,1,1,81.92041533,-10.1937858
+1,1,1,81.47003367,-10.5693795
+1,1,1,78.88129267,-11.626791
+1,1,1,78.19452267,-11.626791
+1,1,1,77.08985933,-11.4189588
+1,1,1,75.745382,-9.9346131
+1,1,1,75.57289233,-8.9516883
+1,1,1,75.57289233,-8.3789601
+1,1,1,76.384915,-7.9201842
+1,1,1,76.83529667,-7.5445908
+1,1,1,77.28567833,-7.1689971
+1,1,1,77.80775267,-6.8165856
+1,1,1,78.69452267,-6.9665856
+1,1,1,79.38129267,-6.9665856
+1,1,1,80.453367,-7.2589971
+1,1,1,80.90374867,-7.6345908
+1,1,1,81.80413033,-7.9051842
+1,1,1,83.39948633,-8.0789601
+1,1,1,83.39948633,-9.0116883
+1,,,,
+1,1,1,65.25322551,-29.1342738
+1,1,1,66.27848633,-29.5533651
+1,1,1,68.66675,-30.084747
+1,1,1,69.50831067,-30.188865
+1,1,1,70.07025467,-30.400833
+1,1,1,73.78959533,-31.181817
+1,1,1,74.64648233,-31.181817
+1,1,1,75.916137,-30.354951
+1,1,1,76.12565833,-29.1327939
+1,1,1,75.768862,-27.8902383
+1,1,1,74.18628467,-25.5899535
+1,1,1,72.96332333,-22.5742398
+1,1,1,70.004886,-21.5368506
+1,1,1,69.70502533,-21.66834
+1,1,1,69.46355367,-22.0252677
+1,1,1,69.35664667,-22.0862301
+1,1,1,69.14370867,-22.2076554
+1,1,1,68.90653467,-22.476036
+1,1,1,68.755944,-22.8103248
+1,1,1,68.59962233,-23.1573357
+1,1,1,68.456656,-23.5826853
+1,1,1,68.28187143,-24.2029191
+1,1,1,67.93997497,-24.8220828
+1,1,1,66.54368527,-24.2653119
+1,1,1,65.58733593,-24.7126806
+1,1,1,65.23879317,-25.6663359
+1,1,1,65.83377103,-28.0102998
+1,1,1,65.25322551,-29.1342738
+1,,,,
+1,1,1,92.80707967,-25.6089555
+1,1,1,93.447312,-26.0799999
+1,1,1,94.44908733,-26.4293025
+1,1,1,94.902563,-27.2116317
+1,1,1,94.04073333,-28.1395176
+1,1,1,93.29644233,-28.4666676
+1,1,1,92.202278,-28.9346199
+1,1,1,90.70235733,-29.576106
+1,1,1,89.76382233,-30.192921
+1,1,1,89.075979,-30.598998
+1,1,1,88.389209,-31.141311
+1,1,1,86.79820267,-31.457385
+1,1,1,86.07394933,-31.380675
+1,1,1,85.61789,-31.09584
+1,1,1,85.10331433,-27.8321808
+1,1,1,85.26955667,-26.7613737
+1,1,1,85.26955667,-26.1886455
+1,1,1,84.493746,-23.9073477
+1,1,1,85.73500267,-22.5149148
+1,1,1,86.93859867,-22.3087944
+1,1,1,87.974941,-23.2965903
+1,1,1,88.73703267,-23.9744832
+1,1,1,89.36738,-23.5917795
+1,1,1,90.36322833,-23.0082537
+1,1,1,91.116409,-22.8587616
+1,1,1,91.36382433,-22.8096543
+1,1,1,91.37498,-22.5768555
+1,1,1,91.88970533,-22.8199668
+1,1,1,92.13714233,-22.9368345
+1,1,1,92.27856133,-23.303886
+1,1,1,92.30609367,-23.6162919
+1,1,1,92.35042733,-24.1193412
+1,1,1,92.40536433,-25.1873916
+1,1,1,92.80707967,-25.6089555
+1,,,,
+1,1,1,76.796339,-30.465903
+1,1,1,76.348262,-30.659355
+1,1,1,75.53406533,-31.274514
+1,1,1,75.071888,-31.623708
+1,1,1,74.86334667,-31.752909
+1,1,1,74.64112133,-31.827741
+1,1,1,74.45791933,-31.88943
+1,1,1,74.04635933,-31.925751
+1,1,1,73.850732,-31.897494
+1,1,1,73.43139467,-31.836921
+1,1,1,72.90028733,-31.675335
+1,1,1,71.660628,-31.231164
+1,1,1,70.25954733,-30.729156
+1,1,1,69.72204033,-30.585687
+1,1,1,68.21739867,-30.312117
+1,1,1,67.247373,-30.13575
+1,1,1,65.887164,-29.8360017
+1,1,1,65.621183,-29.7399897
+1,1,1,65.38106,-29.6533137
+1,1,1,65.131335,-29.4707157
+1,1,1,65.05505133,-29.3260347
+1,1,1,65.019468,-29.2585467
+1,1,1,65.000732,-29.1433707
+1,1,1,65.000732,-28.9921137
+1,1,1,65.000732,-28.7892867
+1,1,1,65.024892,-28.6968354
+1,1,1,65.19946033,-28.2316485
+1,1,1,65.51655333,-27.3866643
+1,1,1,65.531868,-27.0409599
+1,1,1,65.285382,-26.292081
+1,1,1,65.01223733,-25.4622072
+1,1,1,65.076128,-24.860463
+1,1,1,65.46956567,-24.5573715
+1,1,1,65.69200033,-24.3860154
+1,1,1,65.854067,-24.3571404
+1,1,1,66.59622667,-24.3566376
+1,1,1,67.317763,-24.3561486
+1,1,1,67.561471,-24.3227136
+1,1,1,67.840791,-24.1858911
+1,1,1,68.16241633,-24.0283458
+1,1,1,68.343495,-23.7879642
+1,1,1,68.556043,-23.2363968
+1,1,1,68.69392533,-22.8785889
+1,1,1,68.782491,-22.737081
+1,1,1,68.86855067,-22.737081
+1,1,1,68.94116133,-22.737081
+1,1,1,69.00043267,-22.8923652
+1,1,1,69.00023567,-23.082081
+1,1,1,69.000062,-23.2492884
+1,1,1,68.79049567,-23.9580537
+1,1,1,68.68674667,-24.1423191
+1,1,1,68.57587233,-24.3392385
+1,1,1,68.42646333,-24.4909803
+1,1,1,68.25375,-24.5820753
+1,1,1,67.93090367,-24.7523559
+1,1,1,67.30938033,-24.7989714
+1,1,1,66.627499,-24.7040478
+1,1,1,66.19182133,-24.6433974
+1,1,1,65.941701,-24.6560673
+1,1,1,65.77515233,-24.7472232
+1,1,1,65.52823067,-24.882369
+1,1,1,65.487836,-25.1859936
+1,1,1,65.66699233,-25.5602001
+1,1,1,66.01370067,-26.2843758
+1,1,1,66.08016167,-26.4377292
+1,1,1,66.15319633,-26.682081
+1,1,1,66.24046867,-26.9740665
+1,1,1,66.25429233,-27.2271084
+1,1,1,66.199556,-27.5306793
+1,1,1,66.14534667,-27.8313255
+1,1,1,66.04962,-28.0186785
+1,1,1,65.766527,-28.378188
+1,1,1,65.62077233,-28.5632871
+1,1,1,65.48698967,-28.7620893
+1,1,1,65.469232,-28.8199713
+1,1,1,65.41939033,-28.9824327
+1,1,1,65.49289333,-29.1072927
+1,1,1,65.69176233,-29.1979917
+1,1,1,65.86036133,-29.2748817
+1,1,1,68.26560033,-29.8337757
+1,1,1,69.96739867,-30.191496
+1,1,1,70.48989867,-30.301326
+1,1,1,71.442819,-30.511125
+1,1,1,72.084999,-30.657711
+1,1,1,72.72717933,-30.8043
+1,1,1,73.39467933,-30.939909
+1,1,1,73.56833233,-30.959067
+1,1,1,74.10169033,-31.017906
+1,1,1,74.60002667,-30.948642
+1,1,1,74.942352,-30.768087
+1,1,1,75.421196,-30.515529
+1,1,1,75.7536,-29.8888437
+1,1,1,75.79281367,-29.1647037
+1,1,1,75.81862433,-28.6880682
+1,1,1,75.70168733,-28.2612894
+1,1,1,75.392592,-27.7040352
+1,1,1,75.15765367,-27.2804757
+1,1,1,75.041572,-27.1140684
+1,1,1,73.91585533,-25.587081
+1,1,1,71.933664,-22.8983217
+1,1,1,71.07248333,-22.0019325
+1,1,1,70.34005433,-21.865086
+1,1,1,70.104947,-21.8211588
+1,1,1,69.94548167,-21.8455335
+1,1,1,69.63044533,-21.9735519
+1,1,1,69.325104,-22.097631
+1,1,1,69.221955,-22.1041212
+1,1,1,69.14895333,-22.0038483
+1,1,1,69.07888667,-21.9076065
+1,1,1,69.02299933,-21.3710013
+1,1,1,69.04253633,-20.982081
+1,1,1,69.06530533,-20.5288287
+1,1,1,69.16171833,-20.258697
+1,1,1,69.52972033,-19.617081
+1,1,1,70.256524,-18.3498906
+1,1,1,70.55372667,-17.7458586
+1,1,1,71.050097,-16.527081
+1,1,1,71.558985,-15.2775687
+1,1,1,71.76555233,-14.9332044
+1,1,1,72.57072267,-13.992081
+1,1,1,73.01040833,-13.4781546
+1,1,1,73.543055,-12.8023269
+1,1,1,73.91984733,-12.2802978
+1,1,1,74.06205267,-12.0832785
+1,1,1,74.339017,-11.719581
+1,1,1,74.53532367,-11.472081
+1,1,1,75.095885,-10.765335
+1,1,1,75.122056,-10.6978155
+1,1,1,75.06933133,-10.0943745
+1,1,1,74.98993067,-9.1856298
+1,1,1,74.858305,-6.138222
+1,1,1,74.855428,-5.142081
+1,1,1,74.85268733,-4.1930634
+1,1,1,74.85957767,-4.0511133
+1,1,1,74.92707167,-3.6661065
+1,1,1,75.064661,-2.88125388
+1,1,1,75.277857,-2.29223148
+1,1,1,75.60891567,-1.78229424
+1,1,1,75.738286,-1.58302263
+1,1,1,75.87990233,-1.42565259
+1,1,1,76.150732,-1.18020579
+1,1,1,76.69153767,-0.69008577
+1,1,1,77.15508567,-0.45480666
+1,1,1,77.94670067,-0.26864106
+1,1,1,78.591125,-0.11709054
+1,1,1,78.751945,-0.10202856
+1,1,1,79.71739867,-0.10280205
+1,1,1,80.70900433,-0.10359648
+1,1,1,81.027966,-0.13896987
+1,1,1,81.76739867,-0.33015063
+1,1,1,83.50098367,-0.77836998
+1,1,1,84.74342133,-1.85924034
+1,1,1,85.160579,-3.282081
+1,1,1,85.314403,-3.8067423
+1,1,1,85.398232,-4.4309859
+1,1,1,85.517117,-5.937081
+1,1,1,85.64418833,-7.5468843
+1,1,1,85.71925467,-8.1150543
+1,1,1,85.88871267,-8.7496575
+1,1,1,86.00464133,-9.1837986
+1,1,1,86.13991767,-9.466722
+1,1,1,86.62023733,-10.2796056
+1,1,1,87.58506,-11.9124522
+1,1,1,87.98585167,-12.4821192
+1,1,1,88.97777333,-13.6304991
+1,1,1,90.536213,-15.4347558
+1,1,1,91.29076767,-16.8701352
+1,1,1,91.736821,-18.8789994
+1,1,1,92.12084333,-20.6084994
+1,1,1,92.16712067,-21.2690301
+1,1,1,91.94616833,-21.867081
+1,1,1,91.81313733,-22.2271551
+1,1,1,91.683562,-22.4059821
+1,1,1,91.22644167,-22.8603741
+1,1,1,90.26557933,-23.8155024
+1,1,1,89.198029,-24.417081
+1,1,1,88.463939,-24.417081
+1,1,1,87.795843,-24.417081
+1,1,1,87.185413,-24.008061
+1,1,1,86.75108333,-23.2693782
+1,1,1,86.54532967,-22.8599499
+1,1,1,86.57205633,-22.5339264
+1,1,1,85.99003933,-22.6492446
+1,1,1,85.70750867,-22.7198535
+1,1,1,85.47464567,-23.028381
+1,1,1,85.402962,-23.427081
+1,1,1,85.35155233,-23.7130176
+1,1,1,85.36006567,-24.8049417
+1,1,1,85.41582633,-25.077081
+1,1,1,85.44118233,-25.200831
+1,1,1,85.51853233,-25.565331
+1,1,1,85.58771533,-25.887081
+1,1,1,85.707312,-26.4432891
+1,1,1,85.71350733,-26.5016112
+1,1,1,85.71359667,-27.072081
+1,1,1,85.713679,-27.5966244
+1,1,1,85.69992133,-27.7550832
+1,1,1,85.604202,-28.332081
+1,1,1,85.51454767,-28.8725187
+1,1,1,85.49699967,-29.0575047
+1,1,1,85.50733533,-29.3532267
+1,1,1,85.51924,-29.6938647
+1,1,1,85.52672533,-29.7271977
+1,1,1,85.639164,-29.9402847
+1,1,1,85.77529633,-30.198276
+1,1,1,86.07673267,-30.508464
+1,1,1,86.337871,-30.65928
+1,1,1,86.90982467,-30.989598
+1,1,1,87.710393,-31.01199
+1,1,1,88.38406533,-30.716508
+1,1,1,88.571673,-30.634221
+1,1,1,88.84837967,-30.456369
+1,1,1,89.31739867,-30.116616
+1,1,1,90.072681,-29.5694907
+1,1,1,90.63551867,-29.2172937
+1,1,1,91.06430733,-29.0234787
+1,1,1,91.22580833,-28.9504788
+1,1,1,91.61882233,-28.8150999
+1,1,1,91.937672,-28.7226366
+1,1,1,93.25075233,-28.3418562
+1,1,1,93.850785,-28.1128353
+1,1,1,94.18406533,-27.8652318
+1,1,1,94.57856733,-27.572145
+1,1,1,94.76987033,-27.2581653
+1,1,1,94.698758,-27.0204831
+1,1,1,94.61085767,-26.7266901
+1,1,1,94.23498767,-26.518434
+1,1,1,93.46378133,-26.3362263
+1,1,1,92.88192333,-26.1987549
+1,1,1,92.74431133,-26.1362328
+1,1,1,92.505086,-25.9006572
+1,1,1,92.29500633,-25.6937826
+1,1,1,92.133117,-25.39734
+1,1,1,92.01436767,-25.002081
+1,1,1,91.897648,-24.6135783
+1,1,1,91.88057467,-23.9867937
+1,1,1,91.98004567,-23.742081
+1,1,1,92.05058067,-23.5685544
+1,1,1,92.121032,-23.487081
+1,1,1,92.20054767,-23.487081
+1,1,1,92.29436433,-23.487081
+1,1,1,92.33985967,-23.6340603
+1,1,1,92.36769767,-24.027081
+1,1,1,92.398803,-24.46623
+1,1,1,92.47803633,-24.6961221
+1,1,1,92.69997733,-24.9911763
+1,1,1,93.01770233,-25.4135685
+1,1,1,93.354924,-25.6871316
+1,1,1,94.11739867,-26.1410259
+1,1,1,94.91470433,-26.6156547
+1,1,1,95.13260133,-26.8444662
+1,1,1,95.13260133,-27.207081
+1,1,1,95.13260133,-27.5510142
+1,1,1,94.96461067,-27.7196763
+1,1,1,94.09761067,-28.2462096
+1,1,1,93.38710167,-28.6777053
+1,1,1,93.11937333,-28.8140247
+1,1,1,92.519382,-29.0497977
+1,1,1,91.33510533,-29.5151727
+1,1,1,90.49736533,-30.028977
+1,1,1,89.59320367,-30.844485
+1,1,1,88.821454,-31.540563
+1,1,1,88.48255933,-31.725402
+1,1,1,87.793589,-31.826028
+1,1,1,87.48410267,-31.871226
+1,1,1,86.808151,-31.863612
+1,1,1,86.41027467,-31.81044
+1,1,1,85.570476,-31.698213
+1,1,1,85.11191633,-31.426899
+1,1,1,84.72885567,-30.815604
+1,1,1,84.48621667,-30.4284
+1,1,1,84.37251967,-30.339555
+1,1,1,84.078955,-30.307761
+1,1,1,83.95343267,-30.294168
+1,1,1,82.553232,-30.282828
+1,1,1,80.96739867,-30.282564
+1,1,1,78.35949067,-30.282126
+1,1,1,78.048197,-30.287202
+1,1,1,77.70857367,-30.335682
+1,1,1,76.796339,-30.465903
+1,1,1,76.855404,-29.9543607
+1,1,1,76.92874033,-29.8978647
+1,1,1,77.039595,-29.7662397
+1,1,1,77.101748,-29.6618607
+1,1,1,77.20296833,-29.4918717
+1,1,1,77.21614533,-29.4420057
+1,1,1,77.22810267,-29.1836937
+1,1,1,77.24999233,-28.7108082
+1,1,1,77.136483,-28.4430318
+1,1,1,76.76400433,-28.0888536
+1,1,1,76.50763367,-27.8450787
+1,1,1,76.470453,-27.7418799
+1,1,1,76.61730033,-27.6816627
+1,1,1,76.75328567,-27.6258996
+1,1,1,76.92623267,-27.6951834
+1,1,1,77.235358,-27.9292605
+1,1,1,77.82467367,-28.3755045
+1,1,1,78.17055333,-28.453236
+1,1,1,79.450732,-28.4271351
+1,1,1,80.82728767,-28.3990692
+1,1,1,81.57573867,-28.269135
+1,1,1,82.33406533,-27.9265767
+1,1,1,82.82386233,-27.7053213
+1,1,1,83.14567633,-27.4522509
+1,1,1,83.55725167,-26.9646801
+1,1,1,83.84563667,-26.6230461
+1,1,1,83.978035,-26.5048983
+1,1,1,84.14106833,-26.4436992
+1,1,1,84.410816,-26.342442
+1,1,1,84.553379,-26.5419792
+1,1,1,84.54716033,-27.012081
+1,1,1,84.54428433,-27.2295078
+1,1,1,84.516651,-27.370002
+1,1,1,84.40524567,-27.7336173
+1,1,1,84.10637767,-28.7090871
+1,1,1,84.01263633,-29.2582017
+1,1,1,84.09731667,-29.5373907
+1,1,1,84.146749,-29.7003687
+1,1,1,84.30427033,-29.8236867
+1,1,1,84.447027,-29.8111707
+1,1,1,84.54704167,-29.8023987
+1,1,1,84.551579,-29.7957657
+1,1,1,84.576327,-29.6220807
+1,1,1,84.590433,-29.5230807
+1,1,1,84.646968,-29.1855807
+1,1,1,84.70196033,-28.872081
+1,1,1,84.75695233,-28.558581
+1,1,1,84.82448533,-28.153581
+1,1,1,84.852034,-27.972081
+1,1,1,84.92401,-27.4978746
+1,1,1,84.97764,-26.0267505
+1,1,1,84.98108467,-24.432081
+1,1,1,84.984057,-23.0559882
+1,1,1,84.98429267,-23.0514891
+1,1,1,85.064223,-22.8429828
+1,1,1,85.12628933,-22.681077
+1,1,1,85.182713,-22.5995196
+1,1,1,85.314223,-22.4816214
+1,1,1,85.515724,-22.3009764
+1,1,1,85.70807133,-22.2370386
+1,1,1,86.136654,-22.208238
+1,1,1,86.422576,-22.1890242
+1,1,1,86.46410867,-22.0055526
+1,1,1,86.55894167,-21.5866278
+1,1,1,86.83585067,-21.3499071
+1,1,1,87.38406533,-21.2191119
+1,1,1,87.560966,-21.1769061
+1,1,1,87.73832567,-21.1632777
+1,1,1,88.11739867,-21.1627617
+1,1,1,88.667827,-21.1620123
+1,1,1,88.81997067,-21.1929951
+1,1,1,89.31645833,-21.4069392
+1,1,1,89.538465,-21.5026053
+1,1,1,89.73406533,-21.5371119
+1,1,1,89.73406533,-21.4806105
+1,1,1,89.73406533,-21.4362687
+1,1,1,89.463923,-21.2078802
+1,1,1,89.245717,-21.0677427
+1,1,1,89.132385,-20.9949579
+1,1,1,88.93715033,-20.8976658
+1,1,1,88.811862,-20.8515381
+1,1,1,88.64378133,-20.7896553
+1,1,1,88.58136233,-20.7511659
+1,1,1,88.573754,-20.7047133
+1,1,1,88.568083,-20.6700873
+1,1,1,88.61667767,-20.46858
+1,1,1,88.68174267,-20.2569192
+1,1,1,88.87554667,-19.6264602
+1,1,1,88.94017267,-19.2255144
+1,1,1,88.94444667,-18.627081
+1,1,1,88.95149667,-17.6398806
+1,1,1,88.755679,-16.9871793
+1,1,1,88.12010267,-15.8793735
+1,1,1,87.53107533,-14.8527021
+1,1,1,86.906687,-14.0993799
+1,1,1,86.411835,-13.8183546
+1,1,1,86.27147167,-13.7386428
+1,1,1,86.100732,-13.6845003
+1,1,1,86.100732,-13.7197026
+1,1,1,86.100732,-13.7302218
+1,1,1,86.21937033,-13.8903102
+1,1,1,86.36437233,-14.0754549
+1,1,1,87.04365433,-14.9427879
+1,1,1,87.74921167,-16.0510407
+1,1,1,88.05093167,-16.7246151
+1,1,1,88.29283867,-17.2646601
+1,1,1,88.475271,-17.9958819
+1,1,1,88.534416,-18.6625104
+1,1,1,88.63134367,-19.7549865
+1,1,1,88.30012167,-20.6880249
+1,1,1,87.73406533,-20.9170656
+1,1,1,87.62101267,-20.9628093
+1,1,1,87.49374967,-20.9805066
+1,1,1,87.21739867,-20.9889129
+1,1,1,86.77804267,-21.0022779
+1,1,1,86.71652967,-20.9806425
+1,1,1,86.600911,-20.772081
+1,1,1,86.51775633,-20.622081
+1,1,1,86.49607367,-19.422081
+1,1,1,86.459138,-17.3779224
+1,1,1,86.35176733,-17.0298399
+1,1,1,85.16175567,-15.0963924
+1,1,1,84.79572233,-14.5016874
+1,1,1,84.72367033,-14.3450778
+1,1,1,84.567994,-13.8058203
+1,1,1,84.247566,-12.6958665
+1,1,1,83.93769367,-12.0451716
+1,1,1,83.44948267,-11.457081
+1,1,1,82.707034,-10.5627393
+1,1,1,82.610579,-10.192056
+1,1,1,82.90503633,-9.364743
+1,1,1,83.095287,-8.830212
+1,1,1,83.09175067,-8.5522572
+1,1,1,82.89236233,-8.3687127
+1,1,1,82.745919,-8.233905
+1,1,1,82.63204133,-8.1882813
+1,1,1,81.96194267,-7.9959492
+1,1,1,80.94620867,-7.7044128
+1,1,1,80.47644333,-7.4435208
+1,1,1,80.346353,-7.098705
+1,1,1,80.217653,-6.7575747
+1,1,1,80.31044067,-6.2076204
+1,1,1,80.54299267,-5.9332134
+1,1,1,80.709859,-5.7363147
+1,1,1,80.92306,-5.6518473
+1,1,1,81.249935,-5.6531328
+1,1,1,81.46517933,-5.6539794
+1,1,1,81.55348967,-5.6692146
+1,1,1,81.702253,-5.7311661
+1,1,1,81.93476967,-5.8279965
+1,1,1,82.11721033,-5.9709996
+1,1,1,82.210109,-6.1292406
+1,1,1,82.30952767,-6.2985879
+1,1,1,82.305878,-6.7035003
+1,1,1,82.20224167,-7.002081
+1,1,1,82.034794,-7.4845062
+1,1,1,82.03911733,-7.4326629
+1,1,1,82.158339,-7.5285348
+1,1,1,82.37780267,-7.7050164
+1,1,1,82.71869167,-7.7190024
+1,1,1,82.87032167,-7.5577458
+1,1,1,82.99996367,-7.419873
+1,1,1,83.039238,-7.2783555
+1,1,1,83.05783367,-6.882081
+1,1,1,83.078155,-6.4490289
+1,1,1,83.02605433,-6.1615194
+1,1,1,82.82885033,-5.6184666
+1,1,1,82.558491,-4.8739614
+1,1,1,82.28860033,-4.6589769
+1,1,1,81.47380867,-4.5390918
+1,1,1,80.86367067,-4.4493186
+1,1,1,80.531004,-4.5204525
+1,1,1,80.22387067,-4.8063654
+1,1,1,79.741864,-5.2550691
+1,1,1,79.50483867,-5.9726496
+1,1,1,79.60021367,-6.6944496
+1,1,1,79.652888,-7.0930872
+1,1,1,79.643091,-7.1093583
+1,1,1,79.392839,-7.0388766
+1,1,1,79.16874567,-6.9757623
+1,1,1,78.68066533,-6.9245205
+1,1,1,78.397751,-6.9344061
+1,1,1,78.09219233,-6.9450828
+1,1,1,78.06754467,-6.9213609
+1,1,1,78.066821,-6.6159078
+1,1,1,78.06386633,-5.3686707
+1,1,1,77.64740567,-4.6928508
+1,1,1,76.88406533,-4.6965666
+1,1,1,76.352924,-4.699152
+1,1,1,75.923553,-5.05956
+1,1,1,75.76358567,-5.637081
+1,1,1,75.70119133,-5.8623393
+1,1,1,75.71174367,-6.50646
+1,1,1,75.783982,-6.882081
+1,1,1,75.926123,-7.6211817
+1,1,1,76.238141,-7.9884852
+1,1,1,76.47843367,-7.699581
+1,1,1,76.57874333,-7.5789789
+1,1,1,76.66785,-7.4229411
+1,1,1,76.66603233,-7.3710708
+1,1,1,76.665281,-7.3496265
+1,1,1,76.591027,-7.3010112
+1,1,1,76.501024,-7.2630369
+1,1,1,76.40085433,-7.2207732
+1,1,1,76.310634,-7.1550414
+1,1,1,76.268421,-7.0935699
+1,1,1,76.08144633,-6.8212914
+1,1,1,75.98584067,-6.3342483
+1,1,1,76.06770867,-6.0710841
+1,1,1,76.17040333,-5.740974
+1,1,1,76.67391267,-5.5373964
+1,1,1,77.02102633,-5.6856411
+1,1,1,77.31483533,-5.8111203
+1,1,1,77.62551633,-6.3944817
+1,1,1,77.59250267,-6.758694
+1,1,1,77.566032,-7.0507236
+1,1,1,77.506503,-7.1408397
+1,1,1,77.211671,-7.3352052
+1,1,1,77.06815467,-7.4298174
+1,1,1,76.830732,-7.6036137
+1,1,1,76.68406533,-7.7214198
+1,1,1,76.53739867,-7.8392259
+1,1,1,76.35739867,-7.9744995
+1,1,1,76.28406533,-8.0220279
+1,1,1,75.90931267,-8.2649109
+1,1,1,75.70080967,-8.5503375
+1,1,1,75.70075833,-8.8205352
+1,1,1,75.70072467,-8.9979627
+1,1,1,75.78157233,-9.0923688
+1,1,1,76.03033933,-9.2053884
+1,1,1,76.22540433,-9.2940099
+1,1,1,76.40432967,-9.4502322
+1,1,1,76.590694,-9.6946422
+1,1,1,76.839235,-10.0205949
+1,1,1,77.13504633,-10.1231244
+1,1,1,77.81739867,-10.1198235
+1,1,1,78.64636833,-10.1158131
+1,1,1,79.38927067,-9.9577836
+1,1,1,80.78353167,-9.4888698
+1,1,1,81.53932767,-9.2346828
+1,1,1,81.75062,-9.1519146
+1,1,1,81.794837,-9.0927183
+1,1,1,81.915689,-8.930925
+1,1,1,82.06130433,-8.817081
+1,1,1,82.14739867,-8.817081
+1,1,1,82.26254533,-8.817081
+1,1,1,82.36739867,-8.9161275
+1,1,1,82.36739867,-9.024897
+1,1,1,82.36739867,-9.206961
+1,1,1,82.053905,-9.3560016
+1,1,1,80.96739867,-9.6904827
+1,1,1,80.64656533,-9.7892514
+1,1,1,80.15156567,-9.9691704
+1,1,1,79.86739867,-10.0903026
+1,1,1,79.29183033,-10.3356516
+1,1,1,79.13397767,-10.3870272
+1,1,1,78.75541833,-10.4522145
+1,1,1,78.44709567,-10.5053073
+1,1,1,77.72847233,-10.5112692
+1,1,1,77.33799367,-10.4639739
+1,1,1,77.01553533,-10.4249175
+1,1,1,76.82474667,-10.4463762
+1,1,1,76.840486,-10.5199308
+1,1,1,76.857139,-10.5977556
+1,1,1,77.59504167,-11.1194427
+1,1,1,77.76571833,-11.1740574
+1,1,1,78.00549033,-11.2507821
+1,1,1,78.47855267,-11.2641102
+1,1,1,78.78804667,-11.2028607
+1,1,1,79.25106733,-11.1112278
+1,1,1,80.71495133,-10.5459018
+1,1,1,81.438632,-10.1792517
+1,1,1,81.684003,-10.0549356
+1,1,1,81.819503,-10.0041243
+1,1,1,81.906403,-10.003842
+1,1,1,82.05345267,-10.0033644
+1,1,1,82.16739867,-10.0854555
+1,1,1,82.16739867,-10.191873
+1,1,1,82.16739867,-10.3062546
+1,1,1,81.92110233,-10.5003639
+1,1,1,81.64838133,-10.6009173
+1,1,1,81.174322,-10.7757051
+1,1,1,81.072904,-10.8235059
+1,1,1,80.600732,-11.0946978
+1,1,1,79.95183567,-11.4673914
+1,1,1,79.66962367,-11.6529351
+1,1,1,79.243827,-11.9868108
+1,1,1,78.786,-12.3458022
+1,1,1,78.65726133,-12.3943269
+1,1,1,78.150732,-12.3988248
+1,1,1,77.745759,-12.4024212
+1,1,1,77.62394067,-12.3660336
+1,1,1,77.35892667,-12.1623093
+1,1,1,77.152538,-12.0036525
+1,1,1,76.65945067,-11.4503094
+1,1,1,76.51906367,-11.2198146
+1,1,1,76.37376833,-10.9812612
+1,1,1,76.04734067,-10.647081
+1,1,1,75.95961667,-10.647081
+1,1,1,75.90277433,-10.647081
+1,1,1,75.897383,-10.6603773
+1,1,1,75.80147867,-11.037081
+1,1,1,75.73310833,-11.3056344
+1,1,1,75.487643,-11.8160808
+1,1,1,75.08803067,-12.5206992
+1,1,1,74.60510933,-13.3722126
+1,1,1,74.58443433,-13.4465865
+1,1,1,74.583096,-14.337081
+1,1,1,74.581978,-15.081264
+1,1,1,74.602826,-15.0165909
+1,1,1,74.2011,-15.522081
+1,1,1,73.70643267,-16.1445192
+1,1,1,72.94018733,-17.774859
+1,1,1,72.755877,-18.597081
+1,1,1,72.61772367,-19.2133944
+1,1,1,72.52044367,-20.2588974
+1,1,1,72.54652333,-20.847081
+1,1,1,72.56724433,-21.3144093
+1,1,1,72.54048367,-21.4544064
+1,1,1,72.41739867,-21.5225967
+1,1,1,72.29094533,-21.5926533
+1,1,1,72.13967633,-21.5202696
+1,1,1,71.83101133,-21.2420052
+1,1,1,71.34181367,-20.8009887
+1,1,1,71.18672967,-20.4366534
+1,1,1,71.19042133,-19.737081
+1,1,1,71.192773,-19.2915099
+1,1,1,71.23668333,-18.9518016
+1,1,1,71.33486267,-18.6196296
+1,1,1,71.41748833,-18.34008
+1,1,1,71.419239,-18.2595
+1,1,1,71.34239867,-18.2727102
+1,1,1,71.26374233,-18.2862324
+1,1,1,71.08480933,-18.6186462
+1,1,1,70.99736733,-18.9136938
+1,1,1,70.94423633,-19.0929687
+1,1,1,70.92262267,-19.2748251
+1,1,1,70.91020433,-19.647081
+1,1,1,70.89503933,-20.1016662
+1,1,1,70.90072433,-20.1702489
+1,1,1,70.97983433,-20.487081
+1,1,1,71.07909133,-20.8846017
+1,1,1,71.27018533,-21.2592948
+1,1,1,71.53267267,-21.571074
+1,1,1,71.93530067,-22.0493106
+1,1,1,73.97860667,-23.6830821
+1,1,1,75.340802,-24.6159495
+1,1,1,75.66534067,-24.8382021
+1,1,1,76.02974533,-25.1161581
+1,1,1,76.15059033,-25.2336294
+1,1,1,76.87062033,-25.9335582
+1,1,1,76.72979533,-26.5766649
+1,1,1,75.747889,-27.0726498
+1,1,1,75.59361933,-27.1505751
+1,1,1,75.46739867,-27.2193429
+1,1,1,75.46739867,-27.2254671
+1,1,1,75.46739867,-27.2315913
+1,1,1,75.59283967,-27.3885846
+1,1,1,75.74615667,-27.5743416
+1,1,1,76.310185,-28.2577107
+1,1,1,76.637808,-28.7580405
+1,1,1,76.751267,-29.1092967
+1,1,1,76.82604367,-29.3407977
+1,1,1,76.82189333,-29.6727987
+1,1,1,76.741545,-29.8869987
+1,1,1,76.70645533,-29.9805447
+1,1,1,76.68771767,-30.057081
+1,1,1,76.69990567,-30.057081
+1,1,1,76.71209333,-30.057081
+1,1,1,76.78206767,-30.010857
+1,1,1,76.855404,-29.9543607
+1,,,,
+1,1,1,85.290415,-10.8334548
+1,1,1,85.36160833,-10.7927157
+1,1,1,85.50007267,-10.4848917
+1,1,1,85.50040667,-10.3666173
+1,1,1,85.500662,-10.2759204
+1,1,1,85.478526,-10.2324843
+1,1,1,85.39720667,-10.1641173
+1,1,1,85.340268,-10.1162472
+1,1,1,85.27984133,-10.077081
+1,1,1,85.262925,-10.077081
+1,1,1,85.246009,-10.077081
+1,1,1,85.11634567,-10.0277019
+1,1,1,84.974784,-9.9673497
+1,1,1,84.799041,-9.892425
+1,1,1,84.647826,-9.7972656
+1,1,1,84.49806367,-9.6673497
+1,1,1,84.37742867,-9.5627019
+1,1,1,84.26146467,-9.477081
+1,1,1,84.24036533,-9.477081
+1,1,1,84.21926533,-9.477081
+1,1,1,84.19232333,-9.5117883
+1,1,1,84.18049367,-9.5542083
+1,1,1,84.14217333,-9.6916203
+1,1,1,84.197132,-9.9066513
+1,1,1,84.335091,-10.1590857
+1,1,1,84.45714,-10.3824081
+1,1,1,84.49935867,-10.4277102
+1,1,1,84.77542867,-10.6315857
+1,1,1,85.07218567,-10.8507381
+1,1,1,85.183772,-10.8944787
+1,1,1,85.290415,-10.8334548
+1,,,,
+1,1,1,77.270649,-6.814581
+1,1,1,77.30945567,-6.7229346
+1,1,1,77.298465,-6.6524331
+1,1,1,77.198076,-6.3490548
+1,1,1,77.154151,-6.2163114
+1,1,1,77.09129033,-6.1048395
+1,1,1,77.023425,-6.0393435
+1,1,1,76.92537433,-5.9447151
+1,1,1,76.91113,-5.939976
+1,1,1,76.83406533,-5.976342
+1,1,1,76.722331,-6.0290682
+1,1,1,76.733311,-6.1492185
+1,1,1,76.86190933,-6.2810376
+1,1,1,76.95974833,-6.381327
+1,1,1,77.04309033,-6.5713101
+1,1,1,77.082804,-6.784581
+1,1,1,77.10899,-6.9252048
+1,1,1,77.216534,-6.9423804
+1,1,1,77.270649,-6.814581
+1,,,,
+1,1,1,81.96808267,-6.7313394
+1,1,1,82.039352,-6.6540525
+1,1,1,81.98759733,-6.2825028
+1,1,1,81.88639,-6.1448616
+1,1,1,81.78243433,-6.0034824
+1,1,1,81.54429333,-5.8741299
+1,1,1,81.35206767,-5.8546299
+1,1,1,81.22751733,-5.8419951
+1,1,1,81.20177867,-5.8492653
+1,1,1,81.16760467,-5.9067345
+1,1,1,81.12082467,-5.9854026
+1,1,1,81.14187033,-6.007701
+1,1,1,81.30797467,-6.0554595
+1,1,1,81.51309667,-6.1144368
+1,1,1,81.70336233,-6.3687105
+1,1,1,81.75349233,-6.6508554
+1,1,1,81.77213333,-6.7557705
+1,1,1,81.78858,-6.777081
+1,1,1,81.85091067,-6.777081
+1,1,1,81.892156,-6.777081
+1,1,1,81.94488333,-6.7564971
+1,1,1,81.96808267,-6.7313394
+1,,,,
+1,1,1,82.18867067,-2.69226408
+1,1,1,82.42852033,-2.54303718
+1,1,1,82.44815467,-2.53656918
+1,1,1,82.67797333,-2.53108368
+1,1,1,82.969619,-2.52412248
+1,1,1,83.03406567,-2.50201998
+1,1,1,83.03406567,-2.40895788
+1,1,1,83.03406567,-2.26396848
+1,1,1,82.47926467,-1.82264604
+1,1,1,82.24788167,-1.78357908
+1,1,1,82.01355667,-1.74401538
+1,1,1,81.93061167,-1.85779869
+1,1,1,81.88243467,-2.28489618
+1,1,1,81.86445467,-2.44429548
+1,1,1,81.83899,-2.51100348
+1,1,1,81.763478,-2.59652118
+1,1,1,81.65928367,-2.71452168
+1,1,1,81.64400533,-2.78374998
+1,1,1,81.70906533,-2.84307438
+1,1,1,81.776394,-2.90446758
+1,1,1,81.92036367,-2.85919668
+1,1,1,82.18867067,-2.69226408
+1,,,,
+1,1,1,79.410085,-7.4872386
+1,1,1,79.21516133,-7.4259753
+1,1,1,79.067386,-7.3370922
+1,1,1,79.104668,-7.3035384
+1,1,1,79.113817,-7.2953043
+1,1,1,79.22542433,-7.2801747
+1,1,1,79.352684,-7.2699168
+1,1,1,79.65352067,-7.2456678
+1,1,1,79.76739867,-7.2828384
+1,1,1,79.76739867,-7.4052831
+1,1,1,79.76739867,-7.4632503
+1,1,1,79.744596,-7.5059535
+1,1,1,79.70292333,-7.5260256
+1,1,1,79.66746233,-7.5431061
+1,1,1,79.633712,-7.5560271
+1,1,1,79.62792333,-7.5547386
+1,1,1,79.62213467,-7.5534504
+1,1,1,79.52410733,-7.5230754
+1,1,1,79.410085,-7.4872386
+1,,,,
+1,1,1,77.434187,-7.6172856
+1,1,1,77.32839967,-7.4393868
+1,1,1,77.521896,-7.287081
+1,1,1,77.85369433,-7.287081
+1,1,1,77.96906767,-7.287081
+1,1,1,78.07226967,-7.2999036
+1,1,1,78.08303167,-7.3155759
+1,1,1,78.10818933,-7.3522113
+1,1,1,77.994676,-7.407081
+1,1,1,77.89372733,-7.407081
+1,1,1,77.83444333,-7.407081
+1,1,1,77.799849,-7.4377419
+1,1,1,77.74986933,-7.534581
+1,1,1,77.695118,-7.6406658
+1,1,1,77.66624133,-7.663635
+1,1,1,77.57794667,-7.671333
+1,1,1,77.49767733,-7.6783314
+1,1,1,77.462659,-7.6651662
+1,1,1,77.434187,-7.6172856
+1,,,,
+1,1,1,72.47012933,-15.8961972
+1,1,1,72.790484,-15.599523
+1,1,1,72.878587,-15.4512909
+1,1,1,72.86127833,-15.2380935
+1,1,1,72.84920067,-15.0893295
+1,1,1,72.78740767,-15.0385272
+1,1,1,72.65493467,-15.068451
+1,1,1,72.555839,-15.0908352
+1,1,1,72.50178867,-15.1788813
+1,1,1,72.41807067,-15.4542921
+1,1,1,72.37857533,-15.5842218
+1,1,1,72.32091667,-15.671697
+1,1,1,72.18322733,-15.8105769
+1,1,1,71.99868567,-15.9967149
+1,1,1,71.96803533,-16.065654
+1,1,1,72.040732,-16.131081
+1,1,1,72.11698533,-16.199709
+1,1,1,72.17905267,-16.165758
+1,1,1,72.47012933,-15.8961972
diff --git a/abs/not_built/core/LinHES-timezone/WorldTZ_102.zip b/abs/not_built/core/LinHES-timezone/WorldTZ_102.zip
new file mode 100644
index 0000000..3112bd4
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/WorldTZ_102.zip
Binary files differ
diff --git a/abs/not_built/core/LinHES-timezone/create_map_include.c b/abs/not_built/core/LinHES-timezone/create_map_include.c
new file mode 100644
index 0000000..dbdbb52
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/create_map_include.c
@@ -0,0 +1,186 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+int main ()
+{
+ char line_in[100];
+ FILE *zones;
+ FILE *boundary;
+ char boundary_name[100];
+ zones = fopen ("maps/zones.sorted", "r");
+ int zone_num = 0;
+
+ printf ("typedef struct {double x;double y;double z;} vect_type;\n");
+ while (!feof (zones))
+ {
+ char coords[100];
+ int points_in_vector = 0;
+ if (fgets (line_in, sizeof (line_in), zones))
+ {
+ //Strip the newline off the end.
+ line_in[strlen(line_in) - 1] = 0;
+
+ sprintf (boundary_name, "maps/boundary%s", line_in);
+
+//printf ("%s<\n", boundary_name);
+
+ boundary = fopen (boundary_name, "r");
+
+ if (!boundary)
+ {
+ fprintf (stderr, "%s ", boundary_name);
+ perror ("fopen");
+ exit (1);
+ }
+
+ printf ("vect_type boundary_%d[] = {\n", zone_num);
+
+ while (!feof (boundary))
+ {
+ int num_scanned;
+ int id,code,point;
+ double lon,lat,x,y,z;
+
+ memset (coords, 0, sizeof (coords));
+ fgets (coords, sizeof (coords), boundary);
+//printf ("scanning %s\n", coords);
+
+ num_scanned = sscanf (coords, "%d,%d,%d,%lf,%lf", &id,&code,&point,&lon,&lat);
+
+//printf ("num scanned%d\n", num_scanned);
+
+ if (num_scanned <= 0)
+ {
+ // EOF coming.
+ }
+ else if (num_scanned == 5)
+ {
+ lon *= M_PI / 180.0;
+ lat *= M_PI / 180.0;
+
+ x = cos (lon) * cos (lat);
+ y = sin (lon) * cos (lat);
+ z = sin (lat);
+
+ points_in_vector++;
+ printf ("{%.5lf, %.5lf, %.5lf},\n", x, y, z);
+ }
+ else
+ {
+//printf ("points in = %d\n", points_in_vector);
+
+ // If there was only a single point in the vector duplicate it.
+ // This will allow ust to use xdrawlines to draw it.
+ if (points_in_vector == 1)
+ printf ("{%.5lf, %.5lf, %.5lf},\n", x, y, z);
+
+ //Print an end vector delimiter.
+ printf ("{-10.0,-10.0,-10.0},\n");
+ points_in_vector = 0;
+ }
+ }
+ printf ("};\n");
+
+ printf ("#define num_boundary_points_%d XtNumber (boundary_%d)\n", zone_num, zone_num);
+ fclose (boundary);
+ zone_num++;
+ }
+ }
+
+ fclose (zones);
+
+
+ printf ("typedef struct {\n"
+ " char *zonename;\n"
+ " vect_type v;\n"
+ "} place_info_type;\n");
+
+ zones = fopen ("maps/zones.sorted", "r");
+ zone_num = 0;
+
+ while (!feof (zones))
+ {
+ FILE *places;
+ char place_name[100];
+
+ if (fgets (line_in, sizeof (line_in), zones))
+ {
+ char place_info[100];
+ double lat,lon;
+ char zonename[100];
+
+ //Strip the newline off the end.
+ line_in[strlen(line_in) - 1] = 0;
+
+ printf ("#define zone_offset_%d \"%s%s\"\n", zone_num, (line_in[0] == '-') ? "" : "+", line_in);
+
+ sprintf (place_name, "maps/places%s", line_in);
+
+//printf ("%s<\n", place_name);
+
+ places = fopen (place_name, "r");
+
+ if (!places)
+ {
+ fprintf (stderr, "%s ", place_name);
+ perror ("fopen");
+ exit (1);
+ }
+
+ printf ("place_info_type places_%d[] =\n{\n", zone_num);
+
+ memset (place_info, 0, sizeof (place_info));
+
+ while (fgets (place_info, sizeof (place_info), places))
+ {
+//printf (place_info);
+
+ if (sscanf (place_info, "%lf %lf %s", &lat, &lon, zonename) == 3)
+ {
+ lat *= M_PI / 180.0;
+ lon *= M_PI / 180.0;
+
+ printf (" {\"%s\", {%.5lf, %.5lf, %.5lf}},\n", zonename,
+
+ cos (lon) * cos (lat),
+ sin (lon) * cos (lat),
+ sin (lat)
+ );
+ }
+ }
+ printf ("};\n");
+
+ printf ("#define num_places_%d XtNumber (places_%d)\n", zone_num, zone_num);
+ zone_num++;
+ }
+ }
+
+ printf ("#define NUM_ZONES %d\n", zone_num);
+
+ printf ("struct {\n"
+ " char *offset;\n"
+ " int num_boundary_points;\n"
+ " vect_type *boundary_points;\n"
+ " int num_places;\n"
+ " place_info_type *place_info;\n"
+ "} zone_data[] =\n"
+ "{\n");
+
+ for (int zone = 0; zone < zone_num; zone++)
+ {
+ printf (" {\n"
+ " zone_offset_%d,\n"
+ " num_boundary_points_%d,\n"
+ " boundary_%d,\n"
+ " num_places_%d,\n"
+ " places_%d\n"
+ " },\n", zone, zone, zone, zone, zone);
+ }
+
+ printf ("};\n");
+
+ exit (0);
+}
diff --git a/abs/not_built/core/LinHES-timezone/extract_map_data.c b/abs/not_built/core/LinHES-timezone/extract_map_data.c
new file mode 100644
index 0000000..8fd8e52
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/extract_map_data.c
@@ -0,0 +1,188 @@
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+#include <unistd.h>
+
+int main ()
+{
+ int fd;
+ int num_vectors;
+ int limits[4];
+ double MAP_PIXEL_WIDTH = 1000;
+
+ typedef struct
+ {
+ int id;
+ int code;
+ int limits[4];
+ int num_points;
+ int offset;
+ } vector_info;
+
+ vector_info *vector;
+ int i;
+
+ fd = open ("WorldTZ.mfd", O_RDONLY);
+
+ if (fd == -1)
+ {
+ perror ("open");
+ abort ();
+ }
+
+ read (fd, &num_vectors, 4);
+ read (fd, limits, sizeof (limits));
+
+ vector = calloc (num_vectors, sizeof (vector_info));
+
+ read (fd, vector, sizeof (vector_info) * num_vectors);
+
+#if 0
+ for (i = 0; i < num_vectors; i++)
+ {
+ printf ("list%d %d %d %d %d %d %d %d %d\n",
+ i,
+ vector[i].id,
+ vector[i].code,
+ vector[i].limits[0],
+ vector[i].limits[2],
+ vector[i].limits[3],
+ vector[i].limits[4],
+ vector[i].num_points,
+ vector[i].offset);
+ }
+#endif
+
+ for (i = 0; i < num_vectors; i++)
+ {
+ typedef struct
+ {
+ int lon;
+ int lat;
+ } point_type;
+
+ int j;
+
+ point_type *point = NULL;
+
+ point = realloc (point, vector[i].num_points * sizeof (point_type));
+ read (fd, point, vector[i].num_points * sizeof (point_type));
+
+ /* Map the points onto an 800x400 pixel area */
+
+ for (j = 0; j < vector[i].num_points; j++)
+ {
+ if (point[j].lon > -2000000)
+ {
+ point[j].lon = lrint (point[j].lon * MAP_PIXEL_WIDTH / 3600000);
+ point[j].lat = lrint (point[j].lat * MAP_PIXEL_WIDTH / 3600000);
+ }
+ }
+
+ /* Remove consecutive points that are now the same. */
+
+ for (j = 0; j < vector[i].num_points - 1; j++)
+ {
+ if ((point[j].lon == point[j+1].lon) &&
+ (point[j].lat == point[j+1].lat))
+ {
+ for (int k = j + 1; k < vector[i].num_points - 1; k++)
+ {
+ point[k].lat = point[k+1].lat;
+ point[k].lon = point[k+1].lon;
+ }
+
+ vector[i].num_points--;
+ j--;
+ }
+ }
+
+ // Lop off any small corners one style at a time
+ //(so that aligning borders match) to make them diagonals.
+
+ for (int lop = 0; lop < 8; lop++)
+ {
+ int dx1c[8] = {-1, 1,-1, 1, 0, 0, 0, 0,};
+ int dx2c[8] = { 0, 0, 0, 0,-1, 1,-1, 1,};
+ int dy1c[8] = { 0, 0, 0, 0,-1,-1, 1, 1,};
+ int dy2c[8] = {-1,-1, 1, 1, 0, 0, 0, 0,};
+
+ for (j = 0; j < vector[i].num_points - 2; j++)
+ {
+ int dx1,dx2,dy1,dy2;
+ dx1 = point[j+0].lon - point[j+1].lon;
+ dx2 = point[j+1].lon - point[j+2].lon;
+ dy1 = point[j+0].lat - point[j+1].lat;
+ dy2 = point[j+1].lat - point[j+2].lat;
+
+ if ((dx1 == dx1c[lop]) && (dy1 == dy1c[lop]) &&
+ (dx2 == dx2c[lop]) && (dy2 == dy2c[lop]))
+ {
+ for (int k = j + 1; k < vector[i].num_points - 1; k++)
+ {
+ point[k].lat = point[k+1].lat;
+ point[k].lon = point[k+1].lon;
+ }
+
+ vector[i].num_points--;
+ j--;
+ }
+ }
+ }
+
+ /* Now weed out points where there are a number of points on the same line. */
+
+ for (j = 0; j < vector[i].num_points - 2; j++)
+ {
+ int dx1,dx2,dy1,dy2;
+ int same_dir = 0;
+ dx1 = point[j+0].lon - point[j+1].lon;
+ dx2 = point[j+1].lon - point[j+2].lon;
+ dy1 = point[j+0].lat - point[j+1].lat;
+ dy2 = point[j+1].lat - point[j+2].lat;
+
+ if ((dx1 == 0) && (dx2 == 0) && (dy1 * dy2 >= 0))
+ same_dir = 1;
+ if ((dy1 == 0) && (dy2 == 0) && (dx1 * dx2 >= 0))
+ same_dir = 1;
+
+ if ((dx1 != 0) && (dx2 != 0))
+ {
+ if ((dy1 * dx2) == (dy2 * dx1) && ((dx1 * dx2) > 0))
+ same_dir = 1;
+ }
+
+ if (same_dir)
+ {
+ for (int k = j + 1; k < vector[i].num_points - 1; k++)
+ {
+ point[k].lat = point[k+1].lat;
+ point[k].lon = point[k+1].lon;
+ }
+
+ vector[i].num_points--;
+ j--;
+ }
+ }
+
+ for (j = 0; j < vector[i].num_points; j++)
+ {
+ if (point[j].lon == -2147483648)
+ {
+ printf ("%d,\n", vector[i].id);
+ }
+ else
+ {
+ printf ("%d,%d,%d,%.2lf,%.2lf\n",
+ vector[i].id, vector[i].code, j,
+ point[j].lon * 360.0 / MAP_PIXEL_WIDTH,
+ point[j].lat * 360.0 / MAP_PIXEL_WIDTH);
+ }
+ }
+
+ printf ("%d,\n", vector[i].id);
+ }
+}
diff --git a/abs/not_built/core/LinHES-timezone/linhes_timezone.c b/abs/not_built/core/LinHES-timezone/linhes_timezone.c
new file mode 100644
index 0000000..1cf04b2
--- /dev/null
+++ b/abs/not_built/core/LinHES-timezone/linhes_timezone.c
@@ -0,0 +1,1120 @@
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#define _GNU_SOURCE
+#include <string.h>
+#include <strings.h>
+#include <X11/Xlib.h>
+#include <X11/Intrinsic.h>
+#include <X11/IntrinsicI.h>
+#include <lirc/lirc_client.h>
+#include <pthread.h>
+
+#include "timezone_map.h"
+
+Display *display;
+Window window;
+GC gc;
+int screen;
+int selected_zone;
+int selected_place;
+Pixmap pixmap;
+XColor ocean;
+XColor land[8];
+XColor border;
+XColor selected_border;
+XColor selected_land;
+XColor name_colour;
+XColor location_dot;
+XColor lat_lon;
+XColor tux_yellow;
+Dimension screen_width = 1920;
+Dimension screen_height = 1080;
+Dimension width = 1920;
+Dimension height = 1080;
+Position x = 0;
+Position y = 0;
+XFontStruct *font;
+XPoint xpoints[1000];
+int radius;
+double aspect_correction = 1;
+
+double target_lat;
+double target_lon;
+
+double displayed_lat;
+double displayed_lon;
+
+double lon_rotate[2] = {1, 0};
+double lat_rotate[2] = {1, 0};
+
+double acceleration = 0.01;
+char input_keys[200];
+
+int guessing_timezone = FALSE;
+time_t guess_timeout = 0;
+int guess_failed = FALSE;
+time_t guess_failed_timeout = 0;
+int show_information = FALSE;
+int info_displayed = FALSE;
+
+void select_place (int place)
+{
+ target_lon = atan2 (zone_data[selected_zone].place_info[place].v.y,
+ zone_data[selected_zone].place_info[place].v.x);
+ target_lat = acos (zone_data[selected_zone].place_info[place].v.z /2);
+
+ selected_place = place;
+}
+
+void default_zone (char *arg_zone)
+{
+ int found_zone = FALSE;
+
+ for (int zone = 0; zone < NUM_ZONES; zone++)
+ {
+ for (int place = 0; place < zone_data[zone].num_places; place++)
+ {
+ if (strstr (zone_data[zone].place_info[place].zonename,
+ arg_zone[0] ? arg_zone : "Los_Angeles"))
+ {
+ selected_zone = zone;
+ select_place (place);
+ found_zone = TRUE;
+ }
+ }
+ }
+
+ if (!found_zone)
+ {
+ default_zone ("");
+ }
+}
+
+int translate_point (vect_type *v, XPoint *p)
+{
+ vect_type v2;
+ vect_type v3;
+
+ v2.x = v->x * lon_rotate[0] + v->y * lon_rotate[1];
+ v2.y = v->x * -1.0 * lon_rotate[1] + v->y * lon_rotate[0];
+ v2.z = v->z;
+
+ v3.x = v2.x * lat_rotate[0] + v2.z * lat_rotate[1];
+ v3.y = v2.y * radius;
+ v3.z = v2.x * -1.0 * lat_rotate[1] + v2.z * lat_rotate[0];
+
+
+ // If the point is behind the face of the globe, project it to the edge.
+ if (v3.x < 0)
+ {
+ p->x = width /2 + radius * sin (atan2 (v3.y,v3.z)) * aspect_correction;
+ p->y = height/2 - radius * cos (atan2 (v3.y,v3.z));
+ }
+ else
+ {
+ p->x = width /2 + lrint (v3.y) * aspect_correction;
+ p->y = height/2 - lrint (v3.z);
+ }
+
+ // Return a value indicating if it is on the front of the world.
+ return (v3.x >= 0);
+}
+
+void draw_zone (
+ Drawable d,
+ int zone,
+ int fill,
+ int selected)
+{
+ int boundary = 0;
+ int num_points = 0;
+ int all_on_back = 1;
+
+ if (selected && fill)
+ XSetForeground (display, gc, selected_land.pixel);
+
+ while (boundary < zone_data[zone].num_boundary_points)
+ {
+ if (zone_data[zone].boundary_points[boundary].x < -9)
+ {
+
+ if ((num_points > 1) && !all_on_back)
+ {
+ if (fill)
+ {
+ if (!selected)
+ {
+ if (zone == NUM_ZONES - 1)
+ {
+ if (boundary < 380)
+ XSetForeground (display, gc, WhitePixel (display, screen));
+ else if (boundary < 470)
+ XSetForeground (display, gc, tux_yellow.pixel);
+ else if (boundary < 1120)
+ XSetForeground (display, gc, BlackPixel (display, screen));
+ else
+ XSetForeground (display, gc, WhitePixel (display, screen));
+ }
+ else
+ {
+ XSetForeground (display, gc,
+ land[boundary % XtNumber (land)].pixel);
+ }
+ }
+
+ XFillPolygon (
+ display, d, gc,
+ xpoints,
+ num_points, Complex, CoordModeOrigin);
+ }
+ else
+ XDrawLines (
+ display, d, gc,
+ xpoints,
+ num_points, CoordModeOrigin);
+ }
+
+ boundary++;
+ num_points = 0;
+ all_on_back = 1;
+ }
+ else
+ {
+ if (translate_point (&zone_data[zone].boundary_points[boundary],
+ &xpoints[num_points]))
+ all_on_back = 0;
+
+ num_points++;
+ boundary++;
+ }
+ }
+}
+
+void draw_string (int x, int y, const char*s, unsigned long colour)
+{
+ XSetForeground (display, gc, BlackPixel (display, screen));
+ for (int x_pos = x - 3; x_pos <= x + 3; x_pos++)
+ for (int y_pos = y - 3; y_pos <= y + 3; y_pos++)
+ XDrawString (display, pixmap, gc, x_pos, y_pos, s, strlen (s));
+
+ XSetForeground (display, gc, colour);
+ XDrawString (display, pixmap, gc, x, y, s, strlen (s));
+}
+
+void draw_point (XPoint p, char *s)
+{
+ int text_width;
+
+ int dot_size = ceil (sqrt (height) / 6.0);
+
+ if (s)
+ dot_size += 2;
+
+ XSetForeground (display, gc,
+ s ? WhitePixel (display, screen) : location_dot.pixel);
+ XFillRectangle (display, pixmap, gc,
+ p.x - dot_size / 2, p.y - dot_size / 2, dot_size, dot_size);
+
+ XSetForeground (display, gc, BlackPixel (display, screen));
+ XSetLineAttributes (display, gc, 2, LineSolid, CapRound, JoinRound);
+ XDrawRectangle (display, pixmap, gc,
+ p.x - dot_size / 2, p.y - dot_size / 2, dot_size, dot_size);
+
+ if (s)
+ {
+ int text_x;
+ int text_y;
+
+ text_width = XTextWidth (font, s, strlen (s));
+
+ if (p.x + text_width + 30 > width)
+ {
+ text_x = p.x - text_width - 6;
+ text_y = p.y + 10;
+ }
+ else
+ {
+ text_x = p.x + 6;
+ text_y = p.y + 10;
+ }
+
+ draw_string (text_x, text_y, s, name_colour.pixel);
+ }
+}
+
+void redraw_map ()
+{
+ XPoint selected_point;
+ char selected_name[100];
+
+ lon_rotate[0] = cos (displayed_lon);
+ lon_rotate[1] = sin (displayed_lon);
+
+ lat_rotate[1] = cos (displayed_lat) * radius;
+ lat_rotate[0] = sin (displayed_lat) * radius;
+
+ /* Draw the map into the pixmap. */
+
+ XSetForeground (display, gc, BlackPixel (display, screen));
+ XFillRectangle (display, pixmap, gc, 0, 0, width, height);
+
+ XSetForeground (display, gc, ocean.pixel);
+ XFillArc (display, pixmap, gc,
+ width / 2 - radius * aspect_correction, height / 2 - radius,
+ radius * 2 * aspect_correction, radius * 2, 0, 360 * 64);
+
+ XSetForeground (display, gc, lat_lon.pixel);
+ XSetLineAttributes (display, gc, 2, LineSolid, CapRound, JoinRound);
+
+ for (int lon = 0; lon < 24; lon++)
+ for (int lat = 0; lat < 12 * 3; lat++)
+ {
+ XPoint line[2];
+ vect_type v;
+ v.x = cos (lon * 15 * M_PI / 180) * cos ((90 - lat * 5) * M_PI / 180);
+ v.y = sin (lon * 15 * M_PI / 180) * cos ((90 - lat * 5) * M_PI / 180);
+ v.z = sin ((90 - lat * 5) / 180.0 * M_PI);
+ line[0] = line[1];
+ if (translate_point (&v, &line[1]) && (lat > 0))
+ XDrawLines (display, pixmap, gc, line, 2, CoordModeOrigin);
+ }
+
+ for (int lat = 0; lat < 12; lat++)
+ for (int lon = 0; lon <= 24 * 3; lon++)
+ {
+ XPoint line[2];
+ vect_type v;
+ v.x = cos (lon * 5 * M_PI / 180) * cos ((90 - lat * 15) * M_PI / 180);
+ v.y = sin (lon * 5 * M_PI / 180) * cos ((90 - lat * 15) * M_PI / 180);
+ v.z = sin ((90 - lat * 15) / 180.0 * M_PI);
+ line[0] = line[1];
+ if (translate_point (&v, &line[1]) && (lon > 0))
+ XDrawLines (display, pixmap, gc, line, 2, CoordModeOrigin);
+ }
+
+ for (int zone = 0; zone < NUM_ZONES; zone++)
+ draw_zone (pixmap, zone, 1, 0);
+
+ XSetLineAttributes (display, gc, 2, LineSolid, CapRound, JoinRound);
+ XSetForeground (display, gc, border.pixel);
+ for (int zone = 0; zone < NUM_ZONES - 1; zone++)
+ draw_zone (pixmap, zone, 0, 0);
+
+ if (show_information)
+ {
+ info_displayed = TRUE;
+ char *s[4] = {"Left/Right: Change Offset",
+ "Up/Down: Change Location",
+ "Enter: Select Location",
+ "Esc: Abort"};
+ int num = XtNumber(s);
+ for (int i = 0; i < num; i++)
+ {
+ int text_width = XTextWidth (font, s[i], strlen (s[i]));
+ draw_string (width/2 - text_width/2,
+ height/2 + (-2 + i) * (font->ascent + font->descent),
+ s[i], name_colour.pixel);
+ }
+ }
+ else if (guessing_timezone || (info_displayed = FALSE))
+ {
+ char *s = "Guessing Timezone";
+ int text_width = XTextWidth (font, s, strlen (s));
+ draw_string (width/2 - text_width/2, height/2, s, name_colour.pixel);
+ }
+ else if (guess_failed)
+ {
+ char *s = "Unable to Guess Timezone";
+ char *s2 = "Please Select Timezone Manually";
+ int text_width = XTextWidth (font, s, strlen (s));
+ draw_string (width/2 - text_width/2, height/2, s, name_colour.pixel);
+ text_width = XTextWidth (font, s2, strlen (s2));
+ draw_string (width/2 - text_width/2,
+ height/2 + font->ascent + font->descent,
+ s2, name_colour.pixel);
+ }
+ else
+ {
+ draw_zone (pixmap, selected_zone, 1, 1);
+ XSetForeground (display, gc, selected_border.pixel);
+ draw_zone (pixmap, selected_zone, 0, 1);
+
+ for (int place = 0; place < zone_data[selected_zone].num_places; place++)
+ {
+ XPoint point;
+
+ translate_point (&zone_data[selected_zone].place_info[place].v, &point);
+
+ draw_point (point, NULL);
+
+ if ((place == selected_place) && (!guessing_timezone))
+ {
+ char *underscore;
+ selected_point = point;
+ strcpy (selected_name, strchr (zone_data[selected_zone].place_info[place].zonename, '/') + 1);
+ while (underscore = strchr (selected_name, '_'))
+ underscore[0] = ' ';
+ }
+ }
+
+ draw_point (selected_point, selected_name);
+
+ {
+ char zone_offset[100];
+ sprintf (zone_offset, "UTC%s", zone_data[selected_zone].offset);
+ draw_string (
+ ((width * 0.95 - XTextWidth (font, "UTC+88", strlen ("UTC+88"))) +
+ ((width / 2) + radius / sqrt (2))) / 2,
+ ((lrint (height * 0.05) + font->ascent) +
+ (height / 2 - radius / sqrt (2))) / 2,
+ zone_offset, name_colour.pixel);
+ }
+ }
+
+ if (!guessing_timezone && !guess_failed)
+ {
+ const char *title = "Select Your Time Zone";
+ const char *help = "Help = i";
+
+ draw_string (width / 2 - XTextWidth (font, title, strlen (title)) / 2,
+ ((lrint (height * 0.05) + font->ascent) +
+ (height / 2 - radius / sqrt (2))) / 2,
+ title, WhitePixel (display,screen));
+
+ draw_string (width * 0.05, height * 0.95 - font->descent - font->ascent,
+ help, name_colour.pixel);
+ }
+
+ XCopyArea (display, pixmap, window, gc, 0, 0, width, height, 0, 0);
+}
+
+int nearest_z (double near_z)
+{
+ double min_delta =
+ fabs (near_z - zone_data[selected_zone].place_info[0].v.z);
+ int min_delta_place = 0;
+
+ for (int place = 1; place < zone_data[selected_zone].num_places; place++)
+ {
+ double delta =
+ fabs (near_z - zone_data[selected_zone].place_info[place].v.z);
+
+ if (delta < min_delta)
+ {
+ min_delta_place = place;
+ min_delta = delta;
+ }
+ }
+
+ return min_delta_place;
+}
+
+void handle_key (char key)
+{
+ double selected_z;
+
+ selected_z = zone_data[selected_zone].place_info[selected_place].v.z;
+
+ if (show_information)
+ {
+ show_information = FALSE;
+ return;
+ }
+
+ switch (key)
+ {
+ case 'U':
+ select_place ((selected_place +
+ zone_data[selected_zone].num_places - 1) %
+ zone_data[selected_zone].num_places);
+ break;
+
+ case 'D':
+ select_place ((selected_place + 1) %
+ zone_data[selected_zone].num_places);
+ break;
+
+ case 'L':
+ selected_zone = (selected_zone + NUM_ZONES - 1) % NUM_ZONES;
+ select_place (nearest_z (selected_z));
+ break;
+
+ case 'R':
+ selected_zone = (selected_zone + 1) % NUM_ZONES;
+ select_place (nearest_z (selected_z));
+ break;
+
+ case 'I':
+ show_information = !show_information;
+ break;
+
+ case 'X':
+ printf ("%s\n", zone_data[selected_zone].place_info[selected_place].zonename);
+ exit (0);
+
+ case 'E':
+ exit(1);
+ }
+}
+
+void handle_event (XEvent *xevent)
+{
+ switch (xevent->type)
+ {
+ case Expose:
+ redraw_map ();
+ break;
+
+ case KeyPress:
+ switch (XLookupKeysym (&xevent->xkey, 0))
+ {
+ case XK_Up:
+ handle_key ('U');
+ break;
+
+ case XK_Down:
+ handle_key ('D');
+ break;
+
+ case XK_Left:
+ handle_key ('L');
+ break;
+
+ case XK_Right:
+ handle_key ('R');
+ break;
+
+ case XK_Return:
+ handle_key ('X');
+ break;
+
+ case XK_Escape:
+ handle_key ('E');
+ break;
+
+ case XK_I:
+ case XK_i:
+ handle_key ('I');
+ break;
+ }
+
+ break;
+ }
+}
+
+Bool event_predicate (Display *display, XEvent *xevent, XPointer unused)
+{
+ return (xevent->type == KeyPress) || (xevent->type == Expose);
+}
+
+void next_view ()
+{
+ static double step_size = 0.01;
+ double error_total;
+ double lat_error = target_lat - displayed_lat;
+ double lon_error = target_lon - displayed_lon;
+
+ if (guessing_timezone)
+ {
+ displayed_lon += 1 / 180.0 * M_PI;
+ }
+ else
+ {
+ lat_error = atan2 (sin (lat_error), cos( lat_error));
+ lon_error = atan2 (sin (lon_error), cos (lon_error));
+
+ error_total = sqrt (lat_error * lat_error + lon_error * lon_error);
+
+ if (error_total < acceleration)
+ {
+ displayed_lat = target_lat;
+ displayed_lon = target_lon;
+ }
+ else
+ {
+ if (error_total > (step_size + acceleration) *
+ (step_size + acceleration) / acceleration / 2)
+ step_size += acceleration;
+ else
+ step_size -= acceleration;
+
+ if (step_size < acceleration)
+ step_size = acceleration;
+
+ displayed_lat += step_size * (lat_error / error_total);
+ displayed_lon += step_size * (lon_error / error_total);
+ }
+ }
+}
+
+void *lirc_thread (void *unused)
+{
+ int lirc_fd;
+ struct lirc_config *lirc_config;
+ char *lirc_code;
+
+ if ((lirc_fd = lirc_init ("mythtv",0)) == -1)
+ fprintf (stderr,"Error initialising lirc\n");
+ else
+ {
+ int readc_status;
+
+ if (readc_status = lirc_readconfig (NULL, &lirc_config, NULL))
+ {
+ fprintf (stderr,"Error loading lirc config file %d %p\n", readc_status, lirc_config);
+ }
+ }
+
+ while ((lirc_nextcode (&lirc_code) == 0) && (lirc_code != NULL))
+ {
+ char *action;
+
+ while ((lirc_code2char (lirc_config, lirc_code, &action) == 0) &&
+ (action != NULL))
+ {
+ if (strcasecmp (action, "down") == 0)
+ strcat (input_keys, "D");
+
+ if (strcasecmp (action, "up") == 0)
+ strcat (input_keys, "U");
+
+ if (strcasecmp (action, "left") == 0)
+ strcat (input_keys, "L");
+
+ if (strcasecmp (action, "right") == 0)
+ strcat (input_keys, "R");
+
+ if (strcasecmp (action, "return") == 0)
+ strcat (input_keys, "X");
+
+ if (strcasecmp (action, "Esc") == 0)
+ strcat (input_keys, "E");
+ }
+
+ free (lirc_code);
+ lirc_code = NULL;
+ }
+}
+
+void get_value (FILE *input, char*output, int out_len)
+{
+ const char *value_pattern = "value=\"";
+ char *value;
+
+ output[0] = 0;
+ fgets (output, out_len, input);
+
+ if (value = strcasestr (output, value_pattern))
+ {
+ memmove (output, value + strlen (value_pattern),
+ strlen (value + strlen (value_pattern)) + 1);
+ }
+
+ if (value = strchr (output, '"'))
+ value[0] = 0;
+}
+
+void *timezone_guess (void *unused)
+{
+ const double invalid = 99999;
+ FILE *guess_data;
+ char line_in[1000];
+ double guess_latitude = invalid;
+ double guess_longitude = invalid;
+ char guess_zone[1000] = {0};
+ char *timezone_info_command;
+
+ if (getenv ("FAKE_GEOBYTES"))
+ {
+ timezone_info_command =
+ "sleep 2 ; "
+ "echo Latitude ; "
+ "echo \" <td value=\\\"-34.993\\\"\" ;"
+ "echo Longitude ; "
+ "echo \" <td value=\\\"138.6\\\"\" ;"
+ "echo TimeZone ; "
+ "echo \" <td value=\\\"+09:30\\\"\"";
+ }
+ else
+ {
+ timezone_info_command =
+ "wget http://www.geobytes.com/IpLocator.htm -O - 2> /dev/null |"
+ "grep \"<td \" |"
+ "grep -i -E -A1 \"Latitude|Longitude|TimeZone\" | grep -v \"^--$\"";
+ }
+
+ guess_data = popen (timezone_info_command, "r");
+
+ if (!guess_data)
+ {
+ fprintf (stderr, "error parsing web page for timezone guess\n");
+ if (guessing_timezone)
+ {
+ guessing_timezone = FALSE;
+ guess_failed = TRUE;
+ guess_failed_timeout = time (NULL) + 3;
+ }
+ return NULL;
+ }
+
+ while (fgets (line_in, sizeof (line_in), guess_data))
+ {
+ // Look for the entries in the guess data and then the next line
+ // will hold the value.
+
+ if (strcasestr (line_in, "latitude"))
+ {
+ get_value (guess_data, line_in, sizeof (line_in));
+ sscanf (line_in, "%lf", &guess_latitude);
+ }
+ else if (strcasestr (line_in, "longitude"))
+ {
+ get_value (guess_data, line_in, sizeof (line_in));
+ sscanf (line_in, "%lf", &guess_longitude);
+ }
+ else if (strcasestr (line_in, "timezone"))
+ {
+ get_value (guess_data, line_in, sizeof (line_in));
+
+ // The geobytes timezone data is of the form "+09:30" whereas the
+ // map timezone data is of the form "+6" or "+9.5". Convert
+ // to the map timezone data format so we can find the timezone.
+
+ if (strcmp (&line_in[3], ":30") == 0)
+ sprintf (&line_in[3], ".5");
+ else
+ line_in[3] = 0;
+
+ if (line_in[1] == '0')
+ memmove (&line_in[1], &line_in[2], strlen (&line_in[2]) + 1);
+
+ strncpy (guess_zone, line_in, sizeof (guess_zone));
+ }
+ }
+
+ pclose (guess_data);
+
+ if ((guess_latitude != invalid) &&
+ (guess_longitude != invalid) &&
+ guess_zone[0] != 0)
+ {
+ int zone;
+
+ fprintf (stderr, "guessed lat lon %f %f %s\n",
+ guess_latitude, guess_longitude, guess_zone);
+
+ // Look for the guessed zone in the zone_data structure.
+ for (zone = 0; zone < NUM_ZONES; zone++)
+ {
+ if (strcmp (guess_zone, zone_data[zone].offset) == 0)
+ break;
+ }
+
+ if (zone == NUM_ZONES)
+ {
+ fprintf (stderr, "couldnt find zone %s\n", guess_zone);
+ if (guessing_timezone)
+ {
+ guessing_timezone = FALSE;
+ guess_failed = TRUE;
+ guess_failed_timeout = time (NULL) + 3;
+ }
+ }
+ else
+ {
+ double x,y,z;
+ double min_dist_squared;
+ int closest_place;
+
+ // Look for the location in the zone nearest to the guess lat/lon.
+
+ // Convert the guessed lat/lon to x,y,z.
+
+ guess_latitude *= M_PI / 180.0;
+ guess_longitude *= M_PI / 180.0;
+
+ x = cos (guess_longitude) * cos (guess_latitude);
+ y = sin (guess_longitude) * cos (guess_latitude);
+ z = sin (guess_latitude);
+
+ min_dist_squared =
+ pow (x - zone_data[zone].place_info[0].v.x, 2) +
+ pow (y - zone_data[zone].place_info[0].v.y, 2) +
+ pow (z - zone_data[zone].place_info[0].v.z, 2);
+ closest_place = 0;
+
+ for (int place = 1; place < zone_data[zone].num_places; place++)
+ {
+ double dist_squared;
+
+ dist_squared =
+ pow (x - zone_data[zone].place_info[place].v.x, 2) +
+ pow (y - zone_data[zone].place_info[place].v.y, 2) +
+ pow (z - zone_data[zone].place_info[place].v.z, 2);
+
+ if (dist_squared < min_dist_squared)
+ {
+ closest_place = place;
+ min_dist_squared = dist_squared;
+ }
+ }
+
+ fprintf (stderr, "Guess=%s %s\n",
+ zone_data[zone].place_info[closest_place].zonename,
+ zone_data[zone].offset);
+
+ selected_zone = zone;
+ select_place (closest_place);
+ }
+ }
+ else
+ {
+ if (guessing_timezone)
+ {
+ guessing_timezone = FALSE;
+ guess_failed = TRUE;
+ guess_failed_timeout = time (NULL) + 3;
+ }
+ }
+
+ guessing_timezone = FALSE;
+ return NULL;
+}
+
+void remove_titlebar_and_borders ()
+{
+ XClassHint* classHint;
+ char* appname;
+ appname="look fo rme";
+ XStoreName (display, window, appname);
+
+ /* Set the name and class hints for the window manager to use. */
+
+ classHint = XAllocClassHint ();
+ if (classHint)
+ {
+ classHint->res_name = appname;
+ classHint->res_class = "MoonRoot";
+ }
+
+ XSetClassHint (display, window, classHint);
+ XFree (classHint);
+
+ typedef struct
+ {
+ CARD32 flags;
+ CARD32 functions;
+ CARD32 decorations;
+ INT32 input_mode;
+ CARD32 status;
+ } MotifWmHints, MwmHints;
+
+ #define MWM_HINTS_DECORATIONS (1L << 1)
+
+
+ Atom XA_MOTIF_WM_HINTS = XInternAtom (display, "_MOTIF_WM_HINTS", False);
+ MotifWmHints mwm_hints;
+
+ mwm_hints.flags = MWM_HINTS_DECORATIONS;
+ mwm_hints.decorations = 0;
+
+ XChangeProperty (
+ display, window,
+ XA_MOTIF_WM_HINTS, XA_MOTIF_WM_HINTS,
+ 32, PropModeReplace,
+ (char *) &mwm_hints, 5);
+}
+
+void set_window_position (int x, int y)
+{
+ XSizeHints hints;
+
+ hints.flags = USPosition | PPosition;
+ hints.x = x;
+ hints.y = y;
+
+ XSetWMNormalHints(display, window, &hints);
+}
+
+int main (int argc, char *argv[])
+{
+ XEvent xevent;
+ Colormap cmap;
+ XColor color, colorrgb;
+ pthread_t tid;
+ int opt;
+ int arg_width = -1;
+ int arg_height = -1;
+ char arg_zone[100] = {0};
+
+ if (getenv ("ACCEL"))
+ acceleration = atof (getenv ("ACCEL"));
+
+ while ((opt = getopt (argc, argv, "z:w:h:a:")) != -1)
+ {
+ switch (opt)
+ {
+ case 'z':
+ strncpy (arg_zone, optarg, sizeof (arg_zone) - 1);
+
+ if (strcasecmp (arg_zone, "guess") == 0)
+ {
+ guessing_timezone = TRUE;
+ arg_zone[0]=0;
+ }
+
+ break;
+
+ case 'w':
+ arg_width = atoi (optarg);
+ break;
+
+ case 'h':
+ arg_height = atoi (optarg);
+ break;
+
+ case 'a':
+ acceleration = atof (optarg);
+ break;
+
+ case '?':
+ printf ("usage: %s [-a accelleration] [-z timezone] "
+ "[-w width] [-h height]\n"
+ "e.g. linhes_timezone -w 1920 -h 1090 -z Australia/Adelaide\n"
+ "specify a timezone of 'guess' to determine the initial "
+ "timezone from\n"
+ "your ip address using geocache.\n",
+ argv[0]);
+ exit (0);
+ break;
+ }
+ }
+
+ pthread_create (&tid, NULL, lirc_thread, NULL);
+
+ /* Connect to the X server. */
+
+ display = XOpenDisplay ("");
+
+ if (display == NULL)
+ {
+ fprintf (stderr, "cannot connect to server\n");
+ exit (EXIT_FAILURE);
+ }
+
+ /* Get default screen. */
+
+ screen = DefaultScreen (display);
+ screen_width = XWidthOfScreen (DefaultScreenOfDisplay (display));
+ screen_height = XHeightOfScreen (DefaultScreenOfDisplay (display));
+
+ if ((arg_width <= 0) && (arg_height > 0))
+ arg_width == arg_height;
+
+ if (arg_width > 0)
+ {
+ width = arg_width;
+
+ if (arg_height <= 0)
+ height = width;
+ else
+ height = arg_height;
+
+ x = (screen_width - width) / 2;
+ y = (screen_height - height) / 2;
+ }
+ else
+ {
+ width = screen_width;
+ height = screen_height;
+ x = 0;
+ y = 0;
+ }
+
+ if (width < height)
+ radius = width;
+ else
+ radius = height;
+
+ radius = 0.96 * radius / 2;
+
+ if ((screen_height == 0) ||
+ (XWidthMMOfScreen (DefaultScreenOfDisplay (display)) == 0))
+ aspect_correction = 1;
+ else
+ aspect_correction =
+ sqrt (screen_width *
+ XHeightMMOfScreen (DefaultScreenOfDisplay (display)) * 1.0 /
+ screen_height /
+ XWidthMMOfScreen (DefaultScreenOfDisplay (display)));
+
+ // Protect against very wierd aspect corrections from bogus
+ // screen dimensions.
+ if ((aspect_correction < 0.5) || (aspect_correction > 2))
+ aspect_correction = 1;
+
+ window = XCreateSimpleWindow (display,
+ DefaultRootWindow(display), x, y, width, height, 0,
+ land[0].pixel, ocean.pixel);
+
+ remove_titlebar_and_borders ();
+ set_window_position (x, y);
+
+ if (!window)
+ {
+ fprintf (stderr, "cannot open window\n");
+ exit (EXIT_FAILURE);
+ }
+
+ /* set graphics context of rectangle to red */
+ gc= XCreateGC (display, window, 0, 0);
+ cmap = DefaultColormap (display, screen);
+
+ // Load the font.
+
+ font = XLoadQueryFont (display, (width > 800) ?
+ "-*-lucida-bold-r-*-*-34-*-*-*-*-*-*-*" :
+ "-*-lucida-bold-r-*-*-20-*-*-*-*-*-*-*");
+ if (!font)
+ fprintf (stderr,"error loading font\n");
+
+ XSetFont (display, gc, font->fid);
+
+ pixmap =
+ XCreatePixmap (display, window, width, height,
+ DefaultDepth (display, DefaultScreen (display)));
+
+ ocean.flags = DoRed | DoGreen | DoBlue;
+ ocean.red = 40 * 256;
+ ocean.green = 41 * 256;
+ ocean.blue = 72 * 256;
+ if (XAllocColor (display, cmap, &ocean) == 0)
+ printf ("Cant allocate color\n");
+
+ lat_lon.flags = DoRed | DoGreen | DoBlue;
+ lat_lon.red = 0 * 256;
+ lat_lon.green = 0 * 256;
+ lat_lon.blue = 86 * 256;
+ if (XAllocColor (display, cmap, &lat_lon) == 0)
+ printf ("Cant allocate color\n");
+
+ tux_yellow.flags = DoRed | DoGreen | DoBlue;
+ tux_yellow.red = 248 * 256;
+ tux_yellow.green = 191 * 256;
+ tux_yellow.blue = 17 * 256;
+ if (XAllocColor (display, cmap, &tux_yellow) == 0)
+ printf ("Cant allocate color\n");
+
+ for (int land_col = 0; land_col < XtNumber (land); land_col++)
+ {
+ land[land_col].flags = DoRed | DoGreen | DoBlue;
+ land[land_col].red = (120 + 9 * land_col) * 256;
+ land[land_col].green = (40 + 3 * land_col) * 256;
+ land[land_col].blue = 0 * 256;
+ if (XAllocColor (display, cmap, &land[land_col]) == 0)
+ printf ("Cant allocate color\n");
+ }
+
+ selected_land.flags = DoRed | DoGreen | DoBlue;
+ selected_land.red = 3 * 256;
+ selected_land.green = 40 * 256;
+ selected_land.blue = 13 * 256;
+ if (XAllocColor (display, cmap, &selected_land) == 0)
+ printf ("Cant allocate color\n");
+
+ border.flags = DoRed | DoGreen | DoBlue;
+ border.red = 0 * 256;
+ border.green = 0 * 256;
+ border.blue = 0 * 256;
+ if (XAllocColor (display, cmap, &border) == 0)
+ printf ("Cant allocate color\n");
+
+ selected_border.flags = DoRed | DoGreen | DoBlue;
+ selected_border.red = 80 * 256;
+ selected_border.green = 255 * 256;
+ selected_border.blue = 80 * 256;
+ if (XAllocColor (display, cmap, &selected_border) == 0)
+ printf ("Cant allocate color\n");
+
+ name_colour.flags = DoRed | DoGreen | DoBlue;
+ name_colour.red = 255 * 256;
+ name_colour.green = 255 * 256;
+ name_colour.blue = 0 * 256;
+ if (XAllocColor (display, cmap, &name_colour) == 0)
+ printf ("Cant allocate color\n");
+
+ location_dot.flags = DoRed | DoGreen | DoBlue;
+ location_dot.red = 255 * 256;
+ location_dot.green = 55 * 256;
+ location_dot.blue = 200 * 256;
+ if (XAllocColor (display, cmap, &location_dot) == 0)
+ printf ("Cant allocate color\n");
+
+ // Find the selected timezone (or LA if a timezone was not selected) and
+ // make that the selected zone and place.
+
+ default_zone (arg_zone);
+
+ if (guessing_timezone)
+ {
+ pthread_create (&tid, NULL, timezone_guess, NULL);
+ guess_timeout = time (NULL) + 10;
+ displayed_lat = M_PI/2;
+ displayed_lon = 0;
+ }
+ else
+ {
+ displayed_lat = target_lat;
+ displayed_lon = target_lon;
+ }
+
+ /* ask for exposure event and keyboard events */
+ XSelectInput(display, window, KeymapNotify | ExposureMask);
+
+ /* pop this window up on the screen */
+ XMapRaised (display, window);
+
+ redraw_map ();
+
+ while (1)
+ {
+ if (guessing_timezone && (time (NULL) > guess_timeout))
+ {
+ guessing_timezone = FALSE;
+ guess_failed_timeout = time (NULL) + 3;
+ guess_failed = TRUE;
+ }
+
+ if ((displayed_lat != target_lat) || (displayed_lon != target_lon) ||
+ guessing_timezone || guess_failed ||
+ (info_displayed ^ show_information))
+ {
+ if (guess_failed && (time (NULL) > guess_failed_timeout))
+ {
+ guess_failed = FALSE;
+ }
+
+ next_view ();
+ redraw_map ();
+ }
+ else
+ {
+ usleep (1000);
+ }
+
+ while (strlen (input_keys))
+ {
+ handle_key (input_keys[0]);
+ memmove (&input_keys[0], &input_keys[1], strlen (input_keys));
+ }
+
+ // If there is an event pending, go on to process it.
+
+ if (XCheckIfEvent (display, &xevent, event_predicate, NULL))
+ handle_event (&xevent);
+ }
+
+ return 0;
+}
diff --git a/abs/not_built/core/alsa-oss/PKGBUILD b/abs/not_built/core/alsa-oss/PKGBUILD
new file mode 100644
index 0000000..66f7030
--- /dev/null
+++ b/abs/not_built/core/alsa-oss/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 13736 2008-09-28 09:04:09Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=alsa-oss
+pkgver=1.0.17
+pkgrel=1
+pkgdesc="OSS compatibility library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.alsa-project.org"
+options=(!libtool)
+depends=('glibc' 'alsa-lib>=1.0.17a')
+source=(ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('1b1850c2fc91476a73d50f537cbd402f')
diff --git a/abs/not_built/core/aufs2-util/PKGBUILD b/abs/not_built/core/aufs2-util/PKGBUILD
new file mode 100644
index 0000000..87e7f7f
--- /dev/null
+++ b/abs/not_built/core/aufs2-util/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Paul Mattal <paul@mattal.com>
+
+pkgname=aufs2-util
+pkgver=20110314
+pkgrel=1
+pkgdesc="Another Unionfs Implementation that supports NFS branches"
+arch=('i686' 'x86_64')
+url="http://aufs.sourceforge.net/"
+license=('GPL2')
+depends=('glibc')
+makedepends=('kernel26-headers')
+replaces=('aufs-utils')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+md5sums=('bf0f9c86361e12a3181fb3891e57cd8d')
diff --git a/abs/not_built/core/cdrdao/PKGBUILD b/abs/not_built/core/cdrdao/PKGBUILD
new file mode 100644
index 0000000..ff79afd
--- /dev/null
+++ b/abs/not_built/core/cdrdao/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=cdrdao
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="Records audio/data CD-Rs in disk-at-once (DAO) mode"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://cdrdao.sourceforge.net/"
+depends=('gcc-libs' 'lame' 'libmad' 'libvorbis' 'libao')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2 \
+ cdrdao-1.2.2-gcc43.patch)
+md5sums=('f0cbf36907406cb4f4c568f9e6669a34' '828963048850fe9e540c2b29ee987fd7')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np1 -i $startdir/src/cdrdao-1.2.2-gcc43.patch
+ ./configure --prefix=/usr --with-lame
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch b/abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch
new file mode 100644
index 0000000..f6707a9
--- /dev/null
+++ b/abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch
@@ -0,0 +1,73 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 09-gcc-3.4.dpatch by Matthias Klose <doko@debian.org>
+##
+## DP: Fix build failures with g++-4.3 (Closes: #455309).
+
+@DPATCH@
+
+diff -Naurp cdrdao-1.2.2.orig/trackdb/FormatConverter.cc cdrdao-1.2.2/trackdb/FormatConverter.cc
+--- cdrdao-1.2.2.orig/trackdb/FormatConverter.cc 2005-05-10 00:55:28.000000000 +0000
++++ cdrdao-1.2.2/trackdb/FormatConverter.cc 2008-03-07 11:14:07.000000000 +0000
+@@ -22,6 +22,7 @@
+ #include <ao/ao.h>
+ #endif
+ #include <fstream>
++#include <cstring>
+
+ #include "config.h"
+ #include "util.h"
+diff -Naurp cdrdao-1.2.2.orig/trackdb/FormatOgg.cc cdrdao-1.2.2/trackdb/FormatOgg.cc
+--- cdrdao-1.2.2.orig/trackdb/FormatOgg.cc 2005-04-22 02:01:46.000000000 +0000
++++ cdrdao-1.2.2/trackdb/FormatOgg.cc 2008-03-07 11:14:07.000000000 +0000
+@@ -18,6 +18,7 @@
+ */
+
+ #include <stdio.h>
++#include <cstring>
+
+ #include "util.h"
+ #include "FormatOgg.h"
+diff -Naurp cdrdao-1.2.2.orig/trackdb/FormatMp3.cc cdrdao-1.2.2/trackdb/FormatMp3.cc
+--- cdrdao-1.2.2.orig/trackdb/FormatMp3.cc 2005-09-24 20:28:43.000000000 +0000
++++ cdrdao-1.2.2/trackdb/FormatMp3.cc 2008-03-07 11.14.07.000000000 +0000
+@@ -25,6 +25,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <cstring>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+diff -Naurp cdrdao-1.2.2.orig/trackdb/TempFileManager.cc cdrdao-1.2.2/trackdb/TempFileManager.cc
+--- cdrdao-1.2.2.orig/trackdb/TempFileManager.cc 2005-04-22 02:01:46.000000000 +0000
++++ cdrdao-1.2.2/trackdb/TempFileManager.cc 2008-03-07 11:14:07.000000000 +0000
+@@ -24,6 +24,7 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <cstring>
+
+ #define DEFAULT_TEMP_PATH "/tmp/"
+
+diff -Naurp cdrdao-1.2.2.orig/xdao/AudioCDProject.cc cdrdao-1.2.2/xdao/AudioCDProject.cc
+--- cdrdao-1.2.2.orig/xdao/AudioCDProject.cc 2006-09-18 10:42:26.000000000 +0000
++++ cdrdao-1.2.2/xdao/AudioCDProject.cc 2008-03-07 11:15:26.000000000 +0000
+@@ -18,6 +18,7 @@
+ */
+
+ #include <assert.h>
++#include <cstring>
+ #include <gtkmm.h>
+ #include <libgnome/gnome-i18n.h>
+
+diff -Naurp cdrdao-1.2.2.orig/xdao/TextEdit.cc cdrdao-1.2.2/xdao/TextEdit.cc
+--- cdrdao-1.2.2.orig/xdao/TextEdit.cc 2004-02-12 01:13:32.000000000 +0000
++++ cdrdao-1.2.2/xdao/TextEdit.cc 2008-03-07 11:14:07.000000000 +0000
+@@ -21,6 +21,7 @@
+
+ #include <stddef.h>
+ #include <ctype.h>
++#include <cstring>
+
+ TextEdit::TextEdit(const char *sample) : Gtk::Entry()
+ {
diff --git a/abs/not_built/core/cdrdao/gcc4.patch b/abs/not_built/core/cdrdao/gcc4.patch
new file mode 100644
index 0000000..8fc84b7
--- /dev/null
+++ b/abs/not_built/core/cdrdao/gcc4.patch
@@ -0,0 +1,23 @@
+--- cdrdao-1.2.0/trackdb/FormatConverter.h 2005-06-30 13:35:59.000000000 +0200
++++ cdrdao-1.2.0.az/trackdb/FormatConverter.h 2005-06-30 13:34:18.000000000 +0200
+@@ -95,7 +95,7 @@
+
+ // Convert all files contained in a given Toc object, and update the
+ // Toc accordingly. This is a big time blocking call.
+- FormatSupport::Status convert(Toc* toc);
++ FormatSupport::Status convert(class Toc* toc);
+
+ // Dynamic allocator.
+ FormatSupport* newConverter(const char* src);
+--- cdrdao-1.2.0/trackdb/CueParser.cc 2005-06-30 13:36:09.000000000 +0200
++++ cdrdao-1.2.0.az/trackdb/CueParser.cc 2005-06-30 13:36:22.000000000 +0200
+@@ -23,7 +23,7 @@
+
+ #include "Cue2Toc.h"
+
+-extern Toc *parseToc(const char* tocBuffer, const char *filename);
++extern class Toc *parseToc(const char* tocBuffer, const char *filename);
+
+ Toc *parseCue(FILE *fp, const char *filename)
+ {
+
diff --git a/abs/not_built/core/cdrkit/PKGBUILD b/abs/not_built/core/cdrkit/PKGBUILD
new file mode 100644
index 0000000..3b0d099
--- /dev/null
+++ b/abs/not_built/core/cdrkit/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 62750 2010-01-11 18:23:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=cdrkit
+pkgver=1.1.10
+pkgrel=1
+pkgdesc="Suite of programs for CD/DVD recording, ISO image creation, and audio CD extraction"
+arch=('i686' 'x86_64')
+url="http://cdrkit.org/"
+license=('GPL2')
+depends=('file' 'bzip2' 'perl')
+makedepends=('cmake')
+provides=('cdrtools')
+conflicts=('cdrtools')
+source=(http://cdrkit.org/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('3c25505d567113c269dc6e71640646d8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make || return 1
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make PREFIX="$pkgdir/usr" install || return 1
+
+ # Make symlinks for cdrtools compatibility
+ cd "$pkgdir/usr/bin"
+ ln -s wodim cdrecord || return 1
+ ln -s readom readcd || return 1
+ ln -s genisoimage mkisofs || return 1
+ ln -s genisoimage mkhybrid || return 1
+ ln -s icedax cdda2wav || return 1
+
+ cd "$pkgdir/usr/share/man/man1"
+ ln -s wodim.1 cdrecord.1 || return 1
+ ln -s readom.1 readcd.1 || return 1
+ ln -s genisoimage.1 mkisofs.1 || return 1
+ ln -s genisoimage.1 mkhybrid.1 || return 1
+ ln -s icedax.1 cdda2wav.1 || return 1
+}
diff --git a/abs/not_built/core/ceton-scripts/PKGBUILD b/abs/not_built/core/ceton-scripts/PKGBUILD
new file mode 100644
index 0000000..8bab8c0
--- /dev/null
+++ b/abs/not_built/core/ceton-scripts/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=ceton-scripts
+pkgver=1
+pkgrel=2
+pkgdesc="Scripts by Ron Frazier for use with Ceton InfiniTV4 and MythTV 0.24"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://linuxtv.org/"
+source=('http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_qam_channelmap.tar.gz'
+ 'http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_channelmap.tar.gz'
+ 'ccm.patch' 'cqcm.patch')
+build() {
+ cd $startdir/src/
+ patch -p0 < ccm.patch
+ patch -p0 < cqcm.patch
+ mkdir -p $startdir/pkg/usr/bin
+ install -m 755 *.pl $pkgdir/usr/bin
+}
+md5sums=('7ef75cb01332ab86d56c348353d59a0e'
+ 'ab362902926c01a9b03498cc1aed4d14'
+ 'b57b7f04c1c177455b47efc958325ab9'
+ '40af5815f67fdf8070cf8aa041928a3b')
diff --git a/abs/not_built/core/ceton-scripts/ccm.patch b/abs/not_built/core/ceton-scripts/ccm.patch
new file mode 100644
index 0000000..53ec740
--- /dev/null
+++ b/abs/not_built/core/ceton-scripts/ccm.patch
@@ -0,0 +1,13 @@
+--- ceton_channelmap.pl.orig 2011-08-16 22:41:03.000000000 +0000
++++ ceton_channelmap.pl 2011-08-16 22:41:47.000000000 +0000
+@@ -8,8 +8,8 @@
+
+ my $mysql_host = 'localhost';
+ my $mysql_db = 'mythconverg';
+-my $mysql_user = 'root';
+-my $mysql_pw = 'PUT PASSWORD HERE';
++my $mysql_user = 'mythtv';
++my $mysql_pw = 'mythtv';
+
+ -e $wget_path or die "Error: wget does not appear to be in the location specified ($wget_path) . Please configure the \$wget_path variable in this script\n";
+
diff --git a/abs/not_built/core/ceton-scripts/cqcm.patch b/abs/not_built/core/ceton-scripts/cqcm.patch
new file mode 100644
index 0000000..479ed1f
--- /dev/null
+++ b/abs/not_built/core/ceton-scripts/cqcm.patch
@@ -0,0 +1,13 @@
+--- ceton_qam_channelmap.pl.orig 2011-08-16 22:41:13.000000000 +0000
++++ ceton_qam_channelmap.pl 2011-08-16 22:42:37.000000000 +0000
+@@ -11,8 +11,8 @@
+
+ my $mysql_host = 'localhost';
+ my $mysql_db = 'mythconverg';
+-my $mysql_user = 'root';
+-my $mysql_pw = 'PUT PASSWORD HERE';
++my $mysql_user = 'mythtv';
++my $mysql_pw = 'mythtv';
+
+ my $global_modulation = 'qam_256';
+
diff --git a/abs/not_built/core/cloog-ppl/PKGBUILD b/abs/not_built/core/cloog-ppl/PKGBUILD
new file mode 100644
index 0000000..56af019
--- /dev/null
+++ b/abs/not_built/core/cloog-ppl/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 87235 2010-08-11 12:10:19Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: ezzetabi <ezzetabi at gawab dot com>
+
+pkgname=cloog-ppl
+pkgver=0.15.9
+pkgrel=2
+pkgdesc="Library that generates loops for scanning polyhedra"
+arch=('i686' 'x86_64')
+url="http://www.cloog.org/"
+license=('GPL')
+depends=('ppl>=0.11')
+options=('!libtool')
+source=(ftp://gcc.gnu.org/pub/gcc/infrastructure/${pkgname}-${pkgver}.tar.gz)
+md5sums=('806e001d1b1a6b130069ff6274900af5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # "Add" ppl-0.11 compatibility
+ sed -i "/ppl_minor_version=/s#10#11#" configure
+
+ ./configure --prefix=/usr --infodir=/usr/share/info \
+ --with-bits=gmp --with-ppl=/usr
+ make
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir/ install
+}
diff --git a/abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch b/abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch
new file mode 100644
index 0000000..087b87c
--- /dev/null
+++ b/abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch
@@ -0,0 +1,135 @@
+From 6124a3842dfa8484b52e067a8ab8105c3875a4f7 Mon Sep 17 00:00:00 2001
+From: Jim Meyering <meyering@redhat.com>
+Date: Thu, 10 May 2012 19:43:00 +0200
+Subject: [PATCH] ls: color each symlink-to-relative-name in / properly
+
+In order for ls --color to color each symlink, it must form the name
+of each referent and then stat it to see if the link is dangling, to
+a directory, to a file, etc. When the symlink is to a relative name,
+ls must concatenate the starting directory name and that relative name.
+When, in addition, the starting directory was "/" or "/some-name",
+the result was ill-formed, and the subsequent stat would usually fail,
+making the caller color it as a dangling symlink.
+* src/ls.c (make_link_name): Don't botch the case in which
+dir_name(NAME) == "/" and LINKNAME is relative.
+* tests/ls/root-rel-symlink-color: New file. Test for the above.
+* tests/Makefile.am (TESTS): Add it.
+* NEWS (Bug fixes): Mention it.
+Reported by Mike Frysinger in http://bugs.gnu.org/11453
+Bug introduced by commit v8.16-23-gbcb9078.
+---
+ NEWS | 5 ++++
+ src/ls.c | 9 +++++++-
+ tests/Makefile.am | 1 +
+ tests/ls/root-rel-symlink-color | 51 +++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 65 insertions(+), 1 deletion(-)
+ create mode 100755 tests/ls/root-rel-symlink-color
+
+diff --git a/NEWS b/NEWS
+index 6c620b3..f9e9c70 100644
+--- a/NEWS
++++ b/NEWS
+@@ -2,6 +2,11 @@ GNU coreutils NEWS -*- outline -*-
+
+ * Noteworthy changes in release ?.? (????-??-??) [?]
+
++** Bug fixes
++
++ ls --color would mis-color relative-named symlinks in /
++ [bug introduced in coreutils-8.17]
++
+
+ * Noteworthy changes in release 8.17 (2012-05-10) [stable]
+
+diff --git a/src/ls.c b/src/ls.c
+index 397e4ea..9494ae9 100644
+--- a/src/ls.c
++++ b/src/ls.c
+@@ -3213,7 +3213,14 @@ make_link_name (char const *name, char const *linkname)
+ return xstrdup (linkname);
+
+ char *p = xmalloc (prefix_len + 1 + strlen (linkname) + 1);
+- stpcpy (stpncpy (p, name, prefix_len + 1), linkname);
++
++ /* PREFIX_LEN usually specifies a string not ending in slash.
++ In that case, extend it by one, since the next byte *is* a slash.
++ Otherwise, the prefix is "/", so leave the length unchanged. */
++ if ( ! ISSLASH (name[prefix_len - 1]))
++ ++prefix_len;
++
++ stpcpy (stpncpy (p, name, prefix_len), linkname);
+ return p;
+ }
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index a4370a6..0bafc5f 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -449,6 +449,7 @@ TESTS = \
+ ls/proc-selinux-segfault \
+ ls/readdir-mountpoint-inode \
+ ls/recursive \
++ ls/root-rel-symlink-color \
+ ls/rt-1 \
+ ls/slink-acl \
+ ls/stat-dtype \
+diff --git a/tests/ls/root-rel-symlink-color b/tests/ls/root-rel-symlink-color
+new file mode 100755
+index 0000000..d795432
+--- /dev/null
++++ b/tests/ls/root-rel-symlink-color
+@@ -0,0 +1,51 @@
++#!/bin/sh
++# Exercise the 8.17 ls bug with coloring relative-named symlinks in "/".
++
++# Copyright (C) 2012 Free Software Foundation, Inc.
++
++# This program is free software: you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation, either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../src
++print_ver_ ls
++
++symlink_to_rel=
++for i in /*; do
++ # Skip non-symlinks:
++ env test -h "$i" || continue
++
++ # Skip dangling symlinks:
++ env test -e "$i" || continue
++
++ # Skip any symlink-to-absolute-name:
++ case $(readlink "$i") in /*) continue ;; esac
++
++ symlink_to_rel=$i
++ break
++done
++
++test -z "$symlink_to_rel" \
++ && skip_ no relative symlink in /
++
++e='\33'
++color_code='01;36'
++c_pre="$e[0m$e[${color_code}m"
++c_post="$e[0m"
++printf "$c_pre$symlink_to_rel$c_post\n" > exp || framework_failure_
++
++env TERM=xterm LS_COLORS="ln=$color_code:or=1;31;42" \
++ ls -d --color=always "$symlink_to_rel" > out || fail=1
++
++compare exp out || fail=1
++
++Exit $fail
+--
+1.7.11.2
+
diff --git a/abs/not_built/core/coreutils/PKGBUILD b/abs/not_built/core/coreutils/PKGBUILD
new file mode 100644
index 0000000..f83225f
--- /dev/null
+++ b/abs/not_built/core/coreutils/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 163714 2012-07-18 02:16:52Z dreisner $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=coreutils
+pkgver=8.17
+pkgrel=3
+pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/coreutils"
+groups=('base')
+depends=('glibc' 'pam' 'acl' 'gmp' 'libcap')
+replaces=('mktemp')
+backup=('etc/pam.d/su')
+install=${pkgname}.install
+options=('!emptydirs')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
+ coreutils-pam.patch
+ 0001-ls-color-each-symlink-to-relative-name-in-properly.patch
+ su.pam)
+md5sums=('bbda656ce8ca2c6903948f9faa204ba3'
+ 'ebecd29b095aa21b0b2f833f1ec20d70'
+ 'aad79a2aa6d566c375d7bdd1b0767278'
+ 'd7c691898a695a6284a927e6a9426fe4'
+ 'fa85e5cce5d723275b14365ba71a8aad')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # added su wheel group pam patch (from fedora git)
+ patch -Np1 -i ${srcdir}/coreutils-pam.patch
+
+ # fix coloring for symlinks in /
+ # upstream commit 6124a3842dfa8484b52e067a8ab8105c3875a4f7
+ patch -Np1 -i $srcdir/0001-ls-color-each-symlink-to-relative-name-in-properly.patch
+
+ autoreconf -v
+ ./configure --prefix=/usr --libexecdir=/usr/lib/coreutils \
+ --enable-install-program=su \
+ --enable-no-install-program=groups,hostname,kill,uptime \
+ --enable-pam
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make RUN_EXPENSIVE_TESTS=yes check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ cd ${pkgdir}/usr/bin
+ install -dm755 ${pkgdir}/{bin,usr/sbin}
+
+ # binaries required by FHS
+ _fhs=('cat' 'chgrp' 'chmod' 'chown' 'cp' 'date' 'dd' 'df' 'echo' 'false'
+ 'ln' 'ls' 'mkdir' 'mknod' 'mv' 'pwd' 'rm' 'rmdir' 'stty' 'su' 'sync'
+ 'true' 'uname')
+ mv ${_fhs[@]} ${pkgdir}/bin
+
+ mv chroot ${pkgdir}/usr/sbin
+ install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su
+}
diff --git a/abs/not_built/core/coreutils/coreutils-pam.patch b/abs/not_built/core/coreutils/coreutils-pam.patch
new file mode 100644
index 0000000..e61908f
--- /dev/null
+++ b/abs/not_built/core/coreutils/coreutils-pam.patch
@@ -0,0 +1,428 @@
+diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac
+--- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100
++++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100
+@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then
+ AC_SUBST([GNULIB_WARN_CFLAGS])
+ fi
+
++dnl Give the chance to enable PAM
++AC_ARG_ENABLE(pam, dnl
++[ --enable-pam Enable use of the PAM libraries],
++[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
++LIB_PAM="-ldl -lpam -lpam_misc"
++AC_SUBST(LIB_PAM)])
++
+ AC_FUNC_FORK
+
+ optional_bin_progs=
+diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi
+--- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100
++++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100
+@@ -15081,8 +15081,11 @@ to certain shells, etc.).
+ @findex syslog
+ @command{su} can optionally be compiled to use @code{syslog} to report
+ failed, and optionally successful, @command{su} attempts. (If the system
+-supports @code{syslog}.) However, GNU @command{su} does not check if the
+-user is a member of the @code{wheel} group; see below.
++supports @code{syslog}.)
++
++This version of @command{su} has support for using PAM for
++authentication. You can edit @file{/etc/pam.d/su} to customize its
++behaviour.
+
+ The program accepts the following options. Also see @ref{Common options}.
+
+@@ -15124,6 +15127,8 @@ environment variables except @env{TERM},
+ @env{PATH} to a compiled-in default value. Change to @var{user}'s home
+ directory. Prepend @samp{-} to the shell's name, intended to make it
+ read its login startup file(s).
++Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables
++are preserved as well for PAM functionality.
+
+ @item -m
+ @itemx -p
+@@ -15163,33 +15168,6 @@ Exit status:
+ the exit status of the subshell otherwise
+ @end display
+
+-@cindex wheel group, not supported
+-@cindex group wheel, not supported
+-@cindex fascism
+-@subsection Why GNU @command{su} does not support the @samp{wheel} group
+-
+-(This section is by Richard Stallman.)
+-
+-@cindex Twenex
+-@cindex MIT AI lab
+-Sometimes a few of the users try to hold total power over all the
+-rest. For example, in 1984, a few users at the MIT AI lab decided to
+-seize power by changing the operator password on the Twenex system and
+-keeping it secret from everyone else. (I was able to thwart this coup
+-and give power back to the users by patching the kernel, but I
+-wouldn't know how to do that in Unix.)
+-
+-However, occasionally the rulers do tell someone. Under the usual
+-@command{su} mechanism, once someone learns the root password who
+-sympathizes with the ordinary users, he or she can tell the rest. The
+-``wheel group'' feature would make this impossible, and thus cement the
+-power of the rulers.
+-
+-I'm on the side of the masses, not that of the rulers. If you are
+-used to supporting the bosses and sysadmins in whatever they do, you
+-might find this idea strange at first.
+-
+-
+ @node timeout invocation
+ @section @command{timeout}: Run a command with a time limit
+
+diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am
+--- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100
++++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100
+@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP)
+ uptime_LDADD += $(GETLOADAVG_LIBS)
+
+ # for crypt
+-su_LDADD += $(LIB_CRYPT)
++su_LDADD += $(LIB_CRYPT) @LIB_PAM@
+
+ # for various ACL functions
+ copy_LDADD += $(LIB_ACL)
+diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c
+--- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100
++++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100
+@@ -37,6 +37,16 @@
+ restricts who can su to UID 0 accounts. RMS considers that to
+ be fascist.
+
++#ifdef USE_PAM
++
++ Actually, with PAM, su has nothing to do with whether or not a
++ wheel group is enforced by su. RMS tries to restrict your access
++ to a su which implements the wheel group, but PAM considers that
++ to be fascist, and gives the user/sysadmin the opportunity to
++ enforce a wheel group by proper editing of /etc/pam.conf
++
++#endif
++
+ Compile-time options:
+ -DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
+ -DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
+@@ -53,6 +63,15 @@
+ #include <pwd.h>
+ #include <grp.h>
+
++#ifdef USE_PAM
++# include <signal.h>
++# include <sys/wait.h>
++# include <sys/fsuid.h>
++# include <unistd.h>
++# include <security/pam_appl.h>
++# include <security/pam_misc.h>
++#endif /* USE_PAM */
++
+ #include "system.h"
+ #include "getpass.h"
+
+@@ -120,10 +139,17 @@
+ /* The user to become if none is specified. */
+ #define DEFAULT_USER "root"
+
++#ifndef USE_PAM
+ char *crypt (char const *key, char const *salt);
++#endif
+
+-static void run_shell (char const *, char const *, char **, size_t)
++static void run_shell (char const *, char const *, char **, size_t,
++ const struct passwd *)
++#ifdef USE_PAM
++ ;
++#else
+ ATTRIBUTE_NORETURN;
++#endif
+
+ /* If true, pass the `-f' option to the subshell. */
+ static bool fast_startup;
+@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su
+ }
+ #endif
+
++#ifdef USE_PAM
++static pam_handle_t *pamh = NULL;
++static int retval;
++static struct pam_conv conv = {
++ misc_conv,
++ NULL
++};
++
++#define PAM_BAIL_P if (retval) { \
++ pam_end(pamh, PAM_SUCCESS); \
++ return 0; \
++}
++#define PAM_BAIL_P_VOID if (retval) { \
++ pam_end(pamh, PAM_SUCCESS); \
++return; \
++}
++#endif
++
+ /* Ask the user for a password.
++ If PAM is in use, let PAM ask for the password if necessary.
+ Return true if the user gives the correct password for entry PW,
+ false if not. Return true without asking for a password if run by UID 0
+ or if PW has an empty password. */
+@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su
+ static bool
+ correct_password (const struct passwd *pw)
+ {
++#ifdef USE_PAM
++ struct passwd *caller;
++ char *tty_name, *ttyn;
++ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
++ PAM_BAIL_P;
++
++ if (getuid() != 0 && !isatty(0)) {
++ fprintf(stderr, "standard in must be a tty\n");
++ exit(1);
++ }
++
++ caller = getpwuid(getuid());
++ if(caller != NULL && caller->pw_name != NULL) {
++ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
++ PAM_BAIL_P;
++ }
++
++ ttyn = ttyname(0);
++ if (ttyn) {
++ if (strncmp(ttyn, "/dev/", 5) == 0)
++ tty_name = ttyn+5;
++ else
++ tty_name = ttyn;
++ retval = pam_set_item(pamh, PAM_TTY, tty_name);
++ PAM_BAIL_P;
++ }
++ retval = pam_authenticate(pamh, 0);
++ PAM_BAIL_P;
++ retval = pam_acct_mgmt(pamh, 0);
++ if (retval == PAM_NEW_AUTHTOK_REQD) {
++ /* password has expired. Offer option to change it. */
++ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
++ PAM_BAIL_P;
++ }
++ PAM_BAIL_P;
++ /* must be authenticated if this point was reached */
++ return 1;
++#else /* !USE_PAM */
+ char *unencrypted, *encrypted, *correct;
+ #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
+ /* Shadow passwd stuff for SVR3 and maybe other systems. */
+@@ -241,6 +324,7 @@ correct_password (const struct passwd *p
+ encrypted = crypt (unencrypted, correct);
+ memset (unencrypted, 0, strlen (unencrypted));
+ return STREQ (encrypted, correct);
++#endif /* !USE_PAM */
+ }
+
+ /* Update `environ' for the new shell based on PW, with SHELL being
+@@ -254,12 +338,18 @@ modify_environment (const struct passwd
+ /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH.
+ Unset all other environment variables. */
+ char const *term = getenv ("TERM");
++ char const *display = getenv ("DISPLAY");
++ char const *xauthority = getenv ("XAUTHORITY");
+ if (term)
+ term = xstrdup (term);
+ environ = xmalloc ((6 + !!term) * sizeof (char *));
+ environ[0] = NULL;
+ if (term)
+ xsetenv ("TERM", term);
++ if (display)
++ xsetenv ("DISPLAY", display);
++ if (xauthority)
++ xsetenv ("XAUTHORITY", xauthority);
+ xsetenv ("HOME", pw->pw_dir);
+ xsetenv ("SHELL", shell);
+ xsetenv ("USER", pw->pw_name);
+@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw
+ {
+ #ifdef HAVE_INITGROUPS
+ errno = 0;
+- if (initgroups (pw->pw_name, pw->pw_gid) == -1)
++ if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
++#ifdef USE_PAM
++ pam_close_session(pamh, 0);
++ pam_end(pamh, PAM_ABORT);
++#endif
+ error (EXIT_CANCELED, errno, _("cannot set groups"));
++ }
+ endgrent ();
+ #endif
+ if (setgid (pw->pw_gid))
+@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw
+ error (EXIT_CANCELED, errno, _("cannot set user id"));
+ }
+
++#ifdef USE_PAM
++static int caught=0;
++/* Signal handler for parent process later */
++static void su_catch_sig(int sig)
++{
++ ++caught;
++}
++
++int
++pam_copyenv (pam_handle_t *pamh)
++{
++ char **env;
++
++ env = pam_getenvlist(pamh);
++ if(env) {
++ while(*env) {
++ if (putenv (*env))
++ xalloc_die ();
++ env++;
++ }
++ }
++ return(0);
++}
++#endif
++
+ /* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
+ If COMMAND is nonzero, pass it to the shell with the -c option.
+ Pass ADDITIONAL_ARGS to the shell as more arguments; there
+@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw
+
+ static void
+ run_shell (char const *shell, char const *command, char **additional_args,
+- size_t n_additional_args)
++ size_t n_additional_args, const struct passwd *pw)
+ {
+ size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
+ char const **args = xnmalloc (n_args, sizeof *args);
+ size_t argno = 1;
++#ifdef USE_PAM
++ int child;
++ sigset_t ourset;
++ int status;
++
++ retval = pam_open_session(pamh,0);
++ if (retval != PAM_SUCCESS) {
++ fprintf (stderr, "could not open session\n");
++ exit (1);
++ }
++
++/* do this at the last possible moment, because environment variables may
++ be passed even in the session phase
++*/
++ if(pam_copyenv(pamh) != PAM_SUCCESS)
++ fprintf (stderr, "error copying PAM environment\n");
++
++ /* Credentials should be set in the parent */
++ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
++ pam_close_session(pamh, 0);
++ fprintf(stderr, "could not set PAM credentials\n");
++ exit(1);
++ }
++
++ child = fork();
++ if (child == 0) { /* child shell */
++ change_identity (pw);
++ pam_end(pamh, 0);
++#endif
+
+ if (simulate_login)
+ {
+ char *arg0;
+ char *shell_basename;
+
++ if(chdir(pw->pw_dir))
++ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
++
+ shell_basename = last_component (shell);
+ arg0 = xmalloc (strlen (shell_basename) + 2);
+ arg0[0] = '-';
+@@ -344,6 +496,67 @@ run_shell (char const *shell, char const
+ error (0, errno, "%s", shell);
+ exit (exit_status);
+ }
++#ifdef USE_PAM
++ } else if (child == -1) {
++ fprintf(stderr, "can not fork user shell: %s", strerror(errno));
++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
++ pam_close_session(pamh, 0);
++ pam_end(pamh, PAM_ABORT);
++ exit(1);
++ }
++ /* parent only */
++ sigfillset(&ourset);
++ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
++ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME);
++ caught = 1;
++ }
++ if (!caught) {
++ struct sigaction action;
++ action.sa_handler = su_catch_sig;
++ sigemptyset(&action.sa_mask);
++ action.sa_flags = 0;
++ sigemptyset(&ourset);
++ if (sigaddset(&ourset, SIGTERM)
++ || sigaddset(&ourset, SIGALRM)
++ || sigaction(SIGTERM, &action, NULL)
++ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
++ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
++ caught = 1;
++ }
++ }
++ if (!caught) {
++ do {
++ int pid;
++
++ pid = waitpid(-1, &status, WUNTRACED);
++
++ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) {
++ kill(getpid(), WSTOPSIG(status));
++ /* once we get here, we must have resumed */
++ kill(pid, SIGCONT);
++ }
++ } while (0 != WIFSTOPPED(status));
++ }
++
++ if (caught) {
++ fprintf(stderr, "\nSession terminated, killing shell...");
++ kill (child, SIGTERM);
++ }
++ /* Not checking retval on this because we need to call close session */
++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
++ retval = pam_close_session(pamh, 0);
++ PAM_BAIL_P_VOID;
++ retval = pam_end(pamh, PAM_SUCCESS);
++ PAM_BAIL_P_VOID;
++ if (caught) {
++ sleep(2);
++ kill(child, SIGKILL);
++ fprintf(stderr, " ...killed.\n");
++ exit(-1);
++ }
++ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status)
++ : WTERMSIG (status) + 128);
++#endif /* USE_PAM */
+ }
+
+ /* Return true if SHELL is a restricted shell (one not returned by
+@@ -511,9 +724,9 @@ main (int argc, char **argv)
+ shell = xstrdup (shell ? shell : pw->pw_shell);
+ modify_environment (pw, shell);
+
++#ifndef USE_PAM
+ change_identity (pw);
+- if (simulate_login && chdir (pw->pw_dir) != 0)
+- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
++#endif
+
+ /* error() flushes stderr, but does not check for write failure.
+ Normally, we would catch this via our atexit() hook of
+@@ -523,5 +736,5 @@ main (int argc, char **argv)
+ if (ferror (stderr))
+ exit (EXIT_CANCELED);
+
+- run_shell (shell, command, argv + optind, MAX (0, argc - optind));
++ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
+ }
diff --git a/abs/not_built/core/coreutils/coreutils.install b/abs/not_built/core/coreutils/coreutils.install
new file mode 100644
index 0000000..8caae66
--- /dev/null
+++ b/abs/not_built/core/coreutils/coreutils.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(coreutils.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/abs/not_built/core/coreutils/su.pam b/abs/not_built/core/coreutils/su.pam
new file mode 100644
index 0000000..cf15f40
--- /dev/null
+++ b/abs/not_built/core/coreutils/su.pam
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+# Uncomment the following line to implicitly trust users in the "wheel" group.
+#auth sufficient pam_wheel.so trust use_uid
+# Uncomment the following line to require a user to be in the "wheel" group.
+#auth required pam_wheel.so use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/abs/not_built/core/cpio/PKGBUILD b/abs/not_built/core/cpio/PKGBUILD
new file mode 100644
index 0000000..712fa3d
--- /dev/null
+++ b/abs/not_built/core/cpio/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 76085 2010-04-07 18:00:10Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=cpio
+pkgver=2.11
+pkgrel=2
+pkgdesc="A tool to copy files into or out of a cpio or tar archive"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnu.org/software/cpio"
+depends=('glibc')
+source=(ftp://ftp.gnu.org/gnu/cpio/cpio-${pkgver}.tar.gz)
+install=cpio.install
+md5sums=('1112bb6c45863468b5496ba128792f6c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -f ${pkgdir}/usr/bin/mt ${pkgdir}/pkg/usr/share/man/man1/mt.1
+ mv ${pkgdir}/usr/bin ${pkgdir}/bin
+ rm -rf ${pkgdir}/usr/libexec
+ # remove mt manpage it conflicts with mt-st from extra
+ rm $pkgdir/usr/share/man/man1/mt.1 || return 1
+ # remove infodir
+ rm $pkgdir/usr/share/info/dir
+}
diff --git a/abs/not_built/core/cpio/cpio-gcc43.patch b/abs/not_built/core/cpio/cpio-gcc43.patch
new file mode 100644
index 0000000..0057b8d
--- /dev/null
+++ b/abs/not_built/core/cpio/cpio-gcc43.patch
@@ -0,0 +1,139 @@
+http://bugs.gentoo.org/198817
+
+from upstream gnulib for "extern inline" changes
+
+diff --git a/lib/argp-fmtstream.h b/lib/argp-fmtstream.h
+index 93fa651..50f1387 100644
+--- a/lib/argp-fmtstream.h
++++ b/lib/argp-fmtstream.h
+@@ -1,5 +1,5 @@
+ /* Word-wrapping and line-truncating streams.
+- Copyright (C) 1997, 2006 Free Software Foundation, Inc.
++ Copyright (C) 1997, 2006-2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Written by Miles Bader <miles@gnu.ai.mit.edu>.
+
+@@ -134,6 +134,7 @@ extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs,
+ const char *__fmt, ...)
+ __attribute__ ((__format__ (printf, 2, 3)));
+
++#if _LIBC || !defined __OPTIMIZE__
+ extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+ extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+
+@@ -144,6 +145,7 @@ extern size_t __argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
+ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
++#endif
+
+ /* Access macros for various bits of state. */
+ #define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin)
+@@ -153,6 +155,7 @@ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
+ #define __argp_fmtstream_rmargin argp_fmtstream_rmargin
+ #define __argp_fmtstream_wmargin argp_fmtstream_wmargin
+
++#if _LIBC || !defined __OPTIMIZE__
+ /* Set __FS's left margin to LMARGIN and return the old value. */
+ extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
+ size_t __lmargin);
+@@ -174,6 +177,7 @@ extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs,
+ /* Return the column number of the current output point in __FS. */
+ extern size_t argp_fmtstream_point (argp_fmtstream_t __fs);
+ extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs);
++#endif
+
+ /* Internal routines. */
+ extern void _argp_fmtstream_update (argp_fmtstream_t __fs);
+@@ -197,7 +201,28 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+ #endif
+
+ #ifndef ARGP_FS_EI
+-#define ARGP_FS_EI extern inline
++# ifdef __GNUC__
++ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
++ inline semantics, unless -fgnu89-inline is used. It defines a macro
++ __GNUC_STDC_INLINE__ to indicate this situation or a macro
++ __GNUC_GNU_INLINE__ to indicate the opposite situation.
++ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
++ semantics but warns, unless -fgnu89-inline is used:
++ warning: C99 inline functions are not supported; using GNU89
++ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
++ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
++# if defined __GNUC_STDC_INLINE__
++# define ARGP_FS_EI inline
++# elif defined __GNUC_GNU_INLINE__
++# define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
++# else
++# define ARGP_FS_EI extern inline
++# endif
++# else
++ /* With other compilers, assume the ISO C99 meaning of 'inline', if
++ the compiler supports 'inline' at all. */
++# define ARGP_FS_EI inline
++# endif
+ #endif
+
+ ARGP_FS_EI size_t
+diff --git a/lib/argp.h b/lib/argp.h
+index fb11de6..aa76eb4 100644
+--- a/lib/argp.h
++++ b/lib/argp.h
+@@ -520,9 +520,11 @@ extern void __argp_state_help (const struct argp_state *__restrict __state,
+ FILE *__restrict __stream,
+ unsigned int __flags);
+
++#if _LIBC || !defined __USE_EXTERN_INLINES
+ /* Possibly output the standard usage message for ARGP to stderr and exit. */
+ extern void argp_usage (const struct argp_state *__state);
+ extern void __argp_usage (const struct argp_state *__state);
++#endif
+
+ /* If appropriate, print the printf string FMT and following args, preceded
+ by the program name and `:', to stderr, and followed by a `Try ... --help'
+@@ -551,6 +553,7 @@ extern void __argp_failure (const struct argp_state *__restrict __state,
+ const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 4, 5)));
+
++#if _LIBC || !defined __USE_EXTERN_INLINES
+ /* Returns true if the option OPT is a valid short option. */
+ extern int _option_is_short (const struct argp_option *__opt) __THROW;
+ extern int __option_is_short (const struct argp_option *__opt) __THROW;
+@@ -559,6 +562,7 @@ extern int __option_is_short (const struct argp_option *__opt) __THROW;
+ options array. */
+ extern int _option_is_end (const struct argp_option *__opt) __THROW;
+ extern int __option_is_end (const struct argp_option *__opt) __THROW;
++#endif
+
+ /* Return the input field for ARGP in the parser corresponding to STATE; used
+ by the help routines. */
+@@ -579,7 +583,28 @@ extern void *__argp_input (const struct argp *__restrict __argp,
+ # endif
+
+ # ifndef ARGP_EI
+-# define ARGP_EI extern __inline__
++# ifdef __GNUC__
++ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
++ inline semantics, unless -fgnu89-inline is used. It defines a macro
++ __GNUC_STDC_INLINE__ to indicate this situation or a macro
++ __GNUC_GNU_INLINE__ to indicate the opposite situation.
++ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
++ semantics but warns, unless -fgnu89-inline is used:
++ warning: C99 inline functions are not supported; using GNU89
++ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
++ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
++# if defined __GNUC_STDC_INLINE__
++# define ARGP_EI __inline__
++# elif defined __GNUC_GNU_INLINE__
++# define ARGP_EI extern __inline__ __attribute__ ((__gnu_inline__))
++# else
++# define ARGP_EI extern __inline__
++# endif
++# else
++ /* With other compilers, assume the ISO C99 meaning of 'inline', if
++ the compiler supports 'inline' at all. */
++# define ARGP_EI inline
++# endif
+ # endif
+
+ ARGP_EI void
diff --git a/abs/not_built/core/cpio/cpio.install b/abs/not_built/core/cpio/cpio.install
new file mode 100644
index 0000000..e5502ca
--- /dev/null
+++ b/abs/not_built/core/cpio/cpio.install
@@ -0,0 +1,21 @@
+infodir=/usr/share/info
+filelist=(cpio.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/abs/not_built/core/dash/PKGBUILD b/abs/not_built/core/dash/PKGBUILD
new file mode 100644
index 0000000..b4d3c80
--- /dev/null
+++ b/abs/not_built/core/dash/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 81892 2010-06-06 21:30:28Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=dash
+pkgver=0.5.6.1
+pkgrel=1
+pkgdesc="A POSIX compliant shell that aims to be as small as possible"
+arch=('i686' 'x86_64')
+url="http://gondor.apana.org.au/~herbert/dash/"
+license=('BSD')
+groups=('base')
+depends=('glibc')
+#provides=('sh')
+source=("http://gondor.apana.org.au/~herbert/dash/files/dash-$pkgver.tar.gz")
+md5sums=('1c846f4f5a33c0050b2045a6f7037e56')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man --exec-prefix=""
+ make || return 1
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install || return 1
+
+ # license
+ install -m644 -D COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ # dash is our default /bin/sh
+ #cd $pkgdir/bin
+ #ln -s dash sh
+}
diff --git a/abs/not_built/core/db4.5/PKGBUILD b/abs/not_built/core/db4.5/PKGBUILD
new file mode 100644
index 0000000..db87a0d
--- /dev/null
+++ b/abs/not_built/core/db4.5/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=db4.5
+pkgver=4.5.20
+pkgrel=2
+pkgdesc="The Berkeley DB embedded database system 4.5"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
+depends=('gcc-libs')
+options=('!libtool' '!makeflags')
+source=(http://download-uk.oracle.com/berkeley-db/db-${pkgver}.tar.gz
+ http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.1
+ http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.2)
+md5sums=('b0f1c777708cb8e9d37fb47e7ed3312d'
+ 'a571e239b9041d7990df287cbc59ad6f'
+ 'b7a7086a067ba116f5a8464362c9a9a7')
+
+build() {
+ cd ${startdir}/src/db-${pkgver}/
+ patch -Np0 -i ${startdir}/src/patch.4.5.20.1 || return 1
+ patch -Np0 -i ${startdir}/src/patch.4.5.20.2 || return 1
+
+ cd build_unix
+ ../dist/configure --prefix=/usr --enable-compat185 \
+ --enable-shared --disable-static --enable-cxx
+ make LIBSO_LIBS=-lpthread || return 1
+ make prefix=${startdir}/pkg/usr \
+ includedir=${startdir}/pkg/usr/include/db4.5 install
+
+ rm -rf ${startdir}/pkg/usr/docs
+ rm -f ${startdir}/pkg/usr/lib/libdb{,_cxx}.so
+ rm -f ${startdir}/pkg/usr/lib/libdb{,_cxx}-4.so
+
+ cd ${startdir}/pkg/usr/bin
+ for i in *; do
+ mv $i db4.5_${i/db_/}
+ done
+ mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname}
+ install -m644 ${startdir}/src/db-${pkgver}/LICENSE ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/abs/not_built/core/dhcp/ChangeLog b/abs/not_built/core/dhcp/ChangeLog
new file mode 100644
index 0000000..9cffaa9
--- /dev/null
+++ b/abs/not_built/core/dhcp/ChangeLog
@@ -0,0 +1,11 @@
+
+2010-07-16 kevin <kevin@archlinux.org>
+ * dhcp 4.2.0-1
+
+2009-07-19 kevin <kevin@archlinux.org>
+ * dhcp 4.1.0.p1-1
+ * Adopted RedHat patch to fix bug where dhcpd won't start if ipv6 module
+ is not loaded. Fixes FS#12792.
+ * Added /etc/conf.d/dhcp feature contributed by Fabiano Furtado Pessoa
+ Coelho <fusca14@gmail.com>
+
diff --git a/abs/not_built/core/dhcp/PKGBUILD b/abs/not_built/core/dhcp/PKGBUILD
new file mode 100644
index 0000000..af4e49a
--- /dev/null
+++ b/abs/not_built/core/dhcp/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 85736 2010-07-19 02:41:06Z kevin $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgbase=dhcp
+pkgname=('dhcp'
+ 'dhclient')
+# separate patch levels with a period to maintain proper versioning.
+pkgver=4.2.0
+_pkgver=4.2.0
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('custom:isc-dhcp')
+url="https://www.isc.org/software/dhcp"
+source=(http://ftp.isc.org/isc/${pkgname}/${pkgname}-${_pkgver}.tar.gz
+dhcpd dhcp.conf.d dhcp-4.1.1-missing-ipv6-not-fatal.patch dhclient-script-pathFixes.patch)
+md5sums=('83abd7c4f9c24d8dd024ca5a71380c0a'
+ 'df22cffa7d7415ece7bb025b7bf774dd'
+ '49da3192e5c885e3c7d02f447c2dea5e'
+ 'fd64aeb4f399dcc41ea43089a3811094'
+ 'ddcc5cd576ec631ade6c4da21952b50b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${_pkgver}
+ # Define _GNU_SOURCE to fix IPV6.
+ sed '/^CFLAGS="$CFLAGS/ s/INGS"/INGS -D_GNU_SOURCE"/' -i configure
+ # Make not having ipv6 non-fatal.
+ patch -Np0 -i ${srcdir}/dhcp-4.1.1-missing-ipv6-not-fatal.patch
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-srv-lease-file=/var/state/dhcp/dhcpd.leases \
+ --with-srv6-lease-file=/var/state/dhcp/dhcpd6.leases
+ make || return 1
+}
+
+package_dhcp(){
+ pkgdesc="A DHCP server, client, and relay agent"
+ depends=('openssl>=0.9.8a')
+ backup=('etc/dhcpd.conf' 'etc/conf.d/dhcp')
+ install=dhcp.install
+
+ cd ${srcdir}/${pkgname}-${_pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m755 ${srcdir}/dhcpd ${pkgdir}/etc/rc.d/dhcpd
+ install -D -m644 ${srcdir}/dhcp.conf.d ${pkgdir}/etc/conf.d/${pkgbase}
+ mkdir -p ${pkgdir}/var/state/dhcp
+ rm -f ${pkgdir}/etc/dhclient.conf
+ rm -f ${pkgdir}/usr/sbin/dhclient
+ rm -f ${pkgdir}/usr/share/man/man{5,8}/dhclient*
+
+ # install licenses
+ install -m644 -D ${srcdir}/${pkgbase}-${_pkgver}/LICENSE \
+ ${pkgdir}/usr/share/licenses/dhcp/LICENSE
+}
+
+package_dhclient(){
+
+ pkgdesc="dhclient is standalone client from the dhcp package"
+ depends=('bash')
+
+ cd ${srcdir}/${pkgname}-${_pkgver}/client/scripts
+ patch -Np1 -i ${srcdir}/dhclient-script-pathFixes.patch linux || return 1
+ cd ${srcdir}/${pkgname}-${_pkgver}/client
+ make DESTDIR=${pkgdir} install
+ install -m755 -d ${startdir}/pkg/var/lib/dhclient
+
+ #not needed after fresh install
+ rm -f ${pkgdir}/var/lib/dhclient/dhcpd.leases
+
+ #move dhclient.conf to dhclient.conf.example
+ mv ${pkgdir}/etc/dhclient.conf ${pkgdir}/etc/dhclient.conf.example
+
+ # install dhclient linux script
+ mkdir ${pkgdir}/sbin
+ install -m755 -D ${srcdir}/${pkgname}-${_pkgver}/client/scripts/linux \
+ ${pkgdir}/sbin/dhclient-script
+ # install licenses
+ install -m644 -D ${srcdir}/${pkgname}-${_pkgver}/LICENSE \
+ ${pkgdir}/usr/share/licenses/dhclient/LICENSE
+}
diff --git a/abs/not_built/core/dhcp/dhclient-script-pathFixes.patch b/abs/not_built/core/dhcp/dhclient-script-pathFixes.patch
new file mode 100644
index 0000000..e19c328
--- /dev/null
+++ b/abs/not_built/core/dhcp/dhclient-script-pathFixes.patch
@@ -0,0 +1,118 @@
+--- linux 2009-04-21 16:21:09.000000000 +0200
++++ linux_new 2010-06-30 19:06:20.000000000 +0200
+@@ -23,7 +23,7 @@
+ # of the $1 in its args.
+
+ # 'ip' just looks too weird. /sbin/ip looks less weird.
+-ip=/sbin/ip
++ip=/usr/sbin/ip
+
+ make_resolv_conf() {
+ if [ x"$new_domain_name_servers" != x ]; then
+@@ -112,9 +112,9 @@
+ if [ x$reason = xPREINIT ]; then
+ if [ x$alias_ip_address != x ]; then
+ # Bring down alias interface. Its routes will disappear too.
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+- ifconfig $interface 0 up
++ /sbin/ifconfig $interface 0 up
+
+ # We need to give the kernel some time to get the interface up.
+ sleep 1
+@@ -141,32 +141,32 @@
+ if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
+ [ x$alias_ip_address != x$old_ip_address ]; then
+ # Possible new alias. Remove old alias.
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+ if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then
+ # IP address changed. Bringing down the interface will delete all routes,
+ # and clear the ARP cache.
+- ifconfig $interface inet 0 down
++ /sbin/ifconfig $interface inet 0 down
+
+ fi
+ if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
+ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
+
+- ifconfig $interface inet $new_ip_address $new_subnet_arg \
++ /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \
+ $new_broadcast_arg $mtu_arg
+ # Add a network route to the computed network address.
+ for router in $new_routers; do
+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
+- route add -host $router dev $interface
++ /sbin/route add -host $router dev $interface
+ fi
+- route add default gw $router $metric_arg dev $interface
++ /sbin/route add default gw $router $metric_arg dev $interface
+ done
+ fi
+ if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
+ then
+- ifconfig $interface:0- inet 0
+- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+- route add -host $alias_ip_address $interface:0
++ /sbin/ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
++ /sbin/route add -host $alias_ip_address $interface:0
+ fi
+ make_resolv_conf
+ exit_with_hooks 0
+@@ -176,42 +176,42 @@
+ || [ x$reason = xSTOP ]; then
+ if [ x$alias_ip_address != x ]; then
+ # Turn off alias interface.
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+ if [ x$old_ip_address != x ]; then
+ # Shut down interface, which will delete routes and clear arp cache.
+- ifconfig $interface inet 0 down
++ /sbin/ifconfig $interface inet 0 down
+ fi
+ if [ x$alias_ip_address != x ]; then
+- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+- route add -host $alias_ip_address $interface:0
++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
++ /sbin/route add -host $alias_ip_address $interface:0
+ fi
+ exit_with_hooks 0
+ fi
+
+ if [ x$reason = xTIMEOUT ]; then
+ if [ x$alias_ip_address != x ]; then
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+- ifconfig $interface inet $new_ip_address $new_subnet_arg \
++ /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \
+ $new_broadcast_arg $mtu_arg
+ set $new_routers
+ if ping -q -c 1 $1; then
+ if [ x$new_ip_address != x$alias_ip_address ] && \
+ [ x$alias_ip_address != x ]; then
+- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+- route add -host $alias_ip_address dev $interface:0
++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
++ /sbin/route add -host $alias_ip_address dev $interface:0
+ fi
+ for router in $new_routers; do
+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
+- route add -host $router dev $interface
++ /sbin/route add -host $router dev $interface
+ fi
+- route add default gw $router $metric_arg dev $interface
++ /sbin/route add default gw $router $metric_arg dev $interface
+ done
+ make_resolv_conf
+ exit_with_hooks 0
+ fi
+- ifconfig $interface inet 0 down
++ /sbin/ifconfig $interface inet 0 down
+ exit_with_hooks 1
+ fi
+
diff --git a/abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch b/abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch
new file mode 100644
index 0000000..cc5ddb8
--- /dev/null
+++ b/abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch
@@ -0,0 +1,39 @@
+--- common/discover.c 2009-09-29 21:44:49.000000000 +0200
++++ common/discover.c_new 2010-06-30 19:40:02.000000000 +0200
+@@ -443,7 +443,7 @@
+ }
+
+ #ifdef DHCPv6
+- if (local_family == AF_INET6) {
++ if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) {
+ ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
+ if (ifaces->fp6 == NULL) {
+ log_error("Error opening '/proc/net/if_inet6' to "
+@@ -454,6 +454,8 @@
+ ifaces->fp = NULL;
+ return 0;
+ }
++ } else {
++ ifaces->fp6 = NULL;
+ }
+ #endif
+
+@@ -721,7 +723,7 @@
+ return 1;
+ }
+ #ifdef DHCPv6
+- if (!(*err)) {
++ if (!(*err) && ifaces->fp6) {
+ if (local_family == AF_INET6)
+ return next_iface6(info, err, ifaces);
+ }
+@@ -740,7 +742,8 @@
+ ifaces->sock = -1;
+ #ifdef DHCPv6
+ if (local_family == AF_INET6) {
+- fclose(ifaces->fp6);
++ if(ifaces->fp6)
++ fclose(ifaces->fp6);
+ ifaces->fp6 = NULL;
+ }
+ #endif
diff --git a/abs/not_built/core/dhcp/dhcp.conf.d b/abs/not_built/core/dhcp/dhcp.conf.d
new file mode 100644
index 0000000..99ba6d1
--- /dev/null
+++ b/abs/not_built/core/dhcp/dhcp.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the DHCP server daemon
+#
+
+DHCP_ARGS="-q"
+
diff --git a/abs/not_built/core/dhcp/dhcp.install b/abs/not_built/core/dhcp/dhcp.install
new file mode 100644
index 0000000..c0ad39e
--- /dev/null
+++ b/abs/not_built/core/dhcp/dhcp.install
@@ -0,0 +1,11 @@
+# arg 1: the new package version
+post_install() {
+ [ -f var/state/dhcp/dhcpd.leases ] || : >var/state/dhcp/dhcpd.leases
+ #echo "If dhcpd doesn't start, ensure the ipv6 kernel module is loaded."
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/abs/not_built/core/dhcp/dhcpd b/abs/not_built/core/dhcp/dhcpd
new file mode 100755
index 0000000..1fbb31e
--- /dev/null
+++ b/abs/not_built/core/dhcp/dhcpd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/dhcp
+
+PIDFILE="/var/run/dhcpd.pid"
+PID=`cat $PIDFILE 2>/dev/null`
+case "$1" in
+ start)
+ stat_busy "Starting DHCP Server"
+ if [ "$PID" = "" ]; then
+ /usr/sbin/dhcpd $DHCP_ARGS
+ fi
+ if [ "$PID" != "" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dhcpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DHCP Server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ rm -f $PIDFILE
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dhcpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/abs/not_built/core/directfb/PKGBUILD b/abs/not_built/core/directfb/PKGBUILD
new file mode 100644
index 0000000..c24a17d
--- /dev/null
+++ b/abs/not_built/core/directfb/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 24882 2010-08-29 14:24:38Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=directfb
+pkgver=1.4.5
+pkgrel=1
+pkgdesc="A thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system on top of the Linux Framebuffer Device"
+arch=('i686' 'x86_64')
+url="http://www.directfb.org"
+license=('LGPL')
+depends=('libjpeg' 'libxext' 'sdl' 'sysfsutils' 'libpng' 'freetype2')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://www.directfb.org/downloads/Core/DirectFB-${pkgver%.*}/DirectFB-${pkgver}.tar.gz)
+md5sums=('7cfd568a1267c4c2c97ba00c29cb4f7d')
+
+build() {
+ cd ${srcdir}/DirectFB-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-static --enable-zlib \
+ --enable-x11 --enable-sdl --disable-vnc --disable-osx \
+ --enable-video4linux2 --enable-voodoo || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/DirectFB-${pkgver}
+
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/abs/not_built/core/directfb/directfb.changelog b/abs/not_built/core/directfb/directfb.changelog
new file mode 100644
index 0000000..e7e4dc6
--- /dev/null
+++ b/abs/not_built/core/directfb/directfb.changelog
@@ -0,0 +1,35 @@
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * directfb 1.4.5-1
+ * Upstream update
+
+2010-01-20 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.3-1
+ * Upstream update
+
+2009-11-08 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.2-1
+ * Upstream update
+
+2009-07-13 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.1-1
+ * Upstream update
+
+2009-05-03 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.8-1
+ * Upstream update
+
+2009-03-06 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.7-1
+ * Upstream update
+
+2008-07-29 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.0-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/abs/not_built/core/diskless-legacy/PKGBUILD b/abs/not_built/core/diskless-legacy/PKGBUILD
new file mode 100644
index 0000000..85cfc3a
--- /dev/null
+++ b/abs/not_built/core/diskless-legacy/PKGBUILD
@@ -0,0 +1,14 @@
+# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $
+# Maintainer: Greg Frost <gregfrost1@bigpond.com>
+pkgname=diskless-legacy
+pkgver=1
+pkgrel=3
+pkgdesc="Script for configuring a diskless mythtv frontends using NFS root."
+arch=i686
+depends=(tftp-hpa dhcp)
+source=(config_diskless_frontend.bash)
+
+build() {
+ install -D -m755 ${srcdir}/config_diskless_frontend.bash \
+ ${pkgdir}/usr/local/bin/config_diskless_frontend.bash
+}
diff --git a/abs/not_built/core/diskless-legacy/config_diskless_frontend.bash b/abs/not_built/core/diskless-legacy/config_diskless_frontend.bash
new file mode 100755
index 0000000..24d5fc1
--- /dev/null
+++ b/abs/not_built/core/diskless-legacy/config_diskless_frontend.bash
@@ -0,0 +1,704 @@
+#!/bin/bash
+# This script configures your backend so that a diskless
+# frontend can boot from it.
+
+function backtitle() { # no arguments.
+ BT="${0##*/}"
+ KMV='/etc/LinHES-release'
+ if [ -f "$KMV" ]; then
+ BT="-= $(cat $KMV) $BT =-"
+ fi
+}
+
+function must_be_root() { # no arguments.
+ test $(id -u) == 0 && return
+ MSG="\Z1ERROR\Zn: This script \Z4should\Zn be run by \Z1root\Zn."
+ dialog --backtitle "$BT" --colors --msgbox "$MSG" 5 45
+ exit 4
+}
+
+backtitle
+must_be_root
+
+TITLE="Diskless FE Configuration"
+DOPTS=(--backtitle "$BT" --title "$TITLE" --trim --aspect 30 )
+
+DAEMON_LOG=/var/log/daemon.log
+BOOT_DEFAULT=/tftpboot/pxelinux.cfg/default
+
+unable_to_determine_mac_for_default_fe ()
+{
+ if dialog "${DOPTS[@]}" --yes-label "Boot FE and try again" \
+ --no-label "Delete $fe_nfsroot" \
+ --yesno "Unable to automatically determine the MAC address of
+ the current default frontend by interrogating $DAEMON_LOG.
+ This may be because you have not yet booted the diskless FE. You can
+ either boot the diskless FE and try running $0 again, or delete
+ $fe_nfsroot and re-create it later." 0 0 ; then
+ exit
+ else
+ rm -Rf $fe_nfsroot $BOOT_DEFAULT
+ fi
+ exit
+}
+
+find_existing_diskless_fes() {
+
+ unset frontend_names
+ unset frontend_nfsroots
+ unset frontend_ips
+ unset frontend_macs
+
+ for frontend_config in $(ls /tftpboot/pxelinux.cfg 2> /dev/null) ; do
+
+ frontend_name=$(basename $(
+ grep append /tftpboot/pxelinux.cfg/$frontend_config |
+ sed -e 's/.*nfsroot=//' | awk -F, '{print $1}' | awk -F/ '{print $NF}'))
+ frontend_nfsroot=$(
+ grep append /tftpboot/pxelinux.cfg/$frontend_config |
+ cut -d ':' -f 2 | cut -d ',' -f 1)
+ frontend_ip=\
+$((0x${frontend_config:0:2})).$((0x${frontend_config:2:2})).\
+$((0x${frontend_config:4:2})).$((0x${frontend_config:6:2}))
+ frontend_mac=$(
+ cat /etc/dhcpd.conf |
+ grep "host $frontend_name" |
+ sed 's/hardware ethernet /#/g' |
+ cut -d '#' -f 2 |
+ cut -d ';' -f 1)
+
+ if [ -n "$frontend_name" -a -n "$frontend_nfsroot" -a \
+ -n "$frontend_ip" -a -n "$frontend_mac" ] ; then
+ frontend_names=( "${frontend_names[@]}" $frontend_name )
+ frontend_nfsroots=( "${frontend_nfsroots[@]}" $frontend_nfsroot )
+ frontend_ips=( "${frontend_ips[@]}" $frontend_ip )
+ frontend_macs=( "${frontend_macs[@]}" $frontend_mac )
+ fi
+ done
+
+echo frontend_names="${frontend_names[@]}"
+echo frontend_nfsroots="${frontend_nfsroots[@]}"
+echo frontend_ips="${frontend_ips[@]}"
+echo frontend_macs="${frontend_macs[@]}"
+
+}
+
+check_for_default_fe () {
+ # This function looks to see if there is a diskless FE that has only been
+ # partially configured (i.e. it's MAC address has not been determined and
+ # as a result it has not been allocated a fixed IP.
+
+ if [ -e $BOOT_DEFAULT ] ; then
+ # There is a $BOOT_DEFAULT config file that has not yet been set to a
+ # fixed IP address. See if we can interrogate the log files to
+ # determine what the MAC adderss of the FE is so that we can turn it
+ # into a fixed ip node. This is the first step in allowing multiple
+ # diskless frontends.
+
+ # First determine from the default file, the nfsroot that it is for.
+
+ fe_nfsroot=$(grep append $BOOT_DEFAULT | cut -d ':' -f 2 | cut -d ',' -f 1)
+
+ if [ -z "$fe_nfsroot" ] ; then
+ echo "Unable to determine the location of the nfsroot from" \
+ $BOOT_DEFAULT
+ exit
+ fi
+
+ echo fe_nfsroot=$fe_nfsroot
+
+ # Now determine the IP address by looking for an instance in the
+ # daemon log file for which the specified nfsroot was mounted.
+
+ fe_ipaddress=$(
+ grep "authenticated mount request from " $DAEMON_LOG |
+ grep $fe_nfsroot |
+ tail -1 |
+ sed 's/authenticated mount request from /#/g' |
+ cut -d '#' -f 2 |
+ cut -d ':' -f 1)
+
+ echo fe_ipaddress=$fe_ipaddress
+
+ unset fe_macaddress
+
+ if [ ! -z "$fe_ipaddress" ] ; then
+ fe_macaddress=$(
+ grep "DHCPACK on $fe_ipaddress" $DAEMON_LOG |
+ tail -1 |
+ sed 's/DHCPACK on '$fe_ipaddress' to /#/g' |
+ cut -d '#' -f 2 |
+ cut -d ' ' -f 1)
+ fi
+
+ echo fe_macaddress=$fe_macaddress
+
+ if [ -z "$fe_macaddress" ] ; then
+ unable_to_determine_mac_for_default_fe
+ else
+ if ! dialog "${DOPTS[@]}" --yesno "By interrogating $DAEMON_LOG,
+ it appears that the $(basename $fe_nfsroot) frontend was
+ last used by a host with MAC Address of $fe_macaddress which
+ was allocated IP address $fe_ipaddress.
+ Do you wish to allocate the IP to that host (so that you
+ can configure another diskless FE)?" 0 0 ; then
+ dialog "${DOPTS[@]}" --msgbox "Boot the correct diskless FE and
+ run $0 again." 0 0
+ exit
+ fi
+
+ # Setup dhcpd.conf so that the FE's MAC address always uses a fixed
+ # ip address and the PXE configuration is fixed for that address.
+
+ hex_ip_address=$(printf "%02X%02X%02X%02X" $(echo $fe_ipaddress |
+ tr '.' ' '))
+ echo hex_ip_address=$hex_ip_address
+ mv -fv $BOOT_DEFAULT $(dirname $BOOT_DEFAULT)/$hex_ip_address
+
+ cp -f /etc/dhcpd.conf /etc/dhcpd.conf.bak
+ cat /etc/dhcpd.conf.bak |
+ grep -v "host $(basename $fe_nfsroot)" > \
+ /etc/dhcpd.conf
+ echo "\
+host $(basename $fe_nfsroot) \
+{hardware ethernet $fe_macaddress; fixed-address $fe_ipaddress;}" \
+ >> /etc/dhcpd.conf
+
+ /sbin/sv restart dhcpd
+
+ dialog "${DOPTS[@]}" --msgbox "The frontend $(basename $fe_nfsroot)
+ with a MAC address of $fe_macaddress and an nfsroot directory of
+ $fe_nfsroot has been configured with a fixed IP address of
+ $fe_ipaddress." 0 0
+ exit
+ fi
+ fi
+
+}
+
+get_network_interface() {
+ NETDEVICES="$(cat /proc/net/dev |
+ awk -F: '/ath.:|wlan.:|eth.:|tr.:/{print $1}')"
+ echo NETDEVICES=$NETDEVICES
+ NUM_DEVICES=$(echo $NETDEVICES | wc -w)
+ echo NUM_DEVICES=$NUM_DEVICES
+ if [ $NUM_DEVICES = 1 ] ; then
+ INTERFACE=$NETDEVICES
+ else
+ DEVICELIST=""
+ DEVNUM=0
+ for DEVICE in $NETDEVICES
+ do
+ DEVNUM=$(($DEVNUM + 1))
+ DEVICELIST="$DEVICELIST $DEVICE Interface${DEVNUM} "
+ done
+ echo DEVICELIST=$DEVICELIST
+ TMP=/tmp/interface
+ rm -Rf $TMP
+ dialog "${DOPTS[@]}" --menu "Which network interface?" 18 70 12 \
+ $DEVICELIST 2>$TMP || exit
+ INTERFACE=$(cat $TMP)
+ fi
+ echo INTERFACE=$INTERFACE
+}
+
+validip(){
+ echo "$1" | egrep -q -e '[0-9]+\.[0-9]+\.[0-9]+.[0-9]+'
+ return $?
+}
+
+get_network_info() {
+ BACKEND_IP=$(echo $(ifconfig $INTERFACE | grep "inet addr" | tr ':' ' ') |
+ cut -d ' ' -f 3)
+ echo BACKEND_IP=$BACKEND_IP
+ NAMESERVERS="$(awk '/^nameserver/{printf "%s ",$2}' /etc/resolv.conf)"
+ echo NAMESERVERS=$NAMESERVERS
+ GATEWAY="$(LANG=C LC_ALL=C route -n | awk '/^0\.0\.0\.0/{print $2; exit}')"
+ echo GATEWAY=$GATEWAY
+ NETWORK="${BACKEND_IP%.*}"
+ echo NETWORK=$NETWORK
+ HOST="${BACKEND_IP##*.}"
+ echo HOST=$HOST
+ NETMASK="$(LANG=C LC_ALL=C ifconfig $INTERFACE |
+ awk '/[Mm]ask/{FS="[: ]*";$0=$0; print $8; exit}')"
+ echo NETMASK=$NETMASK
+
+ # See if we can determine the range of IP addresses currently allowed in
+ # dhcpd.conf
+
+ IPRANGE=( $(grep ^[[:space:]]*range /etc/dhcpd.conf |
+ sed 's/range//g' | tr -d ';') )
+
+ echo ${IPRANGE[@]}
+ if [ $(echo ${IPRANGE[@]} | wc -w) -eq 2 ] ; then
+ START=$(echo ${IPRANGE[0]} | tr '.' '\t' | cut -f 4)
+ END=$(echo ${IPRANGE[1]} | tr '.' '\t' | cut -f 4)
+ echo START=$START
+ echo END=$END
+ fi
+
+ # Could not
+
+ if [ -z "$START" -o -z "$END" ] ; then
+ if [ "$HOST" -lt "20" ] ; then
+ START=21
+ END=26
+ else
+ START=11
+ END=16
+ fi
+ fi
+
+ IPRANGE_FROM=""
+ IPRANGE_TO=""
+
+ while [ -z "$IPRANGE_FROM" -o -z "$IPRANGE_TO" -o -z "$IPRANGE" ]
+ do
+ IPRANGE="$NETWORK.$START $NETWORK.$END"
+ rm -f /tmp/iprange
+
+ if ! dialog "${DOPTS[@]}" --clear --inputbox "Please enter the desired
+ IP-Range of addresses that should be allocated by clients,
+ separated by a single space." 10 75 "$IPRANGE" \
+ 2> /tmp/iprange ; then
+ exit
+ fi
+
+ IPRANGE=$(cat /tmp/iprange)
+ echo IPRANGE=$IPRANGE
+ IPRANGE_FROM="${IPRANGE%% *}"
+ IPRANGE_TO="${IPRANGE##* }"
+
+ for i in "$IPRANGE_FROM" "$IPRANGE_TO"
+ do
+ validip "$i" || IPRANGE=""
+ done
+ done
+}
+
+setup_dhcpd() {
+ # Generate dhcpd.conf from template
+
+ if [ ! -f /etc/dhcpd.conf.orig ] ; then
+ mv -f /etc/dhcpd.conf /etc/dhcpd.conf.orig
+ fi
+
+ ALLNAMESERVERS=""
+ for i in $NAMESERVERS; do
+ ALLNAMESERVERS="${ALLNAMESERVERS:+$ALLNAMESERVERS,} $i"
+ done
+ echo ALLNAMESERVERS=$ALLNAMESERVERS
+
+ cat >/etc/dhcpd.conf <<EOT
+# dhcpd.conf for LinHES Diskless Frontend
+
+# global settings
+## POF allow booting;
+allow bootp;
+default-lease-time 600;
+max-lease-time 7200;
+
+subnet ${NETWORK}.0 netmask ${NETMASK} {
+ next-server $BACKEND_IP;
+ filename "pxelinux.0";
+ option subnet-mask ${NETMASK};
+ range ${IPRANGE_FROM} ${IPRANGE_TO};
+ ${ALLNAMESERVERS:+option domain-name-servers $ALLNAMESERVERS;}
+ ${GATEWAY:+option routers $GATEWAY;}
+}
+EOT
+
+ for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do
+ echo "host ${frontend_names[$fe]} \
+{hardware ethernet ${frontend_macs[$fe]}; \
+fixed-address ${frontend_ips[$fe]};}" >> \
+ /etc/dhcpd.conf
+ done
+
+ /sbin/add_service.sh dhcpd
+}
+
+setup_tftpd() {
+ /sbin/add_service.sh tftpd
+}
+
+check_delete_of_existing_nfsroot() {
+ if [ -d $NFSROOT ] ; then
+ if dialog "${DOPTS[@]}" --yesno "\
+There is already a directory $NFSROOT. Do you want to delete it and \
+rebuild it from scratch?" 10 70 ; then
+ echo Deleting $NFSROOT
+ rm -Rf $NFSROOT
+ else
+ echo "OK then, bye."
+ exit
+ fi
+ fi
+}
+
+enable_mysql_and_backend_networking() {
+ # Enable mysql networking on the backend.
+
+ /sbin/sv stop mythbackend
+
+ if grep -q ^skip-networking /etc/my.cnf ; then
+ echo "Commenting out skip-networking."
+ cp /etc/my.cnf /etc/my.cnf~
+ cat /etc/my.cnf~ | sed 's/^skip-networking/#skip-networking/g' > \
+ /etc/my.cnf
+ /sbin/sv restart mysql
+ else
+ echo "Already commented out skip-networking."
+ fi
+
+ # Make sure that the backend ip settings in the mythtv mysql database have
+ # the actual IP address of the backend rather than the loopback address.
+ # Otherwise the frontend will not be able to connect to the backend.
+
+ echo "Setting backend IP in mythtv's mysql settings"
+ echo "
+UPDATE settings SET data='$BACKEND_IP' WHERE value='BackendServerIP';
+UPDATE settings SET data='$BACKEND_IP' WHERE value='MasterServerIP';" |
+ mysql mythconverg
+
+ /sbin/sv start mythbackend
+}
+
+export_mounts() {
+ # Ensure that the /myth directory is exported.
+
+ if ! grep -q ^/myth[[:space:]] /etc/exports ; then
+ echo "Adding line for /myth in /etc/exports"
+ echo "/myth *(rw,async,no_subtree_check)" >> /etc/exports
+ else
+ echo "Already added line for /myth in /etc/exports"
+ fi
+
+ if ! grep -q ^/data/var/cache/pacman[[:space:]] /etc/exports ; then
+ echo "Adding line for /data/var/cache/pacman in /etc/exports"
+ echo "/data/var/cache/pacman *(rw,async,no_subtree_check)" >> /etc/exports
+ else
+ echo "Already added line for /data/var/cache/pacman in /etc/exports"
+ fi
+
+ # Ensure that the montpoints that are used as storage groups are exported.
+
+ for storage_mount in ${storage_mounts[@]} ; do
+
+ if ! grep -q ^${storage_mount}[[:space:]] /etc/exports ; then
+ echo "Adding line for ${storage_mount} in /etc/exports"
+ echo "${storage_mount} *(rw,async,no_subtree_check)" >> /etc/exports
+ else
+ echo "Already added line for ${storage_mount} in /etc/exports"
+ fi
+ done
+}
+
+find_storage_mounts() {
+ unset storage_mounts
+ for group in $(mysql -sB mythconverg -e \
+ "select dirname from storagegroup where hostname = '$(hostname)'") ; do
+
+ group_mount=$group
+ while ! mountpoint -q $group_mount ; do
+ group_mount=$(dirname $group_mount)
+ done
+
+ echo Storage group $group mountpoint is $group_mount
+ storage_mounts=( "${storage_mounts[@]}" $group_mount )
+ done
+}
+
+enable_nfs() {
+ /sbin/add_service.sh nfsd
+}
+
+restart_nfs (){
+ /usr/sbin/exportfs -arv
+}
+
+export_nfsroot() {
+ # Ensure that the NFSROOT directory is appropriately exported.
+
+ if ! grep -q ^$NFSROOT[[:space:]] /etc/exports ; then
+ echo "Adding line for $NFSROOT in /etc/exports"
+ echo "$NFSROOT *(rw,no_root_squash,async,no_subtree_check)" >> /etc/exports
+ else
+ echo "Already added line for $NFSROOT in /etc/exports"
+ fi
+}
+
+create_tftpboot_directory() {
+ # Create the directory with the tftp stuff.
+
+ echo "Creating /tftpboot directories"
+ mkdir -p /tftpboot/pxelinux.cfg
+
+ if [ ! -e /tftpboot/pxelinux.0 ] ; then
+ cp -fv /usr/lib/syslinux/pxelinux.0 /tftpboot/pxelinux.0
+ fi
+
+ if [ ! -e /tftpboot/vmlinuz26 ] ; then
+ cp -fv /boot/vmlinuz26 /tftpboot/vmlinuz26
+ fi
+
+ if [ ! -e /tftpboot/kernel26.img ] ; then
+
+ echo "Building kernel miniroot"
+# if [ -z "$(awk -F\" '$1 ~ /^MODULES=/ && $2 ~ /nfs/' /etc/mkinitcpio.conf)" ] ; then
+# cp /etc/mkinitcpio.conf /etc/mkinitcpio.conf~
+# sed -e '/^MODULES=/s/\"$/ nfs\"/' < /etc/mkinitcpio.conf~ > /etc/mkinitcpio.conf
+# fi
+ if [ -z "$(awk -F\" '$1 ~ /^HOOKS=/ && $2 ~ /net/' /etc/mkinitcpio.conf)" ] ; then
+ cp /etc/mkinitcpio.conf /etc/mkinitcpio.conf~
+ sed -e '/^HOOKS=/s/\"$/ net\"/' < /etc/mkinitcpio.conf~ > /etc/mkinitcpio.conf
+ fi
+ /sbin/mkinitcpio -g /tftpboot/kernel26.img
+ fi
+}
+
+create_default_pxelinux_entry() {
+ echo "\
+ default linux
+
+ label linux
+ kernel vmlinuz26
+ append initrd=kernel26.img rootfstype=nfs root=/dev/nfs nfsroot=$BACKEND_IP:$NFSROOT,v3,rsize=16384,wsize=16384 init=/sbin/runit ip=dhcp" \
+ > /tftpboot/pxelinux.cfg/default
+}
+
+create_new_nfsroot() {
+ # Prompt the user for the name of the NFSROOT.
+
+ FRONTEND=
+ NFSROOT=
+
+ while [ -z "$FRONTEND" ] ; do
+ if ! dialog "${DOPTS[@]}" --inputbox "Enter the hostname of the new
+ diskless FE:" 0 0 2> /tmp/frontend_hostname ; then
+ exit
+ fi
+
+ FRONTEND=$(cat /tmp/frontend_hostname)
+ done
+
+ # Prompt the user for the location of the NFSROOT.
+
+ while [ -z "$NFSROOT" ] ; do
+ NFSROOT=/nfsroot/$FRONTEND
+
+ if ! dialog "${DOPTS[@]}" --clear --inputbox "Enter the location of the
+ NFSROOT for the diskless FE:" \
+ 0 0 "$NFSROOT" 2> /tmp/nfsroot_location ; then
+ exit
+ fi
+
+ NFSROOT=$(cat /tmp/nfsroot_location)
+ done
+
+ check_delete_of_existing_nfsroot
+
+ # Create the nfsroot directory that the FE will use as its root filesystem.
+
+ echo "Creating the $NFSROOT directory."
+ mkdir -p $NFSROOT
+ for DIR in /* ; do
+ if [[ "$DIR" != /mnt && \
+ "$DIR" != /data && \
+ "$DIR" != /media && \
+ "$DIR" != /tmp && \
+ "$DIR" != /etc.old && \
+ "$DIR" != /storage && \
+ "$DIR" != /var && \
+ "$DIR" != /nfsroot && \
+ "$DIR" != /tftpboot && \
+ "$DIR" != /cdrom ]]
+ then
+ if mountpoint -q $DIR && [ "$DIR" != "/dev" ] ; then
+ echo " Making mountpoint dir $DIR"
+ cd $NFSROOT
+ tar c $DIR --exclude=$DIR/* 2> /dev/null | tar x 2> /dev/null
+ else
+ echo " Copying $DIR to $NFSROOT"
+ cp -ax $DIR $NFSROOT
+ fi
+ fi
+ done
+
+ cd $NFSROOT
+
+ # Exclude specific bits of /var
+
+ tar c /var \
+ --exclude=/var/lib/dhcpcd \
+ --exclude=/var/lib/locate \
+ --exclude=/var/lib/mlocate \
+ --exclude=/var/lib/named \
+ 2> /dev/null | tar x 2> /dev/null
+
+ for DIR in /mnt /data /tmp /media /cdrom /var/lib/mlocate ; do
+ echo " Creating $DIR"
+ tar c $DIR --exclude=$DIR/* 2> /dev/null | tar x 2> /dev/null
+ done
+
+ mkdir -p $NFSROOT/data/var/cache/pacman
+
+ chroot $NFSROOT /sbin/remove_service.sh dhcpd
+ chroot $NFSROOT /sbin/remove_service.sh lighttpd
+ chroot $NFSROOT /sbin/remove_service.sh mysql
+ chroot $NFSROOT /sbin/remove_service.sh mythbackend
+ chroot $NFSROOT /sbin/remove_service.sh nfsd
+ chroot $NFSROOT /sbin/remove_service.sh nmbd
+ chroot $NFSROOT /sbin/remove_service.sh smbd
+ chroot $NFSROOT /sbin/remove_service.sh tftpd
+ chroot $NFSROOT /sbin/remove_service.sh avahi
+
+ # Update the fstab.
+
+ cp $NSFROOT/etc/fstab $NFSROOT/etc/fstab~
+ cat $NFSROOT/etc/fstab~ | grep -v ext[34] | grep -v xfs |
+ grep -v ^UUID= > $NFSROOT/etc/fstab
+
+ echo "\
+$BACKEND_IP:/nfsroot / nfs defaults,nolock,auto,noatime 0 2
+$BACKEND_IP:/myth /myth nfs defaults,nolock,auto,noatime 0 0
+$BACKEND_IP:/data/var/cache/pacman /data/var/cache/pacman nfs defaults,nolock,auto,noatime 0 0
+" >> $NFSROOT/etc/fstab
+
+ for storage_mount in ${storage_mounts[@]} ; do
+ echo "\
+$BACKEND_IP:${storage_mount} ${storage_mount} nfs auto,noatime,nolock,rsize=32768,wsize=32768 0 0" \
+ >> $NFSROOT/etc/fstab
+ done
+
+ cp $NFSROOT/etc/rc.sysinit $NFSROOT/etc/rc.sysinit~
+ sed -e '/^\/sbin\/minilogd/s/$/\n\n# Mount NFS early\n\/bin\/mount -a -t nfs/' \
+ < $NFSROOT/etc/rc.sysinit~ > $NFSROOT/etc/rc.sysinit
+
+ # Update networking
+
+ echo $FRONTEND > $NFSROOT/etc/hostname
+
+ cp $NFSROOT/etc/hosts $NFSROOT/etc/hosts~
+ echo "127.0.0.1 $FRONTEND localhost" > $NFSROOT/etc/hosts
+ cat $NFSROOT/etc/hosts~ | grep -v 127.0.0.1 >> $NFSROOT/etc/hosts
+
+ cp $NFSROOT/etc/net/ifaces/eth0/options $NFSROOT/etc/net/ifaces/eth0/options~
+ sed -e 's/^BOOTPROTO=.*/BOOTPROTO=none/' < $NFSROOT/etc/net/ifaces/eth0/options~ \
+ > $NFSROOT/etc/net/ifaces/eth0/options
+
+ # Update mysql settings
+
+ cp /usr/share/mythtv/mysql.txt $NFSROOT/home/mythtv/.mythtv/mysql.txt
+
+ if grep -q DBHostName=localhost $NFSROOT/home/mythtv/.mythtv/mysql.txt ; then
+ echo "Setting database host in frontend's mysql.txt."
+ cp $NFSROOT/home/mythtv/.mythtv/mysql.txt \
+ $NFSROOT/home/mythtv/.mythtv/mysql.txt.orig
+ cat $NFSROOT/home/mythtv/.mythtv/mysql.txt.orig |
+ sed 's/DBHostName=localhost/DBHostName='$BACKEND_IP'/g' > \
+ $NFSROOT/home/mythtv/.mythtv/mysql.txt
+ else
+ echo "Already set Database host in frontend's mysql.txt."
+ fi
+
+ chown mythtv:mythtv $NFSROOT/home/mythtv/.mythtv/mysql.txt
+
+ # Check if the user has a diskless_tweak.<frontend_name> file in root's
+ # home directory. If they do, run it inside the chroot of the NFS root.
+
+ if [[ -x ~/diskless_tweak.$FRONTEND ]] ; then
+ echo Running tweak file ~/diskless_tweak.$FRONTEND
+ chroot $NFSROOT bash -v ~/diskless_tweak.$FRONTEND
+ fi
+
+ create_default_pxelinux_entry
+ export_nfsroot
+ restart_nfs
+
+ dialog "${DOPTS[@]}" --msgbox "Boot your diskless FE
+ and then re-run this script ($0) so that the MAC address
+ of the Diskless FE can be obtained." 0 0
+}
+
+##########################################
+##########################################
+##
+## MAIN BODY OF SCRIPT ##
+##
+##########################################
+##########################################
+
+check_for_default_fe
+find_existing_diskless_fes
+
+get_network_interface
+get_network_info
+setup_tftpd
+setup_dhcpd
+enable_mysql_and_backend_networking
+find_storage_mounts
+export_mounts
+create_tftpboot_directory
+enable_nfs
+
+# Restart nfs to ensure that the exported /myth directory can be mounted. This
+# is required to create a new frontend.
+
+restart_nfs
+
+if [ ${#frontend_names[@]} -eq 0 ] ; then
+ create_new_nfsroot
+else
+ for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do
+ frontend_options=( "${frontend_options[@]}" \
+ "${frontend_names[$fe]} (MAC:${frontend_macs[$fe]} \
+IP:${frontend_ips[$fe]})" "" )
+ done
+
+echo 0=${frontend_names[0]}
+echo 1=${frontend_names[1]}
+echo 2=${frontend_names[2]}
+echo 3=${frontend_names[3]}
+
+ if ! dialog "${DOPTS[@]}" --menu "Select a frontend to delete or to create
+ a new one." 0 0 0 "${frontend_options[@]}" \
+ "New Frontend" "" 2> /tmp/selected_fe; then
+ exit
+ fi
+
+ selected_option=$(cat /tmp/selected_fe)
+
+ if [ "$selected_option" = "New Frontend" ] ; then
+ create_new_nfsroot
+ exit
+ fi
+
+echo $selected_option
+echo ${frontend_options[0]}
+echo ${frontend_options[2]}
+echo ${frontend_nfsroots[@]}
+
+ for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do
+ if [ "$selected_option" = "${frontend_options[$(($fe*2))]}" ] ; then
+ if dialog "${DOPTS[@]}" --yesno "Do you wish to delete the frontend
+ with nfsroot ${frontend_nfsroots[$fe]}?" 0 0 ; then
+ # Delete the nfsroot directory.
+ rm -Rfv ${frontend_nfsroots[$fe]}
+
+ # Delete the tftpboot pxe boot config file.
+
+ hex_ip_address=$(printf "%02X%02X%02X%02X" \
+ $(echo ${frontend_ips[$fe]} | tr '.' ' '))
+ rm /tftpboot/pxelinux.cfg/$hex_ip_address
+
+ # Remove reference to the frontend from the dhcp.conf
+ cp -fv /etc/dhcpd.conf /etc/dhcpd.conf.bak
+ grep -v "host ${frontend_names[$fe]}" /etc/dhcpd.conf.bak > \
+ /etc/dhcpd.conf
+ /sbin/sv restart dhcpd
+ fi
+ fi
+ done
+fi
+
diff --git a/abs/not_built/core/dvd+rw-tools/PKGBUILD b/abs/not_built/core/dvd+rw-tools/PKGBUILD
new file mode 100644
index 0000000..7f7597b
--- /dev/null
+++ b/abs/not_built/core/dvd+rw-tools/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=dvd+rw-tools
+pkgver=7.1
+origver=7.1 # sometimes it is not the same as pkgver and has '-' in it
+pkgrel=1
+[ "$CARCH" = "x86_64" ] && force=y
+pkgdesc="dvd burning tools"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://fy.chalmers.se/~appro/linux/DVD+RW"
+depends=('cdrkit' 'gcc-libs')
+source=("http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pkgname}-$origver.tar.gz"
+ "buildpatch-7.0-3-20080108-karolina.patch")
+md5sums=('8acb3c885c87f6838704a0025e435871' '54b4dc52f5380216d4d9fc2dd2086d31')
+
+build() {
+ # fix build, thank you Karolina
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np1 -i $startdir/src/buildpatch-7.0-3-20080108-karolina.patch
+
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ make || return 1
+ mkdir -p ${startdir}/pkg/usr/bin
+ for bin in growisofs dvd+rw-booktype dvd+rw-format dvd+rw-mediainfo dvd-ram-control; do
+ install -D -m755 $bin ${startdir}/pkg/usr/bin/$bin || return 1
+ done
+ install -D -m644 growisofs.1 ${startdir}/pkg/usr/share/man/man1/growisofs.1 || return 1
+}
+
+
diff --git a/abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch b/abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch
new file mode 100644
index 0000000..0b7951f
--- /dev/null
+++ b/abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch
@@ -0,0 +1,22 @@
+diff -Naur dvd+rw-tools-7.0/growisofs.c dvd+rw-tools-7.0_new/growisofs.c
+--- dvd+rw-tools-7.0/growisofs.c 2006-09-24 19:28:53.000000000 +0200
++++ dvd+rw-tools-7.0_new/growisofs.c 2008-01-08 00:56:57.000000000 +0100
+@@ -418,6 +418,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <assert.h>
++#include <limits.h>
+ #include "mp.h"
+
+ #if defined(__unix) || defined(__unix__)
+diff -Naur dvd+rw-tools-7.0/transport.hxx dvd+rw-tools-7.0_new/transport.hxx
+--- dvd+rw-tools-7.0/transport.hxx 2006-09-23 13:29:07.000000000 +0200
++++ dvd+rw-tools-7.0_new/transport.hxx 2008-01-08 00:57:36.000000000 +0100
+@@ -137,6 +137,7 @@
+ #include <sys/wait.h>
+ #include <sys/utsname.h>
+ #include <scsi/sg.h>
++#include <limits.h>
+ #if !defined(SG_FLAG_LUN_INHIBIT)
+ # if defined(SG_FLAG_UNUSED_LUN_INHIBIT)
+ # define SG_FLAG_LUN_INHIBIT SG_FLAG_UNUSED_LUN_INHIBIT
diff --git a/abs/not_built/core/eggdbus/PKGBUILD b/abs/not_built/core/eggdbus/PKGBUILD
new file mode 100644
index 0000000..f4bf786
--- /dev/null
+++ b/abs/not_built/core/eggdbus/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: kiefer <jorgelmadrid@gmail.com>
+
+pkgname=eggdbus
+pkgver=0.6
+pkgrel=5
+pkgdesc="GObject bindings for D-Bus"
+arch=('i686' 'x86_64')
+url="http://cgit.freedesktop.org/~david/eggdbus"
+license=('GPL')
+depends=('dbus' 'dbus-glib' 'glibc')
+makedepends=('gtk-doc')
+source=("http://dl.dropbox.com/u/162810/${pkgname}-${pkgver}.tar.gz ")
+md5sums=('ee993bd3c26d85ffe479b2d2bf91b661')
+
+build() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./autogen.sh --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/core/evieext/PKGBUILD b/abs/not_built/core/evieext/PKGBUILD
new file mode 100644
index 0000000..29754f2
--- /dev/null
+++ b/abs/not_built/core/evieext/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 51098 2009-09-04 21:12:24Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evieext
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 Event Interception extension wire protocol"
+arch=(any)
+url="http://xorg.freedesktop.org/"
+license=('MIT')
+source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d0b57a8fbbf0845588a690542a6c29d351c2b4e5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
+
diff --git a/abs/not_built/core/fam/PKGBUILD b/abs/not_built/core/fam/PKGBUILD
new file mode 100644
index 0000000..3287aef
--- /dev/null
+++ b/abs/not_built/core/fam/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 42582 2009-06-16 05:21:39Z tpowa $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=fam
+pkgver=2.7.0
+pkgrel=14
+pkgdesc="File Alteration Monitor"
+arch=('i686' 'x86_64')
+license=('LGPL' 'GPL')
+depends=('rpcbind' 'gcc-libs' 'bash')
+url="http://oss.sgi.com/projects/fam/"
+backup=(etc/fam/fam.conf)
+options=('!makeflags') # Don't !libtool
+source=(ftp://oss.sgi.com/projects/fam/download/stable/${pkgname}-${pkgver}.tar.gz
+ fam-2.7.0-dnotify.patch
+ fam-2.7.0-largefiles.patch
+ fam-2.7.0-limits.patch
+ fam-2.7.0-buildfixes.patch
+ fam)
+md5sums=('1bf3ae6c0c58d3201afc97c6a4834e39'
+ '073d1763318344635ea316293390205c'
+ '47b41e0b0498793af004696a096d7da1'
+ '2638b8ffacb9f03b6e438e08ea7b290a'
+ 'fc0cabc0ac4f819680401eb3090c29c9'
+ '0b4dd9894ccc03f57787f9dfc0a7bd6f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/fam-2.7.0-dnotify.patch || return 1
+ patch -Np1 -i ${srcdir}/fam-2.7.0-largefiles.patch || return 1
+ patch -Np0 -i ${srcdir}/fam-2.7.0-limits.patch || return 1
+ patch -Np1 -i ${srcdir}/fam-2.7.0-buildfixes.patch || return 1
+
+ chmod 755 configure || return 1
+
+ autoheader || return 1
+ aclocal || return 1
+ automake -a -c || return 1
+ autoconf || return 1
+ libtoolize --copy --force || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc/fam
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m755 ../fam ${pkgdir}/etc/rc.d/fam
+}
diff --git a/abs/not_built/core/fam/fam b/abs/not_built/core/fam/fam
new file mode 100755
index 0000000..53dd2a4
--- /dev/null
+++ b/abs/not_built/core/fam/fam
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/famd`
+case "$1" in
+ start)
+ #Check for running portmap, start when not running
+ ck_daemon rpcbind && /etc/rc.d/rpcbind start
+ stat_busy "Starting File Alteration Monitor"
+ if [ ! -f /var/run/daemons/rpcbind ]; then
+ stat_fail
+ echo "ERROR: rpcbind is not running"
+ exit 1
+ fi
+ if [ -z "$PID" ]; then
+ /usr/sbin/famd -T 0 -c /etc/fam/fam.conf
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon fam
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping File Alteration Monitor"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon fam
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/abs/not_built/core/fam/fam-2.7.0-buildfixes.patch b/abs/not_built/core/fam/fam-2.7.0-buildfixes.patch
new file mode 100644
index 0000000..abc7888
--- /dev/null
+++ b/abs/not_built/core/fam/fam-2.7.0-buildfixes.patch
@@ -0,0 +1,69 @@
+diff -Naur fam-2.7.0-old/include/BTree.h fam-2.7.0/include/BTree.h
+--- fam-2.7.0-old/include/BTree.h 2003-01-20 14:22:30.000000000 +1000
++++ fam-2.7.0/include/BTree.h 2009-06-14 21:21:41.000000000 +1000
+@@ -24,6 +24,7 @@
+ #define BTree_included
+
+ #include "Boolean.h"
++#include <cstdlib>
+
+ // This is an in-core B-Tree implementation.
+ //
+diff -Naur fam-2.7.0-old/lib/Client.c++ fam-2.7.0/lib/Client.c++
+--- fam-2.7.0-old/lib/Client.c++ 2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/lib/Client.c++ 2009-06-14 21:22:33.000000000 +1000
+@@ -34,7 +34,7 @@
+ #include <syslog.h>
+ #include <errno.h>
+
+-#include <iostream.h>
++#include <iostream>
+
+ #include "fam.h"
+ #include "Client.h"
+diff -Naur fam-2.7.0-old/src/DNotify.c++ fam-2.7.0/src/DNotify.c++
+--- fam-2.7.0-old/src/DNotify.c++ 2009-06-14 21:14:34.000000000 +1000
++++ fam-2.7.0/src/DNotify.c++ 2009-06-14 21:23:23.000000000 +1000
+@@ -31,6 +31,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <libgen.h>
++#include <cstdlib>
+
+ #include "DNotify.h"
+
+diff -Naur fam-2.7.0-old/src/IMon.c++ fam-2.7.0/src/IMon.c++
+--- fam-2.7.0-old/src/IMon.c++ 2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/src/IMon.c++ 2009-06-14 21:24:11.000000000 +1000
+@@ -40,7 +40,7 @@
+ #include "Interest.h"
+ #include "Log.h"
+ #include "Scheduler.h"
+-#include "alloc.h"
++#include <memory>
+
+ int IMon::imonfd = -2;
+ IMon::EventHandler IMon::ehandler = NULL;
+diff -Naur fam-2.7.0-old/src/Interest.h fam-2.7.0/src/Interest.h
+--- fam-2.7.0-old/src/Interest.h 2009-06-14 21:14:34.000000000 +1000
++++ fam-2.7.0/src/Interest.h 2009-06-14 21:25:25.000000000 +1000
+@@ -29,6 +29,7 @@
+ #include <netinet/in.h> // for in_addr
+
+ #include "Boolean.h"
++#include <cstdlib>
+
+ class Event;
+ class FileSystem;
+diff -Naur fam-2.7.0-old/src/NFSFileSystem.c++ fam-2.7.0/src/NFSFileSystem.c++
+--- fam-2.7.0-old/src/NFSFileSystem.c++ 2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/src/NFSFileSystem.c++ 2009-06-14 21:26:16.000000000 +1000
+@@ -97,7 +97,7 @@
+
+ attr_cache_timeout = ACREGMAX;
+
+- char * p;
++ const char * p;
+
+ if (strstr(opt, "noac")) {
+ f_noac = true;
diff --git a/abs/not_built/core/fam/fam-2.7.0-dnotify.patch b/abs/not_built/core/fam/fam-2.7.0-dnotify.patch
new file mode 100644
index 0000000..1d8910e
--- /dev/null
+++ b/abs/not_built/core/fam/fam-2.7.0-dnotify.patch
@@ -0,0 +1,975 @@
+--- fam-2.7.0/src/DNotify.c++ 2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/DNotify.c++ 2004-01-30 00:00:00.000000000 +0100
+@@ -0,0 +1,582 @@
++// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved.
++// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
++//
++// This program is free software; you can redistribute it and/or modify it
++// under the terms of version 2 of the GNU General Public License as
++// published by the Free Software Foundation.
++//
++// This program is distributed in the hope that it would be useful, but
++// WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
++// license provided herein, whether implied or otherwise, is limited to
++// this program in accordance with the express provisions of the GNU
++// General Public License. Patent licenses, if any, provided herein do not
++// apply to combinations of this program with other product or programs, or
++// any other product whatsoever. This program is distributed without any
++// warranty that the program is delivered free of the rightful claim of any
++// third person by way of infringement or the like. See the GNU General
++// Public License for more details.
++//
++// You should have received a copy of the GNU General Public License along
++// with this program; if not, write the Free Software Foundation, Inc., 59
++// Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#define _GNU_SOURCE
++#include <fcntl.h>
++
++#include <string.h>
++#include <signal.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <libgen.h>
++
++#include "DNotify.h"
++
++#include "Interest.h"
++#include "Log.h"
++#include "Scheduler.h"
++#include <memory>
++
++
++int DNotify::pipe_write_fd = -2;
++int DNotify::pipe_read_fd = -2;
++volatile sig_atomic_t DNotify::queue_overflowed = 0;
++volatile sig_atomic_t DNotify::queue_changed = 0;
++int DNotify::change_queue[QUEUESIZE];
++volatile int DNotify::queue_head = 0; // Only modified by read handler
++volatile int DNotify::queue_tail = 0; // Only modified by signal handler
++DNotify::EventHandler DNotify::ehandler;
++
++DNotify::DirWatch *DNotify::dir_hash[DIR_HASHSIZE];
++DNotify::FileWatch *DNotify::file_hash[FILE_HASHSIZE];
++
++struct DNotify::FileWatch
++{
++ DirWatch *dir_watch;
++ dev_t file_dev;
++ ino_t file_ino;
++ FileWatch *next; // The DirWatch.watches list
++ FileWatch *hash_link;
++};
++
++struct DNotify::DirWatch
++{
++ int fd;
++ dev_t dir_dev;
++ ino_t dir_ino;
++
++ DirWatch *hash_link;
++ FileWatch *watches;
++};
++
++struct DNotify::ChangeEventData
++{
++ dev_t file_dev;
++ ino_t file_ino;
++};
++
++DNotify::DNotify(EventHandler h)
++{
++ assert(ehandler == NULL);
++ ehandler = h;
++}
++
++DNotify::~DNotify()
++{
++ if (pipe_read_fd >= 0)
++ {
++ // Tell the scheduler.
++
++ (void) Scheduler::remove_read_handler(pipe_read_fd);
++
++ // Close the pipe.
++
++ if (close(pipe_read_fd) < 0)
++ Log::perror("can't pipe read end");
++ else
++ Log::debug("closed pipe read end");
++
++ if (close(pipe_write_fd) < 0)
++ Log::perror("can't pipe write end");
++ else
++ Log::debug("closed pipe write end");
++ pipe_read_fd = -1;
++ }
++ ehandler = NULL;
++}
++
++void
++DNotify::overflow_signal_handler(int sig, siginfo_t *si, void *data)
++{
++ char c = 'x';
++
++ {
++ char *str = "*************** overflow sigqueue ***********************\n";
++ write (STDERR_FILENO, str, strlen(str));
++ }
++
++ if (!queue_overflowed)
++ {
++ queue_overflowed = 1;
++ // Trigger the read handler
++ write(pipe_write_fd, &c, 1);
++ }
++}
++
++void
++DNotify::signal_handler(int sig, siginfo_t *si, void *data)
++{
++ int left;
++ char c = 'x';
++
++ if (queue_head <= queue_tail)
++ left = (QUEUESIZE + queue_head) - queue_tail;
++ else
++ left = queue_head - queue_tail;
++
++ // Must leave at least one item unused to see difference
++ // Betweeen empty and full
++ if (left <= 1)
++ {
++ queue_overflowed = 1;
++ {
++ char *str = "*************** overflow famqueue ****************\n";
++ write (STDERR_FILENO, str, strlen(str));
++ }
++ }
++ else
++ {
++ change_queue[queue_tail] = si->si_fd;
++ queue_tail = (queue_tail + 1) % QUEUESIZE;
++ }
++
++ if (!queue_changed)
++ {
++ queue_changed = 1;
++ // Trigger the read handler
++ write(pipe_write_fd, &c, 1);
++ }
++}
++
++bool
++DNotify::is_active()
++{
++ if (pipe_read_fd == -2)
++ {
++ int filedes[2];
++ int res;
++
++ res = pipe (filedes);
++ if (res >= 0)
++ { Log::debug("opened pipe");
++ pipe_read_fd = filedes[0];
++ pipe_write_fd = filedes[1];
++
++ // Setup signal handler:
++ struct sigaction act;
++
++ act.sa_sigaction = signal_handler;
++ sigemptyset(&act.sa_mask);
++ act.sa_flags = SA_SIGINFO;
++ sigaction(SIGRTMIN, &act, NULL);
++
++ // When the RT queue overflows we get a SIGIO
++ act.sa_sigaction = overflow_signal_handler;
++ sigemptyset(&act.sa_mask);
++ sigaction(SIGIO, &act, NULL);
++
++ (void) Scheduler::install_read_handler(pipe_read_fd, read_handler, NULL);
++ }
++ }
++ return pipe_read_fd >= 0;
++}
++
++DNotify::DirWatch *
++DNotify::lookup_dirwatch (int fd)
++{
++ DirWatch **p;
++ DirWatch *w;
++
++ p = dir_hashchain (fd);
++
++ while (*p)
++ {
++ w = *p;
++
++ if (w->fd == fd)
++ return w;
++
++ p = &w->hash_link;
++ }
++
++ return *p;
++}
++
++// This colud be made faster by using another hash table.
++// But it's not that bad, since it is only used by express/revoke
++DNotify::DirWatch *
++DNotify::lookup_dirwatch (dev_t dir_dev, ino_t dir_ino)
++{
++ DirWatch *p;
++ int i;
++
++ for (i=0;i<DIR_HASHSIZE;i++)
++ {
++ p = dir_hash[i];
++
++ while (p)
++ {
++ if (p->dir_dev == dir_dev && p->dir_ino == dir_ino)
++ return p;
++
++ p = p->hash_link;
++ }
++ }
++
++ return NULL;
++}
++
++DNotify::FileWatch *
++DNotify::lookup_filewatch (dev_t dev, ino_t ino)
++{
++ FileWatch **p;
++ FileWatch *w;
++
++ p = file_hashchain (dev, ino);
++
++ while (*p)
++ {
++ w = *p;
++
++ if (w->file_dev == dev && w->file_ino == ino)
++ return w;
++
++ p = &w->hash_link;
++ }
++
++ return *p;
++}
++
++// Make sure w is not already in the hash table before calling
++// this function.
++void
++DNotify::hash_dirwatch(DirWatch *w)
++{
++ DirWatch **p;
++ p = dir_hashchain (w->fd);
++ w->hash_link = *p;
++ *p = w;
++}
++
++// Make sure w is not already in the hash table before calling
++// this function.
++void
++DNotify::hash_filewatch(FileWatch *w)
++{
++ FileWatch **p;
++ p = file_hashchain (w->file_dev, w->file_ino);
++ w->hash_link = *p;
++ *p = w;
++}
++
++void
++DNotify::unhash_dirwatch(DirWatch *w)
++{
++ DirWatch **p;
++
++ p = dir_hashchain (w->fd);
++
++ while (*p)
++ {
++ if (*p == w)
++ {
++ *p = w->hash_link;
++ break;
++ }
++ p = &(*p)->hash_link;
++ }
++ w->hash_link = NULL;
++}
++
++void
++DNotify::unhash_filewatch(FileWatch *w)
++{
++ FileWatch **p;
++
++ p = file_hashchain (w->file_dev, w->file_ino);
++
++ while (*p)
++ {
++ if (*p == w)
++ {
++ *p = w->hash_link;
++ break;
++ }
++ p = &(*p)->hash_link;
++ }
++ w->hash_link = NULL;
++}
++
++DNotify::Status
++DNotify::watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino)
++{
++ struct stat stat;
++ dev_t dir_dev;
++ ino_t dir_ino;
++ DirWatch *dwatch;
++ FileWatch *fw;
++
++ if (lstat (notify_dir, &stat) == -1)
++ return BAD;
++
++ dwatch = lookup_dirwatch(stat.st_dev, stat.st_ino);
++ if (!dwatch)
++ {
++ Log::debug ("New DirWatch for %s (%x %x)\n",
++ notify_dir, (int)stat.st_dev, (int)stat.st_ino);
++ dwatch = new DirWatch;
++ dwatch->watches = NULL;
++ dwatch->hash_link = NULL;
++ dwatch->dir_dev = stat.st_dev;
++ dwatch->dir_ino = stat.st_ino;
++
++ dwatch->fd = open(notify_dir, O_RDONLY);
++ fcntl (dwatch->fd, F_SETSIG, SIGRTMIN);
++ if (fcntl (dwatch->fd, F_NOTIFY,
++ (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)
++ | DN_MULTISHOT) == -1) {
++ return BAD;
++ }
++ hash_dirwatch (dwatch);
++ }
++
++ fw = lookup_filewatch (file_dev, file_ino);
++ if (fw && fw->dir_watch == dwatch)
++ return OK;
++
++ // No old FileWatch, need to add one:
++ Log::debug("New FileWatch for %x %x\n", (int)file_dev, (int)file_ino);
++ fw = new FileWatch;
++ fw->next = dwatch->watches;
++ dwatch->watches = fw;
++ fw->file_dev = file_dev;
++ fw->file_ino = file_ino;
++ fw->dir_watch = dwatch;
++ hash_filewatch(fw);
++ return OK;
++}
++
++char *
++dirname_dup (const char *name)
++{
++ char *copy = strdup(name);
++ char *res = dirname(copy);
++ res = strdup(res);
++ free (copy);
++ return res;
++}
++
++DNotify::Status
++DNotify::express(const char *name, struct stat *status)
++{
++ struct stat stat;
++ char *notify_dir;
++ int res;
++ Status s;
++ dev_t dev;
++ ino_t ino;
++
++ Log::debug("express() name: %s\n", name);
++
++ if (!is_active())
++ return BAD;
++
++ if (::lstat (name, &stat) == -1)
++ return BAD;
++
++ dev = stat.st_dev;
++ ino = stat.st_ino;
++
++ if ((stat.st_mode & S_IFMT) != S_IFDIR)
++ notify_dir = dirname_dup (name);
++ else
++ notify_dir = (char *)name;
++
++ s = watch_dir (notify_dir, dev, ino);
++ if (notify_dir != name)
++ free (notify_dir);
++ if (s)
++ return s;
++
++ // Check for a race condition; if someone removed or changed the
++ // file at the same time that we are expressing interest in it,
++ // revoke the interest so we don't get notifications about changes
++ // to a recycled inode that we don't otherwise care about.
++ //
++ struct stat st;
++ if (status == NULL) {
++ status = &st;
++ }
++ if (::lstat(name, status) == -1) {
++ Log::perror("stat on \"%s\" failed", name);
++ revoke(name, stat.st_dev, stat.st_ino);
++ return BAD;
++ }
++ if (status->st_dev != stat.st_dev
++ || status->st_ino != stat.st_ino) {
++ Log::error("File \"%s\" changed between express and stat",
++ name);
++ revoke(name, stat.st_dev, stat.st_ino);
++ return BAD;
++ }
++
++ Log::debug("told dnotify to monitor \"%s\" = dev %d/%d, ino %d", name,
++ major(status->st_dev), minor(status->st_dev),
++ status->st_ino);
++ return OK;
++}
++
++DNotify::Status
++DNotify::revoke(const char *name, dev_t dev, ino_t ino)
++{
++ FileWatch *fwatch;
++ DirWatch *dwatch;
++
++ Log::debug("revoke() name: %s, dev: %x, ino: %x\n", name, dev, ino);
++
++ if (!is_active())
++ return BAD;
++
++ // Lookup FileWatch by dev:ino, and its DirWatch.
++ fwatch = lookup_filewatch (dev, ino);
++ if (fwatch == NULL)
++ return BAD;
++
++ dwatch = fwatch->dir_watch;
++
++ // delete FileWatch, if last FileWatch: close fd, delete DirWatch
++ Log::debug ("Destroying FileWatch for (%x %x)\n",
++ (int)fwatch->file_dev, (int)fwatch->file_ino);
++ FileWatch **p;
++ for (p=&dwatch->watches; *p; p=&(*p)->next)
++ {
++ if (*p == fwatch)
++ {
++ *p = (*p)->next;
++ break;
++ }
++ }
++ unhash_filewatch(fwatch);
++ delete fwatch;
++ if (dwatch->watches == NULL)
++ {
++ Log::debug ("Destroying DirWatch for (%x %x)\n",
++ (int)dwatch->dir_dev, (int)dwatch->dir_ino);
++ close(dwatch->fd);
++ unhash_dirwatch(dwatch);
++ delete dwatch;
++ }
++
++ return OK;
++}
++
++
++void
++DNotify::all_watches_changed(void)
++{
++ int i;
++ FileWatch *fw;
++
++ for (i=0; i<FILE_HASHSIZE; i++)
++ {
++ fw = file_hash[i];
++ while (fw)
++ {
++ (*ehandler)(fw->file_dev, fw->file_ino, CHANGE);
++
++ fw = fw->hash_link;
++ }
++ }
++}
++
++
++void
++DNotify::read_handler(int fd, void *)
++{
++ static char readbuf[5000];
++ DirWatch *dw;
++ FileWatch *fw;
++ int snap_queue_tail;
++ int last_fd;
++
++ int rc = read(fd, readbuf, sizeof readbuf);
++ queue_changed = 0;
++ if (rc < 0)
++ Log::perror("pipe read");
++ else if (queue_overflowed)
++ {
++ // There is a *slight* race condition here. Between reading
++ // the queue_overflow flag and resetting it. But it doesn't
++ // matter, since I'm gonna handle the overflow after reseting
++ // anyway.
++ queue_overflowed = false;
++
++ // We're soon gonna check all watches anyway, so
++ // get rid of the current queue
++ queue_head = queue_tail;
++
++ all_watches_changed ();
++ }
++ else
++ {
++ // Don't read events that happen later than
++ // the initial read. (Otherwise skipping fd's
++ // might miss some changes).
++ snap_queue_tail = queue_tail;
++ last_fd = -1;
++ while (queue_head != snap_queue_tail)
++ {
++ fd = change_queue[queue_head];
++ queue_head = (queue_head + 1) % QUEUESIZE;
++
++ // Skip multiple changes to the same fd
++ if (fd != last_fd)
++ {
++ dw = lookup_dirwatch (fd);
++ if (dw)
++ {
++ int n_watches, i;
++ ChangeEventData *data;
++
++ Log::debug("dnotify said dev %d/%d, ino %ld changed",
++ major(dw->dir_dev), minor(dw->dir_dev), dw->dir_ino);
++
++ n_watches = 0;
++ for (fw=dw->watches; fw; fw=fw->next)
++ n_watches++;
++
++ data = new ChangeEventData[n_watches];
++
++ i = 0;
++ for (fw=dw->watches; fw; fw=fw->next)
++ {
++ data[i].file_dev = fw->file_dev;
++ data[i].file_ino = fw->file_ino;
++ i++;
++ }
++
++ for (i = 0; i < n_watches; i++)
++ {
++ (*ehandler)(data[i].file_dev, data[i].file_ino, CHANGE);
++ }
++
++ delete[] data;
++ }
++ }
++ last_fd = fd;
++ }
++ }
++}
++
+--- fam-2.7.0/src/DNotify.h 2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/DNotify.h 2004-01-30 00:00:00.000000000 +0100
+@@ -0,0 +1,98 @@
++// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved.
++// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
++//
++// This program is free software; you can redistribute it and/or modify it
++// under the terms of version 2 of the GNU General Public License as
++// published by the Free Software Foundation.
++//
++// This program is distributed in the hope that it would be useful, but
++// WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
++// license provided herein, whether implied or otherwise, is limited to
++// this program in accordance with the express provisions of the GNU
++// General Public License. Patent licenses, if any, provided herein do not
++// apply to combinations of this program with other product or programs, or
++// any other product whatsoever. This program is distributed without any
++// warranty that the program is delivered free of the rightful claim of any
++// third person by way of infringement or the like. See the GNU General
++// Public License for more details.
++//
++// You should have received a copy of the GNU General Public License along
++// with this program; if not, write the Free Software Foundation, Inc., 59
++// Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#ifndef DNotify_included
++#define DNotify_included
++
++#include "config.h"
++#include "Monitor.h"
++#include <signal.h>
++
++// DNotify is an object encapsulating the dnotify linux fcntl.
++// It "emulates" the IMon interface.
++// There can only be one instantiation of the DNotify object.
++//
++// The user of this object uses express() and revoke() to
++// express/revoke interest in a file. There is also
++// a callback, the EventHandler. When an dnotify event comes in,
++// the EventHandler is called.
++//
++// The user of the DNotify object is the Interest class.
++
++class DNotify : public Monitor {
++public:
++ DNotify(EventHandler h);
++ ~DNotify();
++
++ static bool is_active();
++
++ virtual Status express(const char *name, struct stat *stat_return);
++ virtual Status revoke(const char *name, dev_t dev, ino_t ino);
++
++private:
++ struct FileWatch;
++ struct DirWatch;
++ struct ChangeEventData;
++
++ // Class Variables
++ enum { QUEUESIZE = 1024 };
++ static int pipe_write_fd;
++ static int pipe_read_fd;
++ static int change_queue[QUEUESIZE];
++ static volatile sig_atomic_t queue_overflowed;
++ static volatile sig_atomic_t queue_changed;
++ static volatile int queue_head; // Only modified by read handler
++ static volatile int queue_tail; // Only modified by signal handler
++ static EventHandler ehandler;
++ static void overflow_signal_handler(int sig, siginfo_t *si, void *data);
++ static void signal_handler(int sig, siginfo_t *si, void *data);
++ static void read_handler(int fd, void *closure);
++
++ enum { DIR_HASHSIZE = 367 };
++ static DirWatch *dir_hash[DIR_HASHSIZE];
++ enum { FILE_HASHSIZE = 823 };
++ static FileWatch *file_hash[FILE_HASHSIZE];
++
++ static DirWatch **dir_hashchain(int fd)
++ { return &dir_hash[(unsigned) (fd) % DIR_HASHSIZE]; }
++ static FileWatch **file_hashchain(dev_t d, ino_t i)
++ { return &file_hash[(unsigned) (d+i) % FILE_HASHSIZE]; }
++
++ static DirWatch *lookup_dirwatch (int fd);
++ static DirWatch *lookup_dirwatch (dev_t dir_dev, ino_t dir_ino);
++ static FileWatch *lookup_filewatch (dev_t file_dev, ino_t file_ino);
++ static void hash_dirwatch(DirWatch *w);
++ static void hash_filewatch(FileWatch *w);
++ static void unhash_dirwatch(DirWatch *w);
++ static void unhash_filewatch(FileWatch *w);
++ static Status watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino);
++
++ static void all_watches_changed(void);
++
++ DNotify(const DNotify&); // Do not copy
++ DNotify & operator = (const DNotify&); // or assign.
++};
++
++#endif /* !IMon_included */
++
++
+--- fam-2.7.0/src/Interest.c++ 2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/Interest.c++ 2004-01-30 00:00:00.000000000 +0100
+@@ -42,12 +42,21 @@
+ #include "Event.h"
+ #include "FileSystem.h"
+ #include "IMon.h"
++#include "DNotify.h"
+ #include "Log.h"
+ #include "Pollster.h"
+ #include "timeval.h"
+
+ Interest *Interest::hashtable[];
+-IMon Interest::imon(imon_handler);
++
++#ifdef USE_DNOTIFY
++static DNotify dnotify(Interest::monitor_handler);
++Monitor * Interest::monitor = &dnotify;
++#else
++static IMon imon(Interest::monitor_handler);
++Monitor * Interest::monitor = &imon;
++#endif
++
+ bool Interest::xtab_verification = true;
+
+ Interest::Interest(const char *name, FileSystem *fs, in_addr host, ExportVerification ev)
+@@ -60,10 +69,10 @@
+ mypath_exported_to_host(ev == NO_VERIFY_EXPORTED)
+ {
+ memset(&old_stat, 0, sizeof(old_stat));
+- IMon::Status s = IMon::BAD;
+
+- s = imon.express(name, &old_stat);
+- if (s != IMon::OK)
++ Monitor::Status s = Monitor::BAD;
++ s = monitor->express(name, &old_stat);
++ if (s != Monitor::OK)
+ { int rc = lstat(name, &old_stat);
+ if (rc < 0)
+ { Log::info("can't lstat %s", name);
+@@ -100,7 +109,7 @@
+ }
+ #endif
+
+- if (exported_to_host()) fs->ll_monitor(this, s == IMon::OK);
++ if (exported_to_host()) fs->ll_monitor(this, s == Monitor::OK);
+ }
+
+ Interest::~Interest()
+@@ -128,7 +137,7 @@
+ pp = &p->hashlink; // move to next element
+ }
+ if (!found_same)
+- (void) imon.revoke(name(), dev, ino);
++ (void) monitor->revoke(name(), dev, ino);
+ }
+ }
+
+@@ -147,7 +156,7 @@
+
+ // Express interest.
+ IMon::Status s = IMon::BAD;
+- s = imon.express(name(), NULL);
++ s = monitor->express(name(), NULL);
+ if (s != IMon::OK) {
+ return true;
+ }
+@@ -248,23 +257,23 @@
+ }
+
+ void
+-Interest::imon_handler(dev_t device, ino_t inumber, int event)
++Interest::monitor_handler(dev_t device, ino_t inumber, int event)
+ {
+ assert(device || inumber);
+
+ for (Interest *p = *hashchain(device, inumber), *next = p; p; p = next)
+ { next = p->hashlink;
+ if (p->ino == inumber && p->dev == device)
+- { if (event == IMon::EXEC)
++ { if (event == Monitor::EXEC)
+ { p->cur_exec_state = EXECUTING;
+ (void) p->report_exec_state();
+ }
+- else if (event == IMon::EXIT)
++ else if (event == Monitor::EXIT)
+ { p->cur_exec_state = NOT_EXECUTING;
+ (void) p->report_exec_state();
+ }
+ else
+- { assert(event == IMon::CHANGE);
++ { assert(event == Monitor::CHANGE);
+ p->scan();
+ }
+ }
+--- fam-2.7.0/config.h.in 2003-01-20 01:40:15.000000000 +0100
++++ fam-2.7.0.dnotify/config.h.in 2004-01-30 13:50:33.000000000 +0100
+@@ -180,3 +180,6 @@
+
+ /* Define to `int' if <sys/types.h> doesn't define. */
+ #undef uid_t
++
++/* Define to 1 if you have F_NOTIFY fcntl */
++#undef USE_DNOTIFY
+--- fam-2.7.0/configure.ac 2003-11-26 20:47:59.000000000 +0100
++++ fam-2.7.0.dnotify/configure.ac 2004-01-30 13:50:33.000000000 +0100
+@@ -34,7 +34,26 @@
+ AC_HEADER_DIRENT
+ AC_CHECK_HEADERS([fcntl.h limits.h linux/imon.h netinet/in.h rpc/rpc.h rpcsvc/mount.h stddef.h stdlib.h string.h syslog.h sys/imon.h sys/param.h sys/select.h sys/statvfs.h sys/syssgi.h sys/time.h sys/types.h sys/un.h unistd.h])
+
+-if test "$have_sys_imon_h"; then
++# Test for the linux dnotify fcntl
++AC_MSG_CHECKING([for dnotify fcntl support])
++AC_TRY_COMPILE([
++#define _GNU_SOURCE
++#include <fcntl.h>
++#include <unistd.h>
++],
++[ int fd = 1;
++ fcntl (fd, F_NOTIFY, (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)
++ |DN_MULTISHOT);
++], have_dnotify=yes, have_dnotify=no)
++
++use_dnotify=false
++AC_MSG_RESULT($have_dnotify)
++
++if test "$have_dnotify"; then
++ MONITOR_FUNCS=IMonNone
++ AC_DEFINE([USE_DNOTIFY], [], [Use dnotify])
++ use_dnotify=true
++elif test "$have_sys_imon_h"; then
+ MONITOR_FUNCS=IMonIRIX
+ elif test "$have_linux_imon_h"; then
+ MONITOR_FUNCS=IMonLinux
+@@ -42,6 +62,7 @@
+ MONITOR_FUNCS=IMonNone
+ fi
+ AC_SUBST(MONITOR_FUNCS)
++AM_CONDITIONAL(USE_DNOTIFY, $use_dnotify)
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_HEADER_STDBOOL
+--- fam-2.7.0/src/IMon.h 2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/IMon.h 2004-01-30 00:00:00.000000000 +0200
+@@ -24,10 +24,7 @@
+ #define IMon_included
+
+ #include "config.h"
+-#include <sys/stat.h>
+-#include <sys/types.h>
+-
+-#include "Boolean.h"
++#include "Monitor.h"
+
+ struct stat;
+
+@@ -41,25 +38,18 @@
+ //
+ // The user of the IMon object is the Interest class.
+
+-class IMon {
++class IMon : public Monitor {
+
+ public:
+-
+- enum Status { OK = 0, BAD = -1 };
+- enum Event { EXEC, EXIT, CHANGE };
+-
+- typedef void (*EventHandler)(dev_t, ino_t, int event);
+-
+ IMon(EventHandler h);
+ ~IMon();
+
+ static bool is_active();
+
+- Status express(const char *name, struct stat *stat_return);
+- Status revoke(const char *name, dev_t dev, ino_t ino);
++ virtual Status express(const char *name, struct stat *stat_return);
++ virtual Status revoke(const char *name, dev_t dev, ino_t ino);
+
+ private:
+-
+ // Class Variables
+
+ static int imonfd;
+--- fam-2.7.0/src/Interest.h 2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/Interest.h 2004-01-30 00:00:00.000000000 +0200
+@@ -32,7 +32,7 @@
+
+ class Event;
+ class FileSystem;
+-class IMon;
++class Monitor;
+ struct stat;
+
+ // Interest -- abstract base class for filesystem entities of interest.
+@@ -74,7 +74,7 @@
+
+ // Public Class Method
+
+- static void imon_handler(dev_t, ino_t, int event);
++ static void monitor_handler(dev_t, ino_t, int event);
+
+ static void enable_xtab_verification(bool enable);
+
+@@ -121,7 +121,7 @@
+
+ // Class Variables
+
+- static IMon imon;
++ static Monitor *monitor;
+ static Interest *hashtable[HASHSIZE];
+ static bool xtab_verification;
+
+--- fam-2.7.0/src/Makefile.am 2003-01-19 13:00:17.000000000 +0100
++++ fam-2.7.0.dnotify/src/Makefile.am 2004-01-30 13:50:38.000000000 +0100
+@@ -71,7 +71,11 @@
+ main.c++ \
+ timeval.c++ \
+ timeval.h \
+- @MONITOR_FUNCS@.c++
++ Monitor.h \
++ DNotify.h \
++ DNotify.c++ \
++ @MONITOR_FUNCS@.c++
+
+-EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++
++EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ DNotify.c++ \
++ DNotify.h Monitor.h
+
+--- fam-2.7.0/src/Monitor.h 2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/Monitor.h 2004-01-30 00:00:00.000000000 +0200
+@@ -0,0 +1,57 @@
++// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved.
++// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
++//
++// This program is free software; you can redistribute it and/or modify it
++// under the terms of version 2 of the GNU General Public License as
++// published by the Free Software Foundation.
++//
++// This program is distributed in the hope that it would be useful, but
++// WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
++// license provided herein, whether implied or otherwise, is limited to
++// this program in accordance with the express provisions of the GNU
++// General Public License. Patent licenses, if any, provided herein do not
++// apply to combinations of this program with other product or programs, or
++// any other product whatsoever. This program is distributed without any
++// warranty that the program is delivered free of the rightful claim of any
++// third person by way of infringement or the like. See the GNU General
++// Public License for more details.
++//
++// You should have received a copy of the GNU General Public License along
++// with this program; if not, write the Free Software Foundation, Inc., 59
++// Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#ifndef Monitor_included
++#define Monitor_included
++
++#include "config.h"
++#include <sys/stat.h>
++#include <sys/types.h>
++
++struct stat;
++
++// Monitor is an abstract baseclass for differend file monitoring
++// systems. The original system used was IMon, and the Montor API
++// is heavily influenced by that.
++// There can only be one instantiation of the Monitor object.
++//
++// The user of this object uses express() and revoke() to
++// express/revoke interest in a file to imon. There is also
++// a callback, the EventHandler. When an event comes in,
++// the EventHandler is called.
++//
++// The main implementers of the Monitor class is IMon and DNotify
++
++class Monitor {
++public:
++
++ enum Status { OK = 0, BAD = -1 };
++ enum Event { EXEC, EXIT, CHANGE };
++
++ typedef void (*EventHandler)(dev_t, ino_t, int event);
++
++ virtual Status express(const char *name, struct stat *stat_return) = 0;
++ virtual Status revoke(const char *name, dev_t dev, ino_t ino) = 0;
++};
++
++#endif /* !Monitor_included */
diff --git a/abs/not_built/core/fam/fam-2.7.0-largefiles.patch b/abs/not_built/core/fam/fam-2.7.0-largefiles.patch
new file mode 100644
index 0000000..60de9a4
--- /dev/null
+++ b/abs/not_built/core/fam/fam-2.7.0-largefiles.patch
@@ -0,0 +1,8 @@
+--- fam-2.7.0/common.am 2003-01-19 06:09:08.000000000 -0600
++++ fam-2.7.0.largefile/common.am 2005-01-12 19:08:06.462113110 -0600
+@@ -1,2 +1,5 @@
+-INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\"
++INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" \
++ -D_FILE_OFFSET_BITS=64 \
++ -D_LARGEFILE64_SOURCE
++
diff --git a/abs/not_built/core/fam/fam-2.7.0-limits.patch b/abs/not_built/core/fam/fam-2.7.0-limits.patch
new file mode 100644
index 0000000..4248957
--- /dev/null
+++ b/abs/not_built/core/fam/fam-2.7.0-limits.patch
@@ -0,0 +1,11 @@
+--- include/fam.h.orig 2005-05-25 09:26:38.000000000 +0000
++++ include/fam.h 2005-05-25 09:27:04.000000000 +0000
+@@ -41,7 +41,7 @@
+ *****************************************************************************/
+
+ /* For NAME_MAX - maximum # of chars in a filename */
+-#include "limits.h"
++#include <limits.h>
+
+
+
diff --git a/abs/not_built/core/feh/PKGBUILD b/abs/not_built/core/feh/PKGBUILD
new file mode 100644
index 0000000..0f97b3b
--- /dev/null
+++ b/abs/not_built/core/feh/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 94545 2010-10-08 08:16:45Z bisson $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=feh
+pkgver=1.10
+pkgrel=2
+pkgdesc='Fast, lightweight image viewer which uses imlib2'
+arch=('i686' 'x86_64')
+url='https://derf.homelinux.org/~derf/projects/feh/'
+license=('MIT')
+depends=('libxinerama' 'giblib' 'perl' 'libjpeg7' 'libpng12')
+makedepends=('libxt')
+source=("https://derf.homelinux.org/~derf/projects/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('c42095ed6a7636fe9d1ec90d3994f4a57af84681')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e 's:/usr/local:/usr:g' config.mk
+ make
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/core/feh/__changelog b/abs/not_built/core/feh/__changelog
new file mode 100644
index 0000000..431a054
--- /dev/null
+++ b/abs/not_built/core/feh/__changelog
@@ -0,0 +1 @@
+1/20/11 - chw - Added libjpeg7 and libpng12 as deps.
diff --git a/abs/not_built/core/fltk/PKGBUILD b/abs/not_built/core/fltk/PKGBUILD
new file mode 100644
index 0000000..f5335f6
--- /dev/null
+++ b/abs/not_built/core/fltk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 71291 2010-03-06 01:40:12Z pierre $
+
+pkgname=fltk
+pkgver=1.1.10
+pkgrel=1
+pkgdesc="Graphical user interface toolkit for X"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://www.fltk.org/"
+depends=('libjpeg' 'libpng' 'gcc-libs' 'libxft' 'libxext')
+makedepends=('mesa')
+source=("http://ftp.easysw.com/pub/$pkgname/$pkgver/$pkgname-$pkgver-source.tar.bz2")
+md5sums=('a1765594bc427ff892e36089fe1fa672')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ export LDFLAGS="${LDFLAGS//,--as-needed}"
+ ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/abs/not_built/core/fontcacheproto/PKGBUILD b/abs/not_built/core/fontcacheproto/PKGBUILD
new file mode 100644
index 0000000..527dd57
--- /dev/null
+++ b/abs/not_built/core/fontcacheproto/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=fontcacheproto
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="X11 font cache extension wire protocol"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+package() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ make DESTDIR=${startdir}/pkg install || return 1
+}
+md5sums=('a8a50e5e995bfacb0359575faf7f6906')
diff --git a/abs/not_built/core/ftgl/PKGBUILD b/abs/not_built/core/ftgl/PKGBUILD
new file mode 100644
index 0000000..73fe640
--- /dev/null
+++ b/abs/not_built/core/ftgl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 30671 2009-03-21 08:04:20Z eric $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+
+pkgname=ftgl
+pkgver=2.1.3rc5
+pkgrel=1
+pkgdesc="OpenGL library to use arbitrary fonts"
+arch=('i686' 'x86_64')
+url="http://ftgl.wiki.sourceforge.net/"
+license=('MIT')
+depends=('freetype2' 'glut')
+makedepends=('doxygen')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/ftgl/$pkgname-2.1.3-rc5.tar.bz2)
+md5sums=('c7879018cde844059495b3029b0b6503')
+
+build() {
+ cd $srcdir/ftgl-2.1.3~rc5
+ ./configure --prefix=/usr --with-pic || return 1
+ make || return 1
+}
+package() {
+ cd $srcdir/ftgl-2.1.3~rc5
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE || return 1
+}
diff --git a/abs/not_built/core/fxload/PKGBUILD b/abs/not_built/core/fxload/PKGBUILD
new file mode 100644
index 0000000..e128688
--- /dev/null
+++ b/abs/not_built/core/fxload/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Jochen Immendörfer <jochen dot immendoerfer at gmail dot com>
+pkgname=fxload
+pkgver=2008_10_13
+pkgrel=1
+pkgdesc="fxload firmware loader. Used with udev or devfs/hotplug."
+url="http://linux-hotplug.sourceforge.net/"
+depends=('glibc')
+makedepends=('sed')
+source=(http://downloads.sourceforge.net/sourceforge/linux-hotplug/$pkgname-$pkgver.tar.gz)
+md5sums=('4477a2457f064228bef4a93ba2f21692')
+arch=('i686')
+license=('GPL')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make || return 1
+ sed -i 's|/usr/bin/install|/bin/install|' Makefile
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make exec_prefix=${pkgdir} prefix=${pkgdir} install || return 1
+}
diff --git a/abs/not_built/core/gen-init-cpio/Makefile b/abs/not_built/core/gen-init-cpio/Makefile
new file mode 100644
index 0000000..1ebe763
--- /dev/null
+++ b/abs/not_built/core/gen-init-cpio/Makefile
@@ -0,0 +1,42 @@
+
+DESTDIR =
+PREFIX = /
+
+MKDIR = /bin/mkdir
+INSTALL = /bin/install -c -m 755
+
+CC = /usr/bin/gcc
+LD = /usr/bin/gcc
+
+CFLAGS += -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \
+ -Wpointer-arith -Wcast-align -Wsign-compare
+
+#pretty print!
+E = @echo
+Q = @
+
+all: gen_init_cpio
+.PHONY: all
+.DEFAULT: all
+
+%.o: %.c
+ $(E) " compile " $@
+ $(Q) $(CC) -c $(CFLAGS) $< -o $@
+
+gen_init_cpio: gen_init_cpio.o
+ $(E) ">>build " $@
+ $(Q) $(LD) $(LDFLAGS) $@.o -o $@ $(LIB_OBJS)
+
+clean:
+ $(E) " clean "
+ $(Q) rm -f gen_init_cpio *.o
+.PHONY: clean
+
+install: all
+ $(MKDIR) -p $(DESTDIR)$(PREFIX)sbin/
+ $(INSTALL) gen_init_cpio $(DESTDIR)$(PREFIX)sbin/
+.PHONY: install
+
+uninstall:
+ rm $(DESTDIR)$(PREFIX)sbin/gen_init_cpio
+.PHONY: uninstall
diff --git a/abs/not_built/core/gen-init-cpio/PKGBUILD b/abs/not_built/core/gen-init-cpio/PKGBUILD
new file mode 100644
index 0000000..cad7221
--- /dev/null
+++ b/abs/not_built/core/gen-init-cpio/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 60483 2009-12-05 10:21:23Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=gen-init-cpio
+pkgver=2.6.32
+pkgrel=1
+pkgdesc="Program to compress initramfs images"
+arch=('i686' 'x86_64')
+license=('custom:none')
+groups=('base')
+url="http://www.kernel.org/"
+depends=('glibc')
+source=(Makefile gen_init_cpio.c)
+md5sums=('8e3a142a522d65121c3bead41013be98'
+ '1e930eb3d6255aca3b91a73e31bf9da6')
+
+build()
+{
+ cd $srcdir/
+ make || return 1
+}
+
+package() {
+ cd $srcdir/
+ make DESTDIR=$pkgdir install
+}
diff --git a/abs/not_built/core/gen-init-cpio/gen_init_cpio.c b/abs/not_built/core/gen-init-cpio/gen_init_cpio.c
new file mode 100644
index 0000000..83b3dde
--- /dev/null
+++ b/abs/not_built/core/gen-init-cpio/gen_init_cpio.c
@@ -0,0 +1,592 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <ctype.h>
+#include <limits.h>
+
+/*
+ * Original work by Jeff Garzik
+ *
+ * External file lists, symlink, pipe and fifo support by Thayne Harbaugh
+ * Hard link support by Luciano Rocha
+ */
+
+#define xstr(s) #s
+#define str(s) xstr(s)
+
+static unsigned int offset;
+static unsigned int ino = 721;
+
+struct file_handler {
+ const char *type;
+ int (*handler)(const char *line);
+};
+
+static void push_string(const char *name)
+{
+ unsigned int name_len = strlen(name) + 1;
+
+ fputs(name, stdout);
+ putchar(0);
+ offset += name_len;
+}
+
+static void push_pad (void)
+{
+ while (offset & 3) {
+ putchar(0);
+ offset++;
+ }
+}
+
+static void push_rest(const char *name)
+{
+ unsigned int name_len = strlen(name) + 1;
+ unsigned int tmp_ofs;
+
+ fputs(name, stdout);
+ putchar(0);
+ offset += name_len;
+
+ tmp_ofs = name_len + 110;
+ while (tmp_ofs & 3) {
+ putchar(0);
+ offset++;
+ tmp_ofs++;
+ }
+}
+
+static void push_hdr(const char *s)
+{
+ fputs(s, stdout);
+ offset += 110;
+}
+
+static void cpio_trailer(void)
+{
+ char s[256];
+ const char name[] = "TRAILER!!!";
+
+ sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ 0, /* ino */
+ 0, /* mode */
+ (long) 0, /* uid */
+ (long) 0, /* gid */
+ 1, /* nlink */
+ (long) 0, /* mtime */
+ 0, /* filesize */
+ 0, /* major */
+ 0, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ (unsigned)strlen(name)+1, /* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_rest(name);
+
+ while (offset % 512) {
+ putchar(0);
+ offset++;
+ }
+}
+
+static int cpio_mkslink(const char *name, const char *target,
+ unsigned int mode, uid_t uid, gid_t gid)
+{
+ char s[256];
+ time_t mtime = time(NULL);
+
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino++, /* ino */
+ S_IFLNK | mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ 1, /* nlink */
+ (long) mtime, /* mtime */
+ (unsigned)strlen(target)+1, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ (unsigned)strlen(name) + 1,/* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_string(name);
+ push_pad();
+ push_string(target);
+ push_pad();
+ return 0;
+}
+
+static int cpio_mkslink_line(const char *line)
+{
+ char name[PATH_MAX + 1];
+ char target[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ int rc = -1;
+
+ if (5 != sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX) "s %o %d %d", name, target, &mode, &uid, &gid)) {
+ fprintf(stderr, "Unrecognized dir format '%s'", line);
+ goto fail;
+ }
+ rc = cpio_mkslink(name, target, mode, uid, gid);
+ fail:
+ return rc;
+}
+
+static int cpio_mkgeneric(const char *name, unsigned int mode,
+ uid_t uid, gid_t gid)
+{
+ char s[256];
+ time_t mtime = time(NULL);
+
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino++, /* ino */
+ mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ 2, /* nlink */
+ (long) mtime, /* mtime */
+ 0, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ (unsigned)strlen(name) + 1,/* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_rest(name);
+ return 0;
+}
+
+enum generic_types {
+ GT_DIR,
+ GT_PIPE,
+ GT_SOCK
+};
+
+struct generic_type {
+ const char *type;
+ mode_t mode;
+};
+
+static struct generic_type generic_type_table[] = {
+ [GT_DIR] = {
+ .type = "dir",
+ .mode = S_IFDIR
+ },
+ [GT_PIPE] = {
+ .type = "pipe",
+ .mode = S_IFIFO
+ },
+ [GT_SOCK] = {
+ .type = "sock",
+ .mode = S_IFSOCK
+ }
+};
+
+static int cpio_mkgeneric_line(const char *line, enum generic_types gt)
+{
+ char name[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ int rc = -1;
+
+ if (4 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d", name, &mode, &uid, &gid)) {
+ fprintf(stderr, "Unrecognized %s format '%s'",
+ line, generic_type_table[gt].type);
+ goto fail;
+ }
+ mode |= generic_type_table[gt].mode;
+ rc = cpio_mkgeneric(name, mode, uid, gid);
+ fail:
+ return rc;
+}
+
+static int cpio_mkdir_line(const char *line)
+{
+ return cpio_mkgeneric_line(line, GT_DIR);
+}
+
+static int cpio_mkpipe_line(const char *line)
+{
+ return cpio_mkgeneric_line(line, GT_PIPE);
+}
+
+static int cpio_mksock_line(const char *line)
+{
+ return cpio_mkgeneric_line(line, GT_SOCK);
+}
+
+static int cpio_mknod(const char *name, unsigned int mode,
+ uid_t uid, gid_t gid, char dev_type,
+ unsigned int maj, unsigned int min)
+{
+ char s[256];
+ time_t mtime = time(NULL);
+
+ if (dev_type == 'b')
+ mode |= S_IFBLK;
+ else
+ mode |= S_IFCHR;
+
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino++, /* ino */
+ mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ 1, /* nlink */
+ (long) mtime, /* mtime */
+ 0, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ maj, /* rmajor */
+ min, /* rminor */
+ (unsigned)strlen(name) + 1,/* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_rest(name);
+ return 0;
+}
+
+static int cpio_mknod_line(const char *line)
+{
+ char name[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ char dev_type;
+ unsigned int maj;
+ unsigned int min;
+ int rc = -1;
+
+ if (7 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d %c %u %u",
+ name, &mode, &uid, &gid, &dev_type, &maj, &min)) {
+ fprintf(stderr, "Unrecognized nod format '%s'", line);
+ goto fail;
+ }
+ rc = cpio_mknod(name, mode, uid, gid, dev_type, maj, min);
+ fail:
+ return rc;
+}
+
+static int cpio_mkfile(const char *name, const char *location,
+ unsigned int mode, uid_t uid, gid_t gid,
+ unsigned int nlinks)
+{
+ char s[256];
+ char *filebuf = NULL;
+ struct stat buf;
+ long size;
+ int file = -1;
+ int retval;
+ int rc = -1;
+ int namesize;
+ int i;
+
+ mode |= S_IFREG;
+
+ retval = stat (location, &buf);
+ if (retval) {
+ fprintf (stderr, "File %s could not be located\n", location);
+ goto error;
+ }
+
+ file = open (location, O_RDONLY);
+ if (file < 0) {
+ fprintf (stderr, "File %s could not be opened for reading\n", location);
+ goto error;
+ }
+
+ filebuf = malloc(buf.st_size);
+ if (!filebuf) {
+ fprintf (stderr, "out of memory\n");
+ goto error;
+ }
+
+ retval = read (file, filebuf, buf.st_size);
+ if (retval < 0) {
+ fprintf (stderr, "Can not read %s file\n", location);
+ goto error;
+ }
+
+ size = 0;
+ for (i = 1; i <= nlinks; i++) {
+ /* data goes on last link */
+ if (i == nlinks) size = buf.st_size;
+
+ namesize = strlen(name) + 1;
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08lX%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino, /* ino */
+ mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ nlinks, /* nlink */
+ (long) buf.st_mtime, /* mtime */
+ size, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ namesize, /* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_string(name);
+ push_pad();
+
+ if (size) {
+ fwrite(filebuf, size, 1, stdout);
+ offset += size;
+ push_pad();
+ }
+
+ name += namesize;
+ }
+ ino++;
+ rc = 0;
+
+error:
+ if (filebuf) free(filebuf);
+ if (file >= 0) close(file);
+ return rc;
+}
+
+static char *cpio_replace_env(char *new_location)
+{
+ char expanded[PATH_MAX + 1];
+ char env_var[PATH_MAX + 1];
+ char *start;
+ char *end;
+
+ for (start = NULL; (start = strstr(new_location, "${")); ) {
+ end = strchr(start, '}');
+ if (start < end) {
+ *env_var = *expanded = '\0';
+ strncat(env_var, start + 2, end - start - 2);
+ strncat(expanded, new_location, start - new_location);
+ strncat(expanded, getenv(env_var), PATH_MAX);
+ strncat(expanded, end + 1, PATH_MAX);
+ strncpy(new_location, expanded, PATH_MAX);
+ } else
+ break;
+ }
+
+ return new_location;
+}
+
+
+static int cpio_mkfile_line(const char *line)
+{
+ char name[PATH_MAX + 1];
+ char *dname = NULL; /* malloc'ed buffer for hard links */
+ char location[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ int nlinks = 1;
+ int end = 0, dname_len = 0;
+ int rc = -1;
+
+ if (5 > sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX)
+ "s %o %d %d %n",
+ name, location, &mode, &uid, &gid, &end)) {
+ fprintf(stderr, "Unrecognized file format '%s'", line);
+ goto fail;
+ }
+ if (end && isgraph(line[end])) {
+ int len;
+ int nend;
+
+ dname = malloc(strlen(line));
+ if (!dname) {
+ fprintf (stderr, "out of memory (%d)\n", dname_len);
+ goto fail;
+ }
+
+ dname_len = strlen(name) + 1;
+ memcpy(dname, name, dname_len);
+
+ do {
+ nend = 0;
+ if (sscanf(line + end, "%" str(PATH_MAX) "s %n",
+ name, &nend) < 1)
+ break;
+ len = strlen(name) + 1;
+ memcpy(dname + dname_len, name, len);
+ dname_len += len;
+ nlinks++;
+ end += nend;
+ } while (isgraph(line[end]));
+ } else {
+ dname = name;
+ }
+ rc = cpio_mkfile(dname, cpio_replace_env(location),
+ mode, uid, gid, nlinks);
+ fail:
+ if (dname_len) free(dname);
+ return rc;
+}
+
+static void usage(const char *prog)
+{
+ fprintf(stderr, "Usage:\n"
+ "\t%s <cpio_list>\n"
+ "\n"
+ "<cpio_list> is a file containing newline separated entries that\n"
+ "describe the files to be included in the initramfs archive:\n"
+ "\n"
+ "# a comment\n"
+ "file <name> <location> <mode> <uid> <gid> [<hard links>]\n"
+ "dir <name> <mode> <uid> <gid>\n"
+ "nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>\n"
+ "slink <name> <target> <mode> <uid> <gid>\n"
+ "pipe <name> <mode> <uid> <gid>\n"
+ "sock <name> <mode> <uid> <gid>\n"
+ "\n"
+ "<name> name of the file/dir/nod/etc in the archive\n"
+ "<location> location of the file in the current filesystem\n"
+ " expands shell variables quoted with ${}\n"
+ "<target> link target\n"
+ "<mode> mode/permissions of the file\n"
+ "<uid> user id (0=root)\n"
+ "<gid> group id (0=root)\n"
+ "<dev_type> device type (b=block, c=character)\n"
+ "<maj> major number of nod\n"
+ "<min> minor number of nod\n"
+ "<hard links> space separated list of other links to file\n"
+ "\n"
+ "example:\n"
+ "# A simple initramfs\n"
+ "dir /dev 0755 0 0\n"
+ "nod /dev/console 0600 0 0 c 5 1\n"
+ "dir /root 0700 0 0\n"
+ "dir /sbin 0755 0 0\n"
+ "file /sbin/kinit /usr/src/klibc/kinit/kinit 0755 0 0\n",
+ prog);
+}
+
+struct file_handler file_handler_table[] = {
+ {
+ .type = "file",
+ .handler = cpio_mkfile_line,
+ }, {
+ .type = "nod",
+ .handler = cpio_mknod_line,
+ }, {
+ .type = "dir",
+ .handler = cpio_mkdir_line,
+ }, {
+ .type = "slink",
+ .handler = cpio_mkslink_line,
+ }, {
+ .type = "pipe",
+ .handler = cpio_mkpipe_line,
+ }, {
+ .type = "sock",
+ .handler = cpio_mksock_line,
+ }, {
+ .type = NULL,
+ .handler = NULL,
+ }
+};
+
+#define LINE_SIZE (2 * PATH_MAX + 50)
+
+int main (int argc, char *argv[])
+{
+ FILE *cpio_list;
+ char line[LINE_SIZE];
+ char *args, *type;
+ int ec = 0;
+ int line_nr = 0;
+
+ if (2 != argc) {
+ usage(argv[0]);
+ exit(1);
+ }
+
+ if (!strcmp(argv[1], "-"))
+ cpio_list = stdin;
+ else if (! (cpio_list = fopen(argv[1], "r"))) {
+ fprintf(stderr, "ERROR: unable to open '%s': %s\n\n",
+ argv[1], strerror(errno));
+ usage(argv[0]);
+ exit(1);
+ }
+
+ while (fgets(line, LINE_SIZE, cpio_list)) {
+ int type_idx;
+ size_t slen = strlen(line);
+
+ line_nr++;
+
+ if ('#' == *line) {
+ /* comment - skip to next line */
+ continue;
+ }
+
+ if (! (type = strtok(line, " \t"))) {
+ fprintf(stderr,
+ "ERROR: incorrect format, could not locate file type line %d: '%s'\n",
+ line_nr, line);
+ ec = -1;
+ break;
+ }
+
+ if ('\n' == *type) {
+ /* a blank line */
+ continue;
+ }
+
+ if (slen == strlen(type)) {
+ /* must be an empty line */
+ continue;
+ }
+
+ if (! (args = strtok(NULL, "\n"))) {
+ fprintf(stderr,
+ "ERROR: incorrect format, newline required line %d: '%s'\n",
+ line_nr, line);
+ ec = -1;
+ }
+
+ for (type_idx = 0; file_handler_table[type_idx].type; type_idx++) {
+ int rc;
+ if (! strcmp(line, file_handler_table[type_idx].type)) {
+ if ((rc = file_handler_table[type_idx].handler(args))) {
+ ec = rc;
+ fprintf(stderr, " line %d\n", line_nr);
+ }
+ break;
+ }
+ }
+
+ if (NULL == file_handler_table[type_idx].type) {
+ fprintf(stderr, "unknown file type line %d: '%s'\n",
+ line_nr, line);
+ }
+ }
+ if (ec == 0)
+ cpio_trailer();
+
+ exit(ec);
+}
diff --git a/abs/not_built/core/giblib/PKGBUILD b/abs/not_built/core/giblib/PKGBUILD
new file mode 100644
index 0000000..0771c30
--- /dev/null
+++ b/abs/not_built/core/giblib/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 68040 2010-02-10 15:13:54Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=giblib
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="A library that feh uses as a wrapper to imlib2"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/giblib/"
+license=('MIT')
+depends=('imlib2' 'libxext' 'freetype2')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/giblib/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ff61760ef73421c5f02d2f6c8d3ac913')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" docsdir=/usr/share/doc/giblib install || return 1
+
+ # Install custom license
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/abs/not_built/core/glibc/PKGBUILD b/abs/not_built/core/glibc/PKGBUILD
new file mode 100644
index 0000000..93a0751
--- /dev/null
+++ b/abs/not_built/core/glibc/PKGBUILD
@@ -0,0 +1,153 @@
+# $Id: PKGBUILD 163512 2012-07-14 13:07:15Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+pkgname=glibc
+pkgver=2.16.0
+pkgrel=2
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=3.4' 'tzdata')
+makedepends=('gcc>=4.7')
+backup=(etc/gai.conf
+ etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig}
+ glibc-2.15-fix-res_query-assert.patch
+ glibc-2.15-revert-c5a0802a.patch
+ nscd.rcd
+ nscd.service
+ nscd.tmpfiles
+ locale.gen.txt
+ locale-gen)
+md5sums=('80b181b02ab249524ec92822c0174cf7'
+ '2a1221a15575820751c325ef4d2fbb90'
+ '31f415b41197d85d3bbee3d1eecd06a3'
+ '0a0383d50d63f1c02919fe9943b82014'
+ '589d79041aa767a5179eaa4e2737dd3f'
+ 'ad8a9af15ab7eeaa23dc7ee85024af9f'
+ 'bccbe5619e75cf1d97312ec3681c605c'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # fix res_query assertion
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch
+
+ # revert commit c5a0802a - causes various hangs
+ # https://bugzilla.redhat.com/show_bug.cgi?id=552960
+ patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ if [[ ${CARCH} = "i686" ]]; then
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ # TODO: make separate glibc-xen package for i686
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${srcdir}/${pkgname}-${pkgver}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-obsolete-rpc \
+ --enable-kernel=2.6.32 \
+ --enable-bind-now --disable-profile \
+ --enable-stackguard-randomization \
+ --enable-multi-arch
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "/build-programs=/s#no#yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+ make -k check
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+
+ ln -s usr/lib ${pkgdir}/lib
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ make install_root=${pkgdir} install
+
+ rm -f ${pkgdir}/etc/ld.so.{cache,conf}
+
+ install -dm755 ${pkgdir}/{etc/rc.d,usr/{sbin,lib/{,locale,systemd/system,tmpfiles.d}}}
+
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+ sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
+ install -m755 ${srcdir}/nscd.rcd ${pkgdir}/etc/rc.d/nscd
+ install -m644 ${srcdir}/nscd.service ${pkgdir}/usr/lib/systemd/system
+ install -m644 ${srcdir}/nscd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/nscd.conf
+
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+ install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
+
+ # create /etc/locale.gen
+ install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+ sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
+ ${srcdir}/glibc-2.16.0/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+
+ if [[ ${CARCH} = "x86_64" ]]; then
+ # fix paths and compliance with binary blobs...
+ sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
+ ln -s usr/lib ${pkgdir}/lib64
+ fi
+
+ # Do not strip the following files for improved debugging support
+ # ("improved" as in not breaking gdb and valgrind...):
+ # ld-${pkgver}.so
+ # libc-${pkgver}.so
+ # libpthread-${pkgver}.so
+ # libthread_db-1.0.so
+
+ cd $pkgdir
+ strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+ usr/bin/{gencat,getconf,getent,iconv,locale,localedef} \
+ usr/bin/{makedb,pcprofiledump,pldd,rpcgen,sprof} \
+ usr/lib/getconf/* \
+ usr/sbin/{iconvconfig,nscd}
+ [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+ strip $STRIP_STATIC usr/lib/*.a
+
+ strip $STRIP_SHARED usr/lib/{libanl,libBrokenLocale,libcidn,libcrypt}-*.so \
+ usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \
+ usr/lib/{libdl,libm,libnsl,libresolv,librt,libutil}-*.so \
+ usr/lib/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib/{pt_chown,{audit,gconv}/*.so}
+}
diff --git a/abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch b/abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch
new file mode 100644
index 0000000..a894da9
--- /dev/null
+++ b/abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch
@@ -0,0 +1,51 @@
+--- a/resolv/res_query.c
++++ a/resolv/res_query.c
+@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp,
+ int *resplen2)
+ {
+ HEADER *hp = (HEADER *) answer;
++ HEADER *hp2;
+ int n, use_malloc = 0;
+ u_int oflags = statp->_flags;
+
+@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp,
+ /* __libc_res_nsend might have reallocated the buffer. */
+ hp = (HEADER *) *answerp;
+
+- /* We simplify the following tests by assigning HP to HP2. It
+- is easy to verify that this is the same as ignoring all
+- tests of HP2. */
+- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
+-
+- if (n < (int) sizeof (HEADER) && answerp2 != NULL
+- && *resplen2 > (int) sizeof (HEADER))
++ /* We simplify the following tests by assigning HP to HP2 or
++ vice versa. It is easy to verify that this is the same as
++ ignoring all tests of HP or HP2. */
++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
+ {
+- /* Special case of partial answer. */
+- assert (hp != hp2);
+- hp = hp2;
++ hp2 = hp;
+ }
+- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
+- && n > (int) sizeof (HEADER))
++ else
+ {
+- /* Special case of partial answer. */
+- assert (hp != hp2);
+- hp2 = hp;
++ hp2 = (HEADER *) *answerp2;
++ if (n < (int) sizeof (HEADER))
++ {
++ hp = hp2;
++ }
+ }
+
++ /* Make sure both hp and hp2 are defined */
++ assert((hp != NULL) && (hp2 != NULL));
++
+ if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
+ && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
+ #ifdef DEBUG
diff --git a/abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch b/abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch
new file mode 100644
index 0000000..d889472
--- /dev/null
+++ b/abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch
@@ -0,0 +1,226 @@
+diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
+@@ -137,7 +137,6 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 18f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
+ movl %ebp, %edx
+ xorl %esi, %esi
+@@ -151,9 +150,6 @@ __pthread_cond_wait:
+ sete 16(%esp)
+ je 19f
+
+- cmpl $-EAGAIN, %eax
+- je 91f
+-
+ /* Normal and PI futexes dont mix. Use normal futex functions only
+ if the kernel does not support the PI futex functions. */
+ cmpl $-ENOSYS, %eax
+@@ -398,78 +394,6 @@ __pthread_cond_wait:
+ #endif
+ call __lll_unlock_wake
+ jmp 11b
+-
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+-
+- /* Get internal lock. */
+- movl $1, %edx
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %edx, (%ebx)
+-#else
+- cmpxchgl %edx, cond_lock(%ebx)
+-#endif
+- jz 92f
+-
+-#if cond_lock == 0
+- movl %ebx, %edx
+-#else
+- leal cond_lock(%ebx), %edx
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_lock_wait
+-
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- addl $1, cond_futex(%ebx)
+- movl cond_futex(%ebx), %ebp
+-
+- /* Unlock. */
+- LOCK
+-#if cond_lock == 0
+- subl $1, (%ebx)
+-#else
+- subl $1, cond_lock(%ebx)
+-#endif
+- je 93f
+-#if cond_lock == 0
+- movl %ebx, %eax
+-#else
+- leal cond_lock(%ebx), %eax
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_unlock_wake
+-
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorl %ecx, %ecx
+- movl dep_mutex(%ebx), %edi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -642,10 +566,6 @@ __condvar_w_cleanup:
+ .long .LcleanupEND-.Lsub_cond_futex
+ .long __condvar_w_cleanup-.LSTARTCODE
+ .uleb128 0
+- .long .LcleanupSTART2-.LSTARTCODE
+- .long .LcleanupEND2-.LcleanupSTART2
+- .long __condvar_w_cleanup-.LSTARTCODE
+- .uleb128 0
+ .long .LcallUR-.LSTARTCODE
+ .long .LENDCODE-.LcallUR
+ .long 0
+Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
+diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
+@@ -23,7 +23,6 @@
+ #include <lowlevelcond.h>
+ #include <tcb-offsets.h>
+ #include <pthread-pi-defines.h>
+-#include <pthread-errnos.h>
+ #include <stap-probe.h>
+
+ #include <kernel-features.h>
+@@ -137,14 +136,11 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 61f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
+ movl $SYS_futex, %eax
+ syscall
+
+ movl $1, %r8d
+- cmpq $-EAGAIN, %rax
+- je 91f
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+@@ -331,70 +327,6 @@ __pthread_cond_wait:
+
+ 13: movq %r10, %rax
+ jmp 14b
+-
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+- movq 8(%rsp), %rdi
+-
+- /* Get internal lock. */
+- movl $1, %esi
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %esi, (%rdi)
+-#else
+- cmpxchgl %esi, cond_lock(%rdi)
+-#endif
+- jz 92f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- callq __lll_lock_wait
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- incl cond_futex(%rdi)
+- movl cond_futex(%rdi), %edx
+-
+- /* Release internal lock. */
+- LOCK
+-#if cond_lock == 0
+- decl (%rdi)
+-#else
+- decl cond_lock(%rdi)
+-#endif
+- jz 93f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- /* The call preserves %rdx. */
+- callq __lll_unlock_wake
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorq %r10, %r10
+- mov dep_mutex(%rdi), %R8_LP
+- leaq cond_futex(%rdi), %rdi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -547,15 +479,11 @@ __condvar_cleanup1:
+ .uleb128 .LcleanupSTART-.LSTARTCODE
+ .uleb128 .LcleanupEND-.LcleanupSTART
+ .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
+- .uleb128 .LcleanupSTART2-.LSTARTCODE
+- .uleb128 .LcleanupEND2-.LcleanupSTART2
+- .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
++ .uleb128 0
+ .uleb128 .LcallUR-.LSTARTCODE
+ .uleb128 .LENDCODE-.LcallUR
+ .uleb128 0
+- .uleb128 0
++ .uleb128 0
+ .Lcstend:
+
diff --git a/abs/not_built/core/glibc/glibc.install b/abs/not_built/core/glibc/glibc.install
new file mode 100644
index 0000000..7f85ade
--- /dev/null
+++ b/abs/not_built/core/glibc/glibc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
+
+post_upgrade() {
+ sbin/ldconfig -r .
+ [ -x sbin/init ] && sbin/init u
+ usr/sbin/locale-gen
+
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/abs/not_built/core/glibc/locale-gen b/abs/not_built/core/glibc/locale-gen
new file mode 100755
index 0000000..5aff344
--- /dev/null
+++ b/abs/not_built/core/glibc/locale-gen
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+ unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+ if [ -n "$locale" -a -n "$charset" ] ; then
+ true
+ else
+ echo "error: Bad entry '$locale $charset'"
+ false
+ fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+ case $locale in \#*) continue;; "") continue;; esac; \
+ is_entry_ok || continue
+ echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+ echo -n ".$charset"; \
+ echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+ echo -n '...'; \
+ if [ -f $LOCALES/$locale ]; then input=$locale; else \
+ input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+ localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+ echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."
diff --git a/abs/not_built/core/glibc/locale.gen.txt b/abs/not_built/core/glibc/locale.gen.txt
new file mode 100644
index 0000000..ccdd817
--- /dev/null
+++ b/abs/not_built/core/glibc/locale.gen.txt
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+# <locale> <charset>
+#
+# where <locale> is one of the locales given in /usr/share/i18n/locales
+# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+# Examples:
+# en_US ISO-8859-1
+# en_US.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE@euro ISO-8859-15
+#
+# The locale-gen command will generate all the locales,
+# placing them in /usr/lib/locale.
+#
+# A list of supported locales is included in this file.
+# Uncomment the ones you need.
+#
diff --git a/abs/not_built/core/glibc/nscd.rcd b/abs/not_built/core/glibc/nscd.rcd
new file mode 100755
index 0000000..4b48ab0
--- /dev/null
+++ b/abs/not_built/core/glibc/nscd.rcd
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+daemon_name="nscd"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+ PID=$(get_pid)
+ if [[ -z $PID ]]; then
+ rm -f /run/$daemon_name.pid
+ mkdir -p /run/nscd /var/db/nscd
+ rm -f /run/nscd/* /var/db/nscd/*
+ $daemon_name
+ if (( $? > 0 )); then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ [[ -n $PID ]] && nscd --shutdown &> /dev/null
+ if (( $? > 0 )); then
+ stat_fail
+ exit 1
+ else
+ rm -f /run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/abs/not_built/core/glibc/nscd.service b/abs/not_built/core/glibc/nscd.service
new file mode 100644
index 0000000..de5315e
--- /dev/null
+++ b/abs/not_built/core/glibc/nscd.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Name Service Cache Daemon
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/nscd
+ExecStop=/usr/sbin/nscd --shutdown
+ExecReload=/usr/sbin/nscd -i passwd
+ExecReload=/usr/sbin/nscd -i group
+ExecReload=/usr/sbin/nscd -i hosts
+ExecReload=/usr/sbin/nscd -i service
+Restart=always
+PIDFile=/run/nscd/nscd.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/not_built/core/glibc/nscd.tmpfiles b/abs/not_built/core/glibc/nscd.tmpfiles
new file mode 100644
index 0000000..8a24a78
--- /dev/null
+++ b/abs/not_built/core/glibc/nscd.tmpfiles
@@ -0,0 +1 @@
+d /run/nscd 0755 root root
diff --git a/abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch b/abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch
new file mode 100644
index 0000000..121941c
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch
@@ -0,0 +1,623 @@
+Fix NX segfaulting on amd64.
+
+Patch by Peter Jones.
+
+http://lists.gnu.org/archive/html/bug-grub/2005-03/msg00011.html
+
+--- grub-0.97/grub/asmstub.c
++++ grub-0.97/grub/asmstub.c
+@@ -42,6 +42,7 @@
+ #include <sys/time.h>
+ #include <termios.h>
+ #include <signal.h>
++#include <sys/mman.h>
+
+ #ifdef __linux__
+ # include <sys/ioctl.h> /* ioctl */
+@@ -79,7 +80,7 @@
+ struct apm_info apm_bios_info;
+
+ /* Emulation requirements. */
+-char *grub_scratch_mem = 0;
++void *grub_scratch_mem = 0;
+
+ struct geometry *disks = 0;
+
+@@ -103,14 +104,62 @@
+ static unsigned int serial_speed;
+ #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
+
++/* This allocates page-aligned storage of the specified size, which must be
++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
++ */
++#ifdef __linux__
++static void *
++grub_mmap_alloc(size_t len)
++{
++ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
++
++#ifdef MAP_32BIT
++ mmap_flags |= MAP_32BIT;
++#endif
++ /* Mark the simulated stack executable, as GCC uses stack trampolines
++ * to implement nested functions. */
++ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
++}
++#else /* !defined(__linux__) */
++static void *
++grub_mmap_alloc(size_t len)
++{
++ int fd = 0, offset = 0, ret = 0;
++ void *pa = MAP_FAILED;
++ char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
++ errno_t e;
++
++ fd = mkstemp(template);
++ if (fd < 0)
++ return pa;
++
++ unlink(template);
++
++ ret = ftruncate(fd, len);
++ if (ret < 0)
++ return pa;
++
++ /* Mark the simulated stack executable, as GCC uses stack trampolines
++ * to implement nested functions. */
++ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
++ MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
++
++ e = errno;
++ close(fd);
++ errno = e;
++ return pa;
++}
++#endif /* defined(__linux__) */
++
+ /* The main entry point into this mess. */
+ int
+ grub_stage2 (void)
+ {
+ /* These need to be static, because they survive our stack transitions. */
+ static int status = 0;
+- static char *realstack;
+- char *scratch, *simstack;
++ static void *realstack;
++ void *simstack_alloc_base, *simstack;
++ size_t simstack_size, page_size;
+ int i;
+
+ /* We need a nested function so that we get a clean stack frame,
+@@ -140,9 +189,35 @@
+ }
+
+ assert (grub_scratch_mem == 0);
+- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
+- assert (scratch);
+- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
++
++ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
++ * make sure the memory is aligned to a multiple of the system's
++ * page size */
++ page_size = sysconf (_SC_PAGESIZE);
++ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
++ if (simstack_size % page_size)
++ {
++ /* If we're not on a page_size boundary, round up to the next one */
++ simstack_size &= ~(page_size-1);
++ simstack_size += page_size;
++ }
++
++ /* Add one for a PROT_NONE boundary page at each end. */
++ simstack_size += 2 * page_size;
++
++ simstack_alloc_base = grub_mmap_alloc(simstack_size);
++ assert (simstack_alloc_base != MAP_FAILED);
++
++ /* mark pages above and below our simstack area as innaccessable.
++ * If the implementation we're using doesn't support that, then the
++ * new protection modes are undefined. It's safe to just ignore
++ * them, though. It'd be nice if we knew that we'd get a SEGV for
++ * touching the area, but that's all. it'd be nice to have. */
++ mprotect (simstack_alloc_base, page_size, PROT_NONE);
++ mprotect ((void *)((unsigned long)simstack_alloc_base +
++ simstack_size - page_size), page_size, PROT_NONE);
++
++ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
+
+ /* FIXME: simulate the memory holes using mprot, if available. */
+
+@@ -215,7 +290,7 @@
+ device_map = 0;
+ free (disks);
+ disks = 0;
+- free (scratch);
++ munmap(simstack_alloc_base, simstack_size);
+ grub_scratch_mem = 0;
+
+ if (serial_device)
+--- grub-0.97/stage2/builtins.c
++++ grub-0.97/stage2/builtins.c
+@@ -131,63 +131,98 @@
+ }
+
+
++/* blocklist_read_helper nee disk_read_blocklist_func was a nested
++ * function, to which pointers were taken and exposed globally. Even
++ * in the GNU-C nested functions extension, they have local linkage,
++ * and aren't guaranteed to be accessable *at all* outside of their
++ * containing scope.
++ *
++ * Above and beyond all of that, the variables within blocklist_func_context
++ * are originally local variables, with local (not even static) linkage,
++ * from within blocklist_func. These were each referenced by
++ * disk_read_blocklist_func, which is only called from other functions
++ * through a globally scoped pointer.
++ *
++ * The documentation in GCC actually uses the words "all hell will break
++ * loose" to describe this scenario.
++ *
++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
++ * about it (possibly because of the scoping madness?)
++ */
++
++static struct {
++ int start_sector;
++ int num_sectors;
++ int num_entries;
++ int last_length;
++} blocklist_func_context = {
++ .start_sector = 0,
++ .num_sectors = 0,
++ .num_entries = 0,
++ .last_length = 0
++};
++
++/* Collect contiguous blocks into one entry as many as possible,
++ and print the blocklist notation on the screen. */
++static void
++blocklist_read_helper (int sector, int offset, int length)
++{
++ int *start_sector = &blocklist_func_context.start_sector;
++ int *num_sectors = &blocklist_func_context.num_sectors;
++ int *num_entries = &blocklist_func_context.num_entries;
++ int *last_length = &blocklist_func_context.last_length;
++
++ if (*num_sectors > 0)
++ {
++ if (*start_sector + *num_sectors == sector
++ && offset == 0 && *last_length == SECTOR_SIZE)
++ {
++ *num_sectors++;
++ *last_length = length;
++ return;
++ }
++ else
++ {
++ if (*last_length == SECTOR_SIZE)
++ grub_printf ("%s%d+%d", *num_entries ? "," : "",
++ *start_sector - part_start, *num_sectors);
++ else if (*num_sectors > 1)
++ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
++ *start_sector - part_start, *num_sectors-1,
++ *start_sector + *num_sectors-1 - part_start,
++ *last_length);
++ else
++ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
++ *start_sector - part_start, *last_length);
++ *num_entries++;
++ *num_sectors = 0;
++ }
++ }
++
++ if (offset > 0)
++ {
++ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
++ sector-part_start, offset, offset+length);
++ *num_entries++;
++ }
++ else
++ {
++ *start_sector = sector;
++ *num_sectors = 1;
++ *last_length = length;
++ }
++}
++
+ /* blocklist */
+ static int
+ blocklist_func (char *arg, int flags)
+ {
+ char *dummy = (char *) RAW_ADDR (0x100000);
+- int start_sector;
+- int num_sectors = 0;
+- int num_entries = 0;
+- int last_length = 0;
+-
+- auto void disk_read_blocklist_func (int sector, int offset, int length);
+-
+- /* Collect contiguous blocks into one entry as many as possible,
+- and print the blocklist notation on the screen. */
+- auto void disk_read_blocklist_func (int sector, int offset, int length)
+- {
+- if (num_sectors > 0)
+- {
+- if (start_sector + num_sectors == sector
+- && offset == 0 && last_length == SECTOR_SIZE)
+- {
+- num_sectors++;
+- last_length = length;
+- return;
+- }
+- else
+- {
+- if (last_length == SECTOR_SIZE)
+- grub_printf ("%s%d+%d", num_entries ? "," : "",
+- start_sector - part_start, num_sectors);
+- else if (num_sectors > 1)
+- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
+- start_sector - part_start, num_sectors-1,
+- start_sector + num_sectors-1 - part_start,
+- last_length);
+- else
+- grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
+- start_sector - part_start, last_length);
+- num_entries++;
+- num_sectors = 0;
+- }
+- }
+-
+- if (offset > 0)
+- {
+- grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
+- sector-part_start, offset, offset+length);
+- num_entries++;
+- }
+- else
+- {
+- start_sector = sector;
+- num_sectors = 1;
+- last_length = length;
+- }
+- }
+
++ int *start_sector = &blocklist_func_context.start_sector;
++ int *num_sectors = &blocklist_func_context.num_sectors;
++ int *num_entries = &blocklist_func_context.num_entries;
++
+ /* Open the file. */
+ if (! grub_open (arg))
+ return 1;
+@@ -204,15 +241,15 @@
+ grub_printf (")");
+
+ /* Read in the whole file to DUMMY. */
+- disk_read_hook = disk_read_blocklist_func;
++ disk_read_hook = blocklist_read_helper;
+ if (! grub_read (dummy, -1))
+ goto fail;
+
+ /* The last entry may not be printed yet. Don't check if it is a
+ * full sector, since it doesn't matter if we read too much. */
+- if (num_sectors > 0)
+- grub_printf ("%s%d+%d", num_entries ? "," : "",
+- start_sector - part_start, num_sectors);
++ if (*num_sectors > 0)
++ grub_printf ("%s%d+%d", *num_entries ? "," : "",
++ *start_sector - part_start, *num_sectors);
+
+ grub_printf ("\n");
+
+@@ -1868,6 +1905,77 @@
+
+
+ /* install */
++static struct {
++ int saved_sector;
++ int installaddr;
++ int installlist;
++ char *stage2_first_buffer;
++} install_func_context = {
++ .saved_sector = 0,
++ .installaddr = 0,
++ .installlist = 0,
++ .stage2_first_buffer = NULL,
++};
++
++/* Save the first sector of Stage2 in STAGE2_SECT. */
++/* Formerly disk_read_savesect_func with local scope inside install_func */
++static void
++install_savesect_helper(int sector, int offset, int length)
++{
++ if (debug)
++ printf ("[%d]", sector);
++
++ /* ReiserFS has files which sometimes contain data not aligned
++ on sector boundaries. Returning an error is better than
++ silently failing. */
++ if (offset != 0 || length != SECTOR_SIZE)
++ errnum = ERR_UNALIGNED;
++
++ install_func_context.saved_sector = sector;
++}
++
++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */
++/* Formerly disk_read_blocklist_func with local scope inside install_func */
++static void
++install_blocklist_helper (int sector, int offset, int length)
++{
++ int *installaddr = &install_func_context.installaddr;
++ int *installlist = &install_func_context.installlist;
++ char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++ /* Was the last sector full? */
++ static int last_length = SECTOR_SIZE;
++
++ if (debug)
++ printf("[%d]", sector);
++
++ if (offset != 0 || last_length != SECTOR_SIZE)
++ {
++ /* We found a non-sector-aligned data block. */
++ errnum = ERR_UNALIGNED;
++ return;
++ }
++
++ last_length = length;
++
++ if (*((unsigned long *) (*installlist - 4))
++ + *((unsigned short *) *installlist) != sector
++ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
++ {
++ *installlist -= 8;
++
++ if (*((unsigned long *) (*installlist - 8)))
++ errnum = ERR_WONT_FIT;
++ else
++ {
++ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
++ *((unsigned long *) (*installlist - 4)) = sector;
++ }
++ }
++
++ *((unsigned short *) *installlist) += 1;
++ *installaddr += 512;
++}
++
+ static int
+ install_func (char *arg, int flags)
+ {
+@@ -1875,8 +1983,12 @@
+ char *stage1_buffer = (char *) RAW_ADDR (0x100000);
+ char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
+ char *old_sect = stage2_buffer + SECTOR_SIZE;
+- char *stage2_first_buffer = old_sect + SECTOR_SIZE;
+- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
++ /* stage2_first_buffer used to be defined as:
++ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */
++ char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++ /* and stage2_second_buffer was:
++ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
++ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
+ /* XXX: Probably SECTOR_SIZE is reasonable. */
+ char *config_filename = stage2_second_buffer + SECTOR_SIZE;
+ char *dummy = config_filename + SECTOR_SIZE;
+@@ -1885,10 +1997,11 @@
+ int src_drive, src_partition, src_part_start;
+ int i;
+ struct geometry dest_geom, src_geom;
+- int saved_sector;
++ int *saved_sector = &install_func_context.saved_sector;
+ int stage2_first_sector, stage2_second_sector;
+ char *ptr;
+- int installaddr, installlist;
++ int *installaddr = &install_func_context.installaddr;
++ int *installlist = &install_func_context.installlist;
+ /* Point to the location of the name of a configuration file in Stage 2. */
+ char *config_file_location;
+ /* If FILE is a Stage 1.5? */
+@@ -1897,67 +2010,13 @@
+ int is_open = 0;
+ /* If LBA is forced? */
+ int is_force_lba = 0;
+- /* Was the last sector full? */
+- int last_length = SECTOR_SIZE;
+-
++
++ *stage2_first_buffer = old_sect + SECTOR_SIZE;
+ #ifdef GRUB_UTIL
+ /* If the Stage 2 is in a partition mounted by an OS, this will store
+ the filename under the OS. */
+ char *stage2_os_file = 0;
+ #endif /* GRUB_UTIL */
+-
+- auto void disk_read_savesect_func (int sector, int offset, int length);
+- auto void disk_read_blocklist_func (int sector, int offset, int length);
+-
+- /* Save the first sector of Stage2 in STAGE2_SECT. */
+- auto void disk_read_savesect_func (int sector, int offset, int length)
+- {
+- if (debug)
+- printf ("[%d]", sector);
+-
+- /* ReiserFS has files which sometimes contain data not aligned
+- on sector boundaries. Returning an error is better than
+- silently failing. */
+- if (offset != 0 || length != SECTOR_SIZE)
+- errnum = ERR_UNALIGNED;
+-
+- saved_sector = sector;
+- }
+-
+- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
+- INSTALLSECT. */
+- auto void disk_read_blocklist_func (int sector, int offset, int length)
+- {
+- if (debug)
+- printf("[%d]", sector);
+-
+- if (offset != 0 || last_length != SECTOR_SIZE)
+- {
+- /* We found a non-sector-aligned data block. */
+- errnum = ERR_UNALIGNED;
+- return;
+- }
+-
+- last_length = length;
+-
+- if (*((unsigned long *) (installlist - 4))
+- + *((unsigned short *) installlist) != sector
+- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
+- {
+- installlist -= 8;
+-
+- if (*((unsigned long *) (installlist - 8)))
+- errnum = ERR_WONT_FIT;
+- else
+- {
+- *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
+- *((unsigned long *) (installlist - 4)) = sector;
+- }
+- }
+-
+- *((unsigned short *) installlist) += 1;
+- installaddr += 512;
+- }
+
+ /* First, check the GNU-style long option. */
+ while (1)
+@@ -1987,10 +2049,10 @@
+ addr = skip_to (0, file);
+
+ /* Get the installation address. */
+- if (! safe_parse_maxint (&addr, &installaddr))
++ if (! safe_parse_maxint (&addr, installaddr))
+ {
+ /* ADDR is not specified. */
+- installaddr = 0;
++ *installaddr = 0;
+ ptr = addr;
+ errnum = 0;
+ }
+@@ -2084,17 +2146,17 @@
+ = (dest_drive & BIOS_FLAG_FIXED_DISK);
+
+ /* Read the first sector of Stage 2. */
+- disk_read_hook = disk_read_savesect_func;
+- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++ disk_read_hook = install_savesect_helper;
++ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
+- stage2_first_sector = saved_sector;
++ stage2_first_sector = *saved_sector;
+
+ /* Read the second sector of Stage 2. */
+ if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
+- stage2_second_sector = saved_sector;
++ stage2_second_sector = *saved_sector;
+
+ /* Check for the version of Stage 2. */
+ if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
+@@ -2110,27 +2172,27 @@
+
+ /* If INSTALLADDR is not specified explicitly in the command-line,
+ determine it by the Stage 2 id. */
+- if (! installaddr)
++ if (! *installaddr)
+ {
+ if (! is_stage1_5)
+ /* Stage 2. */
+- installaddr = 0x8000;
++ *installaddr = 0x8000;
+ else
+ /* Stage 1.5. */
+- installaddr = 0x2000;
++ *installaddr = 0x2000;
+ }
+
+ *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
+ = stage2_first_sector;
+ *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
+- = installaddr;
++ = *installaddr;
+ *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
+- = installaddr >> 4;
++ = *installaddr >> 4;
+
+- i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
++ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
+ while (*((unsigned long *) i))
+ {
+- if (i < (int) stage2_first_buffer
++ if (i < (int) *stage2_first_buffer
+ || (*((int *) (i - 4)) & 0x80000000)
+ || *((unsigned short *) i) >= 0xA00
+ || *((short *) (i + 2)) == 0)
+@@ -2144,13 +2206,13 @@
+ i -= 8;
+ }
+
+- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
+- installaddr += SECTOR_SIZE;
++ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
++ *installaddr += SECTOR_SIZE;
+
+ /* Read the whole of Stage2 except for the first sector. */
+ grub_seek (SECTOR_SIZE);
+
+- disk_read_hook = disk_read_blocklist_func;
++ disk_read_hook = install_blocklist_helper;
+ if (! grub_read (dummy, -1))
+ goto fail;
+
+@@ -2233,7 +2295,7 @@
+ /* Skip the first sector. */
+ grub_seek (SECTOR_SIZE);
+
+- disk_read_hook = disk_read_savesect_func;
++ disk_read_hook = install_savesect_helper;
+ if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+ goto fail;
+
+@@ -2303,7 +2365,7 @@
+ else
+ #endif /* GRUB_UTIL */
+ {
+- if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
++ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
+ goto fail;
+ }
+ }
+@@ -2325,7 +2387,7 @@
+ goto fail;
+ }
+
+- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
+ {
+ fclose (fp);
+ errnum = ERR_WRITE;
+@@ -2352,7 +2414,7 @@
+ goto fail;
+
+ if (! devwrite (stage2_first_sector - src_part_start, 1,
+- stage2_first_buffer))
++ *stage2_first_buffer))
+ goto fail;
+
+ if (! devwrite (stage2_second_sector - src_part_start, 1,
+--- grub-0.97/stage2/shared.h
++++ grub-0.97/stage2/shared.h
+@@ -36,8 +36,8 @@
+
+ /* Maybe redirect memory requests through grub_scratch_mem. */
+ #ifdef GRUB_UTIL
+-extern char *grub_scratch_mem;
+-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
++extern void *grub_scratch_mem;
++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
+ # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
+ #else
+ # define RAW_ADDR(x) (x)
diff --git a/abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff b/abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff
new file mode 100644
index 0000000..ccf5f3e
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff
@@ -0,0 +1,16 @@
+--- grub-0.96/stage2/boot.c
++++ grub-0.96/stage2/boot.c
+@@ -824,8 +824,11 @@
+ moveto = (mbi.mem_upper + 0x400) << 10;
+
+ moveto = (moveto - len) & 0xfffff000;
+- max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
+- ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
++ max_addr = LINUX_INITRD_MAX_ADDRESS;
++ if (lh->header == LINUX_MAGIC_SIGNATURE &&
++ lh->version >= 0x0203 &&
++ lh->initrd_addr_max < max_addr)
++ max_addr = lh->initrd_addr_max;
+ if (moveto + len >= max_addr)
+ moveto = (max_addr - len) & 0xfffff000;
+
diff --git a/abs/not_built/core/grub-gfx/PKGBUILD b/abs/not_built/core/grub-gfx/PKGBUILD
new file mode 100644
index 0000000..5d95294
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/PKGBUILD
@@ -0,0 +1,106 @@
+# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: judd <jvinet@zeroflux.org>
+# Contributor: Mario A. Vazquez
+# Contributor: Jerzy Goca <juras256@epf.pl>
+
+pkgname=grub
+pkgver=0.97
+pkgrel=43
+pkgdesc="A GNU multiboot boot loader"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnu.org/software/grub/"
+depends=('ncurses')
+makedepends=('automake>=1.10' 'autoconf>=2.61' 'patch')
+#conflicts=('grub')
+groups=('base')
+provides=('grub')
+source=(ftp://alpha.gnu.org/gnu/grub/grub-$pkgver.tar.gz \
+ menu.lst install-grub grub-0.97-graphics.patch \
+ splash.xpm.gz grub-inode-size.patch \
+ 040_all_grub-0.96-nxstack.patch \
+ 05-grub-0.97-initrdaddr.diff ext4.patch \
+ i2o.patch special-devices.patch more-raid.patch intelmac.patch)
+backup=('boot/grub/menu.lst')
+install=grub-gfx.install
+
+build() {
+ cd $startdir/src/grub-$pkgver
+
+ #set destination architecture here
+ DESTARCH="i686"
+ #DESTARCH="x86_64"
+
+ # graphics patch
+ patch -p1 < ../grub-0.97-graphics.patch || return 1
+
+ # optimizations break the build -- disable them
+ # adding special devices to grub, patches are from fedora
+ patch -Np1 -i ../special-devices.patch || return 1
+ patch -Np1 -i ../i2o.patch || return 1
+ patch -Np1 -i ../more-raid.patch || return 1
+ patch -Np1 -i ../intelmac.patch || return 1
+ patch -Np1 -i ../grub-inode-size.patch || return 1
+ patch -Np1 -i ../ext4.patch || return 1
+
+ # correcting problems for new wersion of autotools
+ sed -i -e'/^AC_PROG_CC/ a\AM_PROG_CC_C_O\ ' configure.ac
+ sed -i -e'/^AC_PROG_CC/ a\AM_PROG_AS\ ' configure.ac
+ aclocal
+ autoconf
+ automake
+
+ #arch64 fixes for static build
+ if [ "$CARCH" = "x86_64" ]; then
+ echo "this package has to be build on i686, won't compile on x86_64"
+ sleep 5
+ else
+ if [ "$DESTARCH" = "x86_64" ]; then
+ # patch from gentoo for fixing a segfault
+ patch -Np1 -i ../040_all_grub-0.96-nxstack.patch || return 1
+ # patch from frugalware to make it boot when more than 2GB ram installed
+ patch -Np1 -i ../05-grub-0.97-initrdaddr.diff || return 1
+ CFLAGS="-static" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin
+ else
+ CFLAGS= ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin
+ fi
+ fi
+
+ CFLAGS= make || return 1
+ make DESTDIR=$startdir/pkg install
+ install -D -m644 ../menu.lst $startdir/pkg/boot/grub/menu.lst
+ install -D -m755 ../install-grub $startdir/pkg/sbin/install-grub
+
+ # symlink for compatibility with the <=0.7 installer
+ mkdir -p $startdir/pkg/usr/share
+ ln -s ../lib/grub $startdir/pkg/usr/share/grub
+
+ # splashimage xpm install
+ install -D -m644 $startdir/splash.xpm.gz $startdir/pkg/boot/grub/splash.xpm.gz
+
+ # Create a symlink to people that was using it
+ pushd $startdir/pkg/boot/grub/
+ ln -s splash.xpm.gz arch.xpm.gz
+ popd
+
+ rm -f $pkgdir/usr/share/info/dir || return 1
+
+ if [ "$DESTARCH" = "x86_64" ]; then
+ # fool makepkg into building a x86_64 package
+ export CARCH="x86_64"
+ fi
+
+}
+md5sums=('cd3f3eb54446be6003156158d51f4884'
+ '58cfec4abda85307f779147ab9a6be48'
+ '3182c4ae4963a16930bc772bba89dacf'
+ '12f043616b51ce2ba82e46c9186a528d'
+ '342f59f24cf5de5f013eacda68e617eb'
+ 'ada26cbc681907823cc4ff2a55b97866'
+ 'eb9d69c46af3a0667c1f651817d7f075'
+ 'ccd2d757e79e3a03dc19ede7391ed328'
+ '39e0f9a05b7e04aceb24fc7bc4893e3d'
+ '826fdbf446067f9861baf9f6a69a4583'
+ '49f6d4bcced0bc8bbcff273f3254bbfa'
+ 'f41f702014a064918d7afc6fc23baa6e'
+ '175dc6b9f4ab94e8056c3afb3e34460a')
diff --git a/abs/not_built/core/grub-gfx/ext4.patch b/abs/not_built/core/grub-gfx/ext4.patch
new file mode 100644
index 0000000..8a2f9bd
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/ext4.patch
@@ -0,0 +1,263 @@
+diff -ruNp grub-0.97/stage2/fsys_ext2fs.c grub-0.97-patch/stage2/fsys_ext2fs.c
+--- grub-0.97/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200
++++ grub-0.97-patch/stage2/fsys_ext2fs.c 2007-12-29 16:25:19.000000000
++0100
+@@ -51,6 +51,9 @@ typedef unsigned int __u32;
+ #define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
+ #define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
+
++/* Inode flags */
++#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
++
+ /* include/linux/ext2_fs.h */
+ struct ext2_super_block
+ {
+@@ -191,6 +194,42 @@ struct ext2_dir_entry
+ #define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
+ ~EXT2_DIR_ROUND)
+
++/* linux/ext4_fs_extents.h */
++/*
++ * This is the extent on-disk structure.
++ * It's used at the bottom of the tree.
++ */
++struct ext4_extent {
++ __u32 ee_block; /* first logical block extent covers */
++ __u16 ee_len; /* number of blocks covered by extent */
++ __u16 ee_start_hi; /* high 16 bits of physical block */
++ __u32 ee_start; /* low 32 bits of physical block */
++};
++
++/*
++ * This is index on-disk structure.
++ * It's used at all the levels except the bottom.
++ */
++struct ext4_extent_idx {
++ __u32 ei_block; /* index covers logical blocks from 'block' */
++ __u32 ei_leaf; /* pointer to the physical block of the next *
++ * level. leaf or next index could be there */
++ __u16 ei_leaf_hi; /* high 16 bits of physical block */
++ __u16 ei_unused;
++};
++
++/*
++ * Each block (leaves and indexes), even inode-stored has header.
++ */
++struct ext4_extent_header {
++ __u16 eh_magic; /* probably will support different formats */
++ __u16 eh_entries; /* number of valid entries */
++ __u16 eh_max; /* capacity of store in entries */
++ __u16 eh_depth; /* has tree real underlying blocks? */
++ __u32 eh_generation; /* generation of the tree */
++};
++
++#define EXT4_EXT_MAGIC 0xf30a
+
+ /* ext2/super.c */
+ #define log2(n) ffz(~(n))
+@@ -279,6 +318,26 @@ ext2_rdfsb (int fsblock, int buffer)
+ EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer);
+ }
+
++/* Walk through extents index tree to find the good leaf */
++static struct ext4_extent_header *
++ext4_recurse_extent_index(struct ext4_extent_header *extent_block, int logical_block)
++{
++ int i;
++ struct ext4_extent_idx *index = (struct ext4_extent_idx *) (extent_block + 1);
++ if (extent_block->eh_magic != EXT4_EXT_MAGIC)
++ return NULL;
++ if (extent_block->eh_depth == 0)
++ return extent_block;
++ for (i = 0; i < extent_block->eh_entries; i++)
++ {
++ if (logical_block < index[i].ei_block)
++ break;
++ }
++ if (i == 0 || !ext2_rdfsb(index[i-1].ei_leaf, DATABLOCK1))
++ return NULL;
++ return (ext4_recurse_extent_index((struct ext4_extent_header *) DATABLOCK1, logical_block));
++}
++
+ /* from
+ ext2/inode.c:ext2_bmap()
+ */
+--- grub-0.97/stage2/fsys_ext2fs.c~ 2008-12-28 20:19:00.000000000 +0100
++++ grub-0.97/stage2/fsys_ext2fs.c 2008-12-28 20:19:00.000000000 +0100
+@@ -366,83 +366,106 @@
+ }
+ printf ("logical block %d\n", logical_block);
+ #endif /* E2DEBUG */
+-
+- /* if it is directly pointed to by the inode, return that physical addr */
+- if (logical_block < EXT2_NDIR_BLOCKS)
+- {
+-#ifdef E2DEBUG
+- printf ("returning %d\n", (unsigned char *) (INODE->i_block[logical_block]));
+- printf ("returning %d\n", INODE->i_block[logical_block]);
+-#endif /* E2DEBUG */
+- return INODE->i_block[logical_block];
+- }
+- /* else */
+- logical_block -= EXT2_NDIR_BLOCKS;
+- /* try the indirect block */
+- if (logical_block < EXT2_ADDR_PER_BLOCK (SUPERBLOCK))
++ /* standard ext2 inode */
++ if (!(INODE->i_flags & EXT4_EXTENTS_FL))
+ {
+- if (mapblock1 != 1
+- && !ext2_rdfsb (INODE->i_block[EXT2_IND_BLOCK], DATABLOCK1))
+- {
+- errnum = ERR_FSYS_CORRUPT;
+- return -1;
+- }
+- mapblock1 = 1;
+- return ((__u32 *) DATABLOCK1)[logical_block];
+- }
+- /* else */
+- logical_block -= EXT2_ADDR_PER_BLOCK (SUPERBLOCK);
+- /* now try the double indirect block */
+- if (logical_block < (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2)))
+- {
+- int bnum;
+- if (mapblock1 != 2
+- && !ext2_rdfsb (INODE->i_block[EXT2_DIND_BLOCK], DATABLOCK1))
+- {
+- errnum = ERR_FSYS_CORRUPT;
+- return -1;
+- }
+- mapblock1 = 2;
+- if ((bnum = (((__u32 *) DATABLOCK1)
+- [logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)]))
+- != mapblock2
+- && !ext2_rdfsb (bnum, DATABLOCK2))
+- {
+- errnum = ERR_FSYS_CORRUPT;
+- return -1;
+- }
+- mapblock2 = bnum;
++ /* if it is directly pointed to by the inode, return that physical addr */
++ if (logical_block < EXT2_NDIR_BLOCKS)
++ {
++#ifdef E2DEBUG
++ printf ("returning %d\n", (unsigned char *) (INODE->i_block[logical_block]));
++ printf ("returning %d\n", INODE->i_block[logical_block]);
++#endif /* E2DEBUG */
++ return INODE->i_block[logical_block];
++ }
++ /* else */
++ logical_block -= EXT2_NDIR_BLOCKS;
++ /* try the indirect block */
++ if (logical_block < EXT2_ADDR_PER_BLOCK (SUPERBLOCK))
++ {
++ if (mapblock1 != 1
++ && !ext2_rdfsb (INODE->i_block[EXT2_IND_BLOCK], DATABLOCK1))
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
++ mapblock1 = 1;
++ return ((__u32 *) DATABLOCK1)[logical_block];
++ }
++ /* else */
++ logical_block -= EXT2_ADDR_PER_BLOCK (SUPERBLOCK);
++ /* now try the double indirect block */
++ if (logical_block < (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2)))
++ {
++ int bnum;
++ if (mapblock1 != 2
++ && !ext2_rdfsb (INODE->i_block[EXT2_DIND_BLOCK], DATABLOCK1))
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
++ mapblock1 = 2;
++ if ((bnum = (((__u32 *) DATABLOCK1)
++ [logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)]))
++ != mapblock2
++ && !ext2_rdfsb (bnum, DATABLOCK2))
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
++ mapblock2 = bnum;
++ return ((__u32 *) DATABLOCK2)
++ [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
++ }
++ /* else */
++ mapblock2 = -1;
++ logical_block -= (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2));
++ if (mapblock1 != 3
++ && !ext2_rdfsb (INODE->i_block[EXT2_TIND_BLOCK], DATABLOCK1))
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
++ mapblock1 = 3;
++ if (!ext2_rdfsb (((__u32 *) DATABLOCK1)
++ [logical_block >> (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)
++ * 2)],
++ DATABLOCK2))
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
++ if (!ext2_rdfsb (((__u32 *) DATABLOCK2)
++ [(logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK))
++ & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)],
++ DATABLOCK2))
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
+ return ((__u32 *) DATABLOCK2)
+- [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
+- }
+- /* else */
+- mapblock2 = -1;
+- logical_block -= (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2));
+- if (mapblock1 != 3
+- && !ext2_rdfsb (INODE->i_block[EXT2_TIND_BLOCK], DATABLOCK1))
+- {
+- errnum = ERR_FSYS_CORRUPT;
+- return -1;
++ [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
+ }
+- mapblock1 = 3;
+- if (!ext2_rdfsb (((__u32 *) DATABLOCK1)
+- [logical_block >> (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)
+- * 2)],
+- DATABLOCK2))
+- {
+- errnum = ERR_FSYS_CORRUPT;
+- return -1;
+- }
+- if (!ext2_rdfsb (((__u32 *) DATABLOCK2)
+- [(logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK))
+- & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)],
+- DATABLOCK2))
++ /* inode is in extents format */
++ else
+ {
++ int i;
++ struct ext4_extent_header *extent_hdr = ext4_recurse_extent_index((struct ext4_extent_header *) INODE->i_block, logical_block);
++ struct ext4_extent *extent = (struct ext4_extent *) (extent_hdr + 1);
++ if ( extent_hdr == NULL || extent_hdr->eh_magic != EXT4_EXT_MAGIC)
++ {
++ errnum = ERR_FSYS_CORRUPT;
++ return -1;
++ }
++ for (i = 0; i<extent_hdr->eh_entries; i++)
++ {
++ if (extent[i].ee_block <= logical_block && logical_block < extent[i].ee_block + extent[i].ee_len && !(extent[i].ee_len>>15))
++ return (logical_block - extent[i].ee_block + extent[i].ee_start);
++ }
++ /* We should not arrive here */
+ errnum = ERR_FSYS_CORRUPT;
+ return -1;
+ }
+- return ((__u32 *) DATABLOCK2)
+- [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
+ }
+
+ /* preconditions: all preconds of ext2fs_block_map */
diff --git a/abs/not_built/core/grub-gfx/grub-0.97-graphics.patch b/abs/not_built/core/grub-gfx/grub-0.97-graphics.patch
new file mode 100644
index 0000000..e0baa90
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/grub-0.97-graphics.patch
@@ -0,0 +1,1293 @@
+diff -urpN grub-0.97/configure.ac grub-0.97-gfx/configure.ac
+--- grub-0.97/configure.ac 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/configure.ac 2005-10-13 16:27:35.000000000 -0400
+@@ -595,6 +595,11 @@ AC_ARG_ENABLE(diskless,
+ [ --enable-diskless enable diskless support])
+ AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
+
++dnl Graphical splashscreen support
++AC_ARG_ENABLE(graphics,
++ [ --disable-graphics disable graphics terminal support])
++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
++
+ dnl Hercules terminal
+ AC_ARG_ENABLE(hercules,
+ [ --disable-hercules disable hercules terminal support])
+diff -urpN grub-0.97/stage2/Makefile.am grub-0.97-gfx/stage2/Makefile.am
+--- grub-0.97/stage2/Makefile.am 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/Makefile.am 2005-10-13 16:27:35.000000000 -0400
+@@ -7,7 +7,7 @@ noinst_HEADERS = apic.h defs.h dir.h dis
+ fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+ imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+ nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+
+ # For <stage1.h>.
+@@ -19,7 +19,7 @@ libgrub_a_SOURCES = boot.c builtins.c ch
+ disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+- terminfo.c tparm.c
++ terminfo.c tparm.c graphics.c
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+ -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+@@ -79,8 +79,14 @@ else
+ HERCULES_FLAGS =
+ endif
+
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
+ STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
+
+ STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
+ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+@@ -90,7 +96,8 @@ pre_stage2_exec_SOURCES = asm.S bios.c b
+ cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+ fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+ fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \
++ graphics.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+diff -urpN grub-0.97/stage2/asm.S grub-0.97-gfx/stage2/asm.S
+--- grub-0.97/stage2/asm.S 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/asm.S 2005-10-13 16:27:35.000000000 -0400
+@@ -2216,6 +2216,156 @@ ENTRY(console_setcursor)
+ pop %ebx
+ pop %ebp
+ ret
++
++/* graphics mode functions */
++#ifdef SUPPORT_GRAPHICS
++VARIABLE(cursorX)
++.word 0
++VARIABLE(cursorY)
++.word 0
++VARIABLE(cursorCount)
++.word 0
++VARIABLE(cursorBuf)
++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
++
++
++/*
++ * int set_videomode(mode)
++ * BIOS call "INT 10H Function 0h" to set video mode
++ * Call with %ah = 0x0
++ * %al = video mode
++ * Returns old videomode.
++ */
++ENTRY(set_videomode)
++ push %ebp
++ push %ebx
++ push %ecx
++
++ movb 0x10(%esp), %cl
++
++ call EXT_C(prot_to_real)
++ .code16
++
++ xorw %bx, %bx
++ movb $0xf, %ah
++ int $0x10 /* Get Current Video mode */
++ movb %al, %ch
++ xorb %ah, %ah
++ movb %cl, %al
++ int $0x10 /* Set Video mode */
++
++ DATA32 call EXT_C(real_to_prot)
++ .code32
++
++ xorb %ah, %ah
++ movb %ch, %al
++
++ pop %ecx
++ pop %ebx
++ pop %ebp
++ ret
++
++
++/*
++ * unsigned char * graphics_get_font()
++ * BIOS call "INT 10H Function 11h" to set font
++ * Call with %ah = 0x11
++ */
++ENTRY(graphics_get_font)
++ push %ebp
++ push %ebx
++ push %ecx
++ push %edx
++
++ call EXT_C(prot_to_real)
++ .code16
++
++ movw $0x1130, %ax
++ movb $6, %bh /* font 8x16 */
++ int $0x10
++ movw %bp, %dx
++ movw %es, %cx
++
++ DATA32 call EXT_C(real_to_prot)
++ .code32
++
++ xorl %eax, %eax
++ movw %cx, %ax
++ shll $4, %eax
++ movw %dx, %ax
++
++ pop %edx
++ pop %ecx
++ pop %ebx
++ pop %ebp
++ ret
++
++
++
++/*
++ * graphics_set_palette(index, red, green, blue)
++ * BIOS call "INT 10H Function 10h" to set individual dac register
++ * Call with %ah = 0x10
++ * %bx = register number
++ * %ch = new value for green (0-63)
++ * %cl = new value for blue (0-63)
++ * %dh = new value for red (0-63)
++ */
++
++ENTRY(graphics_set_palette)
++ push %ebp
++ push %eax
++ push %ebx
++ push %ecx
++ push %edx
++
++ movw $0x3c8, %bx /* address write mode register */
++
++ /* wait vertical retrace */
++
++ movw $0x3da, %dx
++l1b: inb %dx, %al /* wait vertical active display */
++ test $8, %al
++ jnz l1b
++
++l2b: inb %dx, %al /* wait vertical retrace */
++ test $8, %al
++ jnz l2b
++
++ mov %bx, %dx
++ movb 0x18(%esp), %al /* index */
++ outb %al, %dx
++ inc %dx
++
++ movb 0x1c(%esp), %al /* red */
++ outb %al, %dx
++
++ movb 0x20(%esp), %al /* green */
++ outb %al, %dx
++
++ movb 0x24(%esp), %al /* blue */
++ outb %al, %dx
++
++ movw 0x18(%esp), %bx
++
++ call EXT_C(prot_to_real)
++ .code16
++
++ movb %bl, %bh
++ movw $0x1000, %ax
++ int $0x10
++
++ DATA32 call EXT_C(real_to_prot)
++ .code32
++
++ pop %edx
++ pop %ecx
++ pop %ebx
++ pop %eax
++ pop %ebp
++ ret
++
++#endif /* SUPPORT_GRAPHICS */
+
+ /*
+ * getrtsecs()
+diff -urpN grub-0.97/stage2/builtins.c grub-0.97-gfx/stage2/builtins.c
+--- grub-0.97/stage2/builtins.c 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/builtins.c 2005-10-13 16:27:35.000000000 -0400
+@@ -852,6 +852,138 @@ static struct builtin builtin_dhcp =
+ };
+ #endif /* SUPPORT_NETBOOT */
+
++static int terminal_func (char *arg, int flags);
++
++#ifdef SUPPORT_GRAPHICS
++
++static int splashimage_func(char *arg, int flags) {
++ char splashimage[64];
++ int i;
++
++ /* filename can only be 64 characters due to our buffer size */
++ if (strlen(arg) > 63)
++ return 1;
++ if (flags == BUILTIN_CMDLINE) {
++ if (!grub_open(arg))
++ return 1;
++ grub_close();
++ }
++
++ strcpy(splashimage, arg);
++
++ /* get rid of TERM_NEED_INIT from the graphics terminal. */
++ for (i = 0; term_table[i].name; i++) {
++ if (grub_strcmp (term_table[i].name, "graphics") == 0) {
++ term_table[i].flags &= ~TERM_NEED_INIT;
++ break;
++ }
++ }
++
++ graphics_set_splash(splashimage);
++
++ if (flags == BUILTIN_CMDLINE && graphics_inited) {
++ graphics_end();
++ graphics_init();
++ graphics_cls();
++ }
++
++ /* FIXME: should we be explicitly switching the terminal as a
++ * side effect here? */
++ terminal_func("graphics", flags);
++
++ return 0;
++}
++
++static struct builtin builtin_splashimage =
++{
++ "splashimage",
++ splashimage_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++ "splashimage FILE",
++ "Load FILE as the background image when in graphics mode."
++};
++
++
++/* foreground */
++static int
++foreground_func(char *arg, int flags)
++{
++ if (grub_strlen(arg) == 6) {
++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++ foreground = (r << 16) | (g << 8) | b;
++ if (graphics_inited)
++ graphics_set_palette(15, r, g, b);
++
++ return (0);
++ }
++
++ return (1);
++}
++
++static struct builtin builtin_foreground =
++{
++ "foreground",
++ foreground_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++ "foreground RRGGBB",
++ "Sets the foreground color when in graphics mode."
++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++
++/* background */
++static int
++background_func(char *arg, int flags)
++{
++ if (grub_strlen(arg) == 6) {
++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++ background = (r << 16) | (g << 8) | b;
++ if (graphics_inited)
++ graphics_set_palette(0, r, g, b);
++ return (0);
++ }
++
++ return (1);
++}
++
++static struct builtin builtin_background =
++{
++ "background",
++ background_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++ "background RRGGBB",
++ "Sets the background color when in graphics mode."
++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* SUPPORT_GRAPHICS */
++
++
++/* clear */
++static int
++clear_func()
++{
++ if (current_term->cls)
++ current_term->cls();
++
++ return 0;
++}
++
++static struct builtin builtin_clear =
++{
++ "clear",
++ clear_func,
++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++ "clear",
++ "Clear the screen"
++};
++
+
+ /* displayapm */
+ static int
+@@ -4085,7 +4217,7 @@ static struct builtin builtin_setup =
+ };
+
+
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+ /* terminal */
+ static int
+ terminal_func (char *arg, int flags)
+@@ -4244,17 +4376,21 @@ terminal_func (char *arg, int flags)
+ end:
+ current_term = term_table + default_term;
+ current_term->flags = term_flags;
+-
++
+ if (lines)
+ max_lines = lines;
+ else
+- /* 24 would be a good default value. */
+- max_lines = 24;
+-
++ max_lines = current_term->max_lines;
++
+ /* If the interface is currently the command-line,
+ restart it to repaint the screen. */
+- if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
++ if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
++ if (prev_term->shutdown)
++ prev_term->shutdown();
++ if (current_term->startup)
++ current_term->startup();
+ grub_longjmp (restart_cmdline_env, 0);
++ }
+
+ return 0;
+ }
+@@ -4264,7 +4400,7 @@ static struct builtin builtin_terminal =
+ "terminal",
+ terminal_func,
+ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+- "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
++ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
+ "Select a terminal. When multiple terminals are specified, wait until"
+ " you push any key to continue. If both console and serial are specified,"
+ " the terminal to which you input a key first will be selected. If no"
+@@ -4276,7 +4412,7 @@ static struct builtin builtin_terminal =
+ " seconds. The option --lines specifies the maximum number of lines."
+ " The option --silent is used to suppress messages."
+ };
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+
+
+ #ifdef SUPPORT_SERIAL
+@@ -4795,6 +4931,9 @@ static struct builtin builtin_vbeprobe =
+ /* The table of builtin commands. Sorted in dictionary order. */
+ struct builtin *builtin_table[] =
+ {
++#ifdef SUPPORT_GRAPHICS
++ &builtin_background,
++#endif
+ &builtin_blocklist,
+ &builtin_boot,
+ #ifdef SUPPORT_NETBOOT
+@@ -4802,6 +4941,7 @@ struct builtin *builtin_table[] =
+ #endif /* SUPPORT_NETBOOT */
+ &builtin_cat,
+ &builtin_chainloader,
++ &builtin_clear,
+ &builtin_cmp,
+ &builtin_color,
+ &builtin_configfile,
+@@ -4821,6 +4961,9 @@ struct builtin *builtin_table[] =
+ &builtin_embed,
+ &builtin_fallback,
+ &builtin_find,
++#ifdef SUPPORT_GRAPHICS
++ &builtin_foreground,
++#endif
+ &builtin_fstest,
+ &builtin_geometry,
+ &builtin_halt,
+@@ -4864,9 +5007,12 @@ struct builtin *builtin_table[] =
+ #endif /* SUPPORT_SERIAL */
+ &builtin_setkey,
+ &builtin_setup,
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#ifdef SUPPORT_GRAPHICS
++ &builtin_splashimage,
++#endif /* SUPPORT_GRAPHICS */
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+ &builtin_terminal,
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+ #ifdef SUPPORT_SERIAL
+ &builtin_terminfo,
+ #endif /* SUPPORT_SERIAL */
+diff -urpN grub-0.97/stage2/char_io.c grub-0.97-gfx/stage2/char_io.c
+--- grub-0.97/stage2/char_io.c 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/char_io.c 2005-10-13 16:27:35.000000000 -0400
+@@ -35,6 +35,7 @@ struct term_entry term_table[] =
+ {
+ "console",
+ 0,
++ 24,
+ console_putchar,
+ console_checkkey,
+ console_getkey,
+@@ -43,13 +44,16 @@ struct term_entry term_table[] =
+ console_cls,
+ console_setcolorstate,
+ console_setcolor,
+- console_setcursor
++ console_setcursor,
++ 0,
++ 0
+ },
+ #ifdef SUPPORT_SERIAL
+ {
+ "serial",
+ /* A serial device must be initialized. */
+ TERM_NEED_INIT,
++ 24,
+ serial_putchar,
+ serial_checkkey,
+ serial_getkey,
+@@ -58,6 +62,8 @@ struct term_entry term_table[] =
+ serial_cls,
+ serial_setcolorstate,
+ 0,
++ 0,
++ 0,
+ 0
+ },
+ #endif /* SUPPORT_SERIAL */
+@@ -65,6 +71,7 @@ struct term_entry term_table[] =
+ {
+ "hercules",
+ 0,
++ 24,
+ hercules_putchar,
+ console_checkkey,
+ console_getkey,
+@@ -73,9 +80,28 @@ struct term_entry term_table[] =
+ hercules_cls,
+ hercules_setcolorstate,
+ hercules_setcolor,
+- hercules_setcursor
++ hercules_setcursor,
++ 0,
++ 0
+ },
+ #endif /* SUPPORT_HERCULES */
++#ifdef SUPPORT_GRAPHICS
++ { "graphics",
++ TERM_NEED_INIT, /* flags */
++ 30, /* number of lines */
++ graphics_putchar, /* putchar */
++ console_checkkey, /* checkkey */
++ console_getkey, /* getkey */
++ graphics_getxy, /* getxy */
++ graphics_gotoxy, /* gotoxy */
++ graphics_cls, /* cls */
++ graphics_setcolorstate, /* setcolorstate */
++ graphics_setcolor, /* setcolor */
++ graphics_setcursor, /* nocursor */
++ graphics_init, /* initialize */
++ graphics_end /* shutdown */
++ },
++#endif /* SUPPORT_GRAPHICS */
+ /* This must be the last entry. */
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ };
+@@ -1046,13 +1072,15 @@ grub_putchar (int c)
+ the following grub_printf call will print newlines. */
+ count_lines = -1;
+
++ grub_printf("\n");
+ if (current_term->setcolorstate)
+ current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
+
+- grub_printf ("\n[Hit return to continue]");
++ grub_printf ("[Hit return to continue]");
+
+ if (current_term->setcolorstate)
+ current_term->setcolorstate (COLOR_STATE_NORMAL);
++
+
+ do
+ {
+@@ -1090,7 +1118,7 @@ void
+ cls (void)
+ {
+ /* If the terminal is dumb, there is no way to clean the terminal. */
+- if (current_term->flags & TERM_DUMB)
++ if (current_term->flags & TERM_DUMB)
+ grub_putchar ('\n');
+ else
+ current_term->cls ();
+@@ -1217,6 +1245,16 @@ memcheck (int addr, int len)
+ return ! errnum;
+ }
+
++void
++grub_memcpy(void *dest, const void *src, int len)
++{
++ int i;
++ register char *d = (char*)dest, *s = (char*)src;
++
++ for (i = 0; i < len; i++)
++ d[i] = s[i];
++}
++
+ void *
+ grub_memmove (void *to, const void *from, int len)
+ {
+diff -urpN grub-0.97/stage2/graphics.c grub-0.97-gfx/stage2/graphics.c
+--- grub-0.97/stage2/graphics.c 1969-12-31 20:00:00.000000000 -0400
++++ grub-0.97-gfx/stage2/graphics.c 2005-10-13 16:27:35.000000000 -0400
+@@ -0,0 +1,552 @@
++/* graphics.c - graphics mode support for GRUB */
++/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
++ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
++ */
++/*
++ * GRUB -- GRand Unified Bootloader
++ * Copyright (C) 2001,2002 Red Hat, Inc.
++ * Portions copyright (C) 2000 Conectiva, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++int saved_videomode;
++unsigned char *font8x16;
++
++int graphics_inited = 0;
++static char splashimage[64];
++
++#define VSHADOW VSHADOW1
++unsigned char VSHADOW1[38400];
++unsigned char VSHADOW2[38400];
++unsigned char VSHADOW4[38400];
++unsigned char VSHADOW8[38400];
++
++/* constants to define the viewable area */
++const int x0 = 0;
++const int x1 = 80;
++const int y0 = 0;
++const int y1 = 30;
++
++/* text buffer has to be kept around so that we can write things as we
++ * scroll and the like */
++unsigned short text[80 * 30];
++
++/* why do these have to be kept here? */
++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
++
++/* current position */
++static int fontx = 0;
++static int fonty = 0;
++
++/* global state so that we don't try to recursively scroll or cursor */
++static int no_scroll = 0;
++
++/* color state */
++static int graphics_standard_color = A_NORMAL;
++static int graphics_normal_color = A_NORMAL;
++static int graphics_highlight_color = A_REVERSE;
++static int graphics_current_color = A_NORMAL;
++static color_state graphics_color_state = COLOR_STATE_STANDARD;
++
++
++/* graphics local functions */
++static void graphics_setxy(int col, int row);
++static void graphics_scroll();
++
++/* FIXME: where do these really belong? */
++static inline void outb(unsigned short port, unsigned char val)
++{
++ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
++}
++
++static void MapMask(int value) {
++ outb(0x3c4, 2);
++ outb(0x3c5, value);
++}
++
++/* bit mask register */
++static void BitMask(int value) {
++ outb(0x3ce, 8);
++ outb(0x3cf, value);
++}
++
++
++
++/* Set the splash image */
++void graphics_set_splash(char *splashfile) {
++ grub_strcpy(splashimage, splashfile);
++}
++
++/* Get the current splash image */
++char *graphics_get_splash(void) {
++ return splashimage;
++}
++
++/* Initialize a vga16 graphics display with the palette based off of
++ * the image in splashimage. If the image doesn't exist, leave graphics
++ * mode. */
++int graphics_init()
++{
++ if (!graphics_inited) {
++ saved_videomode = set_videomode(0x12);
++ }
++
++ if (!read_image(splashimage)) {
++ set_videomode(saved_videomode);
++ grub_printf("failed to read image\n");
++ return 0;
++ }
++
++ font8x16 = (unsigned char*)graphics_get_font();
++
++ graphics_inited = 1;
++
++ /* make sure that the highlight color is set correctly */
++ graphics_highlight_color = ((graphics_normal_color >> 4) |
++ ((graphics_normal_color & 0xf) << 4));
++
++ return 1;
++}
++
++/* Leave graphics mode */
++void graphics_end(void)
++{
++ if (graphics_inited) {
++ set_videomode(saved_videomode);
++ graphics_inited = 0;
++ }
++}
++
++/* Print ch on the screen. Handle any needed scrolling or the like */
++void graphics_putchar(int ch) {
++ ch &= 0xff;
++
++ graphics_cursor(0);
++
++ if (ch == '\n') {
++ if (fonty + 1 < y1)
++ graphics_setxy(fontx, fonty + 1);
++ else
++ graphics_scroll();
++ graphics_cursor(1);
++ return;
++ } else if (ch == '\r') {
++ graphics_setxy(x0, fonty);
++ graphics_cursor(1);
++ return;
++ }
++
++ graphics_cursor(0);
++
++ text[fonty * 80 + fontx] = ch;
++ text[fonty * 80 + fontx] &= 0x00ff;
++ if (graphics_current_color & 0xf0)
++ text[fonty * 80 + fontx] |= 0x100;
++
++ graphics_cursor(0);
++
++ if ((fontx + 1) >= x1) {
++ graphics_setxy(x0, fonty);
++ if (fonty + 1 < y1)
++ graphics_setxy(x0, fonty + 1);
++ else
++ graphics_scroll();
++ } else {
++ graphics_setxy(fontx + 1, fonty);
++ }
++
++ graphics_cursor(1);
++}
++
++/* get the current location of the cursor */
++int graphics_getxy(void) {
++ return (fontx << 8) | fonty;
++}
++
++void graphics_gotoxy(int x, int y) {
++ graphics_cursor(0);
++
++ graphics_setxy(x, y);
++
++ graphics_cursor(1);
++}
++
++void graphics_cls(void) {
++ int i;
++ unsigned char *mem, *s1, *s2, *s4, *s8;
++
++ graphics_cursor(0);
++ graphics_gotoxy(x0, y0);
++
++ mem = (unsigned char*)VIDEOMEM;
++ s1 = (unsigned char*)VSHADOW1;
++ s2 = (unsigned char*)VSHADOW2;
++ s4 = (unsigned char*)VSHADOW4;
++ s8 = (unsigned char*)VSHADOW8;
++
++ for (i = 0; i < 80 * 30; i++)
++ text[i] = ' ';
++ graphics_cursor(1);
++
++ BitMask(0xff);
++
++ /* plano 1 */
++ MapMask(1);
++ grub_memcpy(mem, s1, 38400);
++
++ /* plano 2 */
++ MapMask(2);
++ grub_memcpy(mem, s2, 38400);
++
++ /* plano 3 */
++ MapMask(4);
++ grub_memcpy(mem, s4, 38400);
++
++ /* plano 4 */
++ MapMask(8);
++ grub_memcpy(mem, s8, 38400);
++
++ MapMask(15);
++
++}
++
++void graphics_setcolorstate (color_state state) {
++ switch (state) {
++ case COLOR_STATE_STANDARD:
++ graphics_current_color = graphics_standard_color;
++ break;
++ case COLOR_STATE_NORMAL:
++ graphics_current_color = graphics_normal_color;
++ break;
++ case COLOR_STATE_HIGHLIGHT:
++ graphics_current_color = graphics_highlight_color;
++ break;
++ default:
++ graphics_current_color = graphics_standard_color;
++ break;
++ }
++
++ graphics_color_state = state;
++}
++
++void graphics_setcolor (int normal_color, int highlight_color) {
++ graphics_normal_color = normal_color;
++ graphics_highlight_color = highlight_color;
++
++ graphics_setcolorstate (graphics_color_state);
++}
++
++void graphics_setcursor (int on) {
++ /* FIXME: we don't have a cursor in graphics */
++ return;
++}
++
++/* Read in the splashscreen image and set the palette up appropriately.
++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
++ * 640x480. */
++int read_image(char *s)
++{
++ char buf[32], pal[16];
++ unsigned char c, base, mask, *s1, *s2, *s4, *s8;
++ unsigned i, len, idx, colors, x, y, width, height;
++
++ if (!grub_open(s))
++ return 0;
++
++ /* read header */
++ if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
++ grub_close();
++ return 0;
++ }
++
++ /* parse info */
++ while (grub_read(&c, 1)) {
++ if (c == '"')
++ break;
++ }
++
++ while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++ ;
++
++ i = 0;
++ width = c - '0';
++ while (grub_read(&c, 1)) {
++ if (c >= '0' && c <= '9')
++ width = width * 10 + c - '0';
++ else
++ break;
++ }
++ while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++ ;
++
++ height = c - '0';
++ while (grub_read(&c, 1)) {
++ if (c >= '0' && c <= '9')
++ height = height * 10 + c - '0';
++ else
++ break;
++ }
++ while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++ ;
++
++ colors = c - '0';
++ while (grub_read(&c, 1)) {
++ if (c >= '0' && c <= '9')
++ colors = colors * 10 + c - '0';
++ else
++ break;
++ }
++
++ base = 0;
++ while (grub_read(&c, 1) && c != '"')
++ ;
++
++ /* palette */
++ for (i = 0, idx = 1; i < colors; i++) {
++ len = 0;
++
++ while (grub_read(&c, 1) && c != '"')
++ ;
++ grub_read(&c, 1); /* char */
++ base = c;
++ grub_read(buf, 4); /* \t c # */
++
++ while (grub_read(&c, 1) && c != '"') {
++ if (len < sizeof(buf))
++ buf[len++] = c;
++ }
++
++ if (len == 6 && idx < 15) {
++ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
++ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
++ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
++
++ pal[idx] = base;
++ graphics_set_palette(idx, r, g, b);
++ ++idx;
++ }
++ }
++
++ x = y = len = 0;
++
++ s1 = (unsigned char*)VSHADOW1;
++ s2 = (unsigned char*)VSHADOW2;
++ s4 = (unsigned char*)VSHADOW4;
++ s8 = (unsigned char*)VSHADOW8;
++
++ for (i = 0; i < 38400; i++)
++ s1[i] = s2[i] = s4[i] = s8[i] = 0;
++
++ /* parse xpm data */
++ while (y < height) {
++ while (1) {
++ if (!grub_read(&c, 1)) {
++ grub_close();
++ return 0;
++ }
++ if (c == '"')
++ break;
++ }
++
++ while (grub_read(&c, 1) && c != '"') {
++ for (i = 1; i < 15; i++)
++ if (pal[i] == c) {
++ c = i;
++ break;
++ }
++
++ mask = 0x80 >> (x & 7);
++ if (c & 1)
++ s1[len + (x >> 3)] |= mask;
++ if (c & 2)
++ s2[len + (x >> 3)] |= mask;
++ if (c & 4)
++ s4[len + (x >> 3)] |= mask;
++ if (c & 8)
++ s8[len + (x >> 3)] |= mask;
++
++ if (++x >= 640) {
++ x = 0;
++
++ if (y < 480)
++ len += 80;
++ ++y;
++ }
++ }
++ }
++
++ grub_close();
++
++ graphics_set_palette(0, (background >> 16), (background >> 8) & 63,
++ background & 63);
++ graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63,
++ foreground & 63);
++ graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63,
++ border & 63);
++
++ return 1;
++}
++
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int hex(int v)
++{
++ if (v >= 'A' && v <= 'F')
++ return (v - 'A' + 10);
++ if (v >= 'a' && v <= 'f')
++ return (v - 'a' + 10);
++ return (v - '0');
++}
++
++
++/* move the graphics cursor location to col, row */
++static void graphics_setxy(int col, int row) {
++ if (col >= x0 && col < x1) {
++ fontx = col;
++ cursorX = col << 3;
++ }
++ if (row >= y0 && row < y1) {
++ fonty = row;
++ cursorY = row << 4;
++ }
++}
++
++/* scroll the screen */
++static void graphics_scroll() {
++ int i, j;
++
++ /* we don't want to scroll recursively... that would be bad */
++ if (no_scroll)
++ return;
++ no_scroll = 1;
++
++ /* move everything up a line */
++ for (j = y0 + 1; j < y1; j++) {
++ graphics_gotoxy(x0, j - 1);
++ for (i = x0; i < x1; i++) {
++ graphics_putchar(text[j * 80 + i]);
++ }
++ }
++
++ /* last line should be blank */
++ graphics_gotoxy(x0, y1 - 1);
++ for (i = x0; i < x1; i++)
++ graphics_putchar(' ');
++ graphics_setxy(x0, y1 - 1);
++
++ no_scroll = 0;
++}
++
++
++void graphics_cursor(int set) {
++ unsigned char *pat, *mem, *ptr, chr[16 << 2];
++ int i, ch, invert, offset;
++
++ if (set && no_scroll)
++ return;
++
++ offset = cursorY * 80 + fontx;
++ ch = text[fonty * 80 + fontx] & 0xff;
++ invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
++ pat = font8x16 + (ch << 4);
++
++ mem = (unsigned char*)VIDEOMEM + offset;
++
++ if (!set) {
++ for (i = 0; i < 16; i++) {
++ unsigned char mask = pat[i];
++
++ if (!invert) {
++ chr[i ] = ((unsigned char*)VSHADOW1)[offset];
++ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
++ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
++ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
++
++ /* FIXME: if (shade) */
++ if (1) {
++ if (ch == DISP_VERT || ch == DISP_LL ||
++ ch == DISP_UR || ch == DISP_LR) {
++ unsigned char pmask = ~(pat[i] >> 1);
++
++ chr[i ] &= pmask;
++ chr[16 + i] &= pmask;
++ chr[32 + i] &= pmask;
++ chr[48 + i] &= pmask;
++ }
++ if (i > 0 && ch != DISP_VERT) {
++ unsigned char pmask = ~(pat[i - 1] >> 1);
++
++ chr[i ] &= pmask;
++ chr[16 + i] &= pmask;
++ chr[32 + i] &= pmask;
++ chr[48 + i] &= pmask;
++ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
++ pmask = ~pat[i - 1];
++
++ chr[i ] &= pmask;
++ chr[16 + i] &= pmask;
++ chr[32 + i] &= pmask;
++ chr[48 + i] &= pmask;
++ }
++ }
++ }
++ chr[i ] |= mask;
++ chr[16 + i] |= mask;
++ chr[32 + i] |= mask;
++ chr[48 + i] |= mask;
++
++ offset += 80;
++ }
++ else {
++ chr[i ] = mask;
++ chr[16 + i] = mask;
++ chr[32 + i] = mask;
++ chr[48 + i] = mask;
++ }
++ }
++ }
++ else {
++ MapMask(15);
++ ptr = mem;
++ for (i = 0; i < 16; i++, ptr += 80) {
++ cursorBuf[i] = pat[i];
++ *ptr = ~pat[i];
++ }
++ return;
++ }
++
++ offset = 0;
++ for (i = 1; i < 16; i <<= 1, offset += 16) {
++ int j;
++
++ MapMask(i);
++ ptr = mem;
++ for (j = 0; j < 16; j++, ptr += 80)
++ *ptr = chr[j + offset];
++ }
++
++ MapMask(15);
++}
++
++#endif /* SUPPORT_GRAPHICS */
+diff -urpN grub-0.97/stage2/graphics.h grub-0.97-gfx/stage2/graphics.h
+--- grub-0.97/stage2/graphics.h 1969-12-31 20:00:00.000000000 -0400
++++ grub-0.97-gfx/stage2/graphics.h 2005-10-13 16:27:35.000000000 -0400
+@@ -0,0 +1,42 @@
++/* graphics.h - graphics console interface */
++/*
++ * GRUB -- GRand Unified Bootloader
++ * Copyright (C) 2002 Free Software Foundation, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRAPHICS_H
++#define GRAPHICS_H
++
++/* magic constant */
++#define VIDEOMEM 0xA0000
++
++/* function prototypes */
++char *graphics_get_splash(void);
++
++int read_image(char *s);
++void graphics_cursor(int set);
++
++/* function prototypes for asm functions */
++void * graphics_get_font();
++void graphics_set_palette(int idx, int red, int green, int blue);
++void set_int1c_handler();
++void unset_int1c_handler();
++
++extern short cursorX, cursorY;
++extern char cursorBuf[16];
++
++#endif /* GRAPHICS_H */
+diff -urpN grub-0.97/stage2/shared.h grub-0.97-gfx/stage2/shared.h
+--- grub-0.97/stage2/shared.h 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/shared.h 2005-10-13 16:27:35.000000000 -0400
+@@ -871,6 +871,7 @@ int grub_sprintf (char *buffer, const ch
+ int grub_tolower (int c);
+ int grub_isspace (int c);
+ int grub_strncat (char *s1, const char *s2, int n);
++void grub_memcpy(void *dest, const void *src, int len);
+ void *grub_memmove (void *to, const void *from, int len);
+ void *grub_memset (void *start, int c, int len);
+ int grub_strncat (char *s1, const char *s2, int n);
+diff -urpN grub-0.97/stage2/stage2.c grub-0.97-gfx/stage2/stage2.c
+--- grub-0.97/stage2/stage2.c 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/stage2.c 2005-10-13 16:27:35.000000000 -0400
+@@ -233,6 +233,7 @@ run_menu (char *menu_entries, char *conf
+ {
+ int c, time1, time2 = -1, first_entry = 0;
+ char *cur_entry = 0;
++ struct term_entry *prev_term = NULL;
+
+ /*
+ * Main loop for menu UI.
+@@ -714,6 +715,15 @@ restart:
+
+ cls ();
+ setcursor (1);
++ /* if our terminal needed initialization, we should shut it down
++ * before booting the kernel, but we want to save what it was so
++ * we can come back if needed */
++ prev_term = current_term;
++ if (current_term->shutdown)
++ {
++ (*current_term->shutdown)();
++ current_term = term_table; /* assumption: console is first */
++ }
+
+ while (1)
+ {
+@@ -748,6 +758,13 @@ restart:
+ break;
+ }
+
++ /* if we get back here, we should go back to what our term was before */
++ current_term = prev_term;
++ if (current_term->startup)
++ /* if our terminal fails to initialize, fall back to console since
++ * it should always work */
++ if ((*current_term->startup)() == 0)
++ current_term = term_table; /* we know that console is first */
+ show_menu = 1;
+ goto restart;
+ }
+@@ -1050,6 +1067,10 @@ cmain (void)
+ while (is_preset);
+ }
+
++ /* go ahead and make sure the terminal is setup */
++ if (current_term->startup)
++ (*current_term->startup)();
++
+ if (! num_entries)
+ {
+ /* If no acceptable config file, goto command-line, starting
+diff -urpN grub-0.97/stage2/term.h grub-0.97-gfx/stage2/term.h
+--- grub-0.97/stage2/term.h 2005-10-13 16:27:23.000000000 -0400
++++ grub-0.97-gfx/stage2/term.h 2005-10-13 16:27:35.000000000 -0400
+@@ -60,6 +60,8 @@ struct term_entry
+ const char *name;
+ /* The feature flags defined above. */
+ unsigned long flags;
++ /* Default for maximum number of lines if not specified */
++ unsigned short max_lines;
+ /* Put a character. */
+ void (*putchar) (int c);
+ /* Check if any input character is available. */
+@@ -79,6 +81,11 @@ struct term_entry
+ void (*setcolor) (int normal_color, int highlight_color);
+ /* Turn on/off the cursor. */
+ int (*setcursor) (int on);
++
++ /* function to start a terminal */
++ int (*startup) (void);
++ /* function to use to shutdown a terminal */
++ void (*shutdown) (void);
+ };
+
+ /* This lists up available terminals. */
+@@ -124,4 +131,23 @@ void hercules_setcolor (int normal_color
+ int hercules_setcursor (int on);
+ #endif
+
++#ifdef SUPPORT_GRAPHICS
++extern int foreground, background, border, graphics_inited;
++
++void graphics_set_splash(char *splashfile);
++int set_videomode (int mode);
++void graphics_putchar (int c);
++int graphics_getxy(void);
++void graphics_gotoxy(int x, int y);
++void graphics_cls(void);
++void graphics_setcolorstate (color_state state);
++void graphics_setcolor (int normal_color, int highlight_color);
++void graphics_setcursor (int on);
++int graphics_init(void);
++void graphics_end(void);
++
++int hex(int v);
++void graphics_set_palette(int idx, int red, int green, int blue);
++#endif /* SUPPORT_GRAPHICS */
++
+ #endif /* ! GRUB_TERM_HEADER */
diff --git a/abs/not_built/core/grub-gfx/grub-gfx.install b/abs/not_built/core/grub-gfx/grub-gfx.install
new file mode 100644
index 0000000..6c73b15
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/grub-gfx.install
@@ -0,0 +1,46 @@
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ echo
+ echo "*********************************************************************"
+ echo "You need to run install-grub /dev/device or grub-install /dev/device "
+ echo "to update grub loader."
+ echo "Note: Device should be any of these (sda, sdb, hda, hdb, sda1, hda1) "
+ echo "If you are in doubt, see your old grub config file (menu.lst.pacsave)"
+ echo "********************************************************************"
+ echo
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ echo
+ echo "*********************************************************************"
+ echo "You need to run install-grub /dev/device or grub-install /dev/device "
+ echo "to update grub loader."
+ echo "Note: Device should be any of these (sda, sdb, hda, hdb, sda1, hda1) "
+ echo "If you are in doubt, see your old grub config file (menu.lst.pacsave)"
+ echo "********************************************************************"
+ echo
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
diff --git a/abs/not_built/core/grub-gfx/grub-inode-size.patch b/abs/not_built/core/grub-gfx/grub-inode-size.patch
new file mode 100644
index 0000000..bef3bc1
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/grub-inode-size.patch
@@ -0,0 +1,94 @@
+diff -Nrup a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
+--- a/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200
++++ b/stage2/fsys_ext2fs.c 2008-01-30 14:27:20.000000000 +0100
+@@ -79,7 +79,52 @@ struct ext2_super_block
+ __u32 s_rev_level; /* Revision level */
+ __u16 s_def_resuid; /* Default uid for reserved blocks */
+ __u16 s_def_resgid; /* Default gid for reserved blocks */
+- __u32 s_reserved[235]; /* Padding to the end of the block */
++ /*
++ * These fields are for EXT2_DYNAMIC_REV superblocks only.
++ *
++ * Note: the difference between the compatible feature set and
++ * the incompatible feature set is that if there is a bit set
++ * in the incompatible feature set that the kernel doesn't
++ * know about, it should refuse to mount the filesystem.
++ *
++ * e2fsck's requirements are more strict; if it doesn't know
++ * about a feature in either the compatible or incompatible
++ * feature set, it must abort and not try to meddle with
++ * things it doesn't understand...
++ */
++ __u32 s_first_ino; /* First non-reserved inode */
++ __u16 s_inode_size; /* size of inode structure */
++ __u16 s_block_group_nr; /* block group # of this superblock */
++ __u32 s_feature_compat; /* compatible feature set */
++ __u32 s_feature_incompat; /* incompatible feature set */
++ __u32 s_feature_ro_compat; /* readonly-compatible feature set */
++ __u8 s_uuid[16]; /* 128-bit uuid for volume */
++ char s_volume_name[16]; /* volume name */
++ char s_last_mounted[64]; /* directory where last mounted */
++ __u32 s_algorithm_usage_bitmap; /* For compression */
++ /*
++ * Performance hints. Directory preallocation should only
++ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
++ */
++ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
++ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
++ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
++ /*
++ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
++ */
++ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
++ __u32 s_journal_inum; /* inode number of journal file */
++ __u32 s_journal_dev; /* device number of journal file */
++ __u32 s_last_orphan; /* start of list of inodes to delete */
++ __u32 s_hash_seed[4]; /* HTREE hash seed */
++ __u8 s_def_hash_version; /* Default hash version to use */
++ __u8 s_jnl_backup_type; /* Default type of journal backup */
++ __u16 s_reserved_word_pad;
++ __u32 s_default_mount_opts;
++ __u32 s_first_meta_bg; /* First metablock group */
++ __u32 s_mkfs_time; /* When the filesystem was created */
++ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
++ __u32 s_reserved[172]; /* Padding to the end of the block */
+ };
+
+ struct ext2_group_desc
+@@ -218,6 +263,9 @@ struct ext2_dir_entry
+ #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
+ #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s)))
+
++#define EXT2_INODE_SIZE(s) (SUPERBLOCK->s_inode_size)
++#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
++
+ /* linux/ext2_fs.h */
+ #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
+ /* kind of from ext2/super.c */
+@@ -553,7 +601,7 @@ ext2fs_dir (char *dirname)
+ gdp = GROUP_DESC;
+ ino_blk = gdp[desc].bg_inode_table +
+ (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
+- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
++ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
+ #ifdef E2DEBUG
+ printf ("inode table fsblock=%d\n", ino_blk);
+ #endif /* E2DEBUG */
+@@ -565,13 +613,12 @@ ext2fs_dir (char *dirname)
+ /* reset indirect blocks! */
+ mapblock2 = mapblock1 = -1;
+
+- raw_inode = INODE +
+- ((current_ino - 1)
+- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
++ raw_inode = (struct ext2_inode *)((char *)INODE +
++ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
++ EXT2_INODE_SIZE (SUPERBLOCK));
+ #ifdef E2DEBUG
+ printf ("ipb=%d, sizeof(inode)=%d\n",
+- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
+- sizeof (struct ext2_inode));
++ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
+ printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
+ printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
+ for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
diff --git a/abs/not_built/core/grub-gfx/i2o.patch b/abs/not_built/core/grub-gfx/i2o.patch
new file mode 100644
index 0000000..2af846c
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/i2o.patch
@@ -0,0 +1,45 @@
+Only in grub-0.94/docs: grub.info
+Only in grub-0.94/docs: multiboot.info
+diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c
+--- grub-0.94/lib/device.c 2004-05-07 04:50:36.375238696 +0200
++++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200
+@@ -419,6 +419,12 @@
+ {
+ sprintf (name, "/dev/rd/c%dd%d", controller, drive);
+ }
++
++static void
++get_i2o_disk_name (char *name, int unit)
++{
++ sprintf (name, "/dev/i2o/hd%c", unit + 'a');
++}
+ #endif
+
+ /* Check if DEVICE can be read. If an error occurs, return zero,
+@@ -789,6 +795,26 @@
+ }
+ }
+ }
++
++ /* I2O disks. */
++ for (i = 0; i < 8; i++)
++ {
++ char name[16];
++
++ get_i2o_disk_name (name, i);
++ if (check_device (name))
++ {
++ (*map)[num_hd + 0x80] = strdup (name);
++ assert ((*map)[num_hd + 0x80]);
++
++ /* If the device map file is opened, write the map. */
++ if (fp)
++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++
++ num_hd++;
++ }
++ }
++
+ #endif /* __linux__ */
+
+ /* OK, close the device map file if opened. */
diff --git a/abs/not_built/core/grub-gfx/install-grub b/abs/not_built/core/grub-gfx/install-grub
new file mode 100755
index 0000000..3eb7ce5
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/install-grub
@@ -0,0 +1,187 @@
+#!/bin/bash
+
+#
+# This is a little helper script that tries to convert linux-style device
+# names to grub-style. It's not very smart, so it
+# probably won't work for more complicated setups.
+#
+# If it doesn't work for you, try installing grub manually:
+#
+# # mkdir -p /boot/grub
+# # cp /usr/lib/grub/i386-pc/* /boot/grub/
+#
+# Then start up the 'grub' shell and run something like the following:
+#
+# grub> root(hd0,0)
+# grub> setup(hd0)
+#
+# The "root" line should point to the partition your kernel is located on,
+# /boot if you have a separate boot partition, otherwise your root (/).
+#
+# The "setup" line tells grub which disc/partition to install the
+# bootloader to. In the example above, it will install to the MBR of the
+# primary master hard drive.
+#
+
+usage() {
+ echo "usage: install-grub <install_device> [boot_device]"
+ echo
+ echo "where <install_device> is the device where Grub will be installed"
+ echo "and [boot_device] is the partition that contains the /boot"
+ echo "directory (auto-detected if omitted)"
+ echo
+ echo "examples: install-grub /dev/hda"
+ echo " install-grub /dev/hda /dev/hda1"
+ echo
+ exit 0
+}
+
+## new install-grub, code was taken from setup script
+ROOTDEV=$1
+PART_ROOT=$2
+VMLINUZ=vmlinuz26
+
+if [ "$ROOTDEV" = "" ]; then
+ usage
+fi
+if [ "$PART_ROOT" = "" ]; then
+ PART_ROOT=$(mount | grep "on /boot type" | cut -d' ' -f 1)
+fi
+if [ "$PART_ROOT" = "" ]; then
+ PART_ROOT=$(mount | grep "on / type" | cut -d' ' -f 1)
+fi
+if [ "$PART_ROOT" = "" ]; then
+ echo "error: could not determine BOOT_DEVICE, please specify manually" >&2
+ exit 1
+fi
+
+
+get_grub_map() {
+ [ -e /tmp/dev.map ] && rm /tmp/dev.map
+ /sbin/grub --no-floppy --device-map /tmp/dev.map >/tmp/grub.log 2>&1 <<EOF
+quit
+EOF
+}
+
+mapdev() {
+ partition_flag=0
+ device_found=0
+ devs=$(cat /tmp/dev.map | grep -v fd | sed 's/ *\t/ /' | sed ':a;$!N;$!ba;s/\n/ /g')
+ linuxdevice=$(echo $1 | cut -b1-8)
+ if [ "$(echo $1 | egrep '[0-9]$')" ]; then
+ # /dev/hdXY
+ pnum=$(echo $1 | cut -b9-)
+ pnum=$(($pnum-1))
+ partition_flag=1
+ fi
+ for dev in $devs
+ do
+ if [ "(" = $(echo $dev | cut -b1) ]; then
+ grubdevice="$dev"
+ else
+ if [ "$dev" = "$linuxdevice" ]; then
+ device_found=1
+ break
+ fi
+ fi
+ done
+ if [ "$device_found" = "1" ]; then
+ if [ "$partition_flag" = "0" ]; then
+ echo "$grubdevice"
+ else
+ grubdevice_stringlen=${#grubdevice}
+ let grubdevice_stringlen--
+ grubdevice=$(echo $grubdevice | cut -b1-$grubdevice_stringlen)
+ echo "$grubdevice,$pnum)"
+ fi
+ else
+ echo " DEVICE NOT FOUND"
+ fi
+}
+
+dogrub() {
+ get_grub_map
+ if [ ! -f /boot/grub/menu.lst ]; then
+ echo "Error: Couldn't find /boot/grub/menu.lst. Is GRUB installed?"
+ exit 1
+ fi
+ # try to auto-configure GRUB...
+ if [ "$PART_ROOT" != "" -a "$S_GRUB" != "1" ]; then
+ grubdev=$(mapdev $PART_ROOT)
+ # look for a separately-mounted /boot partition
+ bootdev=$(mount | grep /boot | cut -d' ' -f 1)
+ if [ "$grubdev" != "" -o "$bootdev" != "" ]; then
+ cp /boot/grub/menu.lst /tmp/.menu.lst
+ # remove the default entries by truncating the file at our little tag (#-*)
+ head -n $(cat /tmp/.menu.lst | grep -n '#-\*' | cut -d: -f 1) /tmp/.menu.lst >/boot/grub/menu.lst
+ rm -f /tmp/.menu.lst
+ echo "" >>/boot/grub/menu.lst
+ echo "# (0) Arch Linux" >>/boot/grub/menu.lst
+ echo "title Arch Linux" >>/boot/grub/menu.lst
+ subdir=
+ if [ "$bootdev" != "" ]; then
+ grubdev=$(mapdev $bootdev)
+ else
+ subdir="/boot"
+ fi
+ echo "root $grubdev" >>/boot/grub/menu.lst
+ echo "kernel $subdir/$VMLINUZ root=$PART_ROOT ro" >>/boot/grub/menu.lst
+ if [ "$VMLINUZ" = "vmlinuz26" ]; then
+ echo "initrd $subdir/kernel26.img" >>/boot/grub/menu.lst
+ fi
+ echo "" >>/boot/grub/menu.lst
+ # adding fallback/full image
+ echo "# (1) Arch Linux" >>/boot/grub/menu.lst
+ echo "title Arch Linux Fallback" >>/boot/grub/menu.lst
+ echo "root $grubdev" >>/boot/grub/menu.lst
+ echo "kernel $subdir/$VMLINUZ root=$PART_ROOT ro" >>/boot/grub/menu.lst
+ if [ "$VMLINUZ" = "vmlinuz26" ]; then
+ echo "initrd $subdir/kernel26-fallback.img" >>/boot/grub/menu.lst
+ fi
+ echo "" >>/boot/grub/menu.lst
+ fi
+ fi
+
+ echo "Installing the GRUB bootloader..."
+ cp -a /usr/lib/grub/i386-pc/* /boot/grub/
+ sync
+ # freeze xfs filesystems to enable grub installation on xfs filesystems
+ if [ -x /usr/sbin/xfs_freeze ]; then
+ /usr/sbin/xfs_freeze -f /boot > /dev/null 2>&1
+ /usr/sbin/xfs_freeze -f / > /dev/null 2>&1
+ fi
+ # look for a separately-mounted /boot partition
+ bootpart=$(mount | grep /boot | cut -d' ' -f 1)
+ if [ "$bootpart" = "" ]; then
+ bootpart=$PART_ROOT
+ fi
+ bootpart=$(mapdev $bootpart)
+ bootdev=$(mapdev $ROOTDEV)
+ if [ "$bootpart" = "" ]; then
+ echo "Error: Missing/Invalid root device: $bootpart"
+ exit 1
+ fi
+ /sbin/grub --no-floppy --batch >/tmp/grub.log 2>&1 <<EOF
+root $bootpart
+setup $bootdev
+quit
+EOF
+cat /tmp/grub.log
+ # unfreeze xfs filesystems
+ if [ -x /usr/sbin/xfs_freeze ]; then
+ /usr/sbin/xfs_freeze -u /boot > /dev/null 2>&1
+ /usr/sbin/xfs_freeze -u / > /dev/null 2>&1
+ fi
+
+ if grep "Error [0-9]*: " /tmp/grub.log >/dev/null; then
+ echo "Error installing GRUB. (see /tmp/grub.log for output)"
+ exit 1
+ fi
+ echo "GRUB was successfully installed."
+
+rm -f /tmp/grub.log
+
+exit 0
+}
+
+dogrub \ No newline at end of file
diff --git a/abs/not_built/core/grub-gfx/intelmac.patch b/abs/not_built/core/grub-gfx/intelmac.patch
new file mode 100644
index 0000000..a3fabc7
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/intelmac.patch
@@ -0,0 +1,67 @@
+--- grub-0.97.orig/stage2/asm.S 2004-06-19 18:55:22.000000000 +0200
++++ grub-0.97/stage2/asm.S 2006-04-21 11:10:52.000000000 +0200
+@@ -1651,7 +1651,29 @@
+ jnz 3f
+ ret
+
+-3: /* use keyboard controller */
++3: /*
++ * try to switch gateA20 using PORT92, the "Fast A20 and Init"
++ * register
++ */
++ mov $0x92, %dx
++ inb %dx, %al
++ /* skip the port92 code if it's unimplemented (read returns 0xff) */
++ cmpb $0xff, %al
++ jz 6f
++
++ /* set or clear bit1, the ALT_A20_GATE bit */
++ movb 4(%esp), %ah
++ testb %ah, %ah
++ jz 4f
++ orb $2, %al
++ jmp 5f
++4: and $0xfd, %al
++
++ /* clear the INIT_NOW bit don't accidently reset the machine */
++5: and $0xfe, %al
++ outb %al, %dx
++
++6: /* use keyboard controller */
+ pushl %eax
+
+ call gloop1
+@@ -1661,9 +1683,12 @@
+
+ gloopint1:
+ inb $K_STATUS
++ cmpb $0xff, %al
++ jz gloopint1_done
+ andb $K_IBUF_FUL, %al
+ jnz gloopint1
+
++gloopint1_done:
+ movb $KB_OUTPUT_MASK, %al
+ cmpb $0, 0x8(%esp)
+ jz gdoit
+@@ -1684,6 +1709,8 @@
+
+ gloop1:
+ inb $K_STATUS
++ cmpb $0xff, %al
++ jz gloop2ret
+ andb $K_IBUF_FUL, %al
+ jnz gloop1
+
+@@ -1991,6 +2018,11 @@
+ ENTRY(console_getkey)
+ push %ebp
+
++wait_for_key:
++ call EXT_C(console_checkkey)
++ incl %eax
++ jz wait_for_key
++
+ call EXT_C(prot_to_real)
+ .code16
+
diff --git a/abs/not_built/core/grub-gfx/menu.lst b/abs/not_built/core/grub-gfx/menu.lst
new file mode 100644
index 0000000..cc2f0a8
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/menu.lst
@@ -0,0 +1,47 @@
+# Config file for GRUB - The GNU GRand Unified Bootloader
+# /boot/grub/menu.lst
+
+# DEVICE NAME CONVERSIONS
+#
+# Linux Grub
+# -------------------------
+# /dev/fd0 (fd0)
+# /dev/hda (hd0)
+# /dev/hdb2 (hd1,1)
+# /dev/hda3 (hd0,2)
+#
+
+# FRAMEBUFFER RESOLUTION SETTINGS
+# +-------------------------------------------------+
+# | 640x480 800x600 1024x768 1280x1024
+# ----+--------------------------------------------
+# 256 | 0x301=769 0x303=771 0x305=773 0x307=775
+# 32K | 0x310=784 0x313=787 0x316=790 0x319=793
+# 64K | 0x311=785 0x314=788 0x317=791 0x31A=794
+# 16M | 0x312=786 0x315=789 0x318=792 0x31B=795
+# +-------------------------------------------------+
+
+# general configuration:
+timeout 5
+default 0
+color light-blue/black light-cyan/blue
+splashimage /boot/grub/splash.xpm.gz
+
+# boot sections follow
+# each is implicitly numbered from 0 in the order of appearance below
+#
+# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
+#
+#-*
+
+# (0) Arch Linux
+title Arch Linux [/boot/vmlinuz26]
+root (hd0,0)
+kernel /vmlinuz26 root=/dev/hda3 ro
+initrd /kernel26.img
+
+# (1) Windows
+#title Windows
+#rootnoverify (hd0,0)
+#makeactive
+#chainloader +1
diff --git a/abs/not_built/core/grub-gfx/more-raid.patch b/abs/not_built/core/grub-gfx/more-raid.patch
new file mode 100644
index 0000000..39db234
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/more-raid.patch
@@ -0,0 +1,100 @@
+--- grub-0.95/lib/device.c.moreraid 2004-11-30 17:09:36.736099360 -0500
++++ grub-0.95/lib/device.c 2004-11-30 17:12:17.319686944 -0500
+@@ -544,6 +544,17 @@
+ }
+
+ static void
++get_cciss_disk_name (char * name, int controller, int drive)
++{
++ sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
++}
++
++static void
++get_cpqarray_disk_name (char * name, int controller, int drive)
++{
++ sprintf (name, "/dev/ida/c%dd%d", controller, drive);
++}
++static void
+ get_ataraid_disk_name (char *name, int unit)
+ {
+ sprintf (name, "/dev/ataraid/d%c", unit + '0');
+@@ -920,7 +931,7 @@
+
+ for (controller = 0; controller < 8; controller++)
+ {
+- for (drive = 0; drive < 15; drive++)
++ for (drive = 0; drive < 32; drive++)
+ {
+ char name[24];
+
+@@ -940,6 +951,70 @@
+ }
+ }
+ #endif /* __linux__ */
++
++#ifdef __linux__
++ /* This is for cciss - we have
++ /dev/cciss/c<controller>d<logical drive>p<partition>.
++
++ cciss driver currently supports up to 8 controllers, 16 logical
++ drives, and 7 partitions. */
++ {
++ int controller, drive;
++
++ for (controller = 0; controller < 8; controller++)
++ {
++ for (drive = 0; drive < 16; drive++)
++ {
++ char name[24];
++
++ get_cciss_disk_name (name, controller, drive);
++ if (check_device (name))
++ {
++ (*map)[num_hd + 0x80] = strdup (name);
++ assert ((*map)[num_hd + 0x80]);
++
++ /* If the device map file is opened, write the map. */
++ if (fp)
++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++
++ num_hd++;
++ }
++ }
++ }
++ }
++#endif /* __linux__ */
++
++#ifdef __linux__
++ /* This is for cpqarray - we have
++ /dev/ida/c<controller>d<logical drive>p<partition>.
++
++ cpqarray driver currently supports up to 8 controllers, 16 logical
++ drives, and 15 partitions. */
++ {
++ int controller, drive;
++
++ for (controller = 0; controller < 8; controller++)
++ {
++ for (drive = 0; drive < 15; drive++)
++ {
++ char name[24];
++
++ get_cpqarray_disk_name (name, controller, drive);
++ if (check_device (name))
++ {
++ (*map)[num_hd + 0x80] = strdup (name);
++ assert ((*map)[num_hd + 0x80]);
++
++ /* If the device map file is opened, write the map. */
++ if (fp)
++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++
++ num_hd++;
++ }
++ }
++ }
++ }
++#endif /* __linux__ */
+
+ /* OK, close the device map file if opened. */
+ if (fp)
diff --git a/abs/not_built/core/grub-gfx/special-devices.patch b/abs/not_built/core/grub-gfx/special-devices.patch
new file mode 100644
index 0000000..894f3e8
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/special-devices.patch
@@ -0,0 +1,18 @@
+--- grub-0.93/lib/device.c.raid 2002-05-20 05:53:46.000000000 -0400
++++ grub-0.93/lib/device.c 2002-12-28 23:24:10.000000000 -0500
+@@ -689,7 +689,14 @@
+ if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+ strcpy (dev + strlen(dev) - 5, "/part");
+ }
+- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
++
++ sprintf (dev + strlen(dev), "%s%d",
++ /* Compaq smart and others */
++ (strncmp(dev, "/dev/ida/", 9) == 0 ||
++ strncmp(dev, "/dev/ataraid/", 13) == 0 ||
++ strncmp(dev, "/dev/cciss/", 11) == 0 ||
++ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++ ((partition >> 16) & 0xFF) + 1);
+
+ /* Open the partition. */
+ fd = open (dev, O_RDWR);
diff --git a/abs/not_built/core/grub-gfx/splash.xpm.gz b/abs/not_built/core/grub-gfx/splash.xpm.gz
new file mode 100644
index 0000000..e44af43
--- /dev/null
+++ b/abs/not_built/core/grub-gfx/splash.xpm.gz
Binary files differ
diff --git a/abs/not_built/core/hal-info/PKGBUILD b/abs/not_built/core/hal-info/PKGBUILD
new file mode 100644
index 0000000..ca6f5ad
--- /dev/null
+++ b/abs/not_built/core/hal-info/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 61557 2009-12-19 19:17:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=hal-info
+_date=20091130
+pkgver=0.${_date}
+pkgrel=1
+pkgdesc="Hardware Abstraction Layer information files"
+arch=(any)
+license=('GPL' 'custom')
+url="http://www.freedesktop.org/wiki/Software/hal"
+source=(http://hal.freedesktop.org/releases/hal-info-${_date}.tar.gz)
+md5sums=('34375489a02a00b250fdc0b280be11b8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_date}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-killswitch-dell-wlan=no --enable-killswitch-dell-bluetooth=no \
+ --enable-killswitch-dell-wwan=no || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/not_built/core/hal/PKGBUILD b/abs/not_built/core/hal/PKGBUILD
new file mode 100644
index 0000000..6e928fd
--- /dev/null
+++ b/abs/not_built/core/hal/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 82401 2010-06-10 21:48:17Z thomas $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=hal
+pkgver=0.5.14
+pkgrel=4
+pkgdesc="Hardware Abstraction Layer"
+arch=(i686 x86_64)
+license=('GPL' 'custom')
+url="http://www.freedesktop.org/wiki/Software/hal"
+depends=('dbus-glib>=0.82' 'libusb>=0.1.12' 'udev>=146' 'filesystem>=0.7.1-5' 'hal-info>=0.20090716' 'eject' 'dmidecode' 'pciutils>=3.0.2' 'usbutils>=0.73-5' 'pm-utils>=1.2.5' 'consolekit>=0.4.1' 'util-linux-ng>=2.16')
+makedepends=('pkgconfig' 'gperf')
+options=('!libtool' '!makeflags')
+install=hal.install
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+ hal
+ hal-0.5.9-hide-diagnostic.patch
+ hal-remove-dell-killswitch.patch
+ hal-KVM-evdev.patch
+ hal-HDAPS-blacklist.patch
+ hal-xen-unignore-axes.patch
+ hal-use-at-console.patch
+ fix-libusb-detection.patch
+ dbus-error-init.patch
+ path-max.patch
+ handle-input-touchpad.patch
+ macbook-fix-ioperm.patch)
+md5sums=('e9163df591a6f38f59fdbfe33e73bf20'
+ '277e96ac130d7bfce0b30f0b80db8782'
+ '4d4b6801a1cedca22b8bdd9db73b16fb'
+ '6d87c3e63184ae3a69caafc846f538a3'
+ '6507e5091ee2d11a87ae738a8e2caecb'
+ '1171c2d83b76059f2da7a3538e08fa4e'
+ '52bd305299aa22ae07f1a862c22d30fa'
+ '3f11234fb5e5044fbfc5199ec65b182c'
+ 'da088f12cfc2d190bbf95b747e19ab9e'
+ '634f4ec2203eff7de8fa2ed2c6b9cbe0'
+ 'f8c9b3a40d03907b498feef571d42466'
+ '0575677614db0632b17b1a719798c7e0'
+ '46a5db3ff896ee37762aa8d7e70942c4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/hal-0.5.9-hide-diagnostic.patch" || return 1
+ patch -Np1 -i "${srcdir}/hal-remove-dell-killswitch.patch" || return 1
+ patch -Np1 -i "${srcdir}/hal-KVM-evdev.patch" || return 1
+ patch -Np1 -i "${srcdir}/hal-HDAPS-blacklist.patch" || return 1
+ patch -Np1 -i "${srcdir}/hal-xen-unignore-axes.patch" || return 1
+ patch -Np1 -i "${srcdir}/hal-use-at-console.patch" || return 1
+ patch -Np1 -i "${srcdir}/fix-libusb-detection.patch" || return 1
+ patch -Np1 -i "${srcdir}/dbus-error-init.patch" || return 1
+ patch -Np1 -i "${srcdir}/path-max.patch" || return 1
+ patch -Np1 -i "${srcdir}/handle-input-touchpad.patch" || return 1
+ patch -Np1 -i "${srcdir}/macbook-fix-ioperm.patch" || return 1
+
+ libtoolize --force || return 1
+ aclocal || return 1
+ autoconf || return 1
+ automake || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/hal --with-udev-prefix=/etc \
+ --enable-static=no --disable-acpi-ibm \
+ --disable-docbook-docs --disable-console-kit \
+ --disable-policy-kit --disable-acl-management \
+ --enable-umount-helper --disable-smbios \
+ --with-hal-user=hal --with-hal-group=hal \
+ --with-pid-file=/var/run/hald.pid \
+ --disable-gtk-doc || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 -d "${pkgdir}/media" || return 1
+ install -m755 "${srcdir}/hal" "${pkgdir}/etc/rc.d/" || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+
+ # Fix udev rule location
+ install -d -m755 "${pkgdir}/lib"
+ mv "${pkgdir}/etc/udev" "${pkgdir}/lib/"
+}
diff --git a/abs/not_built/core/hal/cryptsetup_location.patch b/abs/not_built/core/hal/cryptsetup_location.patch
new file mode 100644
index 0000000..1e4f5ef
--- /dev/null
+++ b/abs/not_built/core/hal/cryptsetup_location.patch
@@ -0,0 +1,36 @@
+diff -Naur hal-0.5.8.1/tools/linux/hal-luks-remove-linux hal-0.5.8.1-new/tools/linux/hal-luks-remove-linux
+--- hal-0.5.8.1/tools/linux/hal-luks-remove-linux 2006-09-19 22:23:25.000000000 +0200
++++ hal-0.5.8.1-new/tools/linux/hal-luks-remove-linux 2007-02-11 13:04:46.000000000 +0100
+@@ -6,7 +6,7 @@
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License version 2.
+
+-CRYPTSETUP=/sbin/cryptsetup
++CRYPTSETUP=/usr/sbin/cryptsetup
+
+ echo LUKS cryptotext device $HAL_PROP_INFO_UDI is going away
+
+diff -Naur hal-0.5.8.1/tools/linux/hal-luks-setup-linux hal-0.5.8.1-new/tools/linux/hal-luks-setup-linux
+--- hal-0.5.8.1/tools/linux/hal-luks-setup-linux 2006-09-19 22:23:25.000000000 +0200
++++ hal-0.5.8.1-new/tools/linux/hal-luks-setup-linux 2007-02-11 13:04:45.000000000 +0100
+@@ -9,7 +9,7 @@
+ read password
+ PASSWORD=${PASSWORD//[^[:alnum:]_=[:space:]:.+-]/@}
+
+-CRYPTSETUP=/sbin/cryptsetup
++CRYPTSETUP=/usr/sbin/cryptsetup
+
+ if [ ! -f $CRYPTSETUP ]; then
+ echo org.freedesktop.Hal.Device.Volume.Crypto.SetupError >&2
+diff -Naur hal-0.5.8.1/tools/linux/hal-luks-teardown-linux hal-0.5.8.1-new/tools/linux/hal-luks-teardown-linux
+--- hal-0.5.8.1/tools/linux/hal-luks-teardown-linux 2006-09-19 22:23:25.000000000 +0200
++++ hal-0.5.8.1-new/tools/linux/hal-luks-teardown-linux 2007-02-11 13:04:44.000000000 +0100
+@@ -6,7 +6,7 @@
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License version 2.
+
+-CRYPTSETUP=/sbin/cryptsetup
++CRYPTSETUP=/usr/sbin/cryptsetup
+
+ if [ ! -f $CRYPTSETUP ]; then
+ echo org.freedesktop.Hal.Device.Volume.Crypto.TeardownError >&2
diff --git a/abs/not_built/core/hal/dbus-error-init.patch b/abs/not_built/core/hal/dbus-error-init.patch
new file mode 100644
index 0000000..fb3ad02
--- /dev/null
+++ b/abs/not_built/core/hal/dbus-error-init.patch
@@ -0,0 +1,231 @@
+From dcb2829b8eff61463b0869614ddb07b1c86cecaa Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Wed, 30 Dec 2009 11:42:52 +0000
+Subject: linux/probe-input: don't use error prio init
+
+it may happen in the out: case that LIBHAL_FREE_DBUS_ERROR (&error) is
+called before the error structure is initialized via
+dbus_error_init (&error). This could lead to a segfault during startup
+as seen in dmesg:
+
+|Intel AES-NI instructions are not detected.
+|padlock: VIA PadLock not detected.
+|hald-probe-inpu[1793]: segfault at 2 ip 00007f656fb68969 sp 00007fff39eeb950 error 4 in libc-2.10.2.so[7f656faf3000+14a000]
+|hald-probe-inpu[1796]: segfault at 2 ip 00007fa2c3293969 sp 00007fffd92a5dd0 error 4 in libc-2.10.2.so[7fa2c321e000+14a000]
+|hald-probe-inpu[1797]: segfault at 2 ip 00007f1d08ba2969 sp 00007fff34244e30 error 4 in libc-2.10.2.so[7f1d08b2d000+14a000]
+|hald-probe-inpu[1799]: segfault at 2 ip 00007f35c0e3d969 sp 00007fffe5ec7ee0 error 4 in libc-2.10.2.so[7f35c0dc8000+14a000]
+|hald-probe-inpu[1800]: segfault at 2 ip 00007f931c556969 sp 00007fffe1825b60 error 4 in libc-2.10.2.so[7f931c4e1000+14a000]
+|hald-probe-inpu[1801]: segfault at 2 ip 00007f5156d9a969 sp 00007fff4e620af0 error 4 in libc-2.10.2.so[7f5156d25000+14a000]
+|RPC: Registered udp transport module.
+|RPC: Registered tcp transport module.
+
+What I run into seems to be reported as Debian #562068 [0]. This patch
+makes the segfault go away on my machine.
+
+[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562068
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/probing/probe-input.c b/hald/linux/probing/probe-input.c
+index 94e9929..cad47d3 100644
+--- a/hald/linux/probing/probe-input.c
++++ b/hald/linux/probing/probe-input.c
+@@ -70,6 +70,7 @@ main (int argc, char *argv[])
+ fd = -1;
+
+ setup_logger ();
++ dbus_error_init (&error);
+
+ button_type = getenv ("HAL_PROP_BUTTON_TYPE");
+ if (button_type == NULL)
+@@ -96,7 +97,6 @@ main (int argc, char *argv[])
+ if (udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+--
+cgit v0.8.3-6-g21f6
+From baa61a879985d63f549854518ef14efd40e62e8c Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Wed, 24 Feb 2010 16:19:28 +0000
+Subject: Make sure dbus_error_init() is called before LIBHAL_FREE_DBUS_ERROR()
+
+If dbus_error_init() is not called before LIBHAL_FREE_DBUS_ERROR() is
+called on that error, then it is uninitialized and may segfault. This
+means that dbus_error_init() must be called before any "goto out" if
+"out:" calls LIBHAL_FREE_DBUS_ERROR().
+
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/probing/probe-hiddev.c b/hald/linux/probing/probe-hiddev.c
+index 45d2084..bffc040 100644
+--- a/hald/linux/probing/probe-hiddev.c
++++ b/hald/linux/probing/probe-hiddev.c
+@@ -57,11 +57,12 @@ main (int argc, char *argv[])
+ /* assume failure */
+ ret = 1;
+
++ dbus_error_init (&error);
++
+ udi = getenv ("UDI");
+ if (udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-ieee1394-unit.c b/hald/linux/probing/probe-ieee1394-unit.c
+index 70b0f86..aaa92e2 100644
+--- a/hald/linux/probing/probe-ieee1394-unit.c
++++ b/hald/linux/probing/probe-ieee1394-unit.c
+@@ -388,6 +388,8 @@ int main (int argc, char *argv[])
+
+ setup_logger ();
+
++ dbus_error_init (&error);
++
+ udi = getenv ("UDI");
+ if (udi == NULL)
+ goto out;
+@@ -396,7 +398,6 @@ int main (int argc, char *argv[])
+ if (ieee1394_udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-net-bluetooth.c b/hald/linux/probing/probe-net-bluetooth.c
+index 0b1b912..e911eea 100644
+--- a/hald/linux/probing/probe-net-bluetooth.c
++++ b/hald/linux/probing/probe-net-bluetooth.c
+@@ -141,6 +141,8 @@ main (int argc, char *argv[])
+ DBusMessage *reply = NULL;
+ DBusError error;
+
++ dbus_error_init (&error);
++
+ udi = getenv ("UDI");
+ if (udi == NULL)
+ goto out;
+@@ -151,8 +153,6 @@ main (int argc, char *argv[])
+
+ HAL_INFO (("Investigating '%s'", iface));
+
+- dbus_error_init (&error);
+-
+ if ((conn = dbus_bus_get (DBUS_BUS_SYSTEM, &error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-printer.c b/hald/linux/probing/probe-printer.c
+index 91ed7bc..7c6d1c6 100644
+--- a/hald/linux/probing/probe-printer.c
++++ b/hald/linux/probing/probe-printer.c
+@@ -66,6 +66,8 @@ main (int argc, char *argv[])
+ ret = 1;
+
+ setup_logger ();
++
++ dbus_error_init (&error);
+
+ udi = getenv ("UDI");
+ if (udi == NULL) {
+@@ -73,7 +75,6 @@ main (int argc, char *argv[])
+ goto out;
+ }
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
+ HAL_ERROR (("ctx init failed"));
+ goto out;
+diff --git a/hald/linux/probing/probe-smbios.c b/hald/linux/probing/probe-smbios.c
+index 0bc9689..15c0d4f 100644
+--- a/hald/linux/probing/probe-smbios.c
++++ b/hald/linux/probing/probe-smbios.c
+@@ -129,6 +129,8 @@ main (int argc, char *argv[])
+ ret = 1;
+
+ setup_logger ();
++
++ dbus_error_init (&error);
+
+ udi = getenv ("UDI");
+ if (udi == NULL) {
+@@ -136,7 +138,6 @@ main (int argc, char *argv[])
+ goto out;
+ }
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
+ HAL_ERROR (("ctx init failed"));
+ goto out;
+diff --git a/hald/linux/probing/probe-storage.c b/hald/linux/probing/probe-storage.c
+index 824a82e..dd524ca 100644
+--- a/hald/linux/probing/probe-storage.c
++++ b/hald/linux/probing/probe-storage.c
+@@ -109,6 +109,8 @@ main (int argc, char *argv[])
+ /* assume failure */
+ ret = 1;
+
++ dbus_error_init (&error);
++
+ if ((udi = getenv ("UDI")) == NULL)
+ goto out;
+ if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
+@@ -127,7 +129,6 @@ main (int argc, char *argv[])
+ else
+ only_check_for_fs = FALSE;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-video4linux.c b/hald/linux/probing/probe-video4linux.c
+index cf913c0..7bc13e8 100644
+--- a/hald/linux/probing/probe-video4linux.c
++++ b/hald/linux/probing/probe-video4linux.c
+@@ -58,6 +58,8 @@ main (int argc, char *argv[])
+
+ setup_logger ();
+
++ dbus_error_init (&error);
++
+ device_file = getenv ("HAL_PROP_VIDEO4LINUX_DEVICE");
+ if (device_file == NULL)
+ goto out;
+@@ -66,7 +68,6 @@ main (int argc, char *argv[])
+ if (udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ ctx = libhal_ctx_init_direct (&error);
+ if (ctx == NULL)
+ goto out;
+diff --git a/hald/linux/probing/probe-volume.c b/hald/linux/probing/probe-volume.c
+index 0de1b91..7268fff 100644
+--- a/hald/linux/probing/probe-volume.c
++++ b/hald/linux/probing/probe-volume.c
+@@ -318,6 +318,8 @@ main (int argc, char *argv[])
+ /* assume failure */
+ ret = 1;
+
++ dbus_error_init (&error);
++
+ if ((udi = getenv ("UDI")) == NULL)
+ goto out;
+ if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
+@@ -346,7 +348,6 @@ main (int argc, char *argv[])
+
+ fsusage = getenv ("HAL_PROP_VOLUME_FSUSAGE");
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/not_built/core/hal/fix-libusb-detection.patch b/abs/not_built/core/hal/fix-libusb-detection.patch
new file mode 100644
index 0000000..d4f966d
--- /dev/null
+++ b/abs/not_built/core/hal/fix-libusb-detection.patch
@@ -0,0 +1,66 @@
+From fce91df8ba7f305c624baf1f06961c040b088ecc Mon Sep 17 00:00:00 2001
+From: Joe Marcus Clarke <marcus@FreeBSD.org>
+Date: Tue, 08 Dec 2009 00:05:27 +0000
+Subject: Fix libusb detection on Linux
+
+Adjust the FreeBSD libusb20 code so that it does not interfere with the
+Linux libusb detection.
+
+Reported by: Robby Workman <rw@rlworkman.net>
+---
+diff --git a/configure.in b/configure.in
+index a8fda51..8363595 100644
+--- a/configure.in
++++ b/configure.in
+@@ -479,9 +479,6 @@ if test "x$with_libpci" != xno ; then
+ fi
+ AM_CONDITIONAL([HAVE_LIBPCI], [test "x$USE_LIBPCI" = "xyes"])
+
+-USE_LIBUSB20=no
+-USE_LIBUSB=no
+-LIBUSB20_LIBS=""
+ AC_ARG_WITH([backend],
+ AS_HELP_STRING([--with-backend=<name>],
+ [backend to use (linux/solaris/freebsd/dummy)]),
+@@ -510,21 +507,25 @@ AM_CONDITIONAL(HALD_COMPILE_FREEBSD, [test x$HALD_BACKEND = xfreebsd], [Compilin
+ AM_CONDITIONAL(HALD_COMPILE_SOLARIS, [test x$HALD_BACKEND = xsolaris], [Compiling for Solaris])
+ AC_SUBST(HALD_BACKEND)
+ if test "x$HALD_BACKEND" = "xfreebsd"; then
+- AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_LIBUSB20=yes], [USE_LIBUSB20=no])
+-fi
+-if test "x$USE_LIBUSB20" = "xno"; then
+- AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_LIBUSB=yes], [USE_LIBUSB=no])
+-fi
+-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB20" = "xyes"])
+-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB" = "xyes"])
+-if test "x$USE_LIBUSB20" = "xyes"; then
+- AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20])
+- LIBUSB20_LIBS="-lusb20"
+-elif test "x$USE_LIBUSB" = "xyes"; then
+- AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20])
+- LIBUSB20_LIBS="-lusb"
++ USE_BSDLIBUSB20=no
++ USE_BSDLIBUSB=no
++ LIBUSB20_LIBS=""
++ AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_BSDLIBUSB20=yes], [USE_BSDLIBUSB20=no])
++ if test "x$USE_BSDLIBUSB20" = "xno"; then
++ AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_BSDLIBUSB=yes], [USE_BSDLIBUSB=no])
++ fi
++ AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_BSDLIBUSB20" = "xyes" -o "x$USE_BSDLIBUSB" = "xyes"])
++ if test "x$USE_BSDLIBUSB20" = "xyes"; then
++ AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20])
++ LIBUSB20_LIBS="-lusb20"
++ elif test "x$USE_BSDLIBUSB" = "xyes"; then
++ AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20])
++ LIBUSB20_LIBS="-lusb"
++ fi
++ AC_SUBST(LIBUSB20_LIBS)
++else
++ AM_CONDITIONAL([HAVE_LIBUSB20], [false])
+ fi
+-AC_SUBST(LIBUSB20_LIBS)
+
+ dnl DBUS API is subject to changes
+ AC_DEFINE_UNQUOTED(DBUS_API_SUBJECT_TO_CHANGE, [], [DBUS API is subject to change])
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/not_built/core/hal/fix-udev-compatibility.patch b/abs/not_built/core/hal/fix-udev-compatibility.patch
new file mode 100644
index 0000000..2cfa3ad
--- /dev/null
+++ b/abs/not_built/core/hal/fix-udev-compatibility.patch
@@ -0,0 +1,31 @@
+diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c
+--- hal-0.5.11.orig/hald/linux/blockdev.c 2008-05-08 01:23:41.000000000 +0200
++++ hal-0.5.11/hald/linux/blockdev.c 2008-09-12 19:38:36.000000000 +0200
+@@ -1750,11 +1750,11 @@
+ char *ret;
+ char *u_stdout;
+ int u_exit_status;
+- const char *argv[] = {"/usr/bin/udevinfo", "--root", "--query", "name", "--path", NULL, NULL};
++ const char *argv[] = {"/sbin/udevadm", "info", "--root", "--query", "name", "--path", NULL, NULL};
+ GError *g_error;
+
+ ret = NULL;
+- argv[5] = sysfs_path;
++ argv[6] = sysfs_path;
+
+ g_error = NULL;
+
+diff -Nur hal-0.5.11.orig/hald/linux/coldplug.c hal-0.5.11/hald/linux/coldplug.c
+--- hal-0.5.11.orig/hald/linux/coldplug.c 2008-05-08 01:23:32.000000000 +0200
++++ hal-0.5.11/hald/linux/coldplug.c 2008-09-12 19:37:47.000000000 +0200
+@@ -149,8 +149,8 @@
+ static gboolean
+ hal_util_init_sysfs_to_udev_map (void)
+ {
+- char *udevdb_export_argv[] = { "/usr/bin/udevinfo", "-e", NULL };
+- char *udevroot_argv[] = { "/usr/bin/udevinfo", "-r", NULL };
++ char *udevdb_export_argv[] = { "/sbin/udevadm", "info", "-e", NULL };
++ char *udevroot_argv[] = { "/sbin/udevadm", "info", "-r", NULL };
+ int udevinfo_exitcode;
+ UdevInfo *info = NULL;
+ char *p;
diff --git a/abs/not_built/core/hal/hal b/abs/not_built/core/hal/hal
new file mode 100644
index 0000000..012d456
--- /dev/null
+++ b/abs/not_built/core/hal/hal
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ #Check for running dbus, start when not running
+ ck_daemon dbus && /etc/rc.d/dbus start
+ if [ -x /etc/rc.d/acpid ]; then
+ ck_daemon acpid && /etc/rc.d/acpid start
+ fi
+ stat_busy "Starting Hardware Abstraction Layer"
+ if [ ! -x /var/cache/hald ] ; then
+ install -m755 -g 82 -o 82 -d /var/cache/hald
+ fi
+ if [ ! -x /var/run/hald ]; then
+ install -m755 -g 82 -o 82 -d /var/run/hald
+ fi
+ if [ ! -x /var/run/hald/hald-local ]; then
+ install -m755 -g 0 -o 0 -d /var/run/hald/hald-local
+ fi
+ if [ ! -x /var/run/hald/hald-runner ]; then
+ install -m755 -g 0 -o 0 -d /var/run/hald/hald-runner
+ fi
+ /usr/sbin/hald
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon hal
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Hardware Abstraction Layer"
+ [ -f /var/run/hald.pid ] && kill `cat /var/run/hald.pid` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon hal
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch b/abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch
new file mode 100644
index 0000000..58c882d
--- /dev/null
+++ b/abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch
@@ -0,0 +1,14 @@
+--- hal-0.5.9/fdi/policy/10osvendor/20-storage-methods.fdi.orig 2007-05-01 21:39:31.000000000 +0000
++++ hal-0.5.9/fdi/policy/10osvendor/20-storage-methods.fdi 2007-05-01 21:51:14.000000000 +0000
+@@ -100,6 +100,11 @@
+ </match>
+ </match>
+
++ <!-- Hide partitions marked as Compaq Diagnostics -->
++ <match key="volume.partition.type" string="0x12">
++ <merge key="volume.ignore" type="bool">true</merge>
++ </match>
++
+ <!-- EFI firmware partitions -->
+ <match key="volume.fstype" string="vfat">
+ <match key="volume.label" string="EFI">
diff --git a/abs/not_built/core/hal/hal-HDAPS-blacklist.patch b/abs/not_built/core/hal/hal-HDAPS-blacklist.patch
new file mode 100644
index 0000000..8a68228
--- /dev/null
+++ b/abs/not_built/core/hal/hal-HDAPS-blacklist.patch
@@ -0,0 +1,30 @@
+From e1f85fe0cdfa7e4d4ce7a811d0b0c90bf38fba0c Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 25 Jun 2009 09:47:27 +1000
+Subject: [PATCH] Blacklist HDAPS accelerometer device from being picked up in X.
+
+This device posts accelerometer data through ABS_X/ABS_Y, making X unusable
+if it's controlling the pointer.
+---
+ fdi/policy/10osvendor/10-x11-input.fdi | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index a342421..89ba672 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -38,5 +38,11 @@
+ <merge key="input.x11_driver" type="string">evdev</merge>
+ </match>
+ </match>
++
++ <!-- http://bugs.freedesktop.org/show_bug.cgi?id=22442
++ Posts accel data through ABS_X/ABS_Y, makes X unusable -->
++ <match key="info.product" contains="ThinkPad HDAPS accelerometer data">
++ <remove key="input.x11_driver" />
++ </match>
+ </device>
+ </deviceinfo>
+--
+1.6.3.rc1.2.g0164.dirty
+
diff --git a/abs/not_built/core/hal/hal-KVM-evdev.patch b/abs/not_built/core/hal/hal-KVM-evdev.patch
new file mode 100644
index 0000000..917655e
--- /dev/null
+++ b/abs/not_built/core/hal/hal-KVM-evdev.patch
@@ -0,0 +1,36 @@
+From 7618498eec840cb26474dc47821e083957772706 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri, 20 Mar 2009 14:37:24 +1000
+Subject: [PATCH] Add x11_driver for American Megatrends KVM.
+
+This device exposes only ABS_X, ABS_Y and buttons. It gets input.joystick
+assigned but not input.mouse, hence the default evdev mapping doesn't pick up
+on it.
+
+Red Hat Bug 484776 <https://bugzilla.redhat.com/show_bug.cgi?id=484776>
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ fdi/policy/10osvendor/10-x11-input.fdi | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index 769f75b..eb9767e 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -2,6 +2,12 @@
+ <deviceinfo version="0.2">
+ <device>
+
++ <!-- This KVMS has abs x/y and buttons. It only has inputInfo.joystick
++ set by hal and doesn't get picked up by default -->
++ <match key="input.product" contains="American Megatrends Inc. Virtual Keyboard and Mouse">
++ <merge key="input.x11_driver" type="string">evdev</merge>
++ </match>
++
+ <!-- KVM emulates a USB graphics tablet which works in absolute coordinate mode -->
+ <match key="input.product" contains="QEMU USB Tablet">
+ <merge key="input.x11_driver" type="string">evdev</merge>
+--
+1.6.0.6
+
diff --git a/abs/not_built/core/hal/hal-policy.patch b/abs/not_built/core/hal/hal-policy.patch
new file mode 100644
index 0000000..96528b5
--- /dev/null
+++ b/abs/not_built/core/hal/hal-policy.patch
@@ -0,0 +1,32 @@
+--- hal-0.5.11/hal.conf.in 2008-05-27 16:09:25.000000000 +0200
++++ hal-0.5.11/hal.conf.in 2008-05-27 16:21:28.000000000 +0200
+@@ -37,9 +37,27 @@
+ receive_sender="org.freedesktop.Hal"/>
+ </policy>
+
+- <!-- Default policy for the exported interfaces; if PolicyKit is not used
+- for access control you will need to modify this -->
++ <!-- Default policy for the exported interfaces -->
+ <policy context="default">
++ <deny send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
++ <deny send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
++ <deny send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
++ <deny send_interface="org.freedesktop.Hal.Device.Volume"/>
++ <deny send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
++ </policy>
++
++ <policy group="power">
++ <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
++ <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
++ </policy>
++
++ <policy group="storage">
++ <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
++ <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
++ </policy>
++
++ <!-- You can change this to a more suitable user, or make per-group -->
++ <policy user="0">
+ <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
+ <allow send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
+ <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
diff --git a/abs/not_built/core/hal/hal-remove-dell-killswitch.patch b/abs/not_built/core/hal/hal-remove-dell-killswitch.patch
new file mode 100644
index 0000000..ae0cf7a
--- /dev/null
+++ b/abs/not_built/core/hal/hal-remove-dell-killswitch.patch
@@ -0,0 +1,201 @@
+diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux
+--- hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux 2008-08-22 07:34:47.000000000 +0100
++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux 2009-03-03 10:45:20.000000000 +0000
+@@ -8,11 +8,6 @@
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+
+-DELL_WCTL=/usr/bin/dellWirelessCtl
+-if [ -x "/usr/sbin/dellWirelessCtl" ]; then
+- DELL_WCTL=/usr/sbin/dellWirelessCtl
+-fi
+-
+ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then
+ if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ value="`hal-system-sonypic getbluetooth`"
+@@ -22,25 +17,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ exit 1
+ fi
+ exit ${value}
+- elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- $DELL_WCTL --st_bt
+- value=$?
+- if [ "$value" = "0" ]; then
+- exit 1
+- elif [ "$value" = "1" ]; then
+- exit 0
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $value" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+ elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -r "$HAL_PROP_LINUX_SYSFS_PATH" ]; then
+ read value < $HAL_PROP_LINUX_SYSFS_PATH 2> /dev/null
+ if [ $? -eq 0 ]; then
+@@ -55,56 +31,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ echo "Access type not supported" >&2
+ exit 1
+ fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- $DELL_WCTL --st_wlan
+- value=$?
+- if [ "$value" = "0" ]; then
+- exit 1
+- elif [ "$value" = "1" ]; then
+- exit 0
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $value" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- $DELL_WCTL --st_wwan
+- value=$?
+- if [ "$value" = "0" ]; then
+- exit 1
+- elif [ "$value" = "1" ]; then
+- exit 0
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $value" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+ else
+ echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+ echo "Killswitch type not supported" >&2
+diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux
+--- hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux 2008-10-24 09:45:54.000000000 +0100
++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux 2009-03-03 10:44:49.000000000 +0000
+@@ -8,11 +8,6 @@
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+
+-DELL_WCTL=/usr/bin/dellWirelessCtl
+-if [ -x "/usr/sbin/dellWirelessCtl" ]; then
+- DELL_WCTL=/usr/sbin/dellWirelessCtl
+-fi
+-
+ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then
+ if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ hal-system-sonypic setbluetooth $value
+@@ -23,26 +18,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ exit 1
+ fi
+ exit 0
+- elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- if [ "$value" = "true" ]; then
+- $DELL_WCTL --bt 1
+- ret=$?
+- else
+- $DELL_WCTL --bt 0
+- ret=$?
+- fi
+- if [ "$ret" != "0" ]; then
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $ret" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+ elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -w "$HAL_PROP_LINUX_SYSFS_PATH" ]; then
+ if [ "$value" = "true" ]; then
+ bit=1;
+@@ -61,60 +36,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ echo "Access type not supported" >&2
+ exit 1
+ fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # As a side effect we disable the physical kill switch
+- # TODO: write our own binary that links with libsmbios?
+- if [ "$value" = "true" ]; then
+- $DELL_WCTL --sw_wlan 0 --wlan 1
+- ret=$?
+- else
+- $DELL_WCTL --sw_wlan 0 --wlan 0
+- ret=$?
+- fi
+- if [ "$ret" != "0" ]; then
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $ret" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # As a side effect we disable the physical kill switch
+- # TODO: write our own binary that links with libsmbios?
+- if [ "$value" = "true" ]; then
+- $DELL_WCTL --sw_wwan 0 --wwan 1
+- ret=$?
+- else
+- $DELL_WCTL --sw_wwan 0 --wwan 0
+- ret=$?
+- fi
+- if [ "$ret" != "0" ]; then
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $ret" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+ else
+ echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+ echo "Killswitch type not supported" >&2
diff --git a/abs/not_built/core/hal/hal-use-at-console.patch b/abs/not_built/core/hal/hal-use-at-console.patch
new file mode 100644
index 0000000..0b32f17
--- /dev/null
+++ b/abs/not_built/core/hal/hal-use-at-console.patch
@@ -0,0 +1,45 @@
+diff -up hal-0.5.13/hal.conf.in.drop-polkit hal-0.5.13/hal.conf.in
+--- hal-0.5.13/hal.conf.in.drop-polkit 2009-02-04 17:07:23.000000000 -0500
++++ hal-0.5.13/hal.conf.in 2009-07-29 23:15:16.866766074 -0400
+@@ -25,7 +25,41 @@
+ send_interface="org.freedesktop.Hal.Device"/>
+ <allow send_destination="org.freedesktop.Hal"
+ send_interface="org.freedesktop.Hal.Manager"/>
++ </policy>
++
++ <!-- Only allow users at the local console to manipulate devices -->
++ <policy at_console="true">
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.DockStation"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.KillSwitch"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Leds"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.LightSensor"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Storage"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Storage.Removable"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Volume"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.WakeOnLan"/>
++
++ </policy>
+
++ <!-- well,...and root too -->
++ <policy user="root">
+ <allow send_destination="org.freedesktop.Hal"
+ send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
+ <allow send_destination="org.freedesktop.Hal"
diff --git a/abs/not_built/core/hal/hal-xen-unignore-axes.patch b/abs/not_built/core/hal/hal-xen-unignore-axes.patch
new file mode 100644
index 0000000..b248639
--- /dev/null
+++ b/abs/not_built/core/hal/hal-xen-unignore-axes.patch
@@ -0,0 +1,39 @@
+From e48f59d2b9bcb43ea8a7b8c884dcb73c8f65b170 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 19 Oct 2009 14:27:20 +1000
+Subject: [PATCH] Un-ignore absolute axes for the Xen Virtual Pointer.
+
+The evdev-internal axis type picking fails for the Xen Virtual Pointer as it
+exposes both relative and absolute axes. Evdev picks the relative axes by
+default, leading to a immovable pointer if the Xen backend only sends
+absolute coordinates.
+
+Explicitly tell evdev to not ignore the absolute axes.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=523914
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ fdi/policy/10osvendor/10-x11-input.fdi | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index 89ba672..752c4ab 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -44,5 +44,12 @@
+ <match key="info.product" contains="ThinkPad HDAPS accelerometer data">
+ <remove key="input.x11_driver" />
+ </match>
++
++ <!-- https://bugzilla.redhat.com/show_bug.cgi?id=523914
++ Mouse does not move in PV Xen guest -->
++ <match key="info.product" contains="Xen Virtual Pointer">
++ <merge key="input.x11_options.IgnoreAbsoluteAxes" type="string">false</merge>
++ <merge key="input.x11_options.IgnoreRelativeAxes" type="string">false</merge>
++ </match>
+ </device>
+ </deviceinfo>
+--
+1.6.2.5
+
diff --git a/abs/not_built/core/hal/hal.install b/abs/not_built/core/hal/hal.install
new file mode 100644
index 0000000..d6afee3
--- /dev/null
+++ b/abs/not_built/core/hal/hal.install
@@ -0,0 +1,24 @@
+post_install() {
+ getent group hal >/dev/null || usr/sbin/groupadd -g 82 hal
+ getent group optical >/dev/null || usr/sbin/groupadd -g 93 optical
+ getent group floppy >/dev/null || usr/sbin/groupadd -g 94 floppy
+ getent group storage >/dev/null || usr/sbin/groupadd -g 95 storage
+ getent passwd hal >/dev/null || usr/sbin/useradd -c 'HAL daemon' -u 82 -g hal -G optical,floppy,storage -d '/' -s /bin/false hal
+ usr/bin/passwd -l hal &>/dev/null
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+post_remove() {
+ if getent passwd hal &>/dev/null; then
+ usr/sbin/userdel hal
+ fi
+ if getent group hal &>/dev/null; then
+ usr/sbin/groupdel hal
+ fi
+}
diff --git a/abs/not_built/core/hal/handle-input-touchpad.patch b/abs/not_built/core/hal/handle-input-touchpad.patch
new file mode 100644
index 0000000..9cd6464
--- /dev/null
+++ b/abs/not_built/core/hal/handle-input-touchpad.patch
@@ -0,0 +1,101 @@
+From 6dccf8e3ad181e8f56b1d2a994ec50a1953a1c2d Mon Sep 17 00:00:00 2001
+From: Michael Witten <mfwitten@gmail.com>
+Date: Wed, 06 Jan 2010 00:53:17 +0000
+Subject: Policy: handle `input.touchpad' explicitly
+
+This commit essentially duplicates the policy for:
+
+ <match key="info.capabilities" contains="input.mouse">
+
+and then changes `input.mouse' to `input.touchpad'. This
+is necessary because in Linus Torvalds's Linux repo:
+
+ git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+
+the following commit:
+
+ commit 7105d2ea73e1391b681d0e1212c42f561c64d429
+ Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+ Date: Fri Dec 11 23:54:54 2009 -0800
+
+ Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpad
+
+ Relative events are only reported via secondary device therefore device
+ associated with the touchpad should not advertise these capabilities.
+
+ Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+
+made these few changes:
+
+ diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
+ index a3f492a..b03e7e0 100644
+ /--- a/drivers/input/mouse/alps.c
+ /+++ b/drivers/input/mouse/alps.c
+ /@@ -487,6 +487,17 @@ int alps_init(struct psmouse *psmouse)
+ if (alps_hw_init(psmouse))
+ goto init_fail;
+
+ + /*
+ + * Undo part of setup done for us by psmouse core since touchpad
+ + * is not a relative device.
+ + */
+ + __clear_bit(EV_REL, dev1->evbit);
+ + __clear_bit(REL_X, dev1->relbit);
+ + __clear_bit(REL_Y, dev1->relbit);
+ +
+ + /*
+ + * Now set up our capabilities.
+ + */
+ dev1->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY);
+ dev1->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH);
+ dev1->keybit[BIT_WORD(BTN_TOOL_FINGER)] |= BIT_MASK(BTN_TOOL_FINGER);
+
+so that HAL no longer adds:
+
+ input.mouse
+
+to an ALPS touchpad's:
+
+ info.capabilities
+
+so that HAL no longer marks the ALPS touchpad with:
+
+ input.x11_driver = 'evdev'
+
+because the policy file:
+
+ fdi/policy/10osvendor/10-x11-input.fdi
+
+doesn't define the policy for:
+
+ <match key="info.capabilities" contains="input.touchpad">
+
+which was previous unnecessary because everything used to
+be caught by the policy for:
+
+ <match key="info.capabilities" contains="input.mouse">
+
+Signed-off-by: Michael Witten <mfwitten@gmail.com>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index cff8fc5..8bbe263 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -16,6 +16,14 @@
+ </match>
+ </match>
+
++ <match key="info.capabilities" contains="input.touchpad">
++ <merge key="input.x11_driver" type="string">mouse</merge>
++ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
++ string="Linux">
++ <merge key="input.x11_driver" type="string">evdev</merge>
++ </match>
++ </match>
++
+ <match key="info.capabilities" contains="input.tablet">
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="Linux">
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/not_built/core/hal/macbook-fix-ioperm.patch b/abs/not_built/core/hal/macbook-fix-ioperm.patch
new file mode 100644
index 0000000..14d0b39
--- /dev/null
+++ b/abs/not_built/core/hal/macbook-fix-ioperm.patch
@@ -0,0 +1,41 @@
+From 597c1ffffd61a15a334ce42f2a569c59f0270bcb Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Thu, 25 Feb 2010 10:25:18 +0000
+Subject: Fix incorrect arguments to ioperm() call
+
+The second argument of ioperm() is not the last port to be accessed
+but rather length of the port range [port, port + len).
+
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/addons/addon-imac-backlight.c b/hald/linux/addons/addon-imac-backlight.c
+index e869192..54e4ea3 100644
+--- a/hald/linux/addons/addon-imac-backlight.c
++++ b/hald/linux/addons/addon-imac-backlight.c
+@@ -158,7 +158,8 @@ main (int argc, char **argv)
+ goto out;
+ }
+
+- if (ioperm(0xB2, 0xB3, 1) < 0)
++ /* Allow access to ports 0xB2 and 0xB3 */
++ if (ioperm(0xB2, 2, 1) < 0)
+ {
+ HAL_ERROR (("ioperm failed (you should be root)."));
+ exit(1);
+diff --git a/hald/linux/addons/addon-macbookpro-backlight.c b/hald/linux/addons/addon-macbookpro-backlight.c
+index 2a6fef6..c1bbbac 100644
+--- a/hald/linux/addons/addon-macbookpro-backlight.c
++++ b/hald/linux/addons/addon-macbookpro-backlight.c
+@@ -507,7 +507,8 @@ main (int argc, char *argv[])
+ state = INREG(0x7ae4);
+ OUTREG(0x7ae4, state);
+
+- if (ioperm (0x300, 0x304, 1) < 0) {
++ /* Allow access to porta 0x300 through 0x304 */
++ if (ioperm (0x300, 5, 1) < 0) {
+ HAL_ERROR (("ioperm failed (you should be root)."));
+ exit(1);
+ }
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/not_built/core/hal/ntfs-mount-fix.patch b/abs/not_built/core/hal/ntfs-mount-fix.patch
new file mode 100644
index 0000000..13597f2
--- /dev/null
+++ b/abs/not_built/core/hal/ntfs-mount-fix.patch
@@ -0,0 +1,18 @@
+--- tools/hal-storage-mount.c.orig 2008-04-21 01:48:27.000000000 +0200
++++ tools/hal-storage-mount.c 2008-04-21 01:47:44.000000000 +0200
+@@ -769,13 +769,13 @@
+
+ if (pol_is_fixed) {
+ if (pol_change_uid) {
+- action = NULL; /* "hal-storage-mount-fixed-extra-options"; TODO: rethink */
++ action = "hal-storage-mount-fixed-extra-options"; /*TODO: rethink */
+ } else {
+ action = "org.freedesktop.hal.storage.mount-fixed";
+ }
+ } else {
+ if (pol_change_uid) {
+- action = NULL; /* "hal-storage-mount-removable-extra-options"; TODO: rethink "extra-options" */
++ action = "hal-storage-mount-removable-extra-options"; /*TODO: rethink "extra-options" */
+ } else {
+ action = "org.freedesktop.hal.storage.mount-removable";
+ }
diff --git a/abs/not_built/core/hal/ntfs3g-valid-options.patch b/abs/not_built/core/hal/ntfs3g-valid-options.patch
new file mode 100644
index 0000000..4731442
--- /dev/null
+++ b/abs/not_built/core/hal/ntfs3g-valid-options.patch
@@ -0,0 +1,11 @@
+--- fdi/policy/10osvendor/20-storage-methods.fdi.orig 2007-10-28 19:40:22.000000000 +0000
++++ fdi/policy/10osvendor/20-storage-methods.fdi 2007-10-28 19:40:58.000000000 +0000
+@@ -240,6 +240,8 @@
+ <append key="volume.mount.valid_options" type="strlist">uid=</append>
+ <append key="volume.mount.valid_options" type="strlist">gid=</append>
+ <append key="volume.mount.valid_options" type="strlist">umask=</append>
++ <append key="volume.mount.valid_options" type="strlist">dmask=</append>
++ <append key="volume.mount.valid_options" type="strlist">fmask=</append>
+ <append key="volume.mount.valid_options" type="strlist">locale=</append>
+ <append key="volume.mount.valid_options" type="strlist">utf8</append>
+ </match>
diff --git a/abs/not_built/core/hal/path-max.patch b/abs/not_built/core/hal/path-max.patch
new file mode 100644
index 0000000..304185d
--- /dev/null
+++ b/abs/not_built/core/hal/path-max.patch
@@ -0,0 +1,31 @@
+From a2c3dd5a04d79265772c09c4280606d5c2ed72c6 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Mon, 04 Jan 2010 15:56:13 +0000
+Subject: Bump HAL_PATH_MAX to 4096
+
+Some bits in the code use realpath() with destination paths of size
+HAL_PATH_MAX. This potentially breaks on systems where PATH_MAX is bigger than
+HAL_PATH_MAX (which was 512 until now).
+
+Since we can't use PATH_MAX directly (due to platforms like GNU/Hurd, which
+apparently don't have it), just bump HAL_PATH_MAX to 4096 (as PATH_MAX is on
+Linux), to avoid potential buffer overflows and also fix hal on Linux when
+enabling FORTIFY in gcc.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25888
+---
+diff --git a/hald/util.h b/hald/util.h
+index c2a1584..7883333 100644
+--- a/hald/util.h
++++ b/hald/util.h
+@@ -38,7 +38,7 @@
+ #endif
+
+ #define HAL_NAME_MAX 256
+-#define HAL_PATH_MAX 512
++#define HAL_PATH_MAX 4096
+
+ gboolean hal_util_remove_trailing_slash (gchar *path);
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/not_built/core/heirloom-mailx/PKGBUILD b/abs/not_built/core/heirloom-mailx/PKGBUILD
new file mode 100644
index 0000000..d7e82f0
--- /dev/null
+++ b/abs/not_built/core/heirloom-mailx/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 160422 2012-06-01 20:13:47Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s@arch@gmail.com>
+# Contributor: Andreas Wagner <Andreas.Wagner@em.uni-frankfurt.de>
+
+pkgname=heirloom-mailx
+pkgver=12.5
+pkgrel=3
+pkgdesc="A commandline utility for sending and receiving email"
+arch=('i686' 'x86_64')
+url="http://heirloom.sourceforge.net/mailx.html"
+license=('custom')
+groups=('base')
+depends=('openssl' 'krb5')
+optdepends=('smtp-forwarder: for sending mail')
+replaces=('mailx' 'mailx-heirloom')
+provides=('mailx' 'mailx-heirloom')
+conflicts=('mailx' 'mailx-heirloom')
+backup=(etc/mail.rc)
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('1998dd6168a68400e533712ae7163c72b6a7c056')
+options=('!makeflags') # Does not build with MAKEFLAGS=-jX, X>1
+
+# source PKGBUILD && mksource
+mksource() {
+ export CVSROOT=:pserver:anonymous@nail.cvs.sourceforge.net:/cvsroot/nail
+ D=nail
+ [ -d "${D}" ] && cvs up "${D}" || cvs co "${D}"
+
+ _dirname=${pkgname}-${pkgver}
+ mv $D ${_dirname}
+ tar -cJv --exclude=CVS -f ${_dirname}.tar.xz ${_dirname}
+ rm -rf ${_dirname}
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's|/etc/nail.rc|/etc/mail.rc|g' mailx.1
+
+ # For Linux and BSD, this should be set.
+ echo "set bsdcompat" >> nail.rc
+
+ sed -i "s/pg/less/" cmd1.c
+
+ echo PREFIX=/usr \
+ MAILRC=/etc/mail.rc \
+ SENDMAIL=/usr/sbin/sendmail \
+ MAILSPOOL=/var/spool/mail \
+ UCBINSTALL=/usr/bin/install > makeflags
+
+ make `cat makeflags` IPv6=-DHAVE_IPv6_FUNCS
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" `cat makeflags` install
+
+ # For compatibility with the old mailx program
+ ln -sf mailx "${pkgdir}"/usr/bin/mail
+ ln -sf mailx.1.gz "${pkgdir}"/usr/share/man/man1/mail.1.gz
+
+ install -D -m0644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/abs/not_built/core/hwdetect/PKGBUILD b/abs/not_built/core/hwdetect/PKGBUILD
new file mode 100644
index 0000000..e386628
--- /dev/null
+++ b/abs/not_built/core/hwdetect/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 86895 2010-08-06 20:29:04Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=hwdetect
+pkgver=2010.08
+pkgrel=1
+pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf / rc.conf support"
+arch=(any)
+license=('GPL')
+depends=('sh' 'awk' 'grep' 'coreutils' 'sed' 'e2fsprogs')
+optdepends=('cryptsetup: for encrypt mkinitcpio config support'
+ 'dmraid: for dmraid mkinitcpio config support'
+ 'lvm2: for lvm2 mkinitcpio config support'
+ 'mdadm: for raid mkinitcpio config support')
+source=(hwdetect)
+
+build() {
+ install -D -m 755 ${srcdir}/hwdetect ${pkgdir}/sbin/hwdetect
+}
+md5sums=('cece9e167bb240c82855ffc3f632a5bb')
diff --git a/abs/not_built/core/hwdetect/hwdetect b/abs/not_built/core/hwdetect/hwdetect
new file mode 100755
index 0000000..280cafa
--- /dev/null
+++ b/abs/not_built/core/hwdetect/hwdetect
@@ -0,0 +1,592 @@
+#! /bin/sh
+# Autodetection script for scanning /sys for hardware
+# for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
+usage () {
+ echo "$0 [options]"
+ echo ""
+ echo " This is a tool that detects/lists modules that are exported by /sys"
+ echo ""
+ echo " Options:"
+ echo " --kernel_version= use kernel version (no autodetect)"
+ echo " --ide-legacy use old ide modules instead of pata"
+ echo " --load-modules load all detected modules"
+ echo " --unload-modules unload all detected modules"
+ echo " --show-modules show all detected modules"
+ echo " --show-modules-order shows load order of detected modules"
+ echo " --show-agp show AGP modules"
+ echo " --show-acpi show ACPI modules"
+ echo " --show-ide show IDE modules"
+ echo " --show-pata show PATA modules"
+ echo " --show-scsi show SCSI modules"
+ echo " --show-sata show SATA modules"
+ echo " --show-usb show USB modules"
+ echo " --show-fw show FIREWIRE modules"
+ echo " --show-net show NETWORK modules"
+ echo " --show-input show INPUT modules"
+ echo " --show-irda show IRDA modules"
+ echo " --show-isdn show ISDN modules"
+ echo " --show-pcmcia show PCMCIA modules"
+ echo " --show-sound show SOUND modules"
+ echo " --show-staging show STAGING modules"
+ echo " --show-video show VIDEO modules"
+ echo " --show-other show OTHER modules"
+ echo ""
+ echo " For /etc/mkinitcpio.conf use:"
+ echo " --filesystem add filesystems to MODULES="
+ echo " --hostcontroller show MODULES= for all hostcontrollers"
+ echo " --vmware add BusLogic to MODULES for vmware"
+ echo " --ati-kms add ati kernel mode setting"
+ echo " --intel-kms add intel kernel mode setting"
+ echo " --nvidia-kms add nvidia kernel mode setting"
+ echo ""
+ echo " --rootdevice= autodetected advanced features of rootdevice"
+ echo " --hooks-dir= use this directory for HOOKS check"
+ echo " --advanced show autodetected advanced HOOKS"
+ echo " --hooks show HOOKS="
+ echo " --dmraid add dmraid to HOOKS="
+ echo " --keymap add keymap to HOOKS="
+ echo " --usb add usb to HOOKS="
+ echo " --usbinput add usbinput to HOOKS="
+ echo " --fw add fw to HOOKS="
+ echo " --pcmcia add pcmcia to HOOKS="
+ echo " --nfs add net to HOOKS="
+ echo " --btrfs add btrfs to HOOKS="
+ echo ""
+ echo " For /etc/rc.conf use:"
+ echo " --net show network MODULES"
+ echo " --sound show sound MODULES"
+ echo " --usbhost show usb hostcontroller MODULES"
+ echo " --modules show all detected MODULES"
+ echo ""
+ exit 1
+}
+
+[ "$1" = "" ] && usage
+[ "$1" = "--help" ] && usage
+[ "$1" = "-h" ] && usage
+
+# setting kernel version
+case $1 in
+ --kernel_version=*)
+ KERNEL_VERSION="$(echo $1 | awk -F= '{print $2;}')"
+ ;;
+ --rootdevice=*)
+ ROOTDEVICE="$(echo $1 | awk -F= '{print $2;}')"
+ ;;
+esac
+
+if [ "$KERNEL_VERSION" = "" ]; then
+ KERNEL_VERSION="$(uname -r)"
+fi
+
+# IDE/PATA switch
+[ "$(echo $* | grep '\-ide-legacy')" ] && IDE_LEGACY=1
+
+# uvesafb switch
+[ "$(echo $* | grep '\-uvesafb')" ] && UVESAFB=1
+
+# dmraid switch
+[ "$(echo $* | grep '\-dmraid')" ] && DMRAID=1
+
+# keymap switch
+[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=1
+
+# usb switch
+[ "$(echo $* | grep '\-usb ')" ] && USB=1
+
+# usbinput switch
+[ "$(echo $* | grep '\-usbinput')" ] && USBINPUT=1
+
+# fw switch
+[ "$(echo $* | grep '\-fw')" ] && FW=1
+
+# pcmcia switch
+[ "$(echo $* | grep '\-pcmcia')" ] && PCMCIA=1
+
+# nfs switch
+[ "$(echo $* | grep '\-nfs')" ] && NFS=1
+
+# nfs switch
+[ "$(echo $* | grep '\-btrfs')" ] && BTRFS=1
+
+# vmware switch
+[ "$(echo $* | grep '\-vmware')" ] && VMWARE=1
+
+# vmware switch
+[ "$(echo $* | grep '\-hooks')" ] && HOOKS=1
+
+ADVANCED=""
+# root device check
+if ! [ "$ROOTDEVICE" = "" ]; then
+ # check device mapper devices
+ if [ "$(echo "$ROOTDEVICE" | grep "/dev/mapper")" ]; then
+ # check if encryption is used
+ if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null)" ]; then
+ ADVANCED="encrypt"
+ # check on lvm
+ realdevice="$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
+ if [ "$(lvs $realdevice 2>/dev/null)" ]; then
+ ADVANCED="lvm2 encrypt"
+ vg="$(echo $(lvs -o vg_name --noheading $realdevice))"
+ # check on raid
+ [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ] && ADVANCED="mdadm lvm2 encrypt"
+ fi
+ # check on raid
+ if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/md" | sed -e 's#.*\ ##g')" ]; then
+ ADVANCED="mdadm encrypt"
+ realdevice="$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/md" | sed -e 's#.*\ ##g')"
+ # check on lvm
+ [ "$(mdadm --detail $realdevice | grep "/dev/dm-")" ] && ADVANCED="lvm2 mdadm encrypt"
+ fi
+ fi
+ # check if lvm is used
+ if [ "$(lvs $ROOTDEVICE 2>/dev/null)" ]; then
+ ADVANCED="lvm2"
+ vg="$(echo $(lvs -o vg_name --noheading $ROOTDEVICE))"
+ # check on encrypt
+ if [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ]; then
+ ADVANCED="encrypt lvm2"
+ # check on raid
+ [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ] && ADVANCED="mdadm encrypt lvm2"
+ for i in "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")"; do
+ realdevice="$(echo $i | cut -d ' ' -f1)"
+ #getsymlink="$(readlink $realdevice)"
+ #correctdevice="$(echo $getsymlink | sed -e 's#\.\.#/dev#g')"
+ [ "$(cryptsetup status $realdevice 2>/dev/null | grep "device:.*/dev/md")" ] && ADVANCED="mdadm encrypt lvm2"
+ done
+ fi
+ # check on raid
+ if [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ]; then
+ ADVANCED="mdadm lvm2"
+ #check on encrypt
+ [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt mdadm lvm2"
+ for i in "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")"; do
+ realdevice="$(echo $i | cut -d ' ' -f1)"
+ [ "$(mdadm --detail $realdevice | grep "/dev/dm-")" ] && ADVANCED="encrypt mdadm lvm2"
+ done
+ fi
+ fi
+ fi
+ # check md device
+ if [ "$(echo "$ROOTDEVICE" | grep "/dev/md")" ]; then
+ ADVANCED="mdadm"
+ # raid partitions or raid?
+ if [ "$(echo "$ROOTDEVICE" | grep "/dev/md*p")" ]; then
+ realdevice="$(echo $ROOTDEVICE | sed -e 's#p.*##g' -e 's#/dev/##g')"
+ if ! [ "$(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null)" = "" ]; then
+ SET_LVM=""
+ SET_ENCRYPT=""
+ for k in $(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null); do
+ [ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && SET_LVM="1"
+ [ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && SET_ENCRYPT="1"
+ # check on lvm
+ [ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="lvm2 mdadm"
+ # check on encrypt
+ [ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm"
+ # check encrypted volume device
+ realdevice="$(cryptsetup status $(cat $k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
+ [ "$(lvs $realdevice 2>/dev/null)" ] && ADVANCED="lvm2 encrypt mdadm"
+ vg="$(echo $(lvs -o vg_name --noheading /dev/mapper/$(cat $k/dm/name) 2>/dev/null))"
+ [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt lvm2 mdadm"
+ done
+ [ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && ADVANCED="lvm2 encrypt mdadm"
+ fi
+ else
+ realdevice="$(echo $ROOTDEVICE | sed -e 's#/dev/##g')"
+ if ! [ "$(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null)" = "" ]; then
+ SET_LVM=""
+ SET_ENCRYPT=""
+ for k in $(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null); do
+ [ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && SET_LVM="1"
+ [ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && SET_ENCRYPT="1"
+ # check on lvm
+ [ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="lvm2 mdadm"
+ # check on encrypt
+ [ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm"
+ # check encrypted volume device
+ realdevice="$(cryptsetup status $(cat $k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
+ [ "$(lvs $realdevice 2>/dev/null)" ] && ADVANCED="lvm2 encrypt mdadm"
+ vg="$(echo $(lvs -o vg_name --noheading /dev/mapper/$(cat $k/dm/name) 2>/dev/null))"
+ [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt lvm2 mdadm"
+ done
+ [ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && ADVANCED="lvm2 encrypt mdadm"
+ fi
+ fi
+ fi
+fi
+
+# checking /sys
+if ! [ -d /sys/ ]; then
+ echo "/sys/ is not present -- mount /sys first" >&2
+ exit 1
+fi
+
+: >/tmp/modules-plain
+: >/tmp/modules-stripped
+: >/tmp/modules-sorted
+: >/tmp/moduleslist
+: >/tmp/.blkid
+
+# generate blkid
+/sbin/blkid -c /dev/null -s TYPE > /tmp/.blkid
+
+# find pci aliases
+aliases=$(find /sys/ -noleaf -name modalias -exec cat {} +)
+
+# check for empty aliases
+if [ "$aliases" = "" ]; then
+ echo "hwdetect aborted -- you need a kernel >= 2.6.12" >&2
+ exit 1
+fi
+
+# generate files for the different actions
+modprobe -i -a --set-version=$KERNEL_VERSION --show-depends $aliases >> /tmp/modules-plain 2>/dev/null
+
+# fix ide cdrom detection on proliant 1600
+if [ "$(echo $aliases | grep 'pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00')" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-generic >> /tmp/modules-plain 2>/dev/null
+fi
+
+# find PNP devices like parports, soundcards etc.
+# (workaround for rtc, pcspkr, irtty-sir and analog are included)
+if [ "$(find /sys/devices -noleaf -name 'id' | grep /pnp)" ]; then
+ for i in $(find /sys/devices -noleaf -name "id" | grep /pnp); do
+ devid=$(cat $i | grep PNP)
+ [ "$devid" ] || continue
+
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends pnp:d${devid} >> /tmp/modules-plain 2>/dev/null
+
+ [ "$devid" = "PNP0800" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends pcspkr >> /tmp/modules-plain 2>/dev/null
+ [ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_proc >> /tmp/modules-plain 2>/dev/null
+ [ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_sysfs >> /tmp/modules-plain 2>/dev/null
+ [ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_dev >> /tmp/modules-plain 2>/dev/null
+ [ "$devid" = "PNP0510" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null
+ [ "$devid" = "PNP0511" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null
+ [ "$devid" = "PNPb02f" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends analog >> /tmp/modules-plain 2>/dev/null
+
+ # load ppp-generic if serial ports are detected for modems
+ [ "$devid" = "PNP0501" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends ppp-generic >> /tmp/modules-plain 2>/dev/null
+ done
+fi
+
+# SCSI disks/cdroms/tapes/generic devices
+if [ "$(find /sys/devices -noleaf -name 'type')" ]; then
+ for i in $(cat $(find /sys/devices -noleaf -name "type")); do
+ case $i in (4|5) modprobe -i --set-version=$KERNEL_VERSION --show-depends sr_mod >> /tmp/modules-plain 2>/dev/null ;; esac
+ case $i in (2|3|6|8|9) modprobe -i --set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 2>/dev/null ;; esac
+ case $i in (0|7|14) modprobe -i --set-version=$KERNEL_VERSION --show-depends sd_mod >> /tmp/modules-plain 2>/dev/null ;; esac
+ case $i in (1) modprobe -i --set-version=$KERNEL_VERSION --show-depends st >> /tmp/modules-plain 2>/dev/null ;; esac
+ done
+fi
+
+# add Buslogic for vmware
+if [ "$VMWARE" = "1" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends BusLogic >> /tmp/modules-plain 2>/dev/null
+fi
+
+# Parport modules
+if [ "$(grep 'parport' /tmp/modules-plain)" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends lp >> /tmp/modules-plain 2>/dev/null
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends ppdev >> /tmp/modules-plain 2>/dev/null
+fi
+
+# Sound OSS compat modules
+if [ "$(grep 'snd-pcm' /tmp/modules-plain)" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends snd-pcm-oss >> /tmp/modules-plain 2>/dev/null
+fi
+if [ "$(grep 'snd-seq' /tmp/modules-plain)" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends snd-seq-oss >> /tmp/modules-plain 2>/dev/null
+fi
+
+sort -u /tmp/modules-plain >> /tmp/modules-stripped
+
+# OTHER modules loading first for speed up!
+grep -v "ide/" /tmp/modules-stripped | grep -v "scsi/" | grep -v "fusion/" | grep -v "block/sx8" | grep -v "message/fusion" | \
+ grep -v "block/cciss" | grep -v "block/cpqarray" | grep -v "block/DAC960" | grep -v "block/virtio" | grep -v "ata/" | \
+ grep -v "net/" | grep -v "pcmcia/" | grep -v "usb/" | \
+ grep -v "firewire" | grep -v "ieee1394/" | grep -v "usbhid/" | grep -v "staging/" | grep -v "wireless/" | grep -v "virtio_pci" >> /tmp/modules-sorted
+# load virtio first!
+grep "virtio_pci" /tmp/modules-stripped >> /tmp/modules-sorted
+# make a correct order for the modules, internal devices have priority!
+# only use old ide modules if boot parameter 'ide-legacy' is given
+if [ "$IDE_LEGACY" = "1" ]; then
+ grep "ide/" /tmp/modules-stripped | grep -v "ide-pci-generic" >> /tmp/modules-sorted
+else
+ grep "ata/pata" /tmp/modules-stripped | grep -v "pata_acpi" >> /tmp/modules-sorted
+fi
+grep "scsi/" /tmp/modules-stripped | grep -v "sd_mod" | grep -v "sr_mod" | grep -v "/sg.ko" | grep -v "/st.ko" >> /tmp/modules-sorted
+grep "block/" /tmp/modules-stripped | grep -v "virtio_blk" | grep -v "sx8" | grep -v "nbd" | grep -v "pktcdvd" | grep -v "floppy" >> /tmp/modules-sorted
+grep "fusion/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "ata/" /tmp/modules-stripped| grep -v "pata" | grep -v "ata_generic" | grep -v "libata" >> /tmp/modules-sorted
+grep "block/" /tmp/modules-stripped | grep "sx8" >> /tmp/modules-sorted
+grep "net/" /tmp/modules-stripped | grep -v "wireless/" | grep -v "usb/" >> /tmp/modules-sorted
+grep "wireless/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "staging/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "pcmcia/" /tmp/modules-stripped >> /tmp/modules-sorted
+
+# speed up usb module loading
+grep "usb-storage" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "usblp" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "usbhid" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "usb/" /tmp/modules-stripped | grep -v "usb-storage" | grep -v "usbhid" | grep -v "usblp" >> /tmp/modules-sorted
+grep "firewire/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "ieee1394/" /tmp/modules-stripped >> /tmp/modules-sorted
+
+# add scsi and virtio device modules at the end
+grep "virtio_blk" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "sd_mod" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "sr_mod" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "/st.ko" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "/sg.ko" /tmp/modules-stripped >> /tmp/modules-sorted
+
+
+sed -ne "s#^insmod.*/\(.*\)\.ko.*#\1#p" /tmp/modules-sorted >> /tmp/moduleslist
+
+listmods() {
+ key=$1 ; shift
+ ex=
+ while [ "$1" ]; do
+ [ "$ex" ] && ex="$ex|$1" || ex="$1"
+ shift
+ done
+ for ln in $(grep "$key" /tmp/modules-sorted | sed 's|^insmod ||g'); do
+ if [ "$ex" ]; then
+ echo $ln | egrep -v "$ex" | sed -ne "s#^/.*/\(.*\)\.ko.*#\1#p"
+ else
+ echo $ln | sed -ne "s#^/.*/\(.*\)\.ko.*#\1#p"
+ fi
+ done
+}
+showlist() {
+ cat=$1 ; shift
+ [ $# -gt 0 ] || return
+ echo -n "$cat: "
+ for i in $*; do echo -n "$i "; done
+ echo ""
+}
+
+showlist2() {
+ cat=$1 ; shift
+ [ $# -gt 0 ] || return
+ echo -n "$cat="
+ for i in $*; do echo -n "$i "; done
+ echo ""
+}
+
+showlist3() {
+ cat=$1 ; shift
+ [ $# -gt 0 ] || return
+ for i in $*; do echo -n "$i "; done
+ echo ""
+}
+
+# starting different actions
+while [ $# -gt 0 ]; do
+ case $1 in
+ -hooks-dir=*|--hooks-dir=*)
+ HOOKS_DIR="$(echo $1 | awk -F= '{print $2;}')"
+ ;;
+ --load-modules)
+ # load all detected pci modules
+ for i in $(cat /tmp/moduleslist); do
+ if [ -e /lib/udev/load-modules.sh ]; then
+ /lib/udev/load-modules.sh $i > /dev/null 2>&1
+ else
+ modprobe $i > /dev/null 2>&1
+ fi
+ done
+ ;;
+
+ --unload-modules)
+ # load all detected pci modules
+ for i in $(cat /tmp/moduleslist); do
+ modprobe -r $i > /dev/null 2>&1
+ done
+ ;;
+
+ --show-modules)
+ showlist "AGP " $(listmods agp/)
+ showlist "ACPI " $(listmods acpi/)
+ showlist "IDE " $(listmods ide/ ide-)
+ showlist "PATA " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix)
+ showlist "SCSI " $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy)
+ showlist "SATA " $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8)
+ showlist "USB " $(listmods usb/ usb/input)
+ showlist "FW " $(listmods firewire/) $(listmods ieee1394/)
+ showlist "NET " $(listmods net/ irda/)
+ showlist "INPUT " $(listmods input/ pcspkr) $(listmods hid/)
+ showlist "IRDA " $(listmods irda/)
+ showlist "ISDN " $(listmods isdn/)
+ showlist "PCMCIA " $(listmods pcmcia/)
+ showlist "SOUND " $(listmods pcspkr) $(listmods sound/)
+ showlist "STAGING" $(listmods staging/)
+ showlist "VIDEO " $(listmods video/)
+ showlist "OTHER " $(listmods modules/ agp/ acpi/ ide/ scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 block/virtio virtio/virtio_pci ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ firewire/ hid/ staging/)
+ ;;
+
+ --show-modules-order)
+ showlist "MODULES ORDER" $(listmods modules/)
+ ;;
+
+ --show-agp) showlist "AGP " $(listmods agp/) ;;
+ --show-acpi) showlist "ACPI " $(listmods acpi/) ;;
+ --show-ide) showlist "IDE " $(listmods ide/ ide-) ;;
+ --show-pata) showlist "PATA " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) ;;
+ --show-scsi) showlist "SCSI " $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) ;;
+ --show-sata) showlist "SATA " $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) ;;
+ --show-usb) showlist "USB " $(listmods usb/ usb/input) ;;
+ --show-fw) showlist "FW " $(listmods firewire/) $(listmods ieee1394/) ;;
+ --show-net) showlist "NET " $(listmods net/ irda/) ;;
+ --show-input) showlist "INPUT " $(listmods input/ pcspkr) $(listmods hid/) ;;
+ --show-irda) showlist "IRDA " $(listmods irda/) ;;
+ --show-isdn) showlist "ISDN " $(listmods isdn/) ;;
+ --show-pcmcia) showlist "PCMCIA " $(listmods pcmcia/) ;;
+ --show-sound) showlist "SOUND " $(listmods pcspkr) $(listmods sound/) ;;
+ --show-staging) showlist "STAGING" $(listmods staging/) ;;
+ --show-video) showlist "VIDEO " $(listmods video/) ;;
+ --show-other) showlist "OTHER " $(listmods .ko agp/ acpi/ ide/ scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 block/virtio virtio/virtio_pci ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ firewire/ hid/ staging/) ;;
+ --filesystem) FILESYSTEM="ext2 ext3 ext4 nilfs2 btrfs reiserfs xfs jfs vfat"
+ for i in $FILESYSTEM; do
+ [ "$(grep $i /tmp/.blkid)" ] && FS="$FS $i"
+ done
+ [ "$(echo $FS | grep btrfs)" ] && FS="$FS crc32c"
+ MODULES_INITRAMFS="$MODULES_INITRAMFS $FS"
+ showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --hostcontroller)HOSTCONTROLLER="$(listmods virtio/virtio_pci) $(listmods ide/ ide-) $(listmods ata/pata pata_acpi) $(listmods scsi/ /sg.ko /st.ko scsi_mod sr_mod sd_mod) $(listmods message/fusion/) $(listmods drivers/block/ virtio_blk nbd pktcdvd sx8 floppy) $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) $(listmods ehci-hcd) $(listmods uhci-hcd) $(listmods ohci-hcd) $(listmods virtio_blk)"
+ MODULES_INITRAMFS="$MODULES_INITRAMFS $HOSTCONTROLLER"
+ showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --ati-kms) KMS="radeon"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --intel-kms) KMS="i915"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --nvidia-kms) KMS="nouveau"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --uvesafb) FB="uvesafb"
+ MODULES_INITRAMFS="$FB $MODULES_INITRAMFS"
+ ! [ "$HOOKS" = "1" ] && showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --fbmodule) FB=""
+ for i in $(cat /etc/modprobe.d/framebuffer_blacklist.conf); do
+ i=$(echo $i | sed -e 's/blacklist //g')
+ # check if already in FB array, to avoid double entries
+ if [ "$(cat /proc/modules | grep ^$i)" ]; then
+ ! [ "$(grep -w $FB)" ] && FB="$i"
+ fi
+ done
+ MODULES_INITRAMFS="$FB $MODULES_INITRAMFS "
+ ! [ "$HOOKS" = "1" ] && showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\ /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --net) if [ "$(showlist2 "MODULES" \($(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/) \) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' | grep '8139cp')" ] ; then
+ if [ "$(dmesg | grep 'use 8139too')" ]; then
+ MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/)"
+ MODULES_EXPORTED="$(echo $MODULES_EXPORTED | sed -e 's/8139cp//g')"
+ BLACKLIST_UDEV="!8139cp"
+ for i in $MODULES_EXPORTED; do
+ BLACKLIST_UDEV="$BLACKLIST_UDEV !$i"
+ done
+ showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+ else
+ MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/)"
+ MODULES_EXPORTED="$(echo $MODULES_EXPORTED | sed -e 's/8139too//g')"
+ BLACKLIST_UDEV="!8139too"
+ for i in $MODULES_EXPORTED; do
+ BLACKLIST_UDEV="$BLACKLIST_UDEV !$i"
+ done
+ showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+ fi
+ else
+ MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/)"
+ BLACKLIST_UDEV=""
+ for i in $MODULES_EXPORTED; do
+ BLACKLIST_UDEV="$BLACKLIST_UDEV !$i"
+ done
+ showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+ fi
+ ;;
+ --sound) MODULES_EXPORTED="$MODULES_EXPORTED $(listmods pcspkr) $(listmods sound/)"
+ BLACKLIST_UDEV=""
+ for i in $MODULES_EXPORTED; do
+ BLACKLIST_UDEV="$BLACKLIST_UDEV !$i"
+ done
+ showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+ ;;
+ --usbhost) MODULES_EXPORTED="$MODULES_EXPORTED $(listmods ehci-hcd) $(listmods uhci-hcd) $(listmods ohci-hcd)"
+ BLACKLIST_UDEV=""
+ for i in $MODULES_EXPORTED; do
+ BLACKLIST_UDEV="$BLACKLIST_UDEV !$i"
+ done
+ showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+ ;;
+ --modules) showlist2 "MODULES" \($(listmods modules/)\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+ ;;
+ --hooks)
+ if [ "$HOOKS_DIR" = "" ]; then
+ HOOKS_DIR="/lib/initcpio/install"
+ fi
+ START_HOOKS="base v86d udev keymap autodetect ide pata scsi sata usb fw pcmcia net dmraid usbinput $ADVANCED btrfs filesystems"
+ # remove the ones that don't exist on the system
+ for i in ${START_HOOKS}; do
+ if ! [ -e "${HOOKS_DIR}/$i" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/${i}\ //g")
+ fi
+ done
+ # ide/pata check
+ if [ "${IDE_LEGACY}" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/pata//g")
+ else
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/ide//g")
+ fi
+ if ! [ "$USBINPUT" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/usbinput//g")
+ fi
+ if ! [ "$KEYMAP" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/keymap//g")
+ fi
+ if ! [ "$UVESAFB" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/v86d//g")
+ fi
+ if ! [ "$DMRAID" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/dmraid//g")
+ fi
+ if ! [ "$USB" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/usb\ //g")
+ fi
+ if ! [ "$FW" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/fw//g")
+ fi
+ if ! [ "$PCMCIA" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/pcmcia//g")
+ fi
+ if ! [ "$NFS" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/net//g")
+ fi
+ if ! [ "$BTRFS" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/btrfs//g")
+ fi
+ echo "HOOKS=\"$START_HOOKS\"" | sed -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+ ;;
+ --advanced) ADVANCED_ARCHBOOT=""
+ for i in $ADVANCED; do
+ ADVANCED_ARCHBOOT="$ADVANCED_ARCHBOOT $(echo arch_$i)"
+ done
+ echo "$ADVANCED_ARCHBOOT"
+ ;;
+ esac
+ shift
+done
+
+# cleanup
+rm /tmp/modules-plain
+rm /tmp/modules-sorted
+rm /tmp/modules-stripped
+rm /tmp/moduleslist
+
+# vim: set ts=2 sw=2 noet:
diff --git a/abs/not_built/core/jack/40-hpet-permissions.rules b/abs/not_built/core/jack/40-hpet-permissions.rules
new file mode 100644
index 0000000..7af3780
--- /dev/null
+++ b/abs/not_built/core/jack/40-hpet-permissions.rules
@@ -0,0 +1,2 @@
+KERNEL=="rtc0", GROUP="audio"
+KERNEL=="hpet", GROUP="audio"
diff --git a/abs/not_built/core/jack/99-audio.conf b/abs/not_built/core/jack/99-audio.conf
new file mode 100644
index 0000000..eb76ef9
--- /dev/null
+++ b/abs/not_built/core/jack/99-audio.conf
@@ -0,0 +1,2 @@
+@audio - rtprio 99
+@audio - memlock unlimited
diff --git a/abs/not_built/core/jack/PKGBUILD b/abs/not_built/core/jack/PKGBUILD
new file mode 100644
index 0000000..7515001
--- /dev/null
+++ b/abs/not_built/core/jack/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 157734 2012-04-29 05:10:29Z allan $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: tobias <tobias@archlinux.net>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=jack
+_longname=jack-audio-connection-kit
+pkgver=0.121.3
+pkgrel=6
+pkgdesc="A low-latency audio server"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('libsamplerate' 'readline')
+makedepends=('doxygen' 'libffado' 'celt')
+optdepends=('libffado: FireWire support'
+ 'celt: NetJACK driver')
+url="http://jackaudio.org/"
+backup=(etc/security/limits.d/99-audio.conf)
+options=('!libtool')
+provides=("$_longname=$pkgver")
+conflicts=("$_longname")
+replaces=("$_longname")
+install=$pkgname.install
+source=("http://jackaudio.org/downloads/$_longname-$pkgver.tar.gz"
+ '99-audio.conf'
+ '40-hpet-permissions.rules')
+md5sums=('35f470f7422c37b33eb965033f7a42e8'
+ 'ae65b7c9ebe0fff6c918ba9d97ae342d'
+ '471aad533ff56c5d3cbbf65ce32cadef')
+
+build() {
+ cd "$srcdir/$_longname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib
+ make
+}
+
+package() {
+ cd "$srcdir/$_longname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # configure realtime access/scheduling
+ # see https://bugs.archlinux.org/task/26343
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/usr/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ # install a missing header forgotten by upstream
+ # see https://bugs.archlinux.org/task/26865
+ install -Dm644 "$srcdir/$_longname-$pkgver/jack/jslist.h" \
+ "$pkgdir/usr/include/jack/jslist.h"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/core/jack/jack.install b/abs/not_built/core/jack/jack.install
new file mode 100644
index 0000000..8be532f
--- /dev/null
+++ b/abs/not_built/core/jack/jack.install
@@ -0,0 +1,5 @@
+post_upgrade() {
+ rm -f etc/security/limits.d/99-realtime.conf
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/core/kakasi/PKGBUILD b/abs/not_built/core/kakasi/PKGBUILD
new file mode 100644
index 0000000..2a8c08a
--- /dev/null
+++ b/abs/not_built/core/kakasi/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+
+pkgname=kakasi
+pkgver=2.3.4
+pkgrel=2
+pkgdesc="Convert Kanji characters to Hiragana, Katakana or Romaji"
+arch=('i686' 'x86_64')
+url="http://kakasi.namazu.org/"
+license=('GPL')
+source=(http://kakasi.namazu.org/stable/${pkgname}-${pkgver}.tar.gz)
+md5sums=(4eff51aafbd56c9635791a20c03efa8f)
+
+build() {
+ cd "$startdir/src/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$startdir/pkg" install
+}
+
diff --git a/abs/not_built/core/kdelibs3/PKGBUILD b/abs/not_built/core/kdelibs3/PKGBUILD
new file mode 100644
index 0000000..5331af0
--- /dev/null
+++ b/abs/not_built/core/kdelibs3/PKGBUILD
@@ -0,0 +1,57 @@
+# $ Id: $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kdelibs3
+pkgver=3.5.10
+pkgrel=3
+pkgdesc="KDE3 Core Libraries"
+arch=('i686' 'x86_64')
+url="http://www.kde.org"
+license=('GPL' 'LGPL')
+depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib'
+ 'jasper' 'bzip2' 'openssl' 'libidn' 'libxrender'
+ 'aspell' 'heimdal' 'acl' 'libtiff' 'qt3' 'ca-certificates'
+ 'libjpeg')
+makedepends=('pkgconfig' )
+options=('libtool')
+install='kdelibs3.install'
+source=("http://download.kde.org/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2"
+ 'kde3.profile')
+md5sums=('43cd55ed15f63b5738d620ef9f9fd568'
+ '3c49828eb8985cfb25af8e1495f7800a')
+
+build() {
+ cd $srcdir/kdelibs-$pkgver
+
+ . /etc/profile.d/qt3.sh
+ . $srcdir/kde3.profile
+
+ # install KDE3 profile
+ install -D -m755 $srcdir/kde3.profile $pkgdir/etc/profile.d/kde3.sh
+
+ ./configure --prefix=/opt/kde \
+ --with-distribution='Arch Linux' \
+ --with-alsa \
+ --disable-dependency-tracking \
+ --disable-debug \
+ --disable-dnssd \
+ --disable-dnotify \
+ --enable-inotify \
+ --enable-sendfile \
+ --without-lua \
+ --without-hspell \
+ --enable-gcc-hidden-visibility \
+ --enable-final \
+ --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \
+ --without-arts \
+ --disable-cups \
+ --disable-libfam || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt
+}
diff --git a/abs/not_built/core/kdelibs3/__changelog b/abs/not_built/core/kdelibs3/__changelog
new file mode 100644
index 0000000..2abf977
--- /dev/null
+++ b/abs/not_built/core/kdelibs3/__changelog
@@ -0,0 +1 @@
+remove cups support
diff --git a/abs/not_built/core/kdelibs3/kde3.profile b/abs/not_built/core/kdelibs3/kde3.profile
new file mode 100755
index 0000000..d7c7e9d
--- /dev/null
+++ b/abs/not_built/core/kdelibs3/kde3.profile
@@ -0,0 +1,15 @@
+export KDE3DIR=/opt/kde
+export KDEDIRS=/usr:$KDE3DIR
+export PATH=$PATH:$KDE3DIR/bin
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$KDE3DIR/lib/pkgconfig
+if [ ! -z $XDG_DATA_DIRS ]; then
+ export XDG_DATA_DIRS=$XDG_DATA_DIRS:$KDE3DIR/share
+else
+ export XDG_DATA_DIRS=$KDE3DIR/share
+fi
+if [ ! -z $XDG_CONFIG_DIRS ]; then
+ export XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:$KDE3DIR/etc/xdg
+else
+ export XDG_CONFIG_DIRS=$KDE3DIR/etc/xdg
+fi
+unset KDE3DIR \ No newline at end of file
diff --git a/abs/not_built/core/kdelibs3/kdelibs3.install b/abs/not_built/core/kdelibs3/kdelibs3.install
new file mode 100644
index 0000000..060ba21
--- /dev/null
+++ b/abs/not_built/core/kdelibs3/kdelibs3.install
@@ -0,0 +1,11 @@
+post_install() {
+ grep -q '/opt/kde/lib' etc/ld.so.conf || echo '/opt/kde/lib' >> etc/ld.so.conf
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ sed -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf
+}
diff --git a/abs/not_built/core/libcl/PKGBUILD b/abs/not_built/core/libcl/PKGBUILD
new file mode 100644
index 0000000..cd9e82e
--- /dev/null
+++ b/abs/not_built/core/libcl/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id$
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=libcl
+pkgver=1.0
+_pkgver=275.19
+pkgrel=1
+pkgdesc="OpenCL library and ICD loader from NVIDIA"
+arch=('i686' 'x86_64')
+url="http://www.nvidia.com/"
+depends=('gcc-libs')
+license=('custom')
+options=('!strip')
+
+if [ "$CARCH" = "i686" ]; then
+ _arch='x86'
+ _pkg="NVIDIA-Linux-${_arch}-${_pkgver}"
+ source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${_pkgver}/${_pkg}.run")
+ md5sums=('9e74b1913ff5eb6786600d47b64ba57d')
+elif [ "$CARCH" = "x86_64" ]; then
+ _arch='x86_64'
+ _pkg="NVIDIA-Linux-${_arch}-${_pkgver}-no-compat32"
+ source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${_pkgver}/${_pkg}.run")
+ md5sums=('45a6074db3efe961d025afa7a89fa036')
+fi
+build() {
+ cd $srcdir
+ sh ${_pkg}.run --extract-only
+}
+
+package() {
+ cd $srcdir/${_pkg}
+ install -D -m755 libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1.0.0
+ ln -s /usr/lib/libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1
+ ln -s /usr/lib/libOpenCL.so.1 $pkgdir/usr/lib/libOpenCL.so
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+md5sums=('9e74b1913ff5eb6786600d47b64ba57d')
diff --git a/abs/not_built/core/libdc1394/PKGBUILD b/abs/not_built/core/libdc1394/PKGBUILD
new file mode 100644
index 0000000..d9ccecb
--- /dev/null
+++ b/abs/not_built/core/libdc1394/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 72230 2010-03-13 20:17:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdc1394
+pkgver=2.1.2
+pkgrel=2
+pkgdesc="High level programming interface to control IEEE 1394 based cameras"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://sourceforge.net/projects/libdc1394/"
+depends=('libraw1394>=2.0.5' 'libusb')
+options=(!libtool !emptydirs)
+source=(http://downloads.sourceforge.net/sourceforge/libdc1394/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b85f1ade88d8d96688d5965ed8603d53')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
diff --git a/abs/not_built/core/libdc1394/__changelog b/abs/not_built/core/libdc1394/__changelog
new file mode 100644
index 0000000..2421e7e
--- /dev/null
+++ b/abs/not_built/core/libdc1394/__changelog
@@ -0,0 +1 @@
+1/30/11 - chw - Changed dep from libusb1 to libusb.
diff --git a/abs/not_built/core/libfetch/Makefile b/abs/not_built/core/libfetch/Makefile
new file mode 100644
index 0000000..53bcee9
--- /dev/null
+++ b/abs/not_built/core/libfetch/Makefile
@@ -0,0 +1,89 @@
+prefix = /usr
+DESTDIR =
+DEBUG = false
+FETCH_WITH_INET6 = true
+FETCH_WITH_OPENSSL = true
+
+WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \
+ -Wpointer-arith -Wcast-align
+CFLAGS = -O2 -pipe -I. -fPIC $(WARNINGS) \
+ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES
+
+CFLAGS += -DFTP_COMBINE_CWDS -DNETBSD
+
+ifeq ($(strip $(FETCH_WITH_INET6)), true)
+CFLAGS+= -DINET6
+endif
+
+ifeq ($(strip $(FETCH_WITH_OPENSSL)), true)
+CFLAGS+= -DWITH_SSL
+LDFLAGS= -lssl -lcrypto
+endif
+
+ifeq ($(strip $(DEBUG)), true)
+CFLAGS += -g -DDEBUG
+else
+CFLAGS += -UDEBUG
+endif
+
+CC = gcc
+LD = gcc
+AR = ar
+RANLIB = ranlib
+INSTALL = install -c -D
+
+OBJS= fetch.o common.o ftp.o http.o file.o
+INCS= fetch.h common.h
+GEN = ftperr.h httperr.h
+MAN = libdownload.3
+
+#pretty print!
+E = @/bin/echo
+Q = @
+
+all: libfetch.so libfetch.a
+.PHONY: all
+
+%.o: %.c $(INCS) $(GEN)
+ $(E) " compile " $@
+ $(Q) $(CC) $(CFLAGS) -c $<
+
+ftperr.h: ftp.errors Makefile errlist.sh
+ $(E) " generate " $@
+ $(Q) ./errlist.sh ftp_errlist FTP ftp.errors > $@
+
+httperr.h: http.errors Makefile errlist.sh
+ $(E) " generate " $@
+ $(Q) ./errlist.sh http_errlist HTTP http.errors > $@
+
+libfetch.so: $(GEN) $(INCS) $(OBJS)
+ $(E) " build " $@
+ $(Q) rm -f $@
+ $(Q) $(LD) $(LDFLAGS) *.o -shared -o $@
+ $(E) " built with: " $(CFLAGS)
+
+libfetch.a: $(GEN) $(INCS) $(OBJS)
+ $(E) " build " $@
+ $(Q) rm -f $@
+ $(Q) $(AR) rcs $@ *.o
+ $(Q) $(RANLIB) $@
+ $(E) " built with: " $(CFLAGS)
+
+clean:
+ $(E) " clean "
+ $(Q) rm -f libfetch.so libfetch.a *.o $(GEN)
+.PHONY: clean
+
+install: all
+ $(Q) $(INSTALL) -m 755 libfetch.so $(DESTDIR)$(prefix)/lib/libfetch.so
+ $(Q) $(INSTALL) -m 644 libfetch.a $(DESTDIR)$(prefix)/lib/libfetch.a
+ $(Q) $(INSTALL) -m 644 fetch.h $(DESTDIR)$(prefix)/include/fetch.h
+ $(Q) $(INSTALL) -m 644 fetch.3 $(DESTDIR)$(prefix)/share/man/man3/fetch.3
+.PHONY: install
+
+uninstall:
+ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.so
+ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.a
+ $(Q) rm -f $(DESTDIR)$(prefix)/include/fetch.h
+ $(Q) rm -f $(DESTDIR)$(prefix)/share/man/man3/fetch.3
+.PHONY: uninstall
diff --git a/abs/not_built/core/libfetch/PKGBUILD b/abs/not_built/core/libfetch/PKGBUILD
new file mode 100644
index 0000000..641e7d4
--- /dev/null
+++ b/abs/not_built/core/libfetch/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Xavier Chantry <shiningxc@gmail.com>
+
+pkgname=libfetch
+pkgver=2.33
+pkgrel=1
+pkgdesc="URL based download library"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('openssl>=1.0.0')
+url="http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/net/libfetch/"
+source=(Makefile
+ ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('5167d18db7660228e75290fc7d25fe56'
+ 'a176b94f7f30344ef8a71c047ca2136b')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+# source PKGBUILD && mksource
+mksource() {
+ export CVSROOT=:pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
+ D=pkgsrc/net/libfetch
+ [ -d "$D" ] && cvs up "$D" || cvs co "$D"
+ pushd "$D"
+ dirname=$(sed -n 's/DISTNAME=.*\(libfetch-.*$\)/\1/p' Makefile)
+ cp -r files $dirname
+ tar -czv --exclude=CVS -f ../../../$dirname.tar.gz $dirname
+ rm -r $dirname
+ popd
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cp $srcdir/Makefile .
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ licdir=$pkgdir/usr/share/licenses/libfetch/
+ mkdir -p $licdir
+ sed -n -e '/Copyright (c)/,/SUCH DAMAGE\./p' common.c | cut -c '4-' > $licdir/LICENSE
+}
diff --git a/abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz b/abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz
new file mode 120000
index 0000000..2c8ffbe
--- /dev/null
+++ b/abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz
@@ -0,0 +1 @@
+/data/pkg_repo/packages/libfetch-2.33-1-i686.pkg.tar.gz \ No newline at end of file
diff --git a/abs/not_built/core/libgsf/PKGBUILD b/abs/not_built/core/libgsf/PKGBUILD
new file mode 100644
index 0000000..a94faa2
--- /dev/null
+++ b/abs/not_built/core/libgsf/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 89728 2010-09-03 13:08:07Z remy $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgbase=libgsf
+pkgname=('libgsf' 'libgsf-gnome')
+pkgver=1.14.18
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/"
+license=('GPL' 'LGPL')
+makedepends=('libxml2>=2.7.7' 'glib2>=2.24.1' 'bzip2' 'intltool' 'pkgconfig'
+ 'python2' 'libbonobo>=2.24.3' 'gconf>=2.28.1' 'pygtk')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/1.14/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('16d29e82f7eba68f919f2588ea5328973490fe6d4a7a5f160e8af89b387c9a95')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --mandir=/usr/share/man --disable-static || return 1
+ make || return 1
+}
+
+package_libgsf() {
+ pkgdesc="The GNOME Structured File Library is a utility library for reading and writing structured file formats"
+ depends=('libxml2>=2.7.7' 'glib2>=2.24.1' 'bzip2')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install || return 1
+ rm -f "${pkgdir}/usr/share/man/man1/gsf-office-thumbnailer.1"
+ rm -f "${pkgdir}/usr/lib/libgsf-gnome"*
+ rm -rf "${pkgdir}/usr/include/libgsf-1/gsf-gnome/"
+ rm -rf "${pkgdir}/etc/gconf"
+ rm -f "${pkgdir}/usr/lib/pkgconfig/libgsf-gnome-1.pc"
+ rm -f "${pkgdir}/usr/bin/gsf-office-thumbnailer"
+ rm -f "${pkgdir}"/usr/lib/python*/site-packages/gsf/gnomemodule.so
+}
+
+package_libgsf-gnome() {
+ pkgdesc="Libgsf GNOME components"
+ depends=("libgsf=${pkgver}" 'libbonobo>=2.24.3' 'gconf>=2.28.1')
+ install=libgsf-gnome.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gsf DESTDIR="${pkgdir}" install-libLTLIBRARIES || return 1
+ make -C gsf-gnome DESTDIR="${pkgdir}" install || return 1
+ make -C thumbnailer DESTDIR="${pkgdir}" install || return 1
+ make -C python DESTDIR="${pkgdir}" install || return 1
+ make -C doc DESTDIR="${pkgdir}" install-manpageDATA || return 1
+
+ rm -f "${pkgdir}/usr/share/man/man1/gsf.1"
+ rm -f "${pkgdir}/usr/share/man/man1/gsf-vba-dump.1"
+ rm -f "${pkgdir}"/usr/lib/python*/site-packages/gsf/_*
+ rm -f "${pkgdir}"/usr/lib/libgsf-1.so*
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m644 libgsf-gnome-1.pc "${pkgdir}/usr/lib/pkgconfig/" || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/libgsf-gnome.schemas" --domain libgsf "${pkgdir}/etc/gconf/schemas/"*.schemas || return 1
+ rm -f "${pkgdir}/etc/gconf/schemas/"*.schemas
+}
diff --git a/abs/not_built/core/libgsf/libgsf-gnome.install b/abs/not_built/core/libgsf/libgsf-gnome.install
new file mode 100644
index 0000000..60f62ff
--- /dev/null
+++ b/abs/not_built/core/libgsf/libgsf-gnome.install
@@ -0,0 +1,19 @@
+pkgname=libgsf-gnome
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/abs/not_built/core/libsmbios/PKGBUILD b/abs/not_built/core/libsmbios/PKGBUILD
new file mode 100644
index 0000000..c996a28
--- /dev/null
+++ b/abs/not_built/core/libsmbios/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 78087 2010-04-19 09:25:42Z dgriffiths $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: daniel g. siegel <dgsiegel@gmail.com>
+
+pkgname=libsmbios
+pkgver=2.2.16
+pkgrel=2
+pkgdesc="A library for providing access to as much BIOS information as possible"
+arch=('i686' 'x86_64')
+url="http://linux.dell.com/libsmbios/main/index.html"
+license=('GPL' 'custom')
+depends=('gcc-libs>=4.3.3')
+makedepends=('libxml2')
+optdepends=('python: tools')
+source=(http://linux.dell.com/libsmbios/download/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('6edf6659fbb77e7d0f60d5217a7d88ed')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ mkdir build
+ cd build
+ ../configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
+ mkdir -p out/libsmbios_c
+ mkdir -p out/libsmbios_c++
+ LD_PRELOAD="" make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/include"
+ cp -a ../src/include/* "${pkgdir}/usr/include/" || return 1
+ cp -a out/public-include/* "${pkgdir}/usr/include/" || return 1
+
+ rm -rf "${pkgdir}/etc/yum"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 ../COPYING-OSL "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/not_built/core/libwmf/PKGBUILD b/abs/not_built/core/libwmf/PKGBUILD
new file mode 100644
index 0000000..1206151
--- /dev/null
+++ b/abs/not_built/core/libwmf/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 87507 2010-08-15 06:45:18Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: FJ <joostef@gmail.com>
+
+pkgname=libwmf
+pkgver=0.2.8.4
+pkgrel=8
+pkgdesc="A library for reading vector images in Microsoft's native Windows Metafile Format (WMF)"
+arch=('i686' 'x86_64')
+url="http://wvware.sourceforge.net/libwmf.html"
+license=("LGPL")
+depends=('libpng' 'libx11' 'freetype2' 'libjpeg' 'gsfonts' 'expat')
+makedepends=('gtk2' 'libxt' 'pkg-config')
+options=('!libtool' '!docs' '!emptydirs')
+install=libwmf.install
+source=(http://downloads.sourceforge.net/sourceforge/wvware/${pkgname}-${pkgver}.tar.gz
+ libpng14.patch libwmf-0.2.8.4-useafterfree.patch)
+md5sums=('d1177739bf1ceb07f57421f0cee191e0' '33d3c07a1be9f99fd88de220930c5550'\
+ '0f02c1cb8a87bf7158634503bf0537e2')
+sha1sums=('822ab3bd0f5e8f39ad732f2774a8e9f18fc91e89' '15edb94eec7c9cea988e83660b334e56bf1fe897'\
+ 'ea6d28880840e86c96f9079bfd591da54dcffa5c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libpng14.patch"
+ patch -Np1 -i "${srcdir}/libwmf-0.2.8.4-useafterfree.patch"
+ ./configure --prefix=/usr \
+ --with-gsfontdir=/usr/share/fonts/Type1 \
+ --with-fontdir=/usr/share/fonts/Type1 \
+ --with-gsfontmap=/usr/share/ghostscript/8.15/lib/Fontmap.GS
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ #Remove fonts, these are in gsfonts
+ rm -rf "${pkgdir}/usr/share/fonts"
+ #Remove static GTK loader, can't use it anyways
+ rm -f "${pkgdir}"/usr/lib/gtk-2.0/*/loaders/io-wmf.a
+}
diff --git a/abs/not_built/core/libwmf/libpng14.patch b/abs/not_built/core/libwmf/libpng14.patch
new file mode 100644
index 0000000..3d38c71
--- /dev/null
+++ b/abs/not_built/core/libwmf/libpng14.patch
@@ -0,0 +1,12 @@
+diff -Nur libwmf-0.2.8.4.orig/src/extra/gd/gd_png.c libwmf-0.2.8.4/src/extra/gd/gd_png.c
+--- libwmf-0.2.8.4.orig/src/extra/gd/gd_png.c 2005-07-27 23:35:06.000000000 +0300
++++ libwmf-0.2.8.4/src/extra/gd/gd_png.c 2010-01-17 01:33:58.000000000 +0200
+@@ -136,7 +136,7 @@
+ /* first do a quick check that the file really is a PNG image; could
+ * have used slightly more general png_sig_cmp() function instead */
+ gdGetBuf (sig, 8, infile);
+- if (!png_check_sig (sig, 8))
++ if (png_sig_cmp (sig, 0, 8))
+ return NULL; /* bad signature */
+
+ #ifndef PNG_SETJMP_NOT_SUPPORTED
diff --git a/abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch b/abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch
new file mode 100644
index 0000000..328c541
--- /dev/null
+++ b/abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch
@@ -0,0 +1,10 @@
+--- libwmf-0.2.8.4/src/extra/gd/gd_clip.c.CVE-2009-1364-im-clip-list 2009-04-24 04:06:44.000000000 -0400
++++ libwmf-0.2.8.4/src/extra/gd/gd_clip.c 2009-04-24 04:08:30.000000000 -0400
+@@ -70,6 +70,7 @@ void gdClipSetAdd(gdImagePtr im,gdClipRe
+ { more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle));
+ if (more == 0) return;
+ im->clip->max += 8;
++ im->clip->list = more;
+ }
+ im->clip->list[im->clip->count] = (*rect);
+ im->clip->count++;
diff --git a/abs/not_built/core/libwmf/libwmf.install b/abs/not_built/core/libwmf/libwmf.install
new file mode 100644
index 0000000..9c99a90
--- /dev/null
+++ b/abs/not_built/core/libwmf/libwmf.install
@@ -0,0 +1,13 @@
+post_install() {
+ if [ -x usr/bin/gdk-pixbuf-query-loaders ]; then
+ gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/abs/not_built/core/libx86/PKGBUILD b/abs/not_built/core/libx86/PKGBUILD
new file mode 100644
index 0000000..a686b6b
--- /dev/null
+++ b/abs/not_built/core/libx86/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 21250 2008-12-11 16:58:44Z thayer $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=libx86
+pkgver=1.1
+pkgrel=2
+pkgdesc="Provides an lrmi interface that works on x86, am64 and alpha"
+arch=('i686' 'x86_64')
+url="http://www.codon.org.uk/~mjg59/libx86/"
+license=('custom')
+depends=('glibc')
+source=(http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-$pkgver.tar.gz
+ libx86-ifmask.patch)
+md5sums=('41bee1f8e22b82d82b5f7d7ba51abc2a'
+ '573897186eb8670d8d97c64ea7614001')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # lrmi.c patch courtesy of Gentoo
+ patch -Np0 -i $srcdir/libx86-ifmask.patch || return 1
+
+ # compensate for x86_64
+ if [ "$CARCH" = "x86_64" ]; then
+ make BACKEND=x86emu || return 1
+ else
+ make || return 1
+ fi
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install || return 1
+ chmod 644 $pkgdir/usr/lib/libx86.a || return 1
+
+ install -D -m 644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT || return 1
+}
diff --git a/abs/not_built/core/libx86/libx86-ifmask.patch b/abs/not_built/core/libx86/libx86-ifmask.patch
new file mode 100644
index 0000000..c99eeb8
--- /dev/null
+++ b/abs/not_built/core/libx86/libx86-ifmask.patch
@@ -0,0 +1,21 @@
+--- lrmi.c.orig 2008-09-06 12:24:36.070136428 +0200
++++ lrmi.c 2008-09-06 12:28:10.584287458 +0200
+@@ -55,6 +55,18 @@ OTHER DEALINGS IN THE SOFTWARE.
+ #include "x86-common.h"
+
+ #if defined(__linux__)
++#ifndef TF_MASK
++#define TF_MASK X86_EFLAGS_TF
++#endif
++#ifndef IF_MASK
++#define IF_MASK X86_EFLAGS_IF
++#endif
++#ifndef IOPL_MASK
++#define IOPL_MASK X86_EFLAGS_IOPL
++#endif
++#ifndef VIF_MASK
++#define VIF_MASK X86_EFLAGS_VIF
++#endif
+ #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
+ #elif defined(__NetBSD__) || defined(__FreeBSD__)
+ #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
diff --git a/abs/not_built/core/libxfontcache/LICENSE b/abs/not_built/core/libxfontcache/LICENSE
new file mode 100644
index 0000000..c2fdbbd
--- /dev/null
+++ b/abs/not_built/core/libxfontcache/LICENSE
@@ -0,0 +1,99 @@
+* Copyright (c) 1998-1999 Shunsuke Akiyama <akiyama@jp.FreeBSD.org>.
+ * All rights reserved.
+ * Copyright (c) 1998-1999 X-TrueType Server Project, All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+
+
+#
+# Copyright 2005 Red Hat, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Red Hat makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation.
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the copyright holders shall
+# not be used in advertising or otherwise to promote the sale, use or
+# other dealings in this Software without prior written authorization
+# from the copyright holders.
+#
+
+
+
+Copyright (C) 2003 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+from the XFree86 Project.
+
diff --git a/abs/not_built/core/libxfontcache/PKGBUILD b/abs/not_built/core/libxfontcache/PKGBUILD
new file mode 100644
index 0000000..0f01a34
--- /dev/null
+++ b/abs/not_built/core/libxfontcache/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55250 2009-10-12 16:05:23Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxfontcache
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="X11 font cache library"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxext' 'fontcacheproto')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXfontcache-${pkgver}.tar.bz2 LICENSE)
+
+build() {
+ cd ${srcdir}/libXfontcache-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --build=${CHOST} --host=${CHOST}
+ make || return 1
+}
+package() {
+ cd ${srcdir}/libXfontcache-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+md5sums=('bbd37768c87f63cf2eb845b2c0f56515'
+ '9738fb66a1a69ce086c461d5bedc7d8f')
diff --git a/abs/not_built/core/libxtrap/PKGBUILD b/abs/not_built/core/libxtrap/PKGBUILD
new file mode 100644
index 0000000..37427a3
--- /dev/null
+++ b/abs/not_built/core/libxtrap/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 4456 2008-07-07 16:29:51Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxtrap
+pkgver=1.0.0
+pkgrel=3
+pkgdesc="X11 event trapping extension library"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'libxt' 'trapproto')
+makedepends=('pkgconfig')
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXTrap-${pkgver}.tar.bz2)
+md5sums=('1e2d966b5b2b89910e418bb0f78e10de')
+
+build() {
+ cd ${srcdir}/libXTrap-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd ${srcdir}/libXTrap-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+}
diff --git a/abs/not_built/core/libxxf86misc/PKGBUILD b/abs/not_built/core/libxxf86misc/PKGBUILD
new file mode 100644
index 0000000..729ca3b
--- /dev/null
+++ b/abs/not_built/core/libxxf86misc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55245 2009-10-12 16:01:59Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxxf86misc
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="X11 XFree86 miscellaneous extension library"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(libxext xf86miscproto)
+makedepends=(pkgconfig)
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXxf86misc-${pkgver}.tar.bz2)
+
+build() {
+ cd ${srcdir}/libXxf86misc-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man --disable-static \
+ --build=${CHOST} --host=${CHOST}
+ make || return 1
+}
+package() {
+ cd ${srcdir}/libXxf86misc-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
+md5sums=('6bc0bf78909fd71021c466c793d4385c')
diff --git a/abs/not_built/core/linhes-live/PKGBUILD b/abs/not_built/core/linhes-live/PKGBUILD
new file mode 100644
index 0000000..c86e3cc
--- /dev/null
+++ b/abs/not_built/core/linhes-live/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: R. Dale Thomas <rdt[at]KnoppMyth[dot]net>
+# 2008.09.25
+pkgname=linhes-live
+pkgver=5.3.3
+pkgrel=25
+
+pkgdesc="LinHes compulsory components for the Live System."
+url="http://KnoppMyth.net"
+depends=()
+arch=( i586 i686 x86_64 )
+license=('GPL')
+
+build() {
+ # setup the local environment:
+ local rDir=bin eDir=etc lDir=lib sDir=session-save oDir=opt/$pkgname
+ local srcDir=${startdir}/src pkgDir=${startdir}/pkg
+ local insDir=${pkgDir}/$oDir proDir=${pkgDir}/${eDir}/profile.d
+
+ mkdir -p $pkgDir $insDir $proDir
+ cp -dr ${startdir}/$eDir $pkgDir
+ local pthDir=
+ echo 'export PATH=${PATH}:'"/$oDir/$rDir" > ${proDir}/${pkgname}.sh
+ cp -dr ${startdir}/$lDir $pkgDir
+ cp -dr ${startdir}/$rDir $insDir
+ [ -d ${startdir}/$sDir ] && cp -dr ${startdir}/$sDir $insDir
+ chown -R root.root $pkgDir
+ return 0
+}
+
+# End
+#change hook1 to wait for usb cdroms
+#add extra login to f_remountro for vmware/usb
diff --git a/abs/not_built/core/linhes-live/bin/gen_fstab b/abs/not_built/core/linhes-live/bin/gen_fstab
new file mode 100755
index 0000000..db36546
--- /dev/null
+++ b/abs/not_built/core/linhes-live/bin/gen_fstab
@@ -0,0 +1,122 @@
+#! /bin/sh
+#
+# gen_fstab - make new fstab for larch live system based on detected devices
+#
+# Author: Michael Towers <gradgrind[at]online[dot]de>
+#
+# This file is part of the larch project.
+#
+# larch is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# larch is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with larch; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#----------------------------------------------------------------------------
+# 2007.12.17
+
+# Note that the results are, by default, not copied into place
+# They end up here:
+DEST="/tmp/fstab"
+MNT="/tmp/mnt"
+
+# However, passing '-l' as command-line option will install them.
+# The old fstab will then be backed up to fstab~.
+LOAD=""
+if [ "$1" = "-l" ]; then LOAD="-l"; fi
+
+if [ -n "$( df | grep " ${MNT}" )" ]; then
+ echo "ERROR: Mounted filesystem at/within ${MNT}"
+ exit 1
+fi
+mkdir -p ${MNT}
+rm -rf ${MNT}/*
+
+tmpfile="/tmp/fstab2"
+: >${tmpfile}
+
+echo "# fstab generated by gen_fstab" >${DEST}
+echo "#<file system> <dir> <type> <options> <dump> <pass>" >>${DEST}
+echo >>${DEST}
+
+echo "none /dev/pts devpts defaults 0 0" >>${DEST}
+echo "none /dev/shm tmpfs defaults 0 0" >>${DEST}
+echo >>${DEST}
+
+# Get all other partitions
+sfdisk -d | grep "^/dev/" | sed "s|\(.*\):.*Id=\(..\).*|\1 \2|" | \
+ while read dev id; do
+ # Ignore if id is "Extended" or "LVM", these are not usable partitions
+ if [ "${id}" = "5" -o "${id}" = "8e" ]; then continue; fi
+ # See if swap
+ if [ "${id}" = "82" ]; then
+ printf "%-12s %-12s %-8s defaults,noatime 0 0\n" \
+ ${dev} swap swap >>${DEST}
+ continue
+ fi
+ removable=""
+ part=$( basename ${dev} )
+ if [ $( cat /sys/block/${part:0:3}/removable 2>/dev/null ) -ne 0 ]; then
+ removable="_rmv"
+ fi
+ mountdir=${part}${removable}
+ printf "%-12s %-12s %-8s user,noauto,noatime 0 0\n" \
+ ${dev} /mnt/${mountdir} auto >>${tmpfile}
+ mkdir -p ${MNT}/${mountdir}
+ done
+
+# LVM
+for lvmd in $( ls /dev/mapper 2>/dev/null | grep -v control ); do
+ printf "%-30s %-22s %-8s user,noauto,noatime 0 0\n" \
+ /dev/mapper/${lvmd} /mnt/${lvmd} auto >>${tmpfile}
+ mkdir -p ${MNT}/${lvmd}
+done
+
+echo >>${DEST}
+cat ${tmpfile} >>${DEST}
+rm ${tmpfile}
+echo >>${DEST}
+
+# CD devices
+for dev in $( cat /proc/sys/dev/cdrom/info 2>/dev/null | head -n 3 | \
+ tail -n 1 | cut -d ":" -f 2 ); do
+ mountdir="${dev}_cd"
+ mkdir ${MNT}/${mountdir}
+ printf "%-12s %-12s %-8s user,noauto,exec,unhide 0 0\n" \
+ /dev/${dev} /mnt/${mountdir} auto >>${DEST}
+done
+
+echo >>${DEST}
+echo "# This would do for a floppy" >>${DEST}
+echo "#/dev/fd0 /mnt/floppy vfat,ext2 rw,user,noauto 0 0" >>${DEST}
+echo "# + mkdir /mnt/floppy" >>${DEST}
+echo >>${DEST}
+echo "# E.g. for USB storage:" >>${DEST}
+echo "#/dev/sdb1 /mnt/usb auto rw,user,noauto 0 0" >>${DEST}
+echo "# + mkdir /mnt/usb" >>${DEST}
+
+if [ -n "${LOAD}" ]; then
+ # test if the script is started by root user. If not, exit
+ if [ $UID -ne 0 ]; then
+ echo "Only root can run ${APP}"; exit 1
+ fi
+
+ cp -b ${DEST} /etc/fstab
+ # Delete removeable mount points which are not currently mounted
+ for m in $( ls /mnt | grep ^[hs]d ); do
+ if [ -z "$( df | grep " /mnt/${m}$" )" ]; then
+ rmdir /mnt/${m}
+ fi
+ done
+ for m in $( ls ${MNT} ); do
+ mkdir -p /mnt/${m}
+ done
+fi
diff --git a/abs/not_built/core/linhes-live/bin/km b/abs/not_built/core/linhes-live/bin/km
new file mode 100755
index 0000000..386d966
--- /dev/null
+++ b/abs/not_built/core/linhes-live/bin/km
@@ -0,0 +1,76 @@
+#!/bin/sh
+# $Id: km,v 1.2 2005/12/13 04:14:53 judd Exp $
+# Modified by gradgrind to deal only with i386 keymaps
+# and BASEDIR changed
+# - also saves results to /etc/rc.conf
+
+# test if the script is started by root user. If not, exit
+if [ $UID -ne 0 ]; then
+ echo "This should be run as root"; exit 1
+fi
+
+ANSWER="/tmp/.km"
+BASEDIR="/usr/share/kbd"
+
+domenu()
+{
+ menutype=$1 ; shift
+ text=$1 ; shift
+ height=$1 ; shift
+ width=$1 ; shift
+ mheight=$1 ; shift
+
+ dialog --cancel-label "Skip" --$menutype "$text" $height $width $mheight $*
+}
+
+if [ ! -d $BASEDIR/keymaps ]; then
+ echo "Cannot load keymaps, as none were found in $BASEDIR/keymaps" >&2
+ exit 1
+else
+ echo "Scanning for keymaps..."
+ KEYMAPS=
+ for t in qwerty qwertz azerty dvorak; do
+ for i in `find $BASEDIR/keymaps/i386/$t -follow -name "*.gz"`; do
+ fn=`echo $i | sed "s|$BASEDIR/keymaps/i386/||"`
+ KEYMAPS="$KEYMAPS $fn -"
+ done
+ done
+ domenu menu "Select A Keymap" 22 60 16 $KEYMAPS 2>$ANSWER
+ keymap=`cat $ANSWER`
+fi
+
+if [ ! -d $BASEDIR/consolefonts ]; then
+ echo "Cannot load consolefonts, as none were found in $BASEDIR/consolefonts" >&2
+else
+ echo "Scanning for fonts..."
+ FONTS=
+ for i in `find $BASEDIR/consolefonts -follow -name "*.gz"`; do
+ fn=`echo $i | sed "s|$BASEDIR/consolefonts/||"`
+ FONTS="$FONTS $fn -"
+ done
+ domenu menu "Select A Console Font" 22 60 16 $FONTS 2>$ANSWER
+ font=`cat $ANSWER`
+fi
+
+if [ "$keymap" ]; then
+ echo "Loading keymap: $keymap"
+ loadkeys -q $BASEDIR/keymaps/i386/$keymap
+ sed -i "s|^KEYMAP=.*|KEYMAP=\"$( echo $keymap | \
+ cut -d'.' -f1 )\"|" /etc/rc.conf
+fi
+
+if [ "$font" ]; then
+ echo "Loading font: $font"
+ for i in `seq 1 4`; do
+ if [ -d /dev/vc ]; then
+ setfont $BASEDIR/consolefonts/$font -C /dev/vc/${i}
+ else
+ setfont $BASEDIR/consolefonts/$font -C /dev/tty${i}
+ fi
+ done
+ sed -i "s|^CONSOLEFONT=.*|CONSOLEFONT=\"$( echo $font | \
+ cut -d'.' -f1 )\"|" /etc/rc.conf
+fi
+
+exit 0
+
diff --git a/abs/not_built/core/linhes-live/etc/live-shutdown b/abs/not_built/core/linhes-live/etc/live-shutdown
new file mode 100644
index 0000000..b6a8378
--- /dev/null
+++ b/abs/not_built/core/linhes-live/etc/live-shutdown
@@ -0,0 +1,90 @@
+# Functions used by rc.shutdown
+# Modified versions for linhes live systems
+
+f_saveclock ()
+{
+ :
+}
+
+f_swapoff ()
+{
+ ############################# Include session saving functions
+# . /opt/linhes-live/session-save/shutdown2
+# if [ -f /tmp/checkse ]; then
+# . /tmp/checkse
+# else
+# checkse
+# fi
+
+ if [ -n "${saving}" ] && ! session_save; then
+ echo
+ echo "If you know what you are doing, you may be able to recover"
+ echo "something from this unpleasant situation."
+ echo
+ echo "You may use the command line to investigate further ..."
+ echo
+ echo "When finished please enter 'exit', the shutdown process will"
+ echo "then continue."
+ sh -i
+ fi
+
+ #############################
+
+ stat_busy "Deactivating Swap"
+ /sbin/swapoff -a
+ stat_done
+}
+
+f_remountro ()
+{
+ bootdev=`cat /.livesys/bootdevice`
+ echo "Boot device was $bootdev"
+ #bootdev=`basename $bootdev`
+ for i in `ls /dev/cd/*`
+ do
+ cdrom=`readlink -f $i`
+ if [ x$cdrom = x$bootdev ]
+ then
+ ejectdev=$cdrom
+ break
+ fi
+
+ done
+ lspci |grep -q VMware
+ if [ ! $? = 0 ]
+ then
+ if [ -n "${ejectdev}" ]
+ then
+ echo "Ejecting CD $ejectdev"
+ eject ${ejectdev}
+ echo "========================================"
+ echo "Tray will retract after 10 seconds"
+ for timer in `seq -w 10 -1 0`
+ do
+ #echo -n $timer '\x08'
+ echo -ne "\t"$timer '\010\010\010\010'
+ sleep 1
+ done
+ echo
+ echo "========================================"
+ eject -t ${ejectdev}
+ echo
+ echo "It's safe to switch the computer off now"
+ #echo -ne "Press Enter to continue"
+ #read junk
+ else
+ echo "Boot device is not a cdrom, no need to eject"
+ fi
+ else
+ echo "VMWARE detected, not ejecting the CD"
+ fi
+}
+#Preloads these commands so we can eject the CD.
+#
+seq --help >/dev/null 2>&1
+eject --help >/dev/null 2>&1
+halt --help >/dev/null 2>&1
+poweroff --help >/dev/null 2>&1
+reboot --help >/dev/null 2>&1
+
+# End
diff --git a/abs/not_built/core/linhes-live/etc/live-sysinit b/abs/not_built/core/linhes-live/etc/live-sysinit
new file mode 100644
index 0000000..40edad9
--- /dev/null
+++ b/abs/not_built/core/linhes-live/etc/live-sysinit
@@ -0,0 +1,73 @@
+# Functions used by rc.sysinit
+# Modified versions for linhes live systems
+
+f_header ()
+{
+ cR='\e[31m' cY='\e[1;33m' cN='\e[0m' cW='\e[1;37m'
+ echo " "
+ printsep
+ printf " ${cR}LinHes ${cY}Installation${cN}/${cY}Live${cW} CDROM${cN}. "
+ printsep
+ echo " "
+}
+
+f_fscheck ()
+{
+ stat_busy "Initializing /etc/mtab"
+ #/bin/mount -n -o remount,rw /
+
+ /bin/rm -f /etc/mtab*
+
+ # Make entries for aufs/unionfs, tmpfs and live medium in /etc/mtab
+ grep "^aufs */ " /proc/mounts >>/etc/mtab
+ grep "^unionfs */ " /proc/mounts >>/etc/mtab
+ grep "^tmpfs */.livesys " /proc/mounts >>/etc/mtab
+ if [ -d /.livesys/medium/live ]; then
+ grep " /.livesys/medium " /proc/mounts >>/etc/mtab
+ fi
+
+ f_mountlocal
+ stat_done
+
+ if [ -z "$( cat /etc/fstab | grep "^#KEEP" )" ]; then
+ stat_busy "Generating fresh /etc/fstab"
+ /opt/linhes-live/bin/gen_fstab -l
+ stat_done
+ fi
+
+ # now mount all the local filesystems
+ stat_busy "Mounting Local Filesystems"
+ /bin/mount -a -t $NETFS
+ stat_done
+}
+
+f_swapon ()
+{
+ #+*** Copy session-save flag-file (if it exists)
+ [ -f /live/nosave ] && cp /live/nosave /.livesys
+ #-***
+
+ #*** Conditional swap activation
+ if [ -e /.livesys/swapon ]; then
+ status "Activating Swap" /sbin/swapon -a
+ fi
+}
+f_loadmodules()
+{
+ CMDLINE=$(cat /proc/cmdline)
+ echo $CMDLINE | grep -q modules
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#* modules=}
+ CMDMODULES=${TEMPVAR%% *}
+ mymod=`echo $CMDMODULES|/bin/sed 's|-|_|g' |/bin/sed 's|,| |g'`
+ stat_busy "Loading CMD module"
+ for mod in $mymod
+ do
+ /sbin/modprobe $mod
+ done
+ stat_done
+ fi
+
+
+}
diff --git a/abs/not_built/core/linhes-live/etc/loginroot b/abs/not_built/core/linhes-live/etc/loginroot
new file mode 100755
index 0000000..e3153c6
--- /dev/null
+++ b/abs/not_built/core/linhes-live/etc/loginroot
@@ -0,0 +1,3 @@
+#! /bin/sh
+login -f root
+# End
diff --git a/abs/not_built/core/linhes-live/etc/rc.shutdown-live b/abs/not_built/core/linhes-live/etc/rc.shutdown-live
new file mode 100755
index 0000000..79eae47
--- /dev/null
+++ b/abs/not_built/core/linhes-live/etc/rc.shutdown-live
@@ -0,0 +1,168 @@
+#!/bin/bash
+#
+# /etc/rc.shutdown
+#
+
+###
+# Based on initscripts 2008.05-1
+###
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+###############################################################
+### These functions have been separated out, so that they can be
+### replaced in linhes live systems.
+
+f_saveclock ()
+{
+ stat_busy "Saving System Clock"
+ if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
+ /bin/rm -f /etc/localtime
+ /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
+ fi
+
+ HWCLOCK_PARAMS="--systohc"
+ if [ "$HARDWARECLOCK" = "UTC" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
+ else
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
+ fi
+ if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa"
+ fi
+ /sbin/hwclock $HWCLOCK_PARAMS
+ stat_done
+}
+
+f_swapoff ()
+{
+ stat_busy "Deactivating Swap"
+ /sbin/swapoff -a
+ stat_done
+}
+
+f_remountro ()
+{
+ stat_busy "Remounting Root Filesystem Read-only"
+ /bin/mount -n -o remount,ro /
+ stat_done
+}
+
+###############################################################
+
+### Override above functions if running linhes live system
+[ -f /etc/live-shutdown ] && . /etc/live-shutdown
+
+# avoid staircase effect
+/bin/stty onlcr
+
+echo " "
+printhl "Initiating Shutdown..."
+echo " "
+
+# avoid NIS hanging syslog-ng on shutdown by unsetting the domainname
+if [ -x /bin/domainname ]; then
+ /bin/domainname ""
+fi
+
+if [ -x /etc/rc.local.shutdown ]; then
+ /etc/rc.local.shutdown
+fi
+
+if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
+ # Shutdown daemons
+ let i=${#DAEMONS[@]}
+ while [ $i -ge 0 ]; do
+ if [ "${DAEMONS[$i]:0:1}" != '!' ]; then
+ ck_daemon ${DAEMONS[$i]#@} || /etc/rc.d/${DAEMONS[$i]#@} stop
+ fi
+ let i=i-1
+ done
+ # find any leftover daemons and shut them down in reverse order
+ if [ -d /var/run/daemons ]; then
+ for daemon in $(/bin/ls -1t /var/run/daemons); do
+ /etc/rc.d/$daemon stop
+ done
+ fi
+fi
+
+# Terminate all processes
+stat_busy "Sending SIGTERM To Processes"
+/sbin/killall5 -15 &> /dev/null
+/bin/sleep 5
+stat_done
+
+stat_busy "Sending SIGKILL To Processes"
+/sbin/killall5 -9 &> /dev/null
+/bin/sleep 1
+stat_done
+
+stat_busy "Saving Random Seed"
+/bin/dd if=/dev/urandom of=/var/run/random-seed count=1 bs=512 2> /dev/null
+stat_done
+
+#F Save system time
+f_saveclock
+
+# removing psmouse module to fix some reboot issues on newer laptops
+/sbin/modprobe -r psmouse >/dev/null 2>&1
+
+# Write to wtmp file before unmounting
+/sbin/halt -w
+
+#F Deactivate swaps
+f_swapoff
+
+stat_busy "Unmounting Filesystems"
+/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc
+stat_done
+
+# Kill non-root encrypted partition mappings
+if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then
+ stat_busy "Deactivating encrypted volumes:"
+ CS=/sbin/cryptsetup.static
+ do_uncrypt() {
+ if [ $# -ge 3 ]; then
+ stat_append "${1}.."
+ $CS remove $1 >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ stat_append "failed "
+ else
+ stat_append "ok "
+ fi
+ fi
+ }
+ while read line; do
+ eval do_uncrypt "$line"
+ done </etc/crypttab
+ stat_done
+fi
+
+if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
+ if [ -x /sbin/lvm -a -d /sys/block ]; then
+ stat_busy "Deactivating LVM2 groups"
+ /sbin/lvm vgchange --ignorelockingfailure -an >/dev/null 2>&1
+ stat_done
+ fi
+fi
+
+#F Remount / ro
+f_remountro
+#Eject the CD
+
+# Power off or reboot
+if [ "$RUNLEVEL" = "0" ]; then
+ printsep
+ printhl "${C_H2}POWER OFF"
+ /sbin/poweroff -d -f -h -i
+else
+ printsep
+ printhl "${C_H2}REBOOTING"
+ # if kexec is installed and a kernel is loaded, use it
+ [ -x /sbin/kexec ] && /sbin/kexec -e > /dev/null 2>&1
+ /sbin/reboot -d -f -i
+fi
+
+# vim: set ts=2 sw=2 noet:
+# End
diff --git a/abs/not_built/core/linhes-live/etc/rc.sysinit-live b/abs/not_built/core/linhes-live/etc/rc.sysinit-live
new file mode 100755
index 0000000..afdc2ae
--- /dev/null
+++ b/abs/not_built/core/linhes-live/etc/rc.sysinit-live
@@ -0,0 +1,469 @@
+#!/bin/bash
+#
+# /etc/rc.sysinit
+#
+
+###
+# Based on initscripts 2008.05-1
+###
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+###############################################################
+### These functions have been separated out, so that they can be
+### replaced in linhes live systems.
+
+f_header ()
+{
+ echo " "
+ printhl "Arch Linux $C_OTHER(${C_H2}Core Dump$C_OTHER)\n"
+ printhl "${C_H2}http://www.archlinux.org"
+ printhl "Copyright 2002-2007 Judd Vinet"
+ printhl "Copyright 2007-2008 Aaron Griffin"
+ printhl "Distributed under the GNU General Public License (GPL)"
+ printsep
+}
+
+f_fscheck ()
+{
+ status "Mounting Root Read-only" /bin/mount -n -o remount,ro /
+
+ if [ -x /sbin/fsck ]; then
+ stat_busy "Checking Filesystems"
+ if /bin/grep -qw quiet /proc/cmdline; then
+ /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >/dev/null 2>&1
+ else
+ /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK 2>/dev/null
+ fi
+ fsckret=$?
+ if [ ${fsckret} -gt 1 ]; then
+ stat_fail
+ if [ $((${fsckret}&2)) -eq 2 ]; then
+ echo
+ echo "********************** REBOOT REQUIRED *********************"
+ echo "* *"
+ echo "* The system will be rebooted automatically in 15 seconds. *"
+ echo "* *"
+ echo "************************************************************"
+ echo
+ /bin/sleep 15
+ else
+ echo
+ echo "***************** FILESYSTEM CHECK FAILED ****************"
+ echo "* *"
+ echo "* Please repair manually and reboot. Note that the root *"
+ echo "* file system is currently mounted read-only. To remount *"
+ echo "* it read-write type: mount -n -o remount,rw / *"
+ echo "* When you exit the maintenance shell the system will *"
+ echo "* reboot automatically. *"
+ echo "* *"
+ echo "************************************************************"
+ echo
+ /sbin/sulogin -p
+ fi
+ echo "Automatic reboot in progress..."
+ /bin/umount -a
+ /bin/mount -n -o remount,ro /
+ /sbin/reboot -f
+ exit 0
+ fi
+ stat_done
+ fi
+
+ stat_busy "Mounting Local Filesystems"
+ /bin/mount -n -o remount,rw /
+ /bin/rm -f /etc/mtab*
+ # make sure / gets written to /etc/mtab
+ /bin/mount -o remount,rw /
+
+ f_mountlocal
+ stat_done
+}
+
+f_mountlocal ()
+{
+ # Write /proc, /sys and /dev to /etc/mtab
+ if [ -e /proc/mounts ]; then
+ /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab
+ fi
+ # now mount all the local filesystems
+ /bin/mount -a -t $NETFS
+}
+
+f_swapon ()
+{
+ status "Activating Swap" /sbin/swapon -a
+}
+
+###############################################################
+
+### Override above functions if running linhes live system
+[ -f /etc/live-sysinit ] && . /etc/live-sysinit
+
+#F Print header
+f_header
+
+# mount /proc, /sys and our RAM /dev
+/bin/mount -n -t ramfs none /dev
+/bin/mount -n -t proc none /proc
+/bin/mount -n -t sysfs none /sys
+
+# Create our default nodes that minilogd may need
+/bin/mknod /dev/null c 1 3
+/bin/mknod /dev/zero c 1 5
+/bin/mknod /dev/console c 5 1
+
+# More initial /dev setup that udev doesn't do
+/bin/ln -snf /proc/self/fd /dev/fd
+/bin/ln -snf /proc/self/fd/0 /dev/stdin
+/bin/ln -snf /proc/self/fd/1 /dev/stdout
+/bin/ln -snf /proc/self/fd/2 /dev/stderr
+/bin/ln -snf /proc/kcore /dev/core
+/bin/mkdir /dev/pts
+/bin/mkdir /dev/shm
+
+# start up our mini logger until syslog takes over
+/sbin/minilogd
+
+# anything more serious than KERN_WARNING goes to the console
+# 'verbose' cmdline parameter enables more messages
+if /bin/grep -q " verbose" /proc/cmdline; then
+ /bin/dmesg -n 8
+else
+ /bin/dmesg -n 3
+fi
+
+# enable rtc access
+/sbin/modprobe rtc-cmos >/dev/null 2>&1
+RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null); RTC_MAJOR="${RTC_MAJOR%% *}"
+if [ -n "$RTC_MAJOR" ]; then
+ /bin/mkdir /dev/misc/
+ /bin/mknod /dev/misc/rtc0 c $RTC_MAJOR 0
+ /bin/ln -s /dev/misc/rtc0 /dev/rtc
+fi
+
+HWCLOCK_PARAMS="--hctosys"
+if [ "$HARDWARECLOCK" = "UTC" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
+else
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
+fi
+if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa"
+fi
+
+# Set clock early to fix some bugs with filesystem checks
+# Clock is set again later to match rc.conf
+if [ -f /etc/localtime ]; then
+ /sbin/hwclock $HWCLOCK_PARAMS --noadjfile
+fi
+
+echo > /proc/sys/kernel/hotplug
+
+if [ -x /sbin/udevadm -a -d /sys/block ]; then
+ # We have udev and /sys appears to be mounted, use UDev
+ #status "Starting UDev Daemon" /etc/start_udev init
+
+ stat_busy "Starting UDev Daemon"
+ /sbin/udevd --daemon
+ stat_done
+else
+ # Static /dev, our last resort
+ status "Using static /dev filesystem" true
+fi
+
+# Load modules from the MODULES array defined in rc.conf
+if ! [ "$load_modules" = "off" ]; then
+ if [ -f /proc/modules ]; then
+############Added by jm to load modules from /proc/cmdline
+ f_loadmodules
+##############
+ stat_busy "Loading Modules"
+ for mod in "${MODULES[@]}"; do
+ if [ "$mod" = "${mod#!}" ]; then
+ /sbin/modprobe $mod
+ fi
+ done
+ stat_done
+ fi
+ if [ -d /proc/acpi ]; then
+ stat_busy "Loading standard ACPI modules"
+ ACPI_MODULES="ac battery button fan processor thermal"
+ k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')"
+ j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')"
+ #add disabled MODULES (!) to blacklist - much requested feature
+ for m in ${j}; do
+ [ "$m" != "${m#!}" ] && k="${k} ${m#!}"
+ done
+ # add disablemodules= from commandline to blacklist
+ k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')"
+ for n in ${ACPI_MODULES}; do
+ if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then
+ /sbin/modprobe $n > /dev/null 2>&1
+ fi
+ done
+ stat_done
+ fi
+fi
+
+# run udev uevents
+if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then
+ #status "Loading UDev uevents" /etc/start_udev uevents
+ stat_busy "Loading UDev uevents"
+ udevstart="$(/bin/date +%s%0N)"
+ /sbin/udevadm trigger
+ /sbin/udevadm settle
+ stat_done
+ udevend="$(/bin/date +%s%0N)"
+ printhl " UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms"
+fi
+
+# bring up the loopback interface
+if [ -d /sys/class/net/lo ]; then
+ stat_busy "Bringing up loopback interface"
+ /sbin/ifconfig lo 127.0.0.1 up
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+fi
+
+# If necessary, find md devices and manually assemble RAID arrays
+if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then
+ # udev won't create these md nodes, so we do it ourselves
+ for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do
+ path=$(echo $dev | /bin/sed 's|/[^/]*$||')
+ node=$(echo $dev | /bin/sed "s|^$path/||")
+ minor=$(echo $node | /bin/sed 's|^[^0-9]*||')
+ [ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor
+ done
+ status "Activating RAID arrays" /sbin/mdadm --assemble --scan
+fi
+
+if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
+ if [ -x /sbin/lvm -a -d /sys/block ]; then
+ # Kernel 2.6.x, LVM2 groups
+ /sbin/modprobe -q dm-mod 2>/dev/null
+ stat_busy "Activating LVM2 groups"
+ /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
+ /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+fi
+
+# Set up non-root encrypted partition mappings
+if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then
+ /sbin/modprobe -q dm-mod 2>/dev/null
+ stat_busy "Unlocking encrypted volumes:"
+ csfailed=0
+ CS=/sbin/cryptsetup.static
+ do_crypt() {
+ if [ $# -ge 3 ]; then
+ cname="$1"
+ csrc="$2"
+ cpass="$3"
+ shift 3
+ copts="$*"
+ stat_append "${cname}.."
+ # For some fun reason, the parameter ordering varies for
+ # LUKS and non-LUKS devices. Joy.
+ if [ "${cpass}" = "SWAP" ]; then
+ # This is DANGEROUS! The only possible safety check
+ # is to not proceed in case we find a LUKS device
+ # This may cause dataloss if it is not used carefully
+ if $CS isLuks $csrc 2>/dev/null; then
+ false
+ else
+ $CS -d /dev/urandom $copts create $cname $csrc >/dev/null
+ if [ $? -eq 0 ]; then
+ stat_append "creating swapspace.."
+ /sbin/mkswap -L $cname /dev/mapper/$cname >/dev/null
+ fi
+ fi
+ elif [ "${cpass}" = "ASK" ]; then
+ printf "\nOpening '${cname}' volume:\n"
+
+ if $CS isLuks $csrc 2>/dev/null; then
+ $CS $copts luksOpen $csrc $cname < /dev/console
+ else
+ $CS $copts create $cname $csrc < /dev/console
+ fi
+ elif [ "${cpass:0:1}" != "/" ]; then
+ if $CS isLuks $csrc 2>/dev/null; then
+ echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null
+ else
+ echo "$cpass" | $CS $copts create $cname $csrc >/dev/null
+ fi
+ else
+ if $CS isLuks $csrc 2>/dev/null; then
+ $CS -d $cpass $copts luksOpen $csrc $cname >/dev/null
+ else
+ $CS -d $cpass $copts create $cname $csrc >/dev/null
+ fi
+ fi
+ if [ $? -ne 0 ]; then
+ csfailed=1
+ stat_append "failed "
+ else
+ stat_append "ok "
+ fi
+ fi
+ }
+ while read line; do
+ eval do_crypt "$line"
+ done </etc/crypttab
+ if [ $csfailed -eq 0 ]; then
+ stat_done
+ else
+ stat_fail
+ fi
+ # Maybe someone has LVM on an encrypted block device
+ if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
+ if [ -x /sbin/lvm -a -d /sys/block ]; then
+ /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
+ /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
+ fi
+ fi
+fi
+
+FORCEFSCK=
+[ -f /forcefsck ] && FORCEFSCK="-- -f"
+NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk"
+
+#F Check filesystems
+f_fscheck
+
+#F Activate swaps
+f_swapon
+
+stat_busy "Configuring System Clock"
+if [ ! -f /var/lib/hwclock/adjtime ]; then
+ echo "0.0 0 0.0" > /var/lib/hwclock/adjtime
+fi
+if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
+ /bin/rm -f /etc/localtime
+ /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
+fi
+
+/sbin/hwclock $HWCLOCK_PARAMS
+stat_done
+
+if [ -f /var/run/random-seed ]; then
+ stat_busy "Initializing Random Seed"
+ /bin/cat /var/run/random-seed >/dev/urandom
+ stat_done
+fi
+
+stat_busy "Removing Leftover Files"
+/bin/rm -f /etc/nologin &>/dev/null
+/bin/rm -f /etc/shutdownpid &>/dev/null
+/bin/rm -f /var/lock/* &>/dev/null
+/bin/rm -rf /tmp/* /tmp/.* &>/dev/null
+/bin/rm -f /forcefsck &>/dev/null
+(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; )
+: > /var/run/utmp
+# Keep {x,k,g}dm happy with xorg
+/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix
+/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix
+stat_done
+
+#status "Updating Shared Library Links" /sbin/ldconfig
+
+if [ "$HOSTNAME" != "" ]; then
+ status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME
+fi
+
+# Set the NIS domain name, if necessary
+[ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname
+if [ "$NISDOMAINNAME" != "" ]; then
+ status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME
+fi
+
+status "Updating Module Dependencies" /sbin/depmod -A
+
+# Flush old locale settings
+: >/etc/profile.d/locale.sh
+/bin/chmod 755 /etc/profile.d/locale.sh
+# Set user defined locale
+[ -z "$LOCALE" ] && LOCALE="en_US"
+stat_busy "Setting Locale: $LOCALE"
+echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh
+stat_done
+
+if echo "$LOCALE" | /bin/grep -qi utf ; then
+ stat_busy "Setting Consoles to UTF-8 mode"
+ # UTF-8 consoles are default since 2.6.24 kernel
+ # this code is needed not only for older kernels,
+ # but also when user has set vt.default_utf8=0 but LOCALE is *.UTF-8.
+ /usr/bin/kbd_mode -u
+ for i in $(/usr/bin/seq 0 63); do
+ printf "\e%%G" > /dev/vc/${i}
+ done
+ # the $CONSOLE check helps us avoid this when running scripts from cron
+ echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%G"; fi' >>/etc/profile.d/locale.sh
+ stat_done
+ [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q -u $KEYMAP
+else
+ stat_busy "Setting Consoles to legacy mode"
+ # make non-UTF-8 consoles work on 2.6.24 and newer kernels
+ /usr/bin/kbd_mode -a
+ for i in $(/usr/bin/seq 0 63); do
+ printf "\e%%@" > /dev/vc/${i}
+ done
+ # the $CONSOLE check helps us avoid this when running scripts from cron
+ echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%@"; fi' >>/etc/profile.d/locale.sh
+ stat_done
+ [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP
+fi
+
+if [ -n "$CONSOLEFONT" ]; then
+ stat_busy "Loading Console Font: $CONSOLEFONT"
+ #CONSOLEMAP in UTF-8 shouldn't be used
+ if [ -n "$CONSOLEMAP" ] && echo "$LOCALE" | /bin/grep -qi utf ; then
+ CONSOLEMAP=""
+ fi
+ for i in $(/usr/bin/seq 0 63); do
+ if [ -n "$CONSOLEMAP" ]; then
+ /usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1
+ else
+ /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1
+ fi
+ done
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ for i in $(/usr/bin/seq 0 63); do
+ printf "\e(K" > /dev/vc/${i}
+ done
+ # the $CONSOLE check helps us avoid this when running scripts from cron
+ echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh
+ stat_done
+ fi
+fi
+
+# Adding persistent network/cdrom generated rules
+if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then
+ stat_busy "Adding persistent cdrom udev rules"
+ /bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules
+ stat_done
+fi
+if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then
+ stat_busy "Adding persistent network udev rules"
+ /bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules
+ stat_done
+fi
+
+# Save our dmesg output from this boot
+if [ -f /var/log/dmesg.log ]; then
+ /bin/rm /var/log/dmesg.log
+fi
+/bin/dmesg > /var/log/dmesg.log
+
+# vim: set ts=2 noet:
+# End
diff --git a/abs/not_built/core/linhes-live/etc/ulogin b/abs/not_built/core/linhes-live/etc/ulogin
new file mode 100755
index 0000000..085c431
--- /dev/null
+++ b/abs/not_built/core/linhes-live/etc/ulogin
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# ulogin - A script for autologin of a selected user (and more)
+#-----------------------------------------------------------------
+# 2008.04.06
+
+user=$( cat /tmp/newuser 2>/dev/null )
+
+rm -f /tmp/newuser
+rm -f /tmp/xlogout
+
+if [ -n "${user}" ]; then
+ login -f ${user}
+else
+ # offer choice of user
+ ulist="$( cat /etc/passwd | grep ':/home/.*sh$' )"
+ echo -e "\nLogin a user or quit:"
+ echo " 0 : root"
+ echo " 1 : REBOOT"
+ echo " 2 : HALT"
+
+ i=2
+ for entry in ${ulist}; do
+ i=$(( ${i} + 1 ))
+ user="$( echo ${entry} | cut -d':' -f1 )"
+ users[${i}]=${user}
+ printf "%4d : %s\n" ${i} ${user}
+ done
+ while true; do
+ read -p "Enter a number from 0 to ${i} : " n
+ if [ "${n}" = 0 ]; then
+ login -f root
+ elif [ "${n}" = 1 ]; then
+ exec reboot
+ elif [ "${n}" = 2 ]; then
+ exec halt
+ elif [ -n "$( echo "${n}" | grep "^[0-9]\+$" )" ] && \
+ [ -n "${users[${n}]}" ]; then
+ login -f ${users[${n}]}
+ else
+ echo " *** Invalid choice ..."
+ continue
+ fi
+ break
+ done
+fi
+
+if grep "r" /tmp/xlogout &>/dev/null; then
+ reboot
+elif grep "h" /tmp/xlogout &>/dev/null; then
+ halt
+fi
+
+# This file is only needed for shutting down
+rm -f /tmp/checkse
+
+# End
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/gen_larch_init b/abs/not_built/core/linhes-live/lib/initcpio/gen_larch_init
new file mode 100755
index 0000000..d834e8f
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/gen_larch_init
@@ -0,0 +1,12 @@
+#! /bin/bash
+
+# gen_larch_init
+#
+# Author: Michael Towers <gradgrind[at]online[dot]de>
+
+# Create an initramfs for a larch live system
+# $1 - kernel version
+
+# The cpio.gz image is generated in larch.img
+
+/sbin/mkinitcpio -c /lib/initcpio/mkinitcpio.conf -k $1 -g larch.img
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1 b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1
new file mode 100644
index 0000000..88ccc3e
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1
@@ -0,0 +1,125 @@
+# vim: set ft=sh:
+
+# larch1 - live 'hook' for mkinitcpio: set up tmpfs and find boot device
+
+# Author: Michael Towers (gradgrind) <mt.42@web.de>
+#
+# This file is part of the larch project.
+#
+# larch is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# larch is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with larch; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#----------------------------------------------------------------------------
+#2008.02.11
+
+# Replacement for msg which includes leading and trailing spaces
+msg_ () { [ "${quiet}" != "y" ] && echo "$@"; }
+
+# Try to mount a disk, partition or cdrom and look for the file
+# 'larchboot' in the /larch directory.
+# If LiveCD system found in the device, return 0, else return 1
+# and leave the device mounted.
+# $1 = device name (e.g. "/dev/hda2")
+# $2 = directory where devices will be mounted
+#
+test_live_data_dir ()
+{
+ /bin/mount -r -t iso9660 "$1" $2 >/dev/null 2>/dev/null || \
+ /bin/mount -r -t vfat -o noatime,nodiratime "$1" $2 >/dev/null 2>/dev/null || \
+ /bin/mount -r -t ext2 -o noatime,nodiratime "$1" $2 >/dev/null 2>/dev/null
+ if [ $? -eq 0 ]; then
+ if [ -f "$2/larch/larchboot" ]; then
+ LDEV="$1"
+ msg_ " ... found at $1"
+ return 0
+ else
+ /bin/umount $2 2>/dev/null
+ msg_ " ... $1 mounted, but no 'larch/larchboot' found"
+ fi
+ else
+ msg_ " ... not $1"
+ fi
+ return 1
+}
+
+run_hook ()
+{
+ msg_ ":: Creating writeable filesystem (tmpfs)"
+ /bin/mkdir "/tfs"
+ # Boot option copy-to-ram (c2r)
+ if [ "${c2r}" = "y" ]; then
+ TFSSIZE="90%"
+ else
+ TFSSIZE="60%"
+ fi
+ /bin/mount -t tmpfs -o "size=${TFSSIZE}" tmpfs "/tfs"
+
+ # Directory for test mounts (and then for live CD)
+ cdmount="/livecd"
+ /bin/mkdir "${cdmount}"
+
+ # look for livecd data directory, first try ${root}
+ LDEV="${root}"
+ if [ "x${LDEV}" != "x" ]; then
+ /bin/mount -r -t iso9660 "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null || \
+ /bin/mount -r -t vfat -o noatime,nodiratime "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null || \
+ /bin/mount -r -t ext2 -o noatime,nodiratime "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null
+ if [ $? -eq 0 ]; then
+ if [ -d "${cdmount}/larch" ]; then
+ msg_ ":: larch system at ${LDEV}"
+ else
+ /bin/umount "${cdmount}" 2>/dev/null
+ echo "!! No larch system at ${LDEV}"
+ LDEV=""
+ fi
+ else
+ echo "!! Couldn't mount ${LDEV}"
+ LDEV=""
+ fi
+ fi
+
+ # then try cdroms
+ if [ "x${LDEV}" = "x" ]; then
+ msg_ ":: Looking for boot device"
+ cdroms=$( /bin/cat /proc/sys/dev/cdrom/info | { while read a b c; do
+ if [ "${a}" = "drive" -a "${b}" = "name:" ]; then
+ echo "${c}"
+ break
+ fi
+ done
+ } )
+ for i in ${cdroms}; do
+ test_live_data_dir "/dev/${i}" "${cdmount}"
+ if [ $? -eq 0 ]; then break; fi
+ done
+ fi
+
+ # test USB devices (and disks) repeatedly until timed out
+ if [ "x${LDEV}" = "x" ]; then
+ msg_ ":: Searching for usb (and disk) devices .."
+ for i in 1 2 3 4 5; do
+ msg_ " :wait ${i} :::"
+ /bin/sleep ${i}
+ for d in /dev/sd[a-z][0-9]*; do
+ test_live_data_dir "${d}" "${cdmount}"
+ if [ $? -eq 0 ]; then break 2; fi
+ done
+ msg_ ":: Searching for usb cdroms .."
+ for d in /dev/sr[0-9]*; do
+ test_live_data_dir "${d}" "${cdmount}"
+ if [ $? -eq 0 ]; then break 2; fi
+ done
+ done
+ fi
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2 b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2
new file mode 100644
index 0000000..74b4e64
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2
@@ -0,0 +1,33 @@
+# larch2 - live 'hook' for mkinitcpio: unionfs specific
+
+# Author: Michael Towers (gradgrind) <mt.42@web.de>
+#
+# This file is part of the larch project.
+#
+# larch is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# larch is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with larch; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#----------------------------------------------------------------------------
+#2007.12.13
+
+run_hook ()
+{
+ #!!! --- unionfs specific
+ # Need unionfs module
+ /bin/modprobe unionfs
+ ovlmnt="ro"
+ bropt="dirs="
+ sqfmnt="ro"
+ utype="unionfs"
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs
new file mode 100644
index 0000000..ac8e40b
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs
@@ -0,0 +1,33 @@
+# larch2_aufs - live 'hook' for mkinitcpio: aufs specific
+
+# Author: Michael Towers (gradgrind) <mt.42@web.de>
+#
+# This file is part of the larch project.
+#
+# larch is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# larch is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with larch; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#----------------------------------------------------------------------------
+# 2008.02.29
+
+run_hook ()
+{
+ #!!! --- aufs specific
+ # Need aufs module
+ /bin/modprobe aufs
+ ovlmnt="rr+wh"
+ sqfmnt="rr"
+ bropt="br:"
+ utype="aufs"
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3 b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3
new file mode 100644
index 0000000..b301aa9
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3
@@ -0,0 +1,196 @@
+# larch3 - live 'hook' for mkinitcpio:
+# deal with c2r,
+# mount base system,
+# load overlay,
+# set up unioned root filesystem.
+# Also manages overlay merging.
+
+# Author: Michael Towers <gradgrind[at]online[dot]de>
+#
+# This file is part of the larch project.
+#
+# larch is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# larch is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with larch; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#----------------------------------------------------------------------------
+# 2008.04.04
+
+run_hook ()
+{
+ if [ "x${LDEV}" = "x" ]; then
+ err "Sorry, couldn't find boot medium ..."
+ break="y"
+ return
+ fi
+
+ /sbin/modprobe loop
+
+ # Path to compressed base system
+ sysSqf=${cdmount}/system.sqf
+
+ ovlpath=${cdmount}
+
+ # A possibility to use alternative files:
+ if [ -f ${cdmount}/larch/boot-init ]; then
+ . ${cdmount}/larch/boot-init
+ fi
+
+ # Path to compressed 'modifications' archive
+ modsSqf=${ovlpath}/mods.sqf
+ # Default overlay file and directory
+ overlay=${ovlpath}/overlay.ovl
+
+ # Make union root
+ /bin/mkdir /union
+
+ # Deal with new archives
+ if [ -f ${overlay}_ ]; then
+ /bin/mount -o remount,rw ${LDEV} ${cdmount}
+ /bin/mv ${overlay} ${overlay}~
+ /bin/mv ${overlay}_ ${overlay}
+
+ if [ -f ${modsSqf}_ ]; then
+ /bin/mv ${modsSqf} ${modsSqf}~
+ /bin/mv ${modsSqf}_ ${modsSqf}
+ fi
+ /bin/mount -o remount,ro ${LDEV} ${cdmount}
+ fi
+
+ # Boot option copy-to-ram (c2r)
+ if [ "${c2r}" = "y" ]; then
+ msg_ ":: Copying base system to RAM, this will take a while ..."
+ /bin/cat ${sysSqf} > /tfs/system.sqf
+ if [ $? -ne 0 ]; then
+ err "Sorry, not enough RAM"
+ break="y"
+ return
+ fi
+ sysSqf=/tfs/system.sqf
+
+ msg_ ":: Copying mods archive to RAM, this might take a while ..."
+ /bin/cat ${modsSqf} > /tfs/mods.sqf
+ if [ $? -ne 0 ]; then
+ err "Sorry, not enough RAM"
+ break="y"
+ return
+ fi
+ modsSqf=/tfs/mods.sqf
+
+ # force use of swap (if available)
+ :> /tfs/swapon
+
+ elif [ "${swap}" = "y" ]; then
+ :> /tfs/swapon
+ fi
+
+ msg_ ":: Mounting squashed images"
+ /bin/mkdir /tfs/system
+ #added sleep for 3 seconds, because well i don't know but it seems to fix things
+ sleep 3
+ # The klibc mount command doesn't support '-o loop'
+ /bin/losetup /dev/loop0 ${sysSqf}
+ /bin/mount -r -t squashfs /dev/loop0 /tfs/system
+
+ # Make stuff in 'system' available by providing the loader and
+ # library path
+ ldli=$( cd /tfs/system; echo lib/ld-linux*.so.2 )
+ /bin/ln -s /tfs/system/${ldli} /${ldli}
+ export LD_LIBRARY_PATH=/tfs/system/lib:/tfs/system/usr/lib
+
+ /bin/mkdir /tfs/mods
+
+ # The klibc mount command doesn't support '-o loop'
+ /bin/losetup /dev/loop1 ${modsSqf}
+ /bin/mount -r -t squashfs /dev/loop1 /tfs/mods
+
+ # Unpack the overlay
+
+ msg_ ":: Initializing writable layer for union (overlay)"
+ /tfs/system/usr/bin/lzop -d < ${overlay} | \
+ /tfs/system/bin/tar -C /tfs -xf -
+
+ # Copy the installation tidy-up script (for removing custom live-only stuff),
+ # and any other files in 'larch/copy' directory
+ if [ -d ${ovlpath}/larch/copy ]; then
+ cd ${ovlpath}/larch/copy
+ for f in *; do
+ cat ${f} >/tfs/${f}
+ done
+ fi
+
+ msg_ ":: Setting up union file system"
+
+ layers="/tfs/overlay=rw:/tfs/mods=${ovlmnt}:/tfs/system=${sqfmnt}"
+ /bin/mount -t ${utype} -o ${bropt}${layers} ${utype} /union
+
+ echo "${utype}" > /tfs/utype
+
+ # Minimal device nodes needed before udev does its work
+ /bin/mkdir /union/dev
+ /bin/mknod /union/dev/console c 5 1
+ /bin/mknod /union/dev/null c 1 3
+ /bin/mknod /union/dev/zero c 1 5
+
+ # Make special directories
+ /bin/mkdir -m 1777 /union/tmp
+ /bin/mkdir /union/media
+ /bin/mkdir /union/sys
+ /bin/mkdir /union/proc
+
+ # Make the tmpfs stuff accessible within the union
+ /bin/mkdir /union/.livesys
+ /bin/mount -o bind /tfs /union/.livesys
+
+ /bin/mkdir /union/.livesys/medium
+
+ /bin/mount -o bind /tfs/system /union/.livesys/system
+ /bin/mount -o bind /tfs/overlay /union/.livesys/overlay
+ /bin/mount -o bind ${cdmount} /union/.livesys/medium
+
+ if [ "x${modsSqf}" != "x" ]; then
+ /bin/mount -o move /tfs/mods /union/.livesys/mods
+ fi
+
+ # Remember the boot device
+ echo "${LDEV}" > /tfs/bootdevice
+
+ if [ "${c2r}" = "y" ]; then
+ # Set flag to inform system of copy-to-ram
+ :> /tfs/c2r
+
+ # Unmount boot device
+ /bin/umount ${cdmount}
+ fi
+
+ msg_ ":: End of live system set-up"
+
+ # Now some tweaks to alter 'init' actions from non-larch hooks, etc.
+ # Override rootdelay from usb hook
+ if [ "x${larchdelay}" = "x" ]; then
+ # To avoid spurious udevd pid numbers
+ export rootdelay=1
+ else
+ # Allow adjustment via boot option
+ export rootdelay=${larchdelay}
+ fi
+ # root must be set to something or other, even though larch doesn't
+ # need it ...
+ export root="/dev/loop0"
+}
+
+#######
+# The actual root switch occurs later, when 'init' execs 'kinit'.
+# I handle this by overwriting the 'kinit' binary with my own script.
+# This will unmount dev, sys and proc and then exec run-init.
+#######
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch1 b/abs/not_built/core/linhes-live/lib/initcpio/install/larch1
new file mode 100644
index 0000000..56baf48
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch1
@@ -0,0 +1,15 @@
+install ()
+{
+ MODULES="vfat isofs ext2 ext3 nls_cp437"
+ BINARIES=""
+ FILES=""
+ SCRIPT="larch1"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook deals with booting a larch live CD. It is the first larch hook,
+creating a tmpfs and seeking the boot medium.
+HELPEOF
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch2 b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2
new file mode 100644
index 0000000..a906227
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2
@@ -0,0 +1,15 @@
+install ()
+{
+ MODULES="unionfs"
+ BINARIES=""
+ FILES=""
+ SCRIPT="larch2"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook deals with booting a larch live CD. It handles selection of the
+desired unioning file system, here unionfs.
+HELPEOF
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs
new file mode 100644
index 0000000..0e19de9
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs
@@ -0,0 +1,15 @@
+install ()
+{
+ MODULES="aufs"
+ BINARIES=""
+ FILES=""
+ SCRIPT="larch2_aufs"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook deals with booting a larch live CD. It handles selection of the
+desired unioning file system, here aufs.
+HELPEOF
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch3 b/abs/not_built/core/linhes-live/lib/initcpio/install/larch3
new file mode 100644
index 0000000..7dad03c
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch3
@@ -0,0 +1,18 @@
+install ()
+{
+ MODULES="squashfs loop reiserfs"
+ BINARIES=""
+ FILES=""
+ SCRIPT="larch3"
+# add_file "/lib/initcpio/kinit" "/bin/kinit" ##### This doesn't work, so:
+ sed -i 's|.*/usr/lib/klibc/bin/kinit\.shared.*||' "${FILELIST}"
+ sed -i 's|/usr/lib/klibc/bin/kinit|/lib/initcpio/kinit|' "${FILELIST}"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook deals with booting a larch live CD. It is the last larch hook,
+setting up the tmpfs root file system.
+HELPEOF
+}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/kinit b/abs/not_built/core/linhes-live/lib/initcpio/kinit
new file mode 100755
index 0000000..7c86f4b
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/kinit
@@ -0,0 +1,6 @@
+#! /bin/sh
+
+umount /sys
+umount /proc
+umount /dev
+exec run-init -c /dev/console /union /sbin/init ${CMDLINE}
diff --git a/abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf b/abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf
new file mode 100644
index 0000000..79cca21
--- /dev/null
+++ b/abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf
@@ -0,0 +1,54 @@
+# vim:set ft=sh
+# MODULES
+# The following modules are loaded before any boot hooks are
+# run. Advanced users may wish to specify all system modules
+# in this array. For instance:
+# MODULES="piix ide_disk reiserfs"
+MODULES=""
+
+# BINARIES
+# This setting includes, into the CPIO image, and additional
+# binaries a given user may wish. This is run first, so may
+# be used to override the actual binaries used in a given hook.
+# (Existing files are NOT overwritten is already added)
+# BINARIES are dependancy parsed, so you may safely ignore libraries
+#BINARIES=""
+
+# FILES
+# This setting is similar to BINARIES above, however, files are added
+# as-is and are not parsed in anyway. This is useful for config files.
+# Some users may wish to include modprobe.conf for custom module options,
+# like so:
+# FILES="/etc/modprobe.conf"
+FILES=""
+
+# HOOKS
+# This is the most important setting in this file. The HOOKS control the
+# modules and scripts added to the image, and what happens at boot time.
+# Order is important, and it is recommended that you do not change the
+# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
+# help on a given hook.
+# 'base' is _required_ unless you know precisely what you are doing.
+# 'udev' is _required_ in order to automatically load modules
+# 'modload' may be used in place of 'udev', but is not recommended
+# 'filesystems' is _required_ unless you specify your fs modules in MODULES
+# Examples:
+# This setup specifies all modules in the MODULES setting above.
+# No raid, lvm, or encrypted root is needed.
+# HOOKS="base"
+#
+# This setup will autodetect all modules for your system and should
+# work as a sane default
+# HOOKS="base udev autodetect ide scsi sata filesystems"
+#
+# This setup will generate a 'full' image which supports most systems.
+# No autodetection is done.
+# HOOKS="base udev ide scsi sata usb filesystems"
+#
+# This setup assembles an ide raid array with an encrypted root FS.
+# Note: See 'mkinitcpio -H raid' for more information on raid devices.
+# HOOKS="base udev ide filesystems raid encrypt"
+#
+# This setup loads an LVM volume group on a usb device.
+# HOOKS="base udev usb filesystems lvm"
+HOOKS="base udev pata scsi sata usb larch1 larch2___aufs___ larch3"
diff --git a/abs/not_built/core/linuxtv-dvb-apps/PKGBUILD b/abs/not_built/core/linuxtv-dvb-apps/PKGBUILD
new file mode 100644
index 0000000..7dd5b29
--- /dev/null
+++ b/abs/not_built/core/linuxtv-dvb-apps/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id$
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Camille Moncelier <pix@devlife.org>
+
+pkgname=linuxtv-dvb-apps
+pkgver=1.1.1
+pkgrel=4
+_hgrev=68d20621d93a
+pkgdesc='Viewer programs for DVB cards'
+arch=('i686' 'x86_64')
+url='http://www.linuxtv.org/'
+license=('GPL')
+install=linuxtv-dvb-apps.install
+#source=(http://www.linuxtv.org/download/dvb/$pkgname-$pkgver.tar.bz2)
+source=("http://linuxtv.org/hg/dvb-apps/archive/${_hgrev}.tar.bz2")
+
+build() {
+ cd dvb-apps-${_hgrev}
+
+ rm -rf include
+
+ make -C lib
+
+ make -C util
+}
+
+package() {
+ cd dvb-apps-${_hgrev}
+
+ make -C lib DESTDIR=${pkgdir} install
+
+ make -C util DESTDIR=${pkgdir} install
+
+ chmod 755 ${pkgdir}/usr/lib/*.so*
+}
+
+md5sums=('6e4bc8e5b22609b212f968c7d88e90ab')
diff --git a/abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install b/abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install
new file mode 100644
index 0000000..a260be2
--- /dev/null
+++ b/abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install
@@ -0,0 +1,8 @@
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ echo ">>> Some initial-tuning-data files have been installed under"
+ echo ">>> /usr/share/dvb-utils/scan/"
+ echo ">>> you can use them to generate your channel.conf file"
+}
+
diff --git a/abs/not_built/core/lshw/PKGBUILD b/abs/not_built/core/lshw/PKGBUILD
new file mode 100644
index 0000000..6d76925
--- /dev/null
+++ b/abs/not_built/core/lshw/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 29087 2010-10-10 07:47:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Stefano Zamprogno <stefano dot zamprogno at gmail dot com>
+# Contributor: Chuck Yang <Chuck.Yang@gmail.com>
+
+pkgname=lshw
+pkgver=B.02.15
+pkgrel=1
+pkgdesc="A small tool to provide detailed information on the hardware configuration of the machine."
+url="http://ezix.org/project/wiki/HardwareLiSter"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gcc-libs')
+optdepends=('gtk2')
+makedepends=('gcc')
+source=(http://ezix.org/software/files/lshw-$pkgver.tar.gz
+ abi_stdlib.diff)
+md5sums=('970bd9eb05fa3ae139a24a417465c54c'
+ '7adcdd7a2be2feba956a9832cf36abdf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+# patch -Np1 -i ../abi_stdlib.diff || return 1
+
+ make || return 1
+ make gui || return 1
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir/ install || return 1
+ make DESTDIR=$pkgdir/ install-gui || return 1
+}
+
diff --git a/abs/not_built/core/lshw/abi_stdlib.diff b/abs/not_built/core/lshw/abi_stdlib.diff
new file mode 100644
index 0000000..ffe88d1
--- /dev/null
+++ b/abs/not_built/core/lshw/abi_stdlib.diff
@@ -0,0 +1,23 @@
+diff -wbBur lshw-B.02.14/src/core/abi.cc lshw-B.02.14.my//src/core/abi.cc
+--- lshw-B.02.14/src/core/abi.cc 2009-02-12 22:53:09.000000000 +0000
++++ lshw-B.02.14.my//src/core/abi.cc 2010-05-24 14:30:18.000000000 +0000
+@@ -10,6 +10,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <dirent.h>
++#include <stdlib.h>
+
+ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $");
+
+diff -wbBur lshw-B.02.14/src/core/scsi.cc lshw-B.02.14.my//src/core/scsi.cc
+--- lshw-B.02.14/src/core/scsi.cc 2009-02-12 22:53:09.000000000 +0000
++++ lshw-B.02.14.my//src/core/scsi.cc 2010-05-24 14:32:13.000000000 +0000
+@@ -842,7 +842,7 @@
+
+ if (!controller)
+ {
+- controller = node.addChild(hwNode::hwNode("scsi", hw::storage));
++ controller = node.addChild(hwNode("scsi", hw::storage));
+ if (controller)
+ {
+ controller->setLogicalName(host_logicalname(number));
diff --git a/abs/not_built/core/lzop/PKGBUILD b/abs/not_built/core/lzop/PKGBUILD
new file mode 100644
index 0000000..240422d
--- /dev/null
+++ b/abs/not_built/core/lzop/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 98428 2010-11-08 21:29:39Z andrea $
+# Maintainer:
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lzop
+pkgver=1.03
+pkgrel=1
+pkgdesc="File compressor using lzo lib"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.lzop.org/"
+depends=('lzo2')
+source=(http://www.lzop.org/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('006c5e27fb78cdd14a628fdfa5aa1905')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/abs/not_built/core/mailx/PKGBUILD b/abs/not_built/core/mailx/PKGBUILD
new file mode 100644
index 0000000..0041d2a
--- /dev/null
+++ b/abs/not_built/core/mailx/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: judd <jvinet@zeroflux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=mailx
+pkgver=8.1.1
+pkgrel=14
+pkgdesc="A commandline utility for sending email"
+arch=(i686 x86_64)
+url="http://www.opengroup.org/onlinepubs/007908799/xcu/mailx.html"
+license=('BSD')
+groups=('base')
+depends=('glibc')
+source=(ftp://ftp.archlinux.org/other/mailx/$pkgname-$pkgver-fixed.tar.gz \
+ mailx-$pkgver.patch mailx-gcc4.patch)
+md5sums=('63cad526ac64b57bcba2c0daaa1f3048' '905cfa35b5131524bfec0c677d456bd3'\
+ '8716c7c7b3f5d348443230e2fe543bf6')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver-fixed
+ patch -Np1 -i ../mailx-$pkgver.patch || return 1
+ patch -Np0 -i ../mailx-gcc4.patch || return 1
+ make all || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/not_built/core/mailx/mailx-8.1.1.patch b/abs/not_built/core/mailx/mailx-8.1.1.patch
new file mode 100644
index 0000000..2c0b777
--- /dev/null
+++ b/abs/not_built/core/mailx/mailx-8.1.1.patch
@@ -0,0 +1,32 @@
+diff -Naur mailx-8.1.1-fixed-orig/Makefile mailx-8.1.1-fixed/Makefile
+--- mailx-8.1.1-fixed-orig/Makefile Thu Mar 16 09:30:36 2000
++++ mailx-8.1.1-fixed/Makefile Wed Feb 27 12:50:09 2002
+@@ -7,18 +7,20 @@
+ BINOWN = root
+ BINGRP = mail
+
++DESTDIR =
++
+ all:
+ gcc $(SRCS) -o $(PROG)
+
+ install:
+- mkdir -p /usr/share/misc
+- mkdir -p /usr/share/man/man1
+- mkdir -p /etc
+- mkdir -p /usr/bin
+- install -o $(BINOWN) -g $(BINGRP) -m 2755 $(PROG) /usr/bin
+- install -o root -g root -m 644 mail.1 /usr/share/man/man1
++ mkdir -p $(DESTDIR)/usr/share/misc
++ mkdir -p $(DESTDIR)/usr/man/man1
++ mkdir -p $(DESTDIR)/etc
++ mkdir -p $(DESTDIR)/usr/bin
++ install -o $(BINOWN) -g $(BINGRP) -m 2755 $(PROG) $(DESTDIR)/usr/bin
++ install -o root -g root -m 644 mail.1 $(DESTDIR)/usr/man/man1
+ cd misc; install -c -o ${BINOWN} -g ${BINGRP} \
+- -m 444 ${SFILES} /usr/share/misc
++ -m 444 ${SFILES} $(DESTDIR)/usr/share/misc
+ cd misc; install -c -o root -g root \
+- -m 644 ${EFILES} /etc
++ -m 644 ${EFILES} $(DESTDIR)/etc
+
diff --git a/abs/not_built/core/mailx/mailx-gcc4.patch b/abs/not_built/core/mailx/mailx-gcc4.patch
new file mode 100644
index 0000000..54740a2
--- /dev/null
+++ b/abs/not_built/core/mailx/mailx-gcc4.patch
@@ -0,0 +1,12 @@
+K. Piche: Unofficial patch for mailx.
+
+--- dotlock.c.orig 2005-09-18 20:28:20.000000000 -0400
++++ dotlock.c 2005-09-18 20:26:59.000000000 -0400
+@@ -47,6 +47,7 @@
+ #include <errno.h>
+ #include <signal.h>
+
++#include "def.h"
+ #include "extern.h"
+
+ #ifndef O_SYNC
diff --git a/abs/not_built/core/mcpp/PKGBUILD b/abs/not_built/core/mcpp/PKGBUILD
new file mode 100644
index 0000000..57dae67
--- /dev/null
+++ b/abs/not_built/core/mcpp/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 22398 2008-12-26 17:32:45Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=mcpp
+pkgver=2.7.2
+pkgrel=1
+pkgdesc="Matsui's CPP implementation precisely conformed to standards"
+arch=(i686 x86_64)
+license=('custom')
+url="http://mcpp.sourceforge.net"
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz )
+depends=(glibc)
+md5sums=('512de48c87ab023a69250edc7a0c7b05')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ ln -sf ../doc/${pkgname}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/mcpp/mcpp-2.6.4-patch b/abs/not_built/core/mcpp/mcpp-2.6.4-patch
new file mode 100644
index 0000000..bbdf09c
--- /dev/null
+++ b/abs/not_built/core/mcpp/mcpp-2.6.4-patch
@@ -0,0 +1,22 @@
+*** src/support.c.orig 2007-05-18 21:31:17.000000000 +0900
+--- src/support.c 2007-09-17 22:11:27.000000000 +0900
+***************
+*** 1678,1686 ****
+ , NULL, (long) c, NULL);
+ case '\t': /* Horizontal space */
+ case ' ':
+! if (mcpp_mode == OLD_PREP) {
+! if ((*(tp - 1) != ' ' && *(tp - 1) != COM_SEP))
+! *(tp - 1) = ' '; /* Squeeze COM_SEP with spaces */
+ } else {
+ if (*(tp - 1) != ' ')
+ *tp++ = ' '; /* Squeeze white spaces */
+--- 1678,1685 ----
+ , NULL, (long) c, NULL);
+ case '\t': /* Horizontal space */
+ case ' ':
+! if (mcpp_mode == OLD_PREP && (*(tp - 1) == COM_SEP)) {
+! *(tp - 1) = ' '; /* Squeeze COM_SEP with spaces */
+ } else {
+ if (*(tp - 1) != ' ')
+ *tp++ = ' '; /* Squeeze white spaces */
diff --git a/abs/not_built/core/mjpegtools/PKGBUILD b/abs/not_built/core/mjpegtools/PKGBUILD
new file mode 100644
index 0000000..bf31ebf
--- /dev/null
+++ b/abs/not_built/core/mjpegtools/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 84755 2010-07-04 03:32:01Z eric $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Mantainer: Roberto Carvajal <roberto@archlinux.org>
+
+pkgname=mjpegtools
+pkgver=1.9.0
+pkgrel=12
+pkgdesc="Set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://mjpeg.sourceforge.net/"
+depends=('libjpeg>=8' 'libpng>=1.4.0' 'sdl' 'gcc-libs' 'libdv' 'libjpeg6')
+makedepends=('gtk2>=2.18.6')
+optdepends=('gtk2: glav GUI')
+options=('!makeflags' '!libtool')
+install=mjpegtools.install
+source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz
+ mjpegtools-1.9.0-glibc-2.10.patch
+ png2yuv-fix-memleak.patch
+ mjpegtools-1.9.0-jpeg-7.patch)
+md5sums=('309a6fcf0900a010d6a9c1e91afc2f5c' 'b8ae66237d83be533db8eea166fd3357'\
+ '39e1def8fb0f7c58a217b22dc251a86a' 'ccc7562a3933877d3362da7cf4695ea0')
+sha1sums=('1701233354c7ea86b5b7808c4dd5d03a71118e48' '3029f0e835e693b144298ed9f8143c9566be26f3'\
+ '8af5c3747756353bef56d03bafbdd086ff15c02c' '2bdb1b3b8591cede11d4a133a758e8ead35db4dd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure
+ patch -Np1 -i "$srcdir/mjpegtools-1.9.0-glibc-2.10.patch"
+ patch -Np1 -i "${srcdir}/png2yuv-fix-memleak.patch"
+ patch -Np0 -i "${srcdir}/mjpegtools-1.9.0-jpeg-7.patch"
+ env CPPFLAGS="-I/opt/libjpeg6/include" LDFLAGS="-L/opt/libjpeg6/lib"
+ ./configure --prefix=/usr --enable-largefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m644 mpeg2enc/mpeg2syntaxcodes.h "${pkgdir}/usr/include/mjpegtools/mpeg2enc/"
+}
diff --git a/abs/not_built/core/mjpegtools/__changelog b/abs/not_built/core/mjpegtools/__changelog
new file mode 100644
index 0000000..aa74d17
--- /dev/null
+++ b/abs/not_built/core/mjpegtools/__changelog
@@ -0,0 +1,2 @@
+change to build against libjpeg6
+ env CPPFLAGS="-I/opt/libjpeg6/include" LDFLAGS="-L/opt/libjpeg6/lib" ./configure -
diff --git a/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch
new file mode 100644
index 0000000..e161560
--- /dev/null
+++ b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch
@@ -0,0 +1,11 @@
+--- mjpegtools-1.9.0/mplex/lpcmstrm_in.cpp.orig 2009-05-27 01:31:46.000000000 -0700
++++ mjpegtools-1.9.0/mplex/lpcmstrm_in.cpp 2009-05-27 01:33:09.000000000 -0700
+@@ -53,7 +53,7 @@
+
+ bool LPCMStream::Probe(IBitStream &bs )
+ {
+- char *last_dot = strrchr( bs.StreamName(), '.' );
++ const char *last_dot = strrchr( bs.StreamName(), '.' );
+ return
+ last_dot != NULL
+ && strcmp( last_dot+1, "lpcm") == 0;
diff --git a/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch
new file mode 100644
index 0000000..ec36731
--- /dev/null
+++ b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch
@@ -0,0 +1,24 @@
+Fix segmentation fault with jpeg-7 and above where dinfo.do_fancy_upsampling isn't set by default to FALSE anymore.
+
+Patch by: Salah Coronya
+
+http://bugs.gentoo.org/show_bug.cgi?id=293919
+
+--- lavtools/jpegutils.c
++++ lavtools/jpegutils.c
+@@ -502,6 +502,7 @@
+
+ jpeg_read_header (&dinfo, TRUE);
+ dinfo.raw_data_out = TRUE;
++ dinfo.do_fancy_upsampling = FALSE;
+ dinfo.out_color_space = JCS_YCbCr;
+ dinfo.dct_method = JDCT_IFAST;
+ guarantee_huff_tables(&dinfo);
+@@ -599,6 +600,7 @@
+ if (field > 0) {
+ jpeg_read_header (&dinfo, TRUE);
+ dinfo.raw_data_out = TRUE;
++ dinfo.do_fancy_upsampling = FALSE;
+ dinfo.out_color_space = JCS_YCbCr;
+ dinfo.dct_method = JDCT_IFAST;
+ jpeg_start_decompress (&dinfo);
diff --git a/abs/not_built/core/mjpegtools/mjpegtools.install b/abs/not_built/core/mjpegtools/mjpegtools.install
new file mode 100644
index 0000000..1ef7d6f
--- /dev/null
+++ b/abs/not_built/core/mjpegtools/mjpegtools.install
@@ -0,0 +1,16 @@
+infodir=/usr/share/info
+file=mjpeg-howto.info
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch b/abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch
new file mode 100644
index 0000000..a6f03a4
--- /dev/null
+++ b/abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch
@@ -0,0 +1,10 @@
+--- mjpegtools-1.9.0/lavtools/png2yuv.c.orig 2010-01-17 14:26:24.000000000 +0100
++++ mjpegtools-1.9.0/lavtools/png2yuv.c 2010-01-17 14:27:53.000000000 +0100
+@@ -407,6 +407,7 @@
+ return 2;
+ }
+
++ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+ fclose(pngfile);
+
+ return 1;
diff --git a/abs/not_built/core/mythstream/PKGBUILD b/abs/not_built/core/mythstream/PKGBUILD
new file mode 100644
index 0000000..73fbf25
--- /dev/null
+++ b/abs/not_built/core/mythstream/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: kleptophobiac@gmail.com
+
+pkgname=mythstream
+pkgver=0.18_3
+pkgrel=13
+pkgdesc="Unofficial MythTV plugin for Internet audio and video streams."
+arch=('i686' 'x86_64')
+url="http://home.kabelfoon.nl/~moongies/streamtuned.html"
+license=('GPL')
+depends=('mythtv' 'perl-xml-simple' 'fftw' 'fftw2' 'perl-xml-xql')
+source=("http://home.kabelfoon.nl/~moongies/sw9vc4htz2/mythstream_mythtv-r21640.tar.gz" "mythstream.0.24.patch" "streams.res")
+md5sums=('')
+install=mythstream.install
+groups=('mythtv-extras')
+install=mythstream.install
+
+build() {
+ cd $startdir/src/mythstream_mythtv-r21640
+ ln -s ../../../mythtv/stable-0.24/mythtv/src/mythtv/mythtv/libs/lib* .
+
+ patch -p1 < ../mythstream.0.24.patch || return 1
+
+ export QTDIR=/usr/lib/qt
+ export PATH=$QTDIR/bin:$PATH
+
+ qmake mythstream.pro
+ make qmake || return 1
+
+ make INSTALL_ROOT=$startdir/pkg install
+ cp $srcdir/streams.res $pkgdir/usr/share/mythtv/mythstream
+}
+
+md5sums=('ba354b83fefe6028c5379fb832a44b6a'
+ '69804486cde663586283cf2a226f0ed4'
+ 'b7fb47a56b6809938f237632174faeb2')
diff --git a/abs/not_built/core/mythstream/mythstream.0.24.patch b/abs/not_built/core/mythstream/mythstream.0.24.patch
new file mode 100644
index 0000000..d518c97
--- /dev/null
+++ b/abs/not_built/core/mythstream/mythstream.0.24.patch
@@ -0,0 +1,529 @@
+diff -ruaN mythstream_mythtv-r21640.orig/libs/harvester.h mythstream_mythtv-r21640/libs/harvester.h
+--- mythstream_mythtv-r21640.orig/libs/harvester.h 2009-08-30 21:46:35.000000000 +0000
++++ mythstream_mythtv-r21640/libs/harvester.h 2011-02-25 01:50:53.000000000 +0000
+@@ -23,7 +23,7 @@
+ #include <q3process.h>
+ #include <qthread.h>
+ #include <q3process.h>
+-#include <qhttp.h>
++#include <QtNetwork/qhttp.h>
+ #include <q3dict.h>
+ #include <qmap.h>
+ //Added by qt3to4:
+diff -ruaN mythstream_mythtv-r21640.orig/libs/player.xml mythstream_mythtv-r21640/libs/player.xml
+--- mythstream_mythtv-r21640.orig/libs/player.xml 2009-08-31 20:16:28.000000000 +0000
++++ mythstream_mythtv-r21640/libs/player.xml 2011-02-25 00:36:30.000000000 +0000
+@@ -341,11 +341,6 @@
+ </item>
+
+ <item>
+- <name>-vo</name>
+- <value>xv,</value>
+- </item>
+-
+- <item>
+ <name>-user-agent</name>
+ <value>QuickTime/0</value>
+ </item>
+diff -ruaN mythstream_mythtv-r21640.orig/libs/streamconfig.cpp mythstream_mythtv-r21640/libs/streamconfig.cpp
+--- mythstream_mythtv-r21640.orig/libs/streamconfig.cpp 2009-09-02 14:40:18.000000000 +0000
++++ mythstream_mythtv-r21640/libs/streamconfig.cpp 2011-02-25 01:50:45.000000000 +0000
+@@ -46,7 +46,7 @@
+
+ Window hierarchy
+ StreamTunedConfig: main config window with "stream" and "storage" tabs //StreamTuned only
+- gContext->GetMainWindow() // MythTV only
++ GetMythMainWindow() // MythTV only
+ StreamConfig: stream configuration handler (stream tab)
+ StorageGroup: StreamConfig goupBox with storage controls
+ StreamEditGroup: StreamConfig groupBox with stream property edit boxes
+diff -ruaN mythstream_mythtv-r21640.orig/libs/streams.res mythstream_mythtv-r21640/libs/streams.res
+--- mythstream_mythtv-r21640.orig/libs/streams.res 1970-01-01 00:00:00.000000000 +0000
++++ mythstream_mythtv-r21640/libs/streams.res 2011-02-25 01:51:06.000000000 +0000
+@@ -0,0 +1,281 @@
++
++
++[item]
++Interaction
++Apple movie trailers
++whatever
++trailers
++*apple
++
++[item]
++Interaction
++Browse Shoutcast genres
++http://www.shoutcast.com
++[emptystring]
++*shoutcast/menu
++
++[item]
++Interaction
++Uitzending gemist - laatste uitzendingen (Dutch)
++http://www.uitzendinggemist.nl
++Uitzending gemist selectie
++omroep/menu
++
++[item]
++Interaction
++World Wide Media Project
++[emptystring]
++[emptystring]
++*wwmp/menu
++
++[item]
++Interaction
++tv-links - Monty Python's Flying Circus
++http://tv-links.co.uk/listings/1/2526
++[emptystring]
++tvlinks/listing
++
++[item]
++Interaction
++wwiTV list
++http://wwitv.com/television/tvbar.htm
++List of television stations
++wwitv/countries
++
++[item]
++Podcast feeds
++Beercasting
++http://beercasting.com/rss.xml
++(podcast)
++podcast
++
++[item]
++Podcast feeds
++Feed me weird things
++http://del.icio.us/rss/audio/feedmeweirdthings
++(podcast) http://del.icio.us/rss/audio/feedmeweirdthings
++rdfcast
++
++[item]
++Podcast feeds
++SETI Institute
++http://podcast.seti.org/index.xml
++podcast
++podcast
++
++[item]
++Radio
++BBC World Service
++http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.ram
++International
++[emptystring]
++
++[item]
++Radio
++DR R&B, Denmark
++http://www.dr.dk/netradio/Metafiler/ASX/DR_RogB_128.asx
++Copenhagen, Denmark
++[emptystring]
++
++[item]
++Radio
++Energy Black, Switzerland
++http://broadcast.infomaniak.ch/energyblack-high.mp3.m3u
++Zurich, Switzerland
++[emptystring]
++
++[item]
++Radio
++Fun Radio, belgium
++http://www.funradio.be/funradiobe-low.high.pls
++[emptystring]
++[emptystring]
++
++[item]
++Radio
++Juventus Radio
++http://live.juventus.hu:8000/live.m3u
++Budapest, Hungary
++[emptystring]
++
++[item]
++Radio
++Shoutcast Country
++http://www.shoutcast.com/directory/index.phtml?sgenre=Country&numresult=50
++Country music stations
++shoutcast
++
++[item]
++Radio
++Shoutcast Rock
++http://www.shoutcast.com/directory/index.phtml?sgenre=Rock&numresult=50
++Shoutcast Rock stations
++shoutcast
++
++[item]
++Radio
++The Voice, Norway
++http://213.158.233.199:6006/listen.pls
++Oslo, Norway
++[emptystring]
++
++[item]
++Radio
++WGBH, Boston
++http://streams.wgbh.org/classical.pls
++Boston, Massachusetts
++[emptystring]
++
++[item]
++Radio
++WholeWheatRadio stream
++http://64.62.252.134:2680/listen.pls
++[emptystring]
++[emptystring]
++
++[item]
++TV
++Holland Doc
++mms://livemedia.omroep.nl/vprohollanddoc-bb
++Nederland 4 themakanaal
++[emptystring]
++
++[item]
++TV
++NASA TV
++http://www.nasa.gov/ram/35037main_portal.ram
++[emptystring]
++[emptystring]
++
++[item]
++TV
++NRK News TV
++mms://media00.nrk.no/mms2/nydi/AutoEnc/mn1840.wmv
++Norwegen
++[emptystring]
++
++[item]
++TV
++National Nine News TV
++mms://broadband.netshow.ninemsn.com.au/broadband/news/story1.wmv
++Australia
++[emptystring]
++
++[item]
++TV
++RBC TV
++http://tv.gldn.net:80/rbc
++Russia
++[emptystring]
++
++[item]
++TV
++Tweede Kamer
++mms://213.75.12.78/TKStream3
++Dutch Parliament
++[emptystring]
++
++[item]
++TV
++Uitzending gemist RSS feed
++http://www.uitzendinggemist.nl/index.php/rss
++Laatste uitzendingen
++omroep/rss
++
++[item]
++TV
++United Nations TV
++rtsp://a4.l878435134.c8784.g.lr.akamaistream.net/live/D/4/8784/v0001/reflector:35134
++[emptystring]
++[emptystring]
++
++[item]
++TV
++VPro 3Voor12 Central TV
++mms://livemedia.omroep.nl/vpro3voor12tvcentral-bb
++http://3voor12.vpro.nl
++[emptystring]
++
++[item]
++TV
++VPro 3Voor12 on Stage TV
++mms://livemedia.omroep.nl/vpro3voor12tvonstage-bb
++[emptystring]
++[emptystring]
++
++[item]
++TV
++YLE 24 News TV
++http://ra.yle.fi/ramgen/yle24/video/uusin_rk.rm
++Finland
++[emptystring]
++
++[item]
++TV
++Yomiuri News TV
++http://www.yomiuri.co.jp/stream/vnews/vnews-w.asx
++Japan
++[emptystring]
++
++[item]
++Video
++DailyMotion custom search
++http://www.dailymotion.com/rss/relevance/search/<:search term::funny:>/<:page::1:>
++Edit search term with virtual keyboard
++dailymotion/playall
++
++[item]
++Video
++DailyMotion playlist demo: Alicia Keys Live
++http://www.dailymotion.com/rss/relevance/search/Alicia+Keys+live/1
++Mark streams (M) and play
++dailymotion/playall
++
++[item]
++Video
++Dailymotion download and play: VH1/1
++http://www.dailymotion.com/rss/relevance/search/vh1/1
++[emptystring]
++dailymotion/feed
++
++[item]
++Video
++Dailymotion playlist demo: Amy Winehouse
++http://www.dailymotion.com/rss/relevance/search/Amy+Winehouse+live/1
++Mark streams (M) and play
++dailymotion/playall
++
++[item]
++Video
++YouTube top viewed today
++http://youtube.com/rss/global/top_viewed_today.rss
++Voor andere feeds zie youtube
++youtube/feed
++
++[item]
++stream lists
++Icecast list
++http://dir.xiph.org/yp.xml
++Harvested with icecast.pl script
++icecast
++
++[item]
++stream lists
++OperaCast list
++http://www.operacast.com/opstations.htm
++Stationlist from www.operacast.com
++operacast
++
++[item]
++stream lists
++Operanut list (default parser)
++http://operanut.com/radio.htm
++Some dead streams
++[emptystring]
++
++[item]
++stream lists
++Robins BBC parser
++ask the parser :)
++BBC parsing by Robin Gilks
++*bbc/robins_links
+diff -ruaN mythstream_mythtv-r21640.orig/mythstream/main.cpp mythstream_mythtv-r21640/mythstream/main.cpp
+--- mythstream_mythtv-r21640.orig/mythstream/main.cpp 2009-09-02 16:40:49.000000000 +0000
++++ mythstream_mythtv-r21640/mythstream/main.cpp 2011-02-25 01:50:45.000000000 +0000
+@@ -57,12 +57,12 @@
+
+ if (sel == "stream_config")
+ {
+- StreamConfig config(gContext->GetMainWindow(), "stream", streamStorage, repos);
++ StreamConfig config(GetMythMainWindow(), "stream", streamStorage, repos);
+ config.exec();
+ }
+ else if (sel == "storage_config")
+ {
+- StorageConfig config(gContext->GetMainWindow(), "storage", streamStorage, repos);
++ StorageConfig config(GetMythMainWindow(), "storage", streamStorage, repos);
+ config.exec();
+ }
+
+@@ -149,7 +149,7 @@
+ void runStream(void)
+ {
+ GetMythUI()->AddCurrentLocation("mythstream");
+- MythStream stream(gContext->GetMainWindow(), "stream");
++ MythStream stream(GetMythMainWindow(), "stream");
+ stream.exec();
+ GetMythUI()->RemoveCurrentLocation( );
+ }
+diff -ruaN mythstream_mythtv-r21640.orig/mythstream/mythstream.cpp mythstream_mythtv-r21640/mythstream/mythstream.cpp
+--- mythstream_mythtv-r21640.orig/mythstream/mythstream.cpp 2009-09-02 21:22:33.000000000 +0000
++++ mythstream_mythtv-r21640/mythstream/mythstream.cpp 2011-02-25 01:50:45.000000000 +0000
+@@ -499,7 +499,7 @@
+ QString parameter;
+ int res;
+
+- popBox = new MythPopupBox(gContext->GetMainWindow(), "");
++ popBox = new MythPopupBox(GetMythMainWindow(), "");
+ popBox->addLabel(label);
+
+ editBox = new MythLineEdit(popBox, "");
+@@ -545,7 +545,7 @@
+ QString parameter;
+ int res;
+
+- popBox = new MythPopupBox(gContext->GetMainWindow(), "");
++ popBox = new MythPopupBox(GetMythMainWindow(), "");
+ popBox->addLabel(" Edit Stream Item ");
+
+ MythLineEdit *folderBox = new MythLineEdit(popBox, "");
+@@ -1295,7 +1295,7 @@
+ bool handled;
+ QStringList actions;
+
+- handled = gContext->GetMainWindow()->TranslateKeyPress("Stream", e, actions);
++ handled = GetMythMainWindow()->TranslateKeyPress("Stream", e, actions);
+ handled = false;
+
+ for (int i = 0; i < actions.size() && !handled; i++)
+diff -ruaN mythstream_mythtv-r21640.orig/mythstream/mythstream.pro mythstream_mythtv-r21640/mythstream/mythstream.pro
+--- mythstream_mythtv-r21640.orig/mythstream/mythstream.pro 2009-08-26 07:31:07.000000000 +0000
++++ mythstream_mythtv-r21640/mythstream/mythstream.pro 2011-02-25 01:50:37.000000000 +0000
+@@ -1,3 +1,4 @@
++include ( ../mythconfig.mak )
+ include ( ../settings.pro )
+
+ TEMPLATE = lib
+diff -ruaN mythstream_mythtv-r21640.orig/parsers/youtube/vid.pl mythstream_mythtv-r21640/parsers/youtube/vid.pl
+--- mythstream_mythtv-r21640.orig/parsers/youtube/vid.pl 2009-09-02 22:18:49.000000000 +0000
++++ mythstream_mythtv-r21640/parsers/youtube/vid.pl 2011-02-25 01:51:16.000000000 +0000
+@@ -61,9 +61,11 @@
+
+ my $a, $b;
+
+-if ( ($a, $b) = $data =~ /swfArgs\s\=\s\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ )
++if ( ($a, $b) = $data =~ /'SWF_ARGS'\s*\:\s*\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ )
+ {
+- $url = "http://www.youtube.com/get_video?video_id=$b&t=$a";
++ my $url = "http://www.youtube.com/get_video?video_id=$b&t=$a";
++
++ my $fmt_h264 = ($data =~ /'SWF_URL'\s*:\s*.*\.flash\.canPlayH264Videos()/);
+
+ $item = $doc->createElement('item');
+ $root->appendChild($item);
+@@ -73,6 +75,17 @@
+ $item->appendChild( newNode('descr', "") );
+ $item->appendChild( newNode('handler', "") );
+
++ if ($fmt_h264)
++ {
++ $item = $doc->createElement('item');
++ $root->appendChild($item);
++
++ $item->appendChild( newNode('name', "play: $sname [H.264]") );
++ $item->appendChild( newNode('url', $url . '&fmt=18') );
++ $item->appendChild( newNode('descr', "") );
++ $item->appendChild( newNode('handler', "") );
++ }
++
+ if (! ($playlist_enable == 1) )
+ {
+ $item = $doc->createElement('item');
+@@ -82,6 +95,17 @@
+ $item->appendChild( newNode('url', $url) );
+ $item->appendChild( newNode('descr', "") );
+ $item->appendChild( newNode('handler', "STREAM_DL") );
++
++ if ($fmt_h264)
++ {
++ $item = $doc->createElement('item');
++ $root->appendChild($item);
++
++ $item->appendChild( newNode('name', "download: $sname [H.264]") );
++ $item->appendChild( newNode('url', $url . '&fmt=18') );
++ $item->appendChild( newNode('descr', "") );
++ $item->appendChild( newNode('handler', "STREAM_DL") );
++ }
+ }
+ }
+
+diff -ruaN mythstream_mythtv-r21640.orig/parsers/youtube/youvid.pl mythstream_mythtv-r21640/parsers/youtube/youvid.pl
+--- mythstream_mythtv-r21640.orig/parsers/youtube/youvid.pl 2009-09-02 22:18:49.000000000 +0000
++++ mythstream_mythtv-r21640/parsers/youtube/youvid.pl 2011-02-25 01:51:16.000000000 +0000
+@@ -65,10 +65,12 @@
+
+ my $a, $b;
+
+-if ( ($a, $b) = $data =~ /swfArgs\s\=\s\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ )
++if ( ($a, $b) = $data =~ /'SWF_ARGS'\s*\:\s*\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ )
+ {
+ $url = "http://www.youtube.com/get_video?video_id=$b&t=$a";
+
++ my $fmt_h264 = ($data =~ /'SWF_URL'\s*:\s*.*\.flash\.canPlayH264Videos()/);
++
+ $item = $doc->createElement('item');
+ $root->appendChild($item);
+
+@@ -77,6 +79,17 @@
+ $item->appendChild( newNode('descr', "") );
+ $item->appendChild( newNode('handler', "") );
+
++ if ($fmt_h264)
++ {
++ $item = $doc->createElement('item');
++ $root->appendChild($item);
++
++ $item->appendChild( newNode('name', "play: $sname [H.264]") );
++ $item->appendChild( newNode('url', $url . '&fmt=18') );
++ $item->appendChild( newNode('descr', "") );
++ $item->appendChild( newNode('handler', "") );
++ }
++
+ $item = $doc->createElement('item');
+ $root->appendChild($item);
+
+@@ -84,6 +97,17 @@
+ $item->appendChild( newNode('url', $url) );
+ $item->appendChild( newNode('descr', "") );
+ $item->appendChild( newNode('handler', "STREAM_DL") );
++
++ if ($fmt_h264)
++ {
++ $item = $doc->createElement('item');
++ $root->appendChild($item);
++
++ $item->appendChild( newNode('name', "download: $sname [H.264]") );
++ $item->appendChild( newNode('url', $url . '&fmt=18') );
++ $item->appendChild( newNode('descr', "") );
++ $item->appendChild( newNode('handler', "STREAM_DL") );
++ }
+ }
+
+ print $head->toString;
+diff -ruaN mythstream_mythtv-r21640.orig/settings.pro mythstream_mythtv-r21640/settings.pro
+--- mythstream_mythtv-r21640.orig/settings.pro 2009-09-02 22:07:04.000000000 +0000
++++ mythstream_mythtv-r21640/settings.pro 2011-02-25 01:51:26.000000000 +0000
+@@ -14,15 +14,15 @@
+ RUNPREFIX = $$PREFIX
+ }
+
+-INCLUDEPATH += $${PREFIX}/include
+-INCLUDEPATH += $${PREFIX}/include/mythtv
+-INCLUDEPATH += $${PREFIX}/include/mythtv/libmythdb
+-INCLUDEPATH += $${PREFIX}/include/mythtv/libmythui
+-INCLUDEPATH += $${PREFIX}/include/mythtv/libmyth
++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include
++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv
++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv/libmythdb
++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv/libmythui
++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv/libmyth
+
+-INCLUDEPATH += $${PREFIX}/include/qt4/Qt
++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/qt4/Qt
+
+-#INCLUDEPATH *= /usr/local/include
++#INCLUDEPATH *= $${SYSROOT}/usr/local/include
+
+ DEFINES += _GNU_SOURCE
+ DEFINES += PREFIX=\\\"$${RUNPREFIX}\\\"
+@@ -31,7 +31,3 @@
+ QMAKE_LFLAGS -= -Wl,--no-undefined
+ #QMAKE_LFLAGS -= --no-undefined
+ QMAKE LFLAGS += -DQT_THREAD_SUPPORT
+-
+-release {
+- QMAKE_CXXFLAGS_RELEASE = -O2 -fomit-frame-pointer
+-}
diff --git a/abs/not_built/core/mythstream/mythstream.install b/abs/not_built/core/mythstream/mythstream.install
new file mode 100644
index 0000000..3b87835
--- /dev/null
+++ b/abs/not_built/core/mythstream/mythstream.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+post_install() {
+ mv /usr/share/mythtv/themes/defaultmenu/is.xml /tmp
+ grep -v -e /mythmenu /tmp/is.xml > /tmp/is.xml.tmp
+ echo "<!--#MythStream-->" >> /tmp/is.xml.tmp
+ echo " <button>" >> /tmp/is.xml.tmp
+ echo " <type>STREAM</type>" >> /tmp/is.xml.tmp
+ echo " <text>MythStream</text>" >> /tmp/is.xml.tmp
+ echo " <action>PLUGIN mythstream</action>" >> /tmp/is.xml.tmp
+ echo " </button>" >> /tmp/is.xml.tmp
+ echo "<!--#MythStream-->" >> /tmp/is.xml.tmp
+ echo "" >> /tmp/is.xml.tmp
+ echo "</mythmenu>" >> /tmp/is.xml.tmp
+ mv /tmp/is.xml.tmp /usr/share/mythtv/themes/defaultmenu/is.xml
+}
+post_remove() {
+ mv /usr/share/mythtv/themes/defaultmenu/is.xml /tmp/is.xml.tmp
+ sed -e '/\#MythStream/,/\#MythStream/d' < /tmp/is.xml.tmp > /usr/share/mythtv/themes/defaultmenu/is.xml
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/mythstream/streams.res b/abs/not_built/core/mythstream/streams.res
new file mode 100644
index 0000000..1e48084
--- /dev/null
+++ b/abs/not_built/core/mythstream/streams.res
@@ -0,0 +1,281 @@
+
+
+[item]
+Interaction
+Apple movie trailers
+whatever
+trailers
+*apple
+
+[item]
+Interaction
+Browse Shoutcast genres
+http://www.shoutcast.com
+[emptystring]
+*shoutcast/menu
+
+[item]
+Interaction
+Uitzending gemist - laatste uitzendingen (Dutch)
+http://www.uitzendinggemist.nl
+Uitzending gemist selectie
+omroep/menu
+
+[item]
+Interaction
+World Wide Media Project
+[emptystring]
+[emptystring]
+*wwmp/menu
+
+[item]
+Interaction
+tv-links - Monty Python's Flying Circus
+http://tv-links.co.uk/listings/1/2526
+[emptystring]
+tvlinks/listing
+
+[item]
+Interaction
+wwiTV list
+http://wwitv.com/television/tvbar.htm
+List of television stations
+wwitv/countries
+
+[item]
+Podcast feeds
+Beercasting
+http://beercasting.com/rss.xml
+(podcast)
+podcast
+
+[item]
+Podcast feeds
+Feed me weird things
+http://del.icio.us/rss/audio/feedmeweirdthings
+(podcast) http://del.icio.us/rss/audio/feedmeweirdthings
+rdfcast
+
+[item]
+Podcast feeds
+SETI Institute
+http://podcast.seti.org/index.xml
+podcast
+podcast
+
+[item]
+Radio
+BBC World Service
+http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.ram
+International
+[emptystring]
+
+[item]
+Radio
+DR R&B, Denmark
+http://www.dr.dk/netradio/Metafiler/ASX/DR_RogB_128.asx
+Copenhagen, Denmark
+[emptystring]
+
+[item]
+Radio
+Energy Black, Switzerland
+http://broadcast.infomaniak.ch/energyblack-high.mp3.m3u
+Zurich, Switzerland
+[emptystring]
+
+[item]
+Radio
+Fun Radio, belgium
+http://www.funradio.be/funradiobe-low.high.pls
+[emptystring]
+[emptystring]
+
+[item]
+Radio
+Juventus Radio
+http://live.juventus.hu:8000/live.m3u
+Budapest, Hungary
+[emptystring]
+
+[item]
+Radio
+Shoutcast Country
+http://www.shoutcast.com/directory/index.phtml?sgenre=Country&numresult=50
+Country music stations
+shoutcast
+
+[item]
+Radio
+Shoutcast Rock
+http://www.shoutcast.com/directory/index.phtml?sgenre=Rock&numresult=50
+Shoutcast Rock stations
+shoutcast
+
+[item]
+Radio
+The Voice, Norway
+http://213.158.233.199:6006/listen.pls
+Oslo, Norway
+[emptystring]
+
+[item]
+Radio
+WGBH, Boston
+http://streams.wgbh.org/classical.pls
+Boston, Massachusetts
+[emptystring]
+
+[item]
+Radio
+WholeWheatRadio stream
+http://64.62.252.134:2680/listen.pls
+[emptystring]
+[emptystring]
+
+[item]
+TV
+Holland Doc
+mms://livemedia.omroep.nl/vprohollanddoc-bb
+Nederland 4 themakanaal
+[emptystring]
+
+[item]
+TV
+NASA TV
+http://www.nasa.gov/ram/35037main_portal.ram
+[emptystring]
+[emptystring]
+
+[item]
+TV
+NRK News TV
+mms://media00.nrk.no/mms2/nydi/AutoEnc/mn1840.wmv
+Norwegen
+[emptystring]
+
+[item]
+TV
+National Nine News TV
+mms://broadband.netshow.ninemsn.com.au/broadband/news/story1.wmv
+Australia
+[emptystring]
+
+[item]
+TV
+RBC TV
+http://tv.gldn.net:80/rbc
+Russia
+[emptystring]
+
+[item]
+TV
+Tweede Kamer
+mms://213.75.12.78/TKStream3
+Dutch Parliament
+[emptystring]
+
+[item]
+TV
+Uitzending gemist RSS feed
+http://www.uitzendinggemist.nl/index.php/rss
+Laatste uitzendingen
+omroep/rss
+
+[item]
+TV
+United Nations TV
+rtsp://a4.l878435134.c8784.g.lr.akamaistream.net/live/D/4/8784/v0001/reflector:35134
+[emptystring]
+[emptystring]
+
+[item]
+TV
+VPro 3Voor12 Central TV
+mms://livemedia.omroep.nl/vpro3voor12tvcentral-bb
+http://3voor12.vpro.nl
+[emptystring]
+
+[item]
+TV
+VPro 3Voor12 on Stage TV
+mms://livemedia.omroep.nl/vpro3voor12tvonstage-bb
+[emptystring]
+[emptystring]
+
+[item]
+TV
+YLE 24 News TV
+http://ra.yle.fi/ramgen/yle24/video/uusin_rk.rm
+Finland
+[emptystring]
+
+[item]
+TV
+Yomiuri News TV
+http://www.yomiuri.co.jp/stream/vnews/vnews-w.asx
+Japan
+[emptystring]
+
+[item]
+Video
+DailyMotion custom search
+http://www.dailymotion.com/rss/relevance/search/<:search term::funny:>/<:page::1:>
+Edit search term with virtual keyboard
+dailymotion/playall
+
+[item]
+Video
+DailyMotion playlist demo: Alicia Keys Live
+http://www.dailymotion.com/rss/relevance/search/Alicia+Keys+live/1
+Mark streams (M) and play
+dailymotion/playall
+
+[item]
+Video
+Dailymotion download and play: VH1/1
+http://www.dailymotion.com/rss/relevance/search/vh1/1
+[emptystring]
+dailymotion/feed
+
+[item]
+Video
+Dailymotion playlist demo: Amy Winehouse
+http://www.dailymotion.com/rss/relevance/search/Amy+Winehouse+live/1
+Mark streams (M) and play
+dailymotion/playall
+
+[item]
+Video
+YouTube top viewed today
+http://youtube.com/rss/global/top_viewed_today.rss
+Voor andere feeds zie youtube
+youtube/feed
+
+[item]
+stream lists
+Icecast list
+http://dir.xiph.org/yp.xml
+Harvested with icecast.pl script
+icecast
+
+[item]
+stream lists
+OperaCast list
+http://www.operacast.com/opstations.htm
+Stationlist from www.operacast.com
+operacast
+
+[item]
+stream lists
+Operanut list (default parser)
+http://operanut.com/radio.htm
+Some dead streams
+[emptystring]
+
+[item]
+stream lists
+Robins BBC parser
+ask the parser :)
+BBC parsing by Robin Gilks
+*bbc/robins_links
diff --git a/abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD
new file mode 100644
index 0000000..c6368bc
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD
@@ -0,0 +1,66 @@
+pkgname=morethemes
+pkgver=0.24
+pkgrel=6
+pkgdesc="Additional themes for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('any')
+depends=('mythtv')
+groups=('mythtv-extras')
+source=(#'ftp://ftp.knoppmyth.net/R6/sources/morethemes-0.23.tar.bz2'
+ 'ftp://miroku.no-ip.com/blue-abstract-wide.2010.09.16.tar.bz2'
+ 'http://elkin.de/mythtv/2010.09.08-blootube-ng.tar.bz2'
+ 'http://elkin.de/mythtv/2010.11.04-Willi.tar.lzma'
+ 'http://elkin.de/mythtv/2010.03.13-bando-blue.tar.bz2'
+ 'http://www.thepetersclan.com/files/TintedGlass-1.18.tbz2'
+ 'http://www.thepetersclan.com/files/Mod-Gray-OSD.tar.bz2'
+ 'http://www.thepetersclan.com/files/Bluebar-Hires-OSD.tar.bz2'
+ 'http://www.thepetersclan.com/files/BlueCurves-OSD.tar.bz2'
+ 'http://www.thepetersclan.com/files/SimplyBlue-OSD.tbz2'
+ 'http://www.thepetersclan.com/files/BlueCurves2-OSD.tbz2'
+ 'http://www.thepetersclan.com/files/BlueCurves-2.1-OSD.tbz2'
+ 'http://www.mythtv.org/themes/LCARS.tar.gz'
+ 'http://www.mythtv.org/themes/TransBlue.tar.gz'
+ 'http://www.westnet.com/~chris/Mythtv/Retro-wide.tar.gz'
+ 'retro-wide_video-ui.xml-filetypes.patch'
+ 'http://capnbry.net/~bmayland/fi/pvr150/SimpleGray-OSD-0.4.tar.bz2'
+ 'http://www.jobs-khakis-chicks.com/MythTV/IsthmusBlue-OSD.tar.gz'
+ 'http://static.castlesblog.com/public/Glass-OSD-V1.3.zip'
+ 'http://static.castlesblog.com/public/Minimal-OSD-V1.1.zip')
+
+build() {
+ cd ${srcdir}
+ mkdir -p ${pkgdir}/usr/share/mythtv/themes
+
+ msg "Copying files..."
+ for d in `ls -d */`
+ do
+ cp -a "${d}" ${pkgdir}/usr/share/mythtv/themes
+ done
+
+ # Housekeeping
+ rm -fr "${pkgdir}/usr/share/mythtv/themes/__MACOSX" || return 1
+ # Little fix
+ cd ${pkgdir}/usr/share/mythtv/themes/Retro-wide || return 1
+ patch -p0 <${srcdir}/retro-wide_video-ui.xml-filetypes.patch || return 1
+}
+
+md5sums=('878605505599a0f49c44f3df9affe10f'
+ '7c2a2b238b7d44e52b7a8a0361d395aa'
+ '2890f3b991db805a88a48eb6c7048f91'
+ 'c6d90fb469bc30a94e32f76c82122dd3'
+ '80d250bf87c8f72ee238a91c854c0a11'
+ 'c973d0779967034f7a5bc0043574d6f9'
+ 'fb32ddd900e54cff62a62a21025b2585'
+ '79247cf87bbee10363bb214325b7f671'
+ '67c501b80afdefeca623261634dafd9c'
+ '7b2f2eca37f2d9598b00bce85a193bae'
+ '9793dc85a486e1ad9d0c0b6684efd245'
+ 'a36bb7b2597a44128401b1aba9106122'
+ '21d6f967631e45b7039b965a63755282'
+ 'bfc56ffe1c872989f7a1cb7ae20aea49'
+ 'e05bb3d77a11f97a1d547b2f5bc1ddf7'
+ '09dd8679b56794f9850a2382b4e1ea62'
+ 'b6c187b233778abacce102fe609d4e09'
+ 'f8d4fd90f1e45512ea5237de59d5090d'
+ '5646e1df6f593f7116cbdec656146266')
diff --git a/abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch b/abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch
new file mode 100644
index 0000000..c98487f
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch
@@ -0,0 +1,22 @@
+--- video-ui.xml.orig 2010-07-04 06:21:18.000000000 +0000
++++ video-ui.xml 2010-07-04 06:22:22.000000000 +0000
+@@ -967,14 +967,17 @@
+
+ <button name="done_button" from="basebutton">
+ <position>700,550</position>
++ <value>Done</value>
+ </button>
+
+ <button name="new_button" from="basebutton">
+- <position>600,550</position>
++ <position>400,550</position>
++ <value>New</value>
+ </button>
+
+ <button name="delete_button" from="basebutton">
+- <position>0,550</position>
++ <position>100,550</position>
++ <value>Delete</value>
+ </button>
+ </window>
+
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD
new file mode 100644
index 0000000..760948f
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 91281 2010-09-26 06:04:21Z remy $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgbase=mythplugins
+pkgname=('mytharchive'
+ 'mythbrowser'
+ 'mythgallery'
+ 'mythgame'
+ 'mythmusic'
+ 'mythnetvision'
+ 'mythnews'
+ 'mythvideo'
+ 'mythweather'
+ 'mythzoneminder')
+pkgver=0.24
+pkgrel=20
+arch=('i686' 'x86_64')
+url="http://www.mythtv.org"
+license=('GPL')
+conflicts=('mythmovies')
+makedepends=("mythtv>=${pkgver}" 'mplayer' 'fftw2' 'dvdauthor' 'libexif'
+ 'python-imaging' 'libcdaudio' 'taglib' 'perl-xml-simple' 'dcraw'
+ 'libvisual' 'perl-xml-xpath' 'perl-image-size' 'perl-json'
+ 'perl-class-inspector' 'perl-datetime-format-iso8601'
+ 'flac' 'libvorbis' 'python2' 'python-pycurl' 'python-oauth')
+source=(ftp://ftp.knoppmyth.net/R6/sources/mythtv-0.24-fixes.tar.bz2
+ mythburn.py.patch)
+_gitroot="https://github.com/MythTV/mythtv.git"
+_gitname="mythtv"
+
+build() {
+ cd "${srcdir}/${_gitname}"
+ msg "Updating from GIT..."
+ git pull
+ msg "The local files are updated."
+ find . -name '*.py' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+ cd ${srcdir}/${_gitname}/${pkgbase}
+ ./configure --prefix=/usr \
+ --enable-all
+
+ qmake mythplugins.pro || return 1
+ make || return 1
+}
+
+package_mytharchive() {
+ pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows"
+ depends=("mythtv>=${pkgver}" 'libxmu' 'pil' 'dvdauthor' 'm2vrequantiser')
+# replaces=('mytharchive')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mytharchive"
+ patch mythburn/scripts/mythburn.py < $srcdir/mythburn.py.patch || return 1
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythbrowser() {
+ pkgdesc="Mini web browser for MythTV"
+ depends=("mythtv>=${pkgver}")
+# replaces=('mythbrowser')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythbrowser"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythgallery() {
+ pkgdesc="Image gallery plugin for MythTV"
+ depends=("mythtv>=${pkgver}" 'libexif')
+# replaces=('mythgallery')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythgallery"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythgame() {
+ pkgdesc="Game emulator module for MythTV"
+ depends=("mythtv>=${pkgver}" 'zlib')
+# replaces=('mythgame')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythgame"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythmusic() {
+ pkgdesc="Music playing plugin for MythTV"
+ depends=("mythtv>=${pkgver}" 'flac' 'libvorbis' 'libcdaudio' 'cdparanoia' 'taglib' 'libvisual-plugins' 'projectm')
+# replaces=('mythmusic')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythmusic"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythnetvision() {
+ pkgdesc="MythNetvision plugin for MythTV"
+ depends=("mythtv>=${pkgver}" 'python-pycurl' 'python-oauth')
+# replaces=('mythnetvision')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythnetvision"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythnews() {
+ pkgdesc="News checking plugin for MythTV"
+ depends=("mythtv>=${pkgver}")
+# replaces=('mythnews')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythnews"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythvideo() {
+ pkgdesc="Video playback and browsing plugin for MythTV"
+ depends=("mythtv>=${pkgver}" 'mplayer' 'perl-xml-simple')
+# replaces=('mythvideo')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythvideo"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythweather() {
+ pkgdesc="Weather checking plugin for MythTV"
+ depends=("mythtv>=${pkgver}" 'perl-xml-xpath' 'perl-image-size'
+ 'perl-class-inspector' 'perl-datetime-format-iso8601'
+ 'perl-date-manip' 'perl-json')
+# replaces=('mythweather')
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythweather"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+
+package_mythzoneminder() {
+ pkgdesc="Allows for viewing of CCTV cameras through zoneminder"
+ depends=("mythtv>=${pkgver}" zoneminder)
+# replaces=('mythzoneminder')
+# install=mythplugins-mythzoneminder.install
+ cd "${srcdir}/${_gitname}/${pkgbase}/mythzoneminder"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+md5sums=('91488a6b1b05d14c5c5c601908b699e5'
+ 'cc7e6887acda167fcc5336af33f29411')
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
new file mode 100644
index 0000000..abac7df
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
@@ -0,0 +1,303 @@
+--- mythburn.py.orig 2011-09-16 13:41:43.000000000 -0500
++++ mythburn.py 2011-09-17 10:51:36.000000000 -0500
+@@ -38,7 +38,7 @@
+ #******************************************************************************
+
+ # version of script - change after each update
+-VERSION="0.1.20101206-1"
++VERSION="0.1.20110821-1"
+
+ # keep all temporary files for debugging purposes
+ # set this to True before a first run through when testing
+@@ -75,6 +75,7 @@
+ from fcntl import ioctl
+ import CDROM
+ from shutil import copy
++from subprocess import Popen, PIPE
+
+ # media types (should match the enum in mytharchivewizard.h)
+ DVD_SL = 0
+@@ -606,7 +607,7 @@
+ # of a video file from its stream info file
+
+ def getVideoParams(folder):
+- """Returns the video resolution, fps and aspect ratio for the video file from the streamindo.xml file"""
++ """Returns the video resolution, fps and aspect ratio for the video file from the streaminfo.xml file"""
+
+ #open the XML containing information about this file
+ infoDOM = xml.dom.minidom.parse(os.path.join(folder, 'streaminfo.xml'))
+@@ -642,14 +643,14 @@
+ # Gets the aspect ratio of a video file from its stream info file
+
+ def getAspectRatioOfVideo(index):
+- """Returns the aspect ratio of the video file (1.333, 1.778, etc)"""
++ """Returns the aspect ratio of the original video file (1.333, 1.778, etc)"""
+
+ #open the XML containing information about this file
+- infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo.xml'))
++ infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo_orig.xml'))
+
+ #error out if its the wrong XML
+ if infoDOM.documentElement.tagName != "file":
+- fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo.xml'))
++ fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo_orig.xml'))
+ video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0]
+ if video.attributes["aspectratio"].value != 'N/A':
+ aspect_ratio = float(video.attributes["aspectratio"].value)
+@@ -1762,6 +1763,37 @@
+
+
+ #############################################################
++# Finds the path of a video file from the local video path
++# or Storage Group
++
++def getVideoPath(filename):
++ # connect
++ db = getDatabaseConnection()
++ # create a cursor
++ cursor = db.cursor()
++ # execute SQL statement
++ cursor.execute("""SELECT dirname
++ FROM storagegroup
++ WHERE groupname='Videos'""")
++ # get the resultset as a tuple
++ result = cursor.fetchall()
++ # make result a list and add local video path if exists
++ result = [videopath] + list(result)
++
++ # iterate through result set
++ for sg in result:
++ if doesFileExist(os.path.join("".join(sg), filename)) == True:
++ filepath = "".join(sg)
++ write("Video Path: %s" % filepath)
++ return (filepath)
++ break
++
++ db.close()
++ del db
++ del cursor
++
++
++#############################################################
+ # Pre-process a single video/recording file
+
+ def preProcessFile(file, folder, count):
+@@ -1775,11 +1807,11 @@
+ #3. Extract a single frame from the video to use as a thumbnail and resolution check
+ mediafile=""
+
+- if file.attributes["type"].value == "recording":
++ if file.attributes["type"].value=="recording":
+ mediafile = file.attributes["filename"].value
+- elif file.attributes["type"].value == "video":
+- mediafile = os.path.join(videopath, file.attributes["filename"].value)
+- elif file.attributes["type"].value == "file":
++ elif file.attributes["type"].value=="video":
++ mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value)
++ elif file.attributes["type"].value=="file":
+ mediafile = file.attributes["filename"].value
+ else:
+ fatalError("Unknown type of video file it must be 'recording', 'video' or 'file'.")
+@@ -1935,9 +1967,39 @@
+
+ if result <> 0:
+ fatalError("Failed while running mytharchivehelper to get stream information from %s" % filename)
++
++ #open the XML containing information about this file
++ infoDOM = xml.dom.minidom.parse(xmlFilename)
++
++ #error out if its the wrong XML
++ if infoDOM.documentElement.tagName != "file":
++ fatalError("This info file doesn't look right (%s)." % xmlFilename)
++
++ file = infoDOM.getElementsByTagName("file")[0]
++ video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0]
++
++ #use ffmpeg to get display aspect ratio (DAR) of video
++ cmd = path_ffmpeg[0] + " -i " + quoteFilename(file.attributes["filename"].value) + " 2>&1"
++ aspect_ratio = Popen(cmd, shell=True, stdout=PIPE).stdout.read()
++ if "DAR" in aspect_ratio:
++ #clean DAR string
++ aspect_ratio = aspect_ratio.split("DAR ")[-1].split(",")[0]
++ aspect_ratio = ''.join([c for c in aspect_ratio if c in '1234567890:']).split(":")
++ else:
++ #calculate aspect from video size
++ aspect_ratio = getVideoSize(xmlFilename)
++
++ #convert to decimal
++ aspect_ratio = float(aspect_ratio[0]) / float(aspect_ratio[1])
++
++ write("Video %s aspect ratio is: %s" % (filename, aspect_ratio))
++
++ #set aspect ratio
++ video.setAttribute("aspectratio",str(aspect_ratio))
++
++ WriteXMLToFile (infoDOM,xmlFilename)
+
+ # print out the streaminfo.xml file to the log
+- infoDOM = xml.dom.minidom.parse(xmlFilename)
+ write("streaminfo.xml :-\n" + infoDOM.toprettyxml(" ", ""), False)
+
+ #############################################################
+@@ -2322,7 +2384,7 @@
+ #############################################################
+ # Re-encodes a file to mpeg2
+
+-def encodeVideoToMPEG2(source, destvideofile, video, audio1, audio2, aspectratio, profile):
++def encodeVideoToMPEG2(source, destvideofile, video, folder, audio1, audio2, aspectratio, profile):
+ """Encodes an unknown video source file eg. AVI to MPEG2 video and AC3 audio, use ffmpeg"""
+
+ profileNode = findEncodingProfile(profile)
+@@ -2347,6 +2409,18 @@
+ value = quoteFilename(destvideofile)
+ if value == "%aspect":
+ value = aspectratio
++ if value == "720x480" or value == "720x576":
++ #add padding to correct for aspects > than 1.9:1
++ videores, fps, videoAR = getVideoParams(folder)
++ if float(videoAR) >= 1.9:
++ if videomode == "ntsc":
++ videoheight = 480
++ else:
++ videoheight = 576
++
++ croppixels = videoheight - (720 / float(videoAR))
++ write("CropPixels Total: %s" % croppixels)
++ value = "720x%d -vf pad=720:%d:0:%d:black" % (videoheight - croppixels, videoheight, croppixels / 2)
+
+ # only re-encode the audio if it is not already in AC3 format
+ if audio1[AUDIO_CODEC] == "AC3":
+@@ -2383,12 +2457,12 @@
+ command += " -newaudio"
+
+ #make sure we get the correct stream(s) that we want
+- command += " -map 0:%d -map 0:%d " % (video[VIDEO_INDEX], audio1[AUDIO_INDEX])
++ command += " -map 0:%d -map 0:%d" % (video[VIDEO_INDEX], audio1[AUDIO_INDEX])
+ if audio2[AUDIO_ID] != -1:
+ command += "-map 0:%d" % (audio2[AUDIO_INDEX])
+
+ if passes == 1:
+- write(command)
++ write("Running ffmpeg: %s" % command)
+ result = runCommand(command)
+ if result!=0:
+ fatalError("Failed while running ffmpeg to re-encode video.\n"
+@@ -2399,7 +2473,7 @@
+
+ pass1 = string.replace(command, "%passno","1")
+ pass1 = string.replace(pass1, "%passlogfile", passLog)
+- write("Pass 1 - " + pass1)
++ write("Running ffmpeg Pass 1: %s" % pass1)
+ result = runCommand(pass1)
+
+ if result!=0:
+@@ -2411,7 +2485,7 @@
+
+ pass2 = string.replace(command, "%passno","2")
+ pass2 = string.replace(pass2, "%passlogfile", passLog)
+- write("Pass 2 - " + pass2)
++ write("Running ffmpeg Pass 2: %s" % pass2)
+ result = runCommand(pass2)
+
+ if result!=0:
+@@ -2443,10 +2517,6 @@
+ outaudiosamplerate = 48000
+ outaudiocodec = "ac3"
+ deinterlace = 0
+- croptop = 0
+- cropright = 0
+- cropbottom = 0
+- cropleft = 0
+ qmin = 5
+ qmax = 31
+ qdiff = 31
+@@ -2470,14 +2540,6 @@
+ outvideores = value
+ if name == "-deinterlace":
+ deinterlace = 1
+- if name == "-croptop":
+- croptop = value
+- if name == "-cropright":
+- cropright = value
+- if name == "-cropbottom":
+- cropbottom = value
+- if name == "-cropleft":
+- cropleft = value
+ if name == "-qmin":
+ qmin = value
+ if name == "-qmax":
+@@ -2526,7 +2588,6 @@
+ command += "-aspect %s -r %s " % (aspectratio, fps)
+ if (deinterlace == 1):
+ command += "-deinterlace "
+- command += "-croptop %s -cropright %s -cropbottom %s -cropleft %s " % (croptop, cropright, cropbottom, cropleft)
+ command += "-s %s -b %s -vcodec mpeg2video " % (outvideores, outvideobitrate)
+ command += "-qmin %s -qmax %s -qdiff %s " % (qmin, qmax, qdiff)
+ command += "-ab %s -ar %s -acodec %s " % (outaudiobitrate, outaudiosamplerate, outaudiocodec)
+@@ -2543,7 +2604,7 @@
+ if (not(doesFileExist(os.path.join(folder, "audout")) and doesFileExist(os.path.join(folder, "vidout")))):
+ fatalError("Waited too long for mythtranscode to create the fifos - giving up!!")
+
+- write("Running ffmpeg")
++ write("Running ffmpeg: %s" % command)
+ result = runCommand(command)
+ if result != 0:
+ os.kill(PID, signal.SIGKILL)
+@@ -4724,7 +4785,7 @@
+ elif file.attributes["type"].value=="recording":
+ mediafile = file.attributes["filename"].value
+ elif file.attributes["type"].value=="video":
+- mediafile=os.path.join(videopath, file.attributes["filename"].value)
++ mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value)
+ elif file.attributes["type"].value=="file":
+ mediafile=file.attributes["filename"].value
+ else:
+@@ -4834,8 +4895,7 @@
+ starttime = -1
+ usecutlist = -1
+
+- encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder,
+- profile, usecutlist)
++ encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, profile, usecutlist)
+ mediafile = os.path.join(folder, 'newfile2.mpg')
+ else:
+ #we need to re-encode the file, make sure we get the right video/audio streams
+@@ -4861,8 +4921,7 @@
+ profile = defaultEncodingProfile
+
+ #do the re-encode
+- encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video,
+- audio1, audio2, aspectratio, profile)
++ encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, folder, audio1, audio2, aspectratio, profile)
+ mediafile = os.path.join(folder, 'newfile2.mpg')
+
+ #remove the old mediafile that was run through mythtranscode
+@@ -4936,7 +4995,7 @@
+ elif file.attributes["type"].value=="recording":
+ mediafile = file.attributes["filename"].value
+ elif file.attributes["type"].value=="video":
+- mediafile=os.path.join(videopath, file.attributes["filename"].value)
++ mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value)
+ elif file.attributes["type"].value=="file":
+ mediafile=file.attributes["filename"].value
+ else:
+@@ -4988,8 +5047,7 @@
+ starttime = -1
+ usecutlist = -1
+
+- encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder,
+- profile, usecutlist)
++ encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, profile, usecutlist)
+ mediafile = os.path.join(folder, 'newfile2.mpg')
+ else:
+ #we need to re-encode the file, make sure we get the right video/audio streams
+@@ -5015,8 +5073,7 @@
+ profile = defaultEncodingProfile
+
+ #do the re-encode
+- encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video,
+- audio1, audio2, aspectratio, profile)
++ encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, folder, audio1, audio2, aspectratio, profile)
+ mediafile = os.path.join(folder, 'newfile2.mpg')
+
+ #remove an intermediate file
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install
new file mode 100644
index 0000000..142212b
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "If you want to use this plugin, install zoneminder from AUR."
+}
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD
new file mode 100644
index 0000000..c145741
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD
@@ -0,0 +1,23 @@
+pkgname=mythsmolt
+pkgver=0.24
+pkgrel=9
+pkgdesc="mythsmolt, a hardware profileing tool"
+arch=('i686' 'x86_64')
+url="http://www.mythvantage.com"
+license=('GPL')
+depends=("mythtv>=${pkgver}" urlgrabber python-simplejson python-pycurl)
+#source=("http://jmeyer.us/download/mythsmolt.tar.gz" 'smolt_init_login.sh' 'mythsmolt.patch')
+source=("http://jmeyer.us/download/mythsmolt.tar.gz" 'smolt_init_login.sh' )
+
+groups=('mythtv-extras')
+
+build() {
+ cd $startdir/src/mythsmolt
+# patch -p1 < ../mythsmolt.patch || return 1
+ ./configure.sh
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install
+ install -D -m 755 $srcdir/smolt_init_login.sh $pkgdir/etc/profile.d/smolt_init_login.sh
+}
+md5sums=('17d740c348301ab47ac557ad7402115b'
+ '57a3416d90e59abbd5062436583c17e1')
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch
new file mode 100644
index 0000000..4767865
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch
@@ -0,0 +1,8 @@
+diff -ruaN mythsmolt.orig/settings.pro mythsmolt/settings.pro
+--- mythsmolt.orig/settings.pro 2010-01-06 15:49:59.000000000 +0000
++++ mythsmolt/settings.pro 2010-05-28 03:30:59.000000000 +0000
+@@ -1,3 +1,3 @@
+
+-LIBVERSION = 0.24
++LIBVERSION = 0.24
+
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh
new file mode 100644
index 0000000..0b76305
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh
@@ -0,0 +1,39 @@
+if [ $UID = 0 -o $UID = 1000 ]
+then
+ INIT=`ps -p 1 -o comm=`
+ if [ x$INIT = xrunit ]
+ then
+ if [[ -f /home/mythtv/.configure && $- = *i* ]]
+ then
+ if [ ! -z "$PS1" ]
+ then
+ if [ $0 = "-bash" ]
+ then
+ if [ ! -e /home/mythtv/.mythtv/MythSmolt/hw-uuid ]
+ then
+ echo ""
+ echo "####################################################"
+ echo "It appears you have not yet run smolt"
+ echo "Please take the time to submit your hardware profile"
+ echo ""
+ echo "press any key to continue:"
+ echo "####################################################"
+ read a
+ mkdir -p /home/mythtv/.mythtv/MythSmolt
+ chown -R mythtv:users /home/mythtv/.mythtv/MythSmolt
+
+ if [ $UID = 0 ]
+ then
+ su mythtv -c "/usr/share/mythtv/mythsmolt/scripts/sendProfile.py" && su mythtv -c "touch /home/mythtv/.mythtv/MythSmolt/hw-uuid"
+ else
+ /usr/share/mythtv/mythsmolt/scripts/sendProfile.py && touch /home/mythtv/.mythtv/MythSmolt/hw-uuid
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+
+
+
diff --git a/abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD
new file mode 100644
index 0000000..96fa147
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 86938 2010-08-06 21:53:33Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: kleptophobiac@gmail.com
+
+pkgname=myththemes
+pkgver=0.24
+pkgrel=9
+pkgdesc="Themes for MythTV"
+arch=('any')
+url="http://www.mythtv.org/"
+license=('GPL')
+depends=("mythtv>=${pkgver}")
+source=('ftp://ftp.knoppmyth.net/R6/sources/myththemes-0.24-fixes.tar.bz2' `echo ${patches[@]:0}`)
+_gitroot="https://github.com/MythTV/myththemes.git"
+_gitname="${pkgname}"
+build() {
+ cd $srcdir/myththemes
+ git pull
+ rm -fr Mythbuntu
+ # apply patches
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patchs[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ cd "${srcdir}/${pkgname}"
+ ./configure --prefix=/usr || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}"
+ make INSTALL_ROOT="${pkgdir}" install || return 1
+}
+md5sums=('a5c9475a6d29c313cd9ae77566ee277a')
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD
new file mode 100755
index 0000000..e9d9a12
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 91139 2010-09-23 10:45:09Z remy $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: <kleptophobiac@gmail.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=mythtv
+pkgver=0.24
+pkgrel=30
+pkgdesc="A Homebrew PVR project"
+arch=('i686' 'x86_64')
+url="http://www.mythtv.org/"
+license=('GPL')
+depends=('mysql-clients' 'qt' 'lame' 'lirc-utils' 'ffmpeg-svn' 'libxvmc'
+ 'fribidi' 'perl-soap-lite' 'perl-date-manip' 'perl-xml-sax'
+ 'perl-math-round' 'perl-net-upnp' 'perl-dbd-mysql' 'perl-time-hires'
+ 'libavc1394' 'wget' 'libiec61883' 'mysql-python' 'python-lxml'
+ 'mesa' 'libxinerama' 'libxrandr' 'faad2' 'libvdpau' 'libcrystalhd-git')
+makedepends=('yasm' 'libgl' 'git' 'rsync')
+replaces=()
+groups=('pvr')
+#backup=(/usr/share/mythtv/is.xml)
+#options=(!strip)
+#MAKEFLAGS="-j6"
+install='mythtv.install'
+patchs=('smolt_jump.patch' 'git_version.patch')
+optdepends=('xmltv: to download tv listings')
+#replaces=('mythtv-contrib')
+#conflicts=('mythtv-contrib')
+source=(ftp://ftp.knoppmyth.net/R6/sources/mythtv-0.24-fixes.tar.bz2
+ 'mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty'
+ 'http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_ver008.patch')
+_gitroot="https://github.com/MythTV/mythtv.git"
+_gitname="${pkgname}"
+build() {
+
+ cd "${srcdir}/${pkgname}"/mythtv
+ msg "Updating from GIT..."
+ #git checkout -b 0.24-fixes origin/fixes/0.24
+ git pull
+ msg "The local files are updated."
+ # apply patches
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patchs[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo Applying patch for Ceton InfinTV4
+ patch -p2 < ${startdir}/src//ceton_ver008.patch
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
+ find bindings/python contrib -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ ARCH=${CARCH/_/-}
+ ./configure --prefix=/usr --cpu=${ARCH} \
+ --disable-audio-jack \
+ --disable-audio-pulse \
+ --disable-altivec \
+ --disable-distcc \
+ --disable-ccache \
+ --enable-vdpau \
+ --enable-crystalhd \
+ --dvb-path=/usr/include \
+ --enable-opengl-vsync \
+ --with-bindings=perl,python --python=python2 || return 1
+
+ make all || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"/mythtv
+ # basic install
+ make INSTALL_ROOT="${pkgdir}" install
+ # install contrib files
+ rsync -arp --exclude .svn --delete-excluded contrib ${pkgdir}/usr/share/mythtv/ || return 1
+ # install database structure
+ rsync -arp --exclude .svn --delete-excluded database ${pkgdir}/usr/share/mythtv/ || return 1
+ # install docs
+ rsync -arp --exclude .svn --delete-excluded docs ${pkgdir}/usr/share/mythtv/ || return 1
+
+ # patch the xml LinHES style
+ cp -r ${startdir}/menu-xml/*.xml ${pkgdir}/usr/share/mythtv/themes/defaultmenu/
+# mv ${pkgdir}/usr/share/mythtv/themes/defaultmenu/is.xml ${pkgdir}/usr/share/mythtv/
+ cd ${pkgdir}/usr/share/mythtv
+ patch -p0 < ${startdir}/menu-xml/mainmenu.xml.patch || return 1
+ patch -p0 < ${startdir}/menu-xml/optical_menu.xml.patch || return 1
+ patch -p0 < ${startdir}/menu-xml/library.xml.patch || return 1
+ patch -p0 < ${startdir}/menu-xml/util_menu.xml.patch || return 1
+
+ # make log dir
+ mkdir -p ${pkgdir}/var/log/mythtv
+ chown 1000.1000 ${pkgdir}/var/log/mythtv
+ mkdir -p ${pkgdir}/etc/logrotate.d
+ cp ${srcdir}/*.lr ${pkgdir}/etc/logrotate.d
+ mkdir -p ${pkgdir}/etc/cron.hourly/
+ install -m0755 ${srcdir}/pretty ${pkgdir}/etc/cron.hourly/
+}
+md5sums=('91488a6b1b05d14c5c5c601908b699e5'
+ '7ef6de58240e7aad389a0b13d91b1cf6'
+ '2babd4b8e146a7538d18dcd55695b0be'
+ 'a837de9ccc201994320071e48952b17d'
+ 'd048fd37d5061c853b5712d5f187b25d'
+ 'f735805a80b0d1180dee01f9df1b7004'
+ 'f407d6af23e74a49540755420f84fa58'
+ '5469d9921b726db750b991c87d226158'
+ '8837b2305030a2326b22f4330968e29a')
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog b/abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog
new file mode 100644
index 0000000..940f84b
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog
@@ -0,0 +1 @@
+update to 0.24-fixes
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch
new file mode 100644
index 0000000..1cdfaa9
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch
@@ -0,0 +1,12 @@
+diff -ruaN mythtv.orig/mythtv/version.sh mythtv/mythtv/version.sh
+--- version.sh 2010-12-29 22:27:10.000000000 +0000
++++ version.sh 2010-12-29 23:36:19.000000000 +0000
+@@ -22,7 +22,7 @@
+
+ cd ${GITTREEDIR}
+
+-SOURCE_VERSION=$(git describe --dirty || git describe || echo Unknown)
++SOURCE_VERSION=$(git describe | cut -d- -f 3 || echo Unknown)
+
+ case "${SOURCE_VERSION}" in
+ exported|Unknown)
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml
new file mode 100644
index 0000000..ac52497
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml
@@ -0,0 +1,94 @@
+<mythmenu name="HOST_SETTINGS">
+
+ <button>
+ <type>MV_NETWORK_SETUP_MENU</type>
+ <text>Network Settings</text>
+ <action>EXEC mythinstall -s network </action>
+ </button>
+
+ <button>
+ <type>MV_NETWORK_SETUP_MENU</type>
+ <text>DDNS Settings</text>
+ <action>EXEC mythinstall -s ddns </action>
+ </button>
+ <button>
+ <type>MV_SYSTEM_SETUP_MENU</type>
+ <text>System Type</text>
+ <action>EXEC mythinstall -s hostype </action>
+ </button>
+
+ <button>
+ <type>MV_SCREENSAVER_SETUP_MENU</type>
+ <text>Screensaver Settings</text>
+ <action>EXEC mythinstall -s screensaver </action>
+ </button>
+
+ <button>
+ <type>MV_IR_SETUP_MENU</type>
+ <text>Remotes</text>
+ <action>EXEC mythinstall -s ir </action>
+ </button>
+
+ <button>
+ <type>MV_MISC_SETUP_MENU</type>
+ <text>Miscellanous Settings</text>
+ <action>EXEC mythinstall -s misc </action>
+ </button>
+
+ <button>
+ <type>MV_SOFTWARE_MENU</type>
+ <text>Software</text>
+ <action>EXEC mythinstall -s plugins </action>
+ </button>
+
+ <button>
+ <type>MV_SHUTDOWN_SETUP_MENU</type>
+ <text>Shutdown Settings</text>
+ <action>EXEC mythinstall -s sleep </action>
+ </button>
+
+ <button>
+ <type>MV_ADVANCED_X_SETUP_MENU</type>
+ <text>Display Settings</text>
+ <action>EXEC mythinstall -s advancedX</action>
+ </button>
+
+ <button>
+ <type>MV_ADVANCED_SETUP_MENU</type>
+ <text>Advanced Settings</text>
+ <action>EXEC mythinstall -s advanced</action>
+ </button>
+
+ <button>
+ <type>MV_AUDIO_SETUP_MENU</type>
+ <text>Audio Settings</text>
+ <action>EXEC mythinstall -s sound </action>
+ </button>
+
+ <button>
+ <type>MV_ACCESS_SETUP_MENU</type>
+ <text>Access Control</text>
+ <action>EXEC mythinstall -s accesscontrol </action>
+ </button>
+
+ <button>
+ <type>MV_USER_SETUP_MENU</type>
+ <text>User Accounts</text>
+ <action>EXEC mythinstall -s user </action>
+ </button>
+
+ <button>
+ <type>MV_WEBACCESS_SETUP_MENU</type>
+ <text>Web Security</text>
+ <action>EXEC mythinstall -s webuser </action>
+ </button>
+
+ <!--
+ <button>
+ <type>SETUP_MENU</type>
+ <text>Settings Profile Manager</text>
+ <action>EXEC mythinstall -t </action>
+ </button>
+ -->
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml
new file mode 100644
index 0000000..88b7e6b
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml
@@ -0,0 +1,3 @@
+<mythmenu name="Internet Steams">
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch
new file mode 100644
index 0000000..be06e34
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch
@@ -0,0 +1,12 @@
+--- themes/defaultmenu/library.xml.orig 2010-11-06 00:39:51.000000000 +0000
++++ themes/defaultmenu/library.xml 2010-11-06 00:44:54.000000000 +0000
+@@ -44,8 +44,7 @@
+ <type>STREAM</type>
+ <text>Play Online Streams</text>
+ <description></description>
+- <action>PLUGIN mythstream</action>
+- <depends>mythstream</depends>
++ <action>MENU is.xml</action>
+ </button>
+
+ <button>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml
new file mode 100644
index 0000000..01b6ffa
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml
@@ -0,0 +1,59 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>SETUP_GENERAL</type>
+ <text>MythTV Configuration</text>
+ <text lang="IT">Impostazioni</text>
+ <text lang="ES">ConfiguraciĂłn</text>
+ <text lang="DE">Zubehör / Konfiguration</text>
+ <text lang="DA">Tilbehør/Indstillinger</text>
+ <text lang="IS">Uppsetning</text>
+ <text lang="NL">Configuratie</text>
+ <text lang="PT">UtensĂ­lios</text>
+ <text lang="SV">Verktyg / Inställningar</text>
+ <text lang="JA">設ĺ®~Z</text>
+ <text lang="FI">Oheis/Asetukset</text>
+ <text lang="ZH_TW">ĺ·Ąĺ~E·/設ĺ®~Z</text>
+ <text lang="SL">Nastavitve</text>
+ <text lang="ET">Utiliidid / sätted</text>
+ <text lang="RU">ĐŁŃ~BилиŃ~BŃ~K / Đ~]Đ°Ń~AŃ~BŃ~@ойки</text>
+ <text lang="AR">تضبŮ~Jطات</text>
+ <text lang="PL">NarzÄ~Ydzia / ustawienia</text>
+ <text lang="HE">ע×~Vר×~Y×~] / ×~T×~R×~Sר×~Uת</text>
+ <text lang="HU">Eszközök / Beállítások</text>
+ <alttext lang="DE">Verschiedenes</alttext>
+ <alttext lang="SV">Inställningar</alttext>
+ <alttext lang="ET">Sätted</alttext>
+ <alttext lang="RU">Đ~]Đ°Ń~AŃ~BŃ~@ойки</alttext>
+ <alttext lang="AR">تضبŮ~Jطات</alttext>
+ <description>Configure MythTV and plugins</description>
+ <description lang="DE">MythTV und Plugins konfigurieren</description>
+ <action>MENU util_menu.xml</action>
+ </button>
+
+ <button>
+ <type>LINHES_SETUP</type>
+ <text>LinHES Configuration</text>
+ <action>MENU HOST_SETTINGS.xml</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>Backup LinHES</text>
+ <action>MENU mythbackup.xml</action>
+ </button>
+
+ <button>
+ <type>RESTORE</type>
+ <text>Restore LinHES</text>
+ <action>MENU mythrestore.xml</action>
+ </button>
+
+<!--#Check for updates-->
+ <button>
+ <type>UPGRADE</type>
+ <text>Update LinHES</text>
+ <action>MENU update.xml</action>
+ </button>
+<!--#Check for updates-->
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch
new file mode 100644
index 0000000..0491803
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch
@@ -0,0 +1,37 @@
+--- themes/defaultmenu/mainmenu.xml.orig 2010-11-08 22:30:08.000000000 +0000
++++ themes/defaultmenu/mainmenu.xml 2010-11-08 22:35:51.000000000 +0000
+@@ -2,6 +2,13 @@
+ <mythmenu name="MAIN">
+
+ <button>
++ <type>TV_WATCH_TV</type>
++ <text>Watch TV</text>
++ <description>Watch live television</description>
++ <action>TV_WATCH_LIVE</action>
++ </button>
++
++ <button>
+ <type>MENU_MEDIA_LIBRARY</type>
+ <text>Media Library</text>
+ <action>MENU library.xml</action>
+@@ -31,17 +38,10 @@
+ </button>
+
+ <button>
+- <type>TV_WATCH_TV</type>
+- <text>Watch TV</text>
+- <description>Watch live television</description>
+- <action>TV_WATCH_LIVE</action>
+- </button>
+-
+- <button>
+ <type>MENU_UTILITIES_SETUP</type>
+- <text>Utilities / Setup</text>
+- <description>Configure MythTV and plugins</description>
+- <action>MENU util_menu.xml</action>
++ <text>Service Menu</text>
++ <description>Configure your system</description>
++ <action>MENU linhes.xml</action>
+ </button>
+
+ </mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml
new file mode 100644
index 0000000..5914b33
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>BACKUP</type>
+ <text>Do you wish to backup?</text>
+ <action>NONE</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>Yes</text>
+ <action>EXEC sudo /usr/LH/bin/mythbackup</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>No</text>
+ <action>UPMENU</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml
new file mode 100644
index 0000000..8f5c285
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>RESTORE</type>
+ <text>Do you wish to restore?</text>
+ <action>NONE</action>
+ </button>
+
+ <button>
+ <type>RESTORE</type>
+ <text>Yes</text>
+ <action>EXEC sudo /usr/LH/bin/mythrestore</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>No</text>
+ <action>UPMENU</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch
new file mode 100644
index 0000000..143424f
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch
@@ -0,0 +1,16 @@
+--- themes/defaultmenu/optical_menu.xml.orig 2010-11-06 00:39:43.000000000 +0000
++++ themes/defaultmenu/optical_menu.xml 2010-11-06 00:42:59.000000000 +0000
+@@ -26,6 +26,13 @@
+ </button>
+
+ <button>
++ <type>DVD_RIP</type>
++ <text>Import video files from DVD</text>
++ <description>Import video files from a data DVD</description>
++ <action>EXEC /usr/LH/bin/importfiles.sh</action>
++ </button>
++
++ <button>
+ <type>MUSIC_RIP</type>
+ <text>Import CD</text>
+ <description>Import music from an audio CD</description>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh
new file mode 100755
index 0000000..34d8b8c
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+for i in *.xml
+do
+ diff -u $i.orig $i > ../$i.patch
+done
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml
new file mode 100644
index 0000000..f56bb6f
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml
@@ -0,0 +1,111 @@
+<mythmenu name="MAIN">
+
+ <button>
+ <type>SETUP_GENERAL</type>
+ <text>1. General</text>
+ <text lang="IT">1. Generale</text>
+ <text lang="PT">1. Geral</text>
+ <text lang="SV">1. Generellt</text>
+ <text lang="JA">1. 一č¬</text>
+ <text lang="DE">1. Allgemeines</text>
+ <text lang="FI">1. Yleiset</text>
+ <text lang="FR">1. Général</text>
+ <text lang="SI">1. Splošno</text>
+ <text lang="ET">1. Ăśldine</text>
+ <text lang="NB">1 Generelt</text>
+ <text lang="DK">1. Generelt</text>
+ <text lang="ES">1. General</text>
+ <text lang="CZ">1. ObecnĂ˝</text>
+ <text lang="RU">1. Общие</text>
+ <action>GENERAL</action>
+ </button>
+
+ <button>
+ <type>SETUP_CAPTURE_CARDS</type>
+ <text>2. Capture cards</text>
+ <text lang="IT">2. Schede di Acquisizione</text>
+ <text lang="PT">2. Placas de Captura</text>
+ <text lang="SV">2. TV-kort</text>
+ <text lang="JA">2. ă‚­ăŁă—ăăŁă‚«ăĽă‰</text>
+ <text lang="DE">2. TV-Karten</text>
+ <text lang="FI">2. TV-kortit</text>
+ <text lang="FR">2. Cartes d'acquisition</text>
+ <text lang="SI">2. Kartice za zajem</text>
+ <text lang="ET">2. TV-kaardid</text>
+ <text lang="NB">2 TV-kort</text>
+ <text lang="DK">2. TV-kort</text>
+ <text lang="ES">2. Capturadoras</text>
+ <text lang="CZ">2. Zachytávací karty</text>
+ <text lang="RU">2. Карты захвата</text>
+ <action>CAPTURE CARDS</action>
+ </button>
+
+ <button>
+ <type>SETUP_VIDEO_SOURCES</type>
+ <text>3. Video sources</text>
+ <text lang="IT">3. Fonte Video</text>
+ <text lang="PT">3. Fontes de VĂ­deo</text>
+ <text lang="SV">3. Videokällor</text>
+ <text lang="JA">3. ă“ă‡ă‚Şă‚˝ăĽă‚ą</text>
+ <text lang="DE">3. Videoquellen</text>
+ <text lang="FI">3. Kuvanlähteet</text>
+ <text lang="FR">3. Sources vidéo</text>
+ <text lang="SI">3. Video viri</text>
+ <text lang="ET">3. Videosisendid</text>
+ <text lang="NB">3 Videokilder</text>
+ <text lang="DK">3. Videokilder</text>
+ <text lang="ES">3. Fuentes de VĂ­deo</text>
+ <text lang="CZ">3. Zdroje obrazu</text>
+ <text lang="RU">3. Видео иŃточники</text>
+ <action>VIDEO SOURCES</action>
+ </button>
+
+ <button>
+ <type>SETUP_INPUT_CONNECTIONS</type>
+ <text>4. Input connections</text>
+ <text lang="IT">4. Connessioni di Ingresso</text>
+ <text lang="PT">4. Ligações de Entrada</text>
+ <text lang="SV">4. Anslutningar</text>
+ <text lang="JA">4. 入力ă¨ă‚˝ăĽă‚ąă®ćŽĄç¶š</text>
+ <text lang="DE">4. VerknĂĽpfungen</text>
+ <text lang="FI">4. Sisääntuloasetukset</text>
+ <text lang="FR">4. Entrées Vidéos</text>
+ <text lang="SI">4. Vhodne povezave</text>
+ <text lang="ET">4. Sisendite ĂĽhendused</text>
+ <text lang="NB">4 Inndata</text>
+ <text lang="DK">4. Indgange</text>
+ <text lang="ES">4. Conexiones</text>
+ <text lang="CZ">4. Připojení vstupů</text>
+ <text lang="RU">4. Соединение входов</text>
+ <action>CARD INPUTS</action>
+ </button>
+
+ <button>
+ <type>SETUP_CHANNEL_EDITOR</type>
+ <text>5. Channel Editor</text>
+ <text lang="IT">5. Modifica Canali</text>
+ <text lang="SV">5. Kanaleditor</text>
+ <text lang="JA">5. ăăŁăłăŤă«č¨­ĺ®š</text>
+ <text lang="DE">5. Sender bearbeiten</text>
+ <text lang="FI">5. Kanavanviritys</text>
+ <text lang="FR">5. Editeur de chaînes</text>
+ <text lang="SI">5. Urejanje kanalov</text>
+ <text lang="ET">5. Kanaliredaktor</text>
+ <text lang="NB">5 Kanalredigerer</text>
+ <text lang="DK">5. Kanal opsætning</text>
+ <text lang="ES">5. Editor Canales</text>
+ <text lang="CZ">5. Editor kanálů</text>
+ <text lang="RU">5. Редактор каналов</text>
+ <action>CHANNEL EDITOR</action>
+ </button>
+
+ <button>
+ <type>SETUP_STORAGE_GROUPS</type>
+ <text>6. Storage Directories</text>
+ <text lang="IT">6. Cartelle</text>
+ <text lang="FI">Tallennusryhmät</text>
+ <text lang="SV">Lagringsgrupper</text>
+ <action>STORAGE GROUPS</action>
+ </button>
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml
new file mode 100644
index 0000000..e317b36
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml
@@ -0,0 +1,419 @@
+<mythmenu name="SIRIUS">
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Hits 1</text>
+ <action>EXEC /usr/bin/cliSipie siriushits1</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>StarLite</text>
+ <action>EXEC /usr/bin/cliSipie starlite</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Love</text>
+ <action>EXEC /usr/bin/cliSipie siriuslove</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Movin EZ</text>
+ <action>EXEC /usr/bin/cliSipie movineasy</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Gold</text>
+ <action>EXEC /usr/bin/cliSipie siriusgold</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>'60s Vibrations</text>
+ <action>EXEC /usr/bin/cliSipie 60svibrations</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Totally '70s</text>
+ <action>EXEC /usr/bin/cliSipie totally70s</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Big '80s</text>
+ <action>EXEC /usr/bin/cliSipie big80s</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>ThePulse</text>
+ <action>EXEC /usr/bin/cliSipie thepulse</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Bridge</text>
+ <action>EXEC /usr/bin/cliSipie thebridge</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>BBC Radio 1</text>
+ <action>EXEC /usr/bin/cliSipie bbcradio1</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Super Shuffle</text>
+ <action>EXEC /usr/bin/cliSipie supershuffle</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Elvis Radio</text>
+ <action>EXEC /usr/bin/cliSipie elvisradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Classic Vinyl</text>
+ <action>EXEC /usr/bin/cliSipie classicvinyl</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Classic Rewind</text>
+ <action>EXEC /usr/bin/cliSipie classicrewind</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>TheVault</text>
+ <action>EXEC /usr/bin/cliSipie thevault</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Jam_ON</text>
+ <action>EXEC /usr/bin/cliSipie jamon</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Spectrum</text>
+ <action>EXEC /usr/bin/cliSipie thespectrum</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>BuzzSaw</text>
+ <action>EXEC /usr/bin/cliSipie buzzsaw</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Octane</text>
+ <action>EXEC /usr/bin/cliSipie octane</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Alt Nation</text>
+ <action>EXEC /usr/bin/cliSipie altnation</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>1st Wave</text>
+ <action>EXEC /usr/bin/cliSipie firstwave</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hair Nation</text>
+ <action>EXEC /usr/bin/cliSipie hairnation</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>'90s Alternative</text>
+ <action>EXEC /usr/bin/cliSipie 90salternative</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Garage</text>
+ <action>EXEC /usr/bin/cliSipie undergroundgarage</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Left of Center</text>
+ <action>EXEC /usr/bin/cliSipie leftofcenter</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hard Attack</text>
+ <action>EXEC /usr/bin/cliSipie hardattack</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Faction</text>
+ <action>EXEC /usr/bin/cliSipie faction</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Punk</text>
+ <action>EXEC /usr/bin/cliSipie punk</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>The Coffee House</text>
+ <action>EXEC /usr/bin/cliSipie coffeehouse</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Margaritaville</text>
+ <action>EXEC /usr/bin/cliSipie radiomargaritaville</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Disorder</text>
+ <action>EXEC /usr/bin/cliSipie siriusdisorder</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Reggae</text>
+ <action>EXEC /usr/bin/cliSipie reggaerhythms</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Area 33</text>
+ <action>EXEC /usr/bin/cliSipie area33</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Boombox</text>
+ <action>EXEC /usr/bin/cliSipie boombox</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Chill</text>
+ <action>EXEC /usr/bin/cliSipie chill</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>The Beat</text>
+ <action>EXEC /usr/bin/cliSipie thebeat</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Strobe</text>
+ <action>EXEC /usr/bin/cliSipie thestrobe</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hip-Hop Nation</text>
+ <action>EXEC /usr/bin/cliSipie hiphopnation</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>BackSpin</text>
+ <action>EXEC /usr/bin/cliSipie backspin</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Shade 45</text>
+ <action>EXEC /usr/bin/cliSipie shade45</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hot Jamz</text>
+ <action>EXEC /usr/bin/cliSipie hotjamz</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Heart &amp; Soul</text>
+ <action>EXEC /usr/bin/cliSipie heartandsoul</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>SoulTown</text>
+ <action>EXEC /usr/bin/cliSipie soultown</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>New Country</text>
+ <action>EXEC /usr/bin/cliSipie newcountry</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Prime Country</text>
+ <action>EXEC /usr/bin/cliSipie primecountry</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Roadhouse</text>
+ <action>EXEC /usr/bin/cliSipie theroadhouse</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Outlaw Country</text>
+ <action>EXEC /usr/bin/cliSipie outlawcountry</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Bluegrass</text>
+ <action>EXEC /usr/bin/cliSipie bluegrass</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Spirit</text>
+ <action>EXEC /usr/bin/cliSipie spirit</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Praise</text>
+ <action>EXEC /usr/bin/cliSipie praise</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Planet Jazz</text>
+ <action>EXEC /usr/bin/cliSipie planetjazz</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>JazzCafe</text>
+ <action>EXEC /usr/bin/cliSipie jazzcafe</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>PureJazz</text>
+ <action>EXEC /usr/bin/cliSipie purejazz</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Spa 73</text>
+ <action>EXEC /usr/bin/cliSipie spa73</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Blues</text>
+ <action>EXEC /usr/bin/cliSipie siriusblues</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Siriusly Sinatra</text>
+ <action>EXEC /usr/bin/cliSipie siriuslysinatra</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Broadway's Best</text>
+ <action>EXEC /usr/bin/cliSipie broadwaysbest</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Symphony Hall</text>
+ <action>EXEC /usr/bin/cliSipie symphonyhall</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Met Opera Radio</text>
+ <action>EXEC /usr/bin/cliSipie metropolitanopera</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Pops</text>
+ <action>EXEC /usr/bin/cliSipie siriuspops</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Universo Latino</text>
+ <action>EXEC /usr/bin/cliSipie universolatino</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Rumbon</text>
+ <action>EXEC /usr/bin/cliSipie rumbon</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Martha Stewart</text>
+ <action>EXEC /usr/bin/cliSipie marthastewartlivingradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Stars</text>
+ <action>EXEC /usr/bin/cliSipie siriusstars</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>OutQ Gay Radio</text>
+ <action>EXEC /usr/bin/cliSipie siriusoutq</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Patriot</text>
+ <action>EXEC /usr/bin/cliSipie siriuspatriot</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Left</text>
+ <action>EXEC /usr/bin/cliSipie siriusleft</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>CNN</text>
+ <action>EXEC /usr/bin/cliSipie cnn</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>wrn</text>
+ <action>EXEC /usr/bin/cliSipie wrn</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Blue Collar Comedy</text>
+ <action>EXEC /usr/bin/cliSipie bluecollarcomedy</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Raw Dog Comedy</text>
+ <action>EXEC /usr/bin/cliSipie rawdog</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Laugh Break Comedy</text>
+ <action>EXEC /usr/bin/cliSipie laughbreak</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>thefoxxhole</text>
+ <action>EXEC /usr/bin/cliSipie thefoxxhole</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>lime</text>
+ <action>EXEC /usr/bin/cliSipie lime</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Kids Stuff</text>
+ <action>EXEC /usr/bin/cliSipie kidsstuff</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Catholic Channel</text>
+ <action>EXEC /usr/bin/cliSipie thecatholicchannel</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>EWTN</text>
+ <action>EXEC /usr/bin/cliSipie ewtnglobal</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>christiantalk</text>
+ <action>EXEC /usr/bin/cliSipie christiantalk</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius NFL Radio</text>
+ <action>EXEC /usr/bin/cliSipie siriusnflradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Maxim Radio</text>
+ <action>EXEC /usr/bin/cliSipie maximradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Cosmo Radio</text>
+ <action>EXEC /usr/bin/cliSipie cosmopolitanradio</action>
+ </button>
+ <button>
+ <type>TV_DELETE</type>
+ <text>Stop Listening</text>
+ <action>EXEC /usr/bin/sipie_kill</action>
+ </button>
+
+</mythmenu>
+
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml
new file mode 100644
index 0000000..d2ac3fe
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml
@@ -0,0 +1,9 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Check for Updates</text>
+ <action>EXEC sudo /usr/LH/bin/linhes_update.sh</action>
+ </button>
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
new file mode 100644
index 0000000..64388cb
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Install Updates</text>
+ <action>EXEC sudo /usr/LH/bin/linhes_update2.sh install</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Cancel Updates</text>
+ <action>EXEC sudo /usr/LH/bin/linhes_update2.sh</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>View Updates</text>
+ <action>MENU update3.xml</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch
new file mode 100644
index 0000000..82d303e
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch
@@ -0,0 +1,16 @@
+--- themes/defaultmenu/util_menu.xml.orig 2010-11-06 00:40:01.000000000 +0000
++++ themes/defaultmenu/util_menu.xml 2010-11-06 00:45:42.000000000 +0000
+@@ -17,6 +17,13 @@
+ </button>
+
+ <button>
++ <type>VIDEO_SCREENSHOOTER</type>
++ <text>Thumbnail Generator</text>
++ <description>Generate thumbnail images for videos</description>
++ <action>EXEC /usr/LH/bin/shootscreens-mythtv.sh</action>
++ </button>
++
++ <button>
+ <type>SETUP_MENU</type>
+ <text>Setup</text>
+ <description>Configure MythTV and plugins</description>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml
new file mode 100644
index 0000000..6b26d11
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml
@@ -0,0 +1,574 @@
+<!-- Current as of April 25, 2007 -->
+<mythmenu name="XM">
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '40s</text>
+ <action>EXEC /usr/bin/xamp kill 4</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '50s</text>
+ <action>EXEC /usr/bin/xamp kill 5</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '60s</text>
+ <action>EXEC /usr/bin/xamp kill 6</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '70s</text>
+ <action>EXEC /usr/bin/xamp kill 7</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '80s</text>
+ <action>EXEC /usr/bin/xamp kill 8</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '90s</text>
+ <action>EXEC /usr/bin/xamp kill 9</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>America</text>
+ <action>EXEC /usr/bin/xamp kill 10</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>X Country</text>
+ <action>EXEC /usr/bin/xamp kill 12</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Willie's Place</text>
+ <action>EXEC /usr/bin/xamp kill 13</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Bluegrass Junction</text>
+ <action>EXEC /usr/bin/xamp kill 14</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Village</text>
+ <action>EXEC /usr/bin/xamp kill 15</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Highway 16</text>
+ <action>EXEC /usr/bin/xamp kill 16</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>US Country</text>
+ <action>EXEC /usr/bin/xamp kill 17</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>20 on 20</text>
+ <action>EXEC /usr/bin/xamp kill 20</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Heart</text>
+ <action>EXEC /usr/bin/xamp kill 23</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Blend</text>
+ <action>EXEC /usr/bin/xamp kill 25</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Flight 26</text>
+ <action>EXEC /usr/bin/xamp kill 26</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Cinemagic</text>
+ <action>EXEC /usr/bin/xamp kill 27</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>On Broadway</text>
+ <action>EXEC /usr/bin/xamp kill 28</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>U-Pop</text>
+ <action>EXEC /usr/bin/xamp kill 29</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Hitlist</text>
+ <action>EXEC /usr/bin/xamp kill 30</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Torch</text>
+ <action>EXEC /usr/bin/xamp kill 31</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Message</text>
+ <action>EXEC /usr/bin/xamp kill 32</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Spirit</text>
+ <action>EXEC /usr/bin/xamp kill 33</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>enLighten</text>
+ <action>EXEC /usr/bin/xamp kill 34</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Deep Tracks</text>
+ <action>EXEC /usr/bin/xamp kill 40</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Boneyard</text>
+ <action>EXEC /usr/bin/xamp kill 41</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Liquid Metal</text>
+ <action>EXEC /usr/bin/xamp kill 42</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XMU</text>
+ <action>EXEC /usr/bin/xamp kill 43</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fred</text>
+ <action>EXEC /usr/bin/xamp kill 44</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Cafe</text>
+ <action>EXEC /usr/bin/xamp kill 45</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Top Tracks</text>
+ <action>EXEC /usr/bin/xamp kill 46</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Ethel</text>
+ <action>EXEC /usr/bin/xamp kill 47</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Squizz</text>
+ <action>EXEC /usr/bin/xamp kill 48</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Big Tracks</text>
+ <action>EXEC /usr/bin/xamp kill 49</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Loft</text>
+ <action>EXEC /usr/bin/xamp kill 50</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Music Lab</text>
+ <action>EXEC /usr/bin/xamp kill 51</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Verge</text>
+ <action>EXEC /usr/bin/xamp kill 52</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fungus</text>
+ <action>EXEC /usr/bin/xamp kill 53</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Lucy</text>
+ <action>EXEC /usr/bin/xamp kill 54</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Soul Street</text>
+ <action>EXEC /usr/bin/xamp kill 60</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Flow</text>
+ <action>EXEC /usr/bin/xamp kill 61</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Suite 62</text>
+ <action>EXEC /usr/bin/xamp kill 62</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Groove</text>
+ <action>EXEC /usr/bin/xamp kill 64</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Rhyme</text>
+ <action>EXEC /usr/bin/xamp kill 65</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>RAW</text>
+ <action>EXEC /usr/bin/xamp kill 66</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The City</text>
+ <action>EXEC /usr/bin/xamp kill 67</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Heat</text>
+ <action>EXEC /usr/bin/xamp kill 68</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Real Jazz</text>
+ <action>EXEC /usr/bin/xamp kill 70</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Watercolors</text>
+ <action>EXEC /usr/bin/xamp kill 71</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Beyond Jazz</text>
+ <action>EXEC /usr/bin/xamp kill 72</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>High Standards</text>
+ <action>EXEC /usr/bin/xamp kill 73</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Bluesville</text>
+ <action>EXEC /usr/bin/xamp kill 74</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Hear Music</text>
+ <action>EXEC /usr/bin/xamp kill 75</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fine Tuning</text>
+ <action>EXEC /usr/bin/xamp kill 76</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Audio Visions</text>
+ <action>EXEC /usr/bin/xamp kill 77</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Escape</text>
+ <action>EXEC /usr/bin/xamp kill 78</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>On The Rocks</text>
+ <action>EXEC /usr/bin/xamp kill 79</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Move</text>
+ <action>EXEC /usr/bin/xamp kill 80</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>BPM</text>
+ <action>EXEC /usr/bin/xamp kill 81</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The System</text>
+ <action>EXEC /usr/bin/xamp kill 82</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Chrome</text>
+ <action>EXEC /usr/bin/xamp kill 83</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM-Chill</text>
+ <action>EXEC /usr/bin/xamp kill 84</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fuego</text>
+ <action>EXEC /usr/bin/xamp kill 90</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Viva</text>
+ <action>EXEC /usr/bin/xamp kill 91</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Aguila</text>
+ <action>EXEC /usr/bin/xamp kill 92</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Caliente</text>
+ <action>EXEC /usr/bin/xamp kill 94</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Luna</text>
+ <action>EXEC /usr/bin/xamp kill 95</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Air Musique</text>
+ <action>EXEC /usr/bin/xamp kill 100</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Joint</text>
+ <action>EXEC /usr/bin/xamp kill 101</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Sur La Route</text>
+ <action>EXEC /usr/bin/xamp kill 102</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>World Zone</text>
+ <action>EXEC /usr/bin/xamp kill 103</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Ngoma</text>
+ <action>EXEC /usr/bin/xamp kill 104</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Classics</text>
+ <action>EXEC /usr/bin/xamp kill 110</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Vox</text>
+ <action>EXEC /usr/bin/xamp kill 112</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Pops</text>
+ <action>EXEC /usr/bin/xamp kill 113</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Kids</text>
+ <action>EXEC /usr/bin/xamp kill 116</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Bob Edwards Show</text>
+ <action>EXEC /usr/bin/xamp kill 133</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Comedy</text>
+ <action>EXEC /usr/bin/xamp kill 150</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Laugh USA</text>
+ <action>EXEC /usr/bin/xamp kill 151</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Special X</text>
+ <action>EXEC /usr/bin/xamp kill 154</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Agenda</text>
+ <action>EXEC /usr/bin/xamp kill 134</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Oprah and Friends</text>
+ <action>EXEC /usr/bin/xamp kill 156</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Virus</text>
+ <action>EXEC /usr/bin/xamp kill 202</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>1 Hit Wonders</text>
+ <action>EXEC /usr/bin/xamp kill 300</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Metalcore</text>
+ <action>EXEC /usr/bin/xamp kill 301</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Indie First</text>
+ <action>EXEC /usr/bin/xamp kill 302</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Late Night Mix</text>
+ <action>EXEC /usr/bin/xamp kill 303</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Sessions@AOL</text>
+ <action>EXEC /usr/bin/xamp kill 304</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Shuffle</text>
+ <action>EXEC /usr/bin/xamp kill 305</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Rock First</text>
+ <action>EXEC /usr/bin/xamp kill 306</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Country First</text>
+ <action>EXEC /usr/bin/xamp kill 307</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Hip Hop First</text>
+ <action>EXEC /usr/bin/xamp kill 308</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Pop First</text>
+ <action>EXEC /usr/bin/xamp kill 309</action>
+ </button>
+
+ <button>
+ <type>TV_DELETE</type>
+ <text>Stop Listening</text>
+ <action>EXEC /usr/bin/xamp kill</action>
+ </button>
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh b/abs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh
new file mode 100755
index 0000000..fb7122c
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh
@@ -0,0 +1,4 @@
+export PATH=$PATH:/usr/local/bin
+# set core file size to 0
+ulimit -c 0
+export MALLOC_CHECK_=0 \ No newline at end of file
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend
new file mode 100755
index 0000000..93773a2
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/mythbackend`
+case "$1" in
+ start)
+ stat_busy "Starting MythTV Backend"
+ [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit
+ [ -z "$PID" ] && /usr/bin/mythbackend -d -l /var/log/mythbackend.log -v important
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/mythbackend.pid
+ add_daemon mythbackend
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MythTV Backend"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mythbackend
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1s
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr
new file mode 100644
index 0000000..4f218bc
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr
@@ -0,0 +1,9 @@
+/var/log/mythtv/mythbackend.log {
+ copytruncate
+ daily
+ size 10M
+ missingok
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh
new file mode 100755
index 0000000..e7a7b70
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+#
+# /etc/rc.d/init.d/mythbackend
+#
+# Starts the mythbackend as a daemon
+#
+# chkconfig: 345 90 10
+# description: Starts the mythbackend process as a daemon after the XWindows \
+# system is started, in runlevel 5. This allows scheduled \
+# recordings to occur without manual intervention.
+# processname: mythbackend
+
+# Copyright (c) by Michael Thomson <linux at m-thomson dot net>
+# With thanks to Stu Tomlinson <stu at nosnilmot dot com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+# Default values to use if none are supplied in the config file.
+# User who should start the mythbackend processes
+MBE_USER="root"
+# Directory holding the mythbackend binary
+MBE_LOCATION="/usr/local/bin/"
+# Name of mythbackend binary
+MBE_PROG="mythbackend"
+# Full path to mythbackend log file
+MBE_LOGFILE="/var/log/mythtv/mythbackend.log"
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source config file if available
+if [ -f "/etc/sysconfig/mythbackend" ]; then
+ . /etc/sysconfig/mythbackend
+fi
+
+test -x ${MBE_LOCATION}${MBE_PROG} || exit 0
+
+RETVAL=0
+
+#
+# See how we were called.
+#
+
+start() {
+ # Check if mythbackend is already running
+ if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then
+ echo -n "Starting ${MBE_PROG}: "
+ # /usr/local/bin/mythbackend -d -l /some/log/file
+ #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+ ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG}
+ echo
+ fi
+ return $RETVAL
+}
+
+stop() {
+ echo -n "Stopping ${MBE_PROG}: "
+ killproc ${MBE_LOCATION}${MBE_PROG}
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG}
+ echo
+ return $RETVAL
+}
+
+
+restart() {
+ stop
+ start
+}
+
+reload() {
+ restart
+}
+
+status_at() {
+ status ${MBE_LOCATION}${MBE_PROG}
+}
+
+case "$1" in
+start)
+ start
+ ;;
+stop)
+ stop
+ ;;
+reload|restart)
+ restart
+ ;;
+condrestart)
+ if [ -f /var/lock/subsys/${MBE_PROG} ]; then
+ restart
+ fi
+ ;;
+status)
+ status_at
+ ;;
+*)
+ echo "Usage: $0 {start|stop|restart|condrestart|status}"
+ exit 1
+esac
+
+exit $?
+exit $RETVAL
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr
new file mode 100644
index 0000000..1580533
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr
@@ -0,0 +1,9 @@
+/var/log/mythtv/mythfrontend.log {
+ copytruncate
+ daily
+ size 10M
+ missingok
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install
new file mode 100755
index 0000000..3f2e304
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install
@@ -0,0 +1,63 @@
+# arg 1: the new package version
+post_install() {
+ if [ ! -d /var/log/mythtv ]
+ then
+ mkdir -p /var/log/mythv
+ chown -R mythtv /var/log/mythtv
+ echo "---" > /var/log/mythtv/mythbackend.log
+ chown mythtv /var/log/mythtv/mythbackend.log
+ fi
+ ln -s /usr/share/mythtv/themes/defaultmenu/is.xml /usr/share/mythtv/is.xml
+}
+
+pre_upgrade() {
+ if [ ! -L /usr/share/mythtv/is.xml ]
+ then
+ mv /usr/share/mythtv/is.xml /usr/share/mythtv/is.xml.pre
+ else
+ mv /usr/share/mythtv/themes/defaultmenu/is.xml /usr/share/mythtv/themes/defaultmenu/is.xml.pre
+ fi
+}
+
+post_upgrade() {
+ if [ ! -d /var/log/mythtv ]
+ then
+ mkdir -p /var/log/mythv
+ chown -R mythtv /var/log/mythtv
+ fi
+ if [ -e /usr/share/mythtv/is.xml.pre ]
+ then
+ rm -fr /usr/share/mythtv/themes/defaultmenu/is.xml
+ mv /usr/share/mythtv/is.xml.pre /usr/share/mythtv/themes/defaultmenu/is.xml
+ ln -s /usr/share/mythtv/themes/defaultmenu/is.xml /usr/share/mythtv/is.xml
+ else
+ mv /usr/share/mythtv/themes/defaultmenu/is.xml.pre /usr/share/mythtv/themes/defaultmenu/is.xml
+ fi
+ pacxmbc=`pacman -Q xbmc`
+ if [ -z "$pacxbmc" ]
+ then
+ mv /usr/share/mythtv/themes/defaultmenu/library.xml /tmp
+ grep -v -e /mythmenu /tmp/library.xml > /tmp/library.xml.tmp
+ echo "<!--#XBMC-->" >> /tmp/library.xml.tmp
+ echo " <button>" >> /tmp/library.xml.tmp
+ echo " <type>MENU_XBMC</type>" >> /tmp/library.xml.tmp
+ echo " <text>Launch XBMC</text>" >> /tmp/library.xml.tmp
+ echo " <action>EXEC /usr/bin/xbmc</action>" >> /tmp/library.xml.tmp
+ echo " </button>" >> /tmp/library.xml.tmp
+ echo "<!--#XBMC-->" >> /tmp/library.xml.tmp
+ echo "" >> /tmp/library.xml.tmp
+ echo "</mythmenu>" >> /tmp/library.xml.tmp
+ mv /tmp/library.xml.tmp /usr/share/mythtv/themes/defaultmenu/library.xml
+ fi
+}
+
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/pretty b/abs/not_built/core/mythtv/stable-0.24/mythtv/pretty
new file mode 100755
index 0000000..7e0ab21
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/pretty
@@ -0,0 +1,9 @@
+#!/bin/bash
+if [ -f /usr/share/mythtv/contrib/user_jobs/mythlink.pl ]
+then
+ su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythlink.pl --link /myth/pretty"
+elif [ -f /usr/share/mythtv/contrib/user_jobs/mythrename.pl ]
+then
+ su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythrename.pl --link /myth/pretty"
+fi
+
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch
new file mode 100644
index 0000000..76f884c
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch
@@ -0,0 +1,10 @@
+--- programs/mythfrontend/networkcontrol.cpp.orig 2010-11-08 23:07:04.000000000 +0000
++++ programs/mythfrontend/networkcontrol.cpp 2010-11-08 23:08:06.000000000 +0000
+@@ -88,6 +88,7 @@
+ jumpMap["zoneminderliveview"] = "ZoneMinder Live View";
+ jumpMap["zoneminderevents"] = "ZoneMinder Events";
+ jumpMap["snapshot"] = "ScreenShot";
++ jumpMap["mythsmolt"] = "MythSmolt";
+
+ jumpMap["channelrecpriority"] = "Channel Recording Priorities";
+ jumpMap["viewscheduled"] = "Manage Recordings / Fix Conflicts";
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD
new file mode 100644
index 0000000..cab8fbd
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD
@@ -0,0 +1,46 @@
+pkgname=mythweb
+pkgver=0.24
+pkgrel=16
+pkgdesc="Web interface for MythTV's backend"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv>=0.24' 'lighttpd' 'php' 'local-website')
+groups=('mythtv-extras')
+
+patches=()
+source=('ftp://ftp.knoppmyth.net/R6/sources/mythweb-0.24-fixes.tar.bz2' `echo ${patches[@]:0}`)
+
+DOCROOT=/data/srv/httpd/htdocs/mythweb
+_gitroot="https://github.com/mythtv/mythweb.git"
+_gitname="${pkgname}"
+build() {
+
+ cd $startdir/src/mythweb
+ git pull
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${srcdir}/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ mkdir -p $startdir/pkg/$DOCROOT/{image_cache,php_sessions,data}
+ rsync -arp --exclude .git --delete-excluded $startdir/src/mythweb/* $startdir/pkg/$DOCROOT
+ rm $startdir/pkg/$DOCROOT/README
+ chown -R http:http $startdir/pkg/$DOCROOT
+ chmod g+rw $pkgdir/$DOCROOT/{image_cache,php_sessions,data}
+
+ # mythweb modules_path fix for 0.24
+ # http://code.mythtv.org/trac/ticket/9255
+ cd ${pkgdir}/${DOCROOT}
+ ln -s modules modules_path
+}
+md5sums=('45703fa3899c4ee84d1b087bfcc6654e')
diff --git a/abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch b/abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch
new file mode 100644
index 0000000..4525e68
--- /dev/null
+++ b/abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch
@@ -0,0 +1,11 @@
+--- mythweb.php.orig 2011-02-01 03:33:56.000000000 +0000
++++ mythweb.php 2011-02-01 03:34:20.000000000 +0000
+@@ -30,7 +30,7 @@
+ if (Modules::getModule($Path[0])) {
+ // Add the current module directory to our search path, so modules can
+ // define includes, etc.
+- ini_set('include_path', ini_get('include_path').':'.modules_path.'/'.$Path[0]);
++ ini_set('include_path', ini_get('include_path').':'.modules.'/'.$Path[0]);
+ // Load the module handler
+ require_once 'handler.php';
+ }
diff --git a/abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD b/abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD
new file mode 100644
index 0000000..c8f892e
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD
@@ -0,0 +1,54 @@
+pkgname=morethemes-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Additional themes for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn')
+conflicts=('morethemes')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/themes
+_svnmod=themes
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+# ./configure --prefix=/usr || return 1
+ ./configure --prefix=/usr
+
+ # build and install
+ . /etc/profile
+# make || return 1
+# make INSTALL_ROOT=$startdir/pkg install || return 1
+ make
+ make INSTALL_ROOT=$startdir/pkg install
+ return 0
+#### THIS PKGBUILD IS HACKED TO BUILD WITH ZERO CONTENT RIGHT NOW ####
+}
diff --git a/abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD b/abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD
new file mode 100644
index 0000000..20e9904
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mytharchive-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'libxmu' 'mysql-python' 'pil' 'dvdauthor' 'mjpegtools' 'transcode')
+conflicts=('mytharchive')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mytharchive || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD
new file mode 100644
index 0000000..fdcefe0
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythbrowser-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Mini web browser for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'wget')
+conflicts=('mythbrowser')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythbrowser || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD
new file mode 100644
index 0000000..6415b96
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythgallery-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Image gallery plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'libexif' 'libtiff')
+conflicts=('mythgallery')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythgallery || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD
new file mode 100644
index 0000000..e7d09ab
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythgame-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Emulation plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'zlib')
+conflicts=('mythgame')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythgame || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD
new file mode 100644
index 0000000..f05180c
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythmovies-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Displays information about movies playing in the area."
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn')
+conflicts=('mythmovies')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythmovies || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD
new file mode 100644
index 0000000..3d9f5ce
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD
@@ -0,0 +1,54 @@
+pkgname=mythmusic-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Music playing plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
+ 'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \
+ 'libvisual-plugins' 'libvisual-projectm')
+conflicts=('mythmusic')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythmusic --enable-libvisual --enable-fftw --enable-sdl \
+ --enable-aac || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD
new file mode 100644
index 0000000..c820ac5
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythnetvision-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Internet video plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'python-pycurl' 'flashplugin')
+conflicts=('mythnetvision')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythnetvision || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD
new file mode 100644
index 0000000..630325c
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythnews-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="News checking plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn')
+conflicts=('mythnews')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythnews || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/myththemes/PKGBUILD b/abs/not_built/core/mythtv/trunk/myththemes/PKGBUILD
new file mode 100755
index 0000000..9e10ba2
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/myththemes/PKGBUILD
@@ -0,0 +1,50 @@
+pkgname=myththemes-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Themes for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn')
+conflicts=('myththemes')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/myththemes
+_svnmod=myththemes
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythtv/PKGBUILD
new file mode 100755
index 0000000..65b12db
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/PKGBUILD
@@ -0,0 +1,97 @@
+pkgname=mythtv-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="A personal video recorder for Linux"
+url="http://www.mythtv.org"
+license="GPL"
+depends=('bash' 'mysql-clients>=5.0' 'qt' 'lame' 'lirc-utils' 'ffmpeg' \
+ 'faad2' 'libxv' 'libxvmc' 'libavc1394' 'libdc1394' 'libiec61883' \
+ 'perl-net-upnp' 'libvdpau')
+makedepends=('libgl' 'subversion')
+conflicts=('mythtv')
+replaces=()
+groups=('pvr')
+#backup=()
+#options=(!strip)
+#MAKEFLAGS="-j6"
+install='mythtv.install'
+
+patchs=()
+#patchs=('smolt_jump.patch')
+source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty')
+arch=('i686' 'x86_64')
+#md5sums=()
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv
+_svnmod=mythtv
+
+build() {
+
+ # get clean copy from SVN repo
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/mythtv
+
+ # apply patches
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patchs[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up from last build
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --arch=${ARCH} \
+ --enable-vdpau --enable-xvmc --enable-xvmc-pro \
+ --enable-opengl-vsync --enable-libfaad --enable-dvb --enable-firewire \
+ --compile-type=release --with-bindings=perl,python \
+ --enable-audio-alsa --disable-audio-jack --disable-audio-pulseoutput || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+ # install db schema, scripts and docs
+ install -m0644 database/mc.sql $startdir/pkg/usr/share/mythtv/ || return 1
+ install -D -m0755 ../mythbackend $startdir/pkg/etc/rc.d/mythbackend || return 1
+# cp -r docs $startdir/pkg/usr/share/mythtv/ || return 1
+ rsync -arp --exclude .svn --delete-excluded docs $startdir/pkg/usr/share/mythtv/ || return 1
+
+ # install contrib
+ rsync -arp --exclude .svn --delete-excluded contrib $startdir/pkg/usr/share/mythtv/ || return 1
+ #cp -r contrib $startdir/pkg/usr/share/mythtv/ || return 1
+
+ # patch the xml LinHES style
+ cp -r $startdir/menu-xml/*.xml $startdir/pkg/usr/share/mythtv/themes/defaultmenu/
+ cd $startdir/pkg/usr/share/mythtv/themes/defaultmenu
+ patch -p0 < $startdir/menu-xml/mainmenu.xml.patch || return 1
+ patch -p0 < $startdir/menu-xml/optical_menu.xml.patch || return 1
+ patch -p0 < $startdir/menu-xml/library.xml.patch || return 1
+ patch -p0 < $startdir/menu-xml/util_menu.xml.patch || return 1
+
+ # make log dir
+ mkdir -p $startdir/pkg/var/log/mythtv
+ chown 1000.1000 $startdir/pkg/var/log/mythtv
+ mkdir -p $startdir/pkg/etc/logrotate.d
+ cp $startdir/src/*.lr $startdir/pkg/etc/logrotate.d
+ mkdir -p $startdir/pkg/etc/cron.hourly/
+ install -m0755 $startdir/src/pretty $startdir/pkg/etc/cron.hourly/
+}
+
+md5sums=('7ef6de58240e7aad389a0b13d91b1cf6'
+ '2babd4b8e146a7538d18dcd55695b0be'
+ 'f735805a80b0d1180dee01f9df1b7004'
+ 'f407d6af23e74a49540755420f84fa58'
+ 'ca547c201e3dd4bf3882bebf7c648652')
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml
new file mode 100644
index 0000000..ac52497
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml
@@ -0,0 +1,94 @@
+<mythmenu name="HOST_SETTINGS">
+
+ <button>
+ <type>MV_NETWORK_SETUP_MENU</type>
+ <text>Network Settings</text>
+ <action>EXEC mythinstall -s network </action>
+ </button>
+
+ <button>
+ <type>MV_NETWORK_SETUP_MENU</type>
+ <text>DDNS Settings</text>
+ <action>EXEC mythinstall -s ddns </action>
+ </button>
+ <button>
+ <type>MV_SYSTEM_SETUP_MENU</type>
+ <text>System Type</text>
+ <action>EXEC mythinstall -s hostype </action>
+ </button>
+
+ <button>
+ <type>MV_SCREENSAVER_SETUP_MENU</type>
+ <text>Screensaver Settings</text>
+ <action>EXEC mythinstall -s screensaver </action>
+ </button>
+
+ <button>
+ <type>MV_IR_SETUP_MENU</type>
+ <text>Remotes</text>
+ <action>EXEC mythinstall -s ir </action>
+ </button>
+
+ <button>
+ <type>MV_MISC_SETUP_MENU</type>
+ <text>Miscellanous Settings</text>
+ <action>EXEC mythinstall -s misc </action>
+ </button>
+
+ <button>
+ <type>MV_SOFTWARE_MENU</type>
+ <text>Software</text>
+ <action>EXEC mythinstall -s plugins </action>
+ </button>
+
+ <button>
+ <type>MV_SHUTDOWN_SETUP_MENU</type>
+ <text>Shutdown Settings</text>
+ <action>EXEC mythinstall -s sleep </action>
+ </button>
+
+ <button>
+ <type>MV_ADVANCED_X_SETUP_MENU</type>
+ <text>Display Settings</text>
+ <action>EXEC mythinstall -s advancedX</action>
+ </button>
+
+ <button>
+ <type>MV_ADVANCED_SETUP_MENU</type>
+ <text>Advanced Settings</text>
+ <action>EXEC mythinstall -s advanced</action>
+ </button>
+
+ <button>
+ <type>MV_AUDIO_SETUP_MENU</type>
+ <text>Audio Settings</text>
+ <action>EXEC mythinstall -s sound </action>
+ </button>
+
+ <button>
+ <type>MV_ACCESS_SETUP_MENU</type>
+ <text>Access Control</text>
+ <action>EXEC mythinstall -s accesscontrol </action>
+ </button>
+
+ <button>
+ <type>MV_USER_SETUP_MENU</type>
+ <text>User Accounts</text>
+ <action>EXEC mythinstall -s user </action>
+ </button>
+
+ <button>
+ <type>MV_WEBACCESS_SETUP_MENU</type>
+ <text>Web Security</text>
+ <action>EXEC mythinstall -s webuser </action>
+ </button>
+
+ <!--
+ <button>
+ <type>SETUP_MENU</type>
+ <text>Settings Profile Manager</text>
+ <action>EXEC mythinstall -t </action>
+ </button>
+ -->
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml
new file mode 100644
index 0000000..88b7e6b
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml
@@ -0,0 +1,3 @@
+<mythmenu name="Internet Steams">
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch
new file mode 100644
index 0000000..81ea604
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch
@@ -0,0 +1,12 @@
+--- library.xml.orig 2009-10-16 12:45:44.000000000 +0000
++++ library.xml 2009-10-16 17:21:44.000000000 +0000
+@@ -123,8 +123,7 @@
+ <text lang="HU">Online folyam lejátszása</text>
+ <description></description>
+ <description lang="DE"></description>
+- <action>PLUGIN mythstream</action>
+- <depends>mythstream</depends>
++ <action>MENU is.xml</action>
+ </button>
+
+ <button>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml
new file mode 100644
index 0000000..ebc848b
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml
@@ -0,0 +1,59 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>SETUP_GENERAL</type>
+ <text>MythTV Configuration</text>
+ <text lang="IT">Impostazioni</text>
+ <text lang="ES">ConfiguraciĂłn</text>
+ <text lang="DE">Zubehör / Konfiguration</text>
+ <text lang="DA">Tilbehør/Indstillinger</text>
+ <text lang="IS">Uppsetning</text>
+ <text lang="NL">Configuratie</text>
+ <text lang="PT">UtensĂ­lios</text>
+ <text lang="SV">Verktyg / Inställningar</text>
+ <text lang="JA">設ĺ®~Z</text>
+ <text lang="FI">Oheis/Asetukset</text>
+ <text lang="ZH_TW">ĺ·Ąĺ~E·/設ĺ®~Z</text>
+ <text lang="SL">Nastavitve</text>
+ <text lang="ET">Utiliidid / sätted</text>
+ <text lang="RU">ĐŁŃ~BилиŃ~BŃ~K / Đ~]Đ°Ń~AŃ~BŃ~@ойки</text>
+ <text lang="AR">تضبŮ~Jطات</text>
+ <text lang="PL">NarzÄ~Ydzia / ustawienia</text>
+ <text lang="HE">ע×~Vר×~Y×~] / ×~T×~R×~Sר×~Uת</text>
+ <text lang="HU">Eszközök / Beállítások</text>
+ <alttext lang="DE">Verschiedenes</alttext>
+ <alttext lang="SV">Inställningar</alttext>
+ <alttext lang="ET">Sätted</alttext>
+ <alttext lang="RU">Đ~]Đ°Ń~AŃ~BŃ~@ойки</alttext>
+ <alttext lang="AR">تضبŮ~Jطات</alttext>
+ <description>Configure MythTV and plugins</description>
+ <description lang="DE">MythTV und Plugins konfigurieren</description>
+ <action>MENU util_menu.xml</action>
+ </button>
+
+ <button>
+ <type>LINHES_SETUP</type>
+ <text>LinHES Configuration</text>
+ <action>MENU HOST_SETTINGS.xml</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>Backup LinHES</text>
+ <action>MENU mythbackup.xml</action>
+ </button>
+
+ <button>
+ <type>RESTORE</type>
+ <text>Restore LinHES</text>
+ <action>MENU mythrestore.xml</action>
+ </button>
+
+<!--#Check for updates-->
+ <button>
+ <type>UPGRADE</type>
+ <text>Upgrade LinHES</text>
+ <action>MENU update.xml</action>
+ </button>
+<!--#Check for updates-->
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch
new file mode 100644
index 0000000..74ace7b
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch
@@ -0,0 +1,38 @@
+--- mainmenu.xml.orig 2010-03-24 13:11:27.223119163 -0400
++++ mainmenu.xml 2010-03-24 14:18:33.922746799 -0400
+@@ -151,32 +151,9 @@
+
+ <button>
+ <type>MENU_UTILITIES_SETUP</type>
+- <text>Utilities / Setup</text>
+- <text lang="IT">Impostazioni</text>
+- <text lang="ES">ConfiguraciĂłn</text>
+- <text lang="DE">Zubehör / Konfiguration</text>
+- <text lang="IS">Uppsetning</text>
+- <text lang="NL">Configuratie</text>
+- <text lang="PT">UtensĂ­lios</text>
+- <text lang="SV">Verktyg / Inställningar</text>
+- <text lang="JA">設定</text>
+- <text lang="FI">Oheis/Asetukset</text>
+- <text lang="ZH_TW">工具/設定</text>
+- <text lang="SL">Nastavitve</text>
+- <text lang="ET">Utiliidid / sätted</text>
+- <text lang="RU">Утилиты / НаŃтройки</text>
+- <text lang="AR">تضبيطات</text>
+- <text lang="PL">Narzędzia / ustawienia</text>
+- <text lang="HE">עזרים / הגדרות</text>
+- <text lang="HU">Eszközök / Beállítások</text>
+- <alttext lang="DE">Verschiedenes</alttext>
+- <alttext lang="SV">Inställningar</alttext>
+- <alttext lang="ET">Sätted</alttext>
+- <alttext lang="RU">НаŃтройки</alttext>
+- <alttext lang="AR">تضبيطات</alttext>
+- <description>Configure MythTV and plugins</description>
+- <description lang="DE">MythTV und Plugins konfigurieren</description>
+- <action>MENU util_menu.xml</action>
++ <text>Service Menu</text>
++ <description>LinHES Service Menu</description>
++ <action>MENU linhes.xml</action>
+ </button>
+
+ <!-- <button>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml
new file mode 100644
index 0000000..5914b33
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>BACKUP</type>
+ <text>Do you wish to backup?</text>
+ <action>NONE</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>Yes</text>
+ <action>EXEC sudo /usr/LH/bin/mythbackup</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>No</text>
+ <action>UPMENU</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml
new file mode 100644
index 0000000..8f5c285
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>RESTORE</type>
+ <text>Do you wish to restore?</text>
+ <action>NONE</action>
+ </button>
+
+ <button>
+ <type>RESTORE</type>
+ <text>Yes</text>
+ <action>EXEC sudo /usr/LH/bin/mythrestore</action>
+ </button>
+
+ <button>
+ <type>BACKUP</type>
+ <text>No</text>
+ <action>UPMENU</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch
new file mode 100644
index 0000000..b4b1411
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch
@@ -0,0 +1,16 @@
+--- optical_menu.xml.orig 2009-03-23 20:05:43.000000000 +0000
++++ optical_menu.xml 2009-03-23 20:10:02.000000000 +0000
+@@ -134,6 +134,13 @@
+ </button>
+
+ <button>
++ <type>DVD_RIP</type>
++ <text>Import video files from DVD</text>
++ <description>Import video files from a data DVD</description>
++ <action>EXEC /usr/LH/bin/importfiles.sh</action>
++ </button>
++
++ <button>
+ <type>EJECT</type>
+ <text>Eject media</text>
+ <text lang="IT">Espelli Media</text>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh
new file mode 100755
index 0000000..34d8b8c
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+for i in *.xml
+do
+ diff -u $i.orig $i > ../$i.patch
+done
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml
new file mode 100644
index 0000000..f56bb6f
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml
@@ -0,0 +1,111 @@
+<mythmenu name="MAIN">
+
+ <button>
+ <type>SETUP_GENERAL</type>
+ <text>1. General</text>
+ <text lang="IT">1. Generale</text>
+ <text lang="PT">1. Geral</text>
+ <text lang="SV">1. Generellt</text>
+ <text lang="JA">1. 一č¬</text>
+ <text lang="DE">1. Allgemeines</text>
+ <text lang="FI">1. Yleiset</text>
+ <text lang="FR">1. Général</text>
+ <text lang="SI">1. Splošno</text>
+ <text lang="ET">1. Ăśldine</text>
+ <text lang="NB">1 Generelt</text>
+ <text lang="DK">1. Generelt</text>
+ <text lang="ES">1. General</text>
+ <text lang="CZ">1. ObecnĂ˝</text>
+ <text lang="RU">1. Общие</text>
+ <action>GENERAL</action>
+ </button>
+
+ <button>
+ <type>SETUP_CAPTURE_CARDS</type>
+ <text>2. Capture cards</text>
+ <text lang="IT">2. Schede di Acquisizione</text>
+ <text lang="PT">2. Placas de Captura</text>
+ <text lang="SV">2. TV-kort</text>
+ <text lang="JA">2. ă‚­ăŁă—ăăŁă‚«ăĽă‰</text>
+ <text lang="DE">2. TV-Karten</text>
+ <text lang="FI">2. TV-kortit</text>
+ <text lang="FR">2. Cartes d'acquisition</text>
+ <text lang="SI">2. Kartice za zajem</text>
+ <text lang="ET">2. TV-kaardid</text>
+ <text lang="NB">2 TV-kort</text>
+ <text lang="DK">2. TV-kort</text>
+ <text lang="ES">2. Capturadoras</text>
+ <text lang="CZ">2. Zachytávací karty</text>
+ <text lang="RU">2. Карты захвата</text>
+ <action>CAPTURE CARDS</action>
+ </button>
+
+ <button>
+ <type>SETUP_VIDEO_SOURCES</type>
+ <text>3. Video sources</text>
+ <text lang="IT">3. Fonte Video</text>
+ <text lang="PT">3. Fontes de VĂ­deo</text>
+ <text lang="SV">3. Videokällor</text>
+ <text lang="JA">3. ă“ă‡ă‚Şă‚˝ăĽă‚ą</text>
+ <text lang="DE">3. Videoquellen</text>
+ <text lang="FI">3. Kuvanlähteet</text>
+ <text lang="FR">3. Sources vidéo</text>
+ <text lang="SI">3. Video viri</text>
+ <text lang="ET">3. Videosisendid</text>
+ <text lang="NB">3 Videokilder</text>
+ <text lang="DK">3. Videokilder</text>
+ <text lang="ES">3. Fuentes de VĂ­deo</text>
+ <text lang="CZ">3. Zdroje obrazu</text>
+ <text lang="RU">3. Видео иŃточники</text>
+ <action>VIDEO SOURCES</action>
+ </button>
+
+ <button>
+ <type>SETUP_INPUT_CONNECTIONS</type>
+ <text>4. Input connections</text>
+ <text lang="IT">4. Connessioni di Ingresso</text>
+ <text lang="PT">4. Ligações de Entrada</text>
+ <text lang="SV">4. Anslutningar</text>
+ <text lang="JA">4. 入力ă¨ă‚˝ăĽă‚ąă®ćŽĄç¶š</text>
+ <text lang="DE">4. VerknĂĽpfungen</text>
+ <text lang="FI">4. Sisääntuloasetukset</text>
+ <text lang="FR">4. Entrées Vidéos</text>
+ <text lang="SI">4. Vhodne povezave</text>
+ <text lang="ET">4. Sisendite ĂĽhendused</text>
+ <text lang="NB">4 Inndata</text>
+ <text lang="DK">4. Indgange</text>
+ <text lang="ES">4. Conexiones</text>
+ <text lang="CZ">4. Připojení vstupů</text>
+ <text lang="RU">4. Соединение входов</text>
+ <action>CARD INPUTS</action>
+ </button>
+
+ <button>
+ <type>SETUP_CHANNEL_EDITOR</type>
+ <text>5. Channel Editor</text>
+ <text lang="IT">5. Modifica Canali</text>
+ <text lang="SV">5. Kanaleditor</text>
+ <text lang="JA">5. ăăŁăłăŤă«č¨­ĺ®š</text>
+ <text lang="DE">5. Sender bearbeiten</text>
+ <text lang="FI">5. Kanavanviritys</text>
+ <text lang="FR">5. Editeur de chaînes</text>
+ <text lang="SI">5. Urejanje kanalov</text>
+ <text lang="ET">5. Kanaliredaktor</text>
+ <text lang="NB">5 Kanalredigerer</text>
+ <text lang="DK">5. Kanal opsætning</text>
+ <text lang="ES">5. Editor Canales</text>
+ <text lang="CZ">5. Editor kanálů</text>
+ <text lang="RU">5. Редактор каналов</text>
+ <action>CHANNEL EDITOR</action>
+ </button>
+
+ <button>
+ <type>SETUP_STORAGE_GROUPS</type>
+ <text>6. Storage Directories</text>
+ <text lang="IT">6. Cartelle</text>
+ <text lang="FI">Tallennusryhmät</text>
+ <text lang="SV">Lagringsgrupper</text>
+ <action>STORAGE GROUPS</action>
+ </button>
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml
new file mode 100644
index 0000000..e317b36
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml
@@ -0,0 +1,419 @@
+<mythmenu name="SIRIUS">
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Hits 1</text>
+ <action>EXEC /usr/bin/cliSipie siriushits1</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>StarLite</text>
+ <action>EXEC /usr/bin/cliSipie starlite</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Love</text>
+ <action>EXEC /usr/bin/cliSipie siriuslove</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Movin EZ</text>
+ <action>EXEC /usr/bin/cliSipie movineasy</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Gold</text>
+ <action>EXEC /usr/bin/cliSipie siriusgold</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>'60s Vibrations</text>
+ <action>EXEC /usr/bin/cliSipie 60svibrations</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Totally '70s</text>
+ <action>EXEC /usr/bin/cliSipie totally70s</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Big '80s</text>
+ <action>EXEC /usr/bin/cliSipie big80s</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>ThePulse</text>
+ <action>EXEC /usr/bin/cliSipie thepulse</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Bridge</text>
+ <action>EXEC /usr/bin/cliSipie thebridge</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>BBC Radio 1</text>
+ <action>EXEC /usr/bin/cliSipie bbcradio1</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Super Shuffle</text>
+ <action>EXEC /usr/bin/cliSipie supershuffle</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Elvis Radio</text>
+ <action>EXEC /usr/bin/cliSipie elvisradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Classic Vinyl</text>
+ <action>EXEC /usr/bin/cliSipie classicvinyl</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Classic Rewind</text>
+ <action>EXEC /usr/bin/cliSipie classicrewind</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>TheVault</text>
+ <action>EXEC /usr/bin/cliSipie thevault</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Jam_ON</text>
+ <action>EXEC /usr/bin/cliSipie jamon</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Spectrum</text>
+ <action>EXEC /usr/bin/cliSipie thespectrum</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>BuzzSaw</text>
+ <action>EXEC /usr/bin/cliSipie buzzsaw</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Octane</text>
+ <action>EXEC /usr/bin/cliSipie octane</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Alt Nation</text>
+ <action>EXEC /usr/bin/cliSipie altnation</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>1st Wave</text>
+ <action>EXEC /usr/bin/cliSipie firstwave</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hair Nation</text>
+ <action>EXEC /usr/bin/cliSipie hairnation</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>'90s Alternative</text>
+ <action>EXEC /usr/bin/cliSipie 90salternative</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Garage</text>
+ <action>EXEC /usr/bin/cliSipie undergroundgarage</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Left of Center</text>
+ <action>EXEC /usr/bin/cliSipie leftofcenter</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hard Attack</text>
+ <action>EXEC /usr/bin/cliSipie hardattack</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Faction</text>
+ <action>EXEC /usr/bin/cliSipie faction</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Punk</text>
+ <action>EXEC /usr/bin/cliSipie punk</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>The Coffee House</text>
+ <action>EXEC /usr/bin/cliSipie coffeehouse</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Margaritaville</text>
+ <action>EXEC /usr/bin/cliSipie radiomargaritaville</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Disorder</text>
+ <action>EXEC /usr/bin/cliSipie siriusdisorder</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Reggae</text>
+ <action>EXEC /usr/bin/cliSipie reggaerhythms</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Area 33</text>
+ <action>EXEC /usr/bin/cliSipie area33</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Boombox</text>
+ <action>EXEC /usr/bin/cliSipie boombox</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Chill</text>
+ <action>EXEC /usr/bin/cliSipie chill</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>The Beat</text>
+ <action>EXEC /usr/bin/cliSipie thebeat</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Strobe</text>
+ <action>EXEC /usr/bin/cliSipie thestrobe</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hip-Hop Nation</text>
+ <action>EXEC /usr/bin/cliSipie hiphopnation</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>BackSpin</text>
+ <action>EXEC /usr/bin/cliSipie backspin</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Shade 45</text>
+ <action>EXEC /usr/bin/cliSipie shade45</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Hot Jamz</text>
+ <action>EXEC /usr/bin/cliSipie hotjamz</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Heart &amp; Soul</text>
+ <action>EXEC /usr/bin/cliSipie heartandsoul</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>SoulTown</text>
+ <action>EXEC /usr/bin/cliSipie soultown</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>New Country</text>
+ <action>EXEC /usr/bin/cliSipie newcountry</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Prime Country</text>
+ <action>EXEC /usr/bin/cliSipie primecountry</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Roadhouse</text>
+ <action>EXEC /usr/bin/cliSipie theroadhouse</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Outlaw Country</text>
+ <action>EXEC /usr/bin/cliSipie outlawcountry</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Bluegrass</text>
+ <action>EXEC /usr/bin/cliSipie bluegrass</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Spirit</text>
+ <action>EXEC /usr/bin/cliSipie spirit</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Praise</text>
+ <action>EXEC /usr/bin/cliSipie praise</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Planet Jazz</text>
+ <action>EXEC /usr/bin/cliSipie planetjazz</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>JazzCafe</text>
+ <action>EXEC /usr/bin/cliSipie jazzcafe</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>PureJazz</text>
+ <action>EXEC /usr/bin/cliSipie purejazz</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Spa 73</text>
+ <action>EXEC /usr/bin/cliSipie spa73</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Blues</text>
+ <action>EXEC /usr/bin/cliSipie siriusblues</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Siriusly Sinatra</text>
+ <action>EXEC /usr/bin/cliSipie siriuslysinatra</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Broadway's Best</text>
+ <action>EXEC /usr/bin/cliSipie broadwaysbest</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Symphony Hall</text>
+ <action>EXEC /usr/bin/cliSipie symphonyhall</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Met Opera Radio</text>
+ <action>EXEC /usr/bin/cliSipie metropolitanopera</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Pops</text>
+ <action>EXEC /usr/bin/cliSipie siriuspops</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Universo Latino</text>
+ <action>EXEC /usr/bin/cliSipie universolatino</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Rumbon</text>
+ <action>EXEC /usr/bin/cliSipie rumbon</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Martha Stewart</text>
+ <action>EXEC /usr/bin/cliSipie marthastewartlivingradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius Stars</text>
+ <action>EXEC /usr/bin/cliSipie siriusstars</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>OutQ Gay Radio</text>
+ <action>EXEC /usr/bin/cliSipie siriusoutq</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Patriot</text>
+ <action>EXEC /usr/bin/cliSipie siriuspatriot</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Left</text>
+ <action>EXEC /usr/bin/cliSipie siriusleft</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>CNN</text>
+ <action>EXEC /usr/bin/cliSipie cnn</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>wrn</text>
+ <action>EXEC /usr/bin/cliSipie wrn</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Blue Collar Comedy</text>
+ <action>EXEC /usr/bin/cliSipie bluecollarcomedy</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Raw Dog Comedy</text>
+ <action>EXEC /usr/bin/cliSipie rawdog</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Laugh Break Comedy</text>
+ <action>EXEC /usr/bin/cliSipie laughbreak</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>thefoxxhole</text>
+ <action>EXEC /usr/bin/cliSipie thefoxxhole</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>lime</text>
+ <action>EXEC /usr/bin/cliSipie lime</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Kids Stuff</text>
+ <action>EXEC /usr/bin/cliSipie kidsstuff</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Catholic Channel</text>
+ <action>EXEC /usr/bin/cliSipie thecatholicchannel</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>EWTN</text>
+ <action>EXEC /usr/bin/cliSipie ewtnglobal</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>christiantalk</text>
+ <action>EXEC /usr/bin/cliSipie christiantalk</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Sirius NFL Radio</text>
+ <action>EXEC /usr/bin/cliSipie siriusnflradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Maxim Radio</text>
+ <action>EXEC /usr/bin/cliSipie maximradio</action>
+ </button>
+ <button>
+ <type>MUSIC</type>
+ <text>Cosmo Radio</text>
+ <action>EXEC /usr/bin/cliSipie cosmopolitanradio</action>
+ </button>
+ <button>
+ <type>TV_DELETE</type>
+ <text>Stop Listening</text>
+ <action>EXEC /usr/bin/sipie_kill</action>
+ </button>
+
+</mythmenu>
+
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml
new file mode 100644
index 0000000..5b28833
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Check for updates?</text>
+ <action>NONE</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Yes</text>
+ <action>EXEC sudo /usr/LH/bin/linhes_update.sh</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>No</text>
+ <action>UPMENU</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml
new file mode 100644
index 0000000..2ab82ea
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml
@@ -0,0 +1,26 @@
+<mythmenu name="LinHES">
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Perform updates?</text>
+ <action>NONE</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>Yes</text>
+ <action>EXEC sudo /usr/LH/bin/linhes_update2.sh</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>No</text>
+ <action>UPMENU</action>
+ </button>
+
+ <button>
+ <type>UPGRADE</type>
+ <text>View files to be upgraded.</text>
+ <action>EXEC sudo /usr/LH/bin/linhes_update3.sh</action>
+ </button>
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch
new file mode 100644
index 0000000..3a1072a
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch
@@ -0,0 +1,16 @@
+--- util_menu.xml.orig 2009-03-23 18:43:18.000000000 +0000
++++ util_menu.xml 2009-03-23 20:16:56.000000000 +0000
+@@ -56,6 +56,13 @@
+ </button>
+
+ <button>
++ <type>VIDEO_SCREENSHOOTER</type>
++ <text>Thumbnail Generator</text>
++ <description>Generate thumbnail images for videos</description>
++ <action>EXEC /usr/LH/bin/shootscreens-mythtv.sh</action>
++ </button>
++
++ <button>
+ <type>SETUP_KEYS</type>
+ <text>Edit Keys</text>
+ <text lang="IT">Modifica Tasti</text>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml
new file mode 100644
index 0000000..6b26d11
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml
@@ -0,0 +1,574 @@
+<!-- Current as of April 25, 2007 -->
+<mythmenu name="XM">
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '40s</text>
+ <action>EXEC /usr/bin/xamp kill 4</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '50s</text>
+ <action>EXEC /usr/bin/xamp kill 5</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '60s</text>
+ <action>EXEC /usr/bin/xamp kill 6</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '70s</text>
+ <action>EXEC /usr/bin/xamp kill 7</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '80s</text>
+ <action>EXEC /usr/bin/xamp kill 8</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The '90s</text>
+ <action>EXEC /usr/bin/xamp kill 9</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>America</text>
+ <action>EXEC /usr/bin/xamp kill 10</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>X Country</text>
+ <action>EXEC /usr/bin/xamp kill 12</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Willie's Place</text>
+ <action>EXEC /usr/bin/xamp kill 13</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Bluegrass Junction</text>
+ <action>EXEC /usr/bin/xamp kill 14</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Village</text>
+ <action>EXEC /usr/bin/xamp kill 15</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Highway 16</text>
+ <action>EXEC /usr/bin/xamp kill 16</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>US Country</text>
+ <action>EXEC /usr/bin/xamp kill 17</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>20 on 20</text>
+ <action>EXEC /usr/bin/xamp kill 20</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Heart</text>
+ <action>EXEC /usr/bin/xamp kill 23</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Blend</text>
+ <action>EXEC /usr/bin/xamp kill 25</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Flight 26</text>
+ <action>EXEC /usr/bin/xamp kill 26</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Cinemagic</text>
+ <action>EXEC /usr/bin/xamp kill 27</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>On Broadway</text>
+ <action>EXEC /usr/bin/xamp kill 28</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>U-Pop</text>
+ <action>EXEC /usr/bin/xamp kill 29</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Hitlist</text>
+ <action>EXEC /usr/bin/xamp kill 30</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Torch</text>
+ <action>EXEC /usr/bin/xamp kill 31</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Message</text>
+ <action>EXEC /usr/bin/xamp kill 32</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Spirit</text>
+ <action>EXEC /usr/bin/xamp kill 33</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>enLighten</text>
+ <action>EXEC /usr/bin/xamp kill 34</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Deep Tracks</text>
+ <action>EXEC /usr/bin/xamp kill 40</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Boneyard</text>
+ <action>EXEC /usr/bin/xamp kill 41</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Liquid Metal</text>
+ <action>EXEC /usr/bin/xamp kill 42</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XMU</text>
+ <action>EXEC /usr/bin/xamp kill 43</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fred</text>
+ <action>EXEC /usr/bin/xamp kill 44</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Cafe</text>
+ <action>EXEC /usr/bin/xamp kill 45</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Top Tracks</text>
+ <action>EXEC /usr/bin/xamp kill 46</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Ethel</text>
+ <action>EXEC /usr/bin/xamp kill 47</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Squizz</text>
+ <action>EXEC /usr/bin/xamp kill 48</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Big Tracks</text>
+ <action>EXEC /usr/bin/xamp kill 49</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Loft</text>
+ <action>EXEC /usr/bin/xamp kill 50</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Music Lab</text>
+ <action>EXEC /usr/bin/xamp kill 51</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Verge</text>
+ <action>EXEC /usr/bin/xamp kill 52</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fungus</text>
+ <action>EXEC /usr/bin/xamp kill 53</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Lucy</text>
+ <action>EXEC /usr/bin/xamp kill 54</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Soul Street</text>
+ <action>EXEC /usr/bin/xamp kill 60</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Flow</text>
+ <action>EXEC /usr/bin/xamp kill 61</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Suite 62</text>
+ <action>EXEC /usr/bin/xamp kill 62</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Groove</text>
+ <action>EXEC /usr/bin/xamp kill 64</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Rhyme</text>
+ <action>EXEC /usr/bin/xamp kill 65</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>RAW</text>
+ <action>EXEC /usr/bin/xamp kill 66</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The City</text>
+ <action>EXEC /usr/bin/xamp kill 67</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Heat</text>
+ <action>EXEC /usr/bin/xamp kill 68</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Real Jazz</text>
+ <action>EXEC /usr/bin/xamp kill 70</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Watercolors</text>
+ <action>EXEC /usr/bin/xamp kill 71</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Beyond Jazz</text>
+ <action>EXEC /usr/bin/xamp kill 72</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>High Standards</text>
+ <action>EXEC /usr/bin/xamp kill 73</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Bluesville</text>
+ <action>EXEC /usr/bin/xamp kill 74</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Hear Music</text>
+ <action>EXEC /usr/bin/xamp kill 75</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fine Tuning</text>
+ <action>EXEC /usr/bin/xamp kill 76</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Audio Visions</text>
+ <action>EXEC /usr/bin/xamp kill 77</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Escape</text>
+ <action>EXEC /usr/bin/xamp kill 78</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>On The Rocks</text>
+ <action>EXEC /usr/bin/xamp kill 79</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Move</text>
+ <action>EXEC /usr/bin/xamp kill 80</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>BPM</text>
+ <action>EXEC /usr/bin/xamp kill 81</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The System</text>
+ <action>EXEC /usr/bin/xamp kill 82</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Chrome</text>
+ <action>EXEC /usr/bin/xamp kill 83</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM-Chill</text>
+ <action>EXEC /usr/bin/xamp kill 84</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Fuego</text>
+ <action>EXEC /usr/bin/xamp kill 90</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Viva</text>
+ <action>EXEC /usr/bin/xamp kill 91</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Aguila</text>
+ <action>EXEC /usr/bin/xamp kill 92</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Caliente</text>
+ <action>EXEC /usr/bin/xamp kill 94</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Luna</text>
+ <action>EXEC /usr/bin/xamp kill 95</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Air Musique</text>
+ <action>EXEC /usr/bin/xamp kill 100</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Joint</text>
+ <action>EXEC /usr/bin/xamp kill 101</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Sur La Route</text>
+ <action>EXEC /usr/bin/xamp kill 102</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>World Zone</text>
+ <action>EXEC /usr/bin/xamp kill 103</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Ngoma</text>
+ <action>EXEC /usr/bin/xamp kill 104</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Classics</text>
+ <action>EXEC /usr/bin/xamp kill 110</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Vox</text>
+ <action>EXEC /usr/bin/xamp kill 112</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Pops</text>
+ <action>EXEC /usr/bin/xamp kill 113</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Kids</text>
+ <action>EXEC /usr/bin/xamp kill 116</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Bob Edwards Show</text>
+ <action>EXEC /usr/bin/xamp kill 133</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>XM Comedy</text>
+ <action>EXEC /usr/bin/xamp kill 150</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Laugh USA</text>
+ <action>EXEC /usr/bin/xamp kill 151</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Special X</text>
+ <action>EXEC /usr/bin/xamp kill 154</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Agenda</text>
+ <action>EXEC /usr/bin/xamp kill 134</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Oprah and Friends</text>
+ <action>EXEC /usr/bin/xamp kill 156</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>The Virus</text>
+ <action>EXEC /usr/bin/xamp kill 202</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>1 Hit Wonders</text>
+ <action>EXEC /usr/bin/xamp kill 300</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Metalcore</text>
+ <action>EXEC /usr/bin/xamp kill 301</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Indie First</text>
+ <action>EXEC /usr/bin/xamp kill 302</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Late Night Mix</text>
+ <action>EXEC /usr/bin/xamp kill 303</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Sessions@AOL</text>
+ <action>EXEC /usr/bin/xamp kill 304</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>Shuffle</text>
+ <action>EXEC /usr/bin/xamp kill 305</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Rock First</text>
+ <action>EXEC /usr/bin/xamp kill 306</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Country First</text>
+ <action>EXEC /usr/bin/xamp kill 307</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Hip Hop First</text>
+ <action>EXEC /usr/bin/xamp kill 308</action>
+ </button>
+
+ <button>
+ <type>MUSIC</type>
+ <text>New Pop First</text>
+ <action>EXEC /usr/bin/xamp kill 309</action>
+ </button>
+
+ <button>
+ <type>TV_DELETE</type>
+ <text>Stop Listening</text>
+ <action>EXEC /usr/bin/xamp kill</action>
+ </button>
+
+</mythmenu>
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/myth.sh b/abs/not_built/core/mythtv/trunk/mythtv/myth.sh
new file mode 100755
index 0000000..fb7122c
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/myth.sh
@@ -0,0 +1,4 @@
+export PATH=$PATH:/usr/local/bin
+# set core file size to 0
+ulimit -c 0
+export MALLOC_CHECK_=0 \ No newline at end of file
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythbackend b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend
new file mode 100755
index 0000000..93773a2
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/mythbackend`
+case "$1" in
+ start)
+ stat_busy "Starting MythTV Backend"
+ [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit
+ [ -z "$PID" ] && /usr/bin/mythbackend -d -l /var/log/mythbackend.log -v important
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/mythbackend.pid
+ add_daemon mythbackend
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MythTV Backend"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mythbackend
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1s
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr
new file mode 100644
index 0000000..4f218bc
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr
@@ -0,0 +1,9 @@
+/var/log/mythtv/mythbackend.log {
+ copytruncate
+ daily
+ size 10M
+ missingok
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh
new file mode 100755
index 0000000..e7a7b70
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+#
+# /etc/rc.d/init.d/mythbackend
+#
+# Starts the mythbackend as a daemon
+#
+# chkconfig: 345 90 10
+# description: Starts the mythbackend process as a daemon after the XWindows \
+# system is started, in runlevel 5. This allows scheduled \
+# recordings to occur without manual intervention.
+# processname: mythbackend
+
+# Copyright (c) by Michael Thomson <linux at m-thomson dot net>
+# With thanks to Stu Tomlinson <stu at nosnilmot dot com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+# Default values to use if none are supplied in the config file.
+# User who should start the mythbackend processes
+MBE_USER="root"
+# Directory holding the mythbackend binary
+MBE_LOCATION="/usr/local/bin/"
+# Name of mythbackend binary
+MBE_PROG="mythbackend"
+# Full path to mythbackend log file
+MBE_LOGFILE="/var/log/mythtv/mythbackend.log"
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source config file if available
+if [ -f "/etc/sysconfig/mythbackend" ]; then
+ . /etc/sysconfig/mythbackend
+fi
+
+test -x ${MBE_LOCATION}${MBE_PROG} || exit 0
+
+RETVAL=0
+
+#
+# See how we were called.
+#
+
+start() {
+ # Check if mythbackend is already running
+ if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then
+ echo -n "Starting ${MBE_PROG}: "
+ # /usr/local/bin/mythbackend -d -l /some/log/file
+ #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+ ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG}
+ echo
+ fi
+ return $RETVAL
+}
+
+stop() {
+ echo -n "Stopping ${MBE_PROG}: "
+ killproc ${MBE_LOCATION}${MBE_PROG}
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG}
+ echo
+ return $RETVAL
+}
+
+
+restart() {
+ stop
+ start
+}
+
+reload() {
+ restart
+}
+
+status_at() {
+ status ${MBE_LOCATION}${MBE_PROG}
+}
+
+case "$1" in
+start)
+ start
+ ;;
+stop)
+ stop
+ ;;
+reload|restart)
+ restart
+ ;;
+condrestart)
+ if [ -f /var/lock/subsys/${MBE_PROG} ]; then
+ restart
+ fi
+ ;;
+status)
+ status_at
+ ;;
+*)
+ echo "Usage: $0 {start|stop|restart|condrestart|status}"
+ exit 1
+esac
+
+exit $?
+exit $RETVAL
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr b/abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr
new file mode 100644
index 0000000..1580533
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr
@@ -0,0 +1,9 @@
+/var/log/mythtv/mythfrontend.log {
+ copytruncate
+ daily
+ size 10M
+ missingok
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythtv.install b/abs/not_built/core/mythtv/trunk/mythtv/mythtv.install
new file mode 100755
index 0000000..87507a5
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/mythtv.install
@@ -0,0 +1,30 @@
+# arg 1: the new package version
+post_install() {
+ if [ ! -d /var/log/mythtv ]
+ then
+ mkdir -p /var/log/mythv
+ chown -R mythtv /var/log/mythtv
+ echo "---" > /var/log/mythtv/mythbackend.log
+ chown mythtv /var/log/mythtv/mythbackend.log
+
+ fi
+}
+
+post_upgrade() {
+ if [ ! -d /var/log/mythtv ]
+ then
+ mkdir -p /var/log/mythv
+ chown -R mythtv /var/log/mythtv
+ fi
+}
+
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/pretty b/abs/not_built/core/mythtv/trunk/mythtv/pretty
new file mode 100755
index 0000000..7e0ab21
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/pretty
@@ -0,0 +1,9 @@
+#!/bin/bash
+if [ -f /usr/share/mythtv/contrib/user_jobs/mythlink.pl ]
+then
+ su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythlink.pl --link /myth/pretty"
+elif [ -f /usr/share/mythtv/contrib/user_jobs/mythrename.pl ]
+then
+ su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythrename.pl --link /myth/pretty"
+fi
+
diff --git a/abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch b/abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch
new file mode 100644
index 0000000..0fc452a
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch
@@ -0,0 +1,30 @@
+Index: programs/mythfrontend/networkcontrol.cpp
+===================================================================
+--- programs/mythfrontend/networkcontrol.cpp (revision 19291)
++++ programs/mythfrontend/networkcontrol.cpp (working copy)
+@@ -83,6 +83,7 @@
+ jumpMap["zoneminderliveview"] = "ZoneMinder Live View";
+ jumpMap["zoneminderevents"] = "ZoneMinder Events";
+ jumpMap["snapshot"] = "ScreenShot";
++ jumpMap["mythsmolt"] = "MythSmolt";
+
+ // These jump point names match the (lowercased) locations from gContext
+ jumpMap["channelrecpriority"] = "Channel Recording Priorities";
+@@ -191,7 +192,7 @@
+ pthread_create(&command_thread, NULL, CommandThread, this);
+
+ gContext->addListener(this);
+-
++
+ connect(this, SIGNAL(newConnection()), this, SLOT(newConnection()));
+ }
+
+@@ -307,7 +308,7 @@
+ cs = new QTextStream(s);
+ cs->setCodec("UTF-8");
+ }
+-
++
+ if (client)
+ {
+ closedOldConn = true;
diff --git a/abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD
new file mode 100644
index 0000000..951a427
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythvideo-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Video playback and browsing plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'mplayer' 'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
+conflicts=('mythvideo')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythvideo || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD
new file mode 100644
index 0000000..1bc8430
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythweather-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Weather checking plugin for MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'wget')
+conflicts=('mythweather')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythweather || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD
new file mode 100644
index 0000000..dedfcf5
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD
@@ -0,0 +1,50 @@
+pkgname=mythweb-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Web interface for MythTV's backend"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'lighttpd' 'php' 'local-website')
+conflicts=('mythweb')
+groups=('mythtv-extras-svn')
+install=mythweb.install
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+DOCROOT=/data/srv/httpd/htdocs/mythweb
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ mkdir -p $startdir/pkg/$DOCROOT/{image_cache,php_sessions}
+
+# cp -r $startdir/src/mythplugins/mythweb/* $startdir/pkg/$DOCROOT
+# cp $startdir/src/mythplugins-$pkgver/mythweb/data/.htaccess $startdir/pkg/$DOCROOT
+ rsync -arp --exclude .svn --delete-excluded $startdir/src/mythplugins/mythweb/* $startdir/pkg/$DOCROOT
+ rm $startdir/pkg/$DOCROOT/README
+ chown -R http:users $startdir/pkg/$DOCROOT
+ chmod g+rw $startdir/pkg/$DOCROOT/{image_cache,php_sessions,data}
+
+}
diff --git a/abs/not_built/core/mythtv/trunk/mythweb/mythweb.install b/abs/not_built/core/mythtv/trunk/mythweb/mythweb.install
new file mode 100644
index 0000000..470cbd1
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythweb/mythweb.install
@@ -0,0 +1,10 @@
+post_install() {
+ echo "You must create a symlink from /home/httpd/html/mythweb/video_dir"
+ echo "to your MythTV recordings directory. Don't forget to change the"
+ echo "permissions so that the webserver can read those files and create"
+ echo "thumbnails."
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD
new file mode 100644
index 0000000..038007b
--- /dev/null
+++ b/abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -0,0 +1,51 @@
+pkgname=mythzoneminder-svn
+pkgver=23790
+pkgrel=1
+pkgdesc="Integrates ZoneMinder into MythTV"
+url="http://www.mythtv.org"
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'zoneminder=1.23.3')
+conflicts=('mythzoneminder')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn revert -R $_svnmod
+
+ cd $startdir/src/$_svnmod
+
+ echo "--------------------------applying patches----------------------------------------------------"
+ for i in `echo ${patches[@]:0} `
+ do
+ echo applying $i
+ echo "-----------------------------"
+ patch -Np0 -i ${startdir}/src/$i || return 1
+ done
+ echo "--------------------------done applying patches-----------------------------------------------"
+
+ [ "$CARCH" = "i686" ] && ARCH="i686"
+ [ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+ # clean up
+ make distclean
+
+ # configure
+ ./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+ --enable-mythzoneminder || return 1
+
+ # build and install
+ . /etc/profile
+ make || return 1
+ make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/core/ndiswrapper-utils/PKGBUILD b/abs/not_built/core/ndiswrapper-utils/PKGBUILD
new file mode 100644
index 0000000..17126fb
--- /dev/null
+++ b/abs/not_built/core/ndiswrapper-utils/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 77959 2010-04-19 07:17:40Z allan $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ndiswrapper-utils
+pkgver=1.56
+pkgrel=2
+pkgdesc="Binaries for ndiswrapper module"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://ndiswrapper.sourceforge.net"
+depends=('wireless_tools' 'glibc' 'perl')
+replaces=('ndiswrapper-bin')
+conflicts=('ndiswrapper-bin')
+source=(http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-$pkgver.tar.gz)
+md5sums=('1431f7ed5f8e92e752d330bbb3aed333')
+
+build()
+{
+ cd $srcdir/ndiswrapper-$pkgver/utils
+ make || return 1
+}
+
+package() {
+ cd $srcdir/ndiswrapper-$pkgver/utils
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/abs/not_built/core/ndiswrapper/PKGBUILD b/abs/not_built/core/ndiswrapper/PKGBUILD
new file mode 100644
index 0000000..9bc90fd
--- /dev/null
+++ b/abs/not_built/core/ndiswrapper/PKGBUILD
@@ -0,0 +1,42 @@
+#$Id: PKGBUILD 105330 2011-01-07 20:49:19Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ndiswrapper
+_kernver=2.6.39-LinHES
+pkgver=1.56
+pkgrel=8
+pkgdesc="Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel."
+license=('GPL')
+arch=(i686 x86_64)
+url="http://ndiswrapper.sourceforge.net"
+install="ndiswrapper.install"
+depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.39' 'kernel26<2.6.40')
+makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40')
+source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz
+ kernel-2.6.35.patch
+ kernel-2.6.36.patch
+ ndiswrapper_kernel-2.6.38.patch)
+build()
+{
+ cd $srcdir/ndiswrapper-$pkgver/driver
+ patch -Np2 -i $startdir/kernel-2.6.35.patch
+ patch -Np2 -i $startdir/kernel-2.6.36.patch
+ patch -Np2 -i $startdir/ndiswrapper_kernel-2.6.38.patch
+ make KVERS=$_kernver
+ make DESTDIR=$pkgdir KVERS=$_kernver install
+ rm $pkgdir/lib/modules/$_kernver/modules.* #wtf?
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+ # move it to correct kernel directory
+ mkdir -p $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper
+ mv $pkgdir/lib/modules/$_kernver/misc/* $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/
+ rm -r $pkgdir/lib/modules/$_kernver/misc/
+}
+
+md5sums=('1431f7ed5f8e92e752d330bbb3aed333'
+ '0a03d613b1fd545a75c5dd1a7c2aaec4'
+ 'cc16ed13449f17e90865df688b180b2c')
+md5sums=('1431f7ed5f8e92e752d330bbb3aed333'
+ '0a03d613b1fd545a75c5dd1a7c2aaec4'
+ 'cc16ed13449f17e90865df688b180b2c'
+ '2499a87276ae0c8ce39bea6ef942d926')
diff --git a/abs/not_built/core/ndiswrapper/kernel-2.6.35.patch b/abs/not_built/core/ndiswrapper/kernel-2.6.35.patch
new file mode 100644
index 0000000..1cfdab2
--- /dev/null
+++ b/abs/not_built/core/ndiswrapper/kernel-2.6.35.patch
@@ -0,0 +1,98 @@
+diff -uNr ndiswrapper-1.56.old/driver/usb.c ndiswrapper-1.56/driver/usb.c
+--- ndiswrapper-1.56.old/driver/usb.c 2010-02-10 18:09:32.000000000 -0800
++++ ndiswrapper-1.56/driver/usb.c 2010-07-25 02:29:25.442145846 -0700
+@@ -191,9 +191,15 @@
+ if (wrap_urb->flags & WRAP_URB_COPY_BUFFER) {
+ USBTRACE("freeing DMA buffer for URB: %p %p",
+ urb, urb->transfer_buffer);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35)
+ usb_buffer_free(IRP_WRAP_DEVICE(irp)->usb.udev,
++ urb->transfer_buffer_length,
++ urb->transfer_buffer, urb->transfer_dma);
++#else
++ usb_free_coherent(IRP_WRAP_DEVICE(irp)->usb.udev,
+ urb->transfer_buffer_length,
+ urb->transfer_buffer, urb->transfer_dma);
++#endif
+ }
+ if (urb->setup_packet)
+ kfree(urb->setup_packet);
+@@ -303,9 +309,16 @@
+ || PageHighMem(virt_to_page(buf))
+ #endif
+ )) {
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35)
+ urb->transfer_buffer =
+- usb_buffer_alloc(wd->usb.udev, buf_len, alloc_flags,
++ usb_buffer_alloc(wd->usb.udev, buf_len, alloc_flags,
++ &urb->transfer_dma);
++#else
++ urb->transfer_buffer =
++ usb_alloc_coherent(wd->usb.udev, buf_len, alloc_flags,
+ &urb->transfer_dma);
++#endif
+ if (!urb->transfer_buffer) {
+ WARNING("couldn't allocate dma buf");
+ IoAcquireCancelSpinLock(&irp->cancel_irql);
+diff -uNr ndiswrapper-1.56.old/driver/wrapndis.c ndiswrapper-1.56/driver/wrapndis.c
+--- ndiswrapper-1.56.old/driver/wrapndis.c 2010-02-10 18:09:32.000000000 -0800
++++ ndiswrapper-1.56/driver/wrapndis.c 2010-07-25 02:06:13.184631757 -0700
+@@ -936,6 +936,10 @@
+ EXIT2(return);
+ }
+
++#ifndef netdev_mc_count
++#define netdev_mc_count(net_dev) net_dev->mc_count
++#endif
++
+ static void set_multicast_list(struct ndis_device *wnd)
+ {
+ struct net_device *net_dev;
+@@ -950,20 +954,26 @@
+ packet_filter |= NDIS_PACKET_TYPE_PROMISCUOUS |
+ NDIS_PACKET_TYPE_ALL_LOCAL;
+ } else if (net_dev->flags & IFF_ALLMULTI ||
+- net_dev->mc_count > wnd->multicast_size) {
++ netdev_mc_count(net_dev) > wnd->multicast_size) {
+ packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
+ TRACE2("0x%08x", packet_filter);
+- } else if (net_dev->mc_count > 0) {
++ } else if (netdev_mc_count(net_dev) > 0) {
+ int i, size;
+ char *buf;
++#ifndef netdev_for_each_mc_addr
+ struct dev_mc_list *mclist;
+- size = min(wnd->multicast_size, net_dev->mc_count);
+- TRACE2("%d, %d", wnd->multicast_size, net_dev->mc_count);
++#else
++ struct netdev_hw_addr *mclist;
++#endif
++
++ size = min(wnd->multicast_size, netdev_mc_count(net_dev));
++ TRACE2("%d, %d", wnd->multicast_size, netdev_mc_count(net_dev));
+ buf = kmalloc(size * ETH_ALEN, GFP_KERNEL);
+ if (!buf) {
+ WARNING("couldn't allocate memory");
+ EXIT2(return);
+ }
++#ifndef netdev_for_each_mc_addr
+ mclist = net_dev->mc_list;
+ for (i = 0; i < size && mclist; mclist = mclist->next) {
+ if (mclist->dmi_addrlen != ETH_ALEN)
+@@ -972,6 +982,15 @@
+ TRACE2(MACSTRSEP, MAC2STR(mclist->dmi_addr));
+ i++;
+ }
++#else
++ i = 0;
++ netdev_for_each_mc_addr(mclist, net_dev){
++ memcpy(buf + i++ * ETH_ALEN,
++ mclist->addr, ETH_ALEN);
++ TRACE2(MACSTRSEP, MAC2STR(mclist->addr));
++
++ }
++#endif
+ res = mp_set(wnd, OID_802_3_MULTICAST_LIST, buf, i * ETH_ALEN);
+ if (res == NDIS_STATUS_SUCCESS && i > 0)
+ packet_filter |= NDIS_PACKET_TYPE_MULTICAST;
diff --git a/abs/not_built/core/ndiswrapper/kernel-2.6.36.patch b/abs/not_built/core/ndiswrapper/kernel-2.6.36.patch
new file mode 100644
index 0000000..63de303
--- /dev/null
+++ b/abs/not_built/core/ndiswrapper/kernel-2.6.36.patch
@@ -0,0 +1,27 @@
+--- ndiswrapper-1.56.orig/driver/loader.c 2010-02-11 03:09:32.000000000 +0100
++++ ndiswrapper-1.56/driver/loader.c 2010-10-24 01:38:13.000000000 +0200
+@@ -750,13 +750,13 @@
+ }
+
+ /* called with loader_mutex is down */
+-static int wrapper_ioctl(struct inode *inode, struct file *file,
++static long wrapper_unlocked_ioctl(struct file *file,
+ unsigned int cmd, unsigned long arg)
+ {
+ struct load_driver *load_driver;
+ struct load_device load_device;
+ struct load_driver_file load_bin_file;
+- int ret;
++ long ret;
+ void __user *addr = (void __user *)arg;
+
+ ENTER1("cmd: %u", cmd);
+@@ -831,7 +831,7 @@
+
+ static struct file_operations wrapper_fops = {
+ .owner = THIS_MODULE,
+- .ioctl = wrapper_ioctl,
++ .unlocked_ioctl = wrapper_unlocked_ioctl,
+ .release = wrapper_ioctl_release,
+ };
+
diff --git a/abs/not_built/core/ndiswrapper/ndiswrapper.install b/abs/not_built/core/ndiswrapper/ndiswrapper.install
new file mode 100644
index 0000000..a45a459
--- /dev/null
+++ b/abs/not_built/core/ndiswrapper/ndiswrapper.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+post_install()
+{
+ ndiswrapper -m
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade()
+{
+ ndiswrapper -m
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the old package version
+post_remove()
+{
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
diff --git a/abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch b/abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch
new file mode 100644
index 0000000..15c4f42
--- /dev/null
+++ b/abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch
@@ -0,0 +1,24 @@
+--- ndiswrapper-1.56.old/driver/wrapndis.c (revision 2728)
++++ ndiswrapper-1.56/driver/wrapndis.c (revision 2729)
+@@ -13,16 +13,16 @@
+ *
+ */
+
++#include <linux/inetdevice.h>
++#include <linux/ip.h>
++#include <linux/tcp.h>
++#include <linux/udp.h>
++#include <linux/in.h>
+ #include "ndis.h"
+ #include "iw_ndis.h"
+ #include "pnp.h"
+ #include "loader.h"
+ #include "wrapndis.h"
+-#include <linux/inetdevice.h>
+-#include <linux/ip.h>
+-#include <linux/tcp.h>
+-#include <linux/udp.h>
+-#include <linux/in.h>
+ #include "wrapper.h"
+
+ /* Functions callable from the NDIS driver */
diff --git a/abs/not_built/core/netcfg/PKGBUILD b/abs/not_built/core/netcfg/PKGBUILD
new file mode 100644
index 0000000..7e7ea7b
--- /dev/null
+++ b/abs/not_built/core/netcfg/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 126281 2011-06-04 04:21:49Z eric $
+# Maintainer: James Rayner <james@archlinux.org>
+
+pkgname=netcfg
+pkgver=2.5.5
+pkgrel=1
+pkgdesc="Network configuration and profile scripts"
+url="http://archlinux.org"
+license=("BSD")
+backup=(etc/iftab)
+depends=(wireless_tools coreutils "wpa_supplicant>=0.6.8" net-tools "dhcpcd>=4.0" "iproute2")
+optdepends=('dialog: Required for menu based profile selector'
+ 'wpa_actiond: Required for automatic wireless connection with rc.d/net-auto-wireless'
+ 'ifplugd: Required for automatic wired connection with rc.d/net-auto-wired')
+source=(ftp://ftp.archlinux.org/other/netcfg/netcfg-${pkgver}.tar.gz)
+arch=(any)
+md5sums=('6e98bae291eb206d92f9a92bbab8fe80')
+
+package() {
+ cd "$srcdir/netcfg-${pkgver}"
+
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/netcfg/LICENSE"
+ ln -s /usr/lib/network/connections/wireless "$pkgdir/usr/lib/network/connections/wireless-dbus"
+ ln -s /usr/bin/netcfg2 "$pkgdir/usr/bin/netcfg"
+}
+
diff --git a/abs/not_built/core/netkit-telnet-ssl/PKGBUILD b/abs/not_built/core/netkit-telnet-ssl/PKGBUILD
new file mode 100644
index 0000000..37fb577
--- /dev/null
+++ b/abs/not_built/core/netkit-telnet-ssl/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: <alexandre.becoulet@free.fr>
+# Contributor: <netbug@ftp.uk.linux.org>
+# Contributor: Fluke <fluke.l at gmail.com>
+pkgname=netkit-telnet-ssl
+pkgver=0.17.24+0.1
+pkgrel=2
+pkgdesc="telnet client and server with ssl enabled"
+arch=('i686' 'x86_64')
+license=('BSD')
+url=("http://www.hcs.harvard.edu/~dholland/computers/netkit.html")
+source=(http://ftp.de.debian.org/debian/pool/main/n/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz
+ netkit-telnet-ssl-0.17.24+0.1_arch.diff
+ telnet.xinetd)
+depends=('glibc' 'openssl' 'ncurses')
+replaces=('netkit-telnet')
+md5sums=('43a402139ed6b86434fdb83256feaad8'
+ 'd51bf898269a79a2de77d1134516c209'
+ 'ca38af6f1346ae90b2cb1e160858b453')
+install=netkit-telnet-ssl.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}.orig
+ patch -p1 < ../netkit-telnet-ssl-0.17.24+0.1_arch.diff
+ ./configure --prefix=/usr --installroot=${pkgdir}
+ make || return 1
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}.orig
+ mkdir -p ${pkgdir}/usr/{bin,sbin,man/man1,man/man5,man/man8} ${pkgdir}/etc/xinetd.d
+
+ make install || return 1
+ install -m644 ${srcdir}/telnet.xinetd ${pkgdir}/etc/xinetd.d/telnet-ssl
+}
diff --git a/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff
new file mode 100644
index 0000000..17b3c3c
--- /dev/null
+++ b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff
@@ -0,0 +1,2591 @@
+Only in netkit-telnet-ssl-0.17.24+0.1: debian
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth.c netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth.c
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth.c 2004-05-27 11:47:25.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth.c 2010-05-11 13:44:40.190322666 +0200
+@@ -37,6 +37,9 @@
+ */
+
+ #ifndef lint
++#ifdef __GNUC__
++__attribute__ ((unused))
++#endif /* __GNUC__ */
+ static char sccsid[] = "@(#)auth.c 5.2 (Berkeley) 3/22/91";
+ #endif /* not lint */
+
+@@ -83,8 +86,11 @@
+
+ #define typemask(x) (1<<((x)-1))
+
++int auth_onoff(const char *type, int on);
++
++
+ int auth_debug_mode = 0;
+-static char *Name = "Noname";
++static const char *Name = "Noname";
+ static int Server = 0;
+ static Authenticator *authenticated = 0;
+ static int authenticating = 0;
+@@ -170,7 +176,7 @@
+
+ void
+ auth_init(name, server)
+- char *name;
++ const char *name;
+ int server;
+ {
+ Authenticator *ap = authenticators;
+@@ -241,7 +247,7 @@
+
+ int
+ auth_onoff(type, on)
+- char *type;
++ const char *type;
+ int on;
+ {
+ int i, mask = -1;
+@@ -335,7 +341,7 @@
+ }
+ *e++ = IAC;
+ *e++ = SE;
+- writenet(str_request, e - str_request);
++ writenet((char *) str_request, e - str_request);
+ printsub('>', &str_request[2], e - str_request - 2);
+ }
+ }
+@@ -424,7 +430,7 @@
+ }
+ auth_send_data += 2;
+ }
+- writenet(str_none, sizeof(str_none));
++ writenet((char *) str_none, sizeof(str_none));
+ printsub('>', &str_none[2], sizeof(str_none) - 2);
+ if (auth_debug_mode)
+ printf(">>>%s: Sent failure message\r\n", Name);
+@@ -456,7 +462,7 @@
+ return;
+ }
+
+- if (ap = findauthenticator(data[0], data[1])) {
++ if ((ap = findauthenticator(data[0], data[1]))) {
+ if (ap->is)
+ (*ap->is)(ap, data+2, cnt-2);
+ } else if (auth_debug_mode)
+@@ -474,7 +480,7 @@
+ if (cnt < 2)
+ return;
+
+- if (ap = findauthenticator(data[0], data[1])) {
++ if ((ap = findauthenticator(data[0], data[1]))) {
+ if (ap->reply)
+ (*ap->reply)(ap, data+2, cnt-2);
+ } else if (auth_debug_mode)
+@@ -487,7 +493,7 @@
+ unsigned char *data;
+ int cnt;
+ {
+- Authenticator *ap;
++ /* Authenticator *ap; */
+ unsigned char savename[256];
+
+ if (cnt < 1) {
+@@ -505,7 +511,7 @@
+ savename[cnt] = '\0'; /* Null terminate */
+ if (auth_debug_mode)
+ printf(">>>%s: Got NAME [%s]\r\n", Name, savename);
+- auth_encrypt_user(savename);
++ auth_encrypt_user((char *)savename);
+ }
+
+ int
+@@ -526,7 +532,7 @@
+ }
+ *e++ = IAC;
+ *e++ = SE;
+- writenet(str_request, e - str_request);
++ writenet((char *) str_request, e - str_request);
+ printsub('>', &str_request[2], e - &str_request[2]);
+ return(1);
+ }
+@@ -542,6 +548,9 @@
+ }
+
+ /* ARGSUSED */
++#ifdef __GNUC__
++__attribute__ ((used))
++#endif /* __GNUC__ */
+ static void
+ auth_intr(sig)
+ int sig;
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth-proto.h netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth-proto.h
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth-proto.h 2004-05-27 11:47:25.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth-proto.h 2010-05-11 13:44:40.183654321 +0200
+@@ -68,7 +68,7 @@
+ #if defined(AUTHENTICATE)
+ Authenticator *findauthenticator P((int, int));
+
+-void auth_init P((char *, int));
++void auth_init P((const char *, int));
+ int auth_cmd P((int, char **));
+ void auth_request P((void));
+ void auth_send P((unsigned char *, int));
+@@ -123,7 +123,9 @@
+ int auth_ssl_status P((Authenticator *, char *, int));
+ void auth_ssl_printsub P((unsigned char *, int, unsigned char *, int));
+ #endif /* USE_SSL */
+-
++
++extern void printsub P((char, unsigned char *, int));
++extern int writenet P((char *, int));
+ #endif
+ #ifdef __cplusplus
+ }
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/Makefile
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/Makefile 2004-05-27 11:47:25.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/Makefile 2010-05-11 13:45:28.073664102 +0200
+@@ -15,5 +15,8 @@
+ ranlib lib${LIB}.a; \
+ fi;
+
++install:
++ @echo "nothing to be installed from libtelnet"
++
+ clean:
+ rm -f *.o lib${LIB}.a
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc.c netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc.c
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc.c 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc.c 2010-05-11 13:44:40.190322666 +0200
+@@ -32,6 +32,9 @@
+ */
+
+ #ifndef lint
++#ifdef __GNUC__
++__attribute__ ((unused))
++#endif /* __GNUC__ */
+ static char sccsid[] = "@(#)misc.c 5.1 (Berkeley) 2/28/91";
+ #endif /* not lint */
+
+@@ -54,7 +57,12 @@
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
++#include <stdio.h>
++#include <stdlib.h>
++
+ #include "misc.h"
++#include "auth.h"
++#include "auth-proto.h"
+
+ char *RemoteHostName;
+ char *LocalHostName;
+@@ -65,7 +73,7 @@
+ auth_encrypt_init(local, remote, name, server)
+ char *local;
+ char *remote;
+- char *name;
++ const char *name;
+ int server;
+ {
+ RemoteHostName = remote;
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc-proto.h netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc-proto.h
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc-proto.h 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc-proto.h 2010-05-11 13:44:40.190322666 +0200
+@@ -68,7 +68,7 @@
+ extern "C" {
+ #endif
+
+-void auth_encrypt_init P((char *, char *, char *, int));
++void auth_encrypt_init P((char *, char *, const char *, int));
+ void auth_encrypt_connect P((int));
+ void auth_encrypt_user P((const char *name));
+ void printd P((unsigned char *, int));
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/sslapp.h netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/sslapp.h
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/sslapp.h 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/sslapp.h 2010-05-11 13:44:40.200330208 +0200
+@@ -45,6 +45,7 @@
+ #include "x509.h"
+ #include "ssl.h"
+ #define OLDPROTO NOPROTO
++#undef NOPROTO
+ #define NOPROTO
+ #include "err.h"
+ #undef NOPROTO
+@@ -72,7 +73,7 @@
+ /* we hide all the initialisation code in a separate file now */
+ extern int do_ssleay_init(int server);
+
+-extern int display_connect_details(SSL *ssl_con, int verbose);
++extern void display_connect_details(SSL *ssl_con, int verbose);
+ extern int server_verify_callback();
+ extern int client_verify_callback();
+
+diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/ssl.c netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/ssl.c
+--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/ssl.c 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/ssl.c 2010-05-11 13:44:40.200330208 +0200
+@@ -47,6 +47,9 @@
+ #include <string.h>
+ #endif
+
++#include <unistd.h>
++#include <openssl/err.h>
++
+ #include "auth.h"
+ #include "misc.h"
+
+@@ -91,11 +94,12 @@
+ #define VERIFY_ROOT_OK VERIFY_OK
+ #endif
+
++extern int netflush(void);
++
+ extern int auth_debug_mode;
+-static auth_ssl_valid = 0;
++static int auth_ssl_valid = 0;
+ static char *auth_ssl_name = 0; /* this holds the oneline name */
+
+-extern BIO *bio_err;
+ extern int ssl_only_flag;
+ extern int ssl_debug_flag;
+ extern int ssl_active_flag;
+@@ -120,6 +124,9 @@
+
+ BIO *bio_err=NULL;
+
++int auth_failed=0;
++
++
+ /* compile this set to 1 to negotiate SSL but not actually start it */
+ static int ssl_dummy_flag=0;
+
+@@ -135,7 +142,7 @@
+ * telnet connect if we are talking straight ssl with no telnet
+ * protocol --tjh
+ */
+-int
++void
+ display_connect_details(ssl_con,verbose)
+ SSL *ssl_con;
+ int verbose;
+@@ -152,7 +159,7 @@
+ /* grab the full list of ciphers */
+ i=0;
+ buf[0]='\0';
+- while((p=SSL_get_cipher_list(ssl_con,i++))!=NULL) {
++ while((p=(char *)SSL_get_cipher_list(ssl_con,i++))!=NULL) {
+ if (i>0)
+ strcat(buf,":");
+ strcat(buf,p);
+@@ -230,7 +237,7 @@
+ *p++ = SE;
+ if (str_data[3] == TELQUAL_IS)
+ printsub('>', &str_data[2], p - (&str_data[2]));
+- return(writenet(str_data, p - str_data));
++ return(writenet((char *) str_data, p - str_data));
+ }
+
+ int auth_ssl_init(ap, server)
+@@ -280,7 +287,7 @@
+ unsigned char *data;
+ int cnt;
+ {
+- int valid;
++ /* int valid; */
+
+ if (cnt-- < 1)
+ return;
+@@ -364,7 +371,7 @@
+ unsigned char *data;
+ int cnt;
+ {
+- int i;
++ /* int i; */
+ int status;
+
+ if (cnt-- < 1)
+@@ -389,16 +396,13 @@
+ SSL_set_verify(ssl_con,ssl_verify_flag,
+ client_verify_callback);
+ if ((status = SSL_connect(ssl_con)) <= 0) {
+- fprintf(stderr,"[SSL - FAILED (%d)]\r\n", status);
+- fflush(stderr);
+-
+- perror("telnet: Unable to ssl_connect to remote host");
++ auth_finished(0,AUTH_REJECT);
+
++ fprintf(stderr,"[SSL - FAILED (%d)]\r\n", status);
++ fprintf(stderr,"telnet: Unable to ssl_connect to remote host\n");
+ ERR_print_errors(bio_err);
+-
+- /* don't know what I "should" be doing here ... */
+-
+- auth_finished(0,AUTH_REJECT);
++ fflush(stderr);
++ auth_failed=1;
+ return;
+ } else {
+
+@@ -452,7 +456,7 @@
+ */
+ if (ssl_certsok_flag) {
+ user_fp = fopen("/etc/ssl.users", "r");
+- if (!auth_ssl_name || !user_fp) {
++ if (!auth_ssl_name || !user_fp || !UserNameRequested) {
+ /* If we haven't received a certificate, then don't
+ * return AUTH_VALID.
+ */
+@@ -486,7 +490,7 @@
+ cp = strchr(n, ',');
+ if (cp)
+ *cp++ = '\0';
+- if (!UserNameRequested ||
++ if (UserNameRequested &&
+ !strcmp(UserNameRequested, n)) {
+ strcpy(name, n);
+ fclose(user_fp);
+@@ -543,7 +547,7 @@
+ default:
+ sprintf(lbuf, " %d (unknown)", data[3]);
+ strncpy((char *)buf, lbuf, buflen);
+- common2:
++/* common2: */
+ BUMP(buf, buflen);
+ for (i = 4; i < cnt; i++) {
+ sprintf(lbuf, " %d", data[i]);
+@@ -568,7 +572,7 @@
+ #endif /* SSLEAY8 */
+ {
+ static char *saved_subject=NULL;
+- X509 *peer;
++ /* X509 *peer; */
+ char *subject, *issuer;
+ #ifdef SSLEAY8
+ int depth,error;
+@@ -715,8 +719,8 @@
+ int depth, error;
+ #endif /* SSLEAY8 */
+ {
+- X509 *peer;
+- char *subject, *issuer;
++ /* X509 *peer; */
++ char *subject, *issuer, *cnsubj;
+ #ifdef SSLEAY8
+ int depth,error;
+ char *xs;
+@@ -727,13 +731,13 @@
+
+ #endif /* SSLEAY8 */
+
+-#ifdef LOCAL_DEBUG
+- fprintf(stderr,"ssl:client_verify_callback:depth=%d ok=%d err=%d-%s\n",
+- depth,ok,error,X509_cert_verify_error_string(error));
+- fflush(stderr);
+-#endif /* LOCAL_DEBUG */
++ if(ssl_debug_flag && !ok) {
++ fprintf(stderr,"ssl:client_verify_callback:depth=%d ok=%d err=%d-%s\n",
++ depth,ok,error,X509_verify_cert_error_string(error));
++ fflush(stderr);
++ }
+
+- subject=issuer=NULL;
++ subject=issuer=cnsubj=NULL;
+
+ /* first thing is to have a meaningful name for the current
+ * certificate that is being verified ... and if we cannot
+@@ -761,60 +765,77 @@
+ fflush(stderr);
+ }
+
+- /* if the server is using a self signed certificate then
+- * we need to decide if that is good enough for us to
+- * accept ...
+- */
+- if (error==VERIFY_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) {
+- if (ssl_cert_required) {
+- /* make 100% sure that in secure more we drop the
+- * connection if the server does not have a
+- * real certificate!
+- */
+- fprintf(stderr,"SSL: rejecting connection - server has a self-signed certificate\n");
+- fflush(stderr);
+-
+- /* sometimes it is really handy to be able to debug things
+- * and still get a connection!
+- */
+- if (ssl_debug_flag) {
+- fprintf(stderr,"SSL: debug -> ignoring cert required!\n");
+- fflush(stderr);
+- ok=1;
+- } else {
+- ok=0;
+- }
+- goto return_time;
+- } else {
+- ok=1;
+- goto return_time;
+- }
++ /* verify commonName matches hostname */
++ if(ssl_cert_required && depth == 0) {
++ char *cn,*p;
++
++ cnsubj=strdup(subject);
++ if(cnsubj == NULL) {
++ fprintf(stderr,"SSL: Out of memory.\n");
++ ok=0;
++ goto return_time;
++ }
++ cn=strstr(cnsubj,"/CN=");
++ if(cn == NULL) {
++ fprintf(stderr,"SSL: Cannot extract CN from certificate subject.\n");
++ ok=0;
++ goto return_time;
++ }
++ cn+=4; /* skip /CN= */
++ p=strchr(cn,'/');
++ if(p != NULL) {
++ *p='\0';
++ }
++ if(strcasecmp(cn,RemoteHostName) != 0) {
++ fprintf(stderr,"SSL: Certificate CN (%s) does not match hostname (%s)\n",
++ cn,RemoteHostName);
++ ok=0;
++ goto return_time;
++ }
+ }
+
+- /* if we have any form of error in secure mode we reject the connection */
+- if (! ((error==VERIFY_OK)||(error==VERIFY_ROOT_OK)) ) {
+- if (ssl_cert_required) {
+- fprintf(stderr,"SSL: rejecting connection - ");
+- if (error==VERIFY_ERR_UNABLE_TO_GET_ISSUER) {
+- fprintf(stderr,"unknown issuer: %s\n",issuer);
+- } else {
+- ERR_print_errors(bio_err);
+- }
+- fflush(stderr);
+- ok=0;
+- goto return_time;
+- } else {
+- /* be nice and display a lot more meaningful stuff
+- * so that we know which issuer is unknown no matter
+- * what the callers options are ...
+- */
+- if (error==VERIFY_ERR_UNABLE_TO_GET_ISSUER) {
+- fprintf(stderr,"SSL: unknown issuer: %s\n",issuer);
+- fflush(stderr);
+- }
+- }
++ if((error==VERIFY_OK) || (error==VERIFY_ROOT_OK)) {
++ goto return_time;
+ }
+
++ switch(error) {
++ case VERIFY_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
++ fprintf(stderr,"SSL: Server has a self-signed certificate\n");
++ case VERIFY_ERR_UNABLE_TO_GET_ISSUER:
++ fprintf(stderr,"SSL: unknown issuer: %s\n",issuer);
++ break;
++ case X509_V_ERR_CERT_NOT_YET_VALID:
++ fprintf(stderr,"SSL: Certificate not yet valid\n");
++ BIO_printf(bio_err,"notBefore=");
++ ASN1_TIME_print(bio_err,X509_get_notBefore(ctx->current_cert));
++ BIO_printf(bio_err,"\n");
++ break;
++ case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
++ fprintf(stderr,"SSL: Error in certificate notBefore field\n");
++ BIO_printf(bio_err,"notBefore=");
++ ASN1_TIME_print(bio_err,X509_get_notBefore(ctx->current_cert));
++ BIO_printf(bio_err,"\n");
++ break;
++ case X509_V_ERR_CERT_HAS_EXPIRED:
++ fprintf(stderr,"SSL: Certificate has expired\n");
++ BIO_printf(bio_err,"notAfter=");
++ ASN1_TIME_print(bio_err,X509_get_notAfter(ctx->current_cert));
++ BIO_printf(bio_err,"\n");
++ break;
++ case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
++ fprintf(stderr,"SSL: Error in certificate notAfter field\n");
++ BIO_printf(bio_err,"notAfter=");
++ ASN1_TIME_print(bio_err,X509_get_notAfter(ctx->current_cert));
++ BIO_printf(bio_err,"\n");
++ break;
++ default:
++ fprintf(stderr,"SSL: %s (%d)\n", X509_verify_cert_error_string(error),error);
++ break;
++ }
++
++ /* If we are here there was an error */
++ ok=0;
++
+ return_time: ;
+
+ /* clean up things */
+@@ -822,7 +843,20 @@
+ free(subject);
+ if (issuer!=NULL)
+ free(issuer);
+-
++ if (cnsubj!=NULL)
++ free(cnsubj);
++ if(!ok && ssl_cert_required) {
++ if(ssl_debug_flag) {
++ fprintf(stderr,"SSL: debug -> ignoring cert required!\n");
++ ok=1;
++ }
++ else {
++ fprintf(stderr,"SSL: Rejecting connection\n");
++ ok=0;
++ }
++ }
++ fflush(stderr);
++
+ return ok;
+ }
+
+diff -ur netkit-telnet-ssl-0.17.24+0.1/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/Makefile
+--- netkit-telnet-ssl-0.17.24+0.1/Makefile 2004-05-27 11:47:25.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/Makefile 2010-05-11 14:19:36.673445641 +0200
+@@ -1,7 +1,7 @@
+ # You can do "make SUB=blah" to make only a few, or edit here, or both
+ # You can also run make directly in the subdirs you want.
+
+-SUB = telnet telnetd telnetlogin
++SUB = libtelnet telnet telnetd
+
+ %.build:
+ (cd $(patsubst %.build, %, $@) && $(MAKE))
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/authenc.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/authenc.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/authenc.cc 2000-07-23 05:24:53.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/authenc.cc 2010-05-11 13:44:40.056990450 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)authenc.c 5.1 (Berkeley) 3/1/91
+ */
+ char au_rcsid[] =
+- "$Id: authenc.cc,v 1.6 2000/07/23 03:24:53 dholland Exp $";
++ "$Id: authenc.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #if defined(ENCRYPT) || defined(AUTHENTICATE)
+ #include <sys/types.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/commands.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/commands.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/commands.cc 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/commands.cc 2010-05-11 13:44:40.060322107 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)commands.c 5.5 (Berkeley) 3/22/91
+ */
+ char cmd_rcsid[] =
+- "$Id: commands.cc,v 1.34 2000/07/23 04:16:24 dholland Exp $";
++ "$Id: commands.cc,v 1.13 2007-10-04 21:38:18 ianb Exp $";
+
+ #include <string.h>
+
+@@ -653,6 +653,21 @@
+ return 1;
+ }
+
++#ifdef AUTHENTICATE
++
++static int tog_autologin(int) {
++ if(autologin == 0) {
++ autologin=1;
++ env_export("USER");
++ }
++ else {
++ autologin=0;
++ env_unexport("USER");
++ }
++ return 1;
++}
++
++#endif /* AUTHENTICATE */
+
+ static int netdata; /* Print out network data flow */
+ static int prettydump; /* Print "netdata" output in user readable format */
+@@ -682,13 +697,13 @@
+
+ #if defined(AUTHENTICATE)
+ { "autologin", "automatic sending of login and/or authentication info",
+- NULL, &autologin,
++ tog_autologin, NULL,
+ "send login name and/or authentication information" },
+ { "authdebug", "Toggle authentication debugging",
+ auth_togdebug, NULL,
+ "print authentication debugging information" },
+ #endif
+-#if 0
++#ifdef ENCRYPT
+ { "autoencrypt", "automatic encryption of data stream",
+ EncryptAutoEnc, NULL,
+ "automatically encrypt output" },
+@@ -701,7 +716,7 @@
+ { "encdebug", "Toggle encryption debugging",
+ EncryptDebug, NULL,
+ "print encryption debugging information" },
+-#endif
++#endif /* ENCRYPT */
+
+ { "skiprc", "don't read the telnetrc files",
+ NULL, &skiprc,
+@@ -750,7 +765,7 @@
+ NULL, &showoptions,
+ "show option processing" },
+
+- { "termdata", "(debugging) toggle printing of hexadecimal terminal data",
++ { "termdata", "toggle printing of hexadecimal terminal data (debugging)",
+ NULL, &termdata,
+ "print hexadecimal representation of terminal traffic" },
+
+@@ -1357,9 +1372,9 @@
+ else
+ shellname++;
+ if (argc > 1)
+- execl(shellp, shellname, "-c", &saveline[1], 0);
++ execl(shellp, shellname, "-c", &saveline[1], (char *) NULL);
+ else
+- execl(shellp, shellname, 0);
++ execl(shellp, shellname, (char *) NULL);
+ perror("Execl");
+ _exit(1);
+ }
+@@ -1510,10 +1525,10 @@
+
+ #if defined(AUTHENTICATE)
+ struct authlist {
+- char *name;
+- char *help;
+- int (*handler)(const char *, const char *);
+- int narg;
++ const char *name;
++ const char *help;
++ int (*handler)(const char *, const char *);
++ int narg;
+ };
+
+ static int auth_help (const char *, const char *);
+@@ -1833,8 +1848,22 @@
+ if (*portp == '-') {
+ portp++;
+ telnetport = 1;
+- } else
++ } else {
+ telnetport = 0;
++ if (*portp >='0' && *portp<='9') {
++ char *end;
++ long int p;
++
++ p=strtol(portp, &end, 10);
++ if (ERANGE==errno && (LONG_MIN==p || LONG_MAX==p)) {
++ fprintf(stderr, "telnet: port %s overflows\n", portp);
++ return 0;
++ } else if (p<=0 || p>=65536) {
++ fprintf(stderr, "telnet: port %s out of range\n", portp);
++ return 0;
++ }
++ }
++ }
+ }
+ else {
+ portp = "telnet";
+@@ -1860,7 +1889,7 @@
+ if (res < 0)
+ return 0;
+ }
+-
++
+ /* Resolve both the host and service simultaneously. */
+ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr);
+ if (res == EAI_NONAME) {
+@@ -1902,6 +1931,16 @@
+ NI_NUMERICHOST | NI_NUMERICSERV);
+
+ printf("Trying %s...\n", name);
++
++ if (tmpaddr->ai_canonname == 0) {
++ hostname = new char[strlen(hostp)+1];
++ strcpy(hostname, hostp);
++ }
++ else {
++ hostname = new char[strlen(tmpaddr->ai_canonname)+1];
++ strcpy(hostname, tmpaddr->ai_canonname);
++ }
++
+ x = nlink.connect(debug, tmpaddr, srp, srlen, tos);
+ if (!x)
+ goto err;
+@@ -1909,18 +1948,18 @@
+ goto nextaddr;
+
+ connected++;
++
++#ifdef USE_SSL
++ if (ssl_secure_flag || (strcmp(hostp, "localhost") != 0)) {
++ /* autologin = 1; */
++ use_authentication=1;
++ }
++#endif /* USE_SSL */
++
+ #if defined(AUTHENTICATE)
+ auth_encrypt_connect(connected);
+ #endif
+ } while (connected == 0);
+- if (tmpaddr->ai_canonname == 0) {
+- hostname = new char[strlen(hostp)+1];
+- strcpy(hostname, hostp);
+- }
+- else {
+- hostname = new char[strlen(tmpaddr->ai_canonname)+1];
+- strcpy(hostname, tmpaddr->ai_canonname);
+- }
+
+ cmdrc(hostp, hostname, portp);
+ freeaddrinfo(hostaddr);
+@@ -1966,6 +2005,9 @@
+ #if defined(AUTHENTICATE)
+ authhelp[] = "turn on (off) authentication ('auth ?' for more)",
+ #endif
++#if defined(USE_SSL)
++ startsslhelp[] = "switch to telnet-over-ssl (use 'auth' for ssl-over-telnet)",
++#endif
+ zhelp[] = "suspend telnet",
+ /* shellhelp[] = "invoke a subshell", */
+ envhelp[] = "change environment variables ('environ ?' for more)",
+@@ -1981,6 +2023,34 @@
+ return 0;
+ }
+
++#if defined(USE_SSL)
++static int startssl_cmd(void)
++{
++ if(ssl_con == NULL)
++ {
++ fprintf(stderr,"telnet: Internal error - ssl_con not initialised.\n");
++ return 1;
++ }
++
++ if(ssl_active_flag)
++ {
++ fprintf(stderr,"telnet: SSL already in use.\n");
++ return 1;
++ }
++
++ if (SSL_connect(ssl_con) < 1)
++ {
++ ERR_print_errors_fp(stderr);
++ fflush(stderr);
++ } else {
++ display_connect_details(ssl_con,ssl_debug_flag);
++ ssl_active_flag=1;
++ ssl_only_flag=1;
++ }
++ return 1;
++}
++#endif /* USE_SSL */
++
+ static int slc_mode_import_0(void) {
+ slc_mode_import(0);
+ return 1;
+@@ -2028,6 +2098,10 @@
+ #endif
+ // BIND("encrypt", encrypthelp, encrypt_cmd);
+
++#if defined(USE_SSL)
++ BIND("startssl", startsslhelp, startssl_cmd);
++#endif
++
+ BIND("z", zhelp, suspend);
+
+ #if defined(TN3270) /* why?! */
+@@ -2233,22 +2307,18 @@
+ }
+
+ void cmdrc(const char *m1, const char *m2, const char *port) {
+- static char *rcname = 0;
+- static char rcbuf[128];
++ char *rcname = NULL;
+
+ if (skiprc) return;
+
+ readrc(m1, m2, port, "/etc/telnetrc");
+- if (rcname == 0) {
+- rcname = getenv("HOME");
+- if (rcname)
+- strcpy(rcbuf, rcname);
+- else
+- rcbuf[0] = '\0';
+- strcat(rcbuf, "/.telnetrc");
+- rcname = rcbuf;
+- }
++ if (asprintf (&rcname, "%s/.telnetrc", getenv ("HOME")) == -1)
++ {
++ perror ("asprintf");
++ return;
++ }
+ readrc(m1, m2, port, rcname);
++ free (rcname);
+ }
+
+ #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP)
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/defines.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/defines.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/defines.h 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/defines.h 2010-05-11 13:44:40.063654881 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)defines.h 5.1 (Berkeley) 9/14/90
+- * $Id: defines.h,v 1.5 1996/08/04 23:44:43 dholland Exp $
++ * $Id: defines.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ #define ENV_VAR NEW_ENV_VAR
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/externs.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/externs.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/externs.h 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/externs.h 2010-05-11 13:44:40.063654881 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)externs.h 5.3 (Berkeley) 3/22/91
+- * $Id: externs.h,v 1.20 1999/08/19 09:34:15 dholland Exp $
++ * $Id: externs.h,v 1.2 2004-11-17 15:28:51 ianb Exp $
+ */
+
+ #ifndef BSD
+@@ -57,6 +57,7 @@
+ #define SUBBUFSIZE 256
+
+ extern int autologin; /* Autologin enabled */
++extern int use_authentication; /* use SSL authentication */
+ extern int skiprc; /* Don't process the ~/.telnetrc file */
+ extern int eight; /* use eight bit mode (binary in and/or out) */
+ extern int binary; /* use binary option (in and/or out) */
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/fdset.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/fdset.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/fdset.h 1996-07-16 07:17:22.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/fdset.h 2010-05-11 13:44:40.063654881 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)fdset.h 5.1 (Berkeley) 9/14/90
+- * $Id: fdset.h,v 1.1 1996/07/16 05:17:22 dholland Exp $
++ * $Id: fdset.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ /*
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/general.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/general.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/general.h 1996-07-16 07:17:22.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/general.h 2010-05-11 13:44:40.063654881 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)general.h 5.2 (Berkeley) 3/1/91
+- * $Id: general.h,v 1.1 1996/07/16 05:17:22 dholland Exp $
++ * $Id: general.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ /*
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/genget.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/genget.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/genget.cc 1996-07-26 11:54:09.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/genget.cc 2010-05-11 13:44:40.063654881 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)genget.c 5.1 (Berkeley) 2/28/91
+ */
+ char gg_rcsid[] =
+- "$Id: genget.cc,v 1.3 1996/07/26 09:54:09 dholland Exp $";
++ "$Id: genget.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include <string.h>
+ #include <ctype.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/glue.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/glue.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/glue.cc 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/glue.cc 2010-05-11 13:44:40.083654043 +0200
+@@ -11,8 +11,9 @@
+ printsub_h(direction, pointer, length);
+ }
+
+-extern "C" void writenet(const char *str, int len) {
++extern "C" int writenet(const char *str, int len) {
+ netoring.write(str, len);
++ return 1;
+ }
+
+ extern "C" int telnet_spin() {
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/main.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/main.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/main.cc 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/main.cc 2010-05-11 13:44:40.066988214 +0200
+@@ -39,7 +39,7 @@
+ * From: @(#)main.c 5.4 (Berkeley) 3/22/91
+ */
+ char main_rcsid[] =
+- "$Id: main.cc,v 1.14 1999/08/01 05:06:37 dholland Exp $";
++ "$Id: main.cc,v 1.6 2004-11-22 20:26:37 ianb Exp $";
+
+ #include "../version.h"
+
+@@ -86,16 +86,27 @@
+ * -X <atype> disable specified auth type
+ */
+ void usage(void) {
+- fprintf(stderr, "Usage: %s %s%s%s%s\n",
++ fprintf(stderr, "Usage: %s %s%s%s%s%s\n",
+ prompt,
++#ifdef AUTHENTICATE
++ "[-4] [-6] [-8] [-E] [-K] [-L] [-X atype] [-a] [-d] [-e char]",
++ "\n\t[-l user] [-n tracefile] [ -b addr ]",
++#else
+ "[-4] [-6] [-8] [-E] [-L] [-a] [-d] [-e char] [-l user]",
+ "\n\t[-n tracefile] [ -b addr ]",
++#endif
+ #ifdef TN3270
+ "\n\t"
+ "[-noasynch] [-noasynctty] [-noasyncnet] [-r] [-t transcom]\n\t",
+ #else
+ " [-r] ",
+ #endif
++#ifdef USE_SSL
++ /* might as well output something useful here ... */
++ "\n\t[-z ssl] [-z secure] [-z debug] [-z verify=int]\n\t[-z cert=file] [-z key=file]\n\t",
++#else /* !USE_SSL */
++ "",
++#endif /* USE_SSL */
+ "[host-name [port]]"
+ );
+ exit(1);
+@@ -135,8 +146,73 @@
+ autologin = -1;
+
+ while ((ch = getopt(argc, argv,
+- "4678EKLS:X:ab:de:k:l:n:rt:x")) != EOF) {
++ "4678EKLS:X:ab:de:k:l:n:rt:xz:")) != EOF) {
+ switch(ch) {
++#ifdef USE_SSL
++ case 'z':
++ {
++ char *origopt;
++
++ origopt=strdup(optarg);
++ optarg=strtok(origopt,",");
++
++ while(optarg!=NULL) {
++
++ if (strcmp(optarg, "debug") == 0 ) {
++ ssl_debug_flag=1;
++ } else if (strcmp(optarg, "authdebug") == 0 ) {
++ auth_debug_mode=1;
++ } else if (strcmp(optarg, "ssl") == 0 ) {
++ ssl_only_flag=1;
++ } else if ( (strcmp(optarg, "!ssl") == 0) ||
++ (strcmp(optarg, "nossl") == 0) ) {
++ /* we may want to switch SSL negotiation off
++ * for testing or other reasons
++ */
++ ssl_disabled_flag=1;
++ } else if (strcmp(optarg, "certrequired") == 0 ) {
++ ssl_cert_required=1;
++ } else if (strcmp(optarg, "secure") == 0 ) {
++ ssl_secure_flag=1;
++ } else if (strcmp(optarg, "verbose") == 0 ) {
++ ssl_verbose_flag=1;
++ } else if (strncmp(optarg, "verify=",
++ strlen("verify=")) == 0 ) {
++ ssl_verify_flag=atoi(optarg+strlen("verify="));
++ } else if (strncmp(optarg, "cert=",
++ strlen("cert=")) == 0 ) {
++ ssl_cert_file= optarg + strlen("cert=");
++ } else if (strncmp(optarg, "key=",
++ strlen("key=")) == 0 ) {
++ ssl_key_file= optarg + strlen("key=");
++ } else if (strncmp(optarg,"cipher=",
++ strlen("cipher="))==0) {
++ ssl_cipher_list=optarg+strlen("cipher=");
++ } else {
++ /* report when we are given rubbish so that
++ * if the user makes a mistake they have to
++ * correct it!
++ */
++ fprintf(stderr,"Unknown SSL option %s\n",optarg);
++ fflush(stderr);
++ exit(1);
++ }
++
++ /* get the next one ... */
++ optarg=strtok(NULL,",");
++
++ }
++
++ /*
++ if (origopt!=NULL)
++ free(origopt);
++ */
++
++ }
++
++ break;
++#endif /* USE_SSL */
++
+ case '4':
+ family = AF_INET;
+ break;
+@@ -257,14 +333,25 @@
+ autologin = (rlogin == _POSIX_VDISABLE) ? 0 : 1;
+
+ #ifdef USE_SSL
++ if((ssl_cert_file != NULL) || (ssl_key_file != NULL)) {
++ autologin = 1;
++ }
++
+ if (ssl_secure_flag||ssl_cert_required) {
+ /* in secure mode we *must* switch on the base level
+ * verify checking otherwise we cannot abort connections
+ * at the right place!
+ */
+ if (ssl_verify_flag == 0)
+- ssl_verify_flag = 1;
++ ssl_verify_flag = SSL_VERIFY_PEER;;
+ }
++
++ /* client mode ignores SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
++ so simulate it using certrequired */
++ if(ssl_verify_flag & SSL_VERIFY_FAIL_IF_NO_PEER_CERT) {
++ ssl_cert_required=1;
++ }
++
+ #endif /* USE_SSL */
+
+ argc -= optind;
+@@ -289,11 +376,6 @@
+ *argp++ = family == AF_INET ? "-4" : "-6";
+ }
+ *argp++ = argv[0]; /* host */
+-#ifdef USE_SSL
+- if (strcmp(argv[0], "localhost") != 0) {
+- autologin = 1;
+- }
+-#endif /* USE_SSL */
+ if (argc > 1)
+ *argp++ = argv[1]; /* port */
+ *argp = 0;
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/telnet/Makefile
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/Makefile 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/Makefile 2010-05-11 13:44:40.056990450 +0200
+@@ -6,15 +6,18 @@
+ #CXXFLAGS:=$(patsubst -O2, -g, $(CXXFLAGS))
+
+ # -DAUTHENTICATE
+-CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE
+-LIBS = $(LIBTERMCAP)
++CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE -DAUTHENTICATE -DUSE_SSL \
++ -I/usr/include/openssl -I../
++LIBTELNET = ../libtelnet/libtelnet.a
++LIBS += $(LIBTERMCAP) $(LIBTELNET) -lssl -lcrypto
+
+ SRCS = commands.cc main.cc network.cc ring.cc sys_bsd.cc telnet.cc \
+- terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc
++ terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc \
++ glue.cc glue2.cc
+
+ OBJS = $(patsubst %.cc, %.o, $(SRCS))
+
+-telnet: $(OBJS)
++telnet: $(OBJS) $(LIBTELNET)
+ $(CXX) $(LDFLAGS) $^ $(LIBS) -o $@
+
+ include depend.mk
+@@ -22,7 +25,7 @@
+ $(CXX) $(CXXFLAGS) -MM $(SRCS) >depend.mk
+
+ install: telnet
+- install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR)/telnet-ssl
++ install -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR)/telnet-ssl
+ install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1/telnet-ssl.1
+
+ clean:
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/netlink.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/netlink.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/netlink.cc 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/netlink.cc 2010-05-11 13:44:40.066988214 +0200
+@@ -12,12 +12,27 @@
+ #include "proto.h"
+ #include "ring.h"
+ #include <libtelnet/sslapp.h>
++#include <libtelnet/misc-proto.h>
+
+ /* In Linux, this is an enum */
+ #if defined(__linux__) || defined(IPPROTO_IP)
+ #define HAS_IPPROTO_IP
+ #endif
+
++/* code from Peter 'Luna' Runestig <peter@runestig.com> */
++static int select_read(int rfd)
++/* timeout = 20 seconds */
++{
++ fd_set rfds;
++ struct timeval tv;
++
++ FD_ZERO(&rfds);
++ FD_SET(rfd, &rfds);
++ tv.tv_sec = 20;
++ tv.tv_usec = 0;
++ return select(rfd + 1, &rfds, NULL, NULL, &tv);
++}
++
+ netlink nlink;
+
+ class netchannel : public ringbuf::source {
+@@ -26,12 +41,23 @@
+ int net = nlink.getfd();
+ int l;
+ #ifdef USE_SSL
+- if (ssl_active_flag)
+- l = SSL_read(ssl_con, buf, maxlen);
+- else
++ if (ssl_active_flag) {
++ do {
++ l = SSL_read(ssl_con, buf, maxlen);
++ /*
++ * SSL_ERROR_WANT_READ may occur if an SSL/TLS rehandshake occurs.
++ * This means that data was available at the socket, but all was
++ * consumed by SSL itself, so we select (w/20s timeout) and retry.
++ */
++ } while (l<0 &&
++ (SSL_ERROR_WANT_READ == SSL_get_error(ssl_con, l)) &&
++ (select_read(net) > 0));
++ } else
+ #endif /* USE_SSL */
+- l = recv(net, buf, maxlen, 0);
+- if (l<0 && errno == EWOULDBLOCK) l = 0;
++ {
++ l = recv(net, buf, maxlen, 0);
++ if (l<0 && errno == EWOULDBLOCK) l = 0;
++ }
+ return l;
+ }
+ };
+@@ -70,11 +96,11 @@
+
+
+ netlink::netlink() { net = -1; }
+-netlink::~netlink() { ::close(net); }
++netlink::~netlink() { if (net >= 0) ::close(net); }
+
+
+ int netlink::setdebug(int debug) {
+- if (net > 0 &&
++ if (net >= 0 &&
+ (setsockopt(net, SOL_SOCKET, SO_DEBUG, &debug, sizeof(debug))) < 0) {
+ perror("setsockopt (SO_DEBUG)");
+ }
+@@ -95,7 +121,8 @@
+ ssl_active_flag=0;
+ }
+ #endif /* USE_SSL */
+- ::close(net);
++ if (net >= 0)
++ ::close(net);
+ net = -1;
+ }
+
+@@ -142,7 +169,8 @@
+ {
+ int on=1;
+ int res;
+-
++ extern char *hostname;
++
+ res = socket(addr->ai_family);
+ if (res < 2)
+ return res;
+@@ -192,10 +220,24 @@
+ /* bind in the network descriptor */
+ SSL_set_fd(ssl_con,net);
+
++#if defined(AUTHENTICATE)
++ /* moved from telnet() so client_verify_callback knows RemoteHostName -ianb */
++ {
++ static char local_host[256] = { 0 };
++ int len = sizeof(local_host);
++
++ if (!local_host[0]) {
++ gethostname(local_host, len); /* WAS &len!!! */
++ local_host[sizeof(local_host)-1] = 0;
++ }
++ auth_encrypt_init(local_host, hostname, "TELNET", 0);
++ }
++#endif
++
+ /* if we are doing raw SSL then start it now ... */
+ if (ssl_only_flag) {
+ if (!SSL_connect(ssl_con)) {
+- static char errbuf[1024];
++ /* static char errbuf[1024]; */
+
+ ERR_print_errors_fp(stderr);
+ perror("SSL_connect");
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/network.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/network.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/network.cc 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/network.cc 2010-05-11 13:44:40.066988214 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)network.c 5.2 (Berkeley) 3/1/91
+ */
+ char net_rcsid[] =
+- "$Id: network.cc,v 1.15 1996/08/13 08:09:58 dholland Exp $";
++ "$Id: network.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include <sys/types.h>
+ #include <sys/socket.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/proto.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/proto.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/proto.h 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/proto.h 2010-05-11 13:44:40.070321269 +0200
+@@ -10,9 +10,11 @@
+ int TerminalSpecialChars(int);
+ void TerminalSpeeds(long *ispeed, long *ospeed);
+ int TerminalWindowSize(long *rows, long *cols);
++#if 0
+ void auth_encrypt_user(char *);
+ void auth_name(unsigned char *, int);
+ void auth_printsub(unsigned char *, int, unsigned char *, int);
++#endif
+ void cmdrc(const char *, const char *, const char *);
+ void env_init(void);
+ int getconnmode(void);
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/ring.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/ring.cc 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.cc 2010-05-11 13:44:40.070321269 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)ring.c 5.2 (Berkeley) 3/1/91
+ */
+ char ring_rcsid[] =
+- "$Id: ring.cc,v 1.23 2000/07/23 03:25:09 dholland Exp $";
++ "$Id: ring.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ /*
+ * This defines a structure for a ring buffer.
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/ring.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/ring.h 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.h 2010-05-11 13:44:40.070321269 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)ring.h 5.2 (Berkeley) 3/1/91
+- * $Id: ring.h,v 1.13 1996/08/13 08:43:28 dholland Exp $
++ * $Id: ring.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ class datasink {
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/sys_bsd.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/sys_bsd.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/sys_bsd.cc 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/sys_bsd.cc 2010-05-11 13:44:40.070321269 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)sys_bsd.c 5.2 (Berkeley) 3/1/91
+ */
+ char bsd_rcsid[] =
+- "$Id: sys_bsd.cc,v 1.24 1999/09/28 16:29:24 dholland Exp $";
++ "$Id: sys_bsd.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ /*
+ * The following routines try to encapsulate what is system dependent
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.1 netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.1
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.1 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.1 2010-05-11 13:44:40.073654603 +0200
+@@ -30,7 +30,7 @@
+ .\" SUCH DAMAGE.
+ .\"
+ .\" from: @(#)telnet.1 6.16 (Berkeley) 7/27/91
+-.\" $Id: telnet.1,v 1.15 2000/07/30 23:57:08 dholland Exp $
++.\" $Id: telnet.1,v 1.5 2006-09-24 00:48:31 ianb Exp $
+ .\"
+ .Dd August 15, 1999
+ .Dt TELNET 1
+@@ -42,12 +42,14 @@
+ protocol
+ .Sh SYNOPSIS
+ .Nm telnet
+-.Op Fl 468ELadr
++.Op Fl 468EKLadr
+ .Op Fl S Ar tos
++.Op Fl X Ar authtype
+ .Op Fl b Ar address
+ .Op Fl e Ar escapechar
+ .Op Fl l Ar user
+ .Op Fl n Ar tracefile
++.Op Fl z Ar option
+ .Oo
+ .Ar host
+ .Op Ar port
+@@ -152,44 +154,47 @@
+ command below.
+ .It Fl z Ar option
+ Set SSL (Secure Socket Layer) parameters. The default is to negotiate
+-via telnet protocoll if SSL is availlable at server side and then to
++via telnet protocol if SSL is available at server side and then to
+ switch it on. In this mode you can connect to both conventional and
+-SSL enhanced telnetd's.
++SSL enhanced telnetd's. If the connection is made to localhost and
++.Ic -z secure
++is not set, then
++SSL is not enabled.
+ .Pp
+ The SSL parameters are:
+ .Bl -tag -width Fl
+-.It Ic Ar debug
++.It Ic debug
+ Send SSL related debugging information to stderr.
+-.It Ic Ar authdebug
++.It Ic authdebug
+ Enable authentication debugging.
+-.It Ic Ar ssl
++.It Ic ssl
+ Negotiate SSL at first, then use telnet protocol. In this mode you can
+ connect to any server supporting directly SSL like Apache-SSL. Use
+ .Ic telnet -z ssl ssl3.netscape.com https
+ for example. telnet protocol negotiation goes encrypted.
+-.It Ic Ar nossl, Ar !ssl
+-switch of SSL negotiation
+-.It Ic Ar certrequired
+-client certificate is mandatory
+-.It Ic Ar secure
++.It Ic nossl, Ic !ssl
++switch off SSL negotiation
++.It Ic certrequired
++server certificate is mandatory
++.It Ic secure
+ Don't switch back to unencrypted mode (no SSL) if SSL is not available.
+-.It Ic Ar verbose
++.It Ic verbose
+ Be verbose about certificates etc.
+-.It Ic Ar verify=int
++.It Ic verify= Ns Ar int
+ .\" TODO
+ Set the SSL verify flags (SSL_VERIFY_* in
+ .Ar ssl/ssl.h
+ ).
+ .\" TODO
+-.It Ic Ar cert=cert_file
++.It Ic cert= Ns Ar cert_file
+ .\" TODO
+ Use the certificate(s) in
+ .Ar cert_file .
+-.It Ic Ar key=key_file
++.It Ic key= Ns Ar key_file
+ .\" TODO
+ Use the key(s) in
+ .Ar key_file .
+-.It Ic Ar cipher=ciph_list
++.It Ic cipher= Ns Ar ciph_list
+ .\" TODO
+ Set the preferred ciphers to
+ .Ar ciph_list .
+@@ -319,10 +324,6 @@
+ List the current status of the various types of
+ authentication.
+ .El
+-.Pp
+-Note that the current version of
+-.Nm telnet
+-does not support authentication.
+ .It Ic close
+ Close the connection to the remote host, if any, and return to command
+ mode.
+@@ -332,49 +333,49 @@
+ and
+ .Ic toggle
+ values (see below).
+-.It Ic encrypt Ar argument ...
+-The encrypt command controls the
+-.Dv TELNET ENCRYPT
+-protocol option. If
+-.Nm telnet
+-was compiled without encryption, the
+-.Ic encrypt
+-command will not be supported.
+-.Pp
+-Valid arguments are as follows:
+-.Bl -tag -width Ar
+-.It Ic disable Ar type Ic [input|output]
+-Disable the specified type of encryption. If you do not specify input
+-or output, encryption of both is disabled. To obtain a list of
+-available types, use ``encrypt disable \&?''.
+-.It Ic enable Ar type Ic [input|output]
+-Enable the specified type of encryption. If you do not specify input
+-or output, encryption of both is enabled. To obtain a list of
+-available types, use ``encrypt enable \&?''.
+-.It Ic input
+-This is the same as ``encrypt start input''.
+-.It Ic -input
+-This is the same as ``encrypt stop input''.
+-.It Ic output
+-This is the same as ``encrypt start output''.
+-.It Ic -output
+-This is the same as ``encrypt stop output''.
+-.It Ic start Ic [input|output]
+-Attempt to begin encrypting. If you do not specify input or output,
+-encryption of both input and output is started.
+-.It Ic status
+-Display the current status of the encryption module.
+-.It Ic stop Ic [input|output]
+-Stop encrypting. If you do not specify input or output, encryption of
+-both is stopped.
+-.It Ic type Ar type
+-Sets the default type of encryption to be used with later ``encrypt start''
+-or ``encrypt stop'' commands.
+-.El
+-.Pp
+-Note that the current version of
+-.Nm telnet
+-does not support encryption.
++.\" .It Ic encrypt Ar argument ...
++.\" The encrypt command controls the
++.\" .Dv TELNET ENCRYPT
++.\" protocol option. If
++.\" .Nm telnet
++.\" was compiled without encryption, the
++.\" .Ic encrypt
++.\" command will not be supported.
++.\" .Pp
++.\" Valid arguments are as follows:
++.\" .Bl -tag -width Ar
++.\" .It Ic disable Ar type Ic [input|output]
++.\" Disable the specified type of encryption. If you do not specify input
++.\" or output, encryption of both is disabled. To obtain a list of
++.\" available types, use ``encrypt disable \&?''.
++.\" .It Ic enable Ar type Ic [input|output]
++.\" Enable the specified type of encryption. If you do not specify input
++.\" or output, encryption of both is enabled. To obtain a list of
++.\" available types, use ``encrypt enable \&?''.
++.\" .It Ic input
++.\" This is the same as ``encrypt start input''.
++.\" .It Ic -input
++.\" This is the same as ``encrypt stop input''.
++.\" .It Ic output
++.\" This is the same as ``encrypt start output''.
++.\" .It Ic -output
++.\" This is the same as ``encrypt stop output''.
++.\" .It Ic start Ic [input|output]
++.\" Attempt to begin encrypting. If you do not specify input or output,
++.\" encryption of both input and output is started.
++.\" .It Ic status
++.\" Display the current status of the encryption module.
++.\" .It Ic stop Ic [input|output]
++.\" Stop encrypting. If you do not specify input or output, encryption of
++.\" both is stopped.
++.\" .It Ic type Ar type
++.\" Sets the default type of encryption to be used with later ``encrypt start''
++.\" or ``encrypt stop'' commands.
++.\" .El
++.\" .Pp
++.\" Note that the current version of
++.\" .Nm telnet
++.\" does not support encryption.
+ .It Ic environ Ar arguments...
+ The
+ .Ic environ
+@@ -1017,6 +1018,16 @@
+ .Ic slc
+ command.
+ .El
++.It Ic startssl
++Attempt to negotiate telnet-over-SSL (as with the
++.Ic -z ssl
++option). This is useful when connecting to non-telnetds such
++as imapd (with the
++.Ic STARTTLS
++command). To control SSL when connecting to a SSL-enabled
++telnetd, use the
++.Ic auth
++command instead.
+ .It Ic status
+ Show the current status of
+ .Nm telnet .
+@@ -1079,17 +1090,17 @@
+ .Dv FALSE
+ (see
+ .Xr stty 1 ) .
+-.It Ic autodecrypt
+-When the
+-.Dv TELNET ENCRYPT
+-option is negotiated, by
+-default the actual encryption (decryption) of the data
+-stream does not start automatically. The autoencrypt
+-(autodecrypt) command states that encryption of the
+-output (input) stream should be enabled as soon as
+-possible.
+-.Pp
+-Note that this flag exists only if encryption support is enabled.
++.\" .It Ic autodecrypt
++.\" When the
++.\" .Dv TELNET ENCRYPT
++.\" option is negotiated, by
++.\" default the actual encryption (decryption) of the data
++.\" stream does not start automatically. The autoencrypt
++.\" (autodecrypt) command states that encryption of the
++.\" output (input) stream should be enabled as soon as
++.\" possible.
++.\" .Pp
++.\" Note that this flag exists only if encryption support is enabled.
+ .It Ic autologin
+ If the remote side supports the
+ .Dv TELNET AUTHENTICATION
+@@ -1174,9 +1185,9 @@
+ .Ic super user ) .
+ The initial value for this toggle is
+ .Dv FALSE .
+-.It Ic encdebug
+-Turns on debugging information for the encryption code.
+-Note that this flag only exists if encryption support is available.
++.\" .It Ic encdebug
++.\" Turns on debugging information for the encryption code.
++.\" Note that this flag only exists if encryption support is available.
+ .It Ic localchars
+ If this is
+ .Dv TRUE ,
+@@ -1221,8 +1232,9 @@
+ is sent as
+ .Ic abort ,
+ and
+-.Ic eof and
+-.B suspend
++.Ic eof
++and
++.Ic suspend
+ are sent as
+ .Ic eof and
+ .Ic susp ,
+@@ -1263,16 +1275,16 @@
+ Toggles the display of all terminal data (in hexadecimal format).
+ The initial value for this toggle is
+ .Dv FALSE .
+-.It Ic verbose_encrypt
+-When the
+-.Ic verbose_encrypt
+-toggle is
+-.Dv TRUE ,
+-.Tn TELNET
+-prints out a message each time encryption is enabled or
+-disabled. The initial value for this toggle is
+-.Dv FALSE.
+-This flag only exists if encryption support is available.
++.\" .It Ic verbose_encrypt
++.\" When the
++.\" .Ic verbose_encrypt
++.\" toggle is
++.\" .Dv TRUE ,
++.\" .Tn TELNET
++.\" prints out a message each time encryption is enabled or
++.\" disabled. The initial value for this toggle is
++.\" .Dv FALSE.
++.\" This flag only exists if encryption support is available.
+ .It Ic \&?
+ Displays the legal
+ .Ic toggle
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.cc 2004-05-27 11:47:26.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.cc 2010-05-11 13:44:40.076987936 +0200
+@@ -47,7 +47,7 @@
+ * From: @(#)telnet.c 5.53 (Berkeley) 3/22/91
+ */
+ char telnet_rcsid[] =
+-"$Id: telnet.cc,v 1.36 2000/07/23 03:24:53 dholland Exp $";
++"$Id: telnet.cc,v 1.8 2005-04-14 15:26:27 ianb Exp $";
+
+ #include <string.h>
+ #include <sys/types.h>
+@@ -107,6 +107,7 @@
+ eight = 3,
+ binary = 0,
+ autologin = 0, /* Autologin anyone? */
++ use_authentication = 0,
+ skiprc = 0,
+ connected,
+ showoptions,
+@@ -495,7 +496,8 @@
+ break;
+ #if defined(AUTHENTICATE)
+ case TELOPT_AUTHENTICATION:
+- if (autologin)
++ /* if (autologin) */
++ if (use_authentication)
+ new_state_ok = 1;
+ break;
+ #endif
+@@ -722,6 +724,7 @@
+ */
+
+ static void suboption(void) {
++ extern int auth_failed;
+ printsub('<', subbuffer, SB_LEN()+2);
+ switch (SB_GET()) {
+ case TELOPT_TTYPE:
+@@ -845,7 +848,8 @@
+
+ #if defined(AUTHENTICATE)
+ case TELOPT_AUTHENTICATION: {
+- if (!autologin)
++ /* if (!autologin) */
++ if (!use_authentication)
+ break;
+ if (SB_EOF())
+ return;
+@@ -864,6 +868,10 @@
+ if (my_want_state_is_wont(TELOPT_AUTHENTICATION))
+ return;
+ auth_reply(subpointer, SB_LEN());
++ if(auth_failed) {
++ /* auth rejected, quit */
++ quit();
++ }
+ break;
+ case TELQUAL_NAME:
+ if (my_want_state_is_dont(TELOPT_AUTHENTICATION))
+@@ -1140,6 +1148,7 @@
+
+
+ unsigned char slc_reply[128];
++unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)];
+ unsigned char *slc_replyp;
+
+ void slc_start_reply(void) {
+@@ -1151,6 +1160,14 @@
+ }
+
+ void slc_add_reply(int func, int flags, int value) {
++ /* A sequence of up to 6 bytes my be written for this member of the SLC
++ * suboption list by this function. The end of negotiation command,
++ * which is written by slc_end_reply(), will require 2 additional
++ * bytes. Do not proceed unless there is sufficient space for these
++ * items.
++ */
++ if (&slc_replyp[6+2] > slc_reply_eom)
++ return;
+ if ((*slc_replyp++ = func) == IAC)
+ *slc_replyp++ = IAC;
+ if ((*slc_replyp++ = flags) == IAC)
+@@ -1819,25 +1836,19 @@
+ */
+ void telnet(const char *user) {
+ sys_telnet_init();
+-
+-#if defined(AUTHENTICATE)
+- {
+- static char local_host[256] = { 0 };
+- int len = sizeof(local_host);
+-
+- if (!local_host[0]) {
+- gethostname(local_host, len); /* WAS &len!!! */
+- local_host[sizeof(local_host)-1] = 0;
+- }
+- auth_encrypt_init(local_host, hostname, "TELNET", 0);
+- auth_encrypt_user(user);
+- }
++
++#ifdef AUTHENTICATE
++ auth_encrypt_user(user);
+ #endif
+-
++
+ #if !defined(TN3270)
+ if (telnetport) {
++
++ send_will(TELOPT_ENVIRON, 1);
++
+ #if defined(AUTHENTICATE)
+- if (autologin)
++ /* if (autologin) */
++ if (use_authentication)
+ send_will(TELOPT_AUTHENTICATION, 1);
+ #endif
+ send_do(TELOPT_SGA, 1);
+@@ -1846,7 +1857,6 @@
+ send_will(TELOPT_TSPEED, 1);
+ send_will(TELOPT_LFLOW, 1);
+ send_will(TELOPT_LINEMODE, 1);
+- send_will(TELOPT_ENVIRON, 1);
+ send_do(TELOPT_STATUS, 1);
+ if (env_getvalue("DISPLAY", 0))
+ send_will(TELOPT_XDISPLOC, 1);
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/terminal.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/terminal.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/terminal.cc 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/terminal.cc 2010-05-11 13:44:40.080321548 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)terminal.c 5.3 (Berkeley) 3/22/91
+ */
+ char terminal_rcsid[] =
+- "$Id: terminal.cc,v 1.25 1999/12/12 19:48:05 dholland Exp $";
++ "$Id: terminal.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include <arpa/telnet.h>
+ #include <sys/types.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/tn3270.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/tn3270.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/tn3270.cc 1996-08-13 11:08:34.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/tn3270.cc 2010-05-11 13:44:40.080321548 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)tn3270.c 5.2 (Berkeley) 3/1/91
+ */
+ char tn3270_rcsid[] =
+- "$Id: tn3270.cc,v 1.9 1996/08/13 09:08:34 dholland Exp $";
++ "$Id: tn3270.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include <sys/types.h>
+ #include <arpa/telnet.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/types.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/types.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/types.h 1996-07-27 02:45:54.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/types.h 2010-05-11 13:44:40.083654043 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)types.h 5.1 (Berkeley) 9/14/90
+- * $Id: types.h,v 1.2 1996/07/27 00:45:54 dholland Exp $
++ * $Id: types.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ typedef struct {
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/utilities.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/utilities.cc
+--- netkit-telnet-ssl-0.17.24+0.1/telnet/utilities.cc 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/utilities.cc 2010-05-11 13:44:40.083654043 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)utilities.c 5.3 (Berkeley) 3/22/91
+ */
+ char util_rcsid[] =
+- "$Id: utilities.cc,v 1.19 1999/12/12 15:33:40 dholland Exp $";
++ "$Id: utilities.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #define TELOPTS
+ #define TELCMDS
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/authenc.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/authenc.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/authenc.c 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/authenc.c 2010-05-11 13:44:40.086987376 +0200
+@@ -23,7 +23,7 @@
+ * From: @(#)authenc.c 5.1 (Berkeley) 3/1/91
+ */
+ char authenc_rcsid[] =
+- "$Id: authenc.c,v 1.5 1999/12/12 14:59:44 dholland Exp $";
++ "$Id: authenc.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #if defined(ENCRYPT) || defined(AUTHENTICATE)
+ #include "telnetd.h"
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/defs.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/defs.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/defs.h 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/defs.h 2010-05-11 13:44:40.086987376 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)defs.h 5.10 (Berkeley) 3/1/91
+- * $Id: defs.h,v 1.7 1999/08/02 03:14:03 dholland Exp $
++ * $Id: defs.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ /*
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/ext.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/ext.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/ext.h 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/ext.h 2010-05-11 13:44:40.086987376 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)ext.h 5.7 (Berkeley) 3/1/91
+- * $Id: ext.h,v 1.9 1999/12/12 14:59:44 dholland Exp $
++ * $Id: ext.h,v 1.2 2004-11-21 12:53:12 ianb Exp $
+ */
+
+ /*
+@@ -113,7 +113,7 @@
+ void interrupt(void);
+ void localstat(void);
+ void netclear(void);
+-void netflush(void);
++int netflush(void);
+ size_t netbuflen(int);
+ void sendurg(const char *, size_t);
+
+@@ -183,7 +183,8 @@
+ void tty_tspeed(int);
+ void willoption(int);
+ void wontoption(int);
+-#define writenet(b, l) fwrite(b, 1, l, netfile)
++int writenet(char *, int);
++/*#define writenet(b, l) fwrite(b, 1, l, netfile)*/
+ void netopen(void);
+
+ #if defined(ENCRYPT)
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/getent.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/getent.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/getent.c 1996-08-15 08:23:28.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/getent.c 2010-05-11 13:44:40.086987376 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)getent.c 5.1 (Berkeley) 2/28/91
+ */
+ char ge_rcsid[] =
+- "$Id: getent.c,v 1.3 1996/08/15 06:23:28 dholland Exp $";
++ "$Id: getent.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ /*
+ * Copyright (c) 1991 Regents of the University of California.
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/global.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/global.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/global.c 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/global.c 2010-05-11 13:44:40.090341661 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)global.c 5.2 (Berkeley) 6/1/90
+ */
+ char global_rcsid[] =
+- "$Id: global.c,v 1.4 1999/12/12 14:59:44 dholland Exp $";
++ "$Id: global.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ /*
+ * Allocate global variables.
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/issue.net.5 netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/issue.net.5
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/issue.net.5 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/issue.net.5 2010-05-11 13:44:40.090341661 +0200
+@@ -15,26 +15,26 @@
+ .Pa /etc/issue.net
+ is a text file which contains a message or system identification to be
+ printed before the login prompt of a telnet session. It may contain
+-various `%-char' sequences. The following sequences are supported by
++various `%\&\-char' sequences. The following sequences are supported by
+ .Ic telnetd :
+ .Bl -tag -offset indent -compact -width "abcde"
+-.It %t
++.It %\&t
+ - show the current tty
+-.It %h
++.It %\&h
+ - show the system node name (FQDN)
+-.It %D
++.It %\&D
+ - show the name of the NIS domain
+-.It %d
++.It %\&d
+ - show the current time and date
+-.It %s
++.It %\&s
+ - show the name of the operating system
+-.It %m
++.It %\&m
+ - show the machine (hardware) type
+-.It %r
++.It %\&r
+ - show the operating system release
+-.It %v
++.It %\&v
+ - show the operating system version
+-.It %%
++.It %\&%
+ - display a single '%' character
+ .El
+ .Sh FILES
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/Makefile
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/Makefile 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/Makefile 2010-05-11 14:12:59.493485309 +0200
+@@ -9,9 +9,11 @@
+ # take out -DPARANOID_TTYS.
+
+ CFLAGS += '-DISSUE_FILE="/etc/issue.net"' -DPARANOID_TTYS \
+- -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS \
+- -DLOGIN_WRAPPER=\"/usr/lib/telnetlogin\"
+-# LIBS += $(LIBTERMCAP)
++ -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS -DAUTHENTICATE \
++ -DLOGIN_WRAPPER=\"/usr/lib/telnetlogin\" \
++ -DUSE_SSL -I/usr/include/openssl -I..
++LIBTELNET = ../libtelnet/libtelnet.a
++LIBS += $(LIBTERMCAP) $(LIBTELNET) -lssl -lcrypto
+
+ OBJS = telnetd.o state.o termstat.o slc.o sys_term.o utility.o \
+ global.o setproctitle.o
+@@ -28,10 +30,10 @@
+ telnetd.o: ../version.h
+
+ install: telnetd
+- install -s -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd
+- install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/
+- install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd.8
+- ln -sf in.telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd.8
++ install -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd-ssl
++# install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/
++ install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd-ssl.8
++ ln -sf in.telnetd-ssl.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd-ssl.8
+
+ clean:
+ rm -f *.o telnetd
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/pathnames.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/pathnames.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/pathnames.h 1996-08-30 00:31:24.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/pathnames.h 2010-05-11 13:44:40.090341661 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)pathnames.h 5.5 (Berkeley) 6/28/90
+- * $Id: pathnames.h,v 1.3 1996/08/29 22:31:24 dholland Exp $
++ * $Id: pathnames.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+ #include <paths.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.3 netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.3
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.3 2000-07-31 01:57:09.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.3 2010-05-11 13:44:40.090341661 +0200
+@@ -1,5 +1,5 @@
+ .\" OpenBSD: setproctitle.3,v 1.4 1996/10/08 01:20:08 michaels Exp
+-.\" $Id: setproctitle.3,v 1.13 2000/07/30 23:57:09 dholland Exp $
++.\" $Id: setproctitle.3,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ .\"
+ .\" Copyright (c) 1994, 1995 Christopher G. Demetriou
+ .\" All rights reserved.
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.c 2004-05-27 11:47:01.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.c 2010-05-11 13:44:40.090341661 +0200
+@@ -39,7 +39,7 @@
+ * From: @(#)conf.c 8.243 (Berkeley) 11/20/95
+ */
+ char setproctitle_rcsid[] =
+- "$Id: setproctitle.c,v 1.3 1999/12/10 23:06:39 bryce Exp $";
++ "$Id: setproctitle.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include <stdlib.h>
+ #include <string.h>
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/slc.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/slc.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/slc.c 1999-12-12 15:59:44.000000000 +0100
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/slc.c 2010-05-11 13:44:40.096989611 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)slc.c 5.7 (Berkeley) 3/1/91
+ */
+ char slc_rcsid[] =
+- "$Id: slc.c,v 1.5 1999/12/12 14:59:44 dholland Exp $";
++ "$Id: slc.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include "telnetd.h"
+
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/state.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/state.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/state.c 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/state.c 2010-05-11 13:44:40.100321827 +0200
+@@ -35,11 +35,12 @@
+ * From: @(#)state.c 5.10 (Berkeley) 3/22/91
+ */
+ char state_rcsid[] =
+- "$Id: state.c,v 1.12 1999/12/12 19:41:44 dholland Exp $";
++ "$Id: state.c,v 1.5 2005-07-07 21:53:00 ianb Exp $";
+
+ #include "telnetd.h"
+ #if defined(AUTHENTICATE)
+ #include <libtelnet/auth.h>
++extern char *UserNameRequested;
+ #endif
+
+ int not42 = 1;
+@@ -1161,7 +1162,7 @@
+
+ case TELOPT_ENVIRON: {
+ register int c;
+- register char *cp, *varp, *valp;
++ register unsigned char *cp, *varp, *valp;
+
+ if (SB_EOF())
+ return;
+@@ -1177,25 +1178,41 @@
+ if (SB_EOF())
+ return;
+
+- cp = varp = (char *)subpointer;
++ cp = varp = (unsigned char *)subpointer;
+ valp = 0;
+
+ while (!SB_EOF()) {
+ switch (c = SB_GET()) {
+ case ENV_VALUE:
+ *cp = '\0';
+- cp = valp = (char *)subpointer;
++ cp = valp = (unsigned char *)subpointer;
+ break;
+
+ case ENV_VAR:
+ *cp = '\0';
+- if (envvarok(varp)) {
+- if (valp)
+- (void)setenv(varp, valp, 1);
+- else
+- unsetenv(varp);
++ if (envvarok((char *)varp)) {
++ if (valp) {
++ (void)setenv((char *)varp, (char *)valp, 1);
++#ifdef AUTHENTICATE
++ if (strcmp((char *)varp,"USER") == 0) {
++ if (UserNameRequested)
++ free(UserNameRequested);
++ UserNameRequested=strdup((char *)valp);
++ }
++#endif /* AUTHENTICATE */
++ }
++ else {
++ unsetenv((char *)varp);
++#ifdef AUTHENTICATE
++ if (strcmp((char *)varp,"USER") == 0) {
++ if (UserNameRequested)
++ free(UserNameRequested);
++ UserNameRequested=NULL;
++ }
++#endif /* AUTHENTICATE */
++ }
+ }
+- cp = varp = (char *)subpointer;
++ cp = varp = (unsigned char *)subpointer;
+ valp = 0;
+ break;
+
+@@ -1211,11 +1228,27 @@
+ }
+ }
+ *cp = '\0';
+- if (envvarok(varp)) {
+- if (valp)
+- (void)setenv(varp, valp, 1);
+- else
+- unsetenv(varp);
++ if (envvarok((char *)varp)) {
++ if (valp) {
++ (void)setenv((char *)varp, (char *)valp, 1);
++#ifdef AUTHENTICATE
++ if (strcmp((char *)varp,"USER") == 0) {
++ if (UserNameRequested)
++ free(UserNameRequested);
++ UserNameRequested=strdup((char *)valp);
++ }
++#endif /* AUTHENTICATE */
++ }
++ else {
++ unsetenv((char *)varp);
++#ifdef AUTHENTICATE
++ if (strcmp((char *)varp,"USER") == 0) {
++ if (UserNameRequested)
++ free(UserNameRequested);
++ UserNameRequested=NULL;
++ }
++#endif /* AUTHENTICATE */
++ }
+ }
+ break;
+ } /* end of case TELOPT_ENVIRON */
+@@ -1367,7 +1400,7 @@
+ ADD(IAC);
+ ADD(SE);
+
+- writenet(statusbuf, ncp - statusbuf);
++ writenet((char *)statusbuf, ncp - statusbuf);
+ netflush(); /* Send it on its way */
+
+ DIAG(TD_OPTIONS, {printsub('>', statusbuf, ncp - statusbuf); netflush();});
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/sys_term.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/sys_term.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/sys_term.c 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/sys_term.c 2010-05-11 13:44:40.106987377 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)sys_term.c 5.16 (Berkeley) 3/22/91
+ */
+ char st_rcsid[] =
+- "$Id: sys_term.c,v 1.17 1999/12/17 14:28:47 dholland Exp $";
++ "$Id: sys_term.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include <utmp.h>
+
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.8 netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.8
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.8 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.8 2010-05-11 13:44:40.106987377 +0200
+@@ -30,7 +30,7 @@
+ .\" SUCH DAMAGE.
+ .\"
+ .\" from: @(#)telnetd.8 6.8 (Berkeley) 4/20/91
+-.\" $Id: telnetd.8,v 1.18 2000/07/30 23:57:10 dholland Exp $
++.\" $Id: telnetd.8,v 1.5 2006-09-24 00:48:31 ianb Exp $
+ .\"
+ .Dd December 29, 1996
+ .Dt TELNETD 8
+@@ -42,7 +42,7 @@
+ protocol server
+ .Sh SYNOPSIS
+ .Nm /usr/sbin/in.telnetd
+-.Op Fl hns
++.Op Fl hnNs
+ .Op Fl a Ar authmode
+ .Op Fl D Ar debugmode
+ .Op Fl L Ar loginprg
+@@ -50,6 +50,7 @@
+ .Op Fl X Ar authtype
+ .Op Fl edebug
+ .Op Fl debug Ar port
++.Op Fl z Ar sslopt
+ .Sh DESCRIPTION
+ The
+ .Nm telnetd
+@@ -175,6 +176,9 @@
+ if the client is still there, so that idle connections
+ from machines that have crashed or can no longer
+ be reached may be cleaned up.
++.It Fl N
++Disable reverse DNS lookups and use the numeric IP address in logs
++and REMOTEHOST environment variable.
+ .It Fl s
+ This option is only enabled if
+ .Nm telnetd
+@@ -219,12 +223,16 @@
+ only accepts connections from SSL enhanced telnet with option
+ .Ic -z ssl
+ .It Ic nossl, !ssl
+-switch of SSL negotiation
++switch off SSL negotiation
+ .It Ic certsok
+ Look username up in /etc/ssl.users. The format of this file is lines
+ of this form:
+ .Ar user1,user2:/C=US/.....
+-where user1 and user2 are usernames. If client certificate is valid,
++where user1 and user2 are usernames and /C=US/... is the subject name of
++the certificate. Use
++.Ar openssl x509 -subject -noout
++to extract the subject name.
++If client certificate is valid,
+ authenticate without password.
+ .It Ic certrequired
+ client certificate is mandatory
+@@ -451,7 +459,6 @@
+ is compiled with support for data encryption, and
+ indicates a willingness to decrypt
+ the data stream.
+-.Xr issue.net 5 ) .
+ .El
+ .Sh FILES
+ .Pa /etc/services ,
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.c 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.c 2010-05-11 13:44:40.113654043 +0200
+@@ -39,7 +39,7 @@
+ * From: @(#)telnetd.c 5.48 (Berkeley) 3/1/91
+ */
+ char telnetd_rcsid[] =
+- "$Id: telnetd.c,v 1.24 2000/04/12 21:36:12 dholland Exp $";
++ "$Id: telnetd.c,v 1.7 2006-06-16 13:29:00 ianb Exp $";
+
+ #include "../version.h"
+
+@@ -90,6 +90,7 @@
+
+ int debug = 0;
+ int keepalive = 1;
++int numeric_hosts = 0;
+ #ifdef LOGIN_WRAPPER
+ char *loginprg = LOGIN_WRAPPER;
+ #else
+@@ -222,13 +223,12 @@
+ * certificate that we will be running with as we cannot
+ * be sure of the cwd when we are launched
+ */
+- sprintf(cert_filepath,"%s/%s",X509_get_default_cert_dir(),
+- "telnetd.pem");
++ strcpy(cert_filepath, "/etc/telnetd-ssl/telnetd.pem");
+ ssl_cert_file=cert_filepath;
+ ssl_key_file=NULL;
+ #endif /* USE_SSL */
+
+- while ((ch = getopt(argc, argv, "d:a:e:lhnr:I:D:B:sS:a:X:L:z:")) != EOF) {
++ while ((ch = getopt(argc, argv, "d:a:e:lhnNr:I:D:B:sS:a:X:L:z:")) != EOF) {
+ switch(ch) {
+
+ #ifdef USE_SSL
+@@ -389,6 +389,10 @@
+ keepalive = 0;
+ break;
+
++ case 'N':
++ numeric_hosts = 1;
++ break;
++
+ #ifdef SecurID
+ case 's':
+ /* SecurID required */
+@@ -427,7 +431,7 @@
+
+ #ifdef USE_SSL
+
+- if (ssl_secure_flag || ssl_cert_required) {
++ if (ssl_secure_flag || ssl_cert_required || ssl_certsok_flag) {
+ /* in secure mode we *must* switch on the base level
+ * verify checking otherwise we cannot abort connections
+ * at the right place!
+@@ -520,9 +524,9 @@
+ sprintf(errbuf,"SSL_accept error %s\n",
+ ERR_error_string(ERR_get_error(),NULL));
+
+- syslog(LOG_WARNING, errbuf);
++ syslog(LOG_WARNING, "%s", errbuf);
+
+- BIO_printf(bio_err,errbuf);
++ BIO_printf(bio_err,"%s",errbuf);
+
+ /* go to sleep to make sure we are noticed */
+ sleep(10);
+@@ -571,6 +575,11 @@
+ #ifdef AUTHENTICATE
+ fprintf(stderr, " [-X auth-type]");
+ #endif
++#ifdef USE_SSL
++ /* might as well output something useful here ... */
++ fprintf(stderr, "\n\t [-z ssl] [-z secure] [-z debug] [-z verify=int]\n\t");
++ fprintf(stderr, " [-z cert=file] [-z key=file]\n\t");
++#endif /* USE_SSL */
+ fprintf(stderr, "\n");
+ exit(1);
+ }
+@@ -596,6 +605,18 @@
+ /*
+ * Handle the Authentication option before we do anything else.
+ */
++ send_do(TELOPT_ENVIRON, 1);
++ while (his_will_wont_is_changing(TELOPT_ENVIRON)) {
++ ttloop();
++ }
++
++ if (his_state_is_will(TELOPT_ENVIRON)) {
++ netoprintf("%c%c%c%c%c%c",
++ IAC, SB, TELOPT_ENVIRON, TELQUAL_SEND, IAC, SE);
++ while (sequenceIs(environsubopt, baseline))
++ ttloop();
++ }
++
+ send_do(TELOPT_AUTHENTICATION, 1);
+ while (his_will_wont_is_changing(TELOPT_AUTHENTICATION))
+ ttloop();
+@@ -654,7 +675,6 @@
+ send_do(TELOPT_TTYPE, 1);
+ send_do(TELOPT_TSPEED, 1);
+ send_do(TELOPT_XDISPLOC, 1);
+- send_do(TELOPT_ENVIRON, 1);
+ while (
+ #if defined(ENCRYPT)
+ his_do_dont_is_changing(TELOPT_ENCRYPT) ||
+@@ -698,10 +718,6 @@
+ while (sequenceIs(xdisplocsubopt, baseline))
+ ttloop();
+ }
+- if (his_state_is_will(TELOPT_ENVIRON)) {
+- while (sequenceIs(environsubopt, baseline))
+- ttloop();
+- }
+ if (his_state_is_will(TELOPT_TTYPE)) {
+ char first[256], last[256];
+
+@@ -852,7 +868,7 @@
+ static void
+ doit(struct sockaddr *who, socklen_t who_len)
+ {
+- const char *host;
++ char *host;
+ int level;
+ char user_name[256];
+ int i;
+@@ -867,7 +883,8 @@
+
+ /* get name of connected client */
+ if (getnameinfo(who, who_len, remote_host_name,
+- sizeof(remote_host_name), 0, 0, 0)) {
++ sizeof(remote_host_name), 0, 0,
++ numeric_hosts ? NI_NUMERICHOST : 0)) {
+ syslog(LOG_ERR, "doit: getnameinfo: %m");
+ *remote_host_name = 0;
+ }
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.h
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.h 1999-03-27 08:46:21.000000000 +0100
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.h 2010-05-11 13:44:40.113654043 +0200
+@@ -31,7 +31,7 @@
+ * SUCH DAMAGE.
+ *
+ * from: @(#)telnetd.h 5.3 (Berkeley) 3/1/91
+- * $Id: telnetd.h,v 1.2 1999/03/27 07:46:21 dholland Exp $
++ * $Id: telnetd.h,v 1.1 2004-10-14 13:19:53 ianb Exp $
+ */
+
+
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/termstat.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/termstat.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/termstat.c 1999-12-12 15:59:45.000000000 +0100
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/termstat.c 2010-05-11 13:44:40.113654043 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)termstat.c 5.10 (Berkeley) 3/22/91
+ */
+ char termstat_rcsid[] =
+- "$Id: termstat.c,v 1.6 1999/12/12 14:59:45 dholland Exp $";
++ "$Id: termstat.c,v 1.1 2004-10-14 13:19:53 ianb Exp $";
+
+ #include "telnetd.h"
+
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/utility.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/utility.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetd/utility.c 2004-05-27 11:47:27.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/utility.c 2010-05-11 13:45:21.990318196 +0200
+@@ -35,7 +35,7 @@
+ * From: @(#)utility.c 5.8 (Berkeley) 3/22/91
+ */
+ char util_rcsid[] =
+- "$Id: utility.c,v 1.11 1999/12/12 14:59:45 dholland Exp $";
++ "$Id: utility.c,v 1.8 2006-09-24 00:48:31 ianb Exp $";
+
+ #define PRINTOPTIONS
+
+@@ -49,6 +49,15 @@
+
+ #include "telnetd.h"
+
++/* patched by fluke.l at gmail.com , im not sure it's gonna work or not */
++typedef struct {
++ int (*read) (void *, char *, int);
++ int (*write) (void *, char const *, int);
++ fpos_t (*seek) (void *, fpos_t, int);
++ int (*close) (void *);
++} cookie_io_functions_t;
++/* end patch */
++
+ struct buflist {
+ struct buflist *next;
+ char *buf;
+@@ -86,6 +95,11 @@
+ DIAG(TD_REPORT, netoprintf("td: ttloop\r\n"););
+
+ netflush();
++#ifdef USE_SSL
++ if (ssl_active_flag)
++ ncc = SSL_read(ssl_con, netibuf, sizeof netibuf);
++ else
++#endif /* USE_SSL */
+ ncc = read(net, netibuf, sizeof(netibuf));
+ if (ncc < 0) {
+ syslog(LOG_INFO, "ttloop: read: %m\n");
+@@ -216,7 +230,7 @@
+ }
+
+ out:
+- return next ? next + (current - end) : current;
++ return (const char *) (next ? (next + (current - end)) : current );
+ } /* end of nextitem */
+
+
+@@ -243,6 +257,29 @@
+ doclear--;
+ } /* end of netclear */
+
++#ifdef USE_SSL
++static int
++SSL_writev(SSL *ssl_con,const struct iovec *vector,int num)
++{
++ const struct iovec *v = vector;
++
++ int ret;
++ int len = 0;
++
++ while (num > 0) {
++ ret = SSL_write(ssl_con, v->iov_base, v->iov_len);
++ if (ret < 0)
++ return ret;
++ if (ret != v->iov_len)
++ syslog(LOG_NOTICE, "SSL_writev: short write\n");
++ num -= v->iov_len;
++ len += ret;
++ v++;
++ }
++ return len;
++}
++#endif /* USE_SSL */
++
+ static void
+ netwritebuf(void)
+ {
+@@ -253,6 +290,9 @@
+ size_t len;
+ int ltrailing = trailing;
+
++ if (!listlen)
++ return;
++
+ vector = malloc(listlen * sizeof(struct iovec));
+ if (!vector) {
+ return;
+@@ -265,6 +305,11 @@
+ if (lp == urg) {
+ len = v - vector;
+ if (!len) {
++#ifdef USE_SSL
++ if (ssl_active_flag)
++ n = SSL_write(ssl_con, lp->buf, 1);
++ else
++#endif /* USE_SSL */
+ n = send(net, lp->buf, 1, MSG_OOB);
+ if (n > 0) {
+ urg = 0;
+@@ -282,15 +327,25 @@
+ vector->iov_base = (char *)vector->iov_base + skip;
+ vector->iov_len -= skip;
+
+- n = writev(net, vector, len);
++ if(vector->iov_len == 0 ) {
++ n=0;
++ } else {
++
++#ifdef USE_SSL
++ if (ssl_active_flag)
++ n = SSL_writev(ssl_con, vector, len); /* normal write */
++ else
++#endif /* USE_SSL */
++ n = writev(net, vector, len);
+
+ epi:
+- free(vector);
++ free(vector);
+
+- if (n < 0) {
++ if (n < 0) {
+ if (errno != EWOULDBLOCK && errno != EINTR)
+- cleanup(0);
++ cleanup(0);
+ return;
++ }
+ }
+
+ len = n + skip;
+@@ -315,6 +370,10 @@
+ }
+ }
+
++ if(ltrailing && (len==0)) {
++ ltrailing=trailing=0;
++ }
++
+ skip = len;
+ }
+
+@@ -323,16 +382,22 @@
+ * Send as much data as possible to the network,
+ * handling requests for urgent data.
+ */
+-void
++int
+ netflush(void)
+ {
+ if (fflush(netfile)) {
+ /* out of memory? */
+ cleanup(0);
++ return 0;
+ }
+- if (listlen) {
+- netwritebuf();
+- }
++ netwritebuf();
++ return 1;
++}
++
++int
++writenet(char *b , int l)
++{
++ return(fwrite(b, 1, l, netfile));
+ }
+
+
+@@ -983,7 +1048,7 @@
+ ((pointer[3] & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) ?
+ "MUTUAL" : "ONE-WAY");
+
+- auth_printsub(&pointer[1], length - 1, buf, sizeof(buf));
++ auth_printsub(&pointer[1], length - 1, (unsigned char *) buf, sizeof(buf));
+ netoprintf("%s", buf);
+ break;
+
+@@ -1191,7 +1256,15 @@
+ size_t l;
+ size_t m = tail->len;
+
+- p = nextitem(tail->buf, tail->buf + tail->len, buf, end);
++ if((tail->buf == NULL) || (tail->len==0))
++ {
++ p = nextitem((unsigned char *) buf, (unsigned char *) end,0,0);
++ }
++ else
++ {
++ p = nextitem((unsigned char *) tail->buf, (unsigned char *) (tail->buf + tail->len),
++ (unsigned char *) buf, (unsigned char *) end);
++ }
+ ltrailing = !p;
+ if (ltrailing) {
+ p = end;
+@@ -1245,7 +1318,7 @@
+ const char *p;
+ size_t l;
+
+- p = nextitem(buf, end, 0, 0);
++ p = nextitem((unsigned char *) buf, (unsigned char *) end, 0, 0);
+ ltrailing = !p;
+ if (ltrailing) {
+ p = end;
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetlogin/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/Makefile
+--- netkit-telnet-ssl-0.17.24+0.1/telnetlogin/Makefile 2000-04-13 03:07:22.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/Makefile 2010-05-11 13:46:19.023660189 +0200
+@@ -11,7 +11,7 @@
+ $(OBJS): ../version.h
+
+ install: telnetlogin
+- install -s -m4750 -oroot -gtelnetd telnetlogin $(INSTALLROOT)$(SBINDIR)
++ install -m$(BINMODE) telnetlogin $(INSTALLROOT)$(SBINDIR)
+ install -m$(MANMODE) telnetlogin.8 $(INSTALLROOT)$(MANDIR)/man8
+
+ clean:
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.8 netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.8
+--- netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.8 2004-05-27 11:47:02.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.8 2010-05-11 13:44:40.123659071 +0200
+@@ -28,7 +28,7 @@
+ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ .\" SUCH DAMAGE.
+ .\"
+-.\" $Id: telnetlogin.8,v 1.4 2000/07/30 23:57:10 dholland Exp $
++.\" $Id: telnetlogin.8,v 1.2 2004-11-07 15:47:43 ianb Exp $
+ .\"
+ .Dd April 12, 2000
+ .Dt TELNETLOGIN 8
+@@ -40,6 +40,7 @@
+ .Nm telnetlogin
+ .Op Fl h Ar host
+ .Op Fl p
++.Op Fl f Ar username
+ .Op Ar username
+ .Sh DESCRIPTION
+ .Nm telnetlogin
+@@ -79,11 +80,6 @@
+ .Xr inetd 8 ,
+ .Xr telnetd 8
+ .Sh RESTRICTIONS
+-.Nm telnetlogin
+-does not permit the
+-.Fl f
+-option to login, so will not
+-work with telnetds that perform authentication via Kerberos or SSL.
+ .Pp
+ THIS IS PRESENTLY EXPERIMENTAL CODE; USE WITH CAUTION.
+ .Sh HISTORY
+diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.c
+--- netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.c 2004-05-27 11:47:02.000000000 +0200
++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.c 2010-05-11 13:44:40.123659071 +0200
+@@ -35,7 +35,7 @@
+ "All rights reserved.\n";
+
+ char rcsid[] =
+- "$Id: telnetlogin.c,v 1.1 2000/04/13 01:07:22 dholland Exp $";
++ "$Id: telnetlogin.c,v 1.2 2004-11-07 15:47:43 ianb Exp $";
+ #include "../version.h"
+
+ #include <sys/types.h>
+@@ -76,7 +76,16 @@
+ int i=0;
+ /* should we check length? */
+ for (i=0; hname[i]; i++) {
+- if (hname[i]<=32 && hname[i]>126) return -1;
++ if ((hname[i]<=32) || (hname[i]>126)) return -1;
++ }
++ return 0;
++}
++
++static int check_username(char *username) {
++ int i;
++ if (strlen(username) > 32) return -1;
++ for (i=0; username[i]; i++) {
++ if ((username[i]<=32) || (username[i]>126)) return -1;
+ }
+ return 0;
+ }
+@@ -158,6 +167,12 @@
+ if (argn < argc && !strcmp(argv[argn], "-p")) {
+ argn++;
+ }
++ if (argn < argc && !strcmp(argv[argn], "-f")) {
++ argn++;
++ if (argn==argc) die("Illegal args: -f requires argument");
++ if (check_username(argv[argn])) die("Illegal remote username specified");
++ argn++;
++ }
+ if (argn < argc && argv[argn][0] != '-') {
+ argn++;
+ }
diff --git a/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install
new file mode 100644
index 0000000..25a4b28
--- /dev/null
+++ b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install
@@ -0,0 +1,5 @@
+
+post_install() {
+ groupadd telnetd
+}
+
diff --git a/abs/not_built/core/netkit-telnet-ssl/telnet.xinetd b/abs/not_built/core/netkit-telnet-ssl/telnet.xinetd
new file mode 100644
index 0000000..f4ef4c0
--- /dev/null
+++ b/abs/not_built/core/netkit-telnet-ssl/telnet.xinetd
@@ -0,0 +1,10 @@
+service telnet-ssl
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/in.telnetd-ssl
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi b/abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi
new file mode 100644
index 0000000..54195d8
--- /dev/null
+++ b/abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+ <device>
+ <match key="volume.fstype" string="ntfs">
+ <append key="volume.fstype.alternative" type="copy_property">volume.fstype</append>
+ <merge key="volume.mount.ntfs.valid_options" type="copy_property">volume.mount.valid_options</merge>
+ <merge key="volume.unmount.ntfs.valid_options" type="copy_property">volume.unmount.valid_options</merge>
+ <merge key="volume.fstype" type="string">ntfs-3g</merge>
+ <merge key="volume.mount.valid_options" type="strlist">ro</merge>
+ <append key="volume.mount.valid_options" type="strlist">atime</append>
+ <append key="volume.mount.valid_options" type="strlist">noatime</append>
+ <append key="volume.mount.valid_options" type="strlist">relatime</append>
+ <append key="volume.mount.valid_options" type="strlist">fake_rw</append>
+ <append key="volume.mount.valid_options" type="strlist">no_def_opts</append>
+ <append key="volume.mount.valid_options" type="strlist">default_permissions</append>
+ <append key="volume.mount.valid_options" type="strlist">umask=</append>
+ <append key="volume.mount.valid_options" type="strlist">fmask=</append>
+ <append key="volume.mount.valid_options" type="strlist">dmask=</append>
+ <append key="volume.mount.valid_options" type="strlist">uid=</append>
+ <append key="volume.mount.valid_options" type="strlist">gid=</append>
+ <append key="volume.mount.valid_options" type="strlist">show_sys_files</append>
+ <append key="volume.mount.valid_options" type="strlist">silent</append>
+ <append key="volume.mount.valid_options" type="strlist">force</append>
+ <append key="volume.mount.valid_options" type="strlist">remove_hiberfile</append>
+ <append key="volume.mount.valid_options" type="strlist">locale=</append>
+ <append key="volume.mount.valid_options" type="strlist">streams_interface=</append>
+ <append key="volume.mount.valid_options" type="strlist">debug</append>
+ <append key="volume.mount.valid_options" type="strlist">no_detatch</append>
+ <append key="volume.mount.valid_options" type="strlist">sync</append>
+ <append key="volume.mount.valid_options" type="strlist">dirsync</append>
+ <append key="volume.mount.valid_options" type="strlist">nodiratime</append>
+ <append key="volume.mount.valid_options" type="strlist">noexec</append>
+ <append key="volume.mount.valid_options" type="strlist">quiet</append>
+ <append key="volume.mount.valid_options" type="strlist">remount</append>
+ <append key="volume.mount.valid_options" type="strlist">exec</append>
+ <append key="volume.mount.valid_options" type="strlist">recover</append>
+ <append key="volume.mount.valid_options" type="strlist">norecover</append>
+ <merge key="volume.unmount.valid_options" type="strlist">lazy</merge>
+ <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
+ </match>
+ </device>
+</deviceinfo>
diff --git a/abs/not_built/core/ntfs-3g/PKGBUILD b/abs/not_built/core/ntfs-3g/PKGBUILD
new file mode 100644
index 0000000..03a7168
--- /dev/null
+++ b/abs/not_built/core/ntfs-3g/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 94455 2010-10-07 10:35:38Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Thomas Bächler <thomas.archlinux.org>
+
+pkgname=ntfs-3g
+pkgver=2010.10.2
+pkgrel=1
+pkgdesc="Stable read and write NTFS driver"
+url="http://www.tuxera.com"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('glibc' 'fuse')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.tuxera.com/opensource/${pkgname}-${pkgver}.tgz
+ 25-ntfs-config-write-policy.fdi)
+sha1sums=('97531dc0e556596e6bf2169863e9b8368c7d2bd0'
+ '200029f2999a2c284fd30ae25734abf6459c3501')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \
+ --with-fuse=external --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ ln -s /bin/ntfs-3g "${pkgdir}/sbin/mount.ntfs"
+ install -m755 -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor"
+ install -m644 "${srcdir}/25-ntfs-config-write-policy.fdi" "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/"
+}
diff --git a/abs/not_built/core/ntfsprogs/PKGBUILD b/abs/not_built/core/ntfsprogs/PKGBUILD
new file mode 100644
index 0000000..56bf765
--- /dev/null
+++ b/abs/not_built/core/ntfsprogs/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 48342 2009-08-01 14:46:45Z jgc $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=ntfsprogs
+pkgver=2.0.0
+pkgrel=4
+depends=('glibc' 'fuse' 'util-linux-ng>=2.16')
+makedepends=('pkgconfig')
+pkgdesc="NTFS filesystem utilities"
+arch=(i686 x86_64)
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/linux-ntfs/${pkgname}-${pkgver}.tar.gz)
+url="http://www.linux-ntfs.org/"
+options=(!libtool)
+md5sums=('2c402b647bb7aeb1d3f8ce1cc354fd68')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-gnome-vfs \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
diff --git a/abs/not_built/core/ntfsprogs/ntfsprogs.install b/abs/not_built/core/ntfsprogs/ntfsprogs.install
new file mode 100644
index 0000000..a58d672
--- /dev/null
+++ b/abs/not_built/core/ntfsprogs/ntfsprogs.install
@@ -0,0 +1,24 @@
+ # arg 1: the new package version
+post_install() {
+cat << EOF
+NOTE:
+==> There is a good guide to use the ntfsresize utility at:
+ 'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html'
+
+WARNING:
+==> This program "can" cause dataloss if you don't use it right!
+==> Make a backup of your files! You have been warned !!!
+EOF
+
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+post_install $1
+}
+
+
+op=$1
+shift
+$op $* \ No newline at end of file
diff --git a/abs/not_built/core/nuvexport/MP4.pm b/abs/not_built/core/nuvexport/MP4.pm
new file mode 100755
index 0000000..e13d44b
--- /dev/null
+++ b/abs/not_built/core/nuvexport/MP4.pm
@@ -0,0 +1,316 @@
+#!/usr/bin/perl -w
+#
+# ffmpeg-based MP4 (iPod) video module for nuvexport.
+#
+# Many thanks to cartman in #ffmpeg, and for the instructions at
+# http://rob.opendot.cl/index.php?active=3&subactive=1
+# http://videotranscoding.wikispaces.com/EncodeForIPodorPSP
+#
+# @url $URL: svn+ssh://xris@svn.mythtv.org/var/lib/svn/trunk/mythextras/nuvexport/export/ffmpeg/MP4.pm $
+# @date $Date: 2008-02-16 20:54:43 -0800 (Sat, 16 Feb 2008) $
+# @version $Revision: 16110 $
+# @author $Author: xris $
+# @copyright Silicon Mechanics
+#
+
+package export::ffmpeg::MP4;
+ use base 'export::ffmpeg';
+
+# Load the myth and nuv utilities, and make sure we're connected to the database
+ use nuv_export::shared_utils;
+ use nuv_export::cli;
+ use nuv_export::ui;
+ use mythtv::recordings;
+
+# Load the following extra parameters from the commandline
+ add_arg('quantisation|q=i', 'Quantisation');
+ add_arg('a_bitrate|a=i', 'Audio bitrate');
+ add_arg('v_bitrate|v=i', 'Video bitrate');
+ add_arg('multipass!', 'Enable two-pass encoding.');
+ add_arg('mp4_codec=s', 'Video codec to use for MP4/iPod video (mpeg4 or h264).');
+ add_arg('mp4_fps=s', 'Framerate to use: auto, 25, 23.97, 29.97.');
+ add_arg('ipod!', 'Produce ipod-compatible output.');
+
+ sub new {
+ my $class = shift;
+ my $self = {
+ 'cli' => qr/\b(?:mp4|ipod)\b/i,
+ 'name' => 'Export to MP4 (iPod)',
+ 'enabled' => 1,
+ 'errors' => [],
+ 'defaults' => {},
+ };
+ bless($self, $class);
+
+ # Initialize the default parameters
+ $self->load_defaults();
+
+ # Verify any commandline or config file options
+ die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0);
+ die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0);
+ die "Width must be > 0\n" unless (!defined $self->val('width') || $self->{'width'} =~ /^\s*\D/ || $self->{'width'} > 0);
+ die "Height must be > 0\n" unless (!defined $self->val('height') || $self->{'height'} =~ /^\s*\D/ || $self->{'height'} > 0);
+
+ # VBR, multipass, etc.
+ if ($self->val('multipass')) {
+ $self->{'vbr'} = 1;
+ }
+ elsif ($self->val('quantisation')) {
+ die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31);
+ $self->{'vbr'} = 1;
+ }
+
+ # Initialize and check for ffmpeg
+ $self->init_ffmpeg();
+
+ # Can we even encode mp4?
+ if (!$self->can_encode('mp4')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mp4 file formats.";
+ }
+ if (!$self->can_encode('aac') && !$self->can_encode('libfaac')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to aac audio.";
+ }
+ if (!$self->can_encode('mpeg4') && !$self->can_encode('h264') && !$self->can_encode('libx264')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to either mpeg4 or h264 video.";
+ }
+ # Any errors? disable this function
+ $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0);
+ # Return
+ return $self;
+ }
+
+# Load default settings
+ sub load_defaults {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::load_defaults();
+ # Default settings
+ $self->{'defaults'}{'v_bitrate'} = 384;
+ $self->{'defaults'}{'a_bitrate'} = 64;
+ $self->{'defaults'}{'width'} = 320;
+ $self->{'defaults'}{'mp4_codec'} = 'mpeg4';
+ # Verify commandline options
+ if ($self->val('mp4_codec') !~ /^(?:mpeg4|h264)$/i) {
+ die "mp4_codec must be either mpeg4 or h264.\n";
+ }
+ $self->{'mp4_codec'} =~ tr/A-Z/a-z/;
+
+ }
+
+# Gather settings from the user
+ sub gather_settings {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::gather_settings();
+ # Audio Bitrate
+ $self->{'a_bitrate'} = query_text('Audio bitrate?',
+ 'int',
+ $self->val('a_bitrate'));
+ # Video options
+ if (!$is_cli) {
+ # iPod compatibility mode?
+ $self->{'ipod'} = query_text('Enable iPod compatibility?',
+ 'yesno',
+ $self->val('ipod'));
+ # Video codec
+ if ($self->{'ffmpeg_vers'} eq 'svn') {
+ while (1) {
+ my $codec = query_text('Video codec (mpeg4 or h264)?',
+ 'string',
+ $self->{'mp4_codec'});
+ if ($codec =~ /^m/) {
+ $self->{'mp4_codec'} = 'mpeg4';
+ last;
+ }
+ elsif ($codec =~ /^h/) {
+ $self->{'mp4_codec'} = 'h264';
+ last;
+ }
+ print "Please choose either mpeg4 or h264\n";
+ }
+ }
+ else {
+ $self->{'mp4_codec'} = 'mpeg4';
+ print "Using the mpeg4 codec (h.264 mp4/ipod encoding requires the svn version of ffmpeg.)\n";
+ }
+ # Video bitrate options
+ $self->{'vbr'} = query_text('Variable bitrate video?',
+ 'yesno',
+ $self->val('vbr'));
+ if ($self->{'vbr'}) {
+ $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?',
+ 'yesno',
+ $self->val('multipass'));
+ if (!$self->{'multipass'}) {
+ while (1) {
+ my $quantisation = query_text('VBR quality/quantisation (1-31)?',
+ 'float',
+ $self->val('quantisation'));
+ if ($quantisation < 1) {
+ print "Too low; please choose a number between 1 and 31.\n";
+ }
+ elsif ($quantisation > 31) {
+ print "Too high; please choose a number between 1 and 31\n";
+ }
+ else {
+ $self->{'quantisation'} = $quantisation;
+ last;
+ }
+ }
+ }
+ } else {
+ $self->{'multipass'} = 0;
+ }
+ # Ask the user what video bitrate he/she wants
+ $self->{'v_bitrate'} = query_text('Video bitrate?',
+ 'int',
+ $self->val('v_bitrate'));
+ }
+ # Complain about h264
+ if ($self->{'mp4_codec'} eq 'h264' && $self->{'ffmpeg_vers'} ne 'svn') {
+ die "h.264 mp4/ipod encoding requires the svn version of ffmpeg.\n";
+ }
+ # Loop, in case we need to verify ipod compatibility
+ while (1) {
+ # Query the resolution
+ $self->query_resolution();
+ # Warn about ipod resolution
+ if ($self->val('ipod') && ($self->{'height'} > 480 || $self->{'width'} > 640)) {
+ my $note = "WARNING: Video larger than 640x480 will not play on an iPod.\n";
+ die $note if ($is_cli);
+ print $note;
+ next;
+ }
+ # Done looping
+ last;
+ }
+ }
+
+ sub export {
+ my $self = shift;
+ my $episode = shift;
+ # Make sure this is set to anamorphic mode
+ $self->{'aspect_stretched'} = 1;
+ # Framerate
+ my $standard = ($episode->{'finfo'}{'fps'} =~ /^2(?:5|4\.9)/) ? 'PAL' : 'NTSC';
+ if ($standard eq 'PAL') {
+ $self->{'out_fps'} = 25;
+ }
+ elsif ($self->val('mp4_fps') =~ /^23/) {
+ $self->{'out_fps'} = 23.97;
+ }
+ elsif ($self->val('mp4_fps') =~ /^29/) {
+ $self->{'out_fps'} = 29.97;
+ }
+ else {
+ $self->{'out_fps'} = ($self->{'width'} > 320 || $self->{'height'} > 288) ? 29.97 : 23.97;
+ }
+ # Embed the title
+ $safe_title = $episode->{'title'};
+ if ($episode->{'subtitle'} ne 'Untitled') {
+ $safe_title .= ' - '.$episode->{'subtitle'};
+ }
+ my $safe_title = shell_escape($safe_title);
+ # Codec name changes between ffmpeg versions
+ my $codec = $self->{'mp4_codec'};
+ if ($codec eq 'h264' && $self->can_encode('libx264')) {
+ $codec = 'libx264';
+ }
+ # Build the common ffmpeg string
+ my $ffmpeg_xtra = ' -vcodec '.$codec
+ .$self->param('bit_rate', $self->{'v_bitrate'})
+ ;### ." -title $safe_title";
+ # Options required for the codecs separately
+ if ($self->{'mp4_codec'} eq 'h264') {
+ $ffmpeg_xtra .= ' -level 30'
+ ### .' -loop 1'
+ .' -g 250 -keyint_min 25'
+ .' -sc_threshold 40'
+ ### .' -rc_eq \'blurCplx^(1-qComp)\''
+ .$self->param('bit_rate_tolerance', $self->{'v_bitrate'})
+ .$self->param('rc_max_rate', 1500 - $self->{'a_bitrate'})
+ .$self->param('rc_buffer_size', 2000)
+ .$self->param('i_quant_factor', 0.71428572)
+ .$self->param('b_quant_factor', 0.76923078)
+ .$self->param('max_b_frames', 0)
+ ### .' -me umh' # this will eventually be me_method, but not all ffmpeg versions support it yet
+ ;
+ }
+ else {
+ $ffmpeg_xtra .= ' -flags +mv4' ## +trell+loop'
+ ### .' -aic 1'
+ .' -mbd 1'
+ .' -cmp 2 -subcmp 2'
+ ;
+ }
+ # Some shared options
+ if ($self->{'multipass'} || $self->{'vbr'}) {
+ $ffmpeg_xtra .= $self->param('qcompress', 0.6)
+ .$self->param('qmax', 51)
+ .$self->param('max_qdiff', 4)
+ ;
+ }
+ # Dual pass?
+ if ($self->{'multipass'}) {
+ # Apparently, the -passlogfile option doesn't work for h264, so we need
+ # to be aware of other processes that might be working in this directory
+ if ($self->{'mp4_codec'} eq 'h264' && (-e 'x264_2pass.log.temp' || -e 'x264_2pass.log')) {
+ die "ffmpeg does not allow us to specify the name of the multi-pass log\n"
+ ."file, and x264_2pass.log exists in this directory already. Please\n"
+ ."wait for the other process to finish, or remove the stale file.\n";
+ }
+ # Add all possible temporary files to the list
+ push @tmpfiles, 'x264_2pass.log',
+ 'x264_2pass.log.temp',
+ 'ffmpeg2pass-0.log';
+ # Build the ffmpeg string
+ print "First pass...\n";
+ $self->{'ffmpeg_xtra'} = ' -pass 1'
+ .$ffmpeg_xtra
+ .' -f mp4';
+ if ($self->{'mp4_codec'} eq 'h264') {
+ $self->{'ffmpeg_xtra'} .= ' -refs 1 -subq 1'
+ .' -trellis 0'
+ ;
+ }
+ $self->SUPER::export($episode, '', 1);
+ # Second Pass
+ print "Final pass...\n";
+ $ffmpeg_xtra = ' -pass 2 '
+ .$ffmpeg_xtra;
+ }
+ # Single Pass
+ else {
+ if ($self->{'vbr'}) {
+ $ffmpeg_xtra .= ' -qmin '.$self->{'quantisation'};
+ }
+ }
+ # Single/final pass options
+ if ($self->{'mp4_codec'} eq 'h264') {
+ $ffmpeg_xtra .= ' -refs '.($self->val('ipod') ? 2 : 7)
+ .' -subq 7'
+ .' -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8'
+ .' -flags2 +bpyramid+wpred+mixed_refs+8x8dct' ##+brdo'
+ .' -me_range 21'
+ .' -trellis 2'
+ .' -chromaoffset 1'
+ ### .' -slice 2'
+ ### .' -cmp 1'
+ # These should match the defaults:
+ .' -deblockalpha 0 -deblockbeta 0'
+ ;
+ }
+ # Audio codec name changes between ffmpeg versions
+ my $acodec = $self->can_encode('libfaac') ? 'libfaac' : 'aac';
+ # Don't forget the audio, etc.
+ $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+ ." -acodec $acodec -ar 48000 -async 1"
+ .$self->param('ab', $self->{'a_bitrate'});
+ # Execute the (final pass) encode
+ $self->SUPER::export($episode, '.mp4');
+ }
+
+1; #return true
+
+# vim:ts=4:sw=4:ai:et:si:sts=4
+
diff --git a/abs/not_built/core/nuvexport/PKGBUILD b/abs/not_built/core/nuvexport/PKGBUILD
new file mode 100644
index 0000000..27369de
--- /dev/null
+++ b/abs/not_built/core/nuvexport/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=nuvexport
+pkgver=20080311
+relnum=0.5
+pkgrel=3
+pkgdesc="Export for MythTV nuv files to other formats (DVD/SVCD/DivX,etc.)"
+arch=(i686 x86_64)
+url="http://forevermore.net/files/nuvexport"
+license=""
+depends=(perl perl-dbi 'ffmpeg>=20060920' perl-dbd-mysql perl-date-manip)
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+install=
+source=(http://forevermore.net/files/nuvexport/archive/$pkgname-$relnum-0.$pkgver.svn.tar.bz2 $pkgname-ipod-disable.patch MP4.pm XviD.pm)
+md5sums=('2d0a99623f06394daf3bf8769536d3cd' 'acd2dad9987e68359ead8b0be5e5797c')
+
+build() {
+ cd $startdir/src/$pkgname-$relnum
+
+ sed -i "s|prefix=/usr/local|prefix=$startdir/pkg/usr|g" Makefile || return 1
+ sed -i "s|/usr/bin/install|/bin/install|g" Makefile || return 1
+ sed -i "s|sysconfdir=/etc|sysconfdir=$startdir/pkg/etc|g" Makefile || return 1
+
+ mkdir $startdir/pkg/usr || return 1
+ make install || return 1
+ sed -i "s|/tmp/fifodir|/var/tmp/fifodir|g" $startdir/pkg/usr/share/nuvexport/export/*.pm || return 1
+ cp $startdir/src/MP4.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/MP4.pm
+ cp $startdir/src/XviD.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/XviD.pm
+}
diff --git a/abs/not_built/core/nuvexport/XviD.pm b/abs/not_built/core/nuvexport/XviD.pm
new file mode 100755
index 0000000..c4700f5
--- /dev/null
+++ b/abs/not_built/core/nuvexport/XviD.pm
@@ -0,0 +1,197 @@
+#
+# ffmpeg-based XviD export module for nuvexport.
+#
+# @url $URL: svn+ssh://xris@svn.mythtv.org/var/lib/svn/trunk/mythextras/nuvexport/export/ffmpeg/XviD.pm $
+# @date $Date: 2008-02-19 20:47:06 -0800 (Tue, 19 Feb 2008) $
+# @version $Revision: 16175 $
+# @author $Author: xris $
+# @copyright Silicon Mechanics
+#
+
+package export::ffmpeg::XviD;
+ use base 'export::ffmpeg';
+
+# Load the myth and nuv utilities, and make sure we're connected to the database
+ use nuv_export::shared_utils;
+ use nuv_export::cli;
+ use nuv_export::ui;
+ use mythtv::recordings;
+
+# Load the following extra parameters from the commandline
+ add_arg('quantisation|q=i', 'Quantisation');
+ add_arg('a_bitrate|a=i', 'Audio bitrate');
+ add_arg('v_bitrate|v=i', 'Video bitrate');
+ add_arg('multipass!', 'Enable two-pass encoding.');
+
+ sub new {
+ my $class = shift;
+ my $self = {
+ 'cli' => qr/\bxvid\b/i,
+ 'name' => 'Export to XviD',
+ 'enabled' => 1,
+ 'errors' => [],
+ 'defaults' => {},
+ };
+ bless($self, $class);
+
+ # Initialize the default parameters
+ $self->load_defaults();
+
+ # Verify any commandline or config file options
+ die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0);
+ die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0);
+ die "Width must be > 0\n" unless (!defined $self->val('width') || $self->{'width'} =~ /^\s*\D/ || $self->{'width'} > 0);
+ die "Height must be > 0\n" unless (!defined $self->val('height') || $self->{'height'} =~ /^\s*\D/ || $self->{'height'} > 0);
+
+ # VBR, multipass, etc.
+ if ($self->val('multipass')) {
+ $self->{'vbr'} = 1;
+ }
+ elsif ($self->val('quantisation')) {
+ die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31);
+ $self->{'vbr'} = 1;
+ }
+
+ # Initialize and check for ffmpeg
+ $self->init_ffmpeg();
+
+ # Can we even encode xvid?
+ if (!$self->can_encode('xvid') && !$self->can_encode('libxvid')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to xvid.\n"
+ ." (It must be compiled with the --enable-libxvid option)";
+ }
+ if (!$self->can_encode('mp3') && !$self->can_encode('libmp3lame')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mp3 audio.";
+ }
+
+ # Any errors? disable this function
+ $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0);
+ # Return
+ return $self;
+ }
+
+# Load default settings
+ sub load_defaults {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::load_defaults();
+ # Default bitrates and resolution
+ $self->{'defaults'}{'a_bitrate'} = 128;
+ $self->{'defaults'}{'v_bitrate'} = 960;
+ $self->{'defaults'}{'width'} = 624;
+ }
+
+# Gather settings from the user
+ sub gather_settings {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::gather_settings();
+ # Audio Bitrate
+ $self->{'a_bitrate'} = query_text('Audio bitrate?',
+ 'int',
+ $self->val('a_bitrate'));
+ # VBR options
+ if (!$is_cli) {
+ $self->{'vbr'} = query_text('Variable bitrate video?',
+ 'yesno',
+ $self->val('vbr'));
+ if ($self->{'vbr'}) {
+ $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?',
+ 'yesno',
+ $self->val('multipass'));
+ if (!$self->{'multipass'}) {
+ while (1) {
+ my $quantisation = query_text('VBR quality/quantisation (1-31)?',
+ 'float',
+ $self->val('quantisation'));
+ if ($quantisation < 1) {
+ print "Too low; please choose a number between 1 and 31.\n";
+ }
+ elsif ($quantisation > 31) {
+ print "Too high; please choose a number between 1 and 31\n";
+ }
+ else {
+ $self->{'quantisation'} = $quantisation;
+ last;
+ }
+ }
+ }
+ } else {
+ $self->{'multipass'} = 0;
+ }
+ # Ask the user what video bitrate he/she wants
+ $self->{'v_bitrate'} = query_text('Video bitrate?',
+ 'int',
+ $self->val('v_bitrate'));
+ }
+ # Query the resolution
+ $self->query_resolution();
+ }
+
+ sub export {
+ my $self = shift;
+ my $episode = shift;
+ # Make sure we have the framerate
+ $self->{'out_fps'} = $episode->{'finfo'}{'fps'};
+ # Embed the title
+ $safe_title = $episode->{'title'};
+ if ($episode->{'subtitle'} ne 'Untitled') {
+ $safe_title .= ' - '.$episode->{'subtitle'};
+ }
+ my $safe_title = shell_escape($safe_title);
+ # Codec name changes between ffmpeg versions
+ my $codec = $self->can_encode('libxvid') ? 'libxvid' : 'xvid';
+ # Build the common ffmpeg string
+ my $ffmpeg_xtra = ' -vcodec '.$codec
+ .$self->param('bit_rate', $self->{'v_bitrate'})
+ .($self->{'vbr'}
+ ? $self->param('rc_min_rate', 32)
+ . $self->param('rc_max_rate', (2 * $self->{'v_bitrate'}))
+ . $self->param('bit_rate_tolerance', 32)
+ . ' -bufsize 65535'
+ : '')
+ .' -flags +mv4+loop+cgop'
+ .' -trellis 1'
+ ### .' -aic 1'
+ .' -mbd 1'
+ .' -cmp 2 -subcmp 2'
+ ### .' -cgop 1'
+ .$self->param('b_quant_factor', 150)
+ .$self->param('b_quant_offset', 100)
+ .$self->param('max_b_frames', 1)
+ ;
+ # Dual pass?
+ if ($self->{'multipass'}) {
+ # Add the temporary file to the list
+ push @tmpfiles, "/tmp/xvid.$$.log";
+ # First pass
+ print "First pass...\n";
+ $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+ ." -pass 1 -passlogfile '/tmp/xvid.$$.log'"
+ .' -f avi';
+ $self->SUPER::export($episode, '', 1);
+ # Second pass
+ print "Final pass...\n";
+ $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+ . " -pass 2 -passlogfile '/tmp/xvid.$$.log'";
+ }
+ # Single Pass
+ else {
+ $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+ .($self->{'vbr'}
+ ? ' -qmax 31 -qmin '.$self->{'quantisation'}
+ : '');
+ }
+ # Don't forget the audio, etc.
+ $self->{'ffmpeg_xtra'} .= ' -acodec '
+ .($self->can_encode('libmp3lame') ? 'libmp3lame' : 'mp3')
+ .' -async 1 '
+ .$self->param('ab', $self->{'a_bitrate'})
+ .' -f avi';
+ # Execute the (final pass) encode
+ $self->SUPER::export($episode, '.avi');
+ }
+
+1; #return true
+
+# vim:ts=4:sw=4:ai:et:si:sts=4
diff --git a/abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch b/abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch
new file mode 100644
index 0000000..dfb17a9
--- /dev/null
+++ b/abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch
@@ -0,0 +1,12 @@
+diff -urN nuvexport-0.3/nuvexport nuvexport-0.3-fixed/nuvexport
+--- nuvexport-0.3/nuvexport 2006-07-26 03:37:13.000000000 -0400
++++ nuvexport-0.3-fixed/nuvexport 2006-07-27 20:58:41.000000000 -0400
+@@ -93,7 +93,7 @@
+ push @Exporters, export::ffmpeg::ASF->new;
+ push @Exporters, export::ffmpeg::MP3->new;
+ push @Exporters, export::ffmpeg::PSP->new;
+- push @Exporters, export::ffmpeg::iPod->new;
++# push @Exporters, export::ffmpeg::iPod->new;
+ }
+ elsif ($export_prog eq 'mencoder') {
+ push @Exporters, export::mencoder::XviD->new;
diff --git a/abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf b/abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf
new file mode 100644
index 0000000..227ac7d
--- /dev/null
+++ b/abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf
@@ -0,0 +1,5 @@
+Section "Device"
+ Identifier "Default nvidia Device"
+ Driver "nvidia"
+ Option "NoLogo" "True"
+EndSection
diff --git a/abs/not_built/core/nvidia-173xx-utils/PKGBUILD b/abs/not_built/core/nvidia-173xx-utils/PKGBUILD
new file mode 100644
index 0000000..013e1c7
--- /dev/null
+++ b/abs/not_built/core/nvidia-173xx-utils/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 28365 2009-03-01 00:11:38Z pierre $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=nvidia-173xx-utils
+pkgver=173.14.30
+pkgrel=1
+pkgdesc="NVIDIA drivers utilities and libraries, 173xx branch."
+arch=('i686' 'x86_64')
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('xorg-server')
+optdepends=('gtk2: nvidia-settings' 'pkgconfig: nvidia-xconfig')
+conflicts=('libgl')
+provides=('libgl')
+license=('custom')
+install=nvidia.install
+options=(!strip)
+backup=('etc/X11/xorg.conf.d/20-nvidia.conf')
+source=("http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run")
+md5sums=('665f9f730c18ab24a997e0e14b863262')
+[ "$CARCH" = "x86_64" ] && md5sums=('8c47463ae14a2f742d0fa00160456745')
+
+source[1]='20-nvidia.conf'
+md5sums[1]='37e417b2c69e46de1346a653e07027fa'
+
+package() {
+ cd $srcdir
+ sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/
+
+ mkdir -p $pkgdir/usr/{lib,bin,share/applications,share/pixmaps,share/man/man1}
+ mkdir -p $pkgdir/usr/lib/xorg/modules/{extensions,drivers}
+ mkdir -p $pkgdir/usr/share/licenses/nvidia-173xx/
+
+ install lib/{libGLcore,libGL,libnvidia-cfg,tls/libnvidia-tls}.so.${pkgver} \
+ $pkgdir/usr/lib/
+ install -m644 share/man/man1/* $pkgdir/usr/share/man/man1/
+ rm $pkgdir/usr/share/man/man1/nvidia-installer.1.gz
+ install X11R6/lib/libXv* $pkgdir/usr/lib/
+ install -m644 share/applications/nvidia-settings.desktop $pkgdir/usr/share/applications/
+ # fix nvidia .desktop file
+ sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop
+ install -m644 share/pixmaps/nvidia-settings.png $pkgdir/usr/share/pixmaps/
+ install X11R6/lib/modules/drivers/nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers
+ install X11R6/lib/modules/extensions/libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions
+ install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $pkgdir/usr/bin/
+ cd $pkgdir/usr/lib/
+ ln -s libGL.so.$pkgver libGL.so
+ ln -s libGL.so.$pkgver libGL.so.1
+ ln -s libGLcore.so.$pkgver libGLcore.so.1
+ ln -s libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1
+ ln -s libnvidia-tls.so.$pkgver libnvidia-tls.so.1
+ ln -s libXvMCNVIDIA.so.$pkgver libXvMCNVIDIA_dynamic.so.1
+
+ cd $pkgdir/usr/lib/xorg/modules/extensions
+ ln -s libglx.so.$pkgver libglx.so
+
+ install -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $pkgdir/usr/share/licenses/nvidia-173xx/
+ ln -s nvidia-173xx $pkgdir/usr/share/licenses/nvidia-173xx-utils
+
+ install -D -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README.txt $pkgdir/usr/share/doc/nvidia-173xx/README
+
+ find $pkgdir/usr -type d -exec chmod 755 {} \;
+
+ # Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations
+ install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf
+}
diff --git a/abs/not_built/core/nvidia-173xx-utils/nvidia.install b/abs/not_built/core/nvidia-173xx-utils/nvidia.install
new file mode 100644
index 0000000..0a878a7
--- /dev/null
+++ b/abs/not_built/core/nvidia-173xx-utils/nvidia.install
@@ -0,0 +1,6 @@
+post_install() {
+ echo By using this package you accept the NVIDIA license,
+ echo which has been installed in /usr/share/licenses/nvidia/LICENSE
+ echo If you do not accept this license, you must remove the package immediately.
+ echo Dont forget to update your /etc/X11/xorg.conf
+}
diff --git a/abs/not_built/core/nvidia-173xx/PKGBUILD b/abs/not_built/core/nvidia-173xx/PKGBUILD
new file mode 100644
index 0000000..5815dce
--- /dev/null
+++ b/abs/not_built/core/nvidia-173xx/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 28363 2009-03-01 00:06:27Z pierre $
+# Maintainer : Thomas Baechler <thomas@archlinux.org>
+
+pkgname=nvidia-173xx
+pkgver=173.14.30
+_kernver='2.6.39-LinHES'
+pkgrel=4
+pkgdesc="NVIDIA drivers for kernel26, 173xx branch."
+arch=('i686' 'x86_64')
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('kernel26>=2.6.39' 'kernel26<2.6.40' 'nvidia-173xx-utils')
+makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40')
+conflicts=('nvidia-96xx' 'nvidia')
+license=('custom')
+install=nvidia.install
+source=("http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run")
+options=(!strip)
+md5sums=('665f9f730c18ab24a997e0e14b863262')
+[ "$CARCH" = "x86_64" ] && md5sums=('8c47463ae14a2f742d0fa00160456745')
+
+build() {
+ cd $srcdir
+ sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0
+ cd usr/src/nv/
+ ln -s Makefile.kbuild Makefile
+ make SYSSRC=/lib/modules/${_kernver}/build module
+}
+
+package() {
+ cd $srcdir/NVIDIA-Linux-$ARCH-${pkgver}-pkg0/usr/src/nv/
+ mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/
+ install -m644 nvidia.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/
+ mkdir -p $pkgdir/etc/modprobe.d
+ echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
+ # gzip -9 module
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/abs/not_built/core/nvidia-173xx/nvidia.install b/abs/not_built/core/nvidia-173xx/nvidia.install
new file mode 100644
index 0000000..aea2fbb
--- /dev/null
+++ b/abs/not_built/core/nvidia-173xx/nvidia.install
@@ -0,0 +1,14 @@
+post_install() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION
+}
+
+post_upgrade() {
+ post_install
+ rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION
+}
diff --git a/abs/not_built/core/nvidia-96xx-utils/PKGBUILD b/abs/not_built/core/nvidia-96xx-utils/PKGBUILD
new file mode 100644
index 0000000..25a6805
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx-utils/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 69361 2010-02-20 11:24:49Z tpowa $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=nvidia-96xx-utils
+pkgver=96.43.19
+pkgrel=3
+pkgdesc="NVIDIA drivers utilities and libraries, 96xx branch."
+arch=('i686' 'x86_64')
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('xorg-server')
+optdepends=('gtk2: nvidia-settings' 'pkgconfig: nvidia-xconfig')
+conflicts=('libgl')
+provides=('libgl')
+license=('custom')
+install=nvidia.install
+options=(!strip)
+source=("http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run")
+md5sums=('53e98129d885a1b004aabc42a989fa73')
+[ "$CARCH" = "x86_64" ] && md5sums=('73e226d4ee0996b6df4bdf44cc1fc6f5')
+
+build() {
+ cd $srcdir
+ sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/
+
+ mkdir -p $pkgdir/usr/{lib,bin,share/applications,share/pixmaps,share/man/man1}
+ mkdir -p $pkgdir/usr/lib/xorg/modules/{extensions,drivers}
+ mkdir -p $pkgdir/usr/share/licenses/nvidia-96xx/
+
+ install lib/{libGLcore,libGL,libnvidia-cfg,tls/libnvidia-tls}.so.${pkgver} \
+ $pkgdir/usr/lib/ || return 1
+ install -m644 share/man/man1/* $pkgdir/usr/share/man/man1/ || return 1
+ rm $pkgdir/usr/share/man/man1/nvidia-installer.1.gz || return 1
+ install X11R6/lib/libXv* $pkgdir/usr/lib/ || return 1
+ install -m644 share/applications/nvidia-settings.desktop $pkgdir/usr/share/applications/ || return 1
+ # fix nvidia .desktop file
+ sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop
+ install -m644 share/pixmaps/nvidia-settings.png $pkgdir/usr/share/pixmaps/ || return 1
+ install X11R6/lib/modules/drivers/nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers || return 1
+ install X11R6/lib/modules/extensions/libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions || return 1
+ install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $pkgdir/usr/bin/ || return 1
+ cd $pkgdir/usr/lib/
+ ln -s libGL.so.$pkgver libGL.so || return 1
+ ln -s libGL.so.$pkgver libGL.so.1 || return 1
+ ln -s libGLcore.so.$pkgver libGLcore.so.1 || return 1
+ ln -s libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1 || return 1
+ ln -s libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1
+ ln -s libXvMCNVIDIA.so.$pkgver libXvMCNVIDIA_dynamic.so.1 || return 1
+
+ cd $pkgdir/usr/lib/xorg/modules/extensions
+ ln -s libglx.so.$pkgver libglx.so || return 1
+
+ install -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $pkgdir/usr/share/licenses/nvidia-96xx/ || return 1
+ ln -s nvidia-96xx $startdir/pkg/usr/share/licenses/nvidia-96xx-utils || return 1
+
+ install -D -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README.txt $pkgdir/usr/share/doc/nvidia-96xx/README || return 1
+
+ find $pkgdir/usr -type d -exec chmod 755 {} \;
+}
+
+
diff --git a/abs/not_built/core/nvidia-96xx-utils/nvidia.install b/abs/not_built/core/nvidia-96xx-utils/nvidia.install
new file mode 100644
index 0000000..0a878a7
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx-utils/nvidia.install
@@ -0,0 +1,6 @@
+post_install() {
+ echo By using this package you accept the NVIDIA license,
+ echo which has been installed in /usr/share/licenses/nvidia/LICENSE
+ echo If you do not accept this license, you must remove the package immediately.
+ echo Dont forget to update your /etc/X11/xorg.conf
+}
diff --git a/abs/not_built/core/nvidia-96xx-utils/supported-cards.txt b/abs/not_built/core/nvidia-96xx-utils/supported-cards.txt
new file mode 100644
index 0000000..d4f26ea
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx-utils/supported-cards.txt
@@ -0,0 +1,236 @@
+Archlinux currently manages three branches of the NVIDIA binary driver:
+
+nvidia (latest nvidia release)
+nvidia-96xx (96xx legacy branch)
+nvidia-71xx (71xx legacy branch)
+
+This excerpt from the NVIDIA 1.0.9746 README lists the supported devices
+for each of those:
+
+______________________________________________________________________________
+
+Appendix A. Supported NVIDIA Graphics Chips
+______________________________________________________________________________
+
+For the most complete and accurate listing of supported GPUs, please see the
+Supported Products List, available from the NVIDIA Linux x86 Graphics Driver
+download page. Please go to http://www.nvidia.com/object/unix.html, follow the
+Archive link under the Linux x86 heading, follow the link for the 1.0-9746
+driver, and then go to the Supported Products List.
+
+
+ NVIDIA chip name Device PCI ID
+ ---------------------------------- ----------------------------------
+ GeForce 6800 Ultra 0x0040
+ GeForce 6800 0x0041
+ GeForce 6800 XE 0x0043
+ GeForce 6800 XT 0x0044
+ GeForce 6800 GT 0x0045
+ GeForce 6800 GT 0x0046
+ GeForce 6800 GS 0x0047
+ GeForce 6800 XT 0x0048
+ Quadro FX 4000 0x004E
+ GeForce 7800 GTX 0x0090
+ GeForce 7800 GTX 0x0091
+ GeForce 7800 GT 0x0092
+ GeForce 7800 GS 0x0093
+ GeForce Go 7800 0x0098
+ GeForce Go 7800 GTX 0x0099
+ Quadro FX 4500 0x009D
+ GeForce 6800 GS 0x00C0
+ GeForce 6800 0x00C1
+ GeForce 6800 LE 0x00C2
+ GeForce 6800 XT 0x00C3
+ GeForce Go 6800 0x00C8
+ GeForce Go 6800 Ultra 0x00C9
+ Quadro FX Go1400 0x00CC
+ Quadro FX 3450/4000 SDI 0x00CD
+ Quadro FX 1400 0x00CE
+ GeForce 6800 Ultra/GeForce 6800 0x00F0
+ GeForce 6600 GT 0x00F1
+ GeForce 6600 0x00F2
+ GeForce 6200 0x00F3
+ GeForce 6600 LE 0x00F4
+ GeForce 7800 GS 0x00F5
+ GeForce 6800 GS 0x00F6
+ Quadro FX 3400/4400 0x00F8
+ GeForce 6800 Ultra 0x00F9
+ GeForce PCX 5750 0x00FA
+ GeForce PCX 5900 0x00FB
+ GeForce PCX 5300/Quadro FX 330 0x00FC
+ Quadro NVS 280 PCI-E/Quadro FX 330 0x00FD
+ Quadro FX 1300 0x00FE
+ GeForce PCX 4300 0x00FF
+ GeForce 6600 GT 0x0140
+ GeForce 6600 0x0141
+ GeForce 6600 LE 0x0142
+ GeForce 6600 VE 0x0143
+ GeForce Go 6600 0x0144
+ GeForce 6610 XL 0x0145
+ GeForce Go 6600 TE/6200 TE 0x0146
+ GeForce 6700 XL 0x0147
+ GeForce Go 6600 0x0148
+ GeForce Go 6600 GT 0x0149
+ Quadro NVS 440 0x014A
+ Quadro FX 550 0x014C
+ Quadro FX 540 0x014E
+ GeForce 6200 0x014F
+ GeForce 6500 0x0160
+ GeForce 6200 TurboCache(TM) 0x0161
+ GeForce 6200 LE 0x0163
+ GeForce Go 6200 0x0164
+ Quadro NVS 285 0x0165
+ GeForce Go 6400 0x0166
+ GeForce Go 6200 0x0167
+ GeForce Go 6400 0x0168
+ GeForce 8800 GTX 0x0191
+ GeForce 8800 GTS 0x0193
+ GeForce 7300 LE 0x01D1
+ GeForce 7300 SE 0x01D3
+ Quadro NVS 110M/GeForce Go 7300 0x01D7
+ GeForce Go 7400 0x01D8
+ Quadro NVS 110M 0x01DA
+ Quadro NVS 120M 0x01DB
+ Quadro FX 350M 0x01DC
+ Quadro FX 350 0x01DE
+ GeForce 7300 GS 0x01DF
+ GeForce 6800 0x0211
+ GeForce 6800 LE 0x0212
+ GeForce 6800 GT 0x0215
+ GeForce 6800 XT 0x0218
+ GeForce 6200 0x0221
+ GeForce 6150 0x0240
+ GeForce 6150 LE 0x0241
+ GeForce 6100 0x0242
+ GeForce Go 6100 0x0247
+ GeForce 7900 GTX 0x0290
+ GeForce 7900 GT/GTO 0x0291
+ GeForce 7900 GS 0x0292
+ GeForce 7950 GX2 0x0294
+ GeForce Go 7900 GS 0x0298
+ GeForce Go 7900 GTX 0x0299
+ Quadro FX 2500M 0x029A
+ Quadro FX 1500M 0x029B
+ Quadro FX 5500 0x029C
+ Quadro FX 3500M 0x029D
+ Quadro FX 1500 0x029E
+ Quadro FX 4500 X2 0x029F
+ GeForce 7600 GS 0x02E1
+ GeForce FX 5800 Ultra 0x0301
+ GeForce FX 5800 0x0302
+ Quadro FX 2000 0x0308
+ Quadro FX 1000 0x0309
+ GeForce FX 5600 Ultra 0x0311
+ GeForce FX 5600 0x0312
+ GeForce FX 5600XT 0x0314
+ GeForce FX Go5600 0x031A
+ GeForce FX Go5650 0x031B
+ Quadro FX Go700 0x031C
+ GeForce FX 5200 0x0320
+ GeForce FX 5200 Ultra 0x0321
+ GeForce FX 5200 0x0322
+ GeForce FX 5200LE 0x0323
+ GeForce FX Go5200 0x0324
+ GeForce FX Go5250 0x0325
+ GeForce FX 5500 0x0326
+ GeForce FX 5100 0x0327
+ GeForce FX Go5200 32M/64M 0x0328
+ Quadro NVS 55/280 PCI 0x032A
+ Quadro FX 500/FX 600 0x032B
+ GeForce FX Go53xx 0x032C
+ GeForce FX Go5100 0x032D
+ GeForce FX 5900 Ultra 0x0330
+ GeForce FX 5900 0x0331
+ GeForce FX 5900XT 0x0332
+ GeForce FX 5950 Ultra 0x0333
+ GeForce FX 5900ZT 0x0334
+ Quadro FX 3000 0x0338
+ Quadro FX 700 0x033F
+ GeForce FX 5700 Ultra 0x0341
+ GeForce FX 5700 0x0342
+ GeForce FX 5700LE 0x0343
+ GeForce FX 5700VE 0x0344
+ GeForce FX Go5700 0x0347
+ GeForce FX Go5700 0x0348
+ Quadro FX Go1000 0x034C
+ Quadro FX 1100 0x034E
+ GeForce 7600 GT 0x0391
+ GeForce 7600 GS 0x0392
+ GeForce 7300 GT 0x0393
+ GeForce Go 7600 0x0398
+ Quadro FX 560 0x039E
+
+
+Below are the legacy GPUs that are no longer supported in the unified driver.
+These GPUs will continue to be maintained through the special legacy NVIDIA
+GPU driver releases.
+
+The 1.0-96xx driver supports the following set of GPUs:
+
+
+ NVIDIA chip name Device PCI ID
+ ---------------------------------- ----------------------------------
+ GeForce2 MX/MX 400 0x0110
+ GeForce2 MX 100/200 0x0111
+ GeForce2 Go 0x0112
+ Quadro2 MXR/EX/Go 0x0113
+ GeForce4 MX 460 0x0170
+ GeForce4 MX 440 0x0171
+ GeForce4 MX 420 0x0172
+ GeForce4 MX 440-SE 0x0173
+ GeForce4 440 Go 0x0174
+ GeForce4 420 Go 0x0175
+ GeForce4 420 Go 32M 0x0176
+ GeForce4 460 Go 0x0177
+ Quadro4 550 XGL 0x0178
+ GeForce4 440 Go 64M 0x0179
+ Quadro NVS 0x017A
+ Quadro4 500 GoGL 0x017C
+ GeForce4 410 Go 16M 0x017D
+ GeForce4 MX 440 with AGP8X 0x0181
+ GeForce4 MX 440SE with AGP8X 0x0182
+ GeForce4 MX 420 with AGP8X 0x0183
+ GeForce4 MX 4000 0x0185
+ Quadro4 580 XGL 0x0188
+ Quadro NVS 280 SD 0x018A
+ Quadro4 380 XGL 0x018B
+ Quadro NVS 50 PCI 0x018C
+ GeForce2 Integrated GPU 0x01A0
+ GeForce4 MX Integrated GPU 0x01F0
+ GeForce3 0x0200
+ GeForce3 Ti 200 0x0201
+ GeForce3 Ti 500 0x0202
+ Quadro DCC 0x0203
+ GeForce4 Ti 4600 0x0250
+ GeForce4 Ti 4400 0x0251
+ GeForce4 Ti 4200 0x0253
+ Quadro4 900 XGL 0x0258
+ Quadro4 750 XGL 0x0259
+ Quadro4 700 XGL 0x025B
+ GeForce4 Ti 4800 0x0280
+ GeForce4 Ti 4200 with AGP8X 0x0281
+ GeForce4 Ti 4800 SE 0x0282
+ GeForce4 4200 Go 0x0286
+ Quadro4 980 XGL 0x0288
+ Quadro4 780 XGL 0x0289
+ Quadro4 700 GoGL 0x028C
+
+
+The 1.0-71xx driver supports the following set of GPUs:
+
+
+ NVIDIA chip name Device PCI ID
+ ---------------------------------- ----------------------------------
+ RIVA TNT 0x0020
+ RIVA TNT2/TNT2 Pro 0x0028
+ RIVA TNT2 Ultra 0x0029
+ Vanta/Vanta LT 0x002C
+ RIVA TNT2 Model 64/Model 64 Pro 0x002D
+ Aladdin TNT2 0x00A0
+ GeForce 256 0x0100
+ GeForce DDR 0x0101
+ Quadro 0x0103
+ GeForce2 GTS/GeForce2 Pro 0x0150
+ GeForce2 Ti 0x0151
+ GeForce2 Ultra 0x0152
+ Quadro2 Pro 0x0153
diff --git a/abs/not_built/core/nvidia-96xx/PKGBUILD b/abs/not_built/core/nvidia-96xx/PKGBUILD
new file mode 100644
index 0000000..ead149d
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 105368 2011-01-08 09:33:32Z tpowa $
+# Maintainer : Thomas Baechler <thomas@archlinux.org>
+
+pkgname=nvidia-96xx
+pkgver=96.43.19
+_kernver='2.6.39-LinHES'
+pkgrel=7
+pkgdesc="NVIDIA drivers for kernel26, 96xx branch."
+arch=('i686' 'x86_64')
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('kernel26>=2.6.39' 'kernel26<2.6.40' 'nvidia-96xx-utils')
+makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40')
+conflicts=('nvidia' 'nvidia-173xx')
+license=('custom')
+install=nvidia.install
+source=("http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run"
+ nvidia-legacy-2.6.39.patch)
+
+[ "$CARCH" = "x86_64" ] && md5sums=('7ff779e299b938b880baff6cd970ab51')
+
+build() {
+ cd $srcdir
+ sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0
+ patch -p0 < ${srcdir}/nvidia-legacy-2.6.39.patch
+ cd usr/src/nv/
+ ln -s Makefile.kbuild Makefile
+ make SYSSRC=/lib/modules/${_kernver}/build module
+
+ mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/
+ install -m644 nvidia.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/
+
+ mkdir -p $pkgdir/etc/modprobe.d
+ echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
+}
+md5sums=('53e98129d885a1b004aabc42a989fa73'
+ 'fc1ca585f5c5c3067b0fa283ee44b7c6')
diff --git a/abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch b/abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch
new file mode 100644
index 0000000..6b68385
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch
@@ -0,0 +1,10 @@
+--- nv.c~ 2010-10-25 23:03:15.976668304 +0200
++++ nv.c 2010-10-25 23:08:12.783334336 +0200
+@@ -249,7 +249,6 @@
+ static struct file_operations nv_fops = {
+ .owner = THIS_MODULE,
+ .poll = nv_kern_poll,
+- .ioctl = nv_kern_ioctl,
+ #if defined(HAVE_UNLOCKED_IOCTL)
+ .unlocked_ioctl = nv_kern_unlocked_ioctl,
+ #endif
diff --git a/abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch b/abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch
new file mode 100644
index 0000000..44d44fd
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch
@@ -0,0 +1,103 @@
+--- usr/src/nv/nv.c.orig
++++ usr/src/nv/nv.c
+@@ -15,6 +15,7 @@
+ #include "nv_compiler.h"
+ #include "os-agp.h"
+ #include "nv-vm.h"
++#include <linux/version.h>
+
+ #ifdef MODULE_ALIAS_CHARDEV_MAJOR
+ MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER);
+@@ -499,10 +500,12 @@
+ * Set the module owner to ensure that the reference
+ * count reflects accesses to the proc files.
+ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ proc_nvidia->owner = THIS_MODULE;
+ proc_nvidia_cards->owner = THIS_MODULE;
+ proc_nvidia_warnings->owner = THIS_MODULE;
+
++#endif
+ for (j = 0; j < num_nv_devices; j++)
+ {
+ nvl = &nv_linux_devices[j];
+@@ -521,7 +524,9 @@
+
+ entry->data = nv;
+ entry->read_proc = nv_kern_read_cardinfo;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+
+ if (nvos_find_agp_capability(dev)) {
+ /*
+@@ -534,7 +539,9 @@
+ goto failed;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+ proc_nvidia_agp = entry;
+
+ entry = create_proc_entry("status", flags, proc_nvidia_agp);
+@@ -545,7 +552,9 @@
+
+ entry->data = nv;
+ entry->read_proc = nv_kern_read_status;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+
+ entry = create_proc_entry("host-bridge", flags, proc_nvidia_agp);
+ if (!entry) {
+@@ -555,8 +564,9 @@
+
+ entry->data = NULL;
+ entry->read_proc = nv_kern_read_agpinfo;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
+-
++#endif
+ entry = create_proc_entry("card", flags, proc_nvidia_agp);
+ if (!entry) {
+ NV_PCI_DEV_PUT(dev);
+@@ -565,7 +575,9 @@
+
+ entry->data = nv;
+ entry->read_proc = nv_kern_read_agpinfo;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+ }
+
+ NV_PCI_DEV_PUT(dev);
+@@ -576,14 +588,18 @@
+ goto failed;
+
+ entry->read_proc = nv_kern_read_version;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+
+ entry = create_proc_entry("registry", flags, proc_nvidia);
+ if (!entry)
+ goto failed;
+
+ entry->read_proc = nv_kern_read_registry;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+
+ return;
+
+@@ -610,7 +626,9 @@
+
+ entry->data = (void *)message;
+ entry->read_proc = nv_kern_read_warning;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ entry->owner = THIS_MODULE;
++#endif
+ #endif
+ }
+
diff --git a/abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch b/abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch
new file mode 100644
index 0000000..4ee8ba6
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch
@@ -0,0 +1,10 @@
+--- usr/src/nv/nv-linux.h.orig 2010-10-28 04:23:04.000000000 +0200
++++ usr/src/nv/nv-linux.h 2011-05-21 08:58:35.714633248 +0200
+@@ -80,7 +80,6 @@
+ #if !defined(KERNEL_2_4)
+ #include <linux/sched.h> /* suser(), capable() replacement */
+ #include <linux/moduleparam.h> /* module_param() */
+-#include <linux/smp_lock.h> /* kernel_locked */
+ #include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
+ #include <asm/kmap_types.h> /* page table entry lookup */
+ #endif
diff --git a/abs/not_built/core/nvidia-96xx/nvidia.install b/abs/not_built/core/nvidia-96xx/nvidia.install
new file mode 100644
index 0000000..aea2fbb
--- /dev/null
+++ b/abs/not_built/core/nvidia-96xx/nvidia.install
@@ -0,0 +1,14 @@
+post_install() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION
+}
+
+post_upgrade() {
+ post_install
+ rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION
+}
diff --git a/abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD b/abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD
new file mode 100644
index 0000000..4769533
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-class-data-inheritable
+pkgver=0.08
+pkgrel=1
+pkgdesc="Inheritable, overridable class data "
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~TMTM/Class-Data-Inheritable"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TM/TMTM/Class-Data-Inheritable-$pkgver.tar.gz)
+md5sums=('fc0fe65926eb8fb932743559feb54eb9')
+
+build() {
+ cd $startdir/src/Class-Data-Inheritable-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD b/abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD
new file mode 100644
index 0000000..93782f3
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>
+
+pkgname=perl-compress-raw-zlib
+_realname=Compress-Raw-Zlib
+pkgver=2.015
+pkgrel=1
+pkgdesc="Compress::Raw::Zlib - Low-Level Interface to zlib compression library"
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perlxml' 'perl>=5.10.0')
+options=('!emptydirs')
+source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/P/PM/PMQS/${_realname}-${pkgver}.tar.gz)
+md5sums=('6680d7ee3fbfd5171ccf239328c284fd')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ find ${startdir}/pkg -name '.packlist' -delete
+ find ${startdir}/pkg -name 'perllocal.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD b/abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD
new file mode 100644
index 0000000..5fb55a7
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>
+
+pkgname=perl-compress-zlib
+_realname=Compress-Zlib
+pkgver=2.015
+pkgrel=1
+pkgdesc="The Compress::Zlib module provides a Perl interface to the zlib compression library."
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perlxml' 'perl>=5.10.0')
+options=('!emptydirs')
+source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/P/PM/PMQS/${_realname}-${pkgver}.tar.gz)
+md5sums=('689ba2cc399b019d0bf76a0575c32947')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ find ${startdir}/pkg -name '.packlist' -delete
+ find ${startdir}/pkg -name 'perllocal.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD b/abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD
new file mode 100644
index 0000000..6b48a24
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>
+
+pkgname=perl-data-dumper
+_realname=Data-Dumper
+pkgver=2.121
+pkgrel=1
+pkgdesc="Data::Dumper - stringified perl data structures, suitable for both printing and eval."
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perlxml' 'perl>=5.10.0')
+options=('!emptydirs')
+source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/I/IL/ILYAM/${_realname}-${pkgver}.tar.gz)
+md5sums=('10d6ff7a85fa3e5f91fcb2e6593cfd1b')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ find ${startdir}/pkg -name '.packlist' -delete
+ find ${startdir}/pkg -name 'perllocal.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD b/abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD
new file mode 100644
index 0000000..72c89c7
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD
@@ -0,0 +1,28 @@
+pkgname=perl-devel-stacktrace
+_realname=Devel-StackTrace
+pkgver=1.1902
+pkgrel=2
+pkgdesc="Perl devel stracktrace"
+arch=(i686 x86_64)
+license=('custom:BSD')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.10.0' 'openssl')
+options=(!emptydirs)
+replaces=('net-ssleay')
+provides=('net-ssleay')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL -- INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+
+ install -D -m644 README ${startdir}/pkg/usr/share/licenses/${pkgname}/README
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD b/abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD
new file mode 100644
index 0000000..58e1138
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-exception-class
+pkgver=1.24
+pkgrel=1
+pkgdesc="Declare exception class hierarchies"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~DROLSKY/Exception-Class"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/Exception-Class-$pkgver.tar.gz)
+md5sums=('b672b63f8e7f3652980f188c2d58840d')
+
+build() {
+ cd $startdir/src/Exception-Class-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD b/abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD
new file mode 100644
index 0000000..e167586
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>
+
+pkgname=perl-getopt-long
+_realname=Getopt-Long
+pkgver=2.37
+pkgrel=1
+pkgdesc="Getopt::Long - Extended processing of command line options"
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perlxml' 'perl>=5.10.0')
+options=('!emptydirs')
+source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/J/JV/JV/${_realname}-${pkgver}.tar.gz)
+md5sums=('7d7fdb7a5c07d720e93ff3b9ff34b06e')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ find ${startdir}/pkg -name '.packlist' -delete
+ find ${startdir}/pkg -name 'perllocal.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD b/abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD
new file mode 100644
index 0000000..9905900
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD
@@ -0,0 +1,25 @@
+pkgname=perl-getopt-lucid
+_realname=Getopt-Lucid
+pkgver=0.17
+pkgrel=1
+pkgdesc="Perl/CPAN Getopt::Lucid - Clear, readable syntax for command line processing"
+url="http://search.cpan.org/dist/${_realname}/"
+arch=(i686 x86_64)
+license=('PerlArtistic' 'GPL')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+#http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Getopt-Lucid-0.17.tar.gz
+
+source=(http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD b/abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD
new file mode 100644
index 0000000..dcb916a
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD
@@ -0,0 +1,50 @@
+# CPAN Name : Image-Imlib2
+# Contributor: AUR Perl <aurperl@juster.info>
+# Generator : CPANPLUS::Dist::Arch 1.18
+
+pkgname='perl-image-imlib2'
+pkgver='2.03'
+pkgrel='1'
+pkgdesc="Interface to the Imlib2 image library"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl' 'imlib2')
+makedepends=()
+url='http://search.cpan.org/dist/Image-Imlib2'
+source=('http://search.cpan.org/CPAN/authors/id/L/LB/LBROCARD/Image-Imlib2-2.03.tar.gz')
+md5sums=('303b91fae2b863903e41a3cac34fa0d3')
+sha512sums=('d38eba0da1d9fe46244400454f55d2d4d682a7aff78c123c01476c14f30de3fc4699a1f926fc82fea09341f0577f943d82fe73cd40225bc69a06e1c710383d60')
+_distdir="${srcdir}/Image-Imlib2-2.03"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ cd "$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ make test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ make install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD b/abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD
new file mode 100644
index 0000000..9adde18
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>
+
+pkgname=perl-io-compress-zlib
+_realname=IO-Compress-Zlib
+pkgver=2.015
+pkgrel=1
+pkgdesc="This module provides a Perl interface to allow reading and writing of RFC 1950, 1951, 1952 (i.e. gzip) and zip files/buffers."
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perlxml' 'perl>=5.10.0')
+options=('!emptydirs')
+source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/P/PM/PMQS/${_realname}-${pkgver}.tar.gz)
+md5sums=('22f3b677a6f1782713c8451966598d3f')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ find ${startdir}/pkg -name '.packlist' -delete
+ find ${startdir}/pkg -name 'perllocal.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-javascript/PKGBUILD b/abs/not_built/core/perl_modules/perl-javascript/PKGBUILD
new file mode 100644
index 0000000..5be227c
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-javascript/PKGBUILD
@@ -0,0 +1,28 @@
+pkgname=perl-javascript
+pkgver=1.16
+pkgrel=2
+pkgdesc="Perl extension for executing embedded JavaScript"
+depends=('perl>=5.10.0' 'glibc' 'perl-test-exception' 'js<=1:1.7.0' 'xulrunner' 'nspr')
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/JavaScript/"
+source=(http://search.cpan.org/CPAN/authors/id/C/CL/CLAESJAC/JavaScript-$pkgver.tar.gz)
+options=('!emptydirs')
+arch=(i686 x86_64)
+
+build()
+{
+ cd ${srcdir}/JavaScript-$pkgver
+
+ # dirty hack to pass the correct includes to the script
+ export JS_THREADSAFE=1 JS_UTF8=1 JS_ENABLE_E4X=1 JS_INC="/usr/include/js -I/usr/include/xulrunner-1.9.2 -I/usr/include/nspr"
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ # Remove .packlist and perllocal.pod files.
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name 'perllocal.pod' -delete
+
+}
+
+md5sums=('c3c4a744e0a5018b94f53341baa18df7')
diff --git a/abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD b/abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD
new file mode 100644
index 0000000..c7563cf
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 73857 2012-07-16 05:44:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-lingua-en-numbers
+pkgver=1.04
+pkgrel=1
+pkgdesc="Turn 407 into four hundred and seven, etc."
+arch=('any')
+url="http://search.cpan.org/dist/Lingua-EN-Numbers"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/Lingua-EN-Numbers-$pkgver.tar.gz)
+md5sums=('6b3d8ea645b37ee29b37388caa01b0f3')
+
+build() {
+ cd $srcdir/Lingua-EN-Numbers-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-list-member/PKGBUILD b/abs/not_built/core/perl_modules/perl-list-member/PKGBUILD
new file mode 100644
index 0000000..d944a68
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-list-member/PKGBUILD
@@ -0,0 +1,24 @@
+pkgname=perl-list-member
+_realname=List-Member
+pkgver=0.043
+pkgrel=1
+pkgdesc="Perl/CPAN List::Member - PROLOG's member/2: return index of $x in @y."
+url="http://search.cpan.org/dist/${_realname}/"
+arch=(i686 x86_64)
+license=('PerlArtistic' 'GPL')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+#http://search.cpan.org/CPAN/authors/id/L/LG/LGODDARD/List-Member-0.043.tar.gz
+source=(http://search.cpan.org/CPAN/authors/id/L/LG/LGODDARD/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD b/abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD
new file mode 100644
index 0000000..73d125d
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-log-log4perl
+pkgver=1.18
+pkgrel=1
+pkgdesc="Log4j implementation in Perl"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~MSCHILLI/Log-Log4perl"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-$pkgver.tar.gz)
+md5sums=('9513b615f516827a26bdbcc0d868634f')
+
+build() {
+ cd $startdir/src/Log-Log4perl-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD b/abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD
new file mode 100644
index 0000000..c8adc5d
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD
@@ -0,0 +1,25 @@
+pkgname=perl-mime-parser
+pkgver=5.420
+pkgrel=2
+pkgdesc="Perl/CPAN Module MIME::Parser : Parses streams to create MIME entities"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/DSKOLL/MIME-tools"
+license=("GPL" "Artistic")
+source=("http://www.cpan.org/authors/id/D/DS/DSKOLL/MIME-tools-5.420.tar.gz")
+md5sums=("4db6505cc0132c80c5a9cc54f443a21a")
+makedepends=("perl-io-stringy" "perl-mailtools" )
+#depends=("perl-io-stringy" "perl-mail-field" "perl-mail-header" "perl-mail-internet")
+depends=("perl-io-stringy" "perl-mailtools" )
+build() {
+ cd $startdir/src/MIME-tools-5.420
+ eval `perl -V:archname`
+ /usr/bin/perl Makefile.PL \
+ INSTALLARCHLIB=/usr/lib/perl5/current/${archname} \
+ INSTALLSITELIB=/usr/lib/perl5/site_perl/current \
+ INSTALLSITEARCH=/usr/lib/perl5/site_perl/current/${archname} || return 1
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ /usr/bin/find $startdir/pkg -name '.packlist' -exec rm '{}' \; && \
+ /usr/bin/find $startdir/pkg -name 'perllocal.pod' -exec rm '{}' \; && \
+ /usr/bin/find $startdir/pkg -depth -type d -empty -exec rmdir '{}' \;
+}
diff --git a/abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD b/abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD
new file mode 100644
index 0000000..82d27db
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>
+
+pkgname=perl-parse-yapp
+_realname=Parse-Yapp
+pkgver=1.05
+pkgrel=1
+pkgdesc="Parse::Yapp - Perl extension for generating and using LALR parsers."
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perlxml' 'perl>=5.10.0')
+options=('!emptydirs')
+source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/F/FD/FDESAR/${_realname}-${pkgver}.tar.gz)
+md5sums=('7bfca736d6af36c51edf7a97111a8f3b')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ find ${startdir}/pkg -name '.packlist' -delete
+ find ${startdir}/pkg -name 'perllocal.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD b/abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD
new file mode 100644
index 0000000..a88a231
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD
@@ -0,0 +1,23 @@
+
+pkgname=perl-pathtools
+pkgver=3.33
+pkgrel=1
+pkgdesc="Current working directory (CWD) and File::Spec perl modules"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~KWILLIAMS/Path-Class"
+
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/PathTools-$pkgver.tar.gz)
+groups=('shepherd-dep')
+build() {
+ cd $startdir/src/PathTools-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
+
+md5sums=('92f0df032c399fadef2e2e647ebc3111')
diff --git a/abs/not_built/core/perl_modules/perl-pathtools/license.txt b/abs/not_built/core/perl_modules/perl-pathtools/license.txt
new file mode 100644
index 0000000..508353d
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-pathtools/license.txt
@@ -0,0 +1,6 @@
+"THE BEER-WARE LICENSE" (Revision 42):
+<phk@login.dknet.dk> wrote this file. As long as you retain this
+notice you can do whatever you want with this stuff. If we meet some
+day, and you think this stuff is worth it, you can buy me a beer in
+return. Poul-Henning Kamp
+
diff --git a/abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD b/abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD
new file mode 100644
index 0000000..51ee46b
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: yugrotavele <yugrotavele at archlinux dot us>
+
+pkgname=perl-proc-processtable
+pkgver=0.45
+pkgrel=2
+pkgdesc="Provides a consistent interface to process table information."
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Proc-ProcessTable/"
+license=('PerlArtistic')
+depends=('perl')
+provides=('perl-proc-killall=1.0.0' 'perl-proc-killfam=1.0.0' 'perl-proc-processtable-process=0.20.0')
+options=(!emptydirs)
+source=("http://search.cpan.org/CPAN/authors/id/D/DU/DURIST/Proc-ProcessTable-$pkgver.tar.gz")
+md5sums=('4481495d639c314f57e6d9d25f23c88e')
+
+build() {
+ cd $srcdir/Proc-ProcessTable-$pkgver
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/Proc-ProcessTable-$pkgver
+
+ make install DESTDIR="${pkgdir}"
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
+
diff --git a/abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD b/abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD
new file mode 100644
index 0000000..e667f5e
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-text-bidi
+pkgver=0.03
+pkgrel=3
+pkgdesc="Unicode bidi algorithm-libfribidi interface"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~KAMENSKY/Text-Bidi"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0' 'fribidi')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/K/KA/KAMENSKY/Text-Bidi-$pkgver.tar.gz)
+md5sums=('93e124628ff2983e32ac478f25f8d627')
+
+build() {
+ cd $startdir/src/Text-Bidi-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD b/abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD
new file mode 100644
index 0000000..1954f8a
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-text-kakasi
+pkgver=2.04
+pkgrel=4
+pkgdesc="Perl frontend to kakasi"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~DANKOGAI/Text-Kakasi"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0' 'kakasi')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DA/DANKOGAI/Text-Kakasi-$pkgver.tar.gz)
+md5sums=('5a9e381cb93edfd707124a63c60f96b1')
+
+build() {
+ cd $startdir/src/Text-Kakasi-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-time-format/PKGBUILD b/abs/not_built/core/perl_modules/perl-time-format/PKGBUILD
new file mode 100644
index 0000000..40a2ae2
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-time-format/PKGBUILD
@@ -0,0 +1,21 @@
+# This PKGBUILD was autocreated. See http://xtermin.us/archperl/ for details
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-time-format
+pkgver=1.09
+pkgrel=1
+pkgdesc="Perl/CPAN Module Time::Format : Easytouse datetime formatting"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Time-Format"
+license=("GPL" "Artistic")
+source=("http://www.cpan.org/authors/id/R/RO/ROODE/Time-Format-$pkgver.tar.gz")
+
+build() {
+ cd $startdir/src/Time-Format-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
+md5sums=('c0edfd94d8f4cb814dee7bdf7e9ed61f')
diff --git a/abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD b/abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD
new file mode 100644
index 0000000..771079b
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: 3ED <krzysztof1987 at gmail dot com>
+#
+pkgname='perl-x-osd'
+_lastauthor="G/GO/GOZER"
+_pkgname='X-Osd'
+pkgver='0.7'
+pkgrel='2'
+pkgdesc="Perl extension to the X On Screen Display library (xosd)"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl' 'xosd')
+url='http://search.cpan.org/dist/X-Osd/'
+source=(http://search.cpan.org/CPAN/authors/id/${_lastauthor}/${_pkgname}-${pkgver}.tar.gz)
+sha256sums=('e3bafe11cd51ad9b1e3d1df18516f9bb1ba462f981483b922f2b627b08190391')
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ export PERL_MM_USE_DEFAULT=1
+ export PERL_AUTOINSTALL='--skipdeps'
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+check() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make test
+}
+package() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ find "${pkgdir}" -name .packlist -o -name perllocal.pod -delete
+}
diff --git a/abs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD b/abs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD
new file mode 100755
index 0000000..34757a3
--- /dev/null
+++ b/abs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: ndlarsen <ndlarsen@gmail.com>
+# Comment: Based on PKGBUILDs from the perlcpan repo by Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-xml-xql
+pkgver=0.68
+pkgrel=1
+pkgdesc="A perl module for querying XML tree structures with XQL"
+arch=('i686')
+url="http://search.cpan.org/dist/XML-XQL/lib/XML/XQL.pm"
+license=('GPL Artistic')
+depends=('perl-parse-yapp' 'perl-xml-dom' 'perl-xml-parser' 'perl-date-manip')
+makedepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+groups=()
+options=(docs !emptydirs)
+install=
+noextract=()
+source=(http://search.cpan.org/CPAN/authors/id/T/TJ/TJMATHER/XML-XQL-$pkgver.tar.gz)
+md5sums=('bb84096fdf8bcc96a35971539ce8c19e')
+
+build() {
+
+ cd $startdir/src/XML-XQL-$pkgver
+ /usr/bin/perl Makefile.PL INSTALLDIRS=vendor MAN1ext=1p MAN3EXT=3pm
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ /usr/bin/find $startdir/pkg -name '.packlist' -exec rm '{}' \; && \
+ /usr/bin/find $startdir/pkg -name 'perllocal.pod' -exec rm '{}' \;
+
+}
+# $Id$ \ No newline at end of file
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops b/abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops
new file mode 100644
index 0000000..a9a4baa
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver
+END
+download.php?id=9719
+K 25
+svn:wc:ra_dav:version-url
+V 91
+/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/download.php%3Fid=9719
+END
+PKGBUILD
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/PKGBUILD
+END
+wis-go-0.9.8-2.6.17.patch
+K 25
+svn:wc:ra_dav:version-url
+V 94
+/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/wis-go-0.9.8-2.6.17.patch
+END
+convertX.install
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/convertX.install
+END
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/entries b/abs/not_built/core/plextor-convertX-driver/.svn/entries
new file mode 100644
index 0000000..24668fc
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/entries
@@ -0,0 +1,95 @@
+8
+
+dir
+26
+http://www.mythvantage.com/svn/MythVantage/trunk/multimedia/plextor-convertX-driver
+http://www.mythvantage.com/svn/MythVantage
+
+
+
+2008-08-11T22:07:32.420645Z
+3
+jams
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+aa4607db-271d-489d-aa74-f9b36e0b8801
+
+download.php?id=9719
+file
+
+
+
+
+2008-08-23T20:50:13.000000Z
+046fc285320714abb64ca8d699d5daad
+2008-08-11T22:07:32.420645Z
+3
+jams
+has-props
+
+PKGBUILD
+file
+
+
+
+
+2008-08-23T20:50:13.000000Z
+1a918566d44b59443786bfc0dc425bf8
+2008-08-11T22:07:32.420645Z
+3
+jams
+has-props
+
+install
+dir
+
+lib
+dir
+
+wis-go-0.9.8-2.6.17.patch
+file
+
+
+
+
+2008-08-23T20:50:13.000000Z
+83d3108be840a45871c195a25c4de4ca
+2008-08-11T22:07:32.420645Z
+3
+jams
+has-props
+
+usr
+dir
+
+etc
+dir
+
+slack
+dir
+
+convertX.install
+file
+
+
+
+
+2008-08-23T20:50:13.000000Z
+3f2eb8d111d0b1b43b4c53852610f4ec
+2008-08-11T22:07:32.420645Z
+3
+jams
+has-props
+
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/format b/abs/not_built/core/plextor-convertX-driver/.svn/format
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/format
@@ -0,0 +1 @@
+8
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base
new file mode 100644
index 0000000..869ac71
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base
new file mode 100644
index 0000000..869ac71
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base
new file mode 100644
index 0000000..869ac71
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base
new file mode 100644
index 0000000..869ac71
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base
new file mode 100644
index 0000000..1711062
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base
@@ -0,0 +1,31 @@
+
+
+pkgname=plextor-convertX-driver
+pkgver=0.9.8
+pkgrel=3
+_kernver=2.6.17-STB
+pkgdesc="ivtv - Drivers for many types of PVR cards"
+arch=(i686 x86_64)
+url="http://ivtvdriver.org"
+install="convertX.install"
+source=("http://oss.wischip.com/wis-go7007-linux-$pkgver.tar.bz2" "wis-go-0.9.8-2.6.17.patch")
+depends=(gcc 'udev>=070' 'fxload')
+
+
+build() {
+
+ # SET UP
+ patch -p0 < wis-go-0.9.8-2.6.17.patch
+ cd $startdir/src/wis-go7007-linux-0.9.8|| return 1
+
+ # build
+ make clean || return 1
+ make || return 1
+ mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include/linux
+ mkdir -p $startdir/pkg/etc/udev/rules.d
+ mkdir -p $startdir/pkg/usr/bin
+ # install
+ make DESTDIR=$startdir/pkg install || return 1
+ install -m755 apps/gorecord $startdir/pkg/usr/bin/gorecord
+ install -m755 apps/modet $startdir/pkg/usr/bin/modet
+}
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base
new file mode 100644
index 0000000..8dfd0b7
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base
@@ -0,0 +1,31 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ KERNEL_VERSION=2.6.17-STB
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ /bin/true
+}
+
+post_upgrade() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ KERNEL_VERSION=2.6.17-STB
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ /bin/true
+}
+
+post_remove() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ KERNEL_VERSION=2.6.17-STB
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base
new file mode 100644
index 0000000..516608c
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base
@@ -0,0 +1,460 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+
+<head>
+<title>LinuxPackages: Download Package</title>
+<meta name="Generator" content="PHP and good ole hand coded html">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="Author" content="{TG,robalo} at linuxpackages.net, {pimo,trotter} at opensys.ro">
+<meta name="Description" content="Slackware resources to help install and configure the Linux slackware distribution, Email list, Discussion Board, Howtos, Contributed packages, and much more">
+<meta name="Keywords" content="Linux Packages, Slackware, Linux, Help, Install, HOWTO, Sendmail, Slackbuilds, Software, News, ISDN, Security, Apache, Vhosting, Links, DNS, Sendmail, packages, programs">
+<link rel="alternate" type="application/rss+xml" title="Latest Packages RSS"
+ href="http://www.linuxpackages.net/backend/linuxpackages.rdf" />
+
+<link rel="stylesheet" href="lpstyle.css">
+<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
+ <!--
+ function open_window(url) {
+ var NEW_WIN = null;
+ NEW_WIN = window.open ("", "RecordViewer", "toolbar=no,width="+600+",height="+400+",directories=no,status=no,scrollbars=yes,resize=no,menubar=no");
+ NEW_WIN.location.href = url;
+ }
+ //-->
+ </SCRIPT>
+
+</head>
+<body bgcolor="#006699" text="#000000" link="#4b6d96" vlink="#4b6d96" alink="" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0">
+<!-- <body bgcolor="" text="" link="" vlink="" alink="" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0"> -->
+
+<table width="100%" cellpadding="10" cellspacing="0" border="0">
+<tr bgcolor="#FF9966"><form method="get" action="http://www.linuxpackages.net/search_view.php">
+<input type="hidden" name="by" value="name">
+<td width="265" align=right>
+<img src="/images/newlogo.gif" alt="LinuxPackages.net" width="265" height="43" border="0"></a><br>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="265" height="5" border="0"><br>
+&nbsp;<font color="#000000">SearchPkg:</font>
+<input name="name" type="text" size="12" value="">
+<select name="ver">
+<option value="11.0" >v11.0</option>
+<option value="10.2" >v10.2</option>
+<option value="10.1" >v10.1</option>
+<option value="10.0" >v10.0</option>
+<option value="9.1" >v9.1</option>
+<option value="9.0" >v9.0</option>
+<option value="8.1" >v8.1</option>
+<option value="8.0" >v8.0</option>
+<option value="" >any</option>
+</select>
+<input type="submit" value="Go">
+</td></form>
+<td width="468">
+<script language='JavaScript' type='text/javascript'>
+<!--
+ if (!document.phpAds_used) document.phpAds_used = ',';
+ phpAds_random = new String (Math.random()); phpAds_random = phpAds_random.substring(2,11);
+
+ document.write ("<" + "script language='JavaScript' type='text/javascript' src='");
+ document.write ("http://www.linuxpackages.net/adserv/adjs.php?n=" + phpAds_random);
+ document.write ("&amp;what=zone:5");
+ document.write ("&amp;exclude=" + document.phpAds_used);
+ if (document.referer)
+ document.write ("&amp;referer=" + escape(document.referer));
+ document.write ("'><" + "/script>");
+//-->
+</script><noscript><a href='http://www.linuxpackages.net/adserv/adclick.php?n=a1cec3e8'
+target='_blank'><img src='http://www.linuxpackages.net/adserv/adview.php?what=zone:5&amp;n=a1cec3e8'
+border='0' alt=''></a></noscript>
+<br>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="468" height="1" border="0"><br>
+</td><td width="100%">
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="60" border="0"><br>
+</td></tr>
+</table>
+
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#ffffff"><td width="100%">
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="1" border="0"><br>
+</td></tr>
+<tr bgcolor="#004263"><td align="center">
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="2" border="0"><br>
+<font color="#FF9966">
+<a href="http://www.linuxpackages.net/catalog" class="barlink">LP Store</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp<a href="http://www.linuxpackages.net/" class="barlink">Home</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxpackages.net/about.php" class="barlink">About</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxpackages.net/forum" class="barlink">Forums</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxpackages.net/site-links" class="barlink">Links</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxpackages.net/packages.php" class="barlink">Packages</a>
+</font><br>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>
+</td></tr>
+</table>
+
+<img src="http://www.linuxpackages.net/images/dot.gif" width="760" height="2" border="0"><br>
+<table width="100%" cellpadding="0" cellspacing="10" border="0"><tr>
+<td width="25%" valign="top">
+<!-- start left column -->
+
+<!--table header-->
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr><td bgcolor="#FF9966">
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#006699"><td width="100%" align="center">
+<b><font color="#ffffff">
+Information
+</font></b>
+</td><td width="5">
+<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>
+</td></tr></table>
+</td></tr></table>
+<!--//table header//-->
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>
+
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr bgcolor="#000000"><td>
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr bgcolor="#FFFFFF"><td width="100%">
+<font color="#000000">
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/catalog">LP Store</a><br>
+
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/about.php">About this Site</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/packages.php">Packages</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/forum">Slackware</a><small><sup>&reg;</sup></small><a href="http://www.linuxpackages.net/forum"> Forums</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/faq">Slackware FAQ</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php">Slackware Documents </a><small>(<i>Updated</i>)</small><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://slackart.linuxpackages.net">Slackware Art </a><br>
+
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=package&title=Package+Howto">Building Packages</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=buildtools&title=Package+Tools">Package Tools</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=perfect-package&title=Perfect+Package">The Perfect package</a><small>(<i>Updated</i>)</small><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=contrib&title=Contribute">Submitting a Package</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/changelog.php">Slackware Changelog</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www2.linuxpackages.net/packages/SlackBuilds/">Build Script Archive</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/topcontrib.php">Top Contributors</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/mirrors.php">Mirror Status/Info</a><br>
+</font>
+</td></tr></table>
+</td></tr></table>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br>
+<!--table header-->
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr><td bgcolor="#FF9966">
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#006699"><td width="100%" align="center">
+<span class="module">Top 10 Downloads</span>
+</td><td width="5">
+<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>
+</td></tr></table>
+</td></tr></table>
+<!--//table header//-->
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>
+
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr bgcolor="#000000"><td>
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr bgcolor="#dfdfdf"><td>
+<b>Packages</b><br>
+</td><td align=right>
+<b>Hits</b><br>
+</td></tr>
+<tr bgcolor="#FFFFFF"><td width="100%" colspan=2>
+<table width="100%" border=0 cellspacing=2 cellpadding=0>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7951">OpenOffice.org 2.0.3</a><br>
+</td><td align=right>
+<b>18540</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=760">Wine 0.9.7</a><br>
+</td><td align=right>
+<b>15526</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=5982">xmmsskins 1.0</a><br>
+</td><td align=right>
+<b>13202</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7608">K3b 0.12.17</a><br>
+</td><td align=right>
+<b>11383</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=8096">openoffice.org 2.0ptBR</a><br>
+</td><td align=right>
+<b>10492</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=8352">libdvdcss 1.2.9</a><br>
+</td><td align=right>
+<b>8839</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7419">slapt-get 0.9.11e</a><br>
+</td><td align=right>
+<b>5652</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7528">Freerock-Gnome 2.12.1</a><br>
+</td><td align=right>
+<b>4978</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=8105">Frozen-Bubble 1.0.0</a><br>
+</td><td align=right>
+<b>3906</b>
+</td></tr>
+<tr valign=top><td>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7926">k3b 0.12.16</a><br>
+</td><td align=right>
+<b>3630</b>
+</td></tr>
+</table>
+
+</td></tr></table>
+</td></tr></table>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br>
+
+<!--table header-->
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr><td bgcolor="#FF9966">
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#006699"><td width="100%" align="center">
+<b><font color="#ffffff">
+Email List
+</font></b>
+</td><td width="5">
+<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>
+</td></tr></table>
+</td></tr></table>
+<!--//table header//-->
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>
+
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr bgcolor="#000000"><td>
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr bgcolor="#FFFFFF"><td width="100%" align=center>
+Subscribe to LinuxPackages Package annoucements to get updated when new packages or updates are posted.<br>
+<a href=/mailman/listinfo/pkg-annc>Click here to subscribe</a><br><br>
+</td></tr></table>
+</td></tr></table>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br>
+<!--table header-->
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr><td bgcolor="#FF9966">
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#006699"><td width="100%" align="center">
+<span class="module">Quick Links</span>
+</td><td width="5">
+<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>
+</td></tr></table>
+</td></tr></table>
+<!--//table header//-->
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>
+
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr bgcolor="#000000"><td>
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr bgcolor="#FFFFFF"><td width="100%">
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.slackware.com" target=_blank>Slackware.com</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://muse.linuxmafia.org" target=_blank>GShield Firewall</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.satlug.org" target=_blank>SATLUG</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://swaret.sourceforge.net/index.php" target=_blank>Swaret</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.abnormalpenguin.com/slackware-mirrors.php" target=_blank>Slack Mirrors List</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://software.jaos.org/" target=_blank>Slapt-Get</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.darklinux.net/slackupdate/" target=_blank>SlackUpdate</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.mutagenix.org/" target=_blank>Mutagenix</a><br>
+<img src="/images/bullet.gif" border=0 align=middle> <a href="http://gsb.freerock.org" target=_blank>FreeRock Gnome</a><br>
+</td></tr></table>
+</td></tr></table>
+<!--//end left column//-->
+</td>
+<td width="75%" valign="top">
+<!-- start middle column -->
+
+<!--table header-->
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr><td bgcolor="#FF9966">
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#006699"><td width="100%" align="center">
+<b><font color="#ffffff">
+You are requesting file: wisgo7007sb-0.9.8-i486-1bif.tgz<br>
+Please select a mirror</font>
+</b>
+</td><td width="5">
+<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>
+</td></tr></table>
+</td></tr></table>
+<!--//table header//-->
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>
+
+<table width="100%" cellpadding="1" cellspacing="0" border="0">
+<tr bgcolor="#000000"><td>
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr bgcolor="#FFFFFF"><td width="100%">
+<table align="center" width="90%" bgcolor="#ffffff" cellpadding="0"
+cellspacing="0" border="0">
+<tbody>
+<tr>
+<td align="center" colspan="2">
+<table width="100%" cellpadding="1" cellspacing="1" border="0">
+<tbody>
+<tr>
+<th>
+</th>
+<th>Host<br></th>
+<th>Location<br>
+</th>
+<th>Continent<br>
+</th>
+<th>Download<br>
+</th>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.rol.ru/ target=_blank><img alt=Rol border="0"
+src=images/rol-logo-sm.gif width="100" height="41"></a></td>
+<td align="center">Rol</td>
+<td align="center">Moscow</td>
+<td align="center">Russia</td>
+<td align="center">
+<a href=http://slackware.rol.ru/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.reco-systems.de target=_blank><img alt=ReCo-Systems border="0"
+src=/images/logo_small.png width="100" height="41"></a></td>
+<td align="center">ReCo-Systems</td>
+<td align="center">Hannover Germany</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://linuxpackages.reco-systems.de//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://linuxpackages.reco-systems.de//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.slackware.hu target=_blank><img alt=Szombathely Linux Association border="0"
+src=/images/szle.jpg width="100" height="41"></a></td>
+<td align="center">Szombathely Linux Association</td>
+<td align="center">Hungary</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=ftp://ftp.slackware.hu/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.nymphomatic.org target=_blank><img alt=IEEE Student Branch border="0"
+src=images/evo.gif width="100" height="41"></a></td>
+<td align="center">IEEE Student Branch</td>
+<td align="center">Croatia</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://www.nymphomatic.org/mirror/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://ftp.nymphomatic.org/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.cgu.edu.tw target=_blank><img alt=Chang-Gung University border="0"
+src=images/cgu.png width="100" height="41"></a></td>
+<td align="center">Chang-Gung University</td>
+<td align="center">Taiwan</td>
+<td align="center">Asia</td>
+<td align="center">
+<a href=http://linuxpackages.cgucccc.org/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.software-mirror.com target=_blank><img alt=Software Mirror border="0"
+src=/images/sfmirror.gif width="100" height="41"></a></td>
+<td align="center">Software Mirror</td>
+<td align="center">Colorado</td>
+<td align="center">USA</td>
+<td align="center">
+<a href=http://www.software-mirror.com/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.inode.at target=_blank><img alt=Inode.at border="0"
+src=/images/inode.jpg width="100" height="41"></a></td>
+<td align="center">Inode.at</td>
+<td align="center">Austria</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://linuxpackages.inode.at/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://linuxpackages.inode.at/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.nyi.net target=_blank><img alt=NYI New York Internet border="0"
+src=/images/nyilogo.jpg width="100" height="41"></a></td>
+<td align="center">NYI New York Internet</td>
+<td align="center">New York USA</td>
+<td align="center">USA</td>
+<td align="center">
+<a href=http://www2.linuxpackages.net/packages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://ftp3.linuxpackages.net/pub/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.scarlet.be target=_blank><img alt=Scarlet.be border="0"
+src=/images/scarlet_lp.gif width="100" height="41"></a></td>
+<td align="center">Scarlet.be</td>
+<td align="center">Belgium</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://ftp.scarlet.be/pub/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://ftp.scarlet.be/pub/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.opensys.ro target=_blank><img alt=Open Systems border="0"
+src=/images/logoopensys.jpg width="100" height="41"></a></td>
+<td align="center">Open Systems</td>
+<td align="center">Romania</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://opensys.linuxpackages.net/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://opensys.linuxpackages.net/pub/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.telecoms.bg target=_blank><img alt=Telecoms border="0"
+src=images/evo.gif width="100" height="41"></a></td>
+<td align="center">Telecoms</td>
+<td align="center">Varna Bulgaria</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://linuxpackages.telecoms.bg/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://linuxpackages.telecoms.bg/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.naist.jp/ target=_blank><img alt=Naist border="0"
+src=/images/naist.png width="100" height="41"></a></td>
+<td align="center">Naist</td>
+<td align="center">Japan</td>
+<td align="center">Asia</td>
+<td align="center">
+<a href=http://ftp.naist.jp/pub/Linux/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://ftp.nara.wide.ad.jp/pub/Linux/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://mirrors.unixsol.org/ target=_blank><img alt=Unixsol border="0"
+src=/images/unixsol.png width="100" height="41"></a></td>
+<td align="center">Unixsol</td>
+<td align="center">Sofia Bulgaria</td>
+<td align="center">Europe</td>
+<td align="center">
+<a href=http://mirrors.unixsol.org/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://mirrors.unixsol.org/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+<tr bgcolor="#dddddd">
+<td align="center"><a href=http://www.cs.utah.edu/ target=_blank><img alt=University of Utah border="0"
+src=images/UUSC.png width="100" height="41"></a></td>
+<td align="center">University of Utah</td>
+<td align="center">Utah</td>
+<td align="center">USA</td>
+<td align="center">
+<a href=http://linuxpackages.cs.utah.edu//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>&nbsp;&nbsp; <a href=ftp://mirror.cs.utah.edu/pub/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td>
+</tr>
+</tbody>
+</table>
+</td>
+</tr>
+</tbody>
+</table>
+<br><center>Not all mirrors may be updated right away with new packages.</center>
+</td></tr></table>
+</td></tr></table>
+<!--//end middle column//-->
+</td>
+</tr></table>
+
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr bgcolor="#ffffff"><td width="100%">
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="1" border="0"><br>
+</td></tr>
+<tr bgcolor="#FF9966"><td align=center>
+<br>Copyright &copy;1997-2004 LinuxPackages Network. All rights reserved.<br>
+Slackware is a registered trademark of Patrick Volkerding and Slackware Linux, Inc.<br>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="5" border="0"><br>
+<a href="http://www.linuxpackages.net/advertise.php">Advertising</a> - <a href="http://www.linuxpackages.net/catalog/privacy.php">Privacy Statement</a> - Terms of Use - Build: 2002071201<br>
+<a href=http://www.nyi.net>FTP Hosting provided by The New York Internet Company</a><br>
+<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br>
+</td></tr>
+</table>
+</body>
+</html>
diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base
new file mode 100644
index 0000000..694a2f6
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base
@@ -0,0 +1,76 @@
+diff -ur wis-go7007-linux-0.9.8/kernel/go7007-usb.c wis-go7007-linux-0.9.8-new/kernel/go7007-usb.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-usb.c 2006-04-02 00:57:04.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-usb.c 2006-04-03 12:58:44.000000000 +0200
+@@ -27,7 +27,7 @@
+ #include <linux/usb.h>
+ #include <linux/i2c.h>
+ #include <asm/byteorder.h>
+-#include <media/audiochip.h>
++#include <media/tvaudio.h>
+
+ #include "go7007-priv.h"
+ #include "wis-i2c.h"
+@@ -225,17 +225,17 @@
+ .inputs = {
+ {
+ .video_input = 1,
+- .audio_input = AUDIO_EXTERN,
++ .audio_input = TVAUDIO_INPUT_EXTERN,
+ .name = "Composite",
+ },
+ {
+ .video_input = 8,
+- .audio_input = AUDIO_EXTERN,
++ .audio_input = TVAUDIO_INPUT_EXTERN,
+ .name = "S-Video",
+ },
+ {
+ .video_input = 3,
+- .audio_input = AUDIO_TUNER,
++ .audio_input = TVAUDIO_INPUT_TUNER,
+ .name = "Tuner",
+ },
+ },
+diff -ur wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-new/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c 2006-04-02 01:22:03.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-v4l2.c 2006-04-03 12:55:52.000000000 +0200
+@@ -939,7 +939,7 @@
+ if (go->i2c_adapter_online) {
+ i2c_clients_command(&go->i2c_adapter, DECODER_SET_INPUT,
+ &go->board_info->inputs[*input].video_input);
+- i2c_clients_command(&go->i2c_adapter, AUDC_SET_INPUT,
++ i2c_clients_command(&go->i2c_adapter, VIDIOC_S_AUDIO,
+ &go->board_info->inputs[*input].audio_input);
+ }
+ return 0;
+diff -ur wis-go7007-linux-0.9.8/kernel/wis-uda1342.c wis-go7007-linux-0.9.8-new/kernel/wis-uda1342.c
+--- wis-go7007-linux-0.9.8/kernel/wis-uda1342.c 2006-04-02 00:37:32.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/wis-uda1342.c 2006-04-03 13:07:04.000000000 +0200
+@@ -20,7 +20,7 @@
+ #include <linux/version.h>
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+-#include <media/audiochip.h>
++#include <media/tvaudio.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #include <media/v4l2-common.h>
+ #endif
+@@ -38,15 +38,15 @@
+ unsigned int cmd, void *arg)
+ {
+ switch (cmd) {
+- case AUDC_SET_INPUT:
++ case VIDIOC_S_AUDIO:
+ {
+ int *inp = arg;
+
+ switch (*inp) {
+- case AUDIO_TUNER:
++ case TVAUDIO_INPUT_TUNER:
+ write_reg(client, 0x00, 0x1441); /* select input 2 */
+ break;
+- case AUDIO_EXTERN:
++ case TVAUDIO_INPUT_EXTERN:
+ write_reg(client, 0x00, 0x1241); /* select input 1 */
+ break;
+ default:
diff --git a/abs/not_built/core/plextor-convertX-driver/PKGBUILD b/abs/not_built/core/plextor-convertX-driver/PKGBUILD
new file mode 100755
index 0000000..8b203f6
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/PKGBUILD
@@ -0,0 +1,36 @@
+
+
+pkgname=plextor-convertX-driver
+pkgver=0.9.8
+pkgrel=7
+_kernver=2.6.28-LinHES
+pkgdesc="Drivers for Plextor tuners"
+arch=(i686 x86_64)
+url="http://nikosapi.org/software/WIS_Go7007"
+install="convertX.install"
+source=("http://go7007.imploder.org/wp-content/uploads/2009/02/wis-go7007-linux-098-4tar.bz2" 'wis-go7007-2.6.26-nopage.diff' 'wis-go7007-linux-0.9.8-2-2.6.27.patch')
+depends=('udev>=070' 'fxload')
+makedepends=('gcc')
+options=(!strip)
+
+build() {
+
+ # SET UP
+ cd $startdir/src/wis-go7007-linux-0.9.8-4 || return 1
+# patch -Np1 -i ../wis-go7007-2.6.26-nopage.diff || return 1
+# patch -Np1 -i ../wis-go7007-linux-0.9.8-2-2.6.27.patch || return 1
+ # build
+ make clean || return 1
+ make || return 1
+ mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include/linux
+ mkdir -p $startdir/pkg/etc/udev/rules.d
+ mkdir -p $startdir/pkg/usr/bin
+ mkdir -p $startdir/pkg/usr/sbin
+ # install
+ make DESTDIR=$startdir/pkg install || return 1
+ install -m755 apps/gorecord $startdir/pkg/usr/bin/gorecord
+ install -m755 apps/modet $startdir/pkg/usr/bin/modet
+}
+md5sums=('b4299b6e2fcbaf461bc8afe36654f314'
+ 'e4c7bc33d6e69eafc10bd107cf648828'
+ '3b89d8746adf70102eeeb47d03627ece')
diff --git a/abs/not_built/core/plextor-convertX-driver/convertX.install b/abs/not_built/core/plextor-convertX-driver/convertX.install
new file mode 100755
index 0000000..5b79d84
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/convertX.install
@@ -0,0 +1,34 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ KERNEL_VERSION=2.6.28-LinHES
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ echo "# Added For Plextor ConvertX" >> /etc/fstab
+ echo "usbfs /proc/bus/usb usbfs devmode=0666 0 0" >> /etc/fstab
+ /bin/true
+}
+
+post_upgrade() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ KERNEL_VERSION=2.6.28-LinHES
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ /bin/true
+}
+
+post_remove() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ KERNEL_VERSION=2.6.28-LinHES
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ sed -i~ -e '/ConvertX/d' -e '/usbfs/d' /etc/fstab
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff b/abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff
new file mode 100644
index 0000000..2fd1cca
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff
@@ -0,0 +1,26 @@
+diff -urN wis-go7007-linux-0.9.8.orig/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8.orig/kernel/go7007-v4l2.c 2007-05-09 13:56:07.000000000 -0400
++++ wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c 2008-08-03 16:01:35.000000000 -0400
+@@ -1375,6 +1375,7 @@
+ }
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ /* This is really only going to ever be called when we
+ * do get_user_pages() in VIDIOC_QBUF */
+ static struct page *go7007_vm_nopage(struct vm_area_struct *vma,
+@@ -1392,11 +1393,14 @@
+ *type = VM_FAULT_MINOR;
+ return page;
+ }
++#endif
+
+ static struct vm_operations_struct go7007_vm_ops = {
+ .open = go7007_vm_open,
+ .close = go7007_vm_close,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ .nopage = go7007_vm_nopage,
++#endif
+ };
+
+ static int go7007_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch b/abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch
new file mode 100644
index 0000000..6275d8c
--- /dev/null
+++ b/abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch
@@ -0,0 +1,83 @@
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c
+--- wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c 2007-03-21 12:51:54.000000000 -0500
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c 2008-12-30 21:04:32.545534308 -0600
+@@ -32,7 +32,7 @@
+ #include <linux/i2c.h>
+ #include <linux/firmware.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+ #include <linux/videodev.h>
+ #include <media/tuner.h>
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c
+--- wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c 2008-04-06 09:28:35.000000000 -0500
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c 2008-12-30 21:04:32.569550193 -0600
+@@ -29,7 +29,7 @@
+ #include <linux/device.h>
+ #include <linux/i2c.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+
+ #include "go7007-priv.h"
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c 2008-12-30 21:16:17.221534155 -0600
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c 2008-12-30 21:10:24.252534209 -0600
+@@ -35,10 +35,12 @@
+ #include <media/audiochip.h>
+ #else
+ #include <media/v4l2-common.h>
++#include <media/v4l2-chip-ident.h>
++#include <media/v4l2-ioctl.h>
+ #endif
+ #include <linux/i2c.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+
+ #include "../include/go7007.h"
+@@ -1478,7 +1480,7 @@
+
+ static struct video_device go7007_template = {
+ .name = "go7007",
+- .type = VID_TYPE_CAPTURE,
++ .vfl_type = VID_TYPE_CAPTURE,
+ .fops = &go7007_fops,
+ .minor = -1,
+ .release = go7007_vfl_release,
+@@ -1492,7 +1494,7 @@
+ if (go->video_dev == NULL)
+ return -ENOMEM;
+ memcpy(go->video_dev, &go7007_template, sizeof(go7007_template));
+- go->video_dev->dev = go->dev;
++ go->video_dev->parent = go->dev;
+ rv = video_register_device(go->video_dev, VFL_TYPE_GRABBER, -1);
+ if (rv < 0)
+ {
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c
+--- wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c 2007-09-06 22:45:25.000000000 -0500
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c 2008-12-30 21:04:33.077579435 -0600
+@@ -34,7 +34,7 @@
+ #include <linux/mm.h>
+ #include <linux/i2c.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+ #include <sound/driver.h>
+ #include <sound/core.h>
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c
+--- wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c 2006-04-01 16:37:18.000000000 -0600
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c 2008-12-30 21:10:36.100534544 -0600
+@@ -23,6 +23,8 @@
+ #include <media/tuner.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #include <media/v4l2-common.h>
++#include <media/v4l2-chip-ident.h>
++#include <media/v4l2-ioctl.h>
+ #endif
+
+ #include "wis-i2c.h"
diff --git a/abs/not_built/core/procinfo-ng/PKGBUILD b/abs/not_built/core/procinfo-ng/PKGBUILD
new file mode 100644
index 0000000..abe31c2
--- /dev/null
+++ b/abs/not_built/core/procinfo-ng/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 77945 2010-04-19 06:20:55Z allan $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+pkgname=procinfo-ng
+pkgver=2.0.304
+pkgrel=1
+pkgdesc="Displays useful information from /proc"
+arch=('i686' 'x86_64')
+url="http://procinfo-ng.sourceforge.net/"
+license=('GPL2' 'LGPL2.1')
+depends=('ncurses' 'perl')
+provides=('procinfo')
+conflicts=('procinfo')
+replaces=('procinfo')
+source=(http://downloads.sourceforge.net/project/procinfo-ng/procinfo-ng/2.0.304/$pkgname-$pkgver.tar.bz2
+ ftp://ftp.cistron.nl/pub/people/00-OLD/svm/procinfo-18.tar.gz)
+md5sums=('ed018fe37becc36ceb1ebe3ed909c4d2'
+ '27658d0a69040aca05a65b9888599d50')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR="$pkgdir/" install
+
+ # install tools from old procinfo package
+ cd $srcdir/procinfo-18
+ install -m755 lsdev.pl $pkgdir/usr/bin/lsdev
+ install -m755 socklist.pl $pkgdir/usr/bin/socklist
+ install -m644 lsdev.8 $pkgdir/usr/share/man/man8/lsdev.8
+ install -m644 socklist.8 $pkgdir/usr/share/man/man8/socklist.8
+}
+
diff --git a/abs/not_built/core/procps/ChangeLog b/abs/not_built/core/procps/ChangeLog
new file mode 100644
index 0000000..dddcde3
--- /dev/null
+++ b/abs/not_built/core/procps/ChangeLog
@@ -0,0 +1,10 @@
+2009-05-12 Eric Belanger <eric@archlinux.org>
+
+ * procps 3.2.8-1
+ * Upstream update
+ * Fixed license
+
+2008-10-19 Eric Belanger <eric@archlinux.org>
+
+ * Updated url
+ * Added ChangeLog
diff --git a/abs/not_built/core/procps/PKGBUILD b/abs/not_built/core/procps/PKGBUILD
new file mode 100644
index 0000000..84c3a19
--- /dev/null
+++ b/abs/not_built/core/procps/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 39239 2009-05-14 06:04:46Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=procps
+pkgver=3.2.8
+pkgrel=1
+pkgdesc="Utilities for monitoring your system and processes on your system"
+arch=('i686' 'x86_64')
+url="http://procps.sourceforge.net/"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('ncurses')
+backup=('etc/sysctl.conf')
+source=(http://procps.sourceforge.net/procps-${pkgver}.tar.gz sysctl.conf)
+md5sums=('9532714b6846013ca9898984ba4cd7e0' '9be3a131a7068aae11418e6dd99e2221')
+sha1sums=('a0c86790569dec26b5d9037e8868ca907acc9829' '9b9a314010d042b5aa487893c06f361531525e6a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i "s:\$(lib64):lib:" Makefile || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" ldconfig=/bin/true install || return 1
+ install -D -m644 "${srcdir}/sysctl.conf" "${pkgdir}/etc/sysctl.conf" || return 1
+ install -d "${pkgdir}/usr/include/proc" || return 1
+ install -m644 proc/*.h "${pkgdir}/usr/include/proc" || return 1
+}
diff --git a/abs/not_built/core/procps/sysctl.conf b/abs/not_built/core/procps/sysctl.conf
new file mode 100644
index 0000000..e3ebc7b
--- /dev/null
+++ b/abs/not_built/core/procps/sysctl.conf
@@ -0,0 +1,13 @@
+#
+# Kernel sysctl configuration
+#
+
+# Disable packet forwarding
+net.ipv4.ip_forward=0
+
+# Disable the magic-sysrq key (console security issues)
+kernel.sysrq = 0
+
+# Enable TCP SYN Cookie Protection
+net.ipv4.tcp_syncookies = 1
+
diff --git a/abs/not_built/core/projectm-complete/PKGBUILD b/abs/not_built/core/projectm-complete/PKGBUILD
new file mode 100644
index 0000000..59fd26f
--- /dev/null
+++ b/abs/not_built/core/projectm-complete/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Nickolay Stepanenko <nixtrian at gmail dot com>
+
+pkgname=projectm-complete
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="A music visualizer which uses 3D accelerated iterative image based rendering (all components)"
+arch=('i686' 'x86_64')
+url="http://projectm.sourceforge.net/"
+license=('GPL')
+depends=('ftgl' 'glut' 'glew' 'libvisual-plugins')
+provides=('projectm' 'projectm-qt' 'projectm-libvisual' 'projectm-libvisual-alsa')
+conflicts=('projectm' 'projectm-qt' 'projectm-libvisual' 'projectm-libvisual-alsa')
+makedepends=('pkgconfig' 'xproto' 'cmake')
+source=("http://sourceforge.net/projects/projectm/files/2.0.1/projectM-complete-2.0.1-Source.tar.gz/download"
+ "libprojectm-2.0.1-pcfix.patch"
+ "error-handling.patch")
+md5sums=('9d32fa1357622c7a945a2e10620ee945' '9e2d9b03748fd6511181366b8d025425')
+
+build() {
+ cd $srcdir/projectM-complete-$pkgver-Source/ || return 1
+
+ patch -p1 -i ../libprojectm-2.0.1-pcfix.patch
+ patch -p1 -i ../error-handling.patch
+ cd src
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D USE_FBO=OFF . || return 1
+ make all || return 1
+ make DESTDIR=$pkgdir install || return 1
+ rm -rf $srcdir/projectM-complete-$pkgver-Source
+}
+md5sums=('9d32fa1357622c7a945a2e10620ee945'
+ '9e2d9b03748fd6511181366b8d025425'
+ '9b6e5a862603e7b9e45bfc51313c6a04')
diff --git a/abs/not_built/core/projectm-complete/error-handling.patch b/abs/not_built/core/projectm-complete/error-handling.patch
new file mode 100644
index 0000000..4154884
--- /dev/null
+++ b/abs/not_built/core/projectm-complete/error-handling.patch
@@ -0,0 +1,308 @@
+Description: Error handling
+ * Guard against reinitializing the builtin milkdrop functions.
+ Hides a deeper issue where something is double loading the preset factories, most
+ likely.
+ * Playlist file / directory error handling fixes, resize playlist refresh fix
+
+Forwarded: yes
+Author: Carmelo Piccione <carmelo.piccione@gmail.com>
+Last-Update: 2010-07-29
+--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
++++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
+@@ -29,7 +29,7 @@
+ /* Create new function */
+ func = new Func(name, func_ptr, num_args);
+
+- if (func == NULL)
++ if (func == 0)
+ return PROJECTM_OUTOFMEM_ERROR;
+
+ retval = insert_func( func );
+@@ -115,12 +115,18 @@
+ return PROJECTM_SUCCESS;
+ }
+
++volatile bool BuiltinFuncs::initialized = false;
+
+ /* Initialize the builtin function database.
+ Should only be necessary once */
+ int BuiltinFuncs::init_builtin_func_db() {
+ int retval;
+
++ if (initialized) {
++ return 0;
++ } else
++ initialized = true;
++
+ retval = load_all_builtin_func();
+ return retval;
+ }
+@@ -134,7 +140,7 @@
+ traverse<TraverseFunctors::Delete<Func> >(builtin_func_tree);
+
+ builtin_func_tree.clear();
+-
++initialized = false;
+ return PROJECTM_SUCCESS;
+ }
+
+@@ -142,13 +148,24 @@
+ int BuiltinFuncs::insert_func( Func *func ) {
+
+ assert(func);
+- std::pair<std::map<std::string, Func*>::iterator, bool> inserteePair =
+- builtin_func_tree.insert(std::make_pair(std::string(func->getName()), func));
+
++ if (func == 0) {
++ std::cerr << "Received a null function object, ignoring...." << std::endl;
++ return PROJECTM_ERROR;
++ }
++
++// //std::cout << "inserting function " << func->getName() << std::endl;
++
++ const std::pair<std::string, Func*> pair = std::make_pair(std::string(func->getName()), func);
++
++ assert(pair.second);
++
++ const std::pair<std::map<std::string, Func*>::iterator, bool> inserteePair =
++ builtin_func_tree.insert(pair);
++
+ if (!inserteePair.second) {
+ std::cerr << "Failed to insert builtin function \"" << func->getName() << "\" into collection! Bailing..." << std::endl;
+ abort();
+-
+ }
+
+ return PROJECTM_SUCCESS;
+--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
++++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
+@@ -229,6 +229,7 @@
+ static Func *find_func( const std::string & name );
+ private:
+ static std::map<std::string, Func*> builtin_func_tree;
++ static volatile bool initialized;
+ };
+
+ #endif
+--- a/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp
++++ b/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp
+@@ -26,7 +26,7 @@
+ Eval::init_infix_ops();
+
+ _presetOutputs = createPresetOutputs(gx,gy);
+- _presetOutputs2 = createPresetOutputs(gx, gy);
++ _presetOutputs2 = createPresetOutputs(gx, gy);
+ }
+
+ MilkdropPresetFactory::~MilkdropPresetFactory() {
+@@ -37,13 +37,13 @@
+ BuiltinFuncs::destroy_builtin_func_db();
+ std::cerr << "[~MilkdropPresetFactory] delete preset out puts" << std::endl;
+ delete(_presetOutputs);
+- delete(_presetOutputs2);
++ delete(_presetOutputs2);
+ std::cerr << "[~MilkdropPresetFactory] done" << std::endl;
+
+ }
+
+ /* Reinitializes the engine variables to a default (conservative and sane) value */
+-void resetPresetOutputs(PresetOutputs *presetOutputs)
++void resetPresetOutputs(PresetOutputs * presetOutputs)
+ {
+
+ presetOutputs->zoom=1.0;
+--- a/src/libprojectM/PresetFactoryManager.cpp
++++ b/src/libprojectM/PresetFactoryManager.cpp
+@@ -20,7 +20,7 @@
+ #endif
+
+ #include <sstream>
+-PresetFactoryManager::PresetFactoryManager() : _gx(0), _gy(0) {}
++PresetFactoryManager::PresetFactoryManager() : _gx(0), _gy(0), initialized(false) {}
+
+ PresetFactoryManager::~PresetFactoryManager() {
+ for (std::vector<PresetFactory *>::iterator pos = _factoryList.begin();
+@@ -29,11 +29,20 @@
+ delete(*pos);
+ }
+
+-
++ initialized = false;
+ }
++
+ void PresetFactoryManager::initialize(int gx, int gy) {
+ _gx = gx;
+ _gy = gy;
++
++ if (!initialized) {
++ initialized = true;
++ } else {
++ std::cout << "already initialized " << std::endl;
++ return;
++ }
++
+ PresetFactory * factory;
+
+ #ifndef DISABLE_MILKDROP_PRESETS
+--- a/src/libprojectM/PresetFactoryManager.hpp
++++ b/src/libprojectM/PresetFactoryManager.hpp
+@@ -21,7 +21,7 @@
+ virtual ~PresetFactoryException() throw() {}
+ const std::string & message() const { return _message; }
+
+- private:
++ private:
+ std::string _message;
+ };
+
+@@ -54,6 +54,6 @@
+ mutable std::map<std::string, PresetFactory *> _factoryMap;
+ mutable std::vector<PresetFactory *> _factoryList;
+ void registerFactory(const std::string & extension, PresetFactory * factory);
+-
++ volatile bool initialized;
+ };
+ #endif
+--- a/src/libprojectM/projectM.cpp
++++ b/src/libprojectM/projectM.cpp
+@@ -222,7 +222,6 @@
+ projectM_init ( _settings.meshX, _settings.meshY, _settings.fps,
+ _settings.textureSize, _settings.windowWidth,_settings.windowHeight);
+
+-
+ _settings.beatSensitivity = beatDetect->beat_sensitivity = config.read<float> ( "Hard Cut Sensitivity", 10.0 );
+
+ if ( config.read ( "Aspect Correction", true ) )
+--- a/src/projectM-pulseaudio/QPulseAudioThread.cpp
++++ b/src/projectM-pulseaudio/QPulseAudioThread.cpp
+@@ -296,9 +296,7 @@
+ {
+ assert ( mainloop_api );
+ mainloop_api->quit ( mainloop_api, ret );
+- if (*s_qprojectM_MainWindowPtr)
+- delete(*s_qprojectM_MainWindowPtr);
+- *s_qprojectM_MainWindowPtr = 0;
++
+ }
+
+
+@@ -315,7 +313,8 @@
+ {
+ fprintf ( stderr, "pa_stream_peek() failed: %s\n", pa_strerror ( pa_context_errno ( context ) ) );
+ pulseQuit ( 1 );
+- return;
++ return
++;
+ }
+
+ if ((!s_qprojectM_MainWindowPtr) || (!*s_qprojectM_MainWindowPtr))
+@@ -352,16 +351,16 @@
+ switch ( pa_stream_get_state ( s ) )
+ {
+ case PA_STREAM_UNCONNECTED:
+-// qDebug() << "UNCONNECTED";
++ qDebug() << "UNCONNECTED";
+ break;
+ case PA_STREAM_CREATING:
+-// qDebug() << "CREATED";
++ qDebug() << "CREATED";
+ break;
+ case PA_STREAM_TERMINATED:
+-// qDebug() << "TERMINATED";
++ qDebug() << "TERMINATED";
+ break;
+ case PA_STREAM_READY:
+-// qDebug() << "READY";
++ qDebug() << "READY";
+ if ( verbose )
+ {
+ const pa_buffer_attr *a;
+--- a/src/projectM-qt/qplaylisttableview.hpp
++++ b/src/projectM-qt/qplaylisttableview.hpp
+@@ -93,14 +93,14 @@
+ }
+
+ inline void resizeEvent(QResizeEvent * event) {
+-
++ QTableView::resizeEvent(event);
+ emit(resized(event));
+ }
+
+ inline void mousePressEvent(QMouseEvent * event) {
+ QAbstractItemView::mousePressEvent(event);
+ if (event->button() == Qt::RightButton) {
+- emit(mousePressed(event, selectedIndexes()));
++ emit(mousePressed(event, selectedIndexes()));
+ }
+ else
+ ;
+--- a/src/projectM-qt/qprojectm_mainwindow.cpp
++++ b/src/projectM-qt/qprojectm_mainwindow.cpp
+@@ -98,7 +98,8 @@
+
+ connect(ui->tableView, SIGNAL(resized(QResizeEvent *)), this, SLOT(refreshHeaders(QResizeEvent*)));
+
+- connect(ui->tableView, SIGNAL(mousePressed(QMouseEvent*, const QModelIndexList &)), this, SLOT(popupPlaylistContextMenu(QMouseEvent*, const QModelIndexList &)));
++ connect(ui->tableView, SIGNAL(mousePressed(QMouseEvent*, const QModelIndexList &)), this,
++ SLOT(popupPlaylistContextMenu(QMouseEvent*, const QModelIndexList &)));
+
+ connect ( m_QProjectMWidget, SIGNAL ( projectM_Initialized(QProjectM*) ),
+ this, SLOT ( postProjectM_Initialize() ) );
+@@ -662,7 +663,7 @@
+ // Add 1 to skip the Name column
+ hHeader->setResizeMode (i+1, QHeaderView::ResizeToContents);
+ sizeTotal += hHeader->sectionSize(i+1);
+- }
++ }
+ hHeader->resizeSection(0, ui->tableView->size().width()-20-sizeTotal);
+
+
+@@ -883,11 +884,13 @@
+ QString url = m_QPlaylistFileDialog->selectedFiles() [0];
+
+
+- if ( !playlistModel->readPlaylist ( url ) ) {
++ const bool loadedOk = playlistModel->readPlaylist ( url );
++
++ if (!loadedOk) {
+ qDebug() << "could not open playlist";
+ url = QString();
+-
+- }
++ }
++
+ qDebug() << "url: " << url;
+ updatePlaylistUrl(url);
+
+--- a/src/projectM-qt/qprojectmwidget.hpp
++++ b/src/projectM-qt/qprojectmwidget.hpp
+@@ -22,6 +22,7 @@
+ #ifndef QPROJECTM_WIDGET_HPP
+ #define QPROJECTM_WIDGET_HPP
+
++#include <iostream>
+ #include "qprojectm.hpp"
+ #include <QGLWidget>
+ #include <QMutex>
+@@ -111,7 +112,7 @@
+
+ void resetProjectM()
+ {
+-
++ std::cout << "reseting" << std::endl;
+ qDebug() << "reset start";
+
+ emit ( projectM_BeforeDestroy() );
+@@ -246,8 +247,10 @@
+ void initializeGL()
+ {
+
+- this->m_projectM = new QProjectM ( m_config_file );
+- projectM_Initialized ( m_projectM );
++ if (m_projectM == 0) {
++ this->m_projectM = new QProjectM ( m_config_file );
++ projectM_Initialized ( m_projectM );
++ }
+ }
+
+ inline void paintGL()
diff --git a/abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch b/abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch
new file mode 100644
index 0000000..50097e7
--- /dev/null
+++ b/abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch
@@ -0,0 +1,25 @@
+--- projectM-2.0.1-Source.orig/src/libprojectM/libprojectM.pc.in
++++ projectM-2.0.1-Source/src/libprojectM/libprojectM.pc.in
+@@ -1,6 +1,6 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=@CMAKE_INSTALL_PREFIX@
+-libdir=@LIB_INSTALL_DIR@
++libdir=${exec_prefix}/lib@LIB_SUFFIX@
+ includedir=@CMAKE_INSTALL_PREFIX@/include
+ pkgdatadir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
+ sysconfdir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
+
+--- projectM-complete-2.0.1-Source.orig/src/CMakeLists.txt 2009-12-06 02:20:48.000000000 +0100
++++ rojectM-complete-2.0.1-Source/src/CMakeLists.txt 2010-06-28 01:10:27.145943667 +0200
+@@ -3,9 +3,9 @@
+ cmake_minimum_required(VERSION 2.4.0)
+
+ OPTION(INCLUDE-PROJECTM-QT "Build the projectM Qt4 user interface extension library (recommended)" ON)
+-OPTION(INCLUDE-PROJECTM-PULSEAUDIO "Build the projectM pulse audio client (recommended for fedora users)" ON)
++OPTION(INCLUDE-PROJECTM-PULSEAUDIO "Build the projectM pulse audio client (recommended for fedora users)" OFF)
+ OPTION(INCLUDE-PROJECTM-LIBVISUAL "Build the projectM libvisual client" ON)
+-OPTION(INCLUDE-PROJECTM-LIBVISUAL-ALSA "Build experimental libvisual / alsa input standalone client (NEW!)" OFF)
++OPTION(INCLUDE-PROJECTM-LIBVISUAL-ALSA "Build experimental libvisual / alsa input standalone client (NEW!)" ON)
+ OPTION(INCLUDE-PROJECTM-JACK "Build the projectM JACK client" OFF)
+ OPTION(INCLUDE-PROJECTM-TEST "Build the projectM test suite" ON)
+ OPTION(INCLUDE-PROJECTM-XMMS "Build the projectM xmms module (deprecated, use audacious instead)" OFF)
diff --git a/abs/not_built/core/pvr150-firmware/PKGBUILD b/abs/not_built/core/pvr150-firmware/PKGBUILD
new file mode 100644
index 0000000..013a2c8
--- /dev/null
+++ b/abs/not_built/core/pvr150-firmware/PKGBUILD
@@ -0,0 +1,17 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=pvr150-firmware
+pkgver=1
+pkgrel=2
+pkgdesc="Firmware for PVR-150 IR-Blaster"
+arch=('i586' 'i686' 'x86_64')
+url="http://www.blushingpenguin.com/mark/blog/?p=24"
+source=(http://www.blushingpenguin.com/mark/lmilk/haup-ir-blaster.bin)
+md5sums=('1c117d591bbcb733690e1b7b36202490')
+
+build() {
+ cd $startdir/src/
+ mkdir -p $startdir/pkg/lib/firmware
+ install -m0755 $startdir/src/haup-ir-blaster.bin $startdir/pkg/lib/firmware
+}
diff --git a/abs/not_built/core/python2/PKGBUILD b/abs/not_built/core/python2/PKGBUILD
new file mode 100644
index 0000000..0273175
--- /dev/null
+++ b/abs/not_built/core/python2/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 157413 2012-04-28 09:27:14Z allan $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributer: Allan McRae <allan@archlinux.org>
+# Contributer: Jason Chu <jason@archlinux.org>
+
+pkgname=python2
+pkgver=2.7.3
+pkgrel=2
+_pybasever=2.7
+pkgdesc="A high-level scripting language"
+arch=('i686' 'x86_64')
+license=('PSF')
+url="http://www.python.org/"
+depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi')
+makedepends=('tk')
+optdepends=('tk: for IDLE')
+conflicts=('python<3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz)
+sha1sums=('b2b0ada7ebed4a8204a855193afbdb3aa3308357')
+
+build() {
+ cd "${srcdir}/Python-${pkgver}"
+
+ # Temporary workaround for FS#22322
+ # See http://bugs.python.org/issue10835 for upstream report
+ sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
+
+ # Enable built-in SQLite module to load extensions (fix FS#22122)
+ sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
+
+ # FS#23997
+ sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python2|" Lib/cgi.py
+
+ # Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
+ # rather than copies shipped in the tarball
+ rm -r Modules/expat
+ rm -r Modules/zlib
+ rm -r Modules/_ctypes/{darwin,libffi}*
+
+ export OPT="${CFLAGS}"
+ ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \
+ --enable-unicode=ucs4 --with-system-expat --with-system-ffi \
+ --with-dbmliborder=gdbm:ndbm
+
+ make
+}
+
+package() {
+ cd "${srcdir}/Python-${pkgver}"
+ make DESTDIR="${pkgdir}" altinstall maninstall
+
+ ln -sf python${_pybasever} "${pkgdir}/usr/bin/python2"
+ ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config"
+ ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python2.1"
+
+ ln -sf ../../libpython${_pybasever}.so \
+ "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so"
+
+ mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/"
+
+ # some useful "stuff"
+ install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts}
+ install -m755 Tools/i18n/{msgfmt,pygettext}.py \
+ "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/"
+ install -m755 Tools/scripts/{README,*py} \
+ "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/"
+
+ # fix conflicts with python
+ mv "${pkgdir}"/usr/bin/idle{,2}
+ mv "${pkgdir}"/usr/bin/pydoc{,2}
+ mv "${pkgdir}"/usr/bin/2to3{,-2.7}
+
+ # clean up #!s
+ find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \
+ xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+
+ # clean-up reference to build directory
+ sed -i "s#${srcdir}/Python-${pkgver}:##" \
+ "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile"
+
+ # license
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/core/python_modules/bluez-python/PKGBUILD b/abs/not_built/core/python_modules/bluez-python/PKGBUILD
new file mode 100644
index 0000000..4314206
--- /dev/null
+++ b/abs/not_built/core/python_modules/bluez-python/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Li Dongyang<Jerry87905@gmail.com>
+
+pkgname=bluez-python
+pkgver=0.1.4
+pkgrel=3
+pkgdesc="A BlueZ python binding on top of dbus-python"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/bluez-python"
+license=('LGPL')
+depends=('bluez>=4.30' 'dbus-python')
+source=(http://bluez-python.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('013f283d3c32765e67c89ebf7f5470ea')
+
+build() {
+ /bin/true
+}
+package() {
+ cd ${srcdir}/${pkgname}
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/abs/not_built/core/python_modules/cddb-py/PKGBUILD b/abs/not_built/core/python_modules/cddb-py/PKGBUILD
new file mode 100755
index 0000000..3facc20
--- /dev/null
+++ b/abs/not_built/core/python_modules/cddb-py/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 26144 2010-09-13 19:36:37Z schuay $
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+# Contributor: David Keogh <davekeogh@shaw.ca>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=cddb-py
+pkgver=1.4
+pkgrel=6
+pkgdesc="CDDB-Server access from Python"
+arch=('i686' 'x86_64')
+url="http://cddb-py.sourceforge.net"
+license=('GPL')
+depends=('python2')
+source=("http://downloads.sourceforge.net/sourceforge/cddb-py/CDDB-${pkgver}.tar.gz")
+md5sums=('254698082bafe3030d07d88fb7e13fe2')
+
+package() {
+ cd ${srcdir}/CDDB-${pkgver}
+
+ for file in CDDB.py DiscID.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ python2 setup.py install --root=${pkgdir} --optimize=1
+}
diff --git a/abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD b/abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD
new file mode 100644
index 0000000..690ec2e
--- /dev/null
+++ b/abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 35285 2009-04-11 20:46:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-python-extras
+pkgver=2.25.3
+pkgrel=2
+pkgdesc="Gnome Python interfaces for libraries not part of the core platform"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('gnome-python>=2.22.1')
+makedepends=('libgtkhtml' 'gtkspell' 'gdl' 'xulrunner>=1.9' 'libgksu' 'pkgconfig' 'libgnomeui' 'libgda')
+optdepends=('libgtkhtml' 'gtkspell' 'gdl' 'xulrunner' 'libgksu' 'libgnomeui' 'libgda')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/gnome-python-extras/2.25/gnome-python-extras-${pkgver}.tar.bz2)
+url="http://www.daa.com.au/~james/pygtk/"
+md5sums=('9f3b7ec5c57130b96061cb486b79c076')
+
+build() {
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make MOZILLA_HOME=/usr/lib/xulrunner-1.9 || return 1
+}
+package() {
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch
new file mode 100644
index 0000000..77fd0a4
--- /dev/null
+++ b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch
@@ -0,0 +1,61 @@
+diff -up gnome-python-extras-2.19.1/configure.pkg-config gnome-python-extras-2.19.1/configure
+--- gnome-python-extras-2.19.1/configure.pkg-config 2008-01-12 21:07:56.000000000 -0500
++++ gnome-python-extras-2.19.1/configure 2008-01-12 21:09:49.000000000 -0500
+@@ -22096,14 +22096,14 @@ if test -n "$PKG_CONFIG"; then
+ pkg_cv_GTKMOZEMBED_CFLAGS="$GTKMOZEMBED_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$mozpackage-gtkmozembed >= \$mozpackage_required_version,
++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\mozilla-gtkmozembed >= \$mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0\"") >&5
+- ($PKG_CONFIG --exists --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version,
++ ($PKG_CONFIG --exists --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- pkg_cv_GTKMOZEMBED_CFLAGS=`$PKG_CONFIG --cflags "$mozpackage-gtkmozembed >= $mozpackage_required_version,
++ pkg_cv_GTKMOZEMBED_CFLAGS=`$PKG_CONFIG --cflags "mozilla-gtkmozembed >= $mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+@@ -22117,14 +22117,14 @@ if test -n "$PKG_CONFIG"; then
+ pkg_cv_GTKMOZEMBED_LIBS="$GTKMOZEMBED_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$mozpackage-gtkmozembed >= \$mozpackage_required_version,
++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\mozilla-gtkmozembed >= \$mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0\"") >&5
+- ($PKG_CONFIG --exists --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version,
++ ($PKG_CONFIG --exists --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- pkg_cv_GTKMOZEMBED_LIBS=`$PKG_CONFIG --libs "$mozpackage-gtkmozembed >= $mozpackage_required_version,
++ pkg_cv_GTKMOZEMBED_LIBS=`$PKG_CONFIG --libs "mozilla-gtkmozembed >= $mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+@@ -22144,10 +22144,10 @@ else
+ _pkg_short_errors_supported=no
+ fi
+ if test $_pkg_short_errors_supported = yes; then
+- GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version,
++ GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0"`
+ else
+- GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version,
++ GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version,
+ gtk+-2.0 >= 2.4.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+@@ -22179,7 +22179,7 @@ fi
+ if test -n "$export_dynamic"; then
+ GTKMOZEMBED_LIBS=`echo $GTKMOZEMBED_LIBS | sed -e "s/$export_dynamic//"`
+ fi
+-MOZILLA_HOME="`$PKG_CONFIG --variable=libdir $mozpackage-gtkmozembed`"
++MOZILLA_HOME="`$PKG_CONFIG --variable=libdir mozilla-gtkmozembed`"
+
+
+
diff --git a/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch
new file mode 100644
index 0000000..d2fa26e
--- /dev/null
+++ b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch
@@ -0,0 +1,22 @@
+diff -up gnome-python-extras-2.19.1/docs/gtkmozembed/html/class-gtkmozembed.html.old gnome-python-extras-2.19.1/docs/gtkmozembed/html/class-gtkmozembed.html
+diff -up gnome-python-extras-2.19.1/docs/gtkmozembed/html/pygtkmozembed.devhelp.old gnome-python-extras-2.19.1/docs/gtkmozembed/html/pygtkmozembed.devhelp
+diff -up gnome-python-extras-2.19.1/docs/gtkmozembed/gtkmozembed-gtkmozembed.xml.old gnome-python-extras-2.19.1/docs/gtkmozembed/gtkmozembed-gtkmozembed.xml
+diff -up gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.override.old gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.override
+diff -up gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs.old gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs
+--- gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs.old 2007-06-05 16:52:30.000000000 +0200
++++ gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs 2007-11-27 12:54:42.000000000 +0100
+@@ -123,6 +123,14 @@
+ )
+ )
+
++(define-function set_path
++ (c-name "gtk_moz_embed_set_path")
++ (return-type "none")
++ (parameters
++ '("char*" "aPath")
++ )
++)
++
+ (define-function gtk_moz_embed_set_profile_path
+ (c-name "gtk_moz_embed_set_profile_path_deprecated")
+ (return-type "none")
diff --git a/abs/not_built/core/python_modules/imdbpy/PKGBUILD b/abs/not_built/core/python_modules/imdbpy/PKGBUILD
new file mode 100644
index 0000000..22efa94
--- /dev/null
+++ b/abs/not_built/core/python_modules/imdbpy/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 27018 2010-09-16 17:37:18Z schuay $
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: lang2 <wenzhi.liang@gmail.com>
+
+pkgname=imdbpy
+_realname=IMDbPY
+pkgver=4.6
+pkgrel=3
+pkgdesc="Python bindings for imdb"
+url="http://imdbpy.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('python2')
+makedepends=('setuptools')
+optdepends=('python-lxml' 'python-sqlalchemy' 'python-sqlobject')
+source=(http://downloads.sourceforge.net/$pkgname/$_realname-$pkgver.tar.gz)
+
+build(){
+ cd "$srcdir/$_realname-$pkgver"
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ python2 setup.py install --root="$pkgdir"
+
+ # fix directories path
+ mv "$pkgdir/usr/etc" "$pkgdir"
+ install -d "$pkgdir/usr/share"
+ mv "$pkgdir/usr/imdb" "$pkgdir/usr/share"
+ mv "$pkgdir/usr/doc" "$pkgdir/usr/share/imdb/"
+}
+md5sums=('876d4cd041fa23633e3637c22bf95622')
diff --git a/abs/not_built/core/python_modules/pycrypto/PKGBUILD b/abs/not_built/core/python_modules/pycrypto/PKGBUILD
new file mode 100644
index 0000000..5ba87ac
--- /dev/null
+++ b/abs/not_built/core/python_modules/pycrypto/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 96778 2010-10-24 17:01:27Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+
+pkgname=pycrypto
+pkgver=2.3
+pkgrel=2
+pkgdesc="Collection of cryptographic algorithms and protocols, implemented for use from Python."
+arch=('i686' 'x86_64')
+depends=('python2')
+url="http://www.dlitz.net/software/pycrypto/"
+license=(custom)
+source=(http://ftp.dlitz.net/pub/dlitz/crypto/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('4f11e85fbcf13960373650fc2dae8f088f9b001f07fb6d3efb2fcb5334987182')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py build
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/"
+ cp -r LEGAL "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/python_modules/python-beaker/PKGBUILD b/abs/not_built/core/python_modules/python-beaker/PKGBUILD
new file mode 100644
index 0000000..8780497
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-beaker/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 87715 2010-08-18 03:37:40Z allan $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Massimiliano Torromeo < massimiliano DOT torromeo AT gmail DOT com >
+pkgname=python-beaker
+pkgver=1.5.4
+pkgrel=3
+arch=('any')
+license=('custom')
+pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications"
+url="http://beaker.groovie.org/"
+depends=('python2')
+makedepends=('setuptools')
+source=("http://cheeseshop.python.org/packages/source/B/Beaker/Beaker-$pkgver.tar.gz")
+md5sums=('de84e7511119dc0b8eb4ac177d3e2512')
+
+build() {
+ cd ${srcdir}/Beaker-${pkgver}
+ sed -i "s#/usr/bin/python#/usr/bin/python2#" beaker/crypto/pbkdf2.py
+ python2 setup.py install --root=${pkgdir} --optimize=1
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD b/abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD
new file mode 100644
index 0000000..e5eba14
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 73500 2012-07-08 17:25:45Z dwallace $
+# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgbase=python-beautifulsoup4
+pkgname=('python2-beautifulsoup4' 'python-beautifulsoup4')
+pkgver=4.1.1
+pkgrel=2
+pkgdesc="A Python HTML/XML parser designed for quick turnaround projects like screen-scraping"
+arch=('any')
+url="http://www.crummy.com/software/BeautifulSoup/index.html"
+license=('PSF')
+#makedepends=('python-distribute' 'python2-distribute')
+makedepends=('python2-distribute')
+source=("http://www.crummy.com/software/BeautifulSoup/bs4/download/${pkgver%\.*}/${pkgbase#*-}-${pkgver}.tar.gz")
+md5sums=('fccee58b4d914fb489385d672fe89f43')
+
+build() {
+ cd "${srcdir}"
+ cp -a beautifulsoup4-${pkgver}{,-python2}
+
+ # Build python 3 module
+ cd "${srcdir}/beautifulsoup4-${pkgver}"
+ python setup.py build
+
+ # Build python 2 module
+ cd "${srcdir}/beautifulsoup4-${pkgver}-python2"
+ python2 setup.py build
+}
+
+package_python2-beautifulsoup4() {
+ depends=('python2-distribute')
+ optdepends=('python2-chardet: universal encoding detector'
+ 'python2-lxml: pythonic binding for the libxml2 and libxslt libraries')
+
+ cd "${srcdir}/beautifulsoup4-${pkgver}-python2"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1 --skip-build
+
+ rm -rf ${pkgdir}/usr/lib/python2.7/site-packages/bs4/tests
+}
+
+package_python-beautifulsoup4() {
+# depends=('python-distribute')
+ optdepends=('python-chardet: universal encoding detector'
+ 'python-lxml: pythonic binding for the libxml2 and libxslt libraries')
+
+ cd "${srcdir}/beautifulsoup4-${pkgver}"
+ python setup.py install --root="${pkgdir}/" --optimize=1 --skip-build
+
+ rm -rf ${pkgdir}/usr/lib/python3.2/site-packages/bs4/{__pycache__,tests,builder/__pycache__}
+}
diff --git a/abs/not_built/core/python_modules/python-beautifulsoup4/__changelog b/abs/not_built/core/python_modules/python-beautifulsoup4/__changelog
new file mode 100644
index 0000000..1cdf6fa
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-beautifulsoup4/__changelog
@@ -0,0 +1,2 @@
+9/3/12 - chw
+commented python-distribute as dep since we don't include python3. Built with mp.py --pkg=python2-beautisoup4.
diff --git a/abs/not_built/core/python_modules/python-chardet/PKGBUILD b/abs/not_built/core/python_modules/python-chardet/PKGBUILD
new file mode 100644
index 0000000..d3e67d0
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-chardet/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 87872 2010-08-18 15:26:20Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=python-chardet
+_pkgnamebase=python2-chardet
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="Python module for character encoding auto-detection"
+arch=('any')
+url="http://chardet.feedparser.org"
+license=('LGPL')
+depends=('python2')
+source=(http://chardet.feedparser.org/download/${_pkgnamebase}-${pkgver}.tgz)
+sha256sums=('56fa0c37189b0a5f082d064dec59d69a044aaa3eeb7acb9b3081e2ba306deaa4')
+
+build() {
+ cd "${srcdir}/${_pkgnamebase}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+}
+
diff --git a/abs/not_built/core/python_modules/python-geoip/PKGBUILD b/abs/not_built/core/python_modules/python-geoip/PKGBUILD
new file mode 100644
index 0000000..cd095c6
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-geoip/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 89623 2010-09-02 16:32:29Z remy $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python-geoip
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="Python bindings for the GeoIP IP-to-country resolver library."
+arch=(i686 x86_64)
+url="http://www.maxmind.com/app/python"
+license=('LGPL')
+depends=('python2' 'geoip')
+source=(http://www.maxmind.com/download/geoip/api/python/GeoIP-Python-${pkgver}.tar.gz)
+replaces=('geoip-python')
+provides=('geoip-python')
+
+build() {
+ cd ${startdir}/src/GeoIP-Python-${pkgver}
+ python2 setup.py build install --root=${pkgdir}/
+}
+md5sums=('50f820d854476efaf3b7af733ffe4236')
+
diff --git a/abs/not_built/core/python_modules/python-libconcord/PKGBUILD b/abs/not_built/core/python_modules/python-libconcord/PKGBUILD
new file mode 100644
index 0000000..fb638f8
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-libconcord/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id$
+# Maintainers:
+# Andreas Baumann <abaumann@yahoo.com>
+# Guillaume DUMOULIN <guillaume.dumoulin@gmail.com>
+# Contributor: elsixdiab
+pkgname=python-libconcord
+_pkgsrcname=concordance
+pkgver=0.23
+pkgrel=3
+pkgdesc="This software will allow you to program your Logitech Harmony universal remote control"
+url="http://www.phildev.net/harmony/index.shtml"
+license="GPL"
+arch=('any')
+depends=('libconcord=0.23' 'python2')
+source=("http://downloads.sourceforge.net/${_pkgsrcname}/${_pkgsrcname}-${pkgver}.tar.bz2")
+md5sums=('d7400d5b351b195b63adfafae68be3d8')
+build() {
+ cd $srcdir/${_pkgsrcname}-${pkgver}/libconcord/bindings/python/
+ python2 setup.py install --prefix=/usr --root="$pkgdir" || return 1
+}
+
+
diff --git a/abs/not_built/core/python_modules/python-mako/PKGBUILD b/abs/not_built/core/python_modules/python-mako/PKGBUILD
new file mode 100644
index 0000000..987116a
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-mako/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 87883 2010-08-18 15:32:33Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+pkgname=python-mako
+pkgver=0.3.4
+pkgrel=5
+pkgdesc="Hyperfast and lightweight templating for the Python platform."
+arch=('any')
+url="http://www.makotemplates.org/"
+license=('custom')
+depends=('python2' 'python-markupsafe>=0.9.2' 'python-beaker>=1.5.4')
+makedepends=('setuptools')
+source=(http://www.makotemplates.org/downloads/Mako-$pkgver.tar.gz)
+md5sums=('2ae56ccc6c9b5c4e2e67f42b69475009')
+
+build() {
+ cd "$srcdir/Mako-$pkgver"
+ python2 setup.py install --root="$pkgdir" --optimize=1 || return 1
+ install -D LICENSE "$pkgdir/usr/share/licenses/python-mako/COPYING" || return 1
+}
+
diff --git a/abs/not_built/core/python_modules/python-markupsafe/PKGBUILD b/abs/not_built/core/python_modules/python-markupsafe/PKGBUILD
new file mode 100644
index 0000000..f3563c9
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-markupsafe/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 87877 2010-08-18 15:28:18Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Alex Anthony <alex.anthony28991@gmail.com>
+
+pkgname=python-markupsafe
+pkgver=0.9.2
+pkgrel=3
+pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python"
+arch=('i686' 'x86_64')
+url="http://pypi.python.org/pypi/MarkupSafe"
+license=('custom')
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-${pkgver}.tar.gz)
+md5sums=('69b72d1afdd9e808f9c1ef65f819c7a6')
+
+build() {
+ cd ${srcdir}/MarkupSafe-${pkgver}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/abs/not_built/core/python_modules/python-numeric/PKGBUILD b/abs/not_built/core/python_modules/python-numeric/PKGBUILD
new file mode 100644
index 0000000..2c8ea21
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-numeric/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: SpepS <dreamspepser at yahoo dot it>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor orelien <aurelien.foret@wanadoo.fr>
+
+pkgname=python-numeric
+pkgver=24.2
+pkgrel=6
+pkgdesc="Numerical Python adds a fast array facility to the Python language"
+arch=('i686' 'x86_64')
+url="http://numeric.scipy.org/"
+license=('custom')
+depends=('python2')
+source=(http://downloads.sourceforge.net/sourceforge/numpy/Numeric-$pkgver.tar.gz)
+md5sums=('2ae672656e06716a149acb048cca3093')
+
+build() {
+
+ cd "$srcdir/Numeric-$pkgver"
+
+ # Python2 fix
+ sed \
+ -e "s_\(env python\).*_\12_" \
+ -e "s_\(bin/python\).*_\12_" \
+ -i `grep -rlE "(env python|bin/python)" .`
+}
+
+package() {
+
+ cd "$srcdir/Numeric-$pkgver"
+
+ # Install
+ python2 setup.py install --prefix=/usr --root="$pkgdir/"
+ install -D -m644 Legal.htm "$pkgdir/usr/share/licenses/$pkgname/Legal.htm"
+}
+
diff --git a/abs/not_built/core/python_modules/python-pymedia/PKGBUILD b/abs/not_built/core/python_modules/python-pymedia/PKGBUILD
new file mode 100644
index 0000000..5433471
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-pymedia/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: TDY <tdy@gmx.com>
+
+pkgname=python-pymedia
+pkgver=1.3.7.3
+pkgrel=2
+pkgdesc="A Python library for accessing and manipulating multimedia files"
+arch=('i686' 'x86_64')
+url="http://pymedia.org/"
+license=('LGPL')
+depends=('alsa-lib' 'ffmpeg-svn' 'python2')
+optdepends=('faad2: AAC support'
+ 'lame: MP3 support'
+ 'libogg: Ogg support'
+ 'libvorbis: Vorbis support')
+source=(http://downloads.sourceforge.net/${pkgname/*-}/${pkgname/*-}-$pkgver.tar.gz
+ ${pkgname/*-}-$pkgver-amd64-gentoo.diff)
+md5sums=('2f4930c63866c97af5090b176e2a118a'
+ '3137e65e1208db98e404ee894fcd744a')
+
+build() {
+ cd "$srcdir/${pkgname/*-}-$pkgver"
+ patch -Np1 -i ../${pkgname/*-}-$pkgver-amd64-gentoo.diff || return 1
+
+ find "$srcdir/${pkgname/*-}-$pkgver" -name '*.py' | \
+ xargs sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" || return 1
+ find "$srcdir/${pkgname/*-}-$pkgver" -name '*.py' | \
+ xargs sed -i "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" || return 1
+
+ python2 setup.py build || return 1
+}
+
+package() {
+ cd "$srcdir/${pkgname/*-}-$pkgver"
+ python2 setup.py install --prefix=/usr --root="$pkgdir" || return 1
+}
diff --git a/abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff b/abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff
new file mode 100644
index 0000000..801eccf
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff
@@ -0,0 +1,64 @@
+diff -ru pymedia-1.3.7.3/audio/inttypes.h pymedia-1.3.7.3-amd64/audio/inttypes.h
+--- pymedia-1.3.7.3/audio/inttypes.h 2006-06-13 13:32:22.000000000 -0700
++++ pymedia-1.3.7.3-amd64/audio/inttypes.h 2008-03-26 08:05:57.000000000 -0700
+@@ -2,6 +2,7 @@
+ #if !defined( __INTTYPES_H__ )
+ #define __INTTYPES_H__
+
++#include <stdint.h>
+ #if defined( _STDINT_H )
+
+ typedef unsigned short UINT16;
+diff -ru pymedia-1.3.7.3/setup.py pymedia-1.3.7.3-amd64/setup.py
+--- pymedia-1.3.7.3/setup.py 2006-06-19 23:04:43.000000000 -0700
++++ pymedia-1.3.7.3-amd64/setup.py 2008-03-26 08:16:04.000000000 -0700
+@@ -216,7 +216,7 @@
+ FILES[ 'video.vcodec' ][ 'libavcodec' ]+= NONMMX_FILES
+ else:
+ print 'Using UNIX configuration...\n'
+- disable_fPIC()
++ #disable_fPIC()
+ dep= config.Dependency_unix
+ inc_hunt = [
+ '/usr/include',
+@@ -224,13 +224,13 @@
+ '/usr/local/include',
+ '/usr/local/include/lame',]
+ lib_hunt = [ '/usr/lib64', '/usr/lib', '/usr/local/lib64', '/usr/local/lib' ]
+- LIBS= []
++ LIBS= ['avcodec', 'avformat']
+ DEFINES+= [
+ ('PATH_DEV_DSP', '"/dev/dsp"' ),
+ ('PATH_DEV_MIXER','"/dev/mixer"' ),
+ ('_FILE_OFFSET_BITS',64),
+ ('ACCEL_DETECT',1),
+- ('HAVE_MMX', '1' ),
++ ('HAVE_LRINTF', '1' ),
+ ]
+ if sys.platform== 'cygwin':
+ DEFINES+= [
+@@ -243,13 +243,13 @@
+ ('DVD_STRUCT_IN_LINUX_CDROM_H', '1' ),
+ ]
+
+- FILES[ 'video.vcodec' ][ 'libavcodec' ]+= MMX_FILES
++ FILES[ 'video.vcodec' ][ 'libavcodec' ]#+= MMX_FILES
+
+ DEPS = [
+ dep('OGG', 'libogg-[1-9].*', 'ogg/ogg.h', 'libogg', 'CONFIG_VORBIS').configure(inc_hunt,lib_hunt),
+ dep('VORBIS', 'libvorbis-[1-9].*', 'vorbis/codec.h', 'libvorbis', 'CONFIG_VORBIS' ).configure(inc_hunt,lib_hunt),
+ dep('FAAD', 'libfaad2', 'faad.h', 'libfaad', 'CONFIG_FAAD').configure(inc_hunt,lib_hunt),
+- dep('MP3LAME', 'lame-3.95.*', 'lame.h', 'libmp3lame', 'CONFIG_MP3LAME').configure(inc_hunt,lib_hunt),
++ dep('MP3LAME', 'lame-3.96.*', 'lame.h', 'libmp3lame', 'CONFIG_MP3LAME').configure(inc_hunt,lib_hunt),
+ dep('VORBISENC', 'libvorbis-[1-9].*','vorbis/vorbisenc.h','libvorbisenc', 'CONFIG_VORBIS').configure(inc_hunt,lib_hunt),
+ dep('ALSA', 'libasound','alsa/asoundlib.h','libasound', 'CONFIG_ALSA').configure(inc_hunt,lib_hunt),
+ ]
+@@ -260,7 +260,7 @@
+ DEFINES+= [ ( x.define, None ) for x in DEPS ]+ [ ( 'HAVE_AV_CONFIG_H', None ), ( 'UDF_CACHE', 1 ) ]
+ LIBS+= [ x.lib for x in DEPS ]
+
+-choice = raw_input('Continue building '+MODULE_NAME+' ? [Y,n]:')
++choice = 'Y'
+ if choice== 'n':
+ print 'To start installation please run: \n\tsetup.py install and press Enter when prompted\n'
+ sys.exit()
diff --git a/abs/not_built/core/python_modules/python-pyserial/PKGBUILD b/abs/not_built/core/python_modules/python-pyserial/PKGBUILD
new file mode 100644
index 0000000..43c5b87
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-pyserial/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 29428 2010-10-14 09:13:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgname=python-pyserial
+pkgver=2.5
+pkgrel=3
+pkgdesc="Multiplatform Serial Port Module for Python"
+arch=('any')
+url="http://pyserial.sf.net"
+license=('custom:PYTHON')
+depends=('python2')
+source=(http://downloads.sourceforge.net/sourceforge/pyserial/pyserial-$pkgver.tar.gz)
+md5sums=('34340820710239bea2ceca7f43ef8cab')
+
+build() {
+ cd $srcdir/pyserial-$pkgver
+ python2 setup.py install --root=$pkgdir
+ install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE.txt
+}
diff --git a/abs/not_built/core/python_modules/python-simplejson/ChangeLog b/abs/not_built/core/python_modules/python-simplejson/ChangeLog
new file mode 100644
index 0000000..4a5d1d9
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-simplejson/ChangeLog
@@ -0,0 +1,5 @@
+2010-05-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 2.1.1
+
+2010-03-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 2.1.0
diff --git a/abs/not_built/core/python_modules/python-simplejson/PKGBUILD b/abs/not_built/core/python_modules/python-simplejson/PKGBUILD
new file mode 100644
index 0000000..05e2b1b
--- /dev/null
+++ b/abs/not_built/core/python_modules/python-simplejson/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: David Moore <davidm@sjsoft.com>
+
+pkgname=python-simplejson
+pkgver=2.1.1
+pkgrel=3
+pkgdesc="Simple, fast, extensible JSON encoder/decoder for Python"
+license=('MIT')
+arch=('any')
+url="http://undefined.org/python/#simplejson"
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/s/simplejson/simplejson-${pkgver}.tar.gz)
+md5sums=('0bbe3a2e5e4cac040013733aca159d89')
+
+build() {
+ cd ${srcdir}/simplejson-${pkgver}
+
+ python2 setup.py install --root=${pkgdir}
+
+# License
+ install -Dm644 ${srcdir}/simplejson-${pkgver}/LICENSE.txt \
+ ${pkgdir}/usr/share/licenses/python-simplejson/LICENSE
+}
diff --git a/abs/not_built/core/python_modules/python2-distribute/PKGBUILD b/abs/not_built/core/python_modules/python2-distribute/PKGBUILD
new file mode 100644
index 0000000..04c0f48
--- /dev/null
+++ b/abs/not_built/core/python_modules/python2-distribute/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sebastien Binet <binet@farnsworth>
+pkgname=python2-distribute
+pkgver=0.6.14
+pkgrel=4
+pkgdesc="A collection of extensions to the Python 2 distutils"
+arch=('any')
+license=('PSF')
+url="http://packages.python.org/distribute"
+depends=('python2')
+conflicts=('setuptools')
+replaces=('setuptools')
+provides=('setuptools=0.6c11')
+source=(http://pypi.python.org/packages/source/d/distribute/distribute-${pkgver}.tar.gz
+ distribute-${pkgver}_python2_and_3.patch)
+
+package() {
+ cd ${srcdir}/distribute-${pkgver}
+ patch -Np1 -i ../distribute-${pkgver}_python2_and_3.patch
+ python2 setup.py install --prefix=/usr --root=${pkgdir}
+}
+# vim: set noexpandtab tabstop=8 shiftwidth=8 textwidth=132 autoindent
+md5sums=('83ada58a83d99b28c806703597323b80'
+ 'bbf5554ade06f27285f81ed8a8a3a3f8')
diff --git a/abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch b/abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch
new file mode 100644
index 0000000..dc5da86
--- /dev/null
+++ b/abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch
@@ -0,0 +1,51 @@
+diff -Naur distribute-0.6.14.ori//distribute.egg-info/entry_points.txt distribute-0.6.14/distribute.egg-info/entry_points.txt
+--- distribute-0.6.14.ori//distribute.egg-info/entry_points.txt 2010-07-14 20:14:10.000000000 -0400
++++ distribute-0.6.14/distribute.egg-info/entry_points.txt 2010-10-21 09:26:43.386667396 -0400
+@@ -31,7 +31,8 @@
+ depends.txt = setuptools.command.egg_info:warn_depends_obsolete
+
+ [console_scripts]
+-easy_install = setuptools.command.easy_install:main
++easy_install-3.1 = setuptools.command.easy_install:main
++easy_install-2.7 = setuptools.command.easy_install:main
+ easy_install-2.6 = setuptools.command.easy_install:main
+
+ [setuptools.file_finders]
+diff -Naur distribute-0.6.14.ori//distribute_setup.py distribute-0.6.14/distribute_setup.py
+--- distribute-0.6.14.ori//distribute_setup.py 2010-07-14 19:53:38.000000000 -0400
++++ distribute-0.6.14/distribute_setup.py 2010-10-21 09:25:18.356667404 -0400
+@@ -299,8 +299,7 @@
+ log.warn('Could not find the install location')
+ return
+ pyver = '%s.%s' % (sys.version_info[0], sys.version_info[1])
+- setuptools_file = 'setuptools-%s-py%s.egg-info' % \
+- (SETUPTOOLS_FAKED_VERSION, pyver)
++ setuptools_file = 'setuptools-%s.egg-info' % SETUPTOOLS_FAKED_VERSION
+ pkg_info = os.path.join(placeholder, setuptools_file)
+ if os.path.exists(pkg_info):
+ log.warn('%s already exists', pkg_info)
+diff -Naur distribute-0.6.14.ori//setup.py distribute-0.6.14/setup.py
+--- distribute-0.6.14.ori//setup.py 2010-07-14 19:53:38.000000000 -0400
++++ distribute-0.6.14/setup.py 2010-10-21 09:32:44.850000736 -0400
+@@ -96,6 +96,8 @@
+ f.close()
+
+
++console_scripts = ["easy_install-%s = setuptools.command.easy_install:main" % sys.version[:3]]
++
+ # if we are installing Distribute using "python setup.py install"
+ # we need to get setuptools out of the way
+ def _easy_install_marker():
+@@ -182,11 +184,7 @@
+ "dependency_links.txt = setuptools.command.egg_info:overwrite_arg",
+ ],
+
+- "console_scripts": [
+- "easy_install = setuptools.command.easy_install:main",
+- "easy_install-%s = setuptools.command.easy_install:main"
+- % sys.version[:3]
+- ],
++ "console_scripts": console_scripts,
+
+ "setuptools.file_finders":
+ ["svn_cvs = setuptools.command.sdist:_default_revctrl"],
diff --git a/abs/not_built/core/python_modules/pyusb/PKGBUILD b/abs/not_built/core/python_modules/pyusb/PKGBUILD
new file mode 100644
index 0000000..d9349ec
--- /dev/null
+++ b/abs/not_built/core/python_modules/pyusb/PKGBUILD
@@ -0,0 +1,18 @@
+# Contributor: Jason Giangrande <jgiangrande@clarku.edu>
+pkgname=pyusb
+pkgver=0.4.3
+pkgrel=4
+pkgdesc="A native Python module written in C which provides USB access."
+arch=('i686' 'x86_64')
+url="http://pyusb.berlios.de/"
+license=('GPL')
+depends=('python2' 'libusb')
+makedepends=('setuptools')
+source=(http://downloads.sourceforge.net/project/pyusb/PyUSB%200.x/$pkgver/pyusb-$pkgver.tar.gz)
+md5sums=('a1a43bc6407caccbc22073c56439aa06')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install -f --root="${pkgdir}" || return 1
+}
+
diff --git a/abs/not_built/core/python_modules/pyxdg/PKGBUILD b/abs/not_built/core/python_modules/pyxdg/PKGBUILD
new file mode 100644
index 0000000..a3aca49
--- /dev/null
+++ b/abs/not_built/core/python_modules/pyxdg/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 89531 2010-09-01 15:23:06Z remy $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Mario A. Vazquez <mario_vazq@hotmail.com>
+
+pkgname=pyxdg
+pkgver=0.19
+pkgrel=3
+pkgdesc="Python library to access freedesktop.org standards."
+arch=('any')
+url="http://freedesktop.org/Software/pyxdg"
+license=("LGPL")
+depends=('python2')
+source=(http://www.freedesktop.org/~lanius/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --prefix=/usr --root=${pkgdir} || return 1
+}
+md5sums=('9f33542e846d0fc1e0bfa992a8555b0a')
+
diff --git a/abs/not_built/core/rp-pppoe/PKGBUILD b/abs/not_built/core/rp-pppoe/PKGBUILD
new file mode 100644
index 0000000..1b4724d
--- /dev/null
+++ b/abs/not_built/core/rp-pppoe/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 5374 2008-07-15 17:18:23Z daniel $
+# Contributor: orelien <aurelien.foret@wanadoo.fr>
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=rp-pppoe
+pkgver=3.10
+pkgrel=10
+pkgdesc="Roaring Penguin's Point-to-Point Protocol over Ethernet client"
+arch=(i686 x86_64)
+url="http://www.roaringpenguin.com/pppoe/"
+license=('GPL')
+groups=('base')
+depends=('ppp')
+options=('!makeflags')
+backup=(etc/ppp/pppoe.conf etc/ppp/firewall-standalone etc/ppp/firewall-masq etc/ppp/pppoe-server-options)
+source=(http://www.roaringpenguin.com/files/download/rp-pppoe-$pkgver.tar.gz adsl)
+md5sums=('d58a13cc4185bca6121a606ff456dec0'
+ 'adace1ad441aa88dcb3db52fb7f9c97f')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver/src
+ ./configure --prefix=/usr --enable-plugin=/ppp-2.4.4
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ install -m755 -D ../../adsl $startdir/pkg/etc/rc.d/adsl
+}
diff --git a/abs/not_built/core/rp-pppoe/adsl b/abs/not_built/core/rp-pppoe/adsl
new file mode 100755
index 0000000..33bd918
--- /dev/null
+++ b/abs/not_built/core/rp-pppoe/adsl
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting ADSL Connection"
+ /usr/sbin/pppoe-start &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon adsl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ADSL Connection"
+ /usr/sbin/pppoe-stop &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon adsl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/core/speex/PKGBUILD b/abs/not_built/core/speex/PKGBUILD
new file mode 100644
index 0000000..7bf7e7b
--- /dev/null
+++ b/abs/not_built/core/speex/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 137583 2011-09-09 22:58:20Z allan $
+# Maintainer:
+# Contributer: Jason Chu <jason@archlinux.org>
+
+pkgname=speex
+pkgver=1.2rc1
+pkgrel=2
+pkgdesc="A free codec for free speech"
+arch=('i686' 'x86_64')
+url="http://www.speex.org/"
+license=('BSD')
+depends=('libogg')
+options=('!libtool')
+source=(http://downloads.us.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae')
+
+build() {
+ cd $srcdir/speex-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $srcdir/speex-$pkgver
+ make DESTDIR=$startdir/pkg install
+
+ install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch b/abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch
new file mode 100644
index 0000000..766dcb8
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch
@@ -0,0 +1,124 @@
+From 2127f99fb43d2ef950e95329ce40bdd5da8b015c Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner@archlinux.org>
+Date: Fri, 25 May 2012 19:43:24 -0400
+Subject: [PATCH] Reinstate TIMEOUT= handling
+
+This is mostly to deal with ipw2?00 drivers which have yet to be fixed
+in the kernel.
+---
+ src/libudev/libudev-device.c | 19 +++++++++++++++++++
+ src/libudev/libudev-private.h | 1 +
+ src/udev/udevd.c | 13 ++++++++++---
+ 3 files changed, 30 insertions(+), 3 deletions(-)
+
+diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
+index a8277d1..5966189 100644
+--- a/src/libudev/libudev-device.c
++++ b/src/libudev/libudev-device.c
+@@ -68,6 +68,7 @@ struct udev_device {
+ struct udev_list tags_list;
+ unsigned long long int seqnum;
+ unsigned long long int usec_initialized;
++ int timeout;
+ int devlink_priority;
+ int refcount;
+ dev_t devnum;
+@@ -89,6 +90,21 @@ struct udev_device {
+ bool db_persist;
+ };
+
++int udev_device_get_timeout(struct udev_device *udev_device)
++{
++ return udev_device->timeout;
++}
++
++static int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
++{
++ char num[32];
++
++ udev_device->timeout = timeout;
++ snprintf(num, sizeof(num), "%u", timeout);
++ udev_device_add_property(udev_device, "TIMEOUT", num);
++ return 0;
++}
++
+ /**
+ * udev_device_get_seqnum:
+ * @udev_device: udev device
+@@ -362,6 +378,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device,
+
+ util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys", &property[8], NULL);
+ udev_device_set_syspath(udev_device, path);
++ } else if (strncmp(property, "TIMEOUT=", 8) == 0) {
++ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10));
+ } else if (startswith(property, "SUBSYSTEM=")) {
+ udev_device_set_subsystem(udev_device, &property[10]);
+ } else if (startswith(property, "DEVTYPE=")) {
+@@ -605,6 +623,7 @@ struct udev_device *udev_device_new(struct udev *udev)
+ udev_list_init(udev, &udev_device->sysattr_value_list, true);
+ udev_list_init(udev, &udev_device->sysattr_list, false);
+ udev_list_init(udev, &udev_device->tags_list, true);
++ udev_device->timeout = -1;
+ udev_device->watch_handle = -1;
+ /* copy global properties */
+ udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
+diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h
+index 4eb4a59..99aefeb 100644
+--- a/src/libudev/libudev-private.h
++++ b/src/libudev/libudev-private.h
+@@ -70,6 +70,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device);
+ void udev_device_set_is_initialized(struct udev_device *udev_device);
+ int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
+ void udev_device_cleanup_tags_list(struct udev_device *udev_device);
++int udev_device_get_timeout(struct udev_device *udev_device);
+ unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
+ void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
+ int udev_device_get_devlink_priority(struct udev_device *udev_device);
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index 0d85960..cd24462 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -384,7 +384,7 @@ out:
+ }
+ }
+
+-static void event_run(struct event *event)
++static void event_run(struct event *event, bool force)
+ {
+ struct udev_list_node *loop;
+
+@@ -410,7 +410,7 @@ static void event_run(struct event *event)
+ return;
+ }
+
+- if (children >= children_max) {
++ if (!force && children >= children_max) {
+ if (children_max > 1)
+ log_debug("maximum number (%i) of children reached\n", children);
+ return;
+@@ -444,6 +444,13 @@ static int event_queue_insert(struct udev_device *dev)
+
+ event->state = EVENT_QUEUED;
+ udev_list_node_append(&event->node, &event_list);
++
++ /* run all events with a timeout set immediately */
++ if (udev_device_get_timeout(dev) > 0) {
++ event_run(event, true);
++ return 0;
++ }
++
+ return 0;
+ }
+
+@@ -549,7 +556,7 @@ static void event_queue_start(struct udev *udev)
+ if (is_devpath_busy(event))
+ continue;
+
+- event_run(event);
++ event_run(event, false);
+ }
+ }
+
+--
+1.7.10.2
+
diff --git a/abs/not_built/core/systemd/systemd-tools/PKGBUILD b/abs/not_built/core/systemd/systemd-tools/PKGBUILD
new file mode 100644
index 0000000..338fd8f
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/PKGBUILD
@@ -0,0 +1,205 @@
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Tom Gundersen <teg@jklm.no>
+
+pkgbase=systemd
+pkgname=('systemd' 'libsystemd' 'systemd-tools' 'systemd-sysvcompat')
+pkgver=186
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2' 'LGPL2.1' 'MIT')
+makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf'
+ 'gtk-doc' 'intltool' 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'xz')
+options=('!libtool')
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
+ 'initcpio-hook-udev'
+ 'initcpio-install-udev'
+ 'initcpio-install-timestamp'
+ '0001-Reinstate-TIMEOUT-handling.patch'
+ 'locale.sh')
+md5sums=('17eff1d31e6e49bf82e129fe57efd59b'
+ 'e99e9189aa2f6084ac28b8ddf605aeb8'
+ '59e91c4d7a69b7bf12c86a9982e37ced'
+ 'df69615503ad293c9ddf9d8b7755282d'
+ '5543be25f205f853a21fa5ee68e03f0d'
+ 'f15956945052bb911e5df81cf5e7e5dc')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # still waiting on ipw2x00 to get fixed...
+ patch -Np1 <"$srcdir/0001-Reinstate-TIMEOUT-handling.patch"
+
+ ./configure \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --enable-split-usr \
+ --enable-introspection \
+ --enable-gtk-doc \
+ --disable-audit \
+ --disable-ima \
+ --with-pamlibdir=/usr/lib/security \
+ --with-distro=arch \
+ --with-usb-ids-path=/usr/share/hwdata/usb.ids \
+ --with-pci-ids-path=/usr/share/hwdata/pci.ids \
+ --with-firmware-path=/usr/lib/firmware/updates:/lib/firmware/updates:/usr/lib/firmware:/lib/firmware
+
+ make
+}
+
+package_systemd() {
+ pkgdesc="system and service manager"
+ depends=('acl' 'dbus-core' "libsystemd=$pkgver" 'kmod' 'libcap' 'pam'
+ "systemd-tools=$pkgver" 'util-linux' 'xz')
+ optdepends=('python-dbus: systemd-analyze'
+ 'initscripts: legacy support for hostname and vconsole setup'
+ 'initscripts-systemd: legacy generator for initialization scripts'
+ 'python-cairo: systemd-analyze'
+ 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts'
+ 'systemd-sysvcompat: symlink package to provide sysvinit binaries')
+ backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
+ etc/dbus-1/system.d/org.freedesktop.hostname1.conf
+ etc/dbus-1/system.d/org.freedesktop.login1.conf
+ etc/dbus-1/system.d/org.freedesktop.locale1.conf
+ etc/dbus-1/system.d/org.freedesktop.timedate1.conf
+ etc/systemd/system.conf
+ etc/systemd/user.conf
+ etc/systemd/logind.conf
+ etc/systemd/journald.conf)
+ install="systemd.install"
+
+ make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
+
+ printf "d /run/console 0755 root root\n" > "$pkgdir/usr/lib/tmpfiles.d/console.conf"
+
+ install -dm755 "$pkgdir/bin"
+ ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd"
+
+ # move bash-completion and symlink for loginctl
+ install -Dm644 "$pkgdir/etc/bash_completion.d/systemd-bash-completion.sh" \
+ "$pkgdir/usr/share/bash-completion/completions/systemctl"
+ ln -s systemctl "$pkgdir/usr/share/bash-completion/completions/loginctl"
+ rm -rf "$pkgdir/etc/bash_completion.d"
+
+ # don't write units to /etc by default -- we'll enable this on post_install
+ # as a sane default
+ rm "$pkgdir/etc/systemd/system/getty.target.wants/getty@tty1.service"
+ rmdir "$pkgdir/etc/systemd/system/getty.target.wants"
+
+ ### split off libsystemd (libs, includes, pkgconfig, man3)
+ rm -rf "$srcdir/_libsystemd"
+ install -dm755 "$srcdir"/_libsystemd/usr/{include,lib/pkgconfig}
+ cd "$srcdir"/_libsystemd
+ mv "$pkgdir/usr/lib"/libsystemd-*.so* usr/lib
+ mv "$pkgdir/usr/include/systemd" usr/include
+ mv "$pkgdir/usr/lib/pkgconfig"/libsystemd-*.pc usr/lib/pkgconfig
+
+ ### split out manpages for sysvcompat
+ rm -rf "$srcdir/_sysvcompat"
+ install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/
+ mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \
+ "$srcdir"/_sysvcompat/usr/share/man/man8
+
+ ### split out systemd-tools/udev
+ rm -rf "$srcdir/_tools"
+ install -dm755 \
+ "$srcdir"/_tools/etc/udev \
+ "$srcdir"/_tools/usr/bin \
+ "$srcdir"/_tools/usr/include \
+ "$srcdir"/_tools/usr/lib/udev \
+ "$srcdir"/_tools/usr/lib/systemd/system/{sysinit,sockets}.target.wants \
+ "$srcdir"/_tools/usr/lib/girepository-1.0 \
+ "$srcdir"/_tools/usr/share/pkgconfig \
+ "$srcdir"/_tools/usr/share/gir-1.0 \
+ "$srcdir"/_tools/usr/share/gtk-doc/html/{g,lib}udev \
+ "$srcdir"/_tools/usr/share/man/man{1,5,7,8}
+
+ cd "$srcdir/_tools"
+ mv "$pkgdir"/etc/udev etc
+ mv "$pkgdir"/etc/{binfmt,modules-load,sysctl,tmpfiles}.d etc
+ mv "$pkgdir"/usr/bin/udevadm usr/bin
+ mv "$pkgdir"/usr/bin/systemd-machine-id-setup usr/bin
+ mv "$pkgdir"/usr/lib/pkgconfig usr/lib
+ mv "$pkgdir"/usr/lib/systemd/systemd-udevd usr/lib/systemd
+ mv "$pkgdir"/usr/lib/systemd/system/systemd-udev* usr/lib/systemd/system
+ mv "$pkgdir"/usr/lib/systemd/system/sysinit.target.wants/systemd-udev* usr/lib/systemd/system/sysinit.target.wants
+ mv "$pkgdir"/usr/lib/systemd/system/sockets.target.wants/systemd-udev* usr/lib/systemd/system/sockets.target.wants
+ mv "$pkgdir"/usr/lib/lib{,g}udev* usr/lib
+ mv "$pkgdir"/usr/lib/{binfmt,sysctl,modules-load,tmpfiles}.d usr/lib
+ mv "$pkgdir"/usr/lib/udev usr/lib
+ mv "$pkgdir"/usr/include/{libudev.h,gudev-1.0} usr/include
+ mv "$pkgdir"/usr/lib/girepository-1.0 usr/lib
+ mv "$pkgdir"/usr/share/pkgconfig/udev.pc usr/share/pkgconfig
+ mv "$pkgdir"/usr/share/gir-1.0 usr/share
+ mv "$pkgdir"/usr/share/gtk-doc/html/{g,lib}udev usr/share/gtk-doc/html
+ mv "$pkgdir"/usr/share/man/man7/udev.7 usr/share/man/man7
+ mv "$pkgdir"/usr/share/man/man8/{systemd-{tmpfiles,udevd},udevadm}.8 usr/share/man/man8
+ mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt,machine-id-setup}.1 usr/share/man/man1
+ mv "$pkgdir"/usr/share/man/man5/{binfmt,modules-load,sysctl,tmpfiles}.d.5 usr/share/man/man5
+ mv "$pkgdir"/usr/share/man/man5/{hostname,{vconsole,locale}.conf}.5 usr/share/man/man5
+ mv "$pkgdir"/usr/bin/systemd-{ask-password,delta,detect-virt,tmpfiles,tty-ask-password-agent} usr/bin
+ mv "$pkgdir"/usr/lib/systemd/systemd-{ac-power,binfmt,cryptsetup,modules-load,random-seed,remount-fs,reply-password,sysctl,timestamp,vconsole-setup} usr/lib/systemd
+}
+
+package_systemd-sysvcompat() {
+ pkgdesc="sysvinit compat for systemd"
+ conflicts=('sysvinit' 'initscripts')
+
+ mv "$srcdir/_sysvcompat"/* "$pkgdir"
+
+ install -dm755 "$pkgdir/sbin"
+ for tool in runlevel reboot shutdown poweroff halt telinit; do
+ ln -s '/usr/bin/systemctl' "$pkgdir/sbin/$tool"
+ done
+
+ ln -s '../usr/lib/systemd/systemd' "$pkgdir/sbin/init"
+
+ install -Dm755 "$srcdir/locale.sh" "$pkgdir/etc/profile.d/locale.sh"
+}
+
+package_libsystemd() {
+ pkgdesc="systemd client libraries"
+ depends=('xz')
+
+ mv "$srcdir/_libsystemd"/* "$pkgdir"
+}
+
+package_systemd-tools() {
+ pkgdesc='standalone tools from systemd'
+ url='http://www.freedesktop.org/wiki/Software/systemd'
+ depends=('acl' 'bash' 'glibc' 'glib2' 'libsystemd' 'kmod' 'hwids' 'util-linux' 'kbd')
+ optdepends=('cryptsetup: required for encrypted block devices')
+ provides=("udev=$pkgver")
+ conflicts=('udev')
+ replaces=('udev')
+ install='systemd-tools.install'
+
+ mv "$srcdir/_tools/"* "$pkgdir"
+
+ # the path to udevadm is hardcoded in some places
+ install -d "$pkgdir/sbin"
+ ln -s ../usr/bin/udevadm "$pkgdir/sbin/udevadm"
+
+ # udevd is no longer udevd because systemd. why isn't udevadm now udevctl?
+ ln -s ../lib/systemd/systemd-udevd "$pkgdir/usr/bin/udevd"
+
+ # add back tmpfiles.d/legacy.conf
+ install -m644 "systemd-$pkgver/tmpfiles.d/legacy.conf" "$pkgdir/usr/lib/tmpfiles.d"
+
+ # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
+ sed -i 's#GROUP="dialout"#GROUP="uucp"#g;
+ s#GROUP="tape"#GROUP="storage"#g;
+ s#GROUP="cdrom"#GROUP="optical"#g' "$pkgdir"/usr/lib/udev/rules.d/*.rules
+
+ # add mkinitcpio hooks
+ install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev"
+ install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev"
+ install -Dm644 "$srcdir/initcpio-install-timestamp" "$pkgdir/usr/lib/initcpio/install/timestamp"
+
+ # XXX: kill off coredump rule until the journal can recover coredumps
+ # this file needs to come back as part of systemd, not systemd-tools
+ rm "$pkgdir/usr/lib/sysctl.d/coredump.conf"
+}
+
+# vim: ft=sh syn=sh et
diff --git a/abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev b/abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev
new file mode 100644
index 0000000..75da7e4
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev
@@ -0,0 +1,20 @@
+#!/usr/bin/ash
+
+run_earlyhook() {
+ udevd --daemon --resolve-names=never
+ udevd_running=1
+}
+
+run_hook() {
+ msg ":: Triggering uevents..."
+ udevadm trigger --action=add --type=subsystems
+ udevadm trigger --action=add --type=devices
+ udevadm settle
+}
+
+run_cleanuphook() {
+ udevadm control --exit
+ udevadm info --cleanup-db
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp b/abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp
new file mode 100644
index 0000000..259cc70
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+build() {
+ add_binary /usr/lib/systemd/systemd-timestamp /usr/bin/systemd-timestamp
+}
+
+help() {
+ cat <<HELPEOF
+Provides support for RD_TIMESTAMP in early userspace, which can be read by a
+program such as systemd-analyze to determine boot time.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/abs/not_built/core/systemd/systemd-tools/initcpio-install-udev b/abs/not_built/core/systemd/systemd-tools/initcpio-install-udev
new file mode 100644
index 0000000..7624299
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/initcpio-install-udev
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+build() {
+ local rules tool
+
+ add_file "/etc/udev/udev.conf"
+ add_binary /usr/lib/systemd/systemd-udevd /usr/bin/udevd
+ add_binary /usr/bin/udevadm
+
+ for rules in 50-udev-default.rules 60-persistent-storage.rules 80-drivers.rules; do
+ add_file "/usr/lib/udev/rules.d/$rules"
+ done
+ for tool in ata_id scsi_id; do
+ add_file "/usr/lib/udev/$tool"
+ done
+
+ add_runscript
+}
+
+help() {
+ cat <<HELPEOF
+This hook will use udev to create your root device node and detect the needed
+modules for your root device. It is also required for firmware loading in
+initramfs. It is recommended to use this hook.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/abs/not_built/core/systemd/systemd-tools/locale.sh b/abs/not_built/core/systemd/systemd-tools/locale.sh
new file mode 100644
index 0000000..a4c413e
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/locale.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+if [ ! -r /etc/locale.conf ]; then
+ return
+fi
+
+. /etc/locale.conf
+
+if [ "${LANG+x}" = 'x' ]; then
+ export LANG
+fi
+
+if [ "${LC_CTYPE+x}" = 'x' ]; then
+ export LC_CTYPE
+fi
+
+if [ "${LC_NUMERIC+x}" = 'x' ]; then
+ export LC_NUMERIC
+fi
+
+if [ "${LC_TIME+x}" = 'x' ]; then
+ export LC_TIME
+fi
+
+if [ "${LC_COLLATE+x}" = 'x' ]; then
+ export LC_COLLATE
+fi
+
+if [ "${LC_MONETARY+x}" = 'x' ]; then
+ export LC_MONETARY
+fi
+
+if [ "${LC_MESSAGES+x}" = 'x' ]; then
+ export LC_MESSAGES
+fi
+
+if [ "${LC_PAPER+x}" = 'x' ]; then
+ export LC_PAPER
+fi
+
+if [ "${LC_NAME+x}" = 'x' ]; then
+ export LC_NAME
+fi
+
+if [ "${LC_ADDRESS+x}" = 'x' ]; then
+ export LC_ADDRESS
+fi
+
+if [ "${LC_TELEPHONE+x}" = 'x' ]; then
+ export LC_TELEPHONE
+fi
+
+if [ "${LC_MEASUREMENT+x}" = 'x' ]; then
+ export LC_MEASUREMENT
+fi
+
+if [ "${LC_IDENTIFICATION+x}" = 'x' ]; then
+ export LC_IDENTIFICATION
+fi
+
diff --git a/abs/not_built/core/systemd/systemd-tools/systemd-tools.install b/abs/not_built/core/systemd/systemd-tools/systemd-tools.install
new file mode 100644
index 0000000..7d0bd87
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/systemd-tools.install
@@ -0,0 +1,35 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_install() {
+ systemd-machine-id-setup
+}
+
+post_upgrade() {
+ systemd-machine-id-setup
+
+ if [ "$(vercmp $2 174)" -lt 0 ]; then
+ echo " * We now use upstream rules for assigning devices to the 'disk', 'optical',"
+ echo " 'scanner' and 'video' groups. Beware of any changes."
+ echo " * We no longer create symlinks from /dev/<dev> to /dev/<dev>0."
+ echo " * For security reasons, we no longer add devices to the 'storage' group. Use"
+ echo " udisks and friends, or add custom rules to /etc/udev.d/rules/, if you want"
+ echo " this functionality back."
+ echo " * We no longer create the static nodes on install needed for an initrd-less"
+ echo " boot where devtmpfs is not mounted by the kernel, this only affects fresh"
+ echo " installs."
+ fi
+ if [ "$(vercmp $2 175)" -lt 0 ]; then
+ echo " * devtmpfs support is now a hard requirement. Users of the official Arch"
+ echo " kernels have this enabled."
+ fi
+ if [ "$(vercmp $2 181)" -lt 0 ]; then
+ echo " * udev-compat has been removed, and should be uninstalled."
+ echo " * Framebuffers are no longer blacklisted by default."
+ echo " * binaries moved from /sbin to /usr/bin"
+ fi
+ if [ "$(vercmp $2 181-3)" -lt 0 ]; then
+ echo " * if your kernel does not provide /dev/loop-control, you need to manually"
+ echo " load the 'loop' module before using losetup"
+ fi
+}
diff --git a/abs/not_built/core/systemd/systemd-tools/systemd.install b/abs/not_built/core/systemd/systemd-tools/systemd.install
new file mode 100644
index 0000000..e369f09
--- /dev/null
+++ b/abs/not_built/core/systemd/systemd-tools/systemd.install
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+sd_booted() {
+ [ -e sys/fs/cgroup/systemd ]
+}
+
+post_install() {
+ # enable getty@tty1 by default, but don't track the file
+ systemctl enable getty@.service
+
+ echo ":: Append 'init=/bin/systemd' to your kernel command line in your"
+ echo " bootloader to replace sysvinit with systemd"
+}
+
+post_upgrade() {
+ if sd_booted; then
+ # we moved the binary in 44-2 to /usr, so a reexec leads to a
+ # coredump. refuse this reexec and warn the user that they should
+ # reboot instead.
+ if [ "$(vercmp 44-2 "$2")" -eq 1 ]; then
+ echo "warning: refusing to reexec systemd. the system should be rebooted."
+ else
+ systemctl daemon-reload
+ systemctl daemon-reexec
+ fi
+ fi
+
+ # getty@tty1.service is no longer enabled by default, but we don't want to break
+ # existing setups.
+ if [ "$(vercmp 183 "$2")" -eq 1 ]; then
+ # systemctl seems to be whiny on sysvinit. this will succeed unless something
+ # horrific happens, so just mask the error.
+ systemctl -q enable getty@.service || true
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/core/test-pattern/PKGBUILD b/abs/not_built/core/test-pattern/PKGBUILD
new file mode 100644
index 0000000..7ac825b
--- /dev/null
+++ b/abs/not_built/core/test-pattern/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=test-pattern
+pkgver=1.0
+pkgrel=6
+arch=('i686')
+pkgdesc="script to create test pattern videos"
+depends=(imagemagick)
+license=('GPL')
+source=(test_pattern.bash)
+
+build() {
+ cd $startdir/src
+# mkdir $startdir/pkg/usr/bin/
+ install -m755 -D test_pattern.bash $startdir/pkg/usr/bin/test_pattern.bash
+}
+
+md5sums=('3a427a5dee0763c6b0a5938fedbde883')
diff --git a/abs/not_built/core/test-pattern/test_pattern.bash b/abs/not_built/core/test-pattern/test_pattern.bash
new file mode 100755
index 0000000..d220fb0
--- /dev/null
+++ b/abs/not_built/core/test-pattern/test_pattern.bash
@@ -0,0 +1,326 @@
+#!/bin/bash
+
+# Set default options to be overriden by command line arguments.
+
+w=400
+h=325
+rate=50
+TEMPDIR=
+unset remove_tempdir
+interlaced=
+aspect_ratio=
+bitrate=
+
+while getopts ":w:h:t:r:ia:b:" opt; do
+ case $opt in
+ w)
+ w=$OPTARG
+ ;;
+ h)
+ h=$OPTARG
+ ;;
+ t)
+ TEMPDIR=$OPTARG
+ ;;
+ r)
+ rate=$OPTARG
+ ;;
+ i)
+ interlaced=TRUE
+ ;;
+ a)
+ aspect_ratio=$OPTARG
+ ;;
+ b)
+ bitrate=$OPTARG
+ ;;
+ \?)
+ echo -n "\
+Error: Invalid option -$OPTARG
+
+Usage:
+ test_pattern.bash [options]
+ -w width
+ The width in pixels.
+ -h height
+ The height in pixels.
+ -t tempdir
+ Temporary directory for intermediate files. If no directory is specified, one is created and deleted at the end of processing.
+ -r fieldrate
+ -i
+ Generate an interlaced test pattern
+ -a n:m
+ Aspect ratio of generated video.
+ -b bitrate
+ Bitrate used for encoding.
+
+Example:
+test_pattern.bash -w 1440 -h 1080 -t temp -r 50 -i -a 16:9 -b 12000k
+"
+ exit 1
+ esac
+done
+
+if [ -z "$aspect_ratio" ] ; then
+ aspect_ratio="${w}:${h}"
+fi
+
+aspectx=$(echo $aspect_ratio | cut -d: -f1)
+aspecty=$(echo $aspect_ratio | cut -d: -f2)
+
+# Calculate some dimensions based on the requested size.
+
+barw=$((w/32))
+barstep=$((w/90))
+barstart=$((-barw/barstep-1))
+
+frames=$((w/2))
+
+unity=$((h*2/27))
+unitx=$((unity*aspecty*w/(aspectx*h)))
+gridlw=$((unity*3/43))
+
+echo unity=$unity
+echo unitx=$unitx
+
+nvgrid=$(((h-gridlw)/unity))
+nhgrid=$(((((w-gridlw)/unitx)-1)/2*2+1))
+
+gridstartx=$((w/2-(nhgrid*unitx+gridlw)/2-1))
+gridstarty=$((h/2-(nvgrid*unity+gridlw)/2-1))
+
+echo nvgrid=$nvgrid
+echo nhgrid=$nhgrid
+echo gridstartx=$gridstartx
+echo gridstarty=$gridstarty
+
+echo parsed tempdir $TEMPDIR
+
+if [ -z "$TEMPDIR" ] ; then
+ TEMPDIR=$(mktemp -d --tmpdir=/tmp)
+ remove_tempdir=1
+else
+ if [ ! -d "$TEMPDIR" ] ; then
+ mkdir $TEMPDIR
+ fi
+fi
+
+echo parsed tempdir $TEMPDIR $remove_tempdir
+
+unset checker
+checker=( -fill "rgb(192,192,192)" )
+for ((g=-9;g<=7;g=g+2)) ; do
+ checker=( "${checker[@]}"
+ -draw
+ "rectangle $((w/2+g*unitx*7/10)),$((gridstarty+unity*3+gridlw)) $((w/2+(g+1)*unitx*7/10)),$((gridstarty+unity*4+gridlw))" )
+done
+
+checker=( "${checker[@]}" -fill black )
+for ((g=-8;g<=8;g=g+2)) ; do
+ checker=( "${checker[@]}"
+ -draw
+ "rectangle $((w/2+g*unitx*7/10)),$((gridstarty+unity*3+gridlw)) $((w/2+(g+1)*unitx*7/10)),$((gridstarty+unity*4+gridlw))" )
+done
+
+unset stripe
+stripe=( -fill white )
+
+for ((g=0;g<5;g++)) ; do
+ startx=$((w/2+(3-g*2)*unitx))
+ endx=$((startx+2*unitx))
+
+ for ((x=startx;x<endx;x=x+2*(g+1))) ; do
+ stripe=( "${stripe[@]}"
+ -draw
+ "rectangle $x,$((gridstarty+unity*7+gridlw)) $((x+g)),$((gridstarty+unity*9+gridlw))" )
+ done
+done
+
+for ((g=0;g<13;g++)) ; do
+ stripe=( "${stripe[@]}"
+ -draw
+ "rectangle $((gridstartx+(nhgrid/2-6+g)*unitx)),$((gridstarty+unity*6+gridlw)) $((gridstartx+(nhgrid/2-6+g)*unitx+gridlw)),$((gridstarty+unity*7+gridlw-1))" )
+done
+
+convert -size ${w}x${h} xc:white \
+ -fill "rgb(204,204,0)" \
+ -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2-4*unitx)),$((gridstarty+unity*6+gridlw))" \
+ -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*11+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*13+gridlw))" \
+ -fill "rgb(0,204,204)" \
+ -draw "rectangle $((w/2-4*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2-2*unitx)),$((gridstarty+unity*6+gridlw))" \
+ -fill "rgb(0,204,0)" \
+ -draw "rectangle $((w/2-2*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2-0*unitx)),$((gridstarty+unity*6+gridlw))" \
+ -fill "rgb(204,0,204)" \
+ -draw "rectangle $((w/2-0*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2+2*unitx)),$((gridstarty+unity*6+gridlw))" \
+ -fill "rgb(204,0,0)" \
+ -draw "rectangle $((w/2+2*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2+4*unitx)),$((gridstarty+unity*6+gridlw))" \
+ -draw "rectangle $((w/2-unitx/2)),$((gridstarty+unity*11+gridlw)) $((w/2+unitx/2)),$((gridstarty+unity*13+gridlw))" \
+ -fill "rgb(0,0,204)" \
+ -draw "rectangle $((w/2+4*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*6+gridlw))" \
+\
+ -fill black \
+ -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*6+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*9+gridlw))" \
+ "${stripe[@]}" \
+ -fill black \
+ -draw "rectangle $((w/2-(unitx-gridlw)/2)),$((gridstarty+unity*5+gridlw)) $((w/2+(unitx-gridlw)/2-1)),$((gridstarty+unity*8+gridlw))" \
+ -fill white \
+ -draw "rectangle $((w/2-6*unitx)),$((h/2-gridlw/2)) $((w/2+6*unitx)),$((h/2-gridlw/2+gridlw))" \
+ -draw "rectangle $((w/2-gridlw/2)),$((gridstarty+unity*5+gridlw)) $((w/2-gridlw/2+gridlw)),$((gridstarty+unity*8+gridlw))" \
+\
+ -fill "rgb(0,0,0)" \
+ -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2-4*unitx)),$((gridstarty+unity*10+gridlw))" \
+ -fill "rgb(51,51,51)" \
+ -draw "rectangle $((w/2-4*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2-2*unitx)),$((gridstarty+unity*10+gridlw))" \
+ -fill "rgb(102,102,102)" \
+ -draw "rectangle $((w/2-2*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2-0*unitx)),$((gridstarty+unity*10+gridlw))" \
+ -fill "rgb(153,153,153)" \
+ -draw "rectangle $((w/2-0*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2+2*unitx)),$((gridstarty+unity*10+gridlw))" \
+ -fill "rgb(204,204,204)" \
+ -draw "rectangle $((w/2+2*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2+4*unitx)),$((gridstarty+unity*10+gridlw))" \
+ -fill "rgb(255,255,255)" \
+ -draw "rectangle $((w/2+4*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*10+gridlw))" \
+\
+ -fill black \
+ -draw "rectangle $((w/2-2*unitx)),$((gridstarty+unity*1+gridlw)) $((w/2+2*unitx)),$((gridstarty+unity*2+gridlw))" \
+ -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*2+gridlw)) $((w/2-3*unitx)),$((gridstarty+unity*3+gridlw))" \
+ -draw "rectangle $((w/2+6*unitx)),$((gridstarty+unity*2+gridlw)) $((w/2+3*unitx)),$((gridstarty+unity*3+gridlw))" \
+ -draw "rectangle $((gridstartx+(nhgrid/2-2)*unitx)),$((gridstarty+unity*2+gridlw)) $((gridstartx+(nhgrid/2-2)*unitx+gridlw)),$((gridstarty+unity*3+gridlw))" \
+ -draw "rectangle $((w/2-3*unitx+1)),$((gridstarty+unity*10+gridlw)) $((w/2+3*unitx)),$((gridstarty+unity*11+gridlw))" \
+ -fill white \
+ -draw "rectangle $((gridstartx+(nhgrid/2-2)*unitx)),$((gridstarty+unity*10+gridlw)) $((gridstartx+(nhgrid/2-2)*unitx+gridlw)),$((gridstarty+unity*11+gridlw))" \
+ "${checker[@]}" \
+ ${TEMPDIR}/centre.png
+
+convert -size ${w}x${h} xc:black \
+ -fill white \
+ -draw "ellipse $((w/2)),$((h/2)) $((6*unitx)),$((6*unity)) 0,360" \
+ ${TEMPDIR}/circle.png
+
+unset drawgrid
+drawgrid=( -fill white )
+for ((g=0;g<=$nhgrid;g++)) ; do
+ drawgrid=( "${drawgrid[@]}"
+ -draw
+ "rectangle $((gridstartx+g*unitx)),0 $((gridstartx+g*unitx+gridlw)),$h" )
+done
+
+for ((g=0;g<=$nvgrid;g++)) ; do
+ drawgrid=( "${drawgrid[@]}"
+ -draw
+ "rectangle 0,$((gridstarty+g*unity)) $w,$((gridstarty+g*unity+gridlw))" )
+done
+
+drawgrid=( "${drawgrid[@]}"
+ -draw "rectangle 0,0 $gridstartx,$h"
+ -draw "rectangle 0,0 $w,$gridstarty"
+ -draw "rectangle $w,$h $((gridstartx+nhgrid*unitx)),0"
+ -draw "rectangle $w,$h 0,$((gridstarty+nvgrid*unity))"
+ -fill black
+)
+
+for ((g=0;g<=$nhgrid;g=g+2)) ; do
+ drawgrid=( "${drawgrid[@]}"
+ -draw
+ "rectangle $((gridstartx+g*unitx+gridlw+1)),0 $((gridstartx+(g+1)*unitx)),$((gridstarty-1))"
+ -draw
+ "rectangle $((gridstartx+g*unitx+gridlw+1)),$((gridstarty+nvgrid*unity+gridlw+1)) $((gridstartx+(g+1)*unitx)),$h"
+ )
+done
+
+for ((g=0;g<=$nvgrid;g=g+2)) ; do
+ drawgrid=( "${drawgrid[@]}"
+ -draw
+ "rectangle 0,$((gridstarty+g*unity+gridlw+1)) $((gridstartx-1)),$((gridstarty+(g+1)*unity-1))"
+ -draw
+ "rectangle $((gridstartx+nhgrid*unitx+gridlw+1)),$((gridstarty+g*unity+gridlw+1)) $w,$((gridstarty+(g+1)*unity-1))"
+ )
+done
+
+diagonals=(
+ -fill white
+ -linewidth 10
+ -fill white
+ -draw "line 0,0 $((w/2)),$((h-1))"
+ -draw "line 0,0 $((w-1)),$((h/2))"
+ -draw "line 0,$((h-1)) $((w/2)),0"
+ -draw "line 0,$((h-1)) $((w-1)),$((h/2))"
+ -draw "line $((w-1)),0 $((w/2)),$((h-1))"
+ -draw "line $((w-1)),0 0,$((h/2))"
+ -draw "line $((w-1)),$((h-1)) $((w/2)),0"
+ -draw "line $((w-1)),$((h-1)) 0,$((h/2))" )
+
+convert -size ${w}x${h} xc:grey50 \
+ "${diagonals[@]}" \
+ "${drawgrid[@]}" \
+ -fill "rgb(51,153,102)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2-7)*unitx+gridlw+1)),$((gridstarty+unity+gridlw+1)) $((gridstartx+(nhgrid/2-6)*unitx-1)),$((h/2))" \
+ -fill "rgb(204,102,102)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2-7)*unitx+gridlw+1)),$((h/2)) $((gridstartx+(nhgrid/2-6)*unitx-1)),$((gridstarty+unity*12-1))" \
+ -fill "rgb(102,102,255)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2-6)*unitx)),$((gridstarty+unity+gridlw+1)) $((gridstartx+(nhgrid/2-5)*unitx-1)),$((gridstarty+unity*3-1))" \
+ -fill "rgb(153,102,0)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2-6)*unitx)),$((gridstarty+10*unity+gridlw+1)) $((gridstartx+(nhgrid/2-5)*unitx-1)),$((gridstarty+unity*12-1))" \
+ -fill "rgb(128,128,0)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2+7)*unitx+gridlw+1)),$((gridstarty+unity+gridlw+1)) $((gridstartx+(nhgrid/2+8)*unitx-1)),$((h/2))" \
+ -fill "rgb(102,102,255)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2+7)*unitx+gridlw+1)),$((h/2)) $((gridstartx+(nhgrid/2+8)*unitx-1)),$((gridstarty+unity*12-1))" \
+ -fill "rgb(102,102,255)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2+6)*unitx+gridlw+1)),$((gridstarty+unity+gridlw+1)) $((gridstartx+(nhgrid/2+7)*unitx+gridlw)),$((gridstarty+unity*3-1))" \
+ -fill "rgb(153,102,0)" \
+ -draw "rectangle $((gridstartx+(nhgrid/2+6)*unitx+gridlw+1)),$((gridstarty+10*unity+gridlw+1)) $((gridstartx+(nhgrid/2+7)*unitx+gridlw)),$((gridstarty+unity*12-1))" \
+ ${TEMPDIR}/grid.png
+
+convert -size ${w}x${h} ${TEMPDIR}/grid.png ${TEMPDIR}/centre.png ${TEMPDIR}/circle.png -composite ${TEMPDIR}/background.png
+
+if [ -n "$interlaced" ] ; then
+ interlaced_frame=0
+ convert -size 1x${h} -tile-offset +0+1 pattern:gray50 \
+ -scale ${w}x${h}\! ${TEMPDIR}/interlace.png
+fi
+
+for ((i=0; i < $frames; i++)) ; do
+
+ prev_image_name=$image_name
+ image_name=${TEMPDIR}/test$(printf "%03d" $i).png
+ echo creating image $image_name
+
+ convert -size ${w}x${h} ${TEMPDIR}/background.png \
+ -fill black \
+ -draw "rectangle $(((barstart+i)*barstep)),0 $(((barstart+i)*barstep+barw)),${h}" \
+ -font Arial-Black-Regular \
+ -pointsize $unity \
+ -fill white \
+ -stroke black -strokewidth 5 -annotate +$((w-2*i))+$((gridstartx+11*unity)) 'Judder Test' \
+ -stroke none -annotate +$((w-2*i))+$((gridstartx+11*unity)) 'Judder Test' \
+ -depth 8 \
+ ${image_name}
+
+ if [ -n "$interlaced" ] ; then
+ interlaced_frame=$((interlaced_frame + 1))
+
+ if [ $interlaced_frame = 2 ] ; then
+ echo interlacing $((i-1)) and $i
+ interlaced_frame=0
+ convert -size ${w}x${h} -depth 8 $prev_image_name $image_name ${TEMPDIR}/interlace.png -composite ${TEMPDIR}/interlaced$(printf "%03d" $((i/2))).png
+ fi
+ fi
+done
+
+bitrate_flags=
+if [ -n "$bitrate" ] ; then
+ bitrate_flags="-b $bitrate"
+fi
+
+if [ -n "$interlaced" ] ; then
+ ffmpeg -r ${rate} -i ${TEMPDIR}/interlaced%03d.png -r ${rate} \
+ -vcodec mpeg2video -flags +ilme+ildct -aspect $aspect_ratio \
+ ${bitrate_flags} -y test.mpg
+else
+ ffmpeg -r ${rate} -i ${TEMPDIR}/test%03d.png -r ${rate} \
+ -vcodec mpeg2video -aspect $aspect_ratio \
+ ${bitrate_flags} -y test.mpg
+fi
+
+if [ -n "$remove_tempdir" ] ; then
+ rm -Rf $TEMPDIR
+fi
diff --git a/abs/not_built/core/tftp-hpa/LICENSE b/abs/not_built/core/tftp-hpa/LICENSE
new file mode 100644
index 0000000..6dade69
--- /dev/null
+++ b/abs/not_built/core/tftp-hpa/LICENSE
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 1983, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
diff --git a/abs/not_built/core/tftp-hpa/PKGBUILD b/abs/not_built/core/tftp-hpa/PKGBUILD
new file mode 100644
index 0000000..cf1c9e0
--- /dev/null
+++ b/abs/not_built/core/tftp-hpa/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 37555 2009-05-02 22:51:20Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Jose Javier <jojapa@terra.es>
+pkgname=tftp-hpa
+pkgver=5.0
+pkgrel=2
+pkgdesc="Official tftp server"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/software/network/tftp/"
+license=('BSD')
+depends=('tcp_wrappers')
+conflicts=('netkit-tftp')
+backup=('etc/conf.d/tftpd')
+source=(http://www.kernel.org/pub/software/network/tftp/$pkgname-$pkgver.tar.gz tftpd.rc tftpd.conf LICENSE)
+md5sums=('1ae813a94670f0d8c294aafa9f5ecf65' 'a974d02526f19222146c8e3d3b598871'\
+ '414a79dc891bced056d99a9bb790fc9e' '6ce21e27b6fdc1a1adf85c81e42aeecf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make INSTALLROOT="${pkgdir}" install || return 1
+ install -d "${pkgdir}/etc/rc.d"
+ install -d "${pkgdir}/var/tftpboot"
+ install -m755 "${srcdir}/tftpd.rc" "${pkgdir}/etc/rc.d/tftpd" || return 1
+ install -D -m644 "${srcdir}/tftpd.conf" "${pkgdir}/etc/conf.d/tftpd" || return 1
+ rm "${pkgdir}/usr/share/man/man8/tftpd.8"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/core/tftp-hpa/tftpd.conf b/abs/not_built/core/tftp-hpa/tftpd.conf
new file mode 100644
index 0000000..4705cc3
--- /dev/null
+++ b/abs/not_built/core/tftp-hpa/tftpd.conf
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to TFTPD
+#
+TFTPD_ARGS="-l -s /var/tftpboot"
diff --git a/abs/not_built/core/tftp-hpa/tftpd.rc b/abs/not_built/core/tftp-hpa/tftpd.rc
new file mode 100755
index 0000000..b21f87f
--- /dev/null
+++ b/abs/not_built/core/tftp-hpa/tftpd.rc
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+TFTPD_ARGS=
+[ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd
+
+PID=$(pidof -o %PPID /usr/sbin/in.tftpd)
+case "$1" in
+ start)
+ stat_busy "Starting TFTPD"
+ [ -z "$PID" ] && /usr/sbin/in.tftpd ${TFTPD_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon in.tftpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping TFTPD"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon in.tftpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/core/tiacx-firmware/PKGBUILD b/abs/not_built/core/tiacx-firmware/PKGBUILD
new file mode 100644
index 0000000..1479cf5
--- /dev/null
+++ b/abs/not_built/core/tiacx-firmware/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 59442 2009-11-23 23:27:25Z giovanni $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=tiacx-firmware
+pkgver=2
+pkgrel=2
+pkgdesc="Firmware for Texas Instruments ACX100/ACX111 wireless chips."
+arch=('any')
+url="http://acx100.sourceforge.net/"
+license=('MPL')
+install=tiacx-firmware.install
+depends=()
+source=(ftp://ftp.archlinux.org/other/tiacx-firmware/acx-firmware-20060207.tar.bz2)
+md5sums=('b8efea38c2c598190604dfa297cc9675')
+
+build() {
+ install -d ${pkgdir}/usr/share
+ cp -r fw "${pkgdir}/usr/share/tiacx"
+ find ${pkgdir} -type d -exec chmod 755 {} \;
+ find ${pkgdir} -type f -exec chmod 644 {} \;
+}
diff --git a/abs/not_built/core/tiacx-firmware/tiacx-firmware.install b/abs/not_built/core/tiacx-firmware/tiacx-firmware.install
new file mode 100644
index 0000000..b83d6fd
--- /dev/null
+++ b/abs/not_built/core/tiacx-firmware/tiacx-firmware.install
@@ -0,0 +1,18 @@
+post_install() {
+ cat << 'EOM'
+
+ ==>
+ ==> PLEASE NOTE:
+ ==> The firmware files for ACX100/111 devices are installed in
+ ==> /usr/share/tiacx. Please identify the correct file(s) for your
+ ==> device and copy them to /lib/firmware.
+ ==>
+ ==> See http://acx100.sourceforge.net/wiki/Firmware for details.
+ ==>
+
+EOM
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/abs/not_built/core/tiacx/PKGBUILD b/abs/not_built/core/tiacx/PKGBUILD
new file mode 100644
index 0000000..428d993
--- /dev/null
+++ b/abs/not_built/core/tiacx/PKGBUILD
@@ -0,0 +1,41 @@
+# Contributor: James Rayner <iphitus@gmail.com>
+
+pkgname=tiacx
+pkgver=20080210
+pkgrel=22
+pkgdesc="OpenSource module for Texas Instruments ACX100/ACX111 wireless chips. For stock arch 2.6 kernel"
+arch=(i686 x86_64)
+url="http://acx100.sourceforge.net/"
+license=('MPL')
+depends=('wireless_tools' 'kernel26>=2.6.39' 'kernel26<2.6.40' 'tiacx-firmware')
+makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40')
+install=acx.install
+source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2
+ kernel-2.6.27.patch
+ kernel-2.6.30.patch
+ kernel-2.6.31.patch
+ kernel-2.6.33.patch)
+options=(!strip)
+_kernver=2.6.39-LinHES
+md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12'
+ '9895f72f8d0c84956b0f6c3b16df0fe8'
+ 'e2900aee839ce711a7f7606b3e3de36e'
+ 'dbcb276d77df7801cef58a85c18dfe94'
+ '9cd35ea33b8abdd2e4efec485b05477e')
+
+build() {
+ cd $srcdir/acx-$pkgver
+ patch -Np1 -i ../kernel-2.6.27.patch
+ patch -Np0 -i ../kernel-2.6.30.patch
+ patch -Np1 -i ../kernel-2.6.31.patch
+ patch -Np0 -i ../kernel-2.6.33.patch
+ make -C /lib/modules/${_kernver}/build M=$(pwd)
+}
+
+package () {
+ cd $srcdir/acx-$pkgver
+ install -D acx.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless/tiacx/acx.ko
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+ # gzip -9 modules
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/abs/not_built/core/tiacx/acx.install b/abs/not_built/core/tiacx/acx.install
new file mode 100644
index 0000000..971bf32
--- /dev/null
+++ b/abs/not_built/core/tiacx/acx.install
@@ -0,0 +1,19 @@
+# arg 1: the new package version
+post_install() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+
+}
+
+# arg 1: the old package version
+post_remove() {
+ KERNEL_VERSION='2.6.39-LinHES'
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+}
diff --git a/abs/not_built/core/tiacx/kernel-2.6.27.patch b/abs/not_built/core/tiacx/kernel-2.6.27.patch
new file mode 100644
index 0000000..f0c114b
--- /dev/null
+++ b/abs/not_built/core/tiacx/kernel-2.6.27.patch
@@ -0,0 +1,82 @@
+diff -Nur acx-20080210.orig/ioctl.c acx-20080210/ioctl.c
+--- acx-20080210.orig/ioctl.c 2008-02-10 21:06:42.000000000 +0100
++++ acx-20080210/ioctl.c 2008-10-10 17:07:32.000000000 +0200
+@@ -489,6 +489,7 @@
+ static char*
+ acx_s_scan_add_station(
+ acx_device_t *adev,
++ struct iw_request_info *info,
+ char *ptr,
+ char *end_buf,
+ struct client *bss)
+@@ -503,14 +504,14 @@
+ iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ MAC_COPY(iwe.u.ap_addr.sa_data, bss->bssid);
+ acxlog_mac(L_IOCTL, "scan, station address: ", bss->bssid, "\n");
+- ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_ADDR_LEN);
++ ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_ADDR_LEN);
+
+ /* Add ESSID */
+ iwe.cmd = SIOCGIWESSID;
+ iwe.u.data.length = bss->essid_len;
+ iwe.u.data.flags = 1;
+ log(L_IOCTL, "scan, essid: %s\n", bss->essid);
+- ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid);
++ ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid);
+
+ /* Add mode */
+ iwe.cmd = SIOCGIWMODE;
+@@ -520,7 +521,7 @@
+ else
+ iwe.u.mode = IW_MODE_ADHOC;
+ log(L_IOCTL, "scan, mode: %d\n", iwe.u.mode);
+- ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_UINT_LEN);
++ ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_UINT_LEN);
+ }
+
+ /* Add frequency */
+@@ -528,7 +529,7 @@
+ iwe.u.freq.m = acx_channel_freq[bss->channel - 1] * 100000;
+ iwe.u.freq.e = 1;
+ log(L_IOCTL, "scan, frequency: %d\n", iwe.u.freq.m);
+- ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_FREQ_LEN);
++ ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_FREQ_LEN);
+
+ /* Add link quality */
+ iwe.cmd = IWEVQUAL;
+@@ -546,7 +547,7 @@
+ iwe.u.qual.updated = 7;
+ log(L_IOCTL, "scan, link quality: %d/%d/%d\n",
+ iwe.u.qual.level, iwe.u.qual.noise, iwe.u.qual.qual);
+- ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_QUAL_LEN);
++ ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_QUAL_LEN);
+
+ /* Add encryption */
+ iwe.cmd = SIOCGIWENCODE;
+@@ -556,7 +557,7 @@
+ iwe.u.data.flags = IW_ENCODE_DISABLED;
+ iwe.u.data.length = 0;
+ log(L_IOCTL, "scan, encryption flags: %X\n", iwe.u.data.flags);
+- ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid);
++ ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid);
+
+ /* add rates */
+ iwe.cmd = SIOCGIWRATE;
+@@ -570,7 +571,7 @@
+ if (rate & 1) {
+ iwe.u.bitrate.value = *p * 500000; /* units of 500kb/s */
+ log(L_IOCTL, "scan, rate: %d\n", iwe.u.bitrate.value);
+- ptr_rate = iwe_stream_add_value(ptr, ptr_rate, end_buf,
++ ptr_rate = iwe_stream_add_value(info, ptr, ptr_rate, end_buf,
+ &iwe, IW_EV_PARAM_LEN);
+ }
+ rate >>= 1;
+@@ -625,7 +626,7 @@
+ for (i = 0; i < ARRAY_SIZE(adev->sta_list); i++) {
+ struct client *bss = &adev->sta_list[i];
+ if (!bss->used) continue;
+- ptr = acx_s_scan_add_station(adev, ptr,
++ ptr = acx_s_scan_add_station(adev, info, ptr,
+ extra + IW_SCAN_MAX_DATA, bss);
+ }
+ dwrq->length = ptr - extra;
diff --git a/abs/not_built/core/tiacx/kernel-2.6.30.patch b/abs/not_built/core/tiacx/kernel-2.6.30.patch
new file mode 100644
index 0000000..b5d94a1
--- /dev/null
+++ b/abs/not_built/core/tiacx/kernel-2.6.30.patch
@@ -0,0 +1,16 @@
+--- wlan_compat.h~ 2009-06-12 09:17:30.000000000 +0200
++++ wlan_compat.h 2009-06-12 09:17:30.000000000 +0200
+@@ -217,13 +217,6 @@
+ /*=============================================================*/
+ #define WLAN_PACKED __attribute__ ((packed))
+
+-/* Interrupt handler backwards compatibility stuff */
+-#ifndef IRQ_NONE
+-#define IRQ_NONE
+-#define IRQ_HANDLED
+-typedef void irqreturn_t;
+-#endif
+-
+ #ifndef ARPHRD_IEEE80211_PRISM
+ #define ARPHRD_IEEE80211_PRISM 802
+ #endif
diff --git a/abs/not_built/core/tiacx/kernel-2.6.31.patch b/abs/not_built/core/tiacx/kernel-2.6.31.patch
new file mode 100644
index 0000000..2a89e3c
--- /dev/null
+++ b/abs/not_built/core/tiacx/kernel-2.6.31.patch
@@ -0,0 +1,88 @@
+--- acx-20080210/pci.c 2008-02-10 21:06:42.000000000 +0100
++++ acx-20080210/pci.c 2009-09-11 22:27:28.000000000 +0200
+@@ -1437,6 +1437,19 @@
+
+ static void dummy_netdev_init(struct net_device *ndev) {}
+
++static const struct net_device_ops acx_netdev_ops = {
++ .ndo_open = &acxpci_e_open,
++ .ndo_stop = &acxpci_e_close,
++ .ndo_start_xmit = &acx_i_start_xmit,
++ .ndo_get_stats = &acx_e_get_stats,
++#if IW_HANDLER_VERSION <= 5
++ .ndo_get_wireless_stats = &acx_e_get_wireless_stats,
++#endif
++ .ndo_set_multicast_list = &acxpci_i_set_multicast_list,
++ .ndo_tx_timeout = &acxpci_i_tx_timeout,
++ .ndo_change_mtu = &acx_e_change_mtu,
++};
++
+ #ifdef CONFIG_PCI
+ static int __devinit acxpci_e_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+ {
+@@ -1547,17 +1560,8 @@
+ }
+
+ ether_setup(ndev);
+- ndev->open = &acxpci_e_open;
+- ndev->stop = &acxpci_e_close;
+- ndev->hard_start_xmit = &acx_i_start_xmit;
+- ndev->get_stats = &acx_e_get_stats;
+-#if IW_HANDLER_VERSION <= 5
+- ndev->get_wireless_stats = &acx_e_get_wireless_stats;
+-#endif
+- ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
+- ndev->set_multicast_list = &acxpci_i_set_multicast_list;
+- ndev->tx_timeout = &acxpci_i_tx_timeout;
+- ndev->change_mtu = &acx_e_change_mtu;
++ ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
++ ndev->netdev_ops = &acx_netdev_ops;
+ ndev->watchdog_timeo = 4 * HZ;
+ ndev->irq = pdev->irq;
+ ndev->base_addr = pci_resource_start(pdev, 0);
+--- acx-20080210/usb.c 2008-02-10 21:06:42.000000000 +0100
++++ acx-20080210/usb.c 2009-09-11 22:38:42.000000000 +0200
+@@ -778,6 +778,21 @@
+ static void
+ dummy_netdev_init(struct net_device *ndev) {}
+
++static const struct net_device_ops acxusb_netdev_ops = {
++ .ndo_open = &acxusb_e_open,
++ .ndo_stop = &acxusb_e_close,
++ .ndo_start_xmit = (void *)&acx_i_start_xmit,
++ .ndo_get_stats = (void *)&acx_e_get_stats,
++#if IW_HANDLER_VERSION <= 5
++ .ndo_get_wireless_stats = (void *)&acx_e_get_wireless_stats,
++#endif
++ .ndo_set_multicast_list = (void *)&acxusb_i_set_rx_mode,
++#ifdef HAVE_TX_TIMEOUT
++ .ndo_tx_timeout = &acxusb_i_tx_timeout,
++#endif
++ .ndo_change_mtu = &acx_e_change_mtu,
++};
++
+ static int
+ acxusb_e_probe(struct usb_interface *intf, const struct usb_device_id *devID)
+ {
+@@ -845,20 +860,11 @@
+ /* Register the callbacks for the network device functions */
+
+ ether_setup(ndev);
+- ndev->open = &acxusb_e_open;
+- ndev->stop = &acxusb_e_close;
+- ndev->hard_start_xmit = (void *)&acx_i_start_xmit;
+- ndev->get_stats = (void *)&acx_e_get_stats;
+-#if IW_HANDLER_VERSION <= 5
+- ndev->get_wireless_stats = (void *)&acx_e_get_wireless_stats;
+-#endif
+ ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
+- ndev->set_multicast_list = (void *)&acxusb_i_set_rx_mode;
++ ndev->netdev_ops = &acxusb_netdev_ops;
+ #ifdef HAVE_TX_TIMEOUT
+- ndev->tx_timeout = &acxusb_i_tx_timeout;
+ ndev->watchdog_timeo = 4 * HZ;
+ #endif
+- ndev->change_mtu = &acx_e_change_mtu;
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) && defined(SET_MODULE_OWNER)
+ SET_MODULE_OWNER(ndev);
+ #endif
diff --git a/abs/not_built/core/tiacx/kernel-2.6.33.patch b/abs/not_built/core/tiacx/kernel-2.6.33.patch
new file mode 100644
index 0000000..f486009
--- /dev/null
+++ b/abs/not_built/core/tiacx/kernel-2.6.33.patch
@@ -0,0 +1,11 @@
+--- pci.c~ 2010-02-27 19:30:54.000000000 +0100
++++ pci.c 2010-02-27 19:30:54.000000000 +0100
+@@ -35,7 +35,7 @@
+
+ /* Linux 2.6.18+ uses <linux/utsrelease.h> */
+ #ifndef UTS_RELEASE
+-#include <linux/utsrelease.h>
++#include <generated/utsrelease.h>
+ #endif
+
+ #include <linux/compiler.h> /* required for Lx 2.6.8 ?? */
diff --git a/abs/not_built/core/transcode/PKGBUILD b/abs/not_built/core/transcode/PKGBUILD
new file mode 100644
index 0000000..4e6718c
--- /dev/null
+++ b/abs/not_built/core/transcode/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 91207 2010-09-24 03:35:03Z eric $
+# Maintainer:
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: roberto <roberto@archlinux.org>
+
+pkgname=transcode
+_sripver=0.3-4
+pkgver=1.1.5
+pkgrel=8
+pkgdesc="A video/DVD ripper and encoder for the terminal/console"
+arch=('i686' 'x86_64')
+url="http://tcforge.berlios.de/"
+license=('GPL')
+depends=('imagemagick' 'lzo2' 'libdv' 'libdvdread' 'ffmpeg-svn' 'mjpegtools'
+ 'libmpeg2' 'libtheora' 'libxaw' 'libxml2' 'libxv' 'a52dec' 'alsa-lib')
+makedepends=('nasm' 'pkg-config')
+options=('!libtool' '!makeflags')
+source=(http://download2.berlios.de/tcforge/${pkgname}-${pkgver}.tar.bz2
+ http://downloads.sourceforge.net/sourceforge/subtitleripper/subtitleripper-${_sripver}.tgz
+ transcode-1.1.5-jpeg-7.patch transcode-1.1.5-mpa.patch)
+md5sums=('41ac6b1c0fe30f3aab286e771fc31b9e' 'c0bd49a88f667c68c4430ad25bbed510'\
+ 'af4056b7530a6f147594f676849e7c7b' 'c299cfc6c4be6a5512d1a129f04e5450')
+sha1sums=('48c36e06ca0cd1cdc1a9c6a241e231f896eefd26' 'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d'\
+ '9e380c00a3b31725dc3ec483fa7bf5e3d8a8a977' '6f45d9167c3aa15a83cb29545749f55eb1f1e5a2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 < ../transcode-1.1.5-jpeg-7.patch
+ patch -p1 < ../transcode-1.1.5-mpa.patch
+
+ # building from here
+ ./configure --prefix=/usr \
+ --enable-sse=no --enable-sse2=no --enable-altivec=no --enable-mmx \
+ --enable-lame --enable-ogg --enable-vorbis --enable-theora \
+ --enable-libdv --enable-libxml2 --enable-v4l \
+ --enable-imagemagick --enable-libjpeg --enable-lzo --enable-mjpegtools \
+ --enable-sdl --enable-freetype2 --enable-a52 --enable-libpostproc \
+ --enable-xvid --enable-x264 --enable-alsa \
+ --enable-libmpeg2 --enable-libmpeg2convert \
+ --with-libxml2-prefix=/usr \
+ --with-mjpegtools-prefix=/usr \
+ --with-imagemagick-prefix=/usr \
+ --with-libdv-includes=/usr \
+ --with-libpostproc-includes=/usr/include/libpostproc \
+ --with-ogg-prefix=/usr \
+ --with-lame-libs=/usr \
+ --with-lzo-libs=/usr/lib \
+ --with-libavcodec-prefix=/usr \
+ --with-libavcodec-includes=/usr/include \
+ --with-libavcodec-libs=/usr/lib
+
+ make
+ ##############################################################################
+ # this imports the latest subtitleripper sources and replaces the internal
+ mkdir contrib
+ mv "${srcdir}/subtitleripper" contrib/subrip
+ # removes dependency on libppm, make it dependend on netpbm just failed, argh...
+ cd contrib/subrip
+ sed -e 's|^\(.*lppm.*\)$|#\1|' \
+ -e 's|^\(.*D_HAVE_LIB_PPM.*\)$|#\1|' \
+ -e 's/DEFINES :=/DEFINES = -DHAVE_GETLINE/' \
+ -i Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ cd contrib/subrip
+ install -m 755 pgm2txt "${pkgdir}/usr/bin/"
+ install -m 755 srttool "${pkgdir}/usr/bin/"
+ install -m 755 subtitle2pgm "${pkgdir}/usr/bin/"
+ install -m 755 subtitle2vobsub "${pkgdir}/usr/bin/"
+ install -m 755 vobsub2pgm "${pkgdir}/usr/bin/"
+}
diff --git a/abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch b/abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch
new file mode 100644
index 0000000..288932a
--- /dev/null
+++ b/abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch
@@ -0,0 +1,16 @@
+http://bugs.gentoo.org/show_bug.cgi?id=294488
+
+Patch by: Salah Coronya
+
+Fix segmentation fault with jpeg-7 and above where dinfo.do_fancy_upsampling isn't set by default to FALSE anymore.
+
+--- export/export_jpg.c
++++ export/export_jpg.c
+@@ -91,6 +91,7 @@
+
+ jpeg_set_quality(&encinfo, quality, TRUE);
+ encinfo.raw_data_in = TRUE;
++ encinfo.do_fancy_downsampling = FALSE;
+ encinfo.in_color_space = JCS_YCbCr;
+
+ encinfo.comp_info[0].h_samp_factor = 2;
diff --git a/abs/not_built/core/transcode/transcode-1.1.5-mpa.patch b/abs/not_built/core/transcode/transcode-1.1.5-mpa.patch
new file mode 100644
index 0000000..e7fb0fc
--- /dev/null
+++ b/abs/not_built/core/transcode/transcode-1.1.5-mpa.patch
@@ -0,0 +1,10 @@
+--- transcode-1.1.5-old/export/aud_aux.c 2010-07-04 12:44:31.867550180 -0500
++++ transcode-1.1.5/export/aud_aux.c 2010-07-04 13:41:01.253292529 -0500
+@@ -347,6 +347,7 @@
+ //-- set parameters (bitrate, channels and sample-rate) --
+ //--------------------------------------------------------
+ memset(&mpa_ctx, 0, sizeof(mpa_ctx)); // default all
++ mpa_ctx.codec_type = CODEC_TYPE_AUDIO;
+ mpa_ctx.bit_rate = vob->mp3bitrate * 1000; // bitrate dest.
+ mpa_ctx.channels = vob->dm_chan; // channels
+ mpa_ctx.sample_rate = vob->a_rate;
diff --git a/abs/not_built/core/trapproto/PKGBUILD b/abs/not_built/core/trapproto/PKGBUILD
new file mode 100644
index 0000000..9f6830c
--- /dev/null
+++ b/abs/not_built/core/trapproto/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=trapproto
+pkgver=3.4.3
+pkgrel=2
+pkgdesc="X11 Trap extension wire protocol"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+source=(http://xorg.freedesktop.org/releases/individual/proto/${pkgname}-$pkgver.tar.bz2)
+md5sums=('3b713239e5e6b269b31cb665563358df')
+sha1sums=('b108aa39a7bfde530d5cd347fda7c58770d5b8da')
+
+build() {
+ cd ${srcdir}/${pkgname}-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+}
+package() {
+ cd ${srcdir}/${pkgname}-$pkgver
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/abs/not_built/core/ttf-bitstream-vera/PKGBUILD b/abs/not_built/core/ttf-bitstream-vera/PKGBUILD
new file mode 100644
index 0000000..4fa76b8
--- /dev/null
+++ b/abs/not_built/core/ttf-bitstream-vera/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 77738 2010-04-17 15:45:51Z thayer $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=ttf-bitstream-vera
+pkgver=1.10
+pkgrel=7
+pkgdesc="Bitstream vera fonts"
+arch=('any')
+license=('custom')
+url="http://www.gnome.org/fonts"
+depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils')
+install=vera.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/1.10/${pkgname}-${pkgver}.tar.bz2)
+md5sums=(bb22bd5b4675f5dbe17c6963d8c00ed6)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ mkdir -p ${pkgdir}/usr/share/fonts/TTF
+ install -m644 *.ttf ${pkgdir}/usr/share/fonts/TTF/
+ mkdir -p ${pkgdir}/usr/share/licenses/ttf-bitstream-vera
+ install -m644 COPYRIGHT.TXT ${pkgdir}/usr/share/licenses/ttf-bitstream-vera/LICENSE
+}
+
diff --git a/abs/not_built/core/ttf-bitstream-vera/vera.install b/abs/not_built/core/ttf-bitstream-vera/vera.install
new file mode 100644
index 0000000..4f5212e
--- /dev/null
+++ b/abs/not_built/core/ttf-bitstream-vera/vera.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/core/tweaker/PKGBUILD b/abs/not_built/core/tweaker/PKGBUILD
new file mode 100644
index 0000000..85df000
--- /dev/null
+++ b/abs/not_built/core/tweaker/PKGBUILD
@@ -0,0 +1,45 @@
+pkgname=tweaker
+pkgver=1
+pkgrel=56
+pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
+arch=('i686' 'x86_64')
+
+depends=('bash' 'perl' 'perl-dbi' 'perl-exception-class' 'perl-log-log4perl' 'perl-log-dispatch' 'perl-getopt-lucid' 'perl-list-member' 'perl-class-data-inheritable' 'perl-devel-stacktrace' 'perl-xml-twig')
+
+source=(tweaker.sh log4perl.conf)
+
+license=('GPL2')
+#groups=('pvr')
+
+
+install=tweaker.install
+build() {
+ TWEAKER_ROOT=usr/LH/tweaker
+ mkdir -p $startdir/pkg/$TWEAKER_ROOT
+ mkdir -p $startdir/pkg/$TWEAKER_ROOT/{bin,fs,tcf}
+ mkdir -p $startdir/pkg/etc/profile.d
+ mkdir -p $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/
+
+ cd $startdir
+ # executables
+ install -m0777 -D bin/* $startdir/pkg/$TWEAKER_ROOT/bin
+
+ # parallel root directory structure used for seeding configuration files
+ # Ensure shell variables are configured at start; ensure $TWEAKER_ROOT/bin is in $PATH
+ cp -rp fs $startdir/pkg/$TWEAKER_ROOT/
+ chmod -R 0777 $startdir/pkg/$TWEAKER_ROOT/
+
+ # Tweaker configuration files
+ install -m0555 -D tcf/* $startdir/pkg/$TWEAKER_ROOT/tcf
+
+ # Tweaker-centric log4perl configuration
+ #install -m0755 log4perl.conf $startdir/pkg/etc/log4perl.conf
+ install -m0755 log4perl.conf $startdir/pkg/$TWEAKER_ROOT
+
+ install -m0755 tweaker.sh $startdir/pkg/etc/profile.d/tweaker.sh
+
+ # Copy our tweaker Perl modules for general use
+ install -m0555 lib/Tweaker/* $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/
+}
+md5sums=('77fab526e866b273091e6816135ef25f'
+ 'e897b87dd308f9562d0867de9fab2de0')
diff --git a/abs/not_built/core/tweaker/bin/LocalIPCheck.pl b/abs/not_built/core/tweaker/bin/LocalIPCheck.pl
new file mode 100755
index 0000000..b744fb6
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/LocalIPCheck.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+
+# Valid private IP ranges
+
+my @LOCAL_IP_RANGES = ("10.0.0.0", "10.255.255.255",
+ "172.16.0.0", "172.31.255.255",
+ "192.168.0.0", "192.168.255.255");
+
+# input: A dotted quad IP address.
+
+# output: 0 if a public (internet) address
+# : 8 if a class A private (LAN) address
+# : 12 if a class B private (LAN) address
+# : 16 if a class C private (LAN) address
+
+sub get_IP_number () {
+ my ($dotted_quad) = @_;
+ my $IP_number=0;
+
+ split(/\./, $dotted_quad);
+
+ for (my $i=0; $i < 4; $i++) {
+ $IP_number=$IP_number+@_[3-$i]*(2**(8*$i));
+ }
+ return $IP_number;
+}
+
+while(<>) {
+ chop;
+ my $IPnumber=&get_IP_number($_);
+ my $class=16;
+
+ while (@LOCAL_IP_RANGES) {
+ my $highIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES));
+ my $lowIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES));
+
+ if (($lowIPnumber <= $IPnumber) && ($highIPnumber >= $IPnumber)) {
+ exit($class); # PRIVATE IP
+ } else {
+ $class += 4;
+ }
+ }
+}
+
+exit(0); # PUBLIC IP
+
+
diff --git a/abs/not_built/core/tweaker/bin/SQLtweaker.sh b/abs/not_built/core/tweaker/bin/SQLtweaker.sh
new file mode 100755
index 0000000..5760e5d
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/SQLtweaker.sh
@@ -0,0 +1,86 @@
+# This isn't to be run. Do not chmod it +x and try - it won't do anything.
+
+# This function will change or create entries in various tables within
+# the mythconverg database.
+# If the key value already exists in $SQL_FILENAME, then it is changed. Otherwise,
+# it will create the necessary SQL to make the entry if it does not exist.
+#
+# For the purposes of this function, a key is defined as any unique string of text
+# after which a comma and a value or values follow. E.g.:
+# in an entry like this:
+# INSERT INTO `videotypes` VALUES (6,'mpeg','',0,1);
+# we can define the key as "6" if we wanted, but that would be ambiguous. So we can instead
+# define it as "6,'mpeg'" and we gain the ability to control the values of the fields after
+# the first two. So this function call
+#
+# ChangeOrMakeEntry "6,'mpeg'" "'mplayer -fs -zoom', 0,1" "videotypes"
+#
+# would change the above SQL entry into this:
+#
+# INSERT INTO `videotypes` VALUES (6,'mpeg','mplayer -fs -zoom', 0,1);
+
+# parameters: name, value, table
+
+# Some tables have simple key, value pairs. Others have several potential keys and values.
+# The 'settings' table is a simple key, value pair table, plus the name of the system on which
+# the settings hold true, e.g.:
+# INSERT INTO `settings` VALUES ('FooHat','Peas with sauce:drizzle','MythTVhost');
+###
+function ChangeOrMakeEntry {
+ NAME=$1 ; shift
+ VALUE=$1 ; shift
+ TABLE=$1 ; shift
+
+ if [ `grep -c "$NAME" $SQL_FILENAME` == 0 ]; then
+ # There is no setting for $SETTING_NAME, so we need to make it
+ echo "INSERT INTO \`$TABLE\`" VALUES \($NAME,$VALUE\)\; >> $SQL_FILENAME
+ else
+ # There is a setting for $SETTING_NAME, so make sure it's what we want it to be.
+ sed -i "s@$NAME,.*);@$NAME,$VALUE);@" $SQL_FILENAME
+ fi
+}
+
+# shortcut function to ChangeOrMakeEntry for 'settings' table
+function ChangeOrMakeSetting {
+ NAME=$1 ; shift
+ VALUE=$1 ; shift
+
+ ChangeOrMakeEntry "$NAME" "$VALUE, 'MythTVhost'" "settings"
+}
+
+# shortcut function to ChangeOrMakeEntry for 'settings' table
+function ChangeOrMakeKeybinding {
+ NAME=$1 ; shift
+ VALUE=$1 ; shift
+
+ ChangeOrMakeEntry "$NAME" "$VALUE, 'MythTVhost'" "keybindings"
+}
+
+# This only works for North America at the moment.
+LocaleCode() { # no arguments. Obtain a zipcode or locale, either using
+ # SchedulesDirect subscription info or by asking the user.
+
+ mysqldump --tab=/tmp --opt mythconverg videosource
+ # Get the first data direct "Video Source"
+ dd_src=$(awk -F'\t' '$3 == "schedulesdirect1" {print $0; exit 0;}' </tmp/videosource.txt)
+ /bin/rm -f /tmp/videosource.txt
+ if [ -n "$dd_src" ]; then
+ # we have a chance at getting a usable locale from the schedulesdirect data
+ cd /usr/LH/
+
+ SCHEDULESDIRECT_USERNAME=$(echo "$dd_src" | cut -f4)
+ SCHEDULESDIRECT_PASSWORD=$(echo "$dd_src" | cut -f7)
+
+ sed -i "s/<userName>.*<\/userName>/<userName>$SCHEDULESDIRECT_USERNAME<\/userName>/" xtvd.xml
+ sed -i "s/<password>.*<\/password>/<password>$SCHEDULESDIRECT_PASSWORD<\/password>/" xtvd.xml
+ datadirect-parse.pl &> /dev/null
+
+ SQL_LocaleCode=`grep -i postalCode \`ls -1tr *xml | tail -1\` | perl -e '%zips=""; while(<>) { split(/postalCode=/); @_[1] =~ m/(\d{5})/; if ($1) { $zips{$1}=$1; } } @keys = keys %zips; if ($#keys == 1) { print values %zips,"\n"; }'`
+
+ if [ "$SQL_LocaleCode" == "" ]; then # zipcode was ambiguous or was not extractable
+ echo -e "\nPlease enter your US zipcode or Canadian Postal Code:"
+ read SQL_LocaleCode
+ fi
+ echo $SQL_LocaleCode > /tmp/locale.txt # remember this just long enough to make use of it in PostSQLTweaker.sh
+ fi
+}
diff --git a/abs/not_built/core/tweaker/bin/create-linhes-sql.sh b/abs/not_built/core/tweaker/bin/create-linhes-sql.sh
new file mode 100755
index 0000000..478eed0
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/create-linhes-sql.sh
@@ -0,0 +1,166 @@
+#!/bin/bash
+
+# Written by Bob Igo from the MythTV Store at http://MythiC.TV
+# Email: bob@stormlogic.com
+#
+# If you run into problems with this script, please send me email
+
+# PURPOSE:
+# --------------------------
+# This script automates the creation of a new LinHES.sql based
+# on the contents of the current mythconverg database.
+
+if [ `whoami` != "root" ]; then
+ echo "This script must be run as root."
+ exit -1
+fi
+
+# Every file we may create, edit, or delete
+###########################################
+export LINHES_SQL_PROTOTYPE=/data/database/LinHES.sql-new
+export MYTHTV_SQL_OLD=/data/database/LinHES.sql-backup
+export TMPFILE=/tmp/LinHES.sql-tmp
+
+echo ""
+echo " ** ONLY CESMAN SHOULD EVER NEED TO RUN THIS SCRIPT **"
+echo ""
+echo " WARNING: This will archive your mythconverg database to a file,"
+echo " then delete mythconverg from MySQL. It will then launch mythbackend"
+echo " to repopulate mythconverg, with a goal of creating the smallest-possible"
+echo " mythconverg database that MythTV can load without complanining."
+echo " Every attempt will be made to restore your original database, but"
+echo " ***no guarantee is made***."
+echo ""
+echo " ** ONLY CESMAN SHOULD EVER NEED TO RUN THIS SCRIPT **"
+echo ""
+
+echo -n "Proceed? [y|N] "
+read FEAR
+
+if [ "$FEAR" != "y" ] && [ "$FEAR" != "Y" ]; then
+ echo "***NO OPERATION WILL BE PERFORMED***"
+ exit
+fi
+
+# Archive the current mythconverg table from the MySQL database:
+echo "DROP DATABASE IF EXISTS mythconverg; CREATE DATABASE mythconverg; USE mythconverg;" > $MYTHTV_SQL_OLD
+mysqldump mythconverg >> $MYTHTV_SQL_OLD
+
+# delete the mythconverg database from MySQL
+killall mythbackend
+mysql -e "DROP DATABASE IF EXISTS mythconverg; CREATE DATABASE mythconverg;"
+
+mythtv-setup --geometry 640x480 2>&1 > /dev/null &
+
+echo "*"
+echo "* 1) PICK ANY LANGUAGE WHEN PROMPTED."
+echo "* 2) AGREE TO THE SCHEMA UPGRADE."
+echo "* 3) PRESS ENTER HERE WHEN THE MYTHTV-SETUP MENU LAUNCHES."
+echo "*"
+read KEYPRESS
+
+mysql -e "USE mythconverg; \
+INSERT INTO settings VALUES ('SecurityPin','0000','"`hostname`"'); \
+INSERT INTO settings VALUES ('BackendServerIP','127.0.0.1','"`hostname`"'); \
+INSERT INTO storagegroup VALUES ('\N', 'Default','"`hostname`"','/');"
+
+echo "*"
+echo "* 1) EXIT MYTHTV-SETUP"
+echo "* 2) PRESS ENTER HERE WHEN READY TO CONTINUE."
+echo "*"
+read KEYPRESS
+
+# let mythbackend repopulate mythconverg from scratch
+mythbackend 2>&1 > /dev/null &
+sleep 3
+
+mythfrontend --geometry 640x480 2>&1 > /dev/null &
+echo "*"
+echo "* 1) EXIT MYTHFRONTEND"
+echo "* 2) PRESS ENTER HERE WHEN READY TO CONTINUE."
+echo "*"
+read KEYPRESS
+
+killall mythfrontend
+killall mythbackend
+
+# save off the mostly-pristine MythTV myconverg database
+# (It would be 100% pristine, but mythbackend won't run unless BackendServerIP is given a value,
+# and both mythtv-setup and the mythfrontend won't proceed until you've picked a language.)
+
+# Edit the pristine MythTV mythconverg database so that we can use it to prime
+# the database during a semi-automated LinHES installation.
+
+SQL_FILENAME=$LINHES_SQL_PROTOTYPE
+
+# load our library functions
+. /usr/LH/tweaker/bin/SQLtweaker.sh
+#
+echo "*"
+echo "* Writing $LINHES_SQL_PROTOTYPE..."
+echo "*"
+#
+echo "/*" > $LINHES_SQL_PROTOTYPE
+echo " * MythTV raw SQL creation file." >> $LINHES_SQL_PROTOTYPE
+echo " */" >> $LINHES_SQL_PROTOTYPE
+echo "" >> $LINHES_SQL_PROTOTYPE
+echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE
+echo "-- Drop any initial database:" >> $LINHES_SQL_PROTOTYPE
+echo "DROP DATABASE IF EXISTS mythconverg;" >> $LINHES_SQL_PROTOTYPE
+echo "" >> $LINHES_SQL_PROTOTYPE
+echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE
+echo "-- Create an empty new database:" >> $LINHES_SQL_PROTOTYPE
+echo "CREATE DATABASE mythconverg;" >> $LINHES_SQL_PROTOTYPE
+echo "GRANT ALL ON mythconverg.* TO mythtv@localhost IDENTIFIED BY \"mythtv\";" >> $LINHES_SQL_PROTOTYPE
+echo "FLUSH PRIVILEGES;" >> $LINHES_SQL_PROTOTYPE
+echo "GRANT CREATE TEMPORARY TABLES ON mythconverg.* TO mythtv@localhost IDENTIFIED BY \"mythtv\";" >> $LINHES_SQL_PROTOTYPE
+echo "FLUSH PRIVILEGES;" >> $LINHES_SQL_PROTOTYPE
+echo "USE mythconverg;" >> $LINHES_SQL_PROTOTYPE
+echo "" >> $LINHES_SQL_PROTOTYPE
+echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE
+echo "-- Create all the tables:" >> $LINHES_SQL_PROTOTYPE
+echo "" >> $LINHES_SQL_PROTOTYPE
+
+# Dump the database, removing all unneeded DB inserts - when LinHES launches mythtv-setup and mythfrontend,
+# anything undefined will be given default values by the applications, except for the INSERTs below.
+mysqldump mythconverg | sed -e "s/`hostname`/MythTVhost'/g" -e "s/AUTO_INCREMENT=[0-9]* //g" > $TMPFILE
+grep -v "INSERT INTO" $TMPFILE >> $LINHES_SQL_PROTOTYPE
+sed "s/,(/,\n(/g" $TMPFILE | grep DBSchema | sed "s/\(.*\)NULL),/INSERT INTO settings VALUES \1'MythTVhost');/g" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO settings VALUES ('SecurityPin','0000','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO settings VALUES ('BackendServerIP','127.0.0.1','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO settings VALUES ('MasterServerIP','127.0.0.1','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO settings VALUES ('MasterServerPort','6543','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO settings VALUES ('Theme', 'LinHES','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO settings VALUES ('HostMyhostname', 'type_hostname_here','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
+echo "INSERT INTO storagegroup VALUES ('\N', 'Default','MythTVhost','/');" >> $LINHES_SQL_PROTOTYPE
+
+rm $TMPFILE
+
+#
+echo "*"
+echo "...DONE"
+echo "*"
+#
+
+echo "*"
+echo "* PRESS ENTER HERE WHEN READY TO RESTORE THE OLD DATABASE"
+echo "* AND RE-LAUNCH MYTHBACKEND"
+echo "*"
+read KEYPRESS
+
+#
+echo "Restoring original database from $MYTHTV_SQL_OLD..."
+#
+# Restore the original mythconverg database
+cat $MYTHTV_SQL_OLD | mysql 2>&1 > /dev/null
+#
+echo "...DONE"
+#
+
+#
+echo "restarting mythbackend..."
+#
+mythbackend &
+#
+echo "...DONE"
+#
diff --git a/abs/not_built/core/tweaker/bin/tweaker.pl b/abs/not_built/core/tweaker/bin/tweaker.pl
new file mode 100755
index 0000000..28519df
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/tweaker.pl
@@ -0,0 +1,333 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package Tweaker;
+
+use strict;
+use Getopt::Lucid qw( :all );
+# see http://search.cpan.org/~dagolden/Getopt-Lucid-0.16/lib/Getopt/Lucid.pm for usage details
+use XML::Twig;
+# see http://xmltwig.com for usage details
+use Log::Log4perl qw(get_logger);
+
+# see http://search.cpan.org/~mschilli/Log-Log4perl-1.14/lib/Log/Log4perl.pm for usage details
+# http://www.perl.com/pub/a/2002/09/11/log4perl.html is highly recommended as well
+
+use Tweaker::Script;
+use Tweaker::Definitions;
+
+# To install the above modules:
+# --
+# sudo cpan install Getopt::Lucid XML::Twig Log::Log4perl List::Member
+# choose the defaults for all options, agree to install all dependencies
+# Copy TweakerDefinitions.pm to /etc/perl
+
+use vars qw($debug);
+use vars qw($interactivity);
+use vars qw($logfile);
+use vars qw($twig);
+
+my $bottom = Tweaker::Definitions::get_global_variable_value("bottom");
+my $optional = Tweaker::Definitions::get_global_variable_value("optional");
+my $minimal = Tweaker::Definitions::get_global_variable_value("minimal");
+my $null = Tweaker::Definitions::get_global_variable_value("null");
+
+# As each tweak tag is processed, this subroutine is called. Here we will
+# see if any previous tweak tag had the same name attribute. If so, we will
+# replace the previous tweak tag with this new tweak tag's contents.
+sub uniquify_tweaks {
+ my ($twig, $this_tweak) = @_;
+ my $tweak_name = $this_tweak->att('name');
+ my $previous_tweak = $this_tweak->prev_sibling( qq{tweak[\@name="$tweak_name"]});
+ my $logger = get_logger('tweaker');
+
+ # If the tweak's name is found elsewhere, replace the first
+ # instance with the latest one, then delete the latest one.
+ if ($previous_tweak) {
+ my $log_entry;
+ # Requirement 6.3.1
+ $log_entry = sprintf("\tReplacing\n\t\t%s\n\twith\n\t\t%s\n", $previous_tweak->sprint, $this_tweak->sprint);
+ $logger->info($log_entry);
+ $this_tweak->cut;
+ $this_tweak->replace($previous_tweak);
+ }
+}
+
+$twig = XML::Twig->new(load_DTD => 1,
+ expand_external_ents => 1,
+ twig_handlers => { 'tweak' => \&uniquify_tweaks }
+ );
+
+# Requirement 4.2
+# Print advice on usage and invocation.
+sub help () {
+ my $logger = get_logger('tweaker');
+ $logger->fatal("USAGE:\n$0 --tcf file1.tcf [--tcf file2.tcf ...] [--help]");
+ exit;
+}
+
+sub print_tcf {
+ my(@tweaks) = @_;
+ my $logger = get_logger('tweaker');
+
+ $logger->debug('<?xml version="1.0"?>'); # print the XML declaration
+ $logger->debug('<!DOCTYPE stats SYSTEM "tcf.dtd">');
+ $logger->debug('<tcf>'); # then the root element start tag
+
+ foreach my $tweak (@tweaks) { # the list of tweaks
+ $logger->debug($tweak->sprint); # print the xml content of the element
+ }
+
+ $logger->debug("</tcf>\n"); # close the document
+}
+
+# For each tweak, invoke the option that was selected.
+# Requirement 9.1.5
+# Requirement 13
+sub invoke_selected_options {
+ my @tweaks= $twig->root->children; # get the tweak list
+ my $logger = get_logger('tweaker');
+ my $has_selected_option;
+ my $recommendationlevel = $bottom;
+
+ foreach my $tweak (@tweaks) { # the list of tweaks
+ if ($tweak->att('name')) {
+ $has_selected_option=0;
+ $logger->debug("TWEAK ", $tweak->att('name'));
+ my @options = $tweak->descendants('option');
+ foreach my $option (@options) {
+ if ($option->first_child('selected')) {
+ $has_selected_option++;
+ $recommendationlevel = $option->first_child('selected')->text;
+ $logger->info("\t", $tweak->att('name'), " : ", $option->att('name'), " is selected (recommendationlevel is ", $recommendationlevel, ")");
+ # If the selected option is merely $optional, and we are in $minimal interactivity mode, we
+ # really don't know if this option is useful for the user. Just skip it.
+ if (($recommendationlevel == $optional) && ($interactivity eq $minimal)) { # UI Requirement 9.1.4
+ $logger->debug("\tSKIPPING");
+ next;
+ } elsif (($tweak->first_child('script')->text) &&
+ ($tweak->first_child('script')->text) ne $null) {
+ $logger->debug("\tRUNNING");
+ my $command = sprintf("%s --implement %s", $tweak->first_child('script')->text, $option->att('name'));
+ $logger->info("\t\tRunning '$command' to run a tweak.");
+
+ open(COMMAND, "$command|");
+ while(<COMMAND>) { # should only be one line of results
+ if ($_) {
+ $logger->debug("script returned text: ", $_);
+ } else {
+ $logger->debug("no return value from script");
+ }
+ }
+ close(COMMAND);
+ } else {
+ $logger->debug("\tNO SCRIPT TO RUN");
+ }
+ }
+ }
+ if ($has_selected_option == 0) {
+ $logger->debug("\tNO OPTION SELECTED");
+ }
+ }
+ }
+}
+
+
+# Parses an XML file in TCF format, loading its information into memory.
+# Rely on the DTD to mandate required tags.
+sub parse_tcf {
+ my $this_tcf = shift(@_);
+ my $logger = get_logger('tweaker');
+
+ $logger->info("Parsing $this_tcf...");
+ $twig->safe_parsefile($this_tcf) || $logger->fatal("Bad TCF $this_tcf: $@");
+ if ($@) {
+ return 0;
+ }
+ # ??? For Requirement 5.1, we need to catch parse errors here
+ # $twig now has the parsed $this_tcf
+ $logger->info("DONE parsing $this_tcf");
+
+ my $root= $twig->root; # get the root of the twig (tcf)
+ my @tweaks= $root->children; # get the tweak list
+
+ print_tcf(@tweaks) if $debug;
+
+ return 1; # successfully parsed $this_tcf
+}
+
+sub parse_core_tcf {
+ my ($core_tcf_pathname) = @_;
+ my $logger = get_logger('tweaker');
+
+ $logger->debug("core TCF pathname: $core_tcf_pathname");
+
+ # Requirement 5.1
+ if (!(parse_tcf($core_tcf_pathname))) {
+ # Part of Requirement 6.4.1
+ $logger->fatal("$0 requires at least one valid .tcf file.");
+ $logger->fatal("$core_tcf_pathname, or a .tcf that it includes, did not parse.");
+ exit;
+ }
+ # $twig->root->print;
+}
+
+sub process_parameters () {
+ # Accept these parameters:
+ # --
+ my @parameters = (
+ Switch("help")->anycase, # Requirement 4.2
+ Switch("debug")->anycase,
+ # part of Requirement 8
+ Param("interactivity")->default($minimal), # side-effect of UI Requirement 9 for v0.7
+ );
+
+ my $opt = Getopt::Lucid->getopt( \@parameters );
+ my $help = $opt->get_help;
+ $debug = $opt->get_debug;
+ $interactivity = $opt->get_interactivity;
+
+ if ($interactivity ne $minimal) { # side-effect of UI Requirement 9 for v0.7
+ my $logger = get_logger('tweaker');
+ $logger->warn("This version of Tweaker ignores requests for $interactivity interactivity and defaults to $minimal.");
+ $interactivity = $minimal;
+ }
+
+ if ( $help > 0 ) {
+ help;
+ }
+}
+
+# Requirement 6.6: Tweaker shall determine Recommendation Levels and default Options
+# Requirements 6.6.1 and 6.6.2
+sub post_process_tweaks {
+ my $logger = get_logger('tweaker');
+
+ # Requirement 6.6.1
+
+ my $root= $twig->root; # get the root of the twig (tcf)
+ my @tweaks= $root->children; # get the tweak list
+
+ foreach my $tweak (@tweaks) {
+ $logger->debug("#######");
+ my @options = $tweak->descendants('option');
+
+ my $name_of_most_recommended_option="";
+ my $most_recommended_option;
+ my $highest_recommendationlevel=$bottom;
+
+ foreach my $option (@options) {
+ $logger->debug("===== OPTION");
+ $logger->debug($option->sprint);
+
+ my $recommendationlevel = $option->first_child('recommendationlevel');
+ if ($recommendationlevel) {
+ # Requirement 6.6.1.1
+ $logger->debug("\t+++");
+ $logger->debug("\tUsing predefined recommendation level:", $recommendationlevel->text);
+ } else {
+ # Requirement 6.6.1.4
+ my $result="optional";
+ my $explanation="";
+
+ if (($tweak->first_child('script')->text) &&
+ ($tweak->first_child('script')->text) ne $null) {
+ # Requirement 6.6.1.2
+ $logger->debug("\t---");
+ $logger->debug("\tThis has no defined recommendation level.");
+
+ # Get the name of the script for this tweak and invoke it with the name of the option.
+ my $command = sprintf("%s --poll %s", $tweak->first_child('script')->text, $option->att('name'));
+ $logger->debug("\t\tRunning '$command' to see what it should be.");
+ # Create a recommendationlevel element and populate it with the script's return value.
+
+ open(COMMAND, "$command|");
+ while(<COMMAND>) { # should only be one line of results
+ $logger->debug("Got this: ", $_);
+ if ($_) {
+ chop;
+ my @text = split(/\|/);
+ $result = $text[0];
+ if ($text[1]) {
+ $explanation = $text[1];
+ }
+ }
+ }
+ close(COMMAND);
+ }
+ # Requirement 6.6.1.3
+ $option->set_field ( 'recommendationlevel', $result );
+ if ($explanation) {
+ $option->set_field ( 'explanation', $explanation );
+ }
+ #$logger->debug("*** Paste results: ", $option->sprint);
+ }
+ # Requirement 6.6.2 : Auto-select the Option with the highest non-negative Recommendation Level.
+ # Requirement 6.6.2.1 : If there is a tie, Tweaker shall auto-select the first Option with the highest Recommendation Level.
+ $recommendationlevel = $option->first_child('recommendationlevel');
+ if ($recommendationlevel) {
+ if ($name_of_most_recommended_option) {
+ $logger->debug("comparing ", $name_of_most_recommended_option, "'s recommendationlevel ($highest_recommendationlevel) to ", $recommendationlevel->text, " (",Tweaker::Definitions::get_global_variable_value($recommendationlevel->text),")");
+ } else {
+ $logger->debug("considering recommendationlevel ", $recommendationlevel->text, " (",Tweaker::Definitions::get_global_variable_value($recommendationlevel->text),")");
+ }
+ if (($highest_recommendationlevel < Tweaker::Definitions::get_global_variable_value($recommendationlevel->text))
+ && (Tweaker::Definitions::get_global_variable_value($recommendationlevel->text) >= 0)) {
+ $highest_recommendationlevel = Tweaker::Definitions::get_global_variable_value($recommendationlevel->text);
+ $name_of_most_recommended_option = $option->att('name');
+ $most_recommended_option = $option;
+ $logger->debug("now recommending: ", $name_of_most_recommended_option, " at level ", $highest_recommendationlevel);
+ }
+ } else {
+ $logger->error("No recommendationlevel defined for ", $option->att('name'));
+ }
+ # Select the best option, based on recommendation level
+ }
+ if ($most_recommended_option) {
+ $logger->debug("(1) BEST OPTION: ", $most_recommended_option->sprint);
+ $most_recommended_option->set_field ( 'selected', $highest_recommendationlevel );
+ }
+ }
+}
+
+sub main () {
+ my $tweaker_root;
+
+ if (!($tweaker_root = Tweaker::Script::get_environment_variable("\$TWEAKER_ROOT"))) {
+ Log::Log4perl->easy_init();
+ my $logger = get_logger();
+ $logger->fatal("\$TWEAKER_ROOT not defined. Exiting.");
+ exit -1;
+ }
+ my $core_tcf_path = "$tweaker_root/tcf";
+ my $core_tcf = "tweaker-core.tcf";
+ my $core_tcf_pathname = "$core_tcf_path/$core_tcf";
+ my $log4perl_conf = "$tweaker_root/log4perl.conf";
+
+ Log::Log4perl::init_and_watch($log4perl_conf,10);
+
+ process_parameters;
+ parse_core_tcf($core_tcf_pathname);
+ post_process_tweaks;
+ # ??? need to add Requirement 11 here
+ invoke_selected_options;
+}
+
+main;
+
+#my @tweaks= $twig->root->children; # get the tweak list
+#print_tcf(@tweaks) if $debug;
diff --git a/abs/not_built/core/tweaker/bin/twk_EXAMPLE.pl b/abs/not_built/core/tweaker/bin/twk_EXAMPLE.pl
new file mode 100755
index 0000000..7dfb075
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_EXAMPLE.pl
@@ -0,0 +1,134 @@
+# This is not an executable. It provides an example of how you would implement a
+# Tweaker Script. For details on the functions provided by Tweaker::Script,
+# such as execute_shell_command, get_environment_variable, connect_to_db, etc.
+# see Tweaker/Script.pm
+#
+# See the corresponding EXAMPLE.tcf for the Tweak that would correspond to this script.
+
+#
+# BEGIN EXAMPLE
+#
+
+#!/usr/bin/perl -w
+
+# Copyright 2009 YOUR NAME HERE
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+# List all the options that this script supports. Make sure it matches what's in
+# the corresponding .tcf entry.
+set_known_options( 'option1', 'option2', 'option3' );
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ # If you need a subroutine that is specific to the task of implementing an option,
+ # define it inside the above subroutine.
+ sub my_subroutune {
+ # ...
+ }
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ switch ($option) {
+ # List all the options that this script supports. You can have as many as you like.
+ case "option1" {
+ # Perform the actions necessary to implement option1.
+ # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database.
+ # You may want to call execute_shell_command to make changes from the shell.
+ }
+ case "option2" {
+ # Perform the actions necessary to implement option2.
+ # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database.
+ # You may want to call execute_shell_command to make changes from the shell.
+ }
+ case "option3" {
+ # Perform the actions necessary to implement option3.
+ # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database.
+ # You may want to call execute_shell_command to make changes from the shell.
+ }
+ }
+ } else { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: Unable to connect to mythconverg database");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit -1; # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ } # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ disconnect_from_db(); # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+}
+
+# Poll the system to see what recommendationlevel the given option has on the system.
+sub poll_options {
+ my($option) = @_;
+
+ # If you need a subroutine that is specific to the task of implementing an option,
+ # define it inside the above subroutine.
+ sub my_subroutune {
+ # ...
+ }
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ switch ($option) {
+ # List all the options that this script supports. You can have as many as you like.
+ case "option1" {
+ # Perform the actions necessary to determine a recommendation level for option1.
+ # You may want to call do_query to query to the MySQL database.
+ # You may want to call execute_shell_command to check things in the shell.
+ # When you're done, you can use the recommendation_level subroutine to return the
+ # resulting recommendation level.
+ }
+ case "option2" {
+ # Perform the actions necessary to determine a recommendation level for option2.
+ # You may want to call do_query to query to the MySQL database.
+ # You may want to call execute_shell_command to check things in the shell.
+ # When you're done, you can use the recommendation_level subroutine to return the
+ # resulting recommendation level.
+ }
+ case "option3" {
+ # Perform the actions necessary to determine a recommendation level for option3.
+ # You may want to call do_query to query to the MySQL database.
+ # You may want to call execute_shell_command to check things in the shell.
+ # When you're done, you can use the recommendation_level subroutine to return the
+ # resulting recommendation level.
+ }
+ }
+ } else { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ exit -1; # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ } # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+ disconnect_from_db(); # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters; # mandatory
+
+#
+# END EXAMPLE
+#
diff --git a/abs/not_built/core/tweaker/bin/twk_RAM.pl b/abs/not_built/core/tweaker/bin/twk_RAM.pl
new file mode 100755
index 0000000..2eea598
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_RAM.pl
@@ -0,0 +1,81 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'low', 'medium', 'high' );
+
+# ??? Need to make this update a class variable so it only ever needs to run once.
+sub determine_RAM_size() {
+ my $result = execute_shell_command("cat /proc/meminfo | grep MemTotal");
+ if ($result =~ m/.*MemTotal:\s*(\d+) .*/) {
+ return $1;
+ }
+ return 0;
+}
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ # MythTV's GUI allows setting this value in multiples of 4700kB.
+ # We will arbitrarily set the HDRingbufferSize to the value that is closest to
+ # 3.3% of the total RAM.
+ my $RAM_size = determine_RAM_size();
+ my $ringbuffer_size = int($RAM_size * 0.033 / 4700) * 4700;
+ change_or_make_setting('HDRingbufferSize', $ringbuffer_size) || exit -1;
+
+ # change any existing mplayer cache setting to one based on available RAM size
+ # We will arbitrarily set the cache size to 1/16 of available RAM
+ my $cachesize = int($RAM_size / 16);
+ execute_shell_command("if [[ `grep -e cache.*=.*\$ /etc/mplayer/mplayer.conf` ]]; then sed -i 's/cache.*=.*/cache=$cachesize/g' /etc/mplayer/mplayer.conf; else echo 'cache=$cachesize' >> /etc/mplayer/mplayer.conf; fi") || exit -1;
+
+ # If there's enough RAM, make mtd run by default.
+ # ??? unimplemented
+ } else {
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+# Poll the system to see what recommendationlevel the given option has on the system.
+sub poll_options {
+ my($option) = @_;
+ my $fudge_factor = .985;
+ my $low_RAM = int($fudge_factor * 512*1024); # ~512MB
+ my $medium_RAM = int($fudge_factor * 1024*1024); # ~1GB
+ my $high_RAM = int($fudge_factor * 2048*1024); # ~2GB
+
+ threshold_test($option, determine_RAM_size(), "RAM", $low_RAM, $medium_RAM, $high_RAM);
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_audio.pl b/abs/not_built/core/tweaker/bin/twk_audio.pl
new file mode 100755
index 0000000..47a2415
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_audio.pl
@@ -0,0 +1,390 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'analogstereo', 'analogsurround', 'digital' );
+
+# Poll the system to find the digital output device.
+sub poll_for_digital_output_device {
+ my $card=-1;
+ my $device=-1;
+ my $poll_command = "aplay -l | grep card";
+
+ my @digital_matches = ( "digital", "IEC958" );
+
+ my $results = execute_shell_command($poll_command);
+ if ($results) {
+ foreach my $digital_match (@digital_matches) {
+ if ($results =~ /card (\d):.*device (\d).*$digital_match.*/i) {
+ $card = $1;
+ $device = $2;
+ }
+ }
+ } else {
+ recommendation_level("not available", "No audio devices detected.");
+ exit(-1);
+ }
+ return ($card, $device);
+}
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+ use vars qw($card);
+ use vars qw($device);
+ ($card, $device) = poll_for_digital_output_device;
+ use vars qw($asound_conf);
+ $asound_conf = "/etc/asound.conf";
+ use vars qw($mplayer_conf);
+ $mplayer_conf = "/etc/mplayer/mplayer.conf";
+ use vars qw($xine_conf);
+ $xine_conf = "/home/mythtv/.xine/config";
+
+ sub generate_asound_conf {
+ my($option) = @_;
+ my $command1;
+ my $command2;
+
+ switch ($option) {
+ case "analogstereo" {
+ # Analog stereo usually needs no asound.conf, but sometimes it needs to be there to
+ # support more than one app using sound simultaneously.
+ $command1 = "[ -e $asound_conf ] && /bin/cp $asound_conf $asound_conf-TWEAKERBACKUP";
+ # Assumption: The proper analog device is always device 0.
+ if ($card >= 0) {
+ $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:$card,0/g' $asound_conf";
+ } else {
+ $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:0,0/g' $asound_conf";
+ }
+ }
+ case "analogsurround" {
+ # Not supported yet.
+ }
+ case "digital" {
+ # Digital audio starts with an asound.conf that references the
+ # hardware address on the sound device corresponding to digital
+ # output.
+ $command1 = "/bin/cp \$TWEAKER_ROOT/fs$asound_conf /etc/";
+ if (($card >= 0) && ($device >= 0)) {
+ $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:$card,$device/g' $asound_conf";
+ } else {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: Unable to poll for digital sound output device.");
+ exit(-1);
+ }
+ }
+ }
+ if (my $error = execute_shell_command($command1)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+ if (my $error = execute_shell_command($command2)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+ my $logger = get_logger('tweaker.script');
+ $logger->info("Generated $asound_conf for $option audio.");
+ }
+
+ sub edit_mplayer_conf {
+ my($option) = @_;
+ # delete any old entries that Tweaker made, relevant to this particular edit
+ my $delete_old_tweaker_edits = "[ -e $mplayer_conf ] && sed -i '/^.*a[o,c,f].*=.*#TWEAKER/d' $mplayer_conf && sed -i '/^speed.*=.*#TWEAKER/d' $mplayer_conf";
+ # comment out old entries that some other process may have made
+ my $comment_out_external_edits = "[ -e $mplayer_conf ] && sed -i 's/^\\(a[o,c,f].*=.*\\)/#\\1/g' $mplayer_conf && sed -i 's/^\\(speed.*=.*\\)/#\\1/g' $mplayer_conf";
+ my $command1;
+ my $command2="";
+ ($card, $device) = poll_for_digital_output_device;
+ my $logger = get_logger('tweaker.script');
+
+ if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ switch($option) {
+ case "analogstereo" {
+ # No additional work needed; the above commands comment out ao and ac entries,
+ # leaving a baseline which works with analog stereo.
+ }
+ case "analogsurround" {
+ # Not supported yet.
+ }
+ case "digital" {
+ $command2 = "echo -e 'ac=hwac3,hwdts, #TWEAKER\nao=alsa:device=plughw=$card.$device #TWEAKER' >> $mplayer_conf";
+ if (my $error = execute_shell_command($command2)) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ my @digital_audio_device_patterns = (
+ [
+ # Asus T3-M2NC51PV onboard audio
+ ".*0403.*10de.*026c.*1043.*821f", "T3-M2NC51PV", "[ -e $mplayer_conf ] && sed -i 's/plughw.* #TWEAKER/spdif #TWEAKER/g' $mplayer_conf"
+ ]
+ );
+
+ foreach my $pattern_and_workaround_command (@digital_audio_device_patterns) {
+ my $pattern=@$pattern_and_workaround_command[0];
+ my $name=@$pattern_and_workaround_command[1];
+ my $workaround_command=@$pattern_and_workaround_command[2];
+
+ if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) {
+ $logger->info("Applying workaround for $name audio");
+ execute_shell_command($workaround_command);
+ last;
+ }
+ }
+ }
+ }
+ # for all options
+ $command2 = "echo -e 'af=scaletempo=stride=30:overlap=.50:search=10 #TWEAKER\nspeed=1.0 #TWEAKER' >> $mplayer_conf";
+ if (my $error = execute_shell_command($command2)) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ $logger->info("Edited $mplayer_conf for $option audio.");
+ }
+
+ sub edit_xine_conf {
+ my($option)=@_;
+ # delete any old entries that Tweaker made, relevant to this particular edit
+ my $delete_old_tweaker_edits = "[ -e $xine_conf ] && sed -i -e '/^.*audio.output.speaker_arrangement.*#TWEAKER/d' -e '/^.*audio.synchronization.passthrough_offset.*#TWEAKER/d' $xine_conf";
+ # comment out entries that some other process may have made
+ my $comment_out_external_edits = "[ -e $xine_conf ] && sed -i -e 's/^\\(audio.output.speaker_arrangement.*\\)/#\\1/g' -e 's/^\\(audio.synchronization.passthrough_offset.*\\)/#\\1/g' $xine_conf";
+ my $logger = get_logger('tweaker.script');
+
+ if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ my $command1;
+
+ switch($option) {
+ case "analogstereo" {
+ $command1 = "echo 'audio.output.speaker_arrangement:Stereo 2.0 #TWEAKER' >> $xine_conf";
+ }
+ case "analogsurround" {
+ # Not supported yet.
+ }
+ case "digital" {
+ $command1 = "echo -e 'audio.output.speaker_arrangement:Pass Through #TWEAKER\naudio.synchronization.passthrough_offset:$device #TWEAKER' >> $xine_conf";
+ }
+ }
+ if (my $error = execute_shell_command($command1)) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+ $logger->info("Edited $xine_conf for $option audio.");
+ }
+
+ sub reload_modules {
+ my($option) = @_;
+ my $command = "update-modules; depmod -a; rmmod snd-pcm-oss; modprobe snd-pcm-oss";
+ my $logger = get_logger('tweaker.script');
+
+ if (my $error = execute_shell_command($command)) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+ $logger->info("Reloaded sound modules for $option audio.");
+ }
+
+ sub set_mixer_values {
+ my($option) = @_;
+ my $logger = get_logger('tweaker.script');
+
+ # Some sound devices work poorly in their default state, so we will load in a known-good
+ # state for them.
+
+ my @digital_audio_device_patterns = (
+ [
+ # Chaintech AV-710
+ ".*0401.*1412.*1724.*1412.*1724", "AV710"
+ ],
+ [
+ # Realtek ALC888 High Definition onboard Audio
+ ".*0403.*10de.*055c.*1565.*820c", "ALC888"
+ ]
+ );
+
+ foreach my $pattern_and_name_pairing (@digital_audio_device_patterns) {
+ my $name=@$pattern_and_name_pairing[1];
+ my $pattern=@$pattern_and_name_pairing[0];
+
+ if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) {
+ $logger->info("Applying ALSA state workaround for $name audio");
+ execute_shell_command("/bin/cp \$TWEAKER_ROOT/fs/var/lib/alsa/$name.asound.state /var/lib/alsa/asound.state");
+ execute_shell_command("alsactl restore");
+ last;
+ }
+ }
+
+ # Now, do what works for all sound devices.
+
+ my $command = "su - mythtv -c \"aumix -v 70 -m 0 -l 0 -l R -w 70\""; # ok for analog and digital
+
+ if (my $error = execute_shell_command($command)) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ if ("$option" eq "digital") {
+ # Poll system for IEC958 controls, and try to turn them all 'on'
+ $command = "amixer scontrols | grep IEC958";
+ my @results = split('\n', execute_shell_command($command));
+ foreach my $line (@results) {
+ if ($line =~ /Simple mixer control (.*),.*/i) {
+ $command = "su - mythtv -c \"amixer set $1 on\""; # Tries to set all IEC958 devices to 'on'
+ # but some are just placeholders and can't be turned 'on', therefore don't error out if we fail
+ execute_shell_command($command);
+ }
+ }
+ }
+ execute_shell_command("alsactl store"); # persist the above change(s)
+ $logger->info("Reset mixer volume levels for $option audio.");
+ }
+
+ sub edit_mythtv_configuration {
+ my($option)=@_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ switch ($option) {
+ case "analogstereo" {
+ change_or_make_setting('AC3PassThru', '0') || exit -1;
+ change_or_make_setting('DTSPassThru', '0') || exit -1;
+ change_or_make_setting('MTDac3Flag', '0') || exit -1;
+ change_or_make_setting('MythControlsVolume', '1') || exit -1;
+ }
+ case "analogsurround" {
+ # Not supported yet.
+ }
+ case "digital" {
+ change_or_make_setting('AC3PassThru', '1') || exit -1;
+ change_or_make_setting('DTSPassThru', '1') || exit -1;
+ change_or_make_setting('MTDac3Flag', '1') || exit -1;
+ change_or_make_setting('MythControlsVolume', '0') || exit -1;
+ }
+ }
+ change_or_make_setting('AudioOutputDevice', 'ALSA:default') || exit -1;
+ change_or_make_setting('MixerDevice', 'ALSA:default') || exit -1;
+ change_or_make_setting('MusicAudioDevice', 'default') || exit -1;
+ } else {
+ exit -1;
+ }
+ disconnect_from_db();
+ }
+
+ generate_asound_conf($option);
+ edit_mplayer_conf($option);
+ #edit_xine_conf($option);
+ #reload_modules($option);
+ edit_mythtv_configuration($option);
+ set_mixer_values($option);
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+ my @digital_audio_device_patterns = (
+ [
+ # Pattern matches for PCI IDs of perfect devices, comma-separated within the brackets
+ [ ".*0403.*8086.*284b.*8086.*2504", # Intel DG965WH onboard audio
+ ".*0403.*10de.*026c.*1043.*821f", # Asus T3-M2NC51PV onboard audio
+ ".*0403.*8086.*293e.*8086.*3001" # Intel AusDragon onboard audio
+ ],
+ "optional|Your sound device works very well in digital mode. Unless you don't have a receiver that can accept digital inputs, you should use digital mode.",
+ ],
+ [
+ # Pattern matches for PCI IDs of suboptimal devices, comma-separated within the brackets
+ [ ".*0401.*1412.*1724.*1412.*1724", # Chaintech AV-710 PCI card (regressions in R5.5)
+ ],
+ "inadvisable|Your sound device is known to have some problems in digital mode, but you may try it if you like, starting at low volume in your receiver.",
+ ],
+ [
+ [ ], # Leave blank for unknown devices
+ "optional|Your sound device may or may not work well in digital mode. Please tell us if it works, and how well.",
+ ]
+ );
+
+ switch ($option) {
+ case "analogstereo" {
+ my ($card, $device) = poll_for_digital_output_device;
+ if (($card >= 0) && ($device >= 0)) { # A digital output device was detected.
+ recommendation_level("optional");
+ } else {
+ recommendation_level("recommended", "You seem to have no digital output option. If this is not true, please tell us.");
+ }
+ }
+ case "analogsurround" {
+ my ($card, $device) = poll_for_digital_output_device;
+ recommendation_level("unsupported", "No configuration data exists yet for this option.");
+ }
+ case "digital" {
+ my ($card, $device) = poll_for_digital_output_device;
+ if (($card >= 0) && ($device >= 0)) { # A digital output device was detected.
+ my $recommendation_return_string;
+ foreach my $pattern_and_recommendation_pairing (@digital_audio_device_patterns) {
+ $recommendation_return_string=@$pattern_and_recommendation_pairing[1];
+ foreach my $patterns (@$pattern_and_recommendation_pairing[0]) {
+ foreach my $pattern (@$patterns) {
+ if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) {
+ recommendation_level($recommendation_return_string);
+ return;
+ }
+ }
+ }
+ }
+ # Because we didn't return a recommendation level above, return a default recommendation level.
+ recommendation_level($recommendation_return_string);
+ return;
+ } else { # No digital output device was detected.
+ recommendation_level("not available");
+ }
+ }
+ }
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_cpu.pl b/abs/not_built/core/tweaker/bin/twk_cpu.pl
new file mode 100755
index 0000000..8d5e563
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_cpu.pl
@@ -0,0 +1,163 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'low', 'medium', 'high' );
+
+# These values are in BOGOMIPS. They are arbitrary and will be refined, if possible,
+# as more data is collected. Obviously, BOGOMIPS are not the best CPU benchmarking
+# tool.
+my $rrd_threshold = 1650; # bogomips at or below this mean rrdtool is too much of a strain
+#my $rrd_threshold = 3365;
+
+my $low_threshold = 2500;
+my $medium_threshold = 4050;
+my $high_threshold = 7400;
+
+# Poll the system to find the CPU type. Currently, we use bogomips (the bogosity of which
+# is in the name itself) to guess how powerful the CPU is.
+sub get_CPU_strength {
+ my $bogomips=0;
+ my @results = split("\n", execute_shell_command("cat /proc/cpuinfo | grep bogomips"));
+ foreach my $result (@results) { # Count the bogomips for each core. Again, this is rough.
+ if ($result =~ /bogomips\s*:\s*(\d+.\d+)/) {
+ $bogomips+=$1;
+ }
+ }
+ return $bogomips;
+}
+
+# ??? Need to test for storage groups and LVM
+# Specific to KnoppMyth
+sub get_HDD_size {
+ my @HDD_info = split(" +", execute_shell_command("df -h /myth | grep myth"));
+
+ chop($HDD_info[1]);
+ return($HDD_info[1] || 0);
+}
+
+#sub disable_rrdtool {
+#
+#}
+
+# Edit mplayer.conf to tell mplayer to drop video frames when necessary. This should do no harm
+# on systems that don't need the option, and it should make video watchable on those that do.
+sub edit_mplayer_conf {
+ use vars qw($mplayer_conf);
+ $mplayer_conf = "/etc/mplayer/mplayer.conf";
+
+ # delete any old entries that Tweaker made, relevant to this particular edit
+ my $delete_old_tweaker_edits = "[ -e $mplayer_conf ] && sed -i '/^.*hardframedrop.*=.*#TWEAKER/d' $mplayer_conf";
+ # comment out old entries that some other process may have made
+ my $comment_out_external_edits = "[ -e $mplayer_conf ] && sed -i 's/^\\(hardframedrop.*=.*\\)/#\\1/g' $mplayer_conf";
+ my $command1;
+ my $command2="";
+ my $logger = get_logger('tweaker.script');
+
+ if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ $command2 = "echo -e 'hardframedrop=true #TWEAKER' >> $mplayer_conf";
+ if (my $error = execute_shell_command($command2)) {
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+
+ $logger->info("Edited $mplayer_conf to drop video frames when CPU is overloaded.");
+}
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ # ??? This will need some work to properly integrate with MythTV 0.21's own CPU-based playback settings.
+ # For now, set profile to CPU++ no matter what CPU type, and just change what CPU++ provides.
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ switch ($option) {
+ case "low" {
+ change_or_make_setting('AutoCommflagWhileRecording', '0') || exit -1;
+ change_or_make_setting('Theme', 'Iulius') || exit -1; # Low eye candy, high performance
+ #change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality
+ #change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality
+ change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU--') || exit -1; # best playback defaults for weak hardware
+ # Should libmpeg2/ffmpeg be triggered based on CPU type? libmpeg2 is usually
+ # recommended for AMD CPUs.
+ # ??? when to use xvmc?
+
+ # Weak CPUs may actually be too weak to run rrdtool without causing problems.
+# if (get_CPU_strength() <= $rrd_threshold) {
+# disable_rrdtool();
+# }
+ }
+ case "medium" {
+ change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1;
+ change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance
+ #change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality
+ #change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality
+ change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU+') || exit -1; # best playback defaults for average hardware
+ # ??? when to use xvmc?
+ }
+ case "high" {
+ change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1;
+ # ??? Interacts with screen aspect ratio
+ change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance
+ #change_or_make_entry("displayprofiles", [["pref_decoder", "ffmpeg"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality
+ #change_or_make_setting('PreferredMPEG2Decoder', 'ffmpeg') || exit -1; # Most CPU usage, best quality
+ change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware
+ # ??? when to use xvmc?
+ }
+ }
+ change_or_make_setting('UseXvMcVld', '0') || exit -1;
+ #change_or_make_entry("displayprofiles", [["pref_deint0", "onefield"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality
+ change_or_make_setting('OSDTheme', 'blootube-osd') || exit -1;
+ change_or_make_setting('PlayBoxShading', '0') || exit -1;
+ change_or_make_setting('PlaybackExitPrompt', '2') || exit -1;
+ #edit_mplayer_conf(); # This was found to cause temporary picture freezing when skipping forward through playback, followed by out-of-sync audio and video
+ } else {
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+
+ threshold_test($option, get_CPU_strength(), "CPU", $low_threshold, $medium_threshold, $high_threshold);
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_dragon.pl b/abs/not_built/core/tweaker/bin/twk_dragon.pl
new file mode 100755
index 0000000..21a9dc7
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_dragon.pl
@@ -0,0 +1,65 @@
+#!/usr/bin/perl -w
+
+# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+# List all the options that this script supports. Make sure it matches what's in
+# the corresponding .tcf entry.
+set_known_options( 'all' );
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+ my $logger = get_logger('tweaker.script');
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ # Overrides SQL changes made in twk_tuners.pl
+ # WARNING: Very big harccoded hack that chooses ATSC tuning over QAM.
+ do_query("UPDATE cardinput SET sourceid='10' WHERE sourceid='20'") || return -1;
+
+ # Use the most beautiful theme
+ change_or_make_setting('Theme', 'blootube-wide') || exit -1;
+ } else {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: Unable to connect to mythconverg database");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+# Poll the system to see what recommendationlevel the given option has on the system.
+sub poll_options {
+ my($option) = @_;
+ recommendation_level("recommended", "These tweaks benefit all Dragon users.");
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh b/abs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh
new file mode 100755
index 0000000..25111dd
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+
+# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This script will grab USB and PCI data and dump it to a file for the
+# user to post.
+
+output_file=/tmp/fingerprint.txt
+maintainer="Human"
+thread=""
+
+Usage() {
+ echo "USAGE:"
+ echo `basename $0` " [-a]"
+ echo "-a: advanced mode"
+ echo
+ echo "EXAMPLE: $0"
+ exit 3
+}
+
+while getopts "a" FLAG ; do
+ case "$FLAG" in
+ a) ADVANCED_MODE=1;;
+ *) Usage;;
+ esac
+done
+
+check_for_root() {
+ if [ `whoami` != "root" ]; then
+ echo -n `basename $0`
+ echo " must be run as root. Exiting.";
+ exit;
+ fi
+}
+
+poll_PCI() {
+ echo \
+"#####
+# lspci -vv
+#####" >> $output_file
+ lspci -vv >> $output_file
+ echo "" >> $output_file
+
+ echo \
+"#####
+# lspci -mn
+#####" >> $output_file
+ lspci -mn >> $output_file
+ echo "" >> $output_file
+}
+
+poll_USB() {
+ echo \
+"#####
+# /proc/bus/usb/devices
+#####" >> $output_file
+cat /proc/bus/usb/devices >> $output_file
+}
+
+instruct() {
+ echo "Your hardware fingerprint is in $output_file"
+ echo -n "Please PM it to $maintainer"
+ if [ "$thread" != "" ]; then
+ echo " or post it to"
+ echo -n "$thread"
+ fi
+ echo "."
+ echo "It should be accompanied by a list of changes that you made to the baseline
+installation in order to improve MythTV on your hardware."
+
+ echo "If you feel up to the task, feel free to prune out any entries that are for
+very low-level devices like memory controllers, USB subsystems, etc. before
+sending the fingerprint."
+}
+
+main() {
+ check_for_root
+ > $output_file
+ poll_PCI
+ poll_USB
+ instruct
+}
+
+main
+
diff --git a/abs/not_built/core/tweaker/bin/twk_general.pl b/abs/not_built/core/tweaker/bin/twk_general.pl
new file mode 100755
index 0000000..f89912c
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_general.pl
@@ -0,0 +1,590 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'all' );
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ # KnoppMyth-centric file-level tweaks
+ sub file_tweaks {
+ my($option) = @_;
+
+ my @commands = (
+ # keymap tweaks
+ "twk_keymap.sh"
+ );
+
+ foreach my $command (@commands) {
+ if (my $error = execute_shell_command($command)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("$error");
+ $logger->error("Unable to implement option $option with command $command.");
+ }
+ }
+ return 1;
+ }
+
+ # Enhance the default MythTV SQL
+ sub SQL_tweaks {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ # ??? This also exists in mkmythdir - it should be centralized
+ my $SQL_DirData="/myth"; # Top level dir. of structure,
+ my $SQL_DirTV="$SQL_DirData/tv"; # TV Recordings,
+ my $SQL_DirMusic="$SQL_DirData/music/"; # Music storage,
+ my $SQL_DirGames="$SQL_DirData/games"; # Games dir,
+ my $SQL_DirPics="$SQL_DirData/gallery"; # Pictures directory.
+ my $SQL_DirTmp="$SQL_DirData/tmp"; # DVD temp
+ my $SQL_DirVideo="$SQL_DirData/video"; # videos
+
+ # ??? Eventually, put these into a text file so that 1) people can contribute without having to code, and 2) the data
+ # stays separate from the code and can be re-used by other (non-Perl) implementations
+
+ #
+ # keybindings
+ #
+ change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "Gallery"], ["action","PLAY"]]);
+ change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Music"], ["action","FFWD"]]);
+ change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Music"], ["action","RWND"]]);
+ change_or_make_entry("keybindings", [["keylist", "PgDown,.,Z,End"]], [["context", "Music"], ["action","NEXTTTRACK"]]);
+ change_or_make_entry("keybindings", [["keylist", "PgUp,Q,Home"]], [["context", "Music"], ["action","PREVTRACK"]]);
+ change_or_make_entry("keybindings", [["keylist", "P,l"]], [["context", "Music"], ["action","PAUSE"]]);
+
+ change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Stream"], ["action","FORWARD"]]);
+ change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Stream"], ["action","REWIND"]]);
+ change_or_make_entry("keybindings", [["keylist", "F"]], [["context", "Stream"], ["action","FULLSCREEN"]]);
+ change_or_make_entry("keybindings", [["keylist", "|,\\,F9,Volume Mute"]], [["context", "Stream"], ["action","MUTE"]]);
+ change_or_make_entry("keybindings", [["keylist", "Y"]], [["context", "Stream"], ["action","STOREMARKED"]]);
+
+ change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Frontend"], ["action","PLAYBACK"]]);
+
+ change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Playback"], ["action","PLAY"]]);
+ change_or_make_entry("keybindings", [["keylist", "P"]], [["context", "TV Playback"], ["action","PAUSE"]]); # default, but here for completeness
+
+ #
+ # better awareness of different video extensions
+ #
+ foreach my $video_ext ("mp2", "tp", "ts", "m2p", "nuv", "mkv", "ogg", "theora") {
+ change_or_make_entry("videotypes", [["playcommand", "Default"], ["f_ignore", "0"], ["use_default", "1"]], [["extension", $video_ext]]);
+ }
+ foreach my $non_video_ext ("jpg", "par2", "php") {
+ change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]);
+ }
+
+ #
+ # games, game players, and emulators
+ #
+ my @players = (
+ [ 'SDLMAME', '/myth/games/xmame/roms', '/myth/games/xmame/screenshots', '/usr/games/mame -rp /myth/games/xmame/roms %s', 'MAME' ],
+ [ 'ZSNES','/myth/games/snes/roms','/myth/games/snes/screens','/usr/bin/zsnes','SNES' ],
+ [ 'FCEU','/myth/games/nes/roms','/myth/games/nes/screens','/usr/games/fceu','NES' ],
+ [ 'Frozen Bubble', '', '', '/usr/games/frozen-bubble --fullscreen','PC' ]
+ );
+
+ foreach my $player (@players) {
+ # These INSERTs will fail if the playername is already present, but we don't error out if it happens.
+ do_query("INSERT INTO gameplayers (playername, rompath, screenshots, commandline, gametype) VALUES ('".join("','",@$player)."');");
+ }
+ # somewhat hardwired, but make sure Frozen Bubble shows up in the list of playable games.
+ do_query("INSERT INTO gamemetadata (system, romname, gamename, genre, year, publisher, rompath, gametype) VALUES ('".
+ join("','",($players[3][0], $players[3][3], $players[3][0], "action/puzzle", "2006", "Frozen Bubble Team", "/usr/games", $players[3][4]))."');");
+
+ #
+ # smart music playlists
+ #
+ # categoryid, name
+ change_or_make_entry("music_smartplaylist_categories", [["name", "Decades"]], [["categoryid", 1]]);
+ change_or_make_entry("music_smartplaylist_categories", [["name", "Favorite Tracks"]], [["categoryid", 2]]);
+ change_or_make_entry("music_smartplaylist_categories", [["name", "New Tracks"]], [["categoryid", 3]]);
+
+ foreach my $decade (60, 70, 80, 90, 100) {
+ my $id = ($decade / 10) - 5;
+ my $query = "INSERT INTO music_smartplaylist_items (smartplaylistid, field, operator, value1, value2) VALUES ($id, 'Year', 'is between'," . ($decade+1900) . "," . ($decade+1909) . ");";
+ do_query($query);
+ $query = "INSERT INTO music_smartplaylists (name, categoryid, matchtype, orderby, limitto) VALUES ('". ($decade+1900) . "\\'s', 1, 'All', 'Artist (A)', 0);";
+ do_query($query);
+ }
+
+ my @other_lists = (
+ [
+ ( 'Rating', 'is greater than', '7', 'Favorite Tracks', 2, 'Artist (A), Album (A)', 0 ),
+ ( 'Play Count', 'is greater than', '0', '100 Most Played Tracks', 2, 'Play Count (D)', 100 ),
+ ( 'Play Count', 'is equal to', '0', 'Never Played Tracks', 3, 'Artist (A), Album (A)', 0 )
+ ]);
+
+ my $id=6;
+ foreach my $other_list (@other_lists) {
+ change_or_make_entry("music_smartplaylist_items", [["field", @$other_list[0]], ["operator", @$other_list[1]], ["value1", @$other_list[2]]], [["smartplaylistid", $id]]);
+ change_or_make_entry("music_smartplaylists", [["name", @$other_list[3]], ["categoryid", @$other_list[4]], ["matchtype", "All"], ["orderby", @$other_list[5]], ["limitto", @$other_list[6]]], [["smartplaylistid", $id]]);
+ $id++;
+ }
+
+ #
+ # default playgroup with time-related settings
+ #
+ change_or_make_entry("playgroup", [["skipahead", 10], ["skipback", 5], ["timestretch", 100], ["jump", 1]], [["name", "Default"]]);
+
+ #
+ # useful recording profiles and transcoding options
+ #
+ change_or_make_entry("profilegroups", [["name", "Software Encoders (v4l based)"], ["cardtype", "V4L"], ["is_default", 1]], [["id", 1]]);
+ change_or_make_entry("profilegroups", [["name", "MPEG-2 Encoders (PVR-x50, PVR-500)"], ["cardtype", "MPEG"], ["is_default", 1]], [["id", 2]]);
+ change_or_make_entry("profilegroups", [["name", "Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)"], ["cardtype", "MJPEG"], ["is_default", 1]], [["id", 3]]);
+ change_or_make_entry("profilegroups", [["name", "Hardware HDTV"], ["cardtype", "HDTV"], ["is_default", 1]], [["id", 4]]);
+ change_or_make_entry("profilegroups", [["name", "Hardware DVB Encoders"], ["cardtype", "DVB"], ["is_default", 1]], [["id", 5]]);
+ change_or_make_entry("profilegroups", [["name", "Transcoders"], ["cardtype", "TRANSCODE"], ["is_default", 1]], [["id", 6]]);
+ change_or_make_entry("profilegroups", [["name", "FireWire Input"], ["cardtype", "FIREWIRE"], ["is_default", 1]], [["id", 7]]);
+ change_or_make_entry("profilegroups", [["name", "USB Mpeg-4 Encoder (Plextor ConvertX, etc)"], ["cardtype", "GO7007"], ["is_default", 1]], [["id", 8]]);
+ change_or_make_entry("profilegroups", [["name", "DBOX2 Input"], ["cardtype", "DBOX2"], ["is_default", 1]], [["id", 9]]);
+ change_or_make_entry("profilegroups", [["name", "Freebox Input"], ["cardtype", "Freebox"], ["is_default", 1]], [["id", 10]]);
+ change_or_make_entry("profilegroups", [["name", "HDHomeRun Recorders"], ["cardtype", "HDHOMERUN"], ["is_default", 1]], [["id", 11]]);
+ change_or_make_entry("profilegroups", [["name", "CRC IP Recorders"], ["cardtype", "CRC_IP"], ["is_default", 1]], [["id", 12]]);
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4bitrate', 2200)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionvhq', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4option4mv', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'samplerate', 48000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'volume', 100)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4bitrate', 2200)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionvhq', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4option4mv', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'samplerate', 48000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'volume', 100)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (27, 'transcodelossless', 1)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4bitrate', 2200)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionvhq', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4option4mv', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'samplerate', 48000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'volume', 100)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4bitrate', 1500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionvhq', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4option4mv', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'samplerate', 44100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mp3quality', 7)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'volume', 100)");
+
+
+ # I don't know why we have so many of these. Only profilegroup 6 seems to matter.
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 1]], [["id", 1]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 1]], [["id", 2]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 1]], [["id", 3]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 1]], [["id", 4]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 2]], [["id", 5]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 2]], [["id", 6]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 2]], [["id", 7]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 2]], [["id", 8]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 3]], [["id", 9]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 3]], [["id", 10]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 3]], [["id", 11]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 3]], [["id", 12]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 4]], [["id", 13]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 4]], [["id", 14]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 4]], [["id", 15]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 4]], [["id", 16]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 5]], [["id", 17]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 5]], [["id", 18]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 5]], [["id", 19]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 5]], [["id", 20]]);
+ change_or_make_entry("recordingprofiles", [["name", 'RTjpeg/MPEG4'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 21]]);
+ change_or_make_entry("recordingprofiles", [["name", 'MPEG2'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 22]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 8]], [["id", 23]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 8]], [["id", 24]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 8]], [["id", 25]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 8]], [["id", 26]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 6]], [["id", 27]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Medium Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 28]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "MP3"]], [["id", 29]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 10]], [["id", 30]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 10]], [["id", 31]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 10]], [["id", 32]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 10]], [["id", 33]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 11]], [["id", 34]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 11]], [["id", 35]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 11]], [["id", 36]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 11]], [["id", 37]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 12]], [["id", 38]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 12]], [["id", 39]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 12]], [["id", 40]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 12]], [["id", 41]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 7]], [["id", 42]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 7]], [["id", 43]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 7]], [["id", 44]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 7]], [["id", 45]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 9]], [["id", 46]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 9]], [["id", 47]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 9]], [["id", 48]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 9]], [["id", 49]]);
+
+ #
+ # settings
+ #
+ change_or_make_setting('AlwaysStreamFiles', '1'); # new in R6
+ change_or_make_setting('AutoCommercialSkip', '1');
+ change_or_make_setting('AutoExpireWatchedPriority', '1');
+ change_or_make_setting('BackendServerPort', '6543');
+ change_or_make_setting('BackendStatusPort', '6544');
+ change_or_make_setting('CDWriterDevice', 'ATA:1,0,0');
+# change_or_make_setting('ChannelOrdering', 'chanid');
+ change_or_make_setting('CommercialSkipMethod', '255');
+ change_or_make_setting('DVDBookmarkPrompt', '1');
+ change_or_make_setting('DVDRipLocation', $SQL_DirTmp);
+ change_or_make_setting('DefaultRipQuality', '1');
+ change_or_make_setting('DefaultTranscoder', '28'); # change this number if you redefine the transcoders above
+ change_or_make_setting('Deinterlace', '1');
+ change_or_make_setting('DeletesFollowLinks', '1');
+ change_or_make_setting('DisableFirewireReset', '0');
+ change_or_make_setting('EITCrawIdleStart','60');
+ change_or_make_setting('EITIgnoresSource','0');
+ change_or_make_setting('EITTimeOffset','Auto');
+ change_or_make_setting('EITTransportTimeout','5');
+ change_or_make_setting('EPGEnableJumpToChannel','1');
+ change_or_make_setting('EPGFillType','12');
+ change_or_make_setting('EnableDVDBookmark','1');
+ change_or_make_setting('EndOfRecordingExitPrompt','1');
+ change_or_make_setting('GalleryDir', $SQL_DirPics);
+ change_or_make_setting('GalleryRecursiveSlideshow', '1');
+#------------------------JM---------------------------
+ change_or_make_setting('HaltCommand', 'sudo /sbin/halt');
+# change_or_make_setting('HostAudiotype','ALSA');
+# change_or_make_setting('HostMiro','1');
+# change_or_make_setting('HostXine','1');
+# change_or_make_setting('Hostpluginmythappletrailers','1');
+# change_or_make_setting('Hostpluginmytharchive','1');
+# change_or_make_setting('Hostpluginmythbrowser','1');
+# change_or_make_setting('Hostpluginmythcontrols','1');
+# change_or_make_setting('Hostpluginmythflix','1');
+# change_or_make_setting('Hostpluginmythgallery','1');
+# change_or_make_setting('Hostpluginmythgame','1');
+# change_or_make_setting('HostpluginmythgameFceu','1');
+# change_or_make_setting('HostpluginmythgameMame','1');
+# change_or_make_setting('HostpluginmythgameMame','1');
+# change_or_make_setting('HostpluginmythgameROMDB','1');
+# change_or_make_setting('HostpluginmythgameXE','1');
+# change_or_make_setting('HostpluginmythgameZsnes','1');
+# change_or_make_setting('HostpluginmythgameZsnes','1');
+# change_or_make_setting('Hostpluginmythmovietime','1');
+# change_or_make_setting('Hostpluginmythmusic','1');
+# change_or_make_setting('Hostpluginmythnews','1');
+# change_or_make_setting('Hostpluginmythphone','1');
+# change_or_make_setting('Hostpluginmythsmolt','1');
+# change_or_make_setting('Hostpluginmythstream','1');
+# change_or_make_setting('Hostpluginmythvideo','1');
+# change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
+# change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
+# change_or_make_setting('Hostpluginmythvodka','1');
+# change_or_make_setting('Hostpluginmythweather','1');
+ change_or_make_setting('JobAllowCommFlag', '1');
+ change_or_make_setting('JobAllowTranscode', '1');
+ change_or_make_setting('JobAllowUserJob1', '1');
+ change_or_make_setting('JobAllowUserJob2', '1');
+ change_or_make_setting('JobAllowUserJob3', '1');
+ change_or_make_setting('JobAllowUserJob4', '1');
+ change_or_make_setting('JobQueueCPU','0');
+ change_or_make_setting('JobQueueCheckFrequency','60');
+ change_or_make_setting('JobQueueCommFlagCommand','mythcommflag');
+ change_or_make_setting('JobQueueMaxSimultaneousJobs','1');
+ change_or_make_setting('JobQueueTranscodeCommand','mythtranscode');
+ change_or_make_setting('JobQueueWindowEnd','23:59');
+ change_or_make_setting('JobQueueWindowStart','00:00');
+ change_or_make_setting('JobsRunOnRecordHost','0');
+ change_or_make_setting('LiveTVInAllPrograms','1');
+ change_or_make_setting('MasterMixerVolume','100');
+# change_or_make_setting('MasterServerIP', '127.0.0.1');
+# change_or_make_setting('MasterServerPort', '6543');
+ change_or_make_setting('MediaChangeEvents','1');
+ change_or_make_setting('MonitorDrives', '1');
+ change_or_make_setting('MusicLocation', $SQL_DirMusic);
+ change_or_make_setting('MythArchivePng2yuvCmd', 'png2yuv'); # ??? still used?
+ change_or_make_setting('MythArchiveShareDir','/myth/archive/');
+ change_or_make_setting('MythArchiveTempDir', $SQL_DirTmp);
+ change_or_make_setting('MythFillDatabaseArgs', '--quiet');
+ change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log');
+ change_or_make_setting('MythFillDatabasePath', '/usr/bin/nice -n 19 /usr/bin/mythfilldatabase');
+ change_or_make_setting('MythFillEnabled', '1');
+ change_or_make_setting('MythTVtv', $SQL_DirTV);
+ change_or_make_setting('NetworkControlEnabled', '1');
+ change_or_make_setting('PCMMixerVolume', '50');
+ change_or_make_setting('PVR350VideoDev', '/dev/video16');
+ change_or_make_setting('PlayBoxShading', '0');
+ change_or_make_setting('PlayMode', 'none');
+ change_or_make_setting('PlaybackExitPrompt', '2');
+ change_or_make_setting('PlaybackPreviewLowCPU', '1');
+# change_or_make_setting('PlaybackReturnPrompt', '1');
+# change_or_make_setting('PlaybackReturnPrompt', '2');
+ change_or_make_setting('RebootCommand', 'sudo /sbin/reboot');
+ change_or_make_setting('RecordFilePrefix',$SQL_DirTV);
+ change_or_make_setting('SelectChangesChannel', '1');
+ change_or_make_setting('ServerHaltCommand', 'sudo /sbin/halt -p');
+ change_or_make_setting('ShowWholeTree', '1');
+ change_or_make_setting('SmartChannelChange', '1');
+ change_or_make_setting('StartupSecsBeforeRecording', '120');
+ change_or_make_setting('TruncateDeletesSlowly', '1');
+ change_or_make_setting('UseOutputPictureControls', '1');
+ change_or_make_setting('UserJob1', 'myth2ipod \"%DIR%\" \"%FILE%\"');
+ change_or_make_setting('UserJob2', 'myt2xvid3 \"%DIR%\" \"%FILE%\"');
+ change_or_make_setting('UserJob3', 'myth2x264 \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"');
+ change_or_make_setting('UserJob4', 'removecommercials.sh \"%DIR%\" \"%FILE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"');
+ change_or_make_setting('UserJobDesc1', 'Transcode for iPod');
+ change_or_make_setting('UserJobDesc2', 'Transcode to xvid');
+ change_or_make_setting('UserJobDesc3', 'Transcode to h264');
+ change_or_make_setting('UserJobDesc4', 'Remove Commercials');
+ change_or_make_setting('UseOutputPictureControls','0'); # If this is set to '1' it can swap blue for red (and vice versa) on some nVidia GPUs
+ change_or_make_setting('VCDPlayerCommand', 'mplayer-wrapper.pl vcd:\/\/ -cdrom-device %d -fs -zoom');
+ change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers");
+ change_or_make_setting('VideoBrowserNoDB', '1');
+ change_or_make_setting('VideoDefaultPlayer', 'mplayer-wrapper.pl -fs -zoom %s');
+ change_or_make_setting('VideoGalleryNoDB', '1');
+ change_or_make_setting('VideoStartupDir', $SQL_DirVideo);
+ change_or_make_setting('VideoTreeNoDB', '1');
+ change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;AlbumArt');
+ change_or_make_setting('weatherbackgroundfetch', '1');
+ change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
+ change_or_make_setting('WebBrowserHideScrollbars','0');
+ change_or_make_setting('WebBrowserScrollMode','1');
+ change_or_make_setting('WebBrowserScrollSpeed','4');
+ change_or_make_setting('WebBrowserZoomLevel','20');
+ change_or_make_setting('WebcamDevice','/dev/video');
+ change_or_make_setting('WOLbackendCommand','');
+ change_or_make_setting('WOLbackendConnectRetry','5');
+ change_or_make_setting('WOLslaveBackendsCommand','');
+ change_or_make_setting('WakeupTimeFormat','hh:mm yyyy-MM-dd');
+ change_or_make_setting('WatchTVGuide','0');
+# change_or_make_setting('WeatherDBSchemaVer','1000');
+ change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
+ change_or_make_setting('WebBrowserHideScrollbars','0');
+ change_or_make_setting('WebBrowserScrollMode','1');
+ change_or_make_setting('WebBrowserScrollSpeed','4');
+ change_or_make_setting('WebBrowserZoomLevel','20');
+ change_or_make_setting('XineramaScreen','0');
+ change_or_make_setting('blockSDWUwithoutClient','1');
+ change_or_make_setting('idleWaitForRecordingTime','15');
+ change_or_make_setting('mythdvd.DVDPlayerCommand', 'Internal');
+ change_or_make_setting('mythvideo.VideoTreeRemember', '1');
+ change_or_make_setting('mythfilldatabaseLastRunStart','');
+ change_or_make_setting('mythfilldatabaseLastRunEnd','');
+ change_or_make_setting('mythfilldatabaseLastRunStatus','');
+
+ #
+ # customexample table
+ #
+ change_or_make_entry("customexample", [["fromclause", ""], ["whereclause", "program.category_type = \"movie\" AND program.airdate >= YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AND program.stars > 0.5 "], ["search", "1"]], [["rulename", "New Flix"]]);
+
+# # As much of MythWeather as we can automate for now
+ my $units = 0;
+ my $metric_units = do_query("SELECT * FROM settings WHERE value='SIUnits' AND data='YES'");
+ if ($metric_units) {
+ $units=0;
+ } else {
+ $units=1;
+ }
+# change_or_make_entry("weatherscreens", [["draworder", "0"], ["container", "Six Day Forecast"], ["units", $units]], [["screen_id", 1]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "6dlocation"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# for (my $increment=0; $increment < 6; $increment++) {
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "date-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "high-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "icon-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "low-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# }
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "updatetime"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+#
+# change_or_make_entry("weathersourcesettings", [["sourceid", "1"], ["source_name", "BBC-Current-XML"], ["update_timeout", "7200"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbccurrentxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "cclocation,station_id,copyright,observation_time,weather,temp,relative_humidity,wind_dir,pressure,visibility,weather_icon,appt,wind_spdgst"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "2"], ["source_name", "BBC-3day-XML"], ["update_timeout", "21600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbcthreedayxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "3dlocation,station_id,copyright,weather_icon,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "3"], ["source_name", "ENVCAN"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ca_envcan/envcan.pl"], ["author", "Joe Ripley"], ["version", "0.4"], ["email", "vitaminjoe\@gmail.com"], ["types", "cclocation,station_id,copyright,observation_time,observation_time_rfc822,weather,temp,relative_humidity,wind_dir,wind_degrees,wind_speed,wind_gust,pressure,dewpoint,heat_index,windchill,visibility,weather_icon,appt,wind_spdgst,3dlocation,6dlocation,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime,date-3,icon-3,low-3,high-3,date-4,icon-4,low-4,high-4,date-5,icon-5,low-5,high-5"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "4"], ["source_name", "NDFD-6_day"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "3dlocation,6dlocation,updatetime,high-0,high-1,high-2,high-3,high-4,high-5,low-0,low-1,low-2,low-3,low-4,low-5,icon-0,icon-1,icon-2,icon-3,icon-4,icon-5,date-0,date-1,date-2,date-3,date-4,date-5"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "5"], ["source_name", "NDFD-18_hour"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd18.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "18hrlocation,updatetime,temp-0,temp-1,temp-2,temp-3,temp-4,temp-5,18icon-0,18icon-1,18icon-2,18icon-3,18icon-4,18icon-5,pop-0,pop-1,pop-2,pop-3,pop-4,pop-5,time-0,time-1,time-2,time-3,time-4,time-5"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "6"], ["source_name", "NWS-Alerts"], ["update_timeout", "600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nws-alert.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "swlocation,updatetime,alerts"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "7"], ["source_name", "NWS-XML"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nwsxml.pl"], ["author", "Lucien Dunning"], ["version", "0.2"], ["email", "ldunning\@gmail.com"], ["types", "cclocation,station_id,latitude,longitude,observation_time,observation_time_rfc822,weather,temperature_string,temp,relative_humidity,wind_string,wind_dir,wind_degrees,wind_speed,wind_gust,pressure_string,pressure,dewpoint_string,dewpoint,heat_index_string,heat_index,windchill_string,windchill,visibility,weather_icon,appt,wind_spdgst"]]);
+
+ my $ipaddress = execute_shell_command("ifconfig | grep inet.addr | head -1");
+ $ipaddress =~ s/.*inet addr:(\d+.\d+.\d+.\d+)\s.*/$1/g;
+
+
+
+
+
+
+#-------------------jm
+# # Change from the generic IP address to the real one.
+# do_query("UPDATE settings SET data='$ipaddress' where data='127.0.0.1'");
+# do_query("UPDATE settings SET data='$ipaddress' where data='MythTVip'"); # ??? needed?
+
+ my $hostname = execute_shell_command("hostname") || "localhost";
+ # one table at a time, replace hostname with our actual hostname
+ # ??? can this be done all at once in MySQL?
+ foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists",
+ "musicplaylist", "recorded", "settings", "weatherscreens") {
+ do_query("UPDATE $table SET hostname='$hostname'");
+ }
+
+ # Some entries in 'settings' should stay NULL: http://www.mythtv.org/wiki/index.php/Settings_table
+ # There are fewer entries that stay NULL than there are that should have the hostname set, so while
+ # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's
+ # easier to maintain and more future-proof.
+
+ foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus",
+ "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime",
+ "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable",
+ "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout",
+ "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime",
+ "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand",
+ "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost",
+ "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand",
+ "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2",
+ "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword",
+ "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod",
+ "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge",
+ "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder",
+ "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1",
+ "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime",
+ "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs",
+ "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd",
+ "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer",
+ "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer",
+ "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") {
+ do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'");
+ }
+
+ change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here
+ do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'");
+
+ # storagegroup
+ change_or_make_entry("storagegroup", [["groupname", "Default"], ["hostname", $hostname], ["dirname", $SQL_DirTV]], [["id", 1]]);
+
+ #
+ # Websites for mythbrowser
+ #
+ #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmyth.net"]]);
+ #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmythwiki.org"]]);
+
+ disconnect_from_db();
+
+ # Fix hostname for iPod feed URLs
+ $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod";
+ execute_shell_command($command);
+
+ # Fix hostname for XViD feed URLs
+ $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3";
+ execute_shell_command($command);
+
+ # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
+ # online stream options.
+ #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
+ $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
+ execute_shell_command($command);
+ } else {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("Unable to connect to mythconverg database");
+ $logger->error("Unable to implement option $option.");
+ return -1;
+ }
+ return 1;
+ }
+
+ file_tweaks($option) || exit -1;
+ SQL_tweaks($option) || exit -1;
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+ recommendation_level("recommended", "These tweaks benefit all users.");
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_general.pl.orig b/abs/not_built/core/tweaker/bin/twk_general.pl.orig
new file mode 100755
index 0000000..0255852
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_general.pl.orig
@@ -0,0 +1,579 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'all' );
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ # KnoppMyth-centric file-level tweaks
+ sub file_tweaks {
+ my($option) = @_;
+
+ my @commands = (
+ # keymap tweaks
+ "twk_keymap.sh"
+ );
+
+ foreach my $command (@commands) {
+ if (my $error = execute_shell_command($command)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("$error");
+ $logger->error("Unable to implement option $option with command $command.");
+ }
+ }
+ return 1;
+ }
+
+ # Enhance the default MythTV SQL
+ sub SQL_tweaks {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ # ??? This also exists in mkmythdir - it should be centralized
+ my $SQL_DirData="/myth"; # Top level dir. of structure,
+ my $SQL_DirTV="$SQL_DirData/tv"; # TV Recordings,
+ my $SQL_DirMusic="$SQL_DirData/music/"; # Music storage,
+ my $SQL_DirGames="$SQL_DirData/games"; # Games dir,
+ my $SQL_DirPics="$SQL_DirData/gallery"; # Pictures directory.
+ my $SQL_DirTmp="$SQL_DirData/tmp"; # DVD temp
+ my $SQL_DirVideo="$SQL_DirData/video"; # videos
+
+ # ??? Eventually, put these into a text file so that 1) people can contribute without having to code, and 2) the data
+ # stays separate from the code and can be re-used by other (non-Perl) implementations
+
+ #
+ # keybindings
+ #
+ change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "Gallery"], ["action","PLAY"]]);
+ change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Music"], ["action","FFWD"]]);
+ change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Music"], ["action","RWND"]]);
+ change_or_make_entry("keybindings", [["keylist", "PgDown,.,Z,End"]], [["context", "Music"], ["action","NEXTTTRACK"]]);
+ change_or_make_entry("keybindings", [["keylist", "PgUp,Q,Home"]], [["context", "Music"], ["action","PREVTRACK"]]);
+ change_or_make_entry("keybindings", [["keylist", "P,l"]], [["context", "Music"], ["action","PAUSE"]]);
+
+ change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Stream"], ["action","FORWARD"]]);
+ change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Stream"], ["action","REWIND"]]);
+ change_or_make_entry("keybindings", [["keylist", "F"]], [["context", "Stream"], ["action","FULLSCREEN"]]);
+ change_or_make_entry("keybindings", [["keylist", "|,\\,F9,Volume Mute"]], [["context", "Stream"], ["action","MUTE"]]);
+ change_or_make_entry("keybindings", [["keylist", "Y"]], [["context", "Stream"], ["action","STOREMARKED"]]);
+
+ change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Frontend"], ["action","PLAYBACK"]]);
+
+ change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Playback"], ["action","PLAY"]]);
+ change_or_make_entry("keybindings", [["keylist", "P"]], [["context", "TV Playback"], ["action","PAUSE"]]); # default, but here for completeness
+
+ #
+ # better awareness of different video extensions
+ #
+ change_or_make_entry("videotypes", [["playcommand", "mplayer-resumer.pl -fs -zoom -vc theora,fftheora, -vo xv %s"]], [["extension", "ogg"]]);
+ change_or_make_entry("videotypes", [["playcommand", "mplayer-resumer.pl -fs -zoom -vc theora,fftheora, -vo xv %s"]], [["extension", "theora"]]);
+ foreach my $video_ext ("mp2", "tp", "ts", "m2p", "nuv", "mkv") {
+ change_or_make_entry("videotypes", [["playcommand", "Internal"], ["f_ignore", "0"], ["use_default", "1"]], [["extension", $video_ext]]);
+ }
+ foreach my $non_video_ext ("jpg", "par2") {
+ change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]);
+ }
+
+ #
+ # games, game players, and emulators
+ #
+ my @players = (
+ [ 'SDLMAME', '/myth/games/xmame/roms', '/myth/games/xmame/screenshots', '/usr/games/mame -rp /myth/games/xmame/roms %s', 'MAME' ],
+ [ 'ZSNES','/myth/games/snes/roms','/myth/games/snes/screens','/usr/bin/zsnes','SNES' ],
+ [ 'FCEU','/myth/games/nes/roms','/myth/games/nes/screens','/usr/games/fceu','NES' ],
+ [ 'Frozen Bubble', '', '', '/usr/games/frozen-bubble --fullscreen','PC' ]
+ );
+
+ foreach my $player (@players) {
+ # These INSERTs will fail if the playername is already present, but we don't error out if it happens.
+ do_query("INSERT INTO gameplayers (playername, rompath, screenshots, commandline, gametype) VALUES ('".join("','",@$player)."');");
+ }
+ # somewhat hardwired, but make sure Frozen Bubble shows up in the list of playable games.
+ do_query("INSERT INTO gamemetadata (system, romname, gamename, genre, year, publisher, rompath, gametype) VALUES ('".
+ join("','",($players[3][0], $players[3][3], $players[3][0], "action/puzzle", "2006", "Frozen Bubble Team", "/usr/games", $players[3][4]))."');");
+
+ #
+ # smart music playlists
+ #
+ # categoryid, name
+ change_or_make_entry("music_smartplaylist_categories", [["name", "Decades"]], [["categoryid", 1]]);
+ change_or_make_entry("music_smartplaylist_categories", [["name", "Favorite Tracks"]], [["categoryid", 2]]);
+ change_or_make_entry("music_smartplaylist_categories", [["name", "New Tracks"]], [["categoryid", 3]]);
+
+ foreach my $decade (60, 70, 80, 90, 100) {
+ my $id = ($decade / 10) - 5;
+ my $query = "INSERT INTO music_smartplaylist_items (smartplaylistid, field, operator, value1, value2) VALUES ($id, 'Year', 'is between'," . ($decade+1900) . "," . ($decade+1909) . ");";
+ do_query($query);
+ $query = "INSERT INTO music_smartplaylists (name, categoryid, matchtype, orderby, limitto) VALUES ('". ($decade+1900) . "\\'s', 1, 'All', 'Artist (A)', 0);";
+ do_query($query);
+ }
+
+ my @other_lists = (
+ [
+ ( 'Rating', 'is greater than', '7', 'Favorite Tracks', 2, 'Artist (A), Album (A)', 0 ),
+ ( 'Play Count', 'is greater than', '0', '100 Most Played Tracks', 2, 'Play Count (D)', 100 ),
+ ( 'Play Count', 'is equal to', '0', 'Never Played Tracks', 3, 'Artist (A), Album (A)', 0 )
+ ]);
+
+ my $id=6;
+ foreach my $other_list (@other_lists) {
+ change_or_make_entry("music_smartplaylist_items", [["field", @$other_list[0]], ["operator", @$other_list[1]], ["value1", @$other_list[2]]], [["smartplaylistid", $id]]);
+ change_or_make_entry("music_smartplaylists", [["name", @$other_list[3]], ["categoryid", @$other_list[4]], ["matchtype", "All"], ["orderby", @$other_list[5]], ["limitto", @$other_list[6]]], [["smartplaylistid", $id]]);
+ $id++;
+ }
+
+ #
+ # default playgroup with time-related settings
+ #
+ change_or_make_entry("playgroup", [["skipahead", 10], ["skipback", 5], ["timestretch", 100], ["jump", 1]], [["name", "Default"]]);
+
+ #
+ # useful recording profiles and transcoding options
+ #
+ change_or_make_entry("profilegroups", [["name", "Software Encoders (v4l based)"], ["cardtype", "V4L"], ["is_default", 1]], [["id", 1]]);
+ change_or_make_entry("profilegroups", [["name", "MPEG-2 Encoders (PVR-x50, PVR-500)"], ["cardtype", "MPEG"], ["is_default", 1]], [["id", 2]]);
+ change_or_make_entry("profilegroups", [["name", "Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)"], ["cardtype", "MJPEG"], ["is_default", 1]], [["id", 3]]);
+ change_or_make_entry("profilegroups", [["name", "Hardware HDTV"], ["cardtype", "HDTV"], ["is_default", 1]], [["id", 4]]);
+ change_or_make_entry("profilegroups", [["name", "Hardware DVB Encoders"], ["cardtype", "DVB"], ["is_default", 1]], [["id", 5]]);
+ change_or_make_entry("profilegroups", [["name", "Transcoders"], ["cardtype", "TRANSCODE"], ["is_default", 1]], [["id", 6]]);
+ change_or_make_entry("profilegroups", [["name", "FireWire Input"], ["cardtype", "FIREWIRE"], ["is_default", 1]], [["id", 7]]);
+ change_or_make_entry("profilegroups", [["name", "USB Mpeg-4 Encoder (Plextor ConvertX, etc)"], ["cardtype", "GO7007"], ["is_default", 1]], [["id", 8]]);
+ change_or_make_entry("profilegroups", [["name", "DBOX2 Input"], ["cardtype", "DBOX2"], ["is_default", 1]], [["id", 9]]);
+ change_or_make_entry("profilegroups", [["name", "Freebox Input"], ["cardtype", "Freebox"], ["is_default", 1]], [["id", 10]]);
+ change_or_make_entry("profilegroups", [["name", "HDHomeRun Recorders"], ["cardtype", "HDHOMERUN"], ["is_default", 1]], [["id", 11]]);
+ change_or_make_entry("profilegroups", [["name", "CRC IP Recorders"], ["cardtype", "CRC_IP"], ["is_default", 1]], [["id", 12]]);
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4bitrate', 2200)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionvhq', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4option4mv', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'samplerate', 48000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'volume', 100)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4bitrate', 2200)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionvhq', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4option4mv', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'samplerate', 48000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'volume', 100)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (27, 'transcodelossless', 1)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4bitrate', 2200)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionvhq', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4option4mv', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'samplerate', 48000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'volume', 100)");
+
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcodelossless', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcoderesize', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4bitrate', 1500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4maxquality', 2)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4minquality', 15)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4qualdiff', 3)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'scalebitrate', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionvhq', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4option4mv', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionidct', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionime', 0)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'encodingthreadcount', 1)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2bitrate', 4500)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegquality', 100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpeghdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegvdecimation', 4)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2streamtype', 'MPEG-2 PS')");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2maxbitrate', 6000)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'samplerate', 44100)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mp3quality', 7)");
+ do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'volume', 100)");
+
+
+ # I don't know why we have so many of these. Only profilegroup 6 seems to matter.
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 1]], [["id", 1]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 1]], [["id", 2]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 1]], [["id", 3]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 1]], [["id", 4]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 2]], [["id", 5]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 2]], [["id", 6]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 2]], [["id", 7]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 2]], [["id", 8]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 3]], [["id", 9]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 3]], [["id", 10]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 3]], [["id", 11]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 3]], [["id", 12]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 4]], [["id", 13]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 4]], [["id", 14]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 4]], [["id", 15]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 4]], [["id", 16]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 5]], [["id", 17]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 5]], [["id", 18]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 5]], [["id", 19]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 5]], [["id", 20]]);
+ change_or_make_entry("recordingprofiles", [["name", 'RTjpeg/MPEG4'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 21]]);
+ change_or_make_entry("recordingprofiles", [["name", 'MPEG2'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 22]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 8]], [["id", 23]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 8]], [["id", 24]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 8]], [["id", 25]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 8]], [["id", 26]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 6]], [["id", 27]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Medium Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 28]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "MP3"]], [["id", 29]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 10]], [["id", 30]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 10]], [["id", 31]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 10]], [["id", 32]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 10]], [["id", 33]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 11]], [["id", 34]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 11]], [["id", 35]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 11]], [["id", 36]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 11]], [["id", 37]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 12]], [["id", 38]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 12]], [["id", 39]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 12]], [["id", 40]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 12]], [["id", 41]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 7]], [["id", 42]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 7]], [["id", 43]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 7]], [["id", 44]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 7]], [["id", 45]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 9]], [["id", 46]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 9]], [["id", 47]]);
+ change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 9]], [["id", 48]]);
+ change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 9]], [["id", 49]]);
+
+ #
+ # settings
+ #
+ change_or_make_setting('AlwaysStreamFiles', '1'); # new in R6
+ change_or_make_setting('AutoCommercialSkip', '1');
+ change_or_make_setting('AutoExpireWatchedPriority', '1');
+ change_or_make_setting('BackendServerPort', '6543');
+ change_or_make_setting('BackendStatusPort', '6544');
+ change_or_make_setting('CDWriterDevice', 'ATA:1,0,0');
+# change_or_make_setting('ChannelOrdering', 'chanid');
+ change_or_make_setting('CommercialSkipMethod', '255');
+ change_or_make_setting('DVDBookmarkPrompt', '1');
+ change_or_make_setting('DVDRipLocation', $SQL_DirTmp);
+ change_or_make_setting('DefaultRipQuality', '1');
+ change_or_make_setting('DefaultTranscoder', '28'); # change this number if you redefine the transcoders above
+ change_or_make_setting('Deinterlace', '1');
+ change_or_make_setting('DeletesFollowLinks', '1');
+ change_or_make_setting('DisableFirewireReset', '0');
+ change_or_make_setting('EITCrawIdleStart','60');
+ change_or_make_setting('EITIgnoresSource','0');
+ change_or_make_setting('EITTimeOffset','Auto');
+ change_or_make_setting('EITTransportTimeout','5');
+ change_or_make_setting('EPGEnableJumpToChannel','1');
+ change_or_make_setting('EPGFillType','12');
+ change_or_make_setting('EnableDVDBookmark','1');
+ change_or_make_setting('EndOfRecordingExitPrompt','1');
+ change_or_make_setting('GalleryDir', $SQL_DirPics);
+ change_or_make_setting('GalleryRecursiveSlideshow', '1');
+ change_or_make_setting('HaltCommand', 'sudo /sbin/halt');
+ change_or_make_setting('HostAudiotype','ALSA');
+ change_or_make_setting('HostMiro','1');
+ change_or_make_setting('HostXine','1');
+ change_or_make_setting('Hostpluginmythappletrailers','1');
+ change_or_make_setting('Hostpluginmytharchive','1');
+ change_or_make_setting('Hostpluginmythbrowser','1');
+ change_or_make_setting('Hostpluginmythcontrols','1');
+ change_or_make_setting('Hostpluginmythflix','1');
+ change_or_make_setting('Hostpluginmythgallery','1');
+ change_or_make_setting('Hostpluginmythgame','1');
+ change_or_make_setting('HostpluginmythgameFceu','1');
+ change_or_make_setting('HostpluginmythgameMame','1');
+ change_or_make_setting('HostpluginmythgameMame','1');
+ change_or_make_setting('HostpluginmythgameROMDB','1');
+ change_or_make_setting('HostpluginmythgameXE','1');
+ change_or_make_setting('HostpluginmythgameZsnes','1');
+ change_or_make_setting('HostpluginmythgameZsnes','1');
+ change_or_make_setting('Hostpluginmythmovietime','1');
+ change_or_make_setting('Hostpluginmythmusic','1');
+ change_or_make_setting('Hostpluginmythnews','1');
+ change_or_make_setting('Hostpluginmythphone','1');
+ change_or_make_setting('Hostpluginmythsmolt','1');
+ change_or_make_setting('Hostpluginmythstream','1');
+ change_or_make_setting('Hostpluginmythvideo','1');
+ change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
+ change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
+ change_or_make_setting('Hostpluginmythvodka','1');
+ change_or_make_setting('Hostpluginmythweather','1');
+ change_or_make_setting('JobAllowCommFlag', '1');
+ change_or_make_setting('JobAllowTranscode', '1');
+ change_or_make_setting('JobAllowUserJob1', '1');
+ change_or_make_setting('JobAllowUserJob2', '2');
+ change_or_make_setting('JobQueueCPU','0');
+ change_or_make_setting('JobQueueCheckFrequency','60');
+ change_or_make_setting('JobQueueCommFlagCommand','mythcommflag');
+ change_or_make_setting('JobQueueMaxSimultaneousJobs','1');
+ change_or_make_setting('JobQueueTranscodeCommand','mythtranscode');
+ change_or_make_setting('JobQueueWindowEnd','23:59');
+ change_or_make_setting('JobQueueWindowStart','00:00');
+ change_or_make_setting('JobsRunOnRecordHost','0');
+ change_or_make_setting('LiveTVInAllPrograms','1');
+ change_or_make_setting('MasterMixerVolume','100');
+ change_or_make_setting('MasterServerIP', '127.0.0.1');
+ change_or_make_setting('MasterServerPort', '6543');
+ change_or_make_setting('MediaChangeEvents','1');
+ change_or_make_setting('MonitorDrives', '1');
+ change_or_make_setting('MusicLocation', $SQL_DirMusic);
+ change_or_make_setting('MythArchivePng2yuvCmd', 'png2yuv'); # ??? still used?
+ change_or_make_setting('MythArchiveShareDir','/myth/archive/');
+ change_or_make_setting('MythArchiveTempDir', $SQL_DirTmp);
+ change_or_make_setting('MythFillDatabaseArgs', '--quiet');
+ change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log');
+ change_or_make_setting('MythFillDatabasePath', '/usr/bin/nice -n 19 /usr/bin/mythfilldatabase');
+ change_or_make_setting('MythFillEnabled', '1');
+ change_or_make_setting('MythTVtv', $SQL_DirTV);
+ change_or_make_setting('NetworkControlEnabled', '1');
+ change_or_make_setting('PCMMixerVolume', '50');
+ change_or_make_setting('PVR350VideoDev', '/dev/video16');
+ change_or_make_setting('PlayBoxShading', '0');
+ change_or_make_setting('PlayMode', 'none');
+ change_or_make_setting('PlaybackExitPrompt', '2');
+ change_or_make_setting('PlaybackPreviewLowCPU', '1');
+# change_or_make_setting('PlaybackReturnPrompt', '1');
+# change_or_make_setting('PlaybackReturnPrompt', '2');
+ change_or_make_setting('RebootCommand', 'sudo /sbin/reboot');
+ change_or_make_setting('RecordFilePrefix',$SQL_DirTV);
+ change_or_make_setting('SelectChangesChannel', '1');
+ change_or_make_setting('ServerHaltCommand', 'sudo /sbin/halt -p');
+ change_or_make_setting('ShowWholeTree', '1');
+ change_or_make_setting('SmartChannelChange', '1');
+ change_or_make_setting('StartupSecsBeforeRecording', '120');
+ change_or_make_setting('TruncateDeletesSlowly', '1');
+ change_or_make_setting('UseOutputPictureControls', '1');
+ change_or_make_setting('UserJob1', 'myth2ipod -cut \"%DIR%\" \"%FILE%\"');
+ change_or_make_setting('UserJob2', 'myt2xvid3 -cut \"%DIR%\" \"%FILE%\"');
+ change_or_make_setting('UserJobDesc1', 'Encode for iPod');
+ change_or_make_setting('UserJobDesc2', 'Transcode to XviD');
+ change_or_make_setting('UserJobDesc3', 'User Job #3');
+ change_or_make_setting('UserJobDesc4', 'User Job #4');
+ change_or_make_setting('VCDPlayerCommand', 'mplayer vcd:\/\/ -cdrom-device %d -fs -zoom -vo xv -vf pp=lb');
+ change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers");
+ change_or_make_setting('VideoBrowserNoDB', '1');
+ change_or_make_setting('VideoDefaultPlayer', 'mplayer-resumer.pl -fs -zoom -vo xv %s');
+ change_or_make_setting('VideoGalleryNoDB', '1');
+ change_or_make_setting('VideoStartupDir', $SQL_DirVideo);
+ change_or_make_setting('VideoTreeNoDB', '1');
+ change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;AlbumArt');
+ change_or_make_setting('weatherbackgroundfetch', '1');
+ change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
+ change_or_make_setting('WebBrowserHideScrollbars','0');
+ change_or_make_setting('WebBrowserScrollMode','1');
+ change_or_make_setting('WebBrowserScrollSpeed','4');
+ change_or_make_setting('WebBrowserZoomLevel','20');
+ change_or_make_setting('WebcamDevice','/dev/video');
+ change_or_make_setting('WOLbackendCommand','');
+ change_or_make_setting('WOLbackendConnectRetry','5');
+ change_or_make_setting('WOLslaveBackendsCommand','');
+ change_or_make_setting('WakeupTimeFormat','hh:mm yyyy-MM-dd');
+ change_or_make_setting('WatchTVGuide','0');
+ change_or_make_setting('WeatherDBSchemaVer','1000');
+ change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
+ change_or_make_setting('WebBrowserHideScrollbars','0');
+ change_or_make_setting('WebBrowserScrollMode','1');
+ change_or_make_setting('WebBrowserScrollSpeed','4');
+ change_or_make_setting('WebBrowserZoomLevel','20');
+ change_or_make_setting('XineramaScreen','0');
+ change_or_make_setting('blockSDWUwithoutClient','1');
+ change_or_make_setting('idleWaitForRecordingTime','15');
+ change_or_make_setting('mythdvd.DVDPlayerCommand', 'Internal');
+ change_or_make_setting('mythvideo.VideoTreeRemember', '1');
+ change_or_make_setting('mythfilldatabaseLastRunStart','');
+ change_or_make_setting('mythfilldatabaseLastRunEnd','');
+ change_or_make_setting('mythfilldatabaseLastRunStatus','');
+
+ #
+ # customexample table
+ #
+ change_or_make_entry("customexample", [["fromclause", ""], ["whereclause", "program.category_type = \"movie\" AND program.airdate >= YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AND program.stars > 0.5 "], ["search", "1"]], [["rulename", "New Flix"]]);
+
+# # As much of MythWeather as we can automate for now
+ my $units = 0;
+ my $metric_units = do_query("SELECT * FROM settings WHERE value='SIUnits' AND data='YES'");
+ if ($metric_units) {
+ $units=0;
+ } else {
+ $units=1;
+ }
+# change_or_make_entry("weatherscreens", [["draworder", "0"], ["container", "Six Day Forecast"], ["units", $units]], [["screen_id", 1]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "6dlocation"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# for (my $increment=0; $increment < 6; $increment++) {
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "date-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "high-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "icon-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "low-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+# }
+# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "updatetime"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
+#
+# change_or_make_entry("weathersourcesettings", [["sourceid", "1"], ["source_name", "BBC-Current-XML"], ["update_timeout", "7200"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbccurrentxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "cclocation,station_id,copyright,observation_time,weather,temp,relative_humidity,wind_dir,pressure,visibility,weather_icon,appt,wind_spdgst"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "2"], ["source_name", "BBC-3day-XML"], ["update_timeout", "21600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbcthreedayxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "3dlocation,station_id,copyright,weather_icon,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "3"], ["source_name", "ENVCAN"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ca_envcan/envcan.pl"], ["author", "Joe Ripley"], ["version", "0.4"], ["email", "vitaminjoe\@gmail.com"], ["types", "cclocation,station_id,copyright,observation_time,observation_time_rfc822,weather,temp,relative_humidity,wind_dir,wind_degrees,wind_speed,wind_gust,pressure,dewpoint,heat_index,windchill,visibility,weather_icon,appt,wind_spdgst,3dlocation,6dlocation,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime,date-3,icon-3,low-3,high-3,date-4,icon-4,low-4,high-4,date-5,icon-5,low-5,high-5"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "4"], ["source_name", "NDFD-6_day"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "3dlocation,6dlocation,updatetime,high-0,high-1,high-2,high-3,high-4,high-5,low-0,low-1,low-2,low-3,low-4,low-5,icon-0,icon-1,icon-2,icon-3,icon-4,icon-5,date-0,date-1,date-2,date-3,date-4,date-5"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "5"], ["source_name", "NDFD-18_hour"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd18.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "18hrlocation,updatetime,temp-0,temp-1,temp-2,temp-3,temp-4,temp-5,18icon-0,18icon-1,18icon-2,18icon-3,18icon-4,18icon-5,pop-0,pop-1,pop-2,pop-3,pop-4,pop-5,time-0,time-1,time-2,time-3,time-4,time-5"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "6"], ["source_name", "NWS-Alerts"], ["update_timeout", "600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nws-alert.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "swlocation,updatetime,alerts"]]);
+# change_or_make_entry("weathersourcesettings", [["sourceid", "7"], ["source_name", "NWS-XML"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nwsxml.pl"], ["author", "Lucien Dunning"], ["version", "0.2"], ["email", "ldunning\@gmail.com"], ["types", "cclocation,station_id,latitude,longitude,observation_time,observation_time_rfc822,weather,temperature_string,temp,relative_humidity,wind_string,wind_dir,wind_degrees,wind_speed,wind_gust,pressure_string,pressure,dewpoint_string,dewpoint,heat_index_string,heat_index,windchill_string,windchill,visibility,weather_icon,appt,wind_spdgst"]]);
+
+ my $ipaddress = execute_shell_command("ifconfig | grep inet.addr | head -1");
+ $ipaddress =~ s/.*inet addr:(\d+.\d+.\d+.\d+)\s.*/$1/g;
+
+ # Change from the generic IP address to the real one.
+ do_query("UPDATE settings SET data='$ipaddress' where data='127.0.0.1'");
+ do_query("UPDATE settings SET data='$ipaddress' where data='MythTVip'"); # ??? needed?
+
+ my $hostname = execute_shell_command("hostname") || "localhost";
+ # one table at a time, replace hostname with our actual hostname
+ # ??? can this be done all at once in MySQL?
+ foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists",
+ "musicplaylist", "recorded", "settings", "weatherscreens") {
+ do_query("UPDATE $table SET hostname='$hostname'");
+ }
+
+ # Some entries in 'settings' should stay NULL: http://www.mythtv.org/wiki/index.php/Settings_table
+ # There are fewer entries that stay NULL than there are that should have the hostname set, so while
+ # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's
+ # easier to maintain and more future-proof.
+ foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus",
+ "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime",
+ "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable",
+ "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout",
+ "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime",
+ "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand",
+ "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost",
+ "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand",
+ "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2",
+ "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword",
+ "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod",
+ "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge",
+ "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder",
+ "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1",
+ "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime",
+ "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs",
+ "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd",
+ "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer",
+ "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer",
+ "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") {
+ do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'");
+ }
+
+ change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here
+ do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'");
+
+ # storagegroup
+ change_or_make_entry("storagegroup", [["groupname", "Default"], ["hostname", $hostname], ["dirname", $SQL_DirTV]], [["id", 1]]);
+
+ #
+ # Websites for mythbrowser
+ #
+ #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmyth.net"]]);
+ #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmythwiki.org"]]);
+
+ disconnect_from_db();
+
+ # Fix hostname for iPod feed URLs
+ $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod";
+ execute_shell_command($command);
+
+ # Fix hostname for XViD feed URLs
+ $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3";
+ execute_shell_command($command);
+
+ # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
+ # online stream options.
+ #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
+ $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
+ execute_shell_command($command);
+ } else {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("Unable to connect to mythconverg database");
+ $logger->error("Unable to implement option $option.");
+ return -1;
+ }
+ return 1;
+ }
+
+ file_tweaks($option) || exit -1;
+ SQL_tweaks($option) || exit -1;
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+ recommendation_level("recommended", "These tweaks benefit all users.");
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_graphics.pl b/abs/not_built/core/tweaker/bin/twk_graphics.pl
new file mode 100755
index 0000000..22b6688
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_graphics.pl
@@ -0,0 +1,149 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+# List all the options that this script supports. Make sure it matches what's in
+# the corresponding .tcf entry.
+set_known_options( 'low', 'medium', 'high' );
+
+sub check_for_GL() {
+ # ??? Need to make this update a class variable instead of a temp file.
+ my $fps = execute_shell_command("[ -e /tmp/fps ] && cat /tmp/fps") || -1;
+
+ # We think that any nVidia cards at or below NV25 are not well-supported
+ # for GL. Newer cards are NV34 or above, or have a different starting letter.
+ my $generation = execute_shell_command("lspci -v | grep \"nVidia Corporation\" | grep VGA | awk -FCorporation '{ print \$2 }' | awk '{ print \$1 }'");
+ my $letters = substr($generation,0,2);
+ if (("$letters" eq "NV") && ("$generation" lt "NV24")) {
+ $fps = 0;
+ }
+
+ if ($fps == -1) {
+ my $result = execute_shell_command("glxinfo | grep 'direct rendering'");
+ if ($result =~ m/direct rendering: Yes/) {
+ my $logger = get_logger('tweaker.script');
+ $logger->info("Hardware OpenGL rendering ability detected.");
+ # Now poll the strength, returning the FPS from glxgears, run at the default resolution.
+ # I would love to be able to poll this in a way that 1) doesn't pop up a GUI window and
+ # 2) doesn't rely on manually making a database that maps video cards to performance levels.
+ $result = execute_shell_command("script -q -c \"glxgears -fullscreen & sleep 11 ; pkill -15 glxgears\" | grep FPS | tail -1");
+ if ($result =~ m/ (\d+)\.\d+ FPS/) {
+ $fps = $1;
+ execute_shell_command("echo $fps > /tmp/fps");
+ }
+ } else {
+ $fps = 0;
+ execute_shell_command("echo $fps > /tmp/fps");
+ }
+ }
+ return $fps;
+}
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ switch ($option) {
+ # List all the options that this script supports. You can have as many as you like.
+ case "low" {
+ change_or_make_setting('ThemePainter', 'Qt') || exit -1;
+ change_or_make_setting('SlideshowUseOpenGL', '0') || exit -1;
+ change_or_make_setting('SlideshowOpenGLTransition', 'none') || exit -1;
+ change_or_make_setting('SlideshowTransition', 'none') || exit -1;
+ }
+ case "medium" {
+ change_or_make_setting('ThemePainter', 'Qt') || exit -1;
+ change_or_make_setting('SlideshowUseOpenGL', '1') || exit -1;
+ change_or_make_setting('SlideshowOpenGLTransition', 'random (gl)') || exit -1;
+ change_or_make_setting('SlideshowTransition', 'random') || exit -1;
+ }
+ case "high" {
+ change_or_make_setting('ThemePainter', 'opengl') || exit -1;
+ change_or_make_setting('SlideshowUseOpenGL', '1') || exit -1;
+ change_or_make_setting('SlideshowOpenGLTransition', 'random (gl)') || exit -1;
+ change_or_make_setting('SlideshowTransition', 'random') || exit -1;
+ }
+
+ # In all cases, do the following:
+
+ # enable anti-aliased fonts
+ my $qtrc="/home/mythtv/.qt/qtrc";
+ # clean out old Xft settings
+ my $command = "sed -i 's/.*Xft=.*//g' $qtrc";
+
+ if (my $error = execute_shell_command($command)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ } else {
+ # Add Xft settings
+ my $command = "sed -i 's/embedFonts=true/embedFonts=true\nenableXft=true\nuseXft=true/g' $qtrc";
+ if (my $error = execute_shell_command($command)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ } else {
+ # Make sure to use an AA-capable font
+ my $command = "sed -i 's/font=.*/font=Sans Serif,12,-1,5,50,0,0,0,0,0/g' $qtrc";
+ if (my $error = execute_shell_command($command)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: $error");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit(-1);
+ }
+ }
+ }
+ }
+ } else {
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+# Poll the system to see what recommendationlevel the given option has on the system.
+sub poll_options {
+ my($option) = @_;
+
+ # These are somewhat arbitrary at this point. Note that they correspond to
+ # _full screen_ glxgears results in Frames Per Second (FPS), since GL is used
+ # at full screen resolution in MythTV.
+ my $low_threshold = 350; # at or below $low_threshold FPS, GL is not considered good enough to use in MythTV
+ my $medium_threshold = 425; # GL is pretty usable here
+ my $high_threshold = 500;
+
+ threshold_test($option, check_for_GL(), "video card", $low_threshold, $medium_threshold, $high_threshold);
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_keymap.sh b/abs/not_built/core/tweaker/bin/twk_keymap.sh
new file mode 100755
index 0000000..c7f4093
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_keymap.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This script is called from twk_general.pl to implement keymap standardization in KnoppMyth
+
+#KNOPPMYTH_SHARE=/usr/local/share/knoppmyth
+
+####################
+# Unify key mappings
+####################
+
+# Universal keybindings:
+# Function Remote Key Keyboard Key
+# ------------------------------------------
+# Skip Back << PgUp
+# Skip Forward >> PgDn
+# Play |> l
+# Pause || p
+# Stop [] ESC
+
+#Make mplayer use keymappings that are compatible with other media player keymappings.
+#NOTE: PGUP is PageUp and PGDWN is PageDown
+MPLAYER_CONF=/etc/mplayer/input.conf
+if [[ -f $MPLAYER_CONF ]]; then
+ sed -i "s/^PGUP .*/PGUP seek -60/" $MPLAYER_CONF
+ sed -i "s/^PGDWN .*/PGDWN seek +60/" $MPLAYER_CONF
+ sed -i "s/^p .*/p pause/" $MPLAYER_CONF
+ sed -i "s/^l .*/l pause/" $MPLAYER_CONF
+else
+ echo "ERROR: $MPLAYER_CONF is missing, which is unexpected."
+ exit -1
+fi
+
+#Do the same for smplayer
+SMPLAYER_CONF=/home/mythtv/.config/smplayer/smplayer.ini
+if [[ -f $SMPLAYER_CONF ]]; then
+ echo "INFO: $SMPLAYER_CONF found; tweaking now"
+else
+ echo "INFO: $SMPLAYER_CONF is missing; installing full version, then (re-)tweaking"
+ sudo -u mythtv mkdir -p /home/mythtv/.config/smplayer/
+ /bin/cp $TWEAKER_ROOT/fs$SMPLAYER_CONF $SMPLAYER_CONF
+fi
+sed -i "s/rewind3=.*/rewind3=PgUp/" $SMPLAYER_CONF
+sed -i "s/forward3=.*/forward3=PgDown/" $SMPLAYER_CONF
+sed -i "s/quit=.*/quit=Esc/" $SMPLAYER_CONF
+sed -i "s/pause=.*/pause=P/" $SMPLAYER_CONF
+sed -i "s/play=.*/play=L/" $SMPLAYER_CONF
+# Remove conflicting keybindings
+sed -i "s/stop=.*/stop=/" $SMPLAYER_CONF
+sed -i "s/play_or_pause=.*/play_or_pause=/" $SMPLAYER_CONF
+sed -i "s/exit_fullscreen=.*/exit_fullscreen=/" $SMPLAYER_CONF
+sed -i "s/pl_play=.*/pl_play=/" $SMPLAYER_CONF
diff --git a/abs/not_built/core/tweaker/bin/twk_localization.pl b/abs/not_built/core/tweaker/bin/twk_localization.pl
new file mode 100755
index 0000000..fc84440
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_localization.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'US_English', 'GB_English' ); # Should eventually expand to handle all translations available for MythTV.
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ # The entire planet except the US uses metric measurements.
+ change_or_make_setting('SIUnits', 'YES') || exit -1;
+ switch ($option) {
+ case "US_English" {
+ # Uses Imperial measurements for things like weather.
+ change_or_make_setting('SIUnits', 'NO') || exit -1;
+ change_or_make_setting('Language', 'EN') || exit -1;
+ change_or_make_setting('ISO639Language0', 'eng') || exit -1;
+ change_or_make_setting('ISO639Language1', 'eng') || exit -1;
+ change_or_make_setting('MythArchiveVideoFormat', 'NTSC') || exit -1;
+ }
+ case "GB_English" {
+ change_or_make_setting('Language', 'EN_GB') || exit -1;
+ change_or_make_setting('ISO639Language0', 'eng') || exit -1;
+ change_or_make_setting('ISO639Language1', 'eng') || exit -1;
+ change_or_make_setting('MythArchiveVideoFormat', 'PAL') || exit -1;
+ }
+ }
+ } else {
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+
+ recommendation_level("optional", "We don't yet have any way to know what your preferred language is. This option is as valid as any other.");
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_misc.pl b/abs/not_built/core/tweaker/bin/twk_misc.pl
new file mode 100755
index 0000000..96771a6
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_misc.pl
@@ -0,0 +1,13 @@
+# Placeholder for tweaks not yet implemented
+
+# Screen size / viewing distance
+change_or_make_setting('chanPerPage', '4') || exit -1;
+change_or_make_setting('timePerPage', '3') || exit -1;
+
+# Disk space / sound quality / compatibility
+change_or_make_setting('DefaultRipQuality', '2') || exit -1;
+change_or_make_setting('Mp3UseVBR', '1') || exit -1;
+
+# Localization / tuner type
+# N. America
+change_or_make_setting('VbiFormat', 'NTSC Closed Caption') || exit -1;
diff --git a/abs/not_built/core/tweaker/bin/twk_scrub_sql.pl b/abs/not_built/core/tweaker/bin/twk_scrub_sql.pl
new file mode 100755
index 0000000..c1de20b
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_scrub_sql.pl
@@ -0,0 +1,96 @@
+#!/usr/bin/perl -w
+
+# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+# List all the options that this script supports. Make sure it matches what's in
+# the corresponding .tcf entry.
+set_known_options( 'scrub', 'protect' );
+my $beginning_of_user_index=65;
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+
+ my @table_list = (
+ [ 'capturecard', 'cardid' ], # tuner-related
+ [ 'cardinput', 'cardinputid' ], # tuner-related
+ [ 'videosource', 'sourceid' ], # tuner-related
+
+ [ 'dvdinput', 'intid' ],
+ [ 'dvdtranscode', 'intid' ],
+ [ 'gameplayers', 'gameplayerid' ],
+ [ 'music_smartplaylist_categories', 'categoryid' ],
+ [ 'music_smartplaylist_items', 'smartplaylistitemid' ],
+ [ 'music_smartplaylists', 'smartplaylistid' ],
+ [ 'phonedirectory', 'intid' ],
+ [ 'profilegroups', 'id' ],
+ [ 'recordingprofiles', 'id' ],
+ [ 'storagegroup', 'id' ],
+ [ 'videotypes', 'intid' ],
+ );
+
+ switch ($option) {
+ case "scrub" { # delete the rows from the table
+ foreach my $table (@table_list) {
+ do_query("DELETE FROM @$table[0] WHERE @$table[1] < $beginning_of_user_index;");
+ do_query("ALTER TABLE @$table[0] AUTO_INCREMENT = 0;");
+ }
+ }
+ case "protect" {
+ foreach my $table (@table_list) {
+ do_query("ALTER TABLE @$table[0] AUTO_INCREMENT = $beginning_of_user_index;");
+ }
+ }
+ }
+ } else {
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+sub poll_options {
+ my($option) = @_;
+ switch ($option) {
+ case "scrub" {
+ recommendation_level("recommended", "This is required to ensure that other KnoppMyth SQL Tweaks work.");
+ }
+ case "protect" {
+ recommendation_level("recommended", "This is required to ensure that other KnoppMyth SQL Tweaks do not clobber user-made changes.");
+ }
+ }
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
+
+
diff --git a/abs/not_built/core/tweaker/bin/twk_tuners.pl b/abs/not_built/core/tweaker/bin/twk_tuners.pl
new file mode 100755
index 0000000..22c6a23
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_tuners.pl
@@ -0,0 +1,491 @@
+#!/usr/bin/perl -w
+
+# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'all' ); # When Tweaker handles multiple instances of a script, this will be expanded to
+# handle options for a given card, based on what it supports, e.g. ATSC, QAM, NTSC-coax, NTSC-Svideo, etc.
+# The current version of this script will run once and set up defaults for all detected cards, choosing
+# a default configuration based on some assumptions of common usage. Modes in this array should be listed
+# from least desirable to most desirable. E.g. ["NTSC", "ATSC", "QAM"]
+
+my @capture_card_patterns = (
+ # DIGITAL
+ # -------
+ # ATSC-only devices
+ [ "pcHDTV hd-2000", [".*0400.*109e.*036e.*r11.*7063.*2000.*"],
+ ["DVB", ["ATSC"]]],
+# [ "BBTI Air2PC v2", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; mihanson
+# ["DVB", ["ATSC"]]],
+
+ # DVB-T devices
+ [ "DViCO FusionHDTV DVB-T Lite", [".*0400.*109e.*036e.*r11.*18ac.*db10.*"],
+ # secondary device "0480" "109e" "0878" -r11 "18ac" "d500"
+ ["DVB", ["DVB-T"]]],
+ [ "DViCO FusionHDTV DVB-T1", [".*0400.*14f1.*8800.*18ac.*db00.*"],
+ ["DVB", ["DVB-T"]]], # also has composite and S-Video in for frame grabbing
+ [ "DViCO FusionHDTV DVB-T Plus", [".*0400.*14f1.*8800.*8800.*db10.*"],
+ ["DVB", ["DVB-T"]]],
+ [ "DViCO FusionHDTV dual Express", [".*0400.*14f1.*8852.*18ac.*db78.*"],
+ ["DVB", ["DVB-T"]]],
+ [ "Twinhan VisionPlus DVB-T", [".*0400.*109e.*036e.*r11.*1822.*0001.*"], # ??? dupe 2; jbman, Girkers
+ ["DVB", ["DVB-T"]]],
+# [ "EU Hauppauge PVR-500 (DVB-T)", [".*0400.*4444.*0016.*0070.*e807.*"],
+# ["DVB", ["DVB-T"]]],
+ [ "Avermedia A777", [".*0480.*1131.*7133.*1461.*2c05.*", ".*0480.*1131.*7134.*1461.*2c05.*"],
+ ["DVB", ["DVB-T"]]],
+ [ "Compro T300", [".*0480.*1131.*7134.*185b.*c900.*", ".*0480.*1131.*7134.*7134.*c900.*"],
+ ["DVB", ["DVB-T"]]],
+
+ # DVB-C devices
+ [ "Siemens DVB-C", [".*0480.*1131.*7146.*110a.*0000.*"],
+ ["DVB", ["DVB-C"]]],
+
+ # DVB-S devices
+ [ "VisionPlus 1020A", [".*0480.*109e.*0878.*1822.*0001.*"],
+ ["DVB", ["DVB-S"]]],
+# [ "Technisat Skystar2", [".*0280.*13d0.*2103.*r01.*13d0.*2103.*"], # ??? dupe 1; nbdwt73, neutron68
+# ["DVB", ["DVB-S"]]],
+ [ "Twinhan 102g", [".*0400.*109e.*036e.*r11.*1822.*0001.*"], # ??? dupe 2; neutron68
+ # secondary device "0480" "109e" "0878" -r11 "1822" "0001"
+ ["DVB", ["DVB-S"]]],
+
+ # ATSC/QAM devices
+ [ "Kworld ATSC-110", [".*0480.*1131.*7133.*17de.*"],
+ ["DVB", ["ATSC", "QAM"]]],
+ [ "pcHDTV hd-3000", [".*0400.*14f1.*8800.*3000.*"],
+ ["DVB", ["ATSC", "QAM"]]], # the hd-3000 has several sub-devices; this pattern matches the digital tuner
+ [ "BBTI HD5000AV / AirStar 2 TV", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; manicmike
+ ["DVB", ["ATSC", "QAM", "DVB-T"]]],
+ [ "pcHDTV hd-5500", [".*0400.*14f1.*8800.*7063.*5500.*"],
+ ["DVB", ["ATSC", "QAM"]]],
+ [ "Hauppauge WinTV-HVR-1800", [".*0400.*14f1.*8880.*0070.*7801.*"],
+ ["DVB", ["ATSC", "QAM"]]],
+ [ "DViCO Fusion Express", [".*0400.*14f1.*8852.*r02.*18ac.*d500.*"],
+ ["DVB", ["ATSC", "QAM"]]],
+
+ # card has one sub-device; this pattern matches the primary device
+ [ "DViCO Fusion HDTV5 Lite", [".*0400.*109e.*036e.*r11.*18ac.*d500.*"],
+ # secondary device "0480" "109e" "0878" -r11 "18ac" "d500"
+ ["DVB", ["ATSC", "QAM"]]],
+
+ # ANALOG
+ # -------
+ # NTSC cards
+ # MPEG-2 type
+ [ "Hauppauge PVR-150", [".*0400.*4444.*0016.*0070.*8003.*", ".*0400.*4444.*0016.*0070.*8801.*"],
+ ["MPEG", ["NTSC"]]],
+ [ "Hauppauge PVR-250", [".*0200.*10ec.*8139.*1799.*5000.*", ".*0400.*4444.*0016.*0070.*4009.*", ".*0400.*4444.*0016.*0070.*f7f9.*"],
+ ["MPEG", ["NTSC"]]],
+ [ "Hauppauge PVR-350", [".*0400.*4444.*0803.*0070.*4000.*"],
+ ["MPEG", ["NTSC"]]],
+
+ # NTSC/PAL cards
+ # MPEG-2 type
+ [ "Hauppauge PVR-500", [".*0400.*4444.*0016.*0070.*e817.*", ".*0400.*4444.*0016.*0070.*e807.*"], # look for each of two devices on the card, since it's dual-tuner
+ ["MPEG", ["NTSC"]]],
+
+ # Frame grabbers
+# [ "bt878-based frame grabbers", [".*0400.*109e.*036e.*", ".*0480.*109e.*0878.*"],
+# ["V4L", ["NTSC"]]],
+
+ # USB patterns
+
+ [ "Dvico Dual Digital 4 rev2", [".* 0fe9:db98 .*"],
+ ["DVB", ["DVB-T"]]],
+ );
+
+# "Hauppauge Nova-T 500 Dual DVB-T"
+
+#T: Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
+#D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
+#P: Vendor=2040 ProdID=9941 Rev= 1.00
+#S: Manufacturer=Hauppauge
+#S: Product=WinTV Nova-DT
+#S: SerialNumber=4027351140
+#C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
+#I:* If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=dvb_usb_dib0700
+#E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
+#E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+#E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+#E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+
+# "Hauppauge Nova-T-500"
+
+#T: Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
+#D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
+#P: Vendor=2040 ProdID=9950 Rev= 1.00
+#S: Manufacturer=Hauppauge
+#S: Product=WinTV Nova-DT
+#S: SerialNumber=4027353863
+#C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
+#I: If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=dvb_usb_dib0700
+#E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
+#E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+#E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+#E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ my $logger = get_logger('tweaker.script');
+
+ # Get a list of all PCI and USB devices for later processing
+ my @device_list = split('\n', execute_shell_command("lspci -mn ; lsusb"));
+
+ # Iterate through the list of known tuner cards, then the list of known network tuners.
+ # For each known tuner, configure a safe default for it if it's found. Set up
+ # well-named video sources for any mode supported by any tuner, and pick a default.
+
+ # Determine the recording priority for a given device using the following priority rules,
+ # from top to bottom, the top being the most significant, and the bottom being the least
+ # significant
+
+ # Input types in order of decreasing priority:
+ # Digital cable, digital satellite, digital OTA, analog cable, analog line-in, analog OTA
+
+ # Device types in order of decreasing priority:
+ # local device, remote device
+
+ # Capture types in order of decreasing priority:
+ # MPEG-2 creators (or passthrough of MPEG-2), MPEG-4 creators, frame grabbers
+
+ # For example, if device1 supports a better input type than device2, device1 is always preferred.
+ # Ties are broken by the next level down. For example, if device1 and device2 both support the
+ # same input type, the tie is broken based on whether it's a local or remote device. Finally,
+ # ties of input type and device type are broken by the output of the device. It should be
+ # noted that it's possible to tie in all categories, and MythTV will break ties based on the
+ # order in which the devices are defined.
+
+
+ # For the following subroutines, $relative_device_count represents which device this is in
+ # the context of the total devices of its type. $global_device_count represents which device
+ # this is amongst all capture devices. Each returns a list of row names and values
+ # for the capturecard table, appropriate for the relevant type of device.
+
+ # Create an entry in the capturecard table for the given tuner.
+ sub make_capturecard_SQL {
+ my($global_device_count, $relative_device_count, $cardtype, $tuner_number)=@_;
+ # $tuner_number is only used for HDHomeRuns
+ my $defaultinput="";
+ my $hostname = execute_shell_command("hostname") || "localhost";
+ my $checkfields = [["cardid", "$global_device_count"],
+ ["hostname", "$hostname"],
+ ["cardtype", "$cardtype"]];
+ my $setfields;
+ my $logger = get_logger('tweaker.script');
+
+ # Because other devices use the /dev/video* and /dev/vbi* device
+ # files, the "device count" is used to determine which number follows the base
+ # device file name, e.g. /dev/video1, /dev/vbi1
+ sub make_V4L_capturecard_SQL {
+ my($relative_device_count)=@_; # 0-indexed
+
+ return [["videodevice", "/dev/video$relative_device_count"],
+ ["audiodevice", "/dev/dsp"],
+ ["vbidevice", "/dev/vbi$relative_device_count"],
+ ["audioratelimit", "0"]];
+ }
+
+ # Because other devices use the /dev/video* and /dev/vbi* device
+ # files, the "device count" is used to determine which number follows the base
+ # device file name, e.g. /dev/video1, /dev/vbi1
+ sub make_MPEG_capturecard_SQL {
+ my($relative_device_count, $defaultinput)=@_; # 0-indexed
+
+ return [["videodevice", "/dev/video$relative_device_count"],
+ ["defaultinput", $defaultinput]];
+ }
+
+ sub make_DVB_capturecard_SQL {
+ my($relative_device_count, # 0-indexed
+ $defaultinput)=@_;
+ my $logger = get_logger('tweaker.script');
+
+ $logger->debug("DEFAULTINPUT: $defaultinput");
+
+ return [["videodevice", "$relative_device_count"], # Rather than being a device file, it's a 0-indexed value indicating
+ # which of the N available DVB devices this is. Since a card can have more than one DVB device on it, there may
+ # be more DVB "videodevice"s on a system than there are distinct "cardid"s.
+ ["defaultinput", $defaultinput],
+ ["dvb_on_demand", "1"]];
+ }
+
+ # special case of DVB device
+ sub make_HDHOMERUN_capturecard_SQL {
+ my($hdhr_hex_id, $tuner_number, $defaultinput)=@_;
+
+ return [["videodevice", "$hdhr_hex_id"],
+ ["defaultinput", $defaultinput],
+ ["dvb_on_demand", "0"],
+ ["dbox2_port", $tuner_number] # 0 or 1
+ ];
+ }
+
+ $logger->debug("CARD TYPE: $cardtype");
+ switch($cardtype) {
+ case "V4L" {
+ $setfields = make_V4L_capturecard_SQL($relative_device_count);
+ }
+ case "DVB" {
+ $defaultinput = "DVBInput";
+ $setfields = make_DVB_capturecard_SQL($relative_device_count, $defaultinput);
+ }
+ case "HDHOMERUN" {
+ $defaultinput = "MPEG2TS";
+ $setfields = make_HDHOMERUN_capturecard_SQL($relative_device_count, $tuner_number, $defaultinput);
+ }
+ case "MPEG" {
+ $defaultinput = "Tuner 1";
+ $setfields = make_MPEG_capturecard_SQL($relative_device_count, $defaultinput);
+ }
+ }
+
+ change_or_make_entry("capturecard", $setfields, $checkfields);
+ return $defaultinput;
+ }
+
+ # Create an entry in videosource corresponding to the sub-type of input this device takes
+ # Return the sourceid for the entry we just made, which is a rough metric of desirability.
+ sub verify_or_make_videosource_SQL {
+ # sub-types are NTSC, PAL, ATSC, QAM, DVB-S, DVB-T, DVB-C, etc.
+ my($sub_type)=@_;
+ my $logger = get_logger('tweaker.script');
+
+ $logger->debug("\t\t\tUpdating or adding videosource for sub-type: $sub_type");
+
+ switch($sub_type) {
+ # North American options, from least desirable to most desirable (this is slightly arbitrary)
+ case "NTSC" {
+ change_or_make_entry("videosource", [["name", "analog_broadcast"], ["freqtable", "try-all"]], [["sourceid", 1]]);
+ # This is one of two cases where a sub_type can be used in two ways. Both videosources are made, but the preferred one is
+ # cable, the most common option.
+ change_or_make_entry("videosource", [["name", "analog_cable"], ["freqtable", "try-all"]], [["sourceid", 5]]);
+ return 5;
+ }
+ case "ATSC" {
+ change_or_make_entry("videosource", [["name", "digital_broadcast"], ["freqtable", "try-all"]], [["sourceid", 10]]);
+ return 10;
+ }
+ case "QAM" {
+ change_or_make_entry("videosource", [["name", "digital_cable"], ["freqtable", "try-all"]], [["sourceid", 20]]);
+ return 20;
+ }
+
+ # Options for the rest of the planet
+ case "PAL" {
+ change_or_make_entry("videosource", [["name", "analog_broadcast"], ["freqtable", "try-all"]], [["sourceid", 1]]);
+ # This is one of two cases where a sub_type can be used in two ways. Both videosources are made, but the preferred one is
+ # cable, the most common option.
+ change_or_make_entry("videosource", [["name", "analog_cable"], ["freqtable", "try-all"]], [["sourceid", 5]]);
+ return 5;
+ }
+ case "DVB-T" {
+ change_or_make_entry("videosource", [["name", "digital_broadcast"], ["freqtable", "try-all"]], [["sourceid", 10]]);
+ return 10;
+ }
+ case "DVB-C" {
+ change_or_make_entry("videosource", [["name", "digital_cable"], ["freqtable", "try-all"]], [["sourceid", 20]]);
+ return 20;
+ }
+
+ # Planet-wide options
+ case "DVB-S" {
+ change_or_make_entry("videosource", [["name", "digital_satellite"], ["freqtable", "try-all"]], [["sourceid", 15]]);
+ return 15;
+ }
+ }
+ }
+
+ sub make_cardinput_SQL {
+ my($tuner_card_number, $sourceid, $inputname, $priority_modifier)=@_;
+
+ change_or_make_entry("cardinput", [["sourceid", $sourceid], ["cardid", $tuner_card_number],
+ ["inputname", $inputname], ["preference", $sourceid], ["tunechan", ""],
+ ["startchan", "Please add"], ["freetoaironly", "1"],
+ ["recpriority", $sourceid+$priority_modifier]],
+ [["cardinputid", $tuner_card_number]]);
+ }
+
+ sub max {
+ my($a, $b)=@_;
+ if ($a > $b) {
+ return $a;
+ } else {
+ return $b;
+ }
+ }
+
+ my $global_device_count=0;
+
+ # Configure each supported tuner/capture device detected on the system.
+
+ # built-in, PCI, PCI Express, or USB
+ $logger->debug("Processing built-in, PCI, PCI Express or USB devices...");
+ for my $a_device (@device_list) {
+ $logger->debug("DEVICE: $a_device");
+ my $match=0;
+
+ for my $device_data (@capture_card_patterns) {
+ $logger->debug("\tIs there a @$device_data[0] at this location?");
+
+ for my $patterns (@$device_data[1]) {
+ for my $pattern (@$patterns) {
+ if ($match) {
+ next;
+ } else {
+ $logger->debug("\t\tPATTERN: $pattern");
+ $match += ($a_device =~ m/$pattern/i);
+ if ($match) {
+ $global_device_count++; # 1-indexed
+
+ $logger->debug("\t\tfound one!");
+ # Each device has a device type (e.g. MPEG, DVB, V4L) that it supports, and a
+ # list of sub_types (e.g. PAL, NTSC, DVB-S, DVB-T, DVB-C, ATSC, QAM).
+ # The device type is used to configure the capturecard table and the cardinput table.
+ # The sub_types are used to populate the videosource table.
+ # The device type and "best" sub_type are used to set the 'sourceid' field of the cardinput table.
+
+ for my $typeblock (@$device_data[2]) {
+ my $device_type = @$typeblock[0];
+ $logger->debug("\t\tDEVICE TYPE: $device_type"); # e.g. "DVB", "MPEG", etc.
+ $cardtypes{$device_type}++;
+ my $sourceid = -1;
+ for my $sub_types (@$typeblock[1]) {
+ for my $sub_type (@$sub_types) {
+ $logger->debug("\t\tSUB-TYPE: $sub_type\n"); # e.g. "DVB-S", "QAM", etc.
+ # ensure that the videosource table has an entry for each sub_type
+ # that this device supports; use the "best" one for the device by
+ # default
+
+ #
+ # POPULATE videosource table
+ #
+ $sourceid = max(verify_or_make_videosource_SQL($sub_type), $sourceid);
+ }
+ }
+ $logger->debug("\t\t\"BEST\" SOURCE ID: $sourceid\n");
+
+ #
+ # POPULATE capturecard table
+ #
+ my $defaultinput = make_capturecard_SQL($global_device_count, $cardtypes{$device_type}-1, $device_type, -1);
+
+ #
+ # POPULATE cardinput table
+ #
+ make_cardinput_SQL($global_device_count, $sourceid, $defaultinput, 0);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ # network tuner devices
+ $logger->debug("Processing network devices...");
+
+ # get our IP address
+ my $ip_address;
+ open(SHELL, "ifconfig | grep \"inet addr\" | grep -v 127 |");
+ while(<SHELL>) {
+ my @line = split(/:| +/);
+ $ip_address = $line[3];
+ }
+ close(SHELL);
+
+ # ??? eventually, just add LocalIPCheck.pl's code to Tweaker/Script.pm and avoid bizarre perl-to-shell-to-perl calls at this level
+ my $ip_class = execute_shell_command("echo $ip_address | LocalIPCheck.pl; echo \$?");
+
+ if ($ip_class > 0) { # we're on a LAN, not the internet
+ # Look for HDHomeRun, a DVB ATSC/QAM device
+ $sourceid=0;
+ $logger->debug("\tLooking for SiliconDust HDHomeRun...");
+ open(SHELL2, "hdhomerun_config discover |");
+ while(<SHELL2>) {
+ if (m/\d+\.\d+\.\d+\.\d+/) {
+ my @line = split(/ /);
+ my $hdhr_hex_id = $line[2];
+
+ $logger->debug("\tfound $hdhr_hex_id");
+ $global_device_count++; # 1-indexed
+ $cardtypes{"DVB"}++;
+ #
+ # POPULATE videosource table
+ #
+ for my $sub_type ("ATSC", "QAM") {
+ $sourceid = max(verify_or_make_videosource_SQL($sub_type), $sourceid);
+ }
+ $logger->debug("\t\t\"BEST\" SOURCE ID: $sourceid\n");
+
+ #
+ # POPULATE capturecard table
+ #
+
+ # there are two tuners per HDHomeRun
+ for (my $sub_tuner_count = 0; $sub_tuner_count < 2; $sub_tuner_count++) {
+ my $defaultinput = make_capturecard_SQL($global_device_count+$sub_tuner_count, $hdhr_hex_id, "HDHOMERUN", $sub_tuner_count);
+ #
+ # POPULATE cardinput table
+ #
+ make_cardinput_SQL($global_device_count+$sub_tuner_count, $sourceid, $defaultinput, -4); # the -4 is to make it less desirable
+ # than a local device
+ }
+ $global_device_count++;
+
+ }
+ }
+ close(SHELL2);
+ } # else: don't scan the internet!
+
+ # Filesystem Tweaks for tuners
+ # This only works with the Nova-T-500 card, but it doesn't hurt any other cards
+ execute_shell_command("echo \"#switch on onboard amplifier on Nova-T-500 card\" > /etc/modprobe.d/dvb-usb-dib0700");
+ execute_shell_command("echo \"options dvb-usb-dib0700 force_lna_activation=1\" >> /etc/modprobe.d/dvb-usb-dib0700");
+ } else {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("Unable to connect to mythconverg database");
+ $logger->error("Unable to implement option $option.");
+ return -1;
+ }
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+
+ recommendation_level("recommended", "Everyone should scan for tuners to autoconfigure.");
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_tuners_notes.txt b/abs/not_built/core/tweaker/bin/twk_tuners_notes.txt
new file mode 100644
index 0000000..1f2e283
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_tuners_notes.txt
@@ -0,0 +1,55 @@
+# Some PCI devices have the same lspci -mn fingerprint, yet users are identifying them as having different functions. The example below is reported as an ATSC(DVB-T) card by one user and as a DVB-S card by two other users. lspci -vvxxx provides more fingerprint data, and I'm trying to see if there's a definitive way to tell the cards apart from it.
+
+ [ "BBTI Air2PC v2", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; mihanson
+ ["DVB", ["ATSC"]]],
+ # mihanson lspci -vvxxx info:
+
+#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
+#10: 00 00 64 ed 81 70 00 00 00 00 00 00 00 00 00 00
+#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
+#30: 00 00 00 00 00 00 00 00 00 00 00 00 0c 01 00 00
+
+#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
+#10: 00 00 65 ed a1 70 00 00 00 00 00 00 00 00 00 00
+#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
+#30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+
+#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
+#10: 00 00 66 ed c1 70 00 00 00 00 00 00 00 00 00 00
+#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
+#30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00
+
+#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
+#10: 00 00 67 ed e1 70 00 00 00 00 00 00 00 00 00 00
+#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
+#30: 00 00 00 00 00 00 00 00 00 00 00 00 0c 01 00 00
+
+# Among the above, there are only three sections that
+# differ, shown by XX:
+#10: -- -- XX -- XX -- -- -- -- -- -- -- -- -- -- --
+#30: -- -- -- -- -- -- -- -- -- -- -- -- XX -- -- --
+
+
+ [ "Technisat Skystar2", [".*0280.*13d0.*2103.*r01.*13d0.*2103.*"], # ??? dupe 1; nbdwt73, neutron68
+ ["DVB", ["DVB-S"]]],
+ # Neutron68 lspci -vvxxx info:
+#00: d0 13 03 21 07 01 00 04 01 00 80 02 00 40 00 00
+#10: 00 00 ae fa 81 c8 00 00 00 00 00 00 00 00 00 00
+#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
+#30: 00 00 00 00 00 00 00 00 00 00 00 00 05 01 00 00
+
+# when compared with mihanson's blocks, these entries differ:
+#00: -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- --
+#10: -- -- XX XX XX XX XX -- -- -- -- -- -- -- -- --
+#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+#30: -- -- -- -- -- -- -- -- -- -- -- -- XX -- -- --
+
+# eliminating the entries that even differ among mihanson's devices, we get:
+#00: -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- --
+#10: -- -- -- XX -- XX XX -- -- -- -- -- -- -- -- --
+#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+#30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# Without more feedback, it's not clear whether or not this pattern is representative
+# of the differences between the DVB-S and ATSC versions of this device.
+
diff --git a/abs/not_built/core/tweaker/bin/twk_upgrade.pl b/abs/not_built/core/tweaker/bin/twk_upgrade.pl
new file mode 100755
index 0000000..b5d09b6
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_upgrade.pl
@@ -0,0 +1,190 @@
+#!/usr/bin/perl -w
+
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+#
+# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
+#
+# Tweaker 0.7 is not interactive, so these post-upgrade changes are a stopgap
+# measure to make sure people upgrading from R5F27 get sensible settings
+# for things that MythTV 0.21 doesn't know how to handle properly. This file
+# should shrink or disappear entirely once Tweaker becomes interactive.
+#
+# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
+#
+
+use Switch;
+use Tweaker::Script;
+package Tweaker::Script;
+
+set_known_options( 'all' );
+
+# Try to implement the given option.
+sub implement_option {
+ my($option) = @_;
+
+ $dbconnectionstring = get_mythtv_connection_string();
+
+ if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
+ # use poll results from twk_cpu.pl to set playback decoder options
+ my @levels = ("low", "medium", "high");
+ foreach my $level (@levels) {
+ my @results = split(/\|/, execute_shell_command("twk_cpu.pl --poll $level"));
+ foreach my $result (@results) {
+ if ($result eq "recommended") {
+ if ("$level" eq "low") {
+ change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU--') || exit -1; # best playback defaults for weak hardware
+ } elsif ("$level" eq "medium") {
+ change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU+') || exit -1; # best playback defaults for average hardware
+ } elsif ("$level" eq "high") {
+ change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware
+ }
+ }
+ }
+ }
+
+ # Update visualization modes for 0.21
+ change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;LibVisual-jakdaw;LibVisual-jess;AlbumArt');
+
+ # Remove possibly obsolete and conflicting theme cache entries.
+ execute_shell_command("/bin/rm -rf /home/mythtv/.mythtv/themecache/");
+
+ # Fix bizarre ownership of files:
+ execute_shell_command("chown -f root: /usr/bin/get_dual.sh");
+ execute_shell_command("chown -fR root: /usr/lib/krp");
+ execute_shell_command("chown -fR root: /usr/local/bin");
+ execute_shell_command("chown -f root: /usr/share/man/man1/tv_grab_au.1.gz");
+ execute_shell_command("chown -f root: /usr/share/xmltv/tv_grab_au/channel_ids");
+ execute_shell_command("chown -fR root:src /usr/src/");
+
+ # Fix video problems for some nVidia users
+ execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i -e 's/^[ \t]*Option.*\"XvmcUsesTextures\".*/#REMOVEME/g' -e 's/^[ \t]*Option.*\"UseEvents\".*/#REMOVEME/g' /etc/X11/xorg.conf"); # clear out old entries, if present
+ execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i -n '1h;2,\$H;\${g;s/#REMOVEME\\n//g;p}' /etc/X11/xorg.conf"); # clear out old entries, if present
+ execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i 's/\\(^[ \t]*Driver.*\"nvidia\".*\\)/\\1\\n\tOption \"XvmcUsesTextures\" \"false\"\\n\tOption \"UseEvents\" \"true\"/g' /etc/X11/xorg.conf");
+ execute_shell_command("if [ -e /home/mythtv/.nvidia-settings-rc ] ; then sed -i -e \"s'.*XVideoTextureSyncToVBlank.*'#REMOVEME'g\" -e \"s'.*XVideoBlitterSyncToVBlank.*'#REMOVEME'g\" /home/mythtv/.nvidia-settings-rc; fi");
+ execute_shell_command("grep nvidia /etc/X11/xorg.conf && echo 0/XVideoTextureSyncToVBlank=0 >> /home/mythtv/.nvidia-settings-rc && echo 0/XVideoBlitterSyncToVBlank=0 >> /home/mythtv/.nvidia-settings-rc && sed -i -n '1h;2,\$H;\${g;s/#REMOVEME\\n//g;p}' /home/mythtv/.nvidia-settings-rc");
+
+
+ # Enable any digital audio out device we can.
+ my $command = "amixer scontrols | grep IEC958";
+ my @results = split('\n', execute_shell_command($command));
+ foreach my $line (@results) {
+ if ($line =~ /Simple mixer control (.*),.*/i) {
+ $command = "su - mythtv -c \"amixer set $1 on\""; # Tries to set all IEC958 devices to 'on'
+ # but some are just placeholders and can't be turned 'on', therefore don't error out if we fail
+ execute_shell_command($command);
+ }
+ }
+ execute_shell_command("alsactl store"); # persist the above change(s)
+
+ # The Chaintech AV-710 was generally configured for digital audio in R5F27 in a way that worked
+ # great there but which is failing utterly in R5.5. Try to detect this old configuration, and if
+ # it's present, implement the new settings which seem to work for all digital audio devices.
+ # This may only match 80% of the AV-710 users, but the rest of them can just run the necessary
+ # tweaker command by hand to get the same result.
+ if (execute_shell_command('lspci -mn | grep -e ".*0401.*1412.*1724.*1412.*1724"')) {
+ # found an AV-710, now see if it's configured for digital audio
+ if (do_query("SELECT * FROM settings WHERE value='AudioOutputDevice' AND data='/dev/adsp'")) {
+ # The user was using this AV-710's spdif output, so give them the new good digital configuration
+ execute_shell_command("twk_audio.pl --implement digital");
+ }
+ }
+ change_or_make_setting('MixerDevice', 'ALSA:default') || exit -1;
+
+ # Undo obsolete mplayer workaround for aspect ratio
+ execute_shell_command("sed -i 's/.*monitoraspect.*//g' /home/mythtv/.mplayer/config");
+
+ my $hostname = execute_shell_command("hostname") || "localhost";
+ # one table at a time, replace hostname with our actual hostname
+ # ??? can this be done all at once in MySQL?
+ foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists",
+ "musicplaylist", "recorded", "settings", "weatherscreens") {
+ do_query("UPDATE $table SET hostname='$hostname'");
+ }
+
+ # Some entries in 'settings' should stay NULL: http://www.mythtv.org/wiki/index.php/Settings_table
+ # There are fewer entries that stay NULL than there are that should have the hostname set, so while
+ # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's
+ # easier to maintain and more future-proof.
+ foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus",
+ "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime",
+ "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable",
+ "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout",
+ "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime",
+ "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand",
+ "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost",
+ "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand",
+ "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2",
+ "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword",
+ "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod",
+ "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge",
+ "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder",
+ "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1",
+ "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime",
+ "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs",
+ "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd",
+ "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer",
+ "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer",
+ "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") {
+ do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'");
+ }
+
+ change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log');
+ change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here
+ do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'");
+
+ disconnect_from_db();
+
+ # Fix hostname for iPod feed URLs
+ $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod";
+ execute_shell_command($command);
+
+ # Fix hostname for XViD feed URLs
+ $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3";
+ execute_shell_command($command);
+
+ # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
+ # online stream options.
+ #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
+ $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
+ execute_shell_command($command);
+
+ } else {
+ my $logger = get_logger('tweaker.script');
+ $logger->error("ERROR: Unable to connect to mythconverg database");
+ $logger->error("ERROR: Unable to implement option $option.");
+ exit -1;
+ }
+ disconnect_from_db();
+}
+
+# Try to get a Recommendation Level for $option.
+sub poll_options {
+ my($option) = @_;
+ recommendation_level("recommended", "These tweaks benefit all users.");
+}
+
+# Unimplemented in 0.7
+sub check_option {
+ help;
+}
+
+# Unimplemented in 0.7
+sub count_iterations {
+ help;
+}
+
+process_parameters;
diff --git a/abs/not_built/core/tweaker/bin/twk_what_has_changed.sh b/abs/not_built/core/tweaker/bin/twk_what_has_changed.sh
new file mode 100755
index 0000000..deff7cf
--- /dev/null
+++ b/abs/not_built/core/tweaker/bin/twk_what_has_changed.sh
@@ -0,0 +1,183 @@
+#!/bin/bash
+
+# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv
+# and Tom Culliton of <affiliation>. Most of restore_baseline_SQL taken from
+# KnoppMyth R5F27's /usr/local/bin/KnoppMyth-run script (multiple authors)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+#----------------------------------------------------------------------------
+. /usr/local/bin/backupcommon || {
+ echo "Can not find common settings!"
+ exit 1
+}
+#----------------------------------------------------------------------------
+
+# Target output file for our results
+DIFF_RESULTS=/tmp/database_changes.txt
+LOGFILE=/var/log/twk_what_has_changed.log
+WORKING_DIR=/tmp/
+
+# Restore the SQL to the way it would have been after R5F27 was installed
+# and before the user made any changes to MythTV settings.
+# This is KnoppMyth-centric and does not apply to general MythTV distros,
+# however it is possible to generalize this to apply to any MythTV distro
+# including generic Linux distros in which MythTV has been installed.
+#
+# Preconditions: MySQL daemon is running
+#
+# Postconditions: 'mythconverg' is deleted and re-created, just as it
+# would be during the course of a normal installation.
+restore_baseline_SQL() {
+ echo "restoring baseline SQL" >> $LOGFILE
+ KRP_RESULT=-1
+ KRPAutoDetect.pl &> /dev/null # be quiet
+ KRP_RESULT=$?;
+
+ # Parts from R5F27's KnoppMyth-run
+ KNOPPMYTH_SQL_FILE="/usr/local/share/knoppmyth/KnoppMyth.sql"
+
+ # Try to detect and configure settings for various tuner
+ # and capture devices.
+ /usr/local/bin/TunerConfig.sh $KNOPPMYTH_SQL_FILE >> /dev/null
+ /usr/local/bin/ren_host.sh
+ GlobalSQLtweaker.sh $KNOPPMYTH_SQL_FILE
+
+ if [[ ($KRP_RESULT != 1) && ($KRP_RESULT != 2) && ($KRP_RESULT != 3) && ($KRP_RESULT != 10) && (-n "$IS_AUS") ]]; then # not Dragon
+ /usr/local/bin/epia_sql.sh
+ fi
+
+ # General MythTV SQL settings for all boxes
+ if [ -f "/usr/local/bin/MythTV-sql" ]; then
+ # Interject platform-specific SQL settings before we populate the SQL
+ # database.
+ if [[ ($KRP_RESULT == 1) || ($KRP_RESULT == 2) || ($KRP_RESULT == 3) || ($KRP_RESULT == 10) ]]; then # Dragon
+ DragonSQLtweaker.sh $KNOPPMYTH_SQL_FILE
+ fi
+ # Now use the (possibly modified) KnoppMyth.sql to populate initial
+ # MythTV settings.
+
+ # This wipes out the current mythconverg and replaces it with what's in $KNOPPMYTH_SQL_FILE
+ sh /usr/local/bin/MythTV-sql $KNOPPMYTH_SQL_FILE
+ fi
+
+ echo \
+ "MythTV will re-launch in a tiny window. If it asks you about
+upgrading the schema, agree. When the schema upgrade is complete,
+exit MythTV.
+You can exit MythTV immediately if you aren't asked to do a schema
+upgrade."
+ echo "###"
+ echo "Press ENTER to re-launch MythTV."
+ read CONTINUE;
+ restart_mythtv "--geometry 640x480"
+}
+
+# Call mysql and only dump the requested data in tab seperated columns
+get_data () {
+ mysql mythconverg -u root -sNBe "$*"
+}
+
+# Compares $MYTHTV_EXPECTED_DB_NAME to $USERS_DB_NAME
+compare_databases() {
+ echo "comparing databases" >> $LOGFILE
+ tables_to_compare="capturecard cardinput codecparams displayprofilegroups displayprofiles dtv_multiplex keybindings playgroups profilegroups recordingprofiles settings videotypes weatherdatalayout weatherscreens weathersourcesettings"
+ hostnames=$(get_data "select distinct hostname from settings where hostname is not null")
+
+ /etc/init.d/mysql start >> $LOGFILE
+ # Do some MySQL magic to compare $tables_to_compare between
+ # $MYTHTV_EXPECTED_DB_NAME (baseline) and $USERS_DB_NAME (user's version)
+ # ???
+}
+
+# This is somewhat KnoppMyth-centric, though minor modification would
+# make it work generally.
+function restart_mythtv {
+ echo "restarting MythTV" >> $LOGFILE
+ EXTRA_PARAMETERS=$1 ; shift
+ /etc/init.d/mythtv-backend start >> $LOGFILE
+ killall mythfrontend
+ # re-launches the frontend and gives the user a chance to upgrade to latest schema
+ su - mythtv -c "export DISPLAY=:0.0 ; mythfrontend --logfile /var/log/mythtv/mythfrontend.log $EXTRA_PARAMETERS" >> $LOGFILE
+}
+
+function rename_database {
+ db_source=$1 ; shift
+ db_target=$1 ; shift
+
+ echo "renaming database $db_source to $db_target" >> $LOGFILE
+
+ # Exit the frontend before messing with the SQL
+ killall mythfrontend
+ # If we stop MySQL before stopping the MythTV backend, we'll probably trigger badness
+ /etc/init.d/mythtv-backend stop >> $LOGFILE
+ # MySQL needs to stop before we do this.
+ /etc/init.d/mysql stop >> $LOGFILE
+ /bin/mv $db_source $db_target
+}
+
+main() {
+ echo -n "$0 started running: " >> $LOGFILE
+ date >> $LOGFILE
+
+ echo "STEP 0..."
+ echo "STEP 0" >> $LOGFILE
+ # 0) acquire system settings
+ MYTHTV_EXPECTED_DB_NAME=`grep DBName /etc/mythtv/mysql.txt | awk -F= '{ print $2 }'`
+ USERS_DB_NAME="mythconverg-copy"
+ /etc/init.d/mysql start >> $LOGFILE
+ # MySQL needs to be running or mysqladmin won't return anything
+ SQL_HOME=`mysqladmin variables | grep datadir | awk -F\| '{ print $3 }' | sed 's/ //g'`
+
+ echo "STEP 1..."
+ echo "STEP 1" >> $LOGFILE
+ # 1) rename the current MythTV MySQL database
+ rename_database $SQL_HOME$MYTHTV_EXPECTED_DB_NAME $WORKING_DIR$USERS_DB_NAME
+
+ echo "STEP 2..."
+ echo "STEP 2" >> $LOGFILE
+ # 2) re-create the R5F27 baseline SQL.
+ /etc/init.d/mysql start >> $LOGFILE
+ restore_baseline_SQL
+
+ echo "STEP 3..."
+ echo "STEP 3" >> $LOGFILE
+ # 3) compare the fresh baseline DB with the user's modified DB, and save the
+ # diffs to a text file
+ # ???
+
+ echo "STEP 4..."
+ echo "STEP 4" >> $LOGFILE
+ # 4) restore the user's database
+ rename_database $WORKING_DIR$USERS_DB_NAME $SQL_HOME$MYTHTV_EXPECTED_DB_NAME
+ /etc/init.d/mysql start >> $LOGFILE
+
+ echo "STEP 5..."
+ echo "STEP 5" >> $LOGFILE
+ # 5) Tell them the comparison is done, tell them where to find the results,
+ # and prompt them to restart MythTV.
+ echo "Your results are in $DIFF_RESULTS"
+ echo "###"
+ echo "Press ENTER to re-launch MythTV."
+ read CONTINUE;
+
+ restart_mythtv "&"
+ echo "DONE"
+ echo -n "$0 stopped running: " >> $LOGFILE
+ date >> $LOGFILE
+}
+
+main
+
diff --git a/abs/not_built/core/tweaker/fs/etc/asound.conf b/abs/not_built/core/tweaker/fs/etc/asound.conf
new file mode 100644
index 0000000..ffb665d
--- /dev/null
+++ b/abs/not_built/core/tweaker/fs/etc/asound.conf
@@ -0,0 +1,15 @@
+pcm.spdifdmix {
+ type dmix
+ ipc_key 1337
+ slave {
+ pcm "hw:0,1"
+ format S32_LE
+ }
+}
+
+pcm.!default {
+ type plug
+ slave {
+ pcm spdifdmix
+ }
+}
diff --git a/abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini b/abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
new file mode 100644
index 0000000..9660607
--- /dev/null
+++ b/abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
@@ -0,0 +1,429 @@
+[%General]
+mplayer_bin=mplayer
+driver\vo="xv,"
+driver\ao="alsa,"
+screenshot_directory=/home/mythtv/.config/smplayer/screenshots
+dont_remember_media_settings=false
+dont_remember_time_pos=false
+audio_lang=
+subtitle_lang=
+use_direct_rendering=false
+use_double_buffer=true
+disable_screensaver=true
+use_soft_video_eq=false
+use_slices=true
+autoq=6
+add_blackborders_on_fullscreen=false
+use_soft_vol=true
+softvol_max=110
+use_scaletempo=-1
+dont_change_volume=false
+use_hwac3=false
+use_audio_equalizer=true
+use_volume_option=-1
+loop=false
+osd=0
+file_settings_method=hash
+
+[drives]
+dvd_device=/dev/dvd
+cdrom_device=/dev/cdrom
+vcd_initial_title=2
+use_dvdnav=false
+
+[performance]
+priority=2
+frame_drop=true
+hard_frame_drop=false
+autosync=false
+autosync_factor=100
+h264_skip_loop_filter=1
+HD_height=720
+fast_audio_change=-1
+threads=1
+cache_for_files=2000
+cache_for_streams=1000
+cache_for_dvds=0
+cache_for_vcds=1000
+cache_for_audiocds=1000
+
+[subtitles]
+font_file=
+font_name=
+use_fontconfig=false
+subcp=ISO-8859-1
+use_enca=false
+enca_lang=en
+font_autoscale=1
+subfuzziness=1
+autoload_sub=true
+use_ass_subtitles=true
+ass_line_spacing=0
+use_closed_caption_subs=false
+use_forced_subs_only=false
+subtitles_on_screenshots=false
+use_new_sub_commands=-1
+change_sub_scale_should_restart=-1
+styles\fontname=Arial
+styles\fontsize=20
+styles\primarycolor=4294967295
+styles\backcolor=4278190080
+styles\outlinecolor=4278190080
+styles\bold=false
+styles\italic=false
+styles\halignment=2
+styles\valignment=0
+styles\borderstyle=1
+styles\outline=1
+styles\shadow=2
+styles\marginl=20
+styles\marginr=20
+styles\marginv=8
+force_ass_styles=false
+user_forced_ass_style=
+freetype_support=true
+
+[advanced]
+color_key=20202
+use_mplayer_window=false
+monitor_aspect=
+use_idx=false
+mplayer_additional_options=
+mplayer_additional_video_filters=
+mplayer_additional_audio_filters=
+log_mplayer=true
+log_smplayer=true
+log_filter=.*
+autosave_mplayer_log=false
+mplayer_log_saveto=
+repaint_video_background=false
+use_edl_files=true
+prefer_ipv4=true
+use_short_pathnames=false
+change_video_equalizer_on_startup=true
+use_pausing_keep_force=true
+correct_pts=-1
+actions_to_run=
+
+[gui]
+fullscreen=false
+start_in_fullscreen=false
+compact_mode=false
+stay_on_top=0
+size_factor=100
+resize_method=1
+style=
+show_frame_counter=false
+show_motion_vectors=false
+mouse_left_click_function=dvdnav_mouse
+mouse_right_click_function=show_context_menu
+mouse_double_click_function=fullscreen
+mouse_middle_click_function=mute
+mouse_xbutton1_click_function=
+mouse_xbutton2_click_function=
+wheel_function=0
+seeking1=10
+seeking2=60
+seeking3=600
+seeking4=30
+update_while_seeking=false
+time_slider_drag_delay=100
+language=
+iconset=
+balloon_count=5
+restore_pos_after_fullscreen=false
+save_window_size_on_exit=true
+close_on_finish=false
+default_font=
+pause_when_hidden=false
+allow_video_movement=false
+gui=DefaultGUI
+gui_minimum_width=0
+default_size=@Size(580 440)
+hide_video_window_on_audio_files=true
+report_mplayer_crashes=true
+reported_mplayer_is_old=false
+auto_add_to_playlist=true
+add_to_playlist_consecutive_files=false
+
+[directories]
+latest_dir=/home/mythtv
+last_dvd_directory=
+
+[defaults]
+initial_sub_scale=5
+initial_sub_scale_ass=1
+initial_volume=40
+initial_contrast=0
+initial_brightness=0
+initial_hue=0
+initial_saturation=0
+initial_gamma=0
+initial_audio_equalizer=0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+initial_panscan_factor=1
+initial_sub_pos=100
+initial_volnorm=false
+initial_postprocessing=false
+initial_deinterlace=0
+initial_audio_channels=2
+initial_stereo_mode=0
+initial_audio_track=1
+initial_subtitle_track=1
+
+[mplayer_info]
+mplayer_detected_version=29134
+mplayer_user_supplied_version=-1
+
+[instances]
+use_single_instance=true
+connection_port=8000
+use_autoport=true
+temp\autoport=57685
+
+[floating_control]
+margin=0
+width=100
+animated=true
+display_in_compact_mode=false
+bypass_window_manager=true
+
+[history]
+recents=@Invalid()
+recents\max_items=10
+urls=@Invalid()
+urls\max_items=10
+
+[default_gui]
+fullscreen_toolbar1_was_visible=false
+fullscreen_toolbar2_was_visible=false
+compact_toolbar1_was_visible=false
+compact_toolbar2_was_visible=false
+pos=@Point(0 25)
+size=@Size(580 440)
+toolbars_state=@ByteArray(\0\0\0\xff\0\0\x11\x95\xfd\0\0\0\x1\0\0\0\x3\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x1\0\0\0\x1\xfb\0\0\0\x18\0p\0l\0\x61\0y\0l\0i\0s\0t\0\x64\0o\0\x63\0k\x2\0\0\0\x19\0\0\0\x19\0\0\x3\xc0\0\0\x1\xe0\0\0\x2\x44\0\0\x1\x36\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x2\0\0\0\x2\0\0\0\x2\0\0\0\x10\0t\0o\0o\0l\0\x62\0\x61\0r\0\x31\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x10\0t\0o\0o\0l\0\x62\0\x61\0r\0\x32\x1\0\0\x1\xc5\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x2\0\0\0\x1a\0\x63\0o\0n\0t\0r\0o\0l\0w\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0$\0\x63\0o\0n\0t\0r\0o\0l\0w\0i\0\x64\0g\0\x65\0t\0_\0m\0i\0n\0i\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
+actions\toolbar1=open_file, open_dvd, open_url, separator, compact, fullscreen, separator, screenshot, separator, show_file_properties, show_playlist, show_preferences, separator, play_prev, play_next
+actions\controlwidget=play, pause_and_frame_step, stop, separator, rewindbutton_action, timeslider_action, forwardbutton_action, separator, fullscreen, mute, volumeslider_action
+actions\controlwidget_mini=play_or_pause, stop, separator, rewind1, timeslider_action, forward1, separator, mute, volumeslider_action
+actions\floating_control=play, pause, stop, separator, rewindbutton_action, timeslider_action, forwardbutton_action, separator, fullscreen, mute, volumeslider_action, separator, timelabel_action
+
+[base_gui_plus]
+show_tray_icon=false
+mainwindow_visible=true
+trayicon_playlist_was_visible=false
+widgets_size=0
+fullscreen_playlist_was_visible=false
+fullscreen_playlist_was_floating=false
+compact_playlist_was_visible=false
+ignore_playlist_events=false
+
+[playlist]
+repeat=false
+shuffle=false
+auto_get_info=true
+recursive_add_directory=false
+save_playlist_in_config=true
+play_files_from_start=true
+latest_dir=
+
+[playlist_contents]
+count=0
+current_item=-1
+modified=false
+
+[actions]
+open_file=Ctrl+F
+open_directory=
+open_playlist=
+open_vcd=
+open_audio_cd=
+open_dvd=
+open_dvd_folder=
+open_url=Ctrl+U
+close=Ctrl+X
+clear_recents=
+play=L
+play_or_pause=Media Play
+pause=P
+pause_and_frame_step=
+stop=Media Stop
+frame_step=.
+rewind1=Left
+rewind2=Down
+rewind3=PgUp
+forward1=Right
+forward2=Up
+forward3=PgDown
+repeat=
+jump_to=Ctrl+J
+normal_speed=Backspace
+halve_speed={
+double_speed=}
+dec_speed=[
+inc_speed=]
+dec_speed_4=
+inc_speed_4=
+dec_speed_1=
+inc_speed_1=
+fullscreen=F
+compact=Ctrl+C
+video_equalizer=Ctrl+E
+screenshot=S
+video_preview=
+flip=
+mirror=
+postprocessing=
+autodetect_phase=
+deblock=
+dering=
+add_noise=
+add_letterbox=
+upscaling=
+audio_equalizer=
+mute=M
+decrease_volume="9, /"
+increase_volume="0, *"
+dec_audio_delay=-
+inc_audio_delay=+
+audio_delay=
+load_audio_file=
+unload_audio_file=
+extrastereo_filter=
+karaoke_filter=
+volnorm_filter=
+load_subs=
+unload_subs=
+dec_sub_delay=Z
+inc_sub_delay=X
+sub_delay=
+dec_sub_pos=R
+inc_sub_pos=T
+dec_sub_scale=Shift+R
+inc_sub_scale=Shift+T
+dec_sub_step=G
+inc_sub_step=Y
+use_ass_lib=
+use_closed_caption=
+use_forced_subs_only=
+show_find_sub_dialog=
+upload_subtitles=
+show_playlist=Ctrl+L
+show_file_properties=Ctrl+I
+frame_counter=
+motion_vectors=
+show_preferences=Ctrl+P
+show_mplayer_log=Ctrl+M
+show_smplayer_log=Ctrl+S
+faq=
+cl_options=
+tips=
+about_qt=
+about_smplayer=
+play_next=>
+play_prev=<
+move_up=Alt+Up
+move_down=Alt+Down
+move_left=Alt+Left
+move_right=Alt+Right
+inc_zoom=E
+dec_zoom=W
+reset_zoom=Shift+E
+auto_zoom=Shift+W
+zoom_169=Shift+A
+zoom_235=Shift+S
+exit_fullscreen=
+next_osd=O
+dec_contrast=1
+inc_contrast=2
+dec_brightness=3
+inc_brightness=4
+dec_hue=5
+inc_hue=6
+dec_saturation=7
+inc_saturation=8
+dec_gamma=
+inc_gamma=
+next_video=
+next_audio=H
+next_subtitle=J
+next_chapter=@@
+prev_chapter=!
+toggle_double_size=Ctrl+D
+reset_video_equalizer=
+reset_audio_equalizer=
+show_context_menu=
+next_aspect=A
+osd_none=
+osd_seek=
+osd_timer=
+osd_total=
+denoise_none=
+denoise_normal=
+denoise_soft=
+size_50=
+size_75=
+size_100=Ctrl+1
+size_125=
+size_150=
+size_175=
+size_200=Ctrl+2
+size_300=
+size_400=
+deinterlace_none=
+deinterlace_l5=
+deinterlace_yadif0=
+deinterlace_yadif1=
+deinterlace_lb=
+deinterlace_kern=
+channels_stereo=
+channels_surround=
+channels_ful51=
+stereo=
+left_channel=
+right_channel=
+aspect_detect=
+aspect_4%3A3=
+aspect_5%3A4=
+aspect_14%3A9=
+aspect_16%3A9=
+aspect_16%3A10=
+aspect_2.35%3A1=
+aspect_1%3A1=
+aspect_none=
+rotate_none=
+rotate_clockwise_flip=
+rotate_clockwise=
+rotate_counterclockwise=
+rotate_counterclockwise_flip=
+on_top_always=
+on_top_never=
+on_top_playing=
+toggle_stay_on_top=
+dvdnav_up=Shift+Up
+dvdnav_down=Shift+Down
+dvdnav_left=Shift+Left
+dvdnav_right=Shift+Right
+dvdnav_menu=Shift+Return
+dvdnav_select=Return
+dvdnav_prev=Shift+Esc
+dvdnav_mouse=
+quit=Esc
+show_tray_icon=
+restore\hide=
+pl_open=
+pl_save=
+pl_play=
+pl_next=N
+pl_prev=
+pl_move_up=
+pl_move_down=
+pl_repeat=
+pl_shuffle=
+pl_preferences=
+pl_add_current=
+pl_add_files=
+pl_add_directory=
+pl_remove_selected=
+pl_remove_all=
+pl_edit=
+show_main_toolbar=F5
+show_language_toolbar=F6
diff --git a/abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state b/abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state
new file mode 100644
index 0000000..5540338
--- /dev/null
+++ b/abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state
@@ -0,0 +1,354 @@
+state.NVidia {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Front Playback Volume'
+ value.0 25
+ value.1 25
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Front Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Surround Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Surround Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Center Playback Volume'
+ value 0
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'LFE Playback Volume'
+ value 0
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Center Playback Switch'
+ value true
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'LFE Playback Switch'
+ value true
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Side Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Side Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Headphone Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Mic Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Mic Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Front Mic Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Front Mic Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Line Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Line Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 3'
+ comment.dbmin 0
+ comment.dbmax 3000
+ iface MIXER
+ name 'Mic Boost'
+ value.0 0
+ value.1 0
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 3'
+ comment.dbmin 0
+ comment.dbmax 3000
+ iface MIXER
+ name 'Front Mic Boost'
+ value.0 0
+ value.1 0
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -1650
+ comment.dbmax 3000
+ iface MIXER
+ name 'Capture Volume'
+ value.0 0
+ value.1 0
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture Switch'
+ value.0 true
+ value.1 true
+ }
+ control.22 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -1650
+ comment.dbmax 3000
+ iface MIXER
+ name 'Capture Volume'
+ index 1
+ value.0 0
+ value.1 0
+ }
+ control.23 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture Switch'
+ index 1
+ value.0 true
+ value.1 true
+ }
+ control.24 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic
+ comment.item.1 'Front Mic'
+ comment.item.2 Line
+ iface MIXER
+ name 'Input Source'
+ value Mic
+ }
+ control.25 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic
+ comment.item.1 'Front Mic'
+ comment.item.2 Line
+ iface MIXER
+ name 'Input Source'
+ index 1
+ value Mic
+ }
+ control.26 {
+ comment.access read
+ comment.type IEC958
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Playback Con Mask'
+ value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ }
+ control.27 {
+ comment.access read
+ comment.type IEC958
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Playback Pro Mask'
+ value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ }
+ control.28 {
+ comment.access 'read write'
+ comment.type IEC958
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Playback Default'
+ value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ }
+ control.29 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Playback Switch'
+ value false
+ }
+ control.30 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Default PCM Playback Switch'
+ value true
+ }
+ control.31 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Capture Switch'
+ value false
+ }
+ control.32 {
+ comment.access read
+ comment.type IEC958
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Capture Default'
+ value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ }
+ control.33 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Master Playback Volume'
+ value 31
+ }
+ control.34 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Master Playback Switch'
+ value true
+ }
+ control.35 {
+ comment.access 'read write user'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 255'
+ comment.tlv '0000000100000008ffffec1400000014'
+ comment.dbmin -5100
+ comment.dbmax 0
+ iface MIXER
+ name 'PCM Playback Volume'
+ value.0 163
+ value.1 163
+ }
+}
diff --git a/abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state b/abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state
new file mode 100644
index 0000000..7e57108
--- /dev/null
+++ b/abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state
@@ -0,0 +1,567 @@
+state.AV710 {
+ control.1 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Master Playback Switch'
+ value true
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Master Playback Volume'
+ value.0 22
+ value.1 22
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Center Playback Switch'
+ value false
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Center Playback Volume'
+ value 31
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'LFE Playback Switch'
+ value false
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'LFE Playback Volume'
+ value 0
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Surround Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Surround Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headphone Playback Switch'
+ value true
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Headphone Playback Volume'
+ value.0 22
+ value.1 22
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Master Mono Playback Switch'
+ value true
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Master Mono Playback Volume'
+ value 25
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'PC Speaker Playback Switch'
+ value false
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ comment.dbmin -4500
+ comment.dbmax 0
+ iface MIXER
+ name 'PC Speaker Playback Volume'
+ value 0
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Playback Switch'
+ value false
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Phone Playback Volume'
+ value 0
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic Playback Switch'
+ value false
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Mic Playback Volume'
+ value 0
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic Boost (+20dB)'
+ value false
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Line Playback Switch'
+ value false
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Line Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.22 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'CD Playback Switch'
+ value true
+ }
+ control.23 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'CD Playback Volume'
+ value.0 25
+ value.1 25
+ }
+ control.24 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Video Playback Switch'
+ value false
+ }
+ control.25 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Video Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.26 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Aux Playback Switch'
+ value false
+ }
+ control.27 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Aux Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.28 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'PCM Playback Switch'
+ value true
+ }
+ control.29 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'PCM Playback Volume'
+ value.0 22
+ value.1 22
+ }
+ control.30 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 2
+ comment.item.0 Mic
+ comment.item.1 CD
+ comment.item.2 Video
+ comment.item.3 Aux
+ comment.item.4 Line
+ comment.item.5 Mix
+ comment.item.6 'Mix Mono'
+ comment.item.7 Phone
+ iface MIXER
+ name 'Capture Source'
+ value.0 Line
+ value.1 Line
+ }
+ control.31 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture Switch'
+ value true
+ }
+ control.32 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 15'
+ comment.dbmin 0
+ comment.dbmax 2250
+ iface MIXER
+ name 'Capture Volume'
+ value.0 0
+ value.1 0
+ }
+ control.33 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name '3D Control - Switch'
+ value false
+ }
+ control.34 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mix
+ comment.item.1 Mic
+ iface MIXER
+ name 'Mono Output Select'
+ value Mix
+ }
+ control.35 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic1
+ comment.item.1 Mic2
+ iface MIXER
+ name 'Mic Select'
+ value Mic1
+ }
+ control.36 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name '3D Control - Center'
+ value 0
+ }
+ control.37 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name '3D Control - Depth'
+ value 0
+ }
+ control.38 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Alternate Level to Surround Out'
+ value false
+ }
+ control.39 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Downmix LFE and Center to Front'
+ value false
+ }
+ control.40 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Downmix Surround to Front'
+ value false
+ }
+ control.41 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'External Amplifier'
+ value true
+ }
+ control.42 {
+ comment.access read
+ comment.type BYTES
+ comment.count 52
+ iface CARD
+ name 'ICE1724 EEPROM'
+ value '172414121c01020210c1ff0000ff0000ff0000000101010001000000000000000000000000000000ff000000ff000000ff000000'
+ }
+ control.43 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '8000'
+ comment.item.1 '9600'
+ comment.item.2 '11025'
+ comment.item.3 '12000'
+ comment.item.4 '16000'
+ comment.item.5 '22050'
+ comment.item.6 '24000'
+ comment.item.7 '32000'
+ comment.item.8 '44100'
+ comment.item.9 '48000'
+ comment.item.10 '64000'
+ comment.item.11 '88200'
+ comment.item.12 '96000'
+ comment.item.13 '176400'
+ comment.item.14 '192000'
+ comment.item.15 'IEC958 Input'
+ iface MIXER
+ name 'Multi Track Internal Clock'
+ value '44100'
+ }
+ control.44 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Multi Track Rate Locking'
+ value false
+ }
+ control.45 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Multi Track Rate Reset'
+ value true
+ }
+ control.46 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'PCM Out'
+ comment.item.1 'H/W In 0'
+ comment.item.2 'H/W In 1'
+ comment.item.3 'IEC958 In L'
+ comment.item.4 'IEC958 In R'
+ iface MIXER
+ name 'H/W Playback Route'
+ value 'PCM Out'
+ }
+ control.47 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'PCM Out'
+ comment.item.1 'H/W In 0'
+ comment.item.2 'H/W In 1'
+ comment.item.3 'IEC958 In L'
+ comment.item.4 'IEC958 In R'
+ iface MIXER
+ name 'H/W Playback Route'
+ index 1
+ value 'PCM Out'
+ }
+ control.48 {
+ comment.access read
+ comment.type INTEGER
+ comment.count 22
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Multi Track Peak'
+ value.0 0
+ value.1 0
+ value.2 0
+ value.3 0
+ value.4 0
+ value.5 0
+ value.6 0
+ value.7 0
+ value.8 255
+ value.9 255
+ value.10 0
+ value.11 0
+ value.12 0
+ value.13 0
+ value.14 0
+ value.15 0
+ value.16 0
+ value.17 0
+ value.18 0
+ value.19 0
+ value.20 0
+ value.21 0
+ }
+ control.49 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'PCM Out'
+ comment.item.1 'H/W In 0'
+ comment.item.2 'H/W In 1'
+ comment.item.3 'IEC958 In L'
+ comment.item.4 'IEC958 In R'
+ iface MIXER
+ name 'IEC958 Playback Route'
+ value 'PCM Out'
+ }
+ control.50 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'PCM Out'
+ comment.item.1 'H/W In 0'
+ comment.item.2 'H/W In 1'
+ comment.item.3 'IEC958 In L'
+ comment.item.4 'IEC958 In R'
+ iface MIXER
+ name 'IEC958 Playback Route'
+ index 1
+ value 'PCM Out'
+ }
+ control.51 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'IEC958 Output Switch'
+ value true
+ }
+ control.52 {
+ comment.access 'read write'
+ comment.type IEC958
+ comment.count 1
+ iface PCM
+ device 1
+ name 'IEC958 Playback Default'
+ value '0000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ }
+ control.53 {
+ comment.access read
+ comment.type IEC958
+ comment.count 1
+ iface PCM
+ device 1
+ name 'IEC958 Playback Con Mask'
+ value '3fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ }
+ control.54 {
+ comment.access read
+ comment.type IEC958
+ comment.count 1
+ iface PCM
+ device 1
+ name 'IEC958 Playback Pro Mask'
+ value df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ }
+}
diff --git a/abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm b/abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm
new file mode 100644
index 0000000..cbadf29
--- /dev/null
+++ b/abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm
@@ -0,0 +1,66 @@
+# Copyright 2007 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package Tweaker::Definitions;
+use List::Member;
+use Log::Log4perl qw(:easy);
+
+# To install the above modules:
+# --
+# sudo cpan install List::Member
+
+# Recommendation Levels
+my $bottom = -200; # a reserved value, under which no recommendationlevel can go
+my $not_available = -100;
+my $unsupported = -99;
+my $inadvisable = -50;
+my $optional = 0;
+my $recommended = 100;
+
+# Interactivity Levels
+my $guided = "guided";
+my $minimal = "minimal";
+
+# Special variables
+my $null = "null"; # reserved as the script name for special Tweaks that define Tweaker behavior
+
+my %global_variable_hash = (
+ "bottom" => $bottom,
+ "not available" => $not_available,
+ "unsupported" => $unsupported,
+ "inadvisable" => $inadvisable,
+ "optional" => $optional,
+ "recommended" => $recommended,
+ "guided" => $guided,
+ "minimal" => $minimal,
+ "null" => $null
+);
+
+sub get_global_variable_value {
+ my ($variable) = @_;
+
+ my @known_variables = keys %global_variable_hash;
+ if (member($variable, @known_variables) + 1) {
+ if ($global_variable_hash{$variable}) {
+ return $global_variable_hash{$variable};
+ }
+ } else {
+ my $logger = get_logger();
+ $logger->error("No Tweaker Definition for variable named $variable");
+ return $bottom;
+ }
+}
+
+1;
diff --git a/abs/not_built/core/tweaker/lib/Tweaker/Script.pm b/abs/not_built/core/tweaker/lib/Tweaker/Script.pm
new file mode 100644
index 0000000..7dd2c8f
--- /dev/null
+++ b/abs/not_built/core/tweaker/lib/Tweaker/Script.pm
@@ -0,0 +1,353 @@
+# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package Tweaker::Script;
+
+use strict;
+use DBI;
+use Switch;
+use Tweaker::Definitions;
+
+# To install the above modules:
+# --
+# sudo apt-get install libdbi-perl liblog-log4perl-perl
+# sudo cpan install Getopt::Lucid List::Member
+# choose the defaults for all options, agree to install all dependencies
+
+use Getopt::Lucid qw( :all );
+# see http://search.cpan.org/~dagolden/Getopt-Lucid-0.16/lib/Getopt/Lucid.pm for usage details
+use Log::Log4perl qw(get_logger);
+# see http://search.cpan.org/~mschilli/Log-Log4perl-1.14/lib/Log/Log4perl.pm for usage details
+# http://www.perl.com/pub/a/2002/09/11/log4perl.html is highly recommended as well
+
+use List::Member;
+
+my $dbh; # the database we connect to
+my $sth; #
+my $TWEAKER_ROOT;
+my @known_options;
+
+# Print advice on usage and invocation.
+sub help () {
+ my $logger = get_logger('tweaker.script');
+ $logger->fatal("USAGE:\n$0 [--check Option] [--implement Option] [--poll Option] [--iterations] [--help]");
+ $logger->fatal("Valid values for Option are: ", join(" ",@known_options));
+ $logger->fatal("Only one of the above parameters may be passed.");
+ $logger->fatal("The --check and --iterations parameters are not yet supported.");
+ exit;
+}
+
+sub execute_shell_command {
+ my($command) = @_;
+ my $results="";
+ my $logger = get_logger('tweaker.script');
+
+ open(SHELL, "$command 2>&1 |");
+
+ while(<SHELL>) {
+ $results=$results."".$_;
+ }
+ close(SHELL);
+ chop($results);
+ $logger->debug("Command '$command' produced output '$results'");
+ return $results;
+}
+
+# Simple way to get the value of an environment variable from the executing shell.
+sub get_environment_variable {
+ my($envvar) = @_;
+ open(SHELL, "echo $envvar|");
+ while(<SHELL>) {
+ chop;
+ return $_;
+ }
+ close(SHELL);
+}
+
+sub get_mythtv_connection_string {
+ # we want something like mythconverg:localhost
+ my $dbname = "";
+ my $dbhostname = "";
+ open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
+ while(<MYSQLTXT>) {
+ if (/DBName=(.*)/) {
+ $dbname=$1;
+ } elsif (/DBHostName=(.*)/) {
+ $dbhostname=$1;
+ }
+ }
+ close(MYSQLTXT);
+
+ return "$dbname:$dbhostname";
+}
+
+sub get_mythtv_authentication {
+ # we want something like ['root', '']
+ my $dbusername = "";
+ my $dbpassword = "";
+
+ open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
+ while(<MYSQLTXT>) {
+ if (/DBUserName=(.*)/) {
+ $dbusername=$1;
+ } elsif (/DBPassword=(.*)/) {
+ $dbpassword=$1;
+ }
+ }
+ close(MYSQLTXT);
+
+ return ($dbusername, $dbpassword);
+}
+
+# Database routines.
+sub connect_to_db {
+ my ($db) = @_;
+ my $logger = get_logger('tweaker.script');
+ my ($dbusername, $dbpassword) = get_mythtv_authentication();
+ if (!($dbh = DBI->connect($db, $dbusername, $dbpassword))) {
+ $logger->error("Couldn't connect to database: ", DBI->errstr);
+ return -1;
+ }
+ return 1;
+}
+
+sub disconnect_from_db {
+ $dbh->disconnect;
+}
+
+sub do_query {
+ my ($query) = @_;
+ my $logger = get_logger('tweaker.script');
+ my $rv="";
+
+ $logger->debug("Processing statement: ", $query);
+
+ if (!($sth = $dbh->prepare($query))) {
+ $logger->error("Couldn't prepare statement: ", $dbh->errstr);
+ return -1;
+ }
+ $rv = $sth->execute(); # Returns an integer when rows were affected; returns -1 when there's an
+ # error; returns 0E0 (true) when no error but no rows affected.
+
+ if (!$rv) {
+ $logger->error("Couldn't execute statement: ", $sth->errstr);
+ return -1;
+ }
+ return $rv;
+}
+
+# Make sure the option passed to this script is handled.
+sub validate_option {
+ my($option) = @_;
+
+ if (!(member($option, @known_options) + 1)) {
+ my $logger = get_logger('tweaker.script');
+ $logger->fatal("Option '$option' is not known to $0.");
+ $logger->fatal("Valid Options are: ", join(", ",@known_options));
+ exit -1;
+ }
+ return 1;
+}
+
+# Prints out each option that the script handles, separated by '|'.
+# This allows for a minimal .tcf entry.
+sub get_options {
+ print join("|",@known_options),"\n";
+}
+
+# Prints out the passed Recommendation Level first, followed by any other
+# strings, separated by '|'. This allows the author of a Tweaker Script to
+# return explanatory information along with a Recommendation Level.
+sub recommendation_level {
+ print join("|",@_),"\n";
+}
+
+sub process_parameters () {
+ # Accept these parameters:
+ # --
+ my @parameters = (
+ Switch("help")->anycase,
+ Param("check")->anycase, # Requirement 1.1
+ Param("implement")->anycase, # Requirement 1.2
+ Param("poll")->anycase, # Requirement 1.3
+ Switch("iterations")->anycase, # Requirement 1.4
+ Switch("getoptions")->anycase # Requirement 1.5
+ );
+ my $opt = Getopt::Lucid->getopt( \@parameters );
+
+ if (!(my $TWEAKER_ROOT = get_environment_variable("\$TWEAKER_ROOT"))) {
+ Log::Log4perl->easy_init();
+ my $logger = get_logger();
+ $logger->fatal("ERROR: \$TWEAKER_ROOT environment variable is not set.");
+ exit -1;
+ } else {
+ my $log4perl_conf = "$TWEAKER_ROOT/log4perl.conf";
+ Log::Log4perl::init_and_watch($log4perl_conf,10);
+ my $logger = get_logger('tweaker.script');
+ $logger->info("\$TWEAKER_ROOT is '$TWEAKER_ROOT'.");
+ }
+
+ if ($opt->get_help > 0) {
+ help;
+ }
+
+ my $check = $opt->get_check;
+ my $implement = $opt->get_implement;
+ my $poll = $opt->get_poll;
+ my $iterations = $opt->get_iterations;
+ my $getoptions = $opt->get_getoptions;
+
+ # Requirement 1.6
+ if ($check) {
+ if ($implement || $poll || $iterations || $getoptions) {
+ help;
+ }
+ validate_option($check); # exits with an error if option is invalid
+ check_option($check); # Requirement 1.1
+ } elsif ($implement) {
+ if ($poll || $iterations || $getoptions) {
+ help;
+ }
+ validate_option($implement); # exits with an error if option is invalid
+ implement_option($implement); # Requirement 1.2
+ } elsif ($poll) {
+ if ($iterations || $getoptions) {
+ help;
+ }
+ validate_option($poll); # exits with an error if option is invalid
+ poll_options($poll); # Requirement 1.3
+ } elsif ($iterations) {
+ if ($getoptions) {
+ help;
+ }
+ #count_iterations; # Requirement 1.4
+ } elsif ($getoptions) {
+ get_options; # Requirement 1.5
+ } else {
+ help;
+ }
+}
+
+sub set_known_options {
+ my(@options) = @_;
+ @known_options = @_;
+}
+
+# These entries may or may not already exist. First, try updating them, and if that fails, insert them.
+# Pass in array references for setfields and checkfields. Each must
+# reference an array of lists, where each list is a key, value pair, e.g.
+# [["data", "somedata"], ["name", "skippy"]]
+sub change_or_make_entry {
+ my($table, $setfields, $checkfields) = @_;
+ my $query_string = "UPDATE $table SET ";
+
+ my $fields="";
+ foreach my $sets (@$setfields) {
+ if ($fields) {
+ $fields = $fields . ", ";
+ }
+ $fields = $fields . "@$sets[0]='@$sets[1]' ";
+ }
+ $query_string = $query_string . $fields . "WHERE ";
+
+ my $checkstring="";
+ foreach my $checks (@$checkfields) {
+ if ($checkstring) {
+ $checkstring = $checkstring . "AND ";
+ }
+ $checkstring = $checkstring . "@$checks[0]='@$checks[1]' ";
+ }
+ $query_string = $query_string . $checkstring;
+
+ my $rv = do_query($query_string);
+ if (($rv == 0E0) || ($rv < 1)) { # UPDATE didn't apply; do an insert
+ my $fields="";
+ my $values="";
+ foreach my $sets (@$setfields) {
+ if ($fields) {
+ $fields = $fields . ", ";
+ $values = $values . ", ";
+ }
+ $fields = $fields . "@$sets[0]";
+ $values = $values . "'@$sets[1]'";
+ }
+ foreach my $sets (@$checkfields) {
+ if ($fields) {
+ $fields = $fields . ", ";
+ $values = $values . ", ";
+ }
+ $fields = $fields . "@$sets[0]";
+ $values = $values . "'@$sets[1]'";
+ }
+
+ $query_string = "INSERT INTO $table (". $fields . ") VALUES (" . $values . ")";
+
+ $rv = do_query($query_string);
+ }
+ return $rv;
+}
+
+# We update so many entries in the settings table that a subroutine makes coding and readability easier.
+sub change_or_make_setting {
+ my($value, $data) = @_;
+
+ return(change_or_make_entry("settings", [["data", $data]], [["value", $value]]));
+}
+
+# Benchmark-driven tests for low, medium, or high "performance" often look the same.
+# If your test falls into this pattern, you can use this subroutine to simplify your
+# Tweaker Script's poll_options subroutine.
+# NOTE: This only handles options for low, medium, or high right now.
+# NOTE: You don't have to use this! Only use it if your poll_options subroutine
+# would look like this anyway. Don't shoehorn it to fit!
+sub threshold_test {
+ my($option, $benchmark_number, $name_of_benchmarked_device, $low_threshold, $medium_threshold, $high_threshold) = @_;
+ # e.g. ("medium", 512, "video card", 350, 425, 500)
+
+ my $logger = get_logger('tweaker.script');
+ $logger->debug("Threshold test for option '$option' ($name_of_benchmarked_device) with benchmark of $benchmark_number, where: low = $low_threshold, medium = $medium_threshold, high = $high_threshold");
+
+ switch ($option) {
+ case "low" {
+ if ($benchmark_number <= $low_threshold) {
+ recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be unable to handle higher usage than this.");
+ } elsif ($benchmark_number <= $medium_threshold) {
+ recommendation_level("optional", "Your $name_of_benchmarked_device seems to be able to handle higher usage than this, but select this option if you want to reduce overall $name_of_benchmarked_device usage.");
+ } elsif ($benchmark_number >= $high_threshold) {
+ recommendation_level("optional", "Your $name_of_benchmarked_device seems to be quite capable of this setting, but select this option if you want to reduce overall $name_of_benchmarked_device usage.");
+ }
+ }
+ case "medium" {
+ if ($benchmark_number <= $low_threshold) {
+ recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, but you are free to try.");
+ } elsif ($benchmark_number <= $medium_threshold) {
+ recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be unable to handle higher usage than this.");
+ } elsif ($benchmark_number >= $high_threshold) {
+ recommendation_level("optional", "Your $name_of_benchmarked_device seems to be able to handle higher usage than this, but select this option if you want to reduce overall $name_of_benchmarked_device usage.");
+ }
+ }
+ case "high" {
+ if ($benchmark_number <= $low_threshold) {
+ recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, and it is not recommended that you try.");
+ } elsif ($benchmark_number <= $medium_threshold) {
+ recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, but you are free to try.");
+ } elsif ($benchmark_number >= $high_threshold) {
+ recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be quite capable of this setting.");
+ }
+ }
+ }
+}
+
+1;
diff --git a/abs/not_built/core/tweaker/log4perl.conf b/abs/not_built/core/tweaker/log4perl.conf
new file mode 100644
index 0000000..3c0a5bb
--- /dev/null
+++ b/abs/not_built/core/tweaker/log4perl.conf
@@ -0,0 +1,13 @@
+log4perl.logger = FATAL, ScreenLogger
+log4perl.logger.tweaker = INFO, FileLogger
+log4perl.logger.tweaker.script = WARN, FileLogger
+
+log4perl.appender.ScreenLogger = Log::Dispatch::Screen
+log4perl.appender.ScreenLogger.Threshold = FATAL
+log4perl.appender.ScreenLogger.layout = Log::Log4perl::Layout::PatternLayout
+log4perl.appender.ScreenLogger.layout.ConversionPattern=<%p> %F{1} - %m%n
+
+log4perl.appender.FileLogger = Log::Log4perl::Appender::File
+log4perl.appender.FileLogger.filename = /var/log/tweaker.log
+log4perl.appender.FileLogger.layout = Log::Log4perl::Layout::PatternLayout
+log4perl.appender.FileLogger.layout.ConversionPattern=%d <%p> %F{1}:%L %M - %m%n
diff --git a/abs/not_built/core/tweaker/tcf/EXAMPLE.tcf b/abs/not_built/core/tweaker/tcf/EXAMPLE.tcf
new file mode 100644
index 0000000..0064fba
--- /dev/null
+++ b/abs/not_built/core/tweaker/tcf/EXAMPLE.tcf
@@ -0,0 +1,38 @@
+<!-- This is an example TCF. See TCFProgrammingSpecifications.odt for details.
+ //-->
+<tweak name = "Put a human-readable name for the tweak here. Make sure it's unique."> <!-- REQUIRED //-->
+ <description>Put a human-readable description of the tweak here.</description> <!-- OPTIONAL but usually a good idea, unless the user
+ will never see the description.
+ //-->
+ <complexity>Put a complexity level here.</complexity> <!-- OPTIONAL human-readable assessment of how complex this Tweak is to understand.
+ A complete list of complexity levels is listed in tweaker-core.tcf
+ //-->
+ <script>twk_EXAMPLE.pl</script> <!-- REQUIRED: An executable script in the $PATH of the shell that invoked Tweaker.
+ For consistency, adhere to the naming convention by beginning the script name with
+ 'twk_'. You can make the tweaker script in any language you wish, but Perl is
+ supported well.
+ //-->
+ <alwaysaskuser>boolean</alwaysaskuser> <!-- OPTIONAL field with values: yes, no - not used in Tweaker v0.7
+ //-->
+ <options> <!-- REQUIRED //-->
+ <option name = "Human-readable name for this option"> <!-- REQUIRED: Option names must match those handled in the
+ corresponding tweaker script.
+ //-->
+ <description>Human-readable description of what this option does.</description> <!-- OPTIONAL //-->
+ <complexity>Put a complexity level here.</complexity> <!-- OPTIONAL human-readable assessment of how complex this Tweak is to
+ understand. A complete list of complexity levels is listed in
+ tweaker-core.tcf
+ //-->
+ <recommendationlevel>recommendationlevel</recommendationlevel> <!-- OPTIONAL human-readable recommendation level for this tweak.
+ If this field is absent, the script will be run to acquire
+ the recommendationlevel. The default recommendationlevel
+ is $optional if it cannot otherwise be determined. For a
+ complete list of recommendation levels, see Tweaker/Definitions.pm
+ //-->
+ </option>
+ <!-- Put any additional options here. If you only have one option and it ends up with a recommendationlevel at or above $optional,
+ it will be selected automatically. Otherwise, the option with the highest recommendationlevel above $optional will be selected.
+ //-->
+ </options>
+</tweak>
+<!-- Put any additional tweaks here. //-->
diff --git a/abs/not_built/core/tweaker/tcf/focus.tcf b/abs/not_built/core/tweaker/tcf/focus.tcf
new file mode 100644
index 0000000..353662c
--- /dev/null
+++ b/abs/not_built/core/tweaker/tcf/focus.tcf
@@ -0,0 +1,113 @@
+<tweak name = "SQL table scrubber">
+ <script>twk_scrub_sql.pl</script>
+ <description>Scrubs the sections of mythconverg that KnoppMyth controls, preparing for the Tweaks below.</description>
+ <options>
+ <option name = "scrub">
+ <description>Everyone should run this, or some the Tweaks below may fail.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ </options>
+</tweak>
+<tweak name = "Audio">
+ <script>twk_audio.pl</script>
+ <description>Configures MythTV, xine, and mplayer to output audio the way you want.</description>
+ <options>
+ <option name = "analogstereo">
+ <description>Suitable for output to headphones, amplified speakers, or analog inputs on a receiver.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ <option name = "analogsurround">
+ <description>Suitable for direct output to multiple individual speakers.</description>
+ </option>
+ <option name = "digital">
+ <description>The best option if your hardware supports it. Sends audio directly to a reciever to be processed.</description>
+ </option>
+ </options>
+</tweak>
+<tweak name = "CPU">
+ <script>twk_cpu.pl</script>
+ <description>Configures MythTV to use CPU-appropriate features and themes.</description>
+ <options>
+ <option name = "low">
+ <description>Uses the least amount of CPU but enables the fewest extra options.</description>
+ </option>
+ <option name = "medium">
+ <description>Uses a moderate amount of CPU and enables typical extra options.</description>
+ </option>
+ <option name = "high">
+ <description>Uses the most amount of CPU of the above options but enables the most extra options.</description>
+ </option>
+ </options>
+</tweak>
+<tweak name = "RAM">
+ <script>twk_RAM.pl</script>
+ <description>Configures MythTV to use the right-sized RAM cache for various options.</description>
+ <options>
+ <option name = "low">
+ <description>Uses the least amount of RAM but may cause buffering delays.</description>
+ </option>
+ <option name = "medium">
+ <description>Uses a moderate amount of RAM as a tradeoff between buffering and RAM usage.</description>
+ </option>
+ <option name = "high">
+ <description>Uses the most amount of RAM to reduce buffering and improve performance.</description>
+ </option>
+ </options>
+</tweak>
+<tweak name = "graphics">
+ <script>twk_graphics.pl</script>
+ <description>Configures MythTV to use graphical options that are appropriate for your video card.</description>
+ <options>
+ <option name = "low">
+ <description>Puts little stress on the video card.</description>
+ </option>
+ <option name = "medium">
+ <description>Puts the video card to work a bit and enables some eye candy.</description>
+ </option>
+ <option name = "high">
+ <description>Puts the video card hardest to work and enables more eye candy.</description>
+ </option>
+ </options>
+</tweak>
+<tweak name = "localization">
+ <script>twk_localization.pl</script>
+ <description>Configures the system to use your native language, system of measurements, etc.</description>
+ <options>
+ <option name = "US_English">
+ <description>This is for most North Americans. Any units seen are in imperial units, such as Fahrenheit, pounds, feet, etc.</description>
+ </option>
+ <option name = "GB_English">
+ <description>This is for most UK residents. Any units seen are in metric, such as Celsius, kilograms, meters, etc.</description>
+ </option>
+ </options>
+</tweak>
+<tweak name = "Tuner Configuration">
+ <script>twk_tuners.pl</script>
+ <description>Recommended for everyone.</description>
+ <options>
+ <option name = "all">
+ <description>Detects and auto-configures many tuner devices.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ </options>
+</tweak>
+<tweak name = "KnoppMyth Customizations">
+ <script>twk_general.pl</script>
+ <description>Recommended for everyone.</description>
+ <options>
+ <option name = "all">
+ <description>Changes made to the MythTV and KnoppMyth baseline settings for integration and functionality.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ </options>
+</tweak>
+<tweak name = "SQL table protecter">
+ <script>twk_scrub_sql.pl</script>
+ <description>Protects the sections of mythconverg that KnoppMyth controls, keeping our changes separate from user-made changes.</description>
+ <options>
+ <option name = "protect">
+ <description>Everyone should run this, or user-made changes might get clobbered.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ </options>
+</tweak>
diff --git a/abs/not_built/core/tweaker/tcf/os.tcf b/abs/not_built/core/tweaker/tcf/os.tcf
new file mode 100644
index 0000000..e70f4ee
--- /dev/null
+++ b/abs/not_built/core/tweaker/tcf/os.tcf
@@ -0,0 +1,10 @@
+<tweak name = "Linux-related Customizations">
+ <script>twk_linux.pl</script>
+ <description>Recommended for everyone.</description>
+ <options>
+ <option name = "all">
+ <description>Changes made to the Linux baseline settings for integration and functionality.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ </options>
+</tweak>
diff --git a/abs/not_built/core/tweaker/tcf/tcf.dtd b/abs/not_built/core/tweaker/tcf/tcf.dtd
new file mode 100644
index 0000000..64ce67e
--- /dev/null
+++ b/abs/not_built/core/tweaker/tcf/tcf.dtd
@@ -0,0 +1,11 @@
+<!ELEMENT tcf (tweak+)>
+<!ELEMENT tweak (description?, complexity?, script, alwaysaskuser?, options)>
+ <!ATTLIST tweak name CDATA #REQUIRED>
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT complexity (#PCDATA)>
+<!ELEMENT script (#PCDATA)>
+<!ELEMENT alwaysaskuser (#PCDATA)>
+<!ELEMENT options (option+)>
+<!ELEMENT option (description?, complexity?, recommendationlevel?)>
+ <!ATTLIST option name CDATA #REQUIRED>
+<!ELEMENT recommendationlevel (#PCDATA)>
diff --git a/abs/not_built/core/tweaker/tcf/tweaker-core.tcf b/abs/not_built/core/tweaker/tcf/tweaker-core.tcf
new file mode 100644
index 0000000..88d8608
--- /dev/null
+++ b/abs/not_built/core/tweaker/tcf/tweaker-core.tcf
@@ -0,0 +1,47 @@
+<?xml version="1.0" ?>
+<!DOCTYPE tcf SYSTEM "/usr/LH/tweaker/tcf/tcf.dtd" [
+<!-- <!ENTITY os SYSTEM "/usr/LH/tweaker/tcf/os.tcf"> //-->
+<!-- <!ENTITY distro SYSTEM "/usr/LH/tweaker/tcf/distro.tcf"> //-->
+ <!ENTITY focus SYSTEM "/usr/LH/tweaker/tcf/focus.tcf">
+ <!ENTITY userland SYSTEM "/usr/LH/tweaker/tcf/userland.tcf">
+ ]>
+<tcf>
+ <tweak name = "Complexity Level">
+ <description>Some configuration options require more understanding than others.</description>
+ <complexity>basic</complexity>
+ <script>null</script>
+ <options>
+ <option name = "Basic">
+ <description>Show only the most basic configuration options. This is best for new Users.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ <option name = "Intermediate">
+ <description>Show the basic configuration options as well as the options that veteran Users will understand.</description>
+ </option>
+ <option name = "Advanced">
+ <description>Show all configuration options, including those that only advanced Users will understand.</description>
+ <recommendationlevel>inadvisable</recommendationlevel>
+ </option>
+ </options>
+ </tweak>
+ <tweak name = "Interactivity">
+ <description>Tweaker can guess answers to some configuration options. Interactivity determines whether or not these guesses are used automatically, or whether you have a chance to intervene.</description>
+ <complexity>basic</complexity>
+ <script>null</script>
+ <options>
+ <option name = "Minimal">
+ <description>Show only the most basic configuration options. This is best for new Users.</description>
+ <recommendationlevel>inadvisable</recommendationlevel>
+ </option>
+ <option name = "Guided">
+ <description>Show the basic configuration options as well as the options that veteran Users will understand.</description>
+ <recommendationlevel>recommended</recommendationlevel>
+ </option>
+ </options>
+ </tweak>
+ &os;
+ &distro;
+ &focus;
+ &userland;
+</tcf>
+
diff --git a/abs/not_built/core/tweaker/tcf/userland.tcf b/abs/not_built/core/tweaker/tcf/userland.tcf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/abs/not_built/core/tweaker/tcf/userland.tcf
diff --git a/abs/not_built/core/tweaker/tweaker.install b/abs/not_built/core/tweaker/tweaker.install
new file mode 100644
index 0000000..fc4ba07
--- /dev/null
+++ b/abs/not_built/core/tweaker/tweaker.install
@@ -0,0 +1,39 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+/bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ touch /var/log/tweaker.log
+ chmod 777 /var/log/tweaker.log
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/core/tweaker/tweaker.sh b/abs/not_built/core/tweaker/tweaker.sh
new file mode 100644
index 0000000..8cb36eb
--- /dev/null
+++ b/abs/not_built/core/tweaker/tweaker.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+ export TWEAKER_ROOT=/usr/LH/tweaker
+ export PATH=$PATH:$TWEAKER_ROOT/bin
+ export PERL5LIB=$TWEAKER_ROOT/lib:$PERL5LIB \ No newline at end of file
diff --git a/abs/not_built/core/v4l-dvb/PKGBUILD b/abs/not_built/core/v4l-dvb/PKGBUILD
new file mode 100644
index 0000000..f19c2fa
--- /dev/null
+++ b/abs/not_built/core/v4l-dvb/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=v4l-dvb
+_kernver=`uname -r`
+pkgver=20120904
+pkgrel=1
+pkgdesc="V4L-DVB device drivers (newer than those included in kernel26)"
+arch=('i686' 'x86_64')
+url="http://linuxtv.org/"
+license=('GPL2')
+depends=('kernel26')
+makedepends=('git' 'kernel26-headers' 'perl-proc-processtable' 'patchutils')
+options=(!makeflags)
+install=v4l-dvb.install
+_gitroot="git://linuxtv.org/media_build.git"
+_gitname="media_build"
+
+build() {
+ cd "${srcdir}"
+ msg "Connecting to GIT server...."
+
+ if [ -d "${srcdir}/${_gitname}" ] ; then
+ cd ${_gitname} && git pull --rebase
+ else
+ git clone ${_gitroot}
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ cd "${srcdir}/${_gitname}/linux"
+ make download untar
+ cd ..
+
+# Build with 3.0-ARCH kernel
+# sed -i -e "s/KERNELRELEASE\ :=/KERNELRELEASE\ :=\ ${_kernver}/" \
+# -e "s/\$(KERNELRELEASE)/${_kernver}/" \
+# "${srcdir}/${_gitname}"/v4l/Makefile{,.sound}
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${_gitname}"
+ make DESTDIR="${pkgdir}/lib/modules/$_kernver/updates" install
+ # compress new kernel modules
+ find ${pkgdir}/lib/modules/$_kernver/updates/ -not -name 'media.ko' -name '*.ko' -exec gzip '{}' \;
+}
+md5sums=()
diff --git a/abs/not_built/core/v4l-dvb/v4l-dvb.install b/abs/not_built/core/v4l-dvb/v4l-dvb.install
new file mode 100644
index 0000000..f7b7197
--- /dev/null
+++ b/abs/not_built/core/v4l-dvb/v4l-dvb.install
@@ -0,0 +1,12 @@
+post_install() {
+ echo ">>> Running depmod..."
+ depmod
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ echo ">>> v4l-dvb has been removed"
+}
diff --git a/abs/not_built/core/vbetool/PKGBUILD b/abs/not_built/core/vbetool/PKGBUILD
new file mode 100644
index 0000000..244babc
--- /dev/null
+++ b/abs/not_built/core/vbetool/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 19227 2008-11-17 22:22:42Z thayer $
+# Contributor: Christian Storm <Christian.Storm@gmx.DE>
+# Contributor: James Rayner <james@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=vbetool
+pkgver=1.1
+pkgrel=1
+pkgdesc="vbetool uses lrmi in order to run code from the video BIOS"
+url="http://www.srcf.ucam.org/~mjg59/vbetool/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('zlib' 'libx86')
+makedepends=('pciutils')
+source=(http://www.codon.org.uk/~mjg59/vbetool/download/vbetool-${pkgver}.tar.gz)
+md5sums=('ffb03b118867a02296d7449019ad8846')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ if [ "${CARCH}" = "x86_64" ]; then
+ ./configure --prefix=/usr --without-x86emu || return 1
+ else
+ ./configure --prefix=/usr || return 1
+ fi
+ make LIBS=-lpci || return 1
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install || return 1
+}
+
diff --git a/abs/not_built/core/vdpauinfo-legacy/PKGBUILD b/abs/not_built/core/vdpauinfo-legacy/PKGBUILD
new file mode 100644
index 0000000..d58c672
--- /dev/null
+++ b/abs/not_built/core/vdpauinfo-legacy/PKGBUILD
@@ -0,0 +1,26 @@
+# It is not expected that vdpau will work with the 71xx nVidia drivers, but we still want
+# 'vdpinfo' to return something when users run it, even if the real 'vdpinfo' won't build
+# for their nVidia driver version.
+
+pkgname=vdpauinfo-legacy
+pkgver=1
+pkgrel=5
+pkgdesc="tells the user they can't handle vdpau"
+license=('GPLv2')
+arch=('i686' 'x86_64')
+#depends=('')
+# Just let the dependency on the right nvidia and nvidia-utils versions
+# handle conflicts via those packages conflicts.
+conflicts=(vdpauinfo)
+provides=('vpinfo' 'vdpauinfo')
+source=(vdpauinfo)
+md5sums=()
+
+build() {
+ LH_ROOT=/usr/LH
+ mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
+ cd $startdir
+ install -m0755 -D vdpauinfo $startdir/pkg/$LH_ROOT/bin/
+}
+md5sums=('502f0a21bd1232e5a6bccb17cd63116d')
diff --git a/abs/not_built/core/vdpauinfo-legacy/vdpauinfo b/abs/not_built/core/vdpauinfo-legacy/vdpauinfo
new file mode 100755
index 0000000..9b237dc
--- /dev/null
+++ b/abs/not_built/core/vdpauinfo-legacy/vdpauinfo
@@ -0,0 +1,2 @@
+#!/bin/bash
+echo "vdpau is unsupported"
diff --git a/abs/not_built/core/xf86-input-acecad/LICENSE b/abs/not_built/core/xf86-input-acecad/LICENSE
new file mode 100644
index 0000000..cb245d3
--- /dev/null
+++ b/abs/not_built/core/xf86-input-acecad/LICENSE
@@ -0,0 +1,24 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright (c) 2001 Edouard TISSERANT <tissered@esstin.u-nancy.fr>
+Parts inspired from Shane Watts <shane@bofh.asn.au> XFree86 3 Acecad Driver
+Thanks to Emily, from AceCad, For giving me documents.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/abs/not_built/core/xf86-input-acecad/PKGBUILD b/abs/not_built/core/xf86-input-acecad/PKGBUILD
new file mode 100644
index 0000000..b95dbec
--- /dev/null
+++ b/abs/not_built/core/xf86-input-acecad/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88560 2010-08-24 08:42:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-acecad
+pkgver=1.4.0
+pkgrel=3
+pkgdesc="X.Org acecad tablet input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('sysfsutils')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-input-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('51247dc0d73185e35bec326283bc49a5'
+ '6f401ccbe91e2938b01d5a85df350a7c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-input-aiptek/PKGBUILD b/abs/not_built/core/xf86-input-aiptek/PKGBUILD
new file mode 100644
index 0000000..70ba0ca
--- /dev/null
+++ b/abs/not_built/core/xf86-input-aiptek/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88563 2010-08-24 08:45:36Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-aiptek
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="X.Org Aiptek USB Digital Tablet input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-input-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8466910dd3877502eb97468db4deab98d49125bb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-input-synaptics/10-synaptics.conf b/abs/not_built/core/xf86-input-synaptics/10-synaptics.conf
new file mode 100644
index 0000000..7e456ed
--- /dev/null
+++ b/abs/not_built/core/xf86-input-synaptics/10-synaptics.conf
@@ -0,0 +1,8 @@
+Section "InputClass"
+ Identifier "touchpad catchall"
+ Driver "synaptics"
+ MatchIsTouchpad "on"
+ Option "TapButton1" "1"
+ Option "TapButton2" "2"
+ Option "TapButton3" "3"
+EndSection
diff --git a/abs/not_built/core/xf86-input-synaptics/PKGBUILD b/abs/not_built/core/xf86-input-synaptics/PKGBUILD
new file mode 100644
index 0000000..670fd87
--- /dev/null
+++ b/abs/not_built/core/xf86-input-synaptics/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 89499 2010-09-01 12:06:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-input-synaptics
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="synaptics driver for notebook touchpads"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxtst')
+makedepends=('xorg-server-devel' 'libxi' 'libx11')
+conflicts=('xorg-server<1.9.0')
+replaces=('synaptics')
+provides=('synaptics')
+conflicts=('synaptics')
+groups=('xorg-input-drivers')
+options=(!libtool)
+backup=('etc/X11/xorg.conf.d/10-synaptics.conf')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 10-synaptics.conf)
+sha1sums=('132fff19a3a1768e7ab403f44ebc28e0480a4120'
+ '70ddc39abc03c3b5b8071b70b5553f84e01d78b2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
+ install -m644 "${srcdir}/10-synaptics.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ rm -rf "${pkgdir}/usr/share/X11"
+}
diff --git a/abs/not_built/core/xf86-input-wacom/70-wacom.rules b/abs/not_built/core/xf86-input-wacom/70-wacom.rules
new file mode 100644
index 0000000..67e5580
--- /dev/null
+++ b/abs/not_built/core/xf86-input-wacom/70-wacom.rules
@@ -0,0 +1,8 @@
+ACTION!="add|change", GOTO="wacom_end"
+
+# Match all wacom tablets with a serial ID starting with WACf
+ATTRS{id}=="WACf*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
+ATTRS{id}=="FUJ*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
+
+LABEL="wacom_end"
+
diff --git a/abs/not_built/core/xf86-input-wacom/PKGBUILD b/abs/not_built/core/xf86-input-wacom/PKGBUILD
new file mode 100644
index 0000000..5296159
--- /dev/null
+++ b/abs/not_built/core/xf86-input-wacom/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 88601 2010-08-24 09:13:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: M Rawash <mrawash@gmail.com>
+
+pkgname=xf86-input-wacom
+pkgver=0.10.8
+pkgrel=2
+pkgdesc="X.Org Wacom tablet driver"
+arch=('i686' 'x86_64')
+url="http://linuxwacom.sourceforge.net/"
+license=('GPL')
+backup=('etc/X11/xorg.conf.d/50-wacom.conf')
+depends=('libxi')
+makedepends=('xorg-server-devel' 'libxext' 'libxi')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ 70-wacom.rules)
+md5sums=('e2bcc125070a16a7e3608d074d5d27dc'
+ '4d3665bb2ef8a8190734640dffa4c6f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-xorg-conf-dir=/etc/X11/xorg.conf.d
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/lib/udev/rules.d"
+ install -m644 "${srcdir}/70-wacom.rules" "${pkgdir}/lib/udev/rules.d/"
+}
diff --git a/abs/not_built/core/xf86-video-apm/PKGBUILD b/abs/not_built/core/xf86-video-apm/PKGBUILD
new file mode 100644
index 0000000..dc79a62
--- /dev/null
+++ b/abs/not_built/core/xf86-video-apm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88609 2010-08-24 09:19:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-apm
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="X.org Alliance ProMotion video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('1fa7180cf985a74132f8d5b39a0bf9df08713fac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-ark/PKGBUILD b/abs/not_built/core/xf86-video-ark/PKGBUILD
new file mode 100644
index 0000000..03b715a
--- /dev/null
+++ b/abs/not_built/core/xf86-video-ark/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88612 2010-08-24 09:22:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ark
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="X.org ark video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('56901ec6097a83433689f208268281f9c98c238b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-ast/PKGBUILD b/abs/not_built/core/xf86-video-ast/PKGBUILD
new file mode 100644
index 0000000..8cfbaa9
--- /dev/null
+++ b/abs/not_built/core/xf86-video-ast/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ast
+pkgver=0.91.10
+pkgrel=1
+pkgdesc="X.org ASPEED AST Graphics video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('a90624e63f33fdcb50ccefcdeebb34052f341ef3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-ati/PKGBUILD b/abs/not_built/core/xf86-video-ati/PKGBUILD
new file mode 100644
index 0000000..a708fc3
--- /dev/null
+++ b/abs/not_built/core/xf86-video-ati/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 92040 2010-09-28 17:24:55Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-ati
+pkgver=6.13.2
+pkgrel=1
+pkgdesc="X.org ati video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(libpciaccess libdrm udev pixman ati-dri)
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a8f92fe3c458e511f4e2ead7f92c02b0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make "DESTDIR=${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-chips/PKGBUILD b/abs/not_built/core/xf86-video-chips/PKGBUILD
new file mode 100644
index 0000000..b0bab50
--- /dev/null
+++ b/abs/not_built/core/xf86-video-chips/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88618 2010-08-24 09:46:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-chips
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="X.org Chips and Technologies video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(glibc)
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('79d1592dacbdd5ff0419dcb2fef2a2ca541dd329')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-cirrus/LICENSE b/abs/not_built/core/xf86-video-cirrus/LICENSE
new file mode 100644
index 0000000..bb283cf
--- /dev/null
+++ b/abs/not_built/core/xf86-video-cirrus/LICENSE
@@ -0,0 +1,22 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 2000 by Egbert Eich
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Alan Hourihane makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+EGBERT EICH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xf86-video-cirrus/PKGBUILD b/abs/not_built/core/xf86-video-cirrus/PKGBUILD
new file mode 100644
index 0000000..06d6510
--- /dev/null
+++ b/abs/not_built/core/xf86-video-cirrus/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88621 2010-08-24 09:48:53Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-cirrus
+pkgver=1.3.2
+pkgrel=4
+pkgdesc="X.org Cirrus Logic video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('8195d03ed0be0975c03441e66a9f53b3'
+ 'b9b570ac5c03f1fbe3e0cee5fe884b82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-dummy/PKGBUILD b/abs/not_built/core/xf86-video-dummy/PKGBUILD
new file mode 100644
index 0000000..06386c7
--- /dev/null
+++ b/abs/not_built/core/xf86-video-dummy/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88624 2010-08-24 09:52:29Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-dummy
+pkgver=0.3.4
+pkgrel=2
+pkgdesc="X.org dummy video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('876ed7165ea2821bbddd73232a1ce0b79c1f14ff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-fbdev/PKGBUILD b/abs/not_built/core/xf86-video-fbdev/PKGBUILD
new file mode 100644
index 0000000..2208c59
--- /dev/null
+++ b/abs/not_built/core/xf86-video-fbdev/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88627 2010-08-24 09:55:20Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-fbdev
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="X.org framebuffer video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('c8562f997d56c9fec50df6ca9892f39f43ff4c2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-geode/PKGBUILD b/abs/not_built/core/xf86-video-geode/PKGBUILD
new file mode 100644
index 0000000..6763518
--- /dev/null
+++ b/abs/not_built/core/xf86-video-geode/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 99349 2010-11-14 16:06:37Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-geode
+pkgver=2.11.10
+pkgrel=1
+pkgdesc="X.org AMD/Geode LX & NX video driver"
+# there is no 64bit geode
+arch=(i686)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+conflicts=('xf86-video-amd')
+replaces=('xf86-video-amd')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('01d739983e1449bac89c2c1f639ad3d6562b4fa4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-glint/LICENSE b/abs/not_built/core/xf86-video-glint/LICENSE
new file mode 100644
index 0000000..b4ca2d4
--- /dev/null
+++ b/abs/not_built/core/xf86-video-glint/LICENSE
@@ -0,0 +1,84 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1998-2001 by Alan Hourihane, Wigan, England.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Alan Hourihane makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright (C) 1998-2000 Michael H. Schimek <m.schimek@netway.at>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+
+Copyright 2000-2001 by Sven Luther <luther@dpt-info.u-strasbg.fr>.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Sven Luther not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Sven Luther makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+SVEN LUTHER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL SVEN LUTHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xf86-video-glint/PKGBUILD b/abs/not_built/core/xf86-video-glint/PKGBUILD
new file mode 100644
index 0000000..f622429
--- /dev/null
+++ b/abs/not_built/core/xf86-video-glint/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88630 2010-08-24 09:57:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-glint
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="X.org GLINT/Permedia video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('960df34e129faa411e58c0d6b56d79a3'
+ '996937b1e1d13f721b0e467fb8824780')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-i128/PKGBUILD b/abs/not_built/core/xf86-video-i128/PKGBUILD
new file mode 100644
index 0000000..4f51b9d
--- /dev/null
+++ b/abs/not_built/core/xf86-video-i128/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88633 2010-08-24 10:05:56Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i128
+pkgver=1.3.4
+pkgrel=1
+pkgdesc="X.org Number 9 I128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d5f755dc964eaa067b4efcafafd00814a60df775')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-i740/LICENSE b/abs/not_built/core/xf86-video-i740/LICENSE
new file mode 100644
index 0000000..1aace06
--- /dev/null
+++ b/abs/not_built/core/xf86-video-i740/LICENSE
@@ -0,0 +1,47 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright 2001 by Patrick LERDA
+Portions Copyright by Stephen Blackheath
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Patrick LERDA not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Patrick LERDA makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+PATRICK LERDA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL PATRICK LERDA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xf86-video-i740/PKGBUILD b/abs/not_built/core/xf86-video-i740/PKGBUILD
new file mode 100644
index 0000000..8e9be2d
--- /dev/null
+++ b/abs/not_built/core/xf86-video-i740/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88636 2010-08-24 10:10:42Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i740
+pkgver=1.3.2
+pkgrel=4
+pkgdesc="X.org Intel i740 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('4ac1318788f62159965f15131c869e7a'
+ '23a6d421e7529393969df8b65e88d607')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-mach64/LICENSE b/abs/not_built/core/xf86-video-mach64/LICENSE
new file mode 100644
index 0000000..1aa2df6
--- /dev/null
+++ b/abs/not_built/core/xf86-video-mach64/LICENSE
@@ -0,0 +1,209 @@
+Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Marc Aurele La France makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2000 Gareth Hughes
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+(c) 2004 Adam Jackson. Standard MIT license applies.
+
+Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+Precision Insight, Inc., Cedar Park, Texas, and
+VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright 2003 Alex Deucher.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER
+CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+/*
+ * Copyright 2000 Gareth Hughes
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ * Gareth Hughes <gareth@valinux.com>
+ * Leif Delgass <ldelgass@retinalburn.net>
+ * José Fonseca <j_r_fonseca@yahoo.co.uk>
+ */
+
+/*
+ * Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc.,
+ * Cedar Park, Texas.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ * Gareth Hughes <gareth@valinux.com>
+ * Leif Delgass <ldelgass@retinalburn.net>
+ * Jose Fonseca <j_r_fonseca@yahoo.co.uk>
+ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 3.5
+ *
+ * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Keith Whitwell <keithw@valinux.com>
+ *
+ * Modified for mach64 by:
+ * Leif Delgass <ldelgass@retinalburn.net>
+ * José Fonseca <j_r_fonseca@yahoo.co.uk>
+ */
diff --git a/abs/not_built/core/xf86-video-mach64/PKGBUILD b/abs/not_built/core/xf86-video-mach64/PKGBUILD
new file mode 100644
index 0000000..88b2c34
--- /dev/null
+++ b/abs/not_built/core/xf86-video-mach64/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88640 2010-08-24 10:35:32Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=xf86-video-mach64
+pkgver=6.8.2
+pkgrel=4
+pkgdesc="X.org mach64 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mach64-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('6c0522b2b72a0a47c48d718443616651'
+ '901824dae8053c63ef9d313cdaa129a0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-mga/PKGBUILD b/abs/not_built/core/xf86-video-mga/PKGBUILD
new file mode 100644
index 0000000..0170f6c
--- /dev/null
+++ b/abs/not_built/core/xf86-video-mga/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88643 2010-08-24 10:39:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mga
+pkgver=1.4.13
+pkgrel=1
+pkgdesc="X.org mga video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mga-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool' 'force')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('55aa185cf381def4b5905c8b93694b8dfbd5c378')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-neomagic/PKGBUILD b/abs/not_built/core/xf86-video-neomagic/PKGBUILD
new file mode 100644
index 0000000..5d5bd1f
--- /dev/null
+++ b/abs/not_built/core/xf86-video-neomagic/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88646 2010-08-24 12:07:27Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-neomagic
+pkgver=1.2.5
+pkgrel=2
+pkgdesc="X.org neomagic video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('02c994e2eae191b50a8cd556e5b52d82725073b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-nouveau/PKGBUILD b/abs/not_built/core/xf86-video-nouveau/PKGBUILD
new file mode 100644
index 0000000..fb4c542
--- /dev/null
+++ b/abs/not_built/core/xf86-video-nouveau/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 88739 2010-08-24 17:39:17Z jgc $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=xf86-video-nouveau
+_gitdate=20100819
+pkgver=0.0.16_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/wiki/"
+license=('GPL') #and MIT, not yet a license file, see http://nouveau.freedesktop.org/wiki/FAQ#head-09f75d03eb30011c754038a3893119a70745de4e
+depends=('libdrm' 'udev')
+optdepends=('nouveau-dri: highly experimental gallium3d features')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+install=${pkgname}.install
+source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2)
+md5sums=('31672103e8275bb00df061f362c7f8bb')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/nouveau/xf86-video-nouveau
+ cd xf86-video-nouveau
+ git archive --prefix=xf86-video-nouveau-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+ cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install b/abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install
new file mode 100644
index 0000000..027154f
--- /dev/null
+++ b/abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install
@@ -0,0 +1,16 @@
+post_install () {
+ cat << _EOF
+ ==> make sure you use KernelModeSetting (KMS)
+ ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+}
+
+post_upgrade() {
+ if [ "`vercmp $2 0.0.15_git20100117-1`" -lt 0 ]; then
+ cat << _EOF
+ ==> ATTENTION: Usermode support has been dropped
+ ==> make sure you use KernelModeSetting (KMS)
+ ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+ fi
+}
diff --git a/abs/not_built/core/xf86-video-nv/PKGBUILD b/abs/not_built/core/xf86-video-nv/PKGBUILD
new file mode 100644
index 0000000..d9f6bfd
--- /dev/null
+++ b/abs/not_built/core/xf86-video-nv/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88649 2010-08-24 12:12:40Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-nv
+pkgver=2.1.18
+pkgrel=1
+pkgdesc="X.org nv video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d35b2fa5a26a507a9cc95b69243d9fd0c0f32aa2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-openchrome/LICENSE.txt b/abs/not_built/core/xf86-video-openchrome/LICENSE.txt
new file mode 100644
index 0000000..dff1dc3
--- /dev/null
+++ b/abs/not_built/core/xf86-video-openchrome/LICENSE.txt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2005-2007 The Openchrome Project [openchrome.org]
+ * Copyright 2004-2006 Luc Verhaegen.
+ * Copyright 2004-2005 The Unichrome Project [unichrome.sf.net]
+ * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+ * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
diff --git a/abs/not_built/core/xf86-video-openchrome/PKGBUILD b/abs/not_built/core/xf86-video-openchrome/PKGBUILD
new file mode 100644
index 0000000..7d009a9
--- /dev/null
+++ b/abs/not_built/core/xf86-video-openchrome/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 88694 2010-08-24 13:35:43Z jgc $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Juergen Hoetzel <juergen@hoetzel.info>
+
+pkgname=xf86-video-openchrome
+pkgver=0.2.904
+pkgrel=4
+pkgdesc="X.Org Openchrome drivers"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.openchrome.org"
+depends=('libdrm' 'libxvmc' 'unichrome-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc')
+replaces=('openchrome' 'xf86-video-via')
+options=('!libtool' 'force' '!makeflags')
+conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.9.0')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ drm_stdint.patch
+ svn-r839.patch
+ LICENSE.txt)
+md5sums=('f2481d98ef54febf5bffbb88a2a2426d'
+ 'bc516400ffc3df5d0dfe604f6245dd32'
+ '5aed4aa44dd5a6d3e2da9baad73ac0ab'
+ 'addb3cf2671f4cf7e91156952de1627f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/svn-r839.patch"
+ patch -Np0 -i "${srcdir}/drm_stdint.patch"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/abs/not_built/core/xf86-video-openchrome/drm_stdint.patch b/abs/not_built/core/xf86-video-openchrome/drm_stdint.patch
new file mode 100644
index 0000000..226a015
--- /dev/null
+++ b/abs/not_built/core/xf86-video-openchrome/drm_stdint.patch
@@ -0,0 +1,10 @@
+--- src/via_xvmc.h.orig 2010-03-07 01:46:34.000000000 +0100
++++ src/via_xvmc.h 2010-03-07 01:46:45.000000000 +0100
+@@ -26,6 +26,7 @@
+ #ifndef _VIA_XVMC_H
+ #define _VIA_XVMC_H 1
+
++#include <stdint.h>
+ #include "via_drm.h"
+
+ /*
diff --git a/abs/not_built/core/xf86-video-openchrome/svn-r839.patch b/abs/not_built/core/xf86-video-openchrome/svn-r839.patch
new file mode 100644
index 0000000..8e5f056
--- /dev/null
+++ b/abs/not_built/core/xf86-video-openchrome/svn-r839.patch
@@ -0,0 +1,1447 @@
+diff -ruN xf86-video-openchrome-0.2.904/ChangeLog ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog
+--- xf86-video-openchrome-0.2.904/ChangeLog 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog 2010-03-07 01:09:00.000000000 +0100
+@@ -1,3 +1,52 @@
++2010-02-10 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Fix bug with suspend and VT switch on VX800 and 64bit systems
++
++ * src/via_driver.h:
++ * src/via_video.c: (viaResetVideo), (viaSaveVideo),
++ (viaRestoreVideo), (viaExitVideo):
++ * src/via_video.h:
++
++2010-01-24 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Fix starting address restore and save (initial 64-bit support)
++
++ * src/via_crtc.c: (ViaFirstCRTCSetMode),
++ (ViaFirstCRTCSetStartingAddress):
++ * src/via_dri.c: (VIADRIAgpInit):
++ * src/via_driver.c: (VIASave), (VIARestore):
++ * src/via_driver.h:
++
++2009-12-04 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Enable new mode switch for VM800 chipsets
++
++ * src/via_driver.c: (VIASetupDefaultOptions):
++
++2009-11-21 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Add option to enable unaccelerated RandR rotation ("SWRandR").
++ The accelerated option "HWRandR" is currently not implemented.
++
++ * src/openchrome.man:
++ * src/via_driver.c: (VIAPreInit):
++
++2009-11-20 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Enabled new mode switch for PM800 chipset,
++ to resolve many bugs with resolution detecting and changing
++ (eg. switching to console)
++
++ * src/via_driver.c: (VIASetupDefaultOptions), (VIAPreInit):
++
++2009-11-07 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Add more comments to ViaSetSecondaryFIFO, add panel scale support for
++ CLE266 and KM400, fix bug with malloc.
++
++ * src/via_bandwidth.c: (ViaSetSecondaryFIFO):
++ * src/via_panel.c: (ViaPanelScale), (ViaPanelGetNativeDisplayMode):
++
+ 2009-09-26 Bartosz Kosiorek <gang65@poczta.onet.pl>
+
+ Save/restore ECK Clock Synthesizer
+diff -ruN xf86-video-openchrome-0.2.904/man/openchrome.man ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man
+--- xf86-video-openchrome-0.2.904/man/openchrome.man 2009-10-09 01:12:41.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man 2010-03-07 01:09:00.000000000 +0100
+@@ -59,7 +59,7 @@
+ .BI "Option \*qAccelMethod\*q \*q" string \*q
+ The driver supports "XAA" and "EXA" acceleration methods. The default
+ method is XAA, since EXA is still experimental. Contrary to XAA, EXA
+-implements acceleration for screen uploads and downlads (if DRI is
++implements acceleration for screen uploads and downloads (if DRI is
+ enabled) and for the Render/Composite extension.
+ .TP
+ .BI "Option \*qActiveDevice\*q \*q" string \*q
+@@ -81,7 +81,7 @@
+ no room for DRI textures, they will be allocated from the DRI part of
+ VRAM (see the option "MaxDRIMem"). The default amount of AGP is
+ 32768 kB. Note that the AGP aperture set in the BIOS must be able
+-to accomodate the amount of AGP memory specified here. Otherwise no
++to accommodate the amount of AGP memory specified here. Otherwise no
+ AGP memory will be available. It is safe to set a very large AGP
+ aperture in the BIOS.
+ .TP
+@@ -159,9 +159,16 @@
+ system. The sizes 640x480, 800x600, 1024x768, 1280x1024, and 1400x1050
+ are supported.
+ .TP
++.BI "Option \*qRotationType\*q \*q" string \*q
++Enabled rotation by using RandR. The driver only support unaccelerated
++RandR rotations "SWRandR". Hardware rotations "HWRandR" is currently
++unimplemented.
++.TP
+ .BI "Option \*qRotate\*q \*q" string \*q
+ Rotates the display either clockwise ("CW"), counterclockwise ("CCW") and
+-upside-down ("UD"). Rotation is only supported unaccelerated.
++upside-down ("UD"). Rotation is only supported unaccelerated. Adding
++option "Rotate", enables RandR rotation feature. The RandR allows
++clients to dynamically change X screens.
+ .TP
+ .BI "Option \*qShadowFB\*q \*q" boolean \*q
+ Enables the use of a shadow frame buffer. This is required when
+diff -ruN xf86-video-openchrome-0.2.904/src/svnversion.h ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h
+--- xf86-video-openchrome-0.2.904/src/svnversion.h 2009-10-09 01:19:04.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h 2010-03-07 01:09:15.000000000 +0100
+@@ -1 +1 @@
+-#define BUILDCOMMENT "(openchrome 0.2.904 release)"
++#define BUILDCOMMENT "(development build, at svn revision 839)"
+diff -ruN xf86-video-openchrome-0.2.904/src/via_accel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c
+--- xf86-video-openchrome-0.2.904/src/via_accel.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c 2010-03-07 01:09:00.000000000 +0100
+@@ -1210,7 +1210,8 @@
+
+ /* General acceleration flags. */
+ xaaptr->Flags = (PIXMAP_CACHE |
+- OFFSCREEN_PIXMAPS | LINEAR_FRAMEBUFFER |
++ OFFSCREEN_PIXMAPS |
++ LINEAR_FRAMEBUFFER |
+ MICROSOFT_ZERO_LINE_BIAS | 0);
+
+ if (pScrn->bitsPerPixel == 8)
+@@ -1228,14 +1229,17 @@
+
+ xaaptr->Sync = viaAccelSync;
+
++ /* ScreenToScreen copies */
+ xaaptr->SetupForScreenToScreenCopy = viaSetupForScreenToScreenCopy;
+ xaaptr->SubsequentScreenToScreenCopy = viaSubsequentScreenToScreenCopy;
+ xaaptr->ScreenToScreenCopyFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Solid filled rectangles */
+ xaaptr->SetupForSolidFill = viaSetupForSolidFill;
+ xaaptr->SubsequentSolidFillRect = viaSubsequentSolidFillRect;
+ xaaptr->SolidFillFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Mono 8x8 pattern fills */
+ xaaptr->SetupForMono8x8PatternFill = viaSetupForMono8x8PatternFill;
+ xaaptr->SubsequentMono8x8PatternFillRect =
+ viaSubsequentMono8x8PatternFillRect;
+@@ -1244,6 +1248,7 @@
+ HARDWARE_PATTERN_PROGRAMMED_ORIGIN |
+ BIT_ORDER_IN_BYTE_MSBFIRST | 0);
+
++ /* Color 8x8 pattern fills */
+ xaaptr->SetupForColor8x8PatternFill = viaSetupForColor8x8PatternFill;
+ xaaptr->SubsequentColor8x8PatternFillRect =
+ viaSubsequentColor8x8PatternFillRect;
+@@ -1252,12 +1257,14 @@
+ HARDWARE_PATTERN_PROGRAMMED_BITS |
+ HARDWARE_PATTERN_PROGRAMMED_ORIGIN | 0);
+
++ /* Solid lines */
+ xaaptr->SetupForSolidLine = viaSetupForSolidLine;
+ xaaptr->SubsequentSolidTwoPointLine = viaSubsequentSolidTwoPointLine;
+ xaaptr->SubsequentSolidHorVertLine = viaSubsequentSolidHorVertLine;
+ xaaptr->SolidBresenhamLineErrorTermBits = 14;
+ xaaptr->SolidLineFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Dashed line */
+ xaaptr->SetupForDashedLine = viaSetupForDashedLine;
+ xaaptr->SubsequentDashedTwoPointLine = viaSubsequentDashedTwoPointLine;
+ xaaptr->DashPatternMaxLength = 8;
+@@ -1266,35 +1273,42 @@
+ LINE_PATTERN_POWER_OF_2_ONLY |
+ LINE_PATTERN_MSBFIRST_LSBJUSTIFIED | 0);
+
++ /* CPU to Screen color expansion */
+ xaaptr->ScanlineCPUToScreenColorExpandFillFlags = NO_PLANEMASK |
+- CPU_TRANSFER_PAD_DWORD |
+- SCANLINE_PAD_DWORD |
+- BIT_ORDER_IN_BYTE_MSBFIRST |
+- LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0;
++ CPU_TRANSFER_PAD_DWORD |
++ SCANLINE_PAD_DWORD |
++ BIT_ORDER_IN_BYTE_MSBFIRST |
++ LEFT_EDGE_CLIPPING |
++ ROP_NEEDS_SOURCE | 0;
+
+ xaaptr->SetupForScanlineCPUToScreenColorExpandFill =
+ viaSetupForCPUToScreenColorExpandFill;
+ xaaptr->SubsequentScanlineCPUToScreenColorExpandFill =
+ viaSubsequentScanlineCPUToScreenColorExpandFill;
+ xaaptr->ColorExpandBase = pVia->BltBase;
+- xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++ if (pVia->Chipset == VIA_VX800 || pVia->Chipset == VIA_VX855)
++ xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++ else
++ xaaptr->ColorExpandRange = (64 * 1024);
+
++ /* ImageWrite */
+ xaaptr->ImageWriteFlags = (NO_PLANEMASK |
+ CPU_TRANSFER_PAD_DWORD |
+ SCANLINE_PAD_DWORD |
+ BIT_ORDER_IN_BYTE_MSBFIRST |
+- LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0);
++ LEFT_EDGE_CLIPPING |
++ ROP_NEEDS_SOURCE | 0);
+ // SYNC_AFTER_IMAGE_WRITE | 0);
+
+ /*
+ * Most Unichromes are much faster using processor-to-framebuffer writes
+ * than when using the 2D engine for this.
+- * test with x11perf -shmput500!
++ * test with "x11perf -shmput500"
++ * Example: K8M890 chipset; with GPU=86.3/sec; without GPU=132.0/sec
++ * TODO Check speed for other chipsets
+ */
+
+ switch (pVia->Chipset) {
+- case VIA_K8M800:
+- case VIA_K8M890:
+ case VIA_P4M900:
+ case VIA_VX800:
+ case VIA_VX855:
+diff -ruN xf86-video-openchrome-0.2.904/src/via_bandwidth.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c
+--- xf86-video-openchrome-0.2.904/src/via_bandwidth.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c 2010-03-07 01:09:00.000000000 +0100
+@@ -194,6 +194,7 @@
+ else
+ ViaSeqMask(hwp, 0x22, 0x00, 0x1F); /* 128/4 = overflow = 0 */
+ break;
++ /* PM800/PM880/CN400 */
+ case VIA_PM800:
+ hwp->writeSeq(hwp, 0x17, 0x5F); /* 95 */
+ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 32 */
+@@ -204,9 +205,10 @@
+ else
+ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 31 */
+ break;
++ /* P4M800Pro/VN800/CN700 */
+ case VIA_VM800:
+ hwp->writeSeq(hwp, 0x17, 0x2F);
+- ViaSeqMask(hwp, 0x16, 0x14, 0xBF);
++ ViaSeqMask(hwp, 0x16, 0x14, 0xBF); /* 80/4 = 20 = 0x14 */
+ ViaSeqMask(hwp, 0x18, 0x08, 0xBF);
+
+ if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32))
+@@ -215,40 +217,51 @@
+ ViaSeqMask(hwp, 0x22, 0x00, 0x1F);
+ break;
+ case VIA_K8M890:
+- hwp->writeSeq(hwp, 0x16, 0x92);
+- hwp->writeSeq(hwp, 0x17, 0xB3);
+- hwp->writeSeq(hwp, 0x18, 0x8A);
++ /* depth location: {SR17,0,7} */
++ hwp->writeSeq(hwp, 0x17, 0xB3); /* 360/2-1 = 179 = 0xB3 */
++ /* Formula (x & 0x3F) | ((x & 0x40) << 1) */
++ /* threshold location: {SR16,0,5},{SR16,7,7} */
++ ViaSeqMask(hwp, 0x16, 0x92, 0xBF); /* 328/4 = 82 = 0x52 */
++ /* high threshold location: {SR18,0,5},{SR18,7,7} */
++ ViaSeqMask(hwp, 0x18, 0x8A, 0xBF); /* 296/4 = 74 = 0x4A */
++ /* display queue expire num location: {SR22,0,4}. */
++ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_P4M900:
+- ViaSeqMask(hwp, 0x17, 0x2F, 0xFF);
+- ViaSeqMask(hwp, 0x16, 0x13, 0x3F);
+- ViaSeqMask(hwp, 0x16, 0x00, 0x80);
+- ViaSeqMask(hwp, 0x18, 0x13, 0x3F);
+- ViaSeqMask(hwp, 0x18, 0x00, 0x80);
++ /* location: {SR17,0,7} */
++ hwp->writeSeq(hwp, 0x17, 0x2F); /* 96/2-1 = 47 = 0x2F */
++ /* location: {SR16,0,5},{SR16,7,7} */
++ ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ /* location: {SR18,0,5},{SR18,7,7} */
++ ViaSeqMask(hwp, 0x18, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ /* location: {SR22,0,4}. */
++ ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4 = 8 = 0x08 */
+ break;
+ case VIA_P4M890:
+- hwp->writeSeq(hwp, 0x16, 0x13);
+- hwp->writeSeq(hwp, 0x17, 0x2F);
+- hwp->writeSeq(hwp, 0x18, 0x53);
+- hwp->writeSeq(hwp, 0x22, 0x10);
++ hwp->writeSeq(hwp, 0x17, 0x2F); /* 96/2-1 = 47 = 0x2F */
++ ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ ViaSeqMask(hwp, 0x18, 0x10, 0xBF); /* 64/4 = 16 = 0x10 */
++ ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4 = 8 = 0x08 */
+ break;
+ case VIA_CX700:
+- hwp->writeSeq(hwp, 0x16, 0x26);
+ hwp->writeSeq(hwp, 0x17, 0x5F);
+- hwp->writeSeq(hwp, 0x18, 0x66);
+- hwp->writeSeq(hwp, 0x22, 0x1F);
++ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 128/4 = 32 = 0x20 */
++ ViaSeqMask(hwp, 0x18, 0x20, 0xBF); /* 128/4 = 32 = 0x20 */
++ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_VX800:
+- hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4 = 38 */
+- hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 */
++ hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 = 0x5F */
++ hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4 = 38 = 0x26 */
+ hwp->writeSeq(hwp, 0x18, 0x26); /* 152/4 = 38 */
+ hwp->writeSeq(hwp, 0x22, 0x10); /* 64/4 = 16 */
+ break;
+ case VIA_VX855:
+- hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 */
+- hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 */
+- hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 */
+- hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 */
++ hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 = 0xC7 */
++ /* TODO Formula for SR16 is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */
++ hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 = 0x50 */
++ hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 = 0x50 */
++ hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 = 0x28 */
++ break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaSetPrimaryFIFO: "
+ "Chipset %d not implemented\n", pVia->Chipset);
+@@ -371,7 +384,38 @@
+ ViaCrtcMask(hwp, 0x94, 0x20, 0x7F);
+ break;
+ case VIA_P4M890:
++ /* depth location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++ ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); /* 96/8-1 = 11 = 0x0B */
++ ViaCrtcMask(hwp, 0x94, 0x00, 0x80);
++ ViaCrtcMask(hwp, 0x95, 0x00, 0x80);
++
++ /* location: {CR68,0,3},{CR95,4,6} */
++ ViaCrtcMask(hwp, 0x68, 0x03, 0x0F); /* 76/4 = 19 = 0x13 */
++ ViaCrtcMask(hwp, 0x95, 0x10, 0x70);
++
++ /* location: {CR92,0,3},{CR95,0,2} */
++ ViaCrtcMask(hwp, 0x92, 0x00, 0x0F); /* 64/4 = 16 = 0x10 */
++ ViaCrtcMask(hwp, 0x95, 0x01, 0x07);
++
++ /* location: {CR94,0,6} */
++ ViaCrtcMask(hwp, 0x94, 0x08, 0x7F); /* 32/4 = 8 = 0x08 */
++ break;
+ case VIA_K8M890:
++ /* Display Queue Depth, location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++ ViaCrtcMask(hwp, 0x68, 0xC0, 0xF0); /* 360/8-1 = 44 = 0x2C; 0x2C << 4 = 0xC0 */
++ ViaCrtcMask(hwp, 0x94, 0x00, 0x80); /* 0x2C << 3 = 0x00 */
++ ViaCrtcMask(hwp, 0x95, 0x80, 0x80); /* 0x2C << 2 = 0x80 */
++
++ /* Display Queue Read Threshold 1, location: {CR68,0,3},{CR95,4,6} */
++ ViaCrtcMask(hwp, 0x68, 0x02, 0x0F); /* 328/4 = 82 = 0x52 */
++ ViaCrtcMask(hwp, 0x95, 0x50, 0x70);
++
++ /* location: {CR92,0,3},{CR95,0,2} */
++ ViaCrtcMask(hwp, 0x92, 0x0A, 0x0F); /* 296/4 = 74 = 0x4A */
++ ViaCrtcMask(hwp, 0x95, 0x04, 0x07); /* 0x4A >> 4 = 0x04 */
++
++ /* Display Expire Number Bits, location: {CR94,0,6} */
++ ViaCrtcMask(hwp, 0x94, 0x1F, 0x7F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_P4M900:
+ ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_crtc.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c
+--- xf86-video-openchrome-0.2.904/src/via_crtc.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c 2010-03-07 01:09:00.000000000 +0100
+@@ -234,8 +234,8 @@
+ /* Primary starting address -> 0x00, adjustframe does the rest */
+ hwp->writeCrtc(hwp, 0x0C, 0x00);
+ hwp->writeCrtc(hwp, 0x0D, 0x00);
+- hwp->writeCrtc(hwp, 0x34, 0x00);
+ ViaCrtcMask(hwp, 0x48, 0x00, 0x03); /* is this even possible on CLE266A ? */
++ hwp->writeCrtc(hwp, 0x34, 0x00);
+
+ /* vertical sync start : 2047 */
+ temp = mode->CrtcVSyncStart;
+@@ -331,15 +331,20 @@
+ CARD32 Base;
+ CARD32 tmp;
+
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaFirstCRTCSetStartingAddress\n"));
++
+ Base = (y * pScrn->displayWidth + x) * (pScrn->bitsPerPixel / 8);
+ Base = Base >> 1;
+
+ hwp->writeCrtc(hwp, 0x0C, (Base & 0xFF00) >> 8);
+ hwp->writeCrtc(hwp, 0x0D, Base & 0xFF);
+- hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
+-
++ /* FIXME The proper starting address for CR48 is 0x1F - Bits[28:24] */
+ if (!(pVia->Chipset == VIA_CLE266 && CLE266_REV_IS_AX(pVia->ChipRev)))
+ ViaCrtcMask(hwp, 0x48, Base >> 24, 0x0F);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
++
++
+ }
+
+ void
+diff -ruN xf86-video-openchrome-0.2.904/src/via_cursor.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c
+--- xf86-video-openchrome-0.2.904/src/via_cursor.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c 2010-03-07 01:09:00.000000000 +0100
+@@ -145,9 +145,12 @@
+ infoPtr->ShowCursor = viaShowCursor;
+ infoPtr->UseHWCursor = viaUseHWCursor;
+
++ /* ARGB Cursor init */
+ infoPtr->UseHWCursorARGB = viaUseHWCursorARGB;
+- if (pVia->CursorARGBSupported)
++ if (pVia->CursorARGBSupported) {
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HWCursor ARGB enabled\n"));
+ infoPtr->LoadCursorARGB = viaLoadCursorARGB;
++ }
+
+ /* Set cursor location in frame buffer. */
+ VIASETREG(VIA_REG_CURSOR_MODE, pVia->cursorOffset);
+@@ -284,7 +287,7 @@
+ }
+
+ /*
+- * ARGB Cursor
++ * display the current cursor
+ */
+
+ void
+@@ -319,13 +322,19 @@
+ */
+
+ /* Duoview */
+- if (pVia->CursorPipe)
++ if (pVia->CursorPipe) {
++ /* Mono Cursor Display Path [bit31]: Secondary */
++ /* FIXME For CLE266 nad KM400 try to enable 32x32 cursor size [bit1] */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, 0xF6000005);
+- else
++ } else {
++ /* Mono Cursor Display Path [bit31]: Primary */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, 0x76000005);
++ }
+ }
+ }
+
++
++/* hide the current cursor */
+ void
+ viaHideCursor(ScrnInfoPtr pScrn)
+ {
+@@ -350,10 +359,16 @@
+
+ default:
+ temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++ /* Hardware cursor disable [bit0] */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFA);
+ }
+ }
+
++/*
++ Set the cursor position to (x,y). X and/or y may be negative
++ indicating that the cursor image is partially offscreen on
++ the left and/or top edges of the screen.
++*/
+ static void
+ viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
+ {
+@@ -409,6 +424,15 @@
+ && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+
++/*
++ If the driver is unable to use a hardware cursor for reasons
++ other than the cursor being larger than the maximum specified
++ in the MaxWidth or MaxHeight field below, it can supply the
++ UseHWCursor function. If UseHWCursor is provided by the driver,
++ it will be called whenever the cursor shape changes or the video
++ mode changes. This is useful for when the hardware cursor cannot
++ be used in interlaced or doublescan modes.
++*/
+ static Bool
+ viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
+ {
+@@ -423,8 +447,11 @@
+ && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+
++/*
++ Load Mono Cursor Image
++*/
+ static void
+-viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *s)
++viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+ CARD32 temp;
+@@ -439,7 +466,7 @@
+ if (pVia->CursorARGBSupported) {
+ #define ARGB_PER_CHUNK (8 * sizeof (chunk) / 2)
+ for (i = 0; i < (pVia->CursorMaxWidth * pVia->CursorMaxHeight / ARGB_PER_CHUNK); i++) {
+- chunk = *s++;
++ chunk = *src++;
+ for (j = 0; j < ARGB_PER_CHUNK; j++, chunk >>= 2)
+ *dst++ = mono_cursor_color[chunk & 3];
+ }
+@@ -447,7 +474,7 @@
+ pVia->CursorFG = mono_cursor_color[3];
+ pVia->CursorBG = mono_cursor_color[2];
+ } else {
+- memcpy(dst, (CARD8*)s, pVia->CursorSize);
++ memcpy(dst, (CARD8*)src, pVia->CursorSize);
+ }
+ switch(pVia->Chipset) {
+ case VIA_CX700:
+@@ -471,11 +498,17 @@
+ }
+ }
+
++/*
++ Set the cursor foreground and background colors. In 8bpp, fg and
++ bg are indicies into the current colormap unless the
++ HARDWARE_CURSOR_TRUECOLOR_AT_8BPP flag is set. In that case
++ and in all other bpps the fg and bg are in 8-8-8 RGB format.
++*/
++
+ static void
+ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+- CARD32 control = pVia->CursorRegControl;
+ CARD32 pixel;
+ CARD32 temp;
+ CARD32 *dst;
+@@ -487,12 +520,10 @@
+ fg |= 0xff000000;
+ bg |= 0xff000000;
+
++ /* Don't recolour the image if we don't have to. */
+ if (fg == pVia->CursorFG && bg == pVia->CursorBG)
+ return;
+
+- temp = VIAGETREG(control);
+- VIASETREG(control, temp & 0xFFFFFFFE);
+-
+ dst = (CARD32*)pVia->cursorMap;
+ for (i = 0; i < pVia->CursorMaxWidth * pVia->CursorMaxHeight; i++, dst++)
+ if ((pixel = *dst))
+@@ -517,7 +548,8 @@
+ }
+ break;
+ default:
+- VIASETREG(control, temp);
++ temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++ VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFE);
+ }
+ }
+
+diff -ruN xf86-video-openchrome-0.2.904/src/via_dri.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c
+--- xf86-video-openchrome-0.2.904/src/via_dri.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c 2010-03-07 01:09:00.000000000 +0100
+@@ -267,6 +267,11 @@
+ pVIADRI = pDRIInfo->devPrivate;
+ pVia->agpSize = 0;
+
++/* For AMD64 */
++#ifdef __x86_64__
++ return FALSE;
++#endif
++
+ if (drmAgpAcquire(pVia->drmFD) < 0) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "[drm] drmAgpAcquire failed %d\n",
+ errno);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c
+--- xf86-video-openchrome-0.2.904/src/via_driver.c 2009-10-09 00:46:15.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c 2010-03-07 01:09:00.000000000 +0100
+@@ -178,8 +178,8 @@
+ {VIA_P4M900, "P4M900/VN896/CN896"},
+ {VIA_CX700, "CX700/VX700"},
+ {VIA_P4M890, "P4M890"},
+- {VIA_VX800, "VX800"},
+- {VIA_VX855, "VX855"},
++ {VIA_VX800, "VX800/VX820"},
++ {VIA_VX855, "VX855/VX875"},
+ {-1, NULL }
+ };
+
+@@ -215,6 +215,7 @@
+ OPTION_EXA_SCRATCH_SIZE,
+ OPTION_SWCURSOR,
+ OPTION_SHADOW_FB,
++ OPTION_ROTATION_TYPE,
+ OPTION_ROTATE,
+ OPTION_VIDEORAM,
+ OPTION_ACTIVEDEVICE,
+@@ -253,6 +254,7 @@
+ {OPTION_EXA_SCRATCH_SIZE, "ExaScratchSize", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_SWCURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE},
+ {OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE},
++ {OPTION_ROTATION_TYPE, "RotationType", OPTV_ANYSTR, {0}, FALSE},
+ {OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE},
+ {OPTION_VIDEORAM, "VideoRAM", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_ACTIVEDEVICE, "ActiveDevice", OPTV_ANYSTR, {0}, FALSE},
+@@ -307,6 +309,7 @@
+ {
+ static Bool setupDone = FALSE;
+
++ /* Only be loaded once */
+ if (!setupDone) {
+ setupDone = TRUE;
+ xf86AddDriver(&VIA, module,
+@@ -339,6 +342,7 @@
+ if (pScrn->driverPrivate)
+ return TRUE;
+
++ /* allocate VIARec */
+ pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1);
+ VIAPtr pVia = ((VIARec *) (pScrn->driverPrivate));
+
+@@ -455,7 +459,6 @@
+ {
+ ScrnInfoPtr scrn = NULL;
+ EntityInfoPtr entity;
+- DevUnion *private;
+
+ scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets,
+ NULL, NULL, NULL, NULL, NULL);
+@@ -652,6 +655,12 @@
+ vbeInfoPtr pVbe;
+
+ if (xf86LoadSubModule(pScrn, "vbe")) {
++ /* FIXME This line should be replaced to:
++
++ pVbe = VBEExtendedInit(NULL, index, 0);
++
++ for XF86 version > 4.2.99
++ */
+ pVbe = VBEInit(NULL, index);
+ ConfiguredMonitor = vbeDoEDID(pVbe, NULL);
+ vbeFree(pVbe);
+@@ -664,7 +673,7 @@
+ VIAPtr pVia = VIAPTR(pScrn);
+ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions\n"));
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions - Setting up default chipset options.\n"));
+
+ pVia->shadowFB = FALSE;
+ pVia->NoAccel = FALSE;
+@@ -688,6 +697,9 @@
+ #ifdef HAVE_DEBUG
+ pVia->PrintVGARegs = FALSE;
+ #endif
++
++ /* Disable vertical interpolation because the size of */
++ /* line buffer (limited to 800) is too small to do interpolation. */
+ pVia->swov.maxWInterp = 800;
+ pVia->swov.maxHInterp = 600;
+ pVia->useLegacyVBE = TRUE;
+@@ -713,11 +725,14 @@
+ pVia->UseLegacyModeSwitch = TRUE;
+ break;
+ case VIA_PM800:
++ /* Use new mode switch to resolve many resolution and display bugs (switch to console) */
++ /* FIXME The video playing (XV) is not working correctly after turn on new mode switch */
+ pVia->VideoEngine = VIDEO_ENGINE_CME;
+- pVia->UseLegacyModeSwitch = TRUE;
+ break;
+ case VIA_VM800:
+- pVia->UseLegacyModeSwitch = TRUE;
++ /* New mode switch resolve bug with gamma set #282 */
++ /* and with Xv after hibernate #240 */
++ /* FIXME Add panel support for this chipset */
+ break;
+ case VIA_K8M890:
+ pVia->VideoEngine = VIDEO_ENGINE_CME;
+@@ -1050,19 +1065,13 @@
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "Probed amount of VideoRAM = %d kB\n", pScrn->videoRam);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Setting up default chipset options.\n");
+ if (!VIASetupDefaultOptions(pScrn)) {
+ VIAFreeRec(pScrn);
+ return FALSE;
+ }
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reading config file...\n");
+ xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, VIAOptions);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Starting to parse config file options...\n");
+-
+ if (xf86GetOptValInteger(VIAOptions, OPTION_VIDEORAM, &pScrn->videoRam))
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Setting amount of VideoRAM to %d kB\n", pScrn->videoRam);
+@@ -1100,6 +1109,31 @@
+ }
+
+ /* When rotating, switch shadow framebuffer on and acceleration off. */
++ if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATION_TYPE))) {
++ if (!xf86NameCmp(s, "SWRandR")) {
++ pVia->shadowFB = TRUE;
++ pVia->NoAccel = TRUE;
++ pVia->RandRRotation = TRUE;
++ pVia->rotate = RR_Rotate_0;
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen "
++ "RandR enabled, acceleration disabled\n");
++ } else if (!xf86NameCmp(s, "HWRandR")) {
++ pVia->shadowFB = TRUE;
++ pVia->NoAccel = TRUE;
++ pVia->RandRRotation = TRUE;
++ pVia->rotate = RR_Rotate_0;
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Hardware accelerated "
++ "rotating screen is not implemented. Using SW RandR.\n");
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
++ "value for Option \"RotationType\".\n", s);
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++ "Valid options are \"SWRandR\" and \"HWRandR\".\n");
++ }
++ }
++
++
++ /* When rotating, switch shadow framebuffer on and acceleration off. */
+ if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) {
+ if (!xf86NameCmp(s, "CW")) {
+ pVia->shadowFB = TRUE;
+@@ -1498,6 +1532,7 @@
+ }
+ }
+
++ /* Initialize the colormap */
+ Gamma zeros = { 0.0, 0.0, 0.0 };
+ if (!xf86SetGamma(pScrn, zeros)) {
+ VIAFreeRec(pScrn);
+@@ -1561,9 +1596,8 @@
+
+ if (pBIOSInfo->Panel->IsActive &&
+ ((pVia->Chipset == VIA_K8M800) ||
+- (pVia->Chipset == VIA_PM800) ||
+ (pVia->Chipset == VIA_VM800))) {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800, PM800 and "
++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800 and "
+ "VM800 is currently not supported.\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Using VBE to set modes to work around this.\n");
+@@ -1621,7 +1655,7 @@
+ *
+ * CLE266A: primary AdjustFrame can use only 24 bits, so we are limited
+ * to 12x11 bits; 4080x2048 (~2:1), 3344x2508 (4:3), or 2896x2896 (1:1).
+- * Test CLE266Cx, KM400, KM400A, K8M800, PM800, CN400 please.
++ * TODO Test CLE266Cx, KM400, KM400A, K8M800, CN400 please.
+ *
+ * We should be able to limit the memory available for a mode to 32 MB,
+ * but xf86ValidateModes (or miScanLineWidth) fails to catch this
+@@ -1629,13 +1663,14 @@
+ */
+
+ /* Select valid modes from those available. */
+- i = xf86ValidateModes(pScrn, pScrn->monitor->Modes, /* availModes */
+- pScrn->display->modes, /* modeNames */
+- clockRanges, /* list of clock ranges */
++ i = xf86ValidateModes(pScrn,
++ pScrn->monitor->Modes, /* List of modes available for the monitor */
++ pScrn->display->modes, /* List of mode names that the screen is requesting */
++ clockRanges, /* list of clock ranges */
+ NULL, /* list of line pitches */
+ 256, /* minimum line pitch */
+ 3344, /* maximum line pitch */
+- 32 * 8, /* pitch inc (bits) */
++ 16 * 8, /* pitch increment (in bits), we just want 16 bytes alignment */
+ 128, /* min height */
+ 2508, /* max height */
+ pScrn->display->virtualX, /* virtual width */
+@@ -1650,6 +1685,7 @@
+ return FALSE;
+ }
+
++ /* This function deletes modes in the modes field of the ScrnInfoRec that have been marked as invalid. */
+ xf86PruneDriverModes(pScrn);
+
+ if (i == 0 || pScrn->modes == NULL) {
+@@ -1662,9 +1698,17 @@
+ /* Set up screen parameters. */
+ pVia->Bpp = pScrn->bitsPerPixel >> 3;
+ pVia->Bpl = pScrn->displayWidth * pVia->Bpp;
++
++ /* This function fills in the Crtc fields for all the modes in the modes field of the ScrnInfoRec. */
+ xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
++
++ /* Set the current mode to the first in the list */
+ pScrn->currentMode = pScrn->modes;
++
++ /* Print the list of modes being used */
+ xf86PrintModes(pScrn);
++
++ /* Set display resolution */
+ xf86SetDpi(pScrn, 0, 0);
+
+ #ifdef USE_FB
+@@ -1935,7 +1979,9 @@
+ Regs->SR17 = hwp->readSeq(hwp, 0x17);
+ Regs->SR18 = hwp->readSeq(hwp, 0x18);
+ Regs->SR19 = hwp->readSeq(hwp, 0x19);
++ /* PCI Bus Control */
+ Regs->SR1A = hwp->readSeq(hwp, 0x1A);
++
+ Regs->SR1B = hwp->readSeq(hwp, 0x1B);
+ Regs->SR1C = hwp->readSeq(hwp, 0x1C);
+ Regs->SR1D = hwp->readSeq(hwp, 0x1D);
+@@ -1977,40 +2023,56 @@
+ Regs->SR4C = hwp->readSeq(hwp, 0x4C);
+ break;
+ }
+- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n"));
+
+ Regs->CR13 = hwp->readCrtc(hwp, 0x13);
+
+ Regs->CR32 = hwp->readCrtc(hwp, 0x32);
+ Regs->CR33 = hwp->readCrtc(hwp, 0x33);
+- Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
+ Regs->CR35 = hwp->readCrtc(hwp, 0x35);
+ Regs->CR36 = hwp->readCrtc(hwp, 0x36);
+
++
++
++ /* Starting Address */
++ /* Start Address High */
++ Regs->CR0C = hwp->readCrtc(hwp, 0x0C);
++ /* Start Address Low */
++ Regs->CR0D = hwp->readCrtc(hwp, 0x0D);
++ /* Starting Address Overflow Bits[28:24] */
+ Regs->CR48 = hwp->readCrtc(hwp, 0x48);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ /* Starting Address Overflow Bits[23:16] */
++ Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
++
+ Regs->CR49 = hwp->readCrtc(hwp, 0x49);
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TVSave...\n"));
+ if (pBIOSInfo->TVI2CDev)
+ ViaTVSave(pScrn);
+
+- /* Save LCD control registers. */
++ /* Save LCD control registers (from CR 0x50 to 0x93). */
+ for (i = 0; i < 68; i++)
+ Regs->CRTCRegs[i] = hwp->readCrtc(hwp, i + 0x50);
+
+ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
+-
+- Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
+- Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
+- Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+-
++ /* LVDS Channel 2 Function Select 0 / DVI Function Select */
+ Regs->CR97 = hwp->readCrtc(hwp, 0x97);
++ /* LVDS Channel 1 Function Select 0 */
+ Regs->CR99 = hwp->readCrtc(hwp, 0x99);
++ /* Digital Video Port 1 Function Select 0 */
+ Regs->CR9B = hwp->readCrtc(hwp, 0x9B);
++ /* Power Now Control 4 */
+ Regs->CR9F = hwp->readCrtc(hwp, 0x9F);
+
++ /* Horizontal Scaling Initial Value */
++ Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
++ /* Vertical Scaling Initial Value */
++ Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
++ /* Scaling Enable Bit */
++ Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+ }
+
+ /* Save TMDS status */
+@@ -2098,11 +2160,19 @@
+ hwp->writeSeq(hwp, 0x45, Regs->SR45);
+ hwp->writeSeq(hwp, 0x46, Regs->SR46);
+
++ /* Reset VCK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x02); /* Set SR40[1] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFD); /* Set SR40[1] to 0 */
++
+ /* ECK Clock Synthesizer: */
+ hwp->writeSeq(hwp, 0x47, Regs->SR47);
+ hwp->writeSeq(hwp, 0x48, Regs->SR48);
+ hwp->writeSeq(hwp, 0x49, Regs->SR49);
+
++ /* Reset ECK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x01); /* Set SR40[0] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFE); /* Set SR40[0] to 0 */
++
+ switch (pVia->Chipset) {
+ case VIA_CLE266:
+ case VIA_KM400:
+@@ -2112,6 +2182,10 @@
+ hwp->writeSeq(hwp, 0x4A, Regs->SR4A);
+ hwp->writeSeq(hwp, 0x4B, Regs->SR4B);
+ hwp->writeSeq(hwp, 0x4C, Regs->SR4C);
++
++ /* Reset LCK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x04); /* Set SR40[2] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFB); /* Set SR40[2] to 0 */
+ break;
+ }
+
+@@ -2127,14 +2201,23 @@
+ hwp->writeCrtc(hwp, 0x32, Regs->CR32);
+ /* HSYNCH Adjuster */
+ hwp->writeCrtc(hwp, 0x33, Regs->CR33);
+- /* Starting Address Overflow */
+- hwp->writeCrtc(hwp, 0x34, Regs->CR34);
+ /* Extended Overflow */
+ hwp->writeCrtc(hwp, 0x35, Regs->CR35);
+ /*Power Management 3 (Monitor Control) */
+ hwp->writeCrtc(hwp, 0x36, Regs->CR36);
+
++ /* Starting Address */
++ /* Start Address High */
++ hwp->writeCrtc(hwp, 0x0C, Regs->CR0C);
++ /* Start Address Low */
++ hwp->writeCrtc(hwp, 0x0D, Regs->CR0D);
++ /* Starting Address Overflow Bits[28:24] */
+ hwp->writeCrtc(hwp, 0x48, Regs->CR48);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ /* Starting Address Overflow Bits[23:16] */
++ hwp->writeCrtc(hwp, 0x34, Regs->CR34);
++
++
+ hwp->writeCrtc(hwp, 0x49, Regs->CR49);
+
+ /* Restore LCD control registers. */
+@@ -2453,7 +2536,6 @@
+ VIALoadRgbLut(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
+ VisualPtr pVisual)
+ {
+- VIAPtr pVia = VIAPTR(pScrn);
+ vgaHWPtr hwp = VGAHWPTR(pScrn);
+
+ int i, j, index;
+@@ -2880,7 +2962,6 @@
+ VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+- VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n"));
+
+@@ -3033,9 +3114,7 @@
+ VIAAdjustFrame(int scrnIndex, int x, int y, int flags)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+- vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+- CARD32 Base;
+
+ DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y));
+
+@@ -3173,7 +3252,6 @@
+ static void
+ VIADPMS(ScrnInfoPtr pScrn, int mode, int flags)
+ {
+- vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h
+--- xf86-video-openchrome-0.2.904/src/via_driver.h 2009-10-09 01:09:22.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h 2010-03-07 01:09:00.000000000 +0100
+@@ -130,6 +130,7 @@
+ CARD8 SR4A, SR4B, SR4C;
+
+ /* extended CRTC registers */
++ CARD8 CR0C, CR0D;
+ CARD8 CR13, CR30, CR31, CR32, CR33, CR34, CR35, CR36;
+ CARD8 CR37, CR38, CR39, CR3A, CR40, CR41, CR42, CR43;
+ CARD8 CR44, CR45, CR46, CR47, CR48, CR49, CR4A;
+@@ -418,10 +419,10 @@
+ Bool PrintVGARegs;
+ Bool PrintTVRegs;
+ Bool I2CScan;
++#endif /* HAVE_DEBUG */
+
+ Bool UseLegacyModeSwitch ;
+ video_via_regs* VideoRegs ;
+-#endif /* HAVE_DEBUG */
+ } VIARec, *VIAPtr;
+
+ #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate))
+diff -ruN xf86-video-openchrome-0.2.904/src/via_id.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c
+--- xf86-video-openchrome-0.2.904/src/via_id.c 2009-10-07 23:30:39.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c 2010-03-07 01:09:00.000000000 +0100
+@@ -152,6 +152,7 @@
+ {"MSI PM8PM", VIA_VM800, 0x1462, 0x7222, VIA_DEVICE_CRT},
+ {"Twinhead M6", VIA_VM800, 0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"RoverBook Partner W500", VIA_VM800, 0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++ {"FIC PTM800Pro LF", VIA_VM800, 0x1509, 0x601A, VIA_DEVICE_CRT},
+ {"Clevo/RoverBook Voyager V511L", VIA_VM800, 0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M5xxS", VIA_VM800, 0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Biostar P4M80-M4 / P4VMA-M", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT},
+@@ -170,6 +171,7 @@
+ {"Asustek M2V-MX SE", VIA_K8M890, 0x1043, 0x8297, VIA_DEVICE_CRT},
+ {"Foxconn K8M890M2MA-RS2H", VIA_K8M890, 0x105B, 0x0C84, VIA_DEVICE_CRT},
+ {"Shuttle FX22V1", VIA_K8M890, 0x1297, 0x3080, VIA_DEVICE_CRT},
++ {"MSI K8M890M2-V", VIA_K8M890, 0x1462, 0x7139, VIA_DEVICE_CRT},
+ {"MSI K9VGM-V", VIA_K8M890, 0x1462, 0x7253, VIA_DEVICE_CRT},
+ {"Averatec 226x", VIA_K8M890, 0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Fujitsu/Siemens Amilo La 1703", VIA_K8M890, 0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -189,6 +191,7 @@
+ {"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT},
+ {"MSI P4M900M3-L", VIA_P4M900, 0x1462, 0x7387, VIA_DEVICE_CRT},
+ {"Twinhead H12V", VIA_P4M900, 0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++ {"Twinhead K15V", VIA_P4M900, 0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -224,6 +227,7 @@
+
+ /*** VX800 ***/
+ {"VIA Epia M700", VIA_VX800, 0x1106, 0x1122, VIA_DEVICE_CRT},
++ {"Guillemot-Hercules ECafe EC900B", VIA_VX800, 0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"VIA OpenBook", VIA_VX800, 0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */
+ {"Samsung NC20", VIA_VX800, 0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Quanta DreamBook Light IL1", VIA_VX800, 0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -231,6 +235,7 @@
+
+ /*** VX855 ***/
+ {"VIA VT8562C", VIA_VX855, 0x1106, 0x5122, VIA_DEVICE_CRT},
++ {"OLPC XO 1.5", VIA_VX855, 0x152D, 0x0833, VIA_DEVICE_LCD},
+
+ /* keep this */
+ {NULL, VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE}
+diff -ruN xf86-video-openchrome-0.2.904/src/via_mode.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h
+--- xf86-video-openchrome-0.2.904/src/via_mode.h 2009-10-07 23:31:47.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h 2010-03-07 01:09:00.000000000 +0100
+@@ -54,50 +54,50 @@
+ CARD16 UniChrome;
+ union pllparams UniChromePro;
+ } ViaDotClocks[] = {
+- { 25200, 0x513C, /* 0xa79004 */ { 1, 4, 6, 169 } },
+- { 25312, 0xC763, /* 0xc49005 */ { 1, 4, 7, 198 } },
+- { 26591, 0x471A, /* 0xce9005 */ { 1, 4, 7, 208 } },
+- { 31500, 0xC558, /* 0xae9003 */ { 1, 4, 5, 176 } },
+- { 31704, 0x471F, /* 0xaf9002 */ { 1, 4, 4, 177 } },
+- { 32663, 0xC449, /* 0x479000 */ { 1, 4, 2, 73 } },
+- { 33750, 0x4721, /* 0x959002 */ { 1, 4, 4, 151 } },
+- { 35500, 0x5877, /* 0x759001 */ { 1, 4, 3, 119 } },
+- { 36000, 0x5879, /* 0x9f9002 */ { 1, 4, 4, 161 } },
+- { 39822, 0xC459, /* 0x578c02 */ { 1, 3, 4, 89 } },
+- { 40000, 0x515F, /* 0x848c04 */ { 1, 3, 6, 134 } },
+- { 41164, 0x4417, /* 0x2c8c00 */ { 1, 3, 2, 46 } },
+- { 46981, 0x5069, /* 0x678c02 */ { 1, 3, 4, 105 } },
+- { 49500, 0xC353, /* 0xa48c04 */ { 3, 3, 5, 138 } },
+- { 50000, 0xC354, /* 0x368c00 */ { 1, 3, 2, 56 } },
+- { 56300, 0x4F76, /* 0x3d8c00 */ { 1, 3, 2, 63 } },
+- { 57275, 0, /* 0x3e8c00 */ { 1, 3, 5, 157 } }, /* For XO 1.5 no need for a unichrome clock */
+- { 57284, 0x4E70, /* 0x3e8c00 */ { 1, 3, 2, 64 } },
+- { 64995, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+- { 65000, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, /* Slightly unstable on PM800 */
+- { 65028, 0x866D, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+- { 74480, 0x156E, /* 0x288800 */ { 1, 2, 2, 42 } },
+- { 75000, 0x156E, /* 0x288800 */ { 1, 2, 2, 42 } },
+- { 78800, 0x442C, /* 0x2a8800 */ { 1, 2, 2, 44 } },
+- { 81135, 0x0622, /* 0x428801 */ { 1, 2, 3, 68 } },
+- { 81613, 0x4539, /* 0x708803 */ { 1, 2, 5, 114 } },
+- { 94500, 0x4542, /* 0x4d8801 */ { 1, 2, 3, 79 } },
+- { 108000, 0x0B53, /* 0x778802 */ { 1, 2, 4, 121 } },
+- { 108280, 0x4879, /* 0x778802 */ { 1, 2, 4, 121 } },
+- { 122000, 0x0D6F, /* 0x428800 */ { 1, 2, 2, 68 } },
+- { 122726, 0x073C, /* 0x878802 */ { 1, 2, 4, 137 } },
+- { 135000, 0x0742, /* 0x6f8801 */ { 1, 2, 3, 113 } },
+- { 148500, 0x0853, /* 0x518800 */ { 1, 2, 2, 83 } },
+- { 155800, 0x0857, /* 0x558402 */ { 1, 1, 4, 87 } },
+- { 157500, 0x422C, /* 0x2a8400 */ { 1, 1, 2, 44 } },
+- { 161793, 0x4571, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+- { 162000, 0x0A71, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+- { 175500, 0x4231, /* 0x2f8400 */ { 1, 1, 2, 49 } },
+- { 189000, 0x0542, /* 0x4d8401 */ { 1, 1, 3, 79 } },
+- { 202500, 0x0763, /* 0x6F8402 */ { 1, 1, 4, 113 } },
+- { 204800, 0x0764, /* 0x548401 */ { 1, 1, 3, 86 } },
+- { 218300, 0x043D, /* 0x3b8400 */ { 1, 1, 2, 61 } },
+- { 229500, 0x0660, /* 0x3e8400 */ { 1, 1, 2, 64 } }, /* Not tested on Pro } */
+- { 0, 0, { 0, 0, 0, 0 } }
++ { 25200, 0x513C, /* 0xa79004 */ { { 1, 4, 6, 169 } } },
++ { 25312, 0xC763, /* 0xc49005 */ { { 1, 4, 7, 198 } } },
++ { 26591, 0x471A, /* 0xce9005 */ { { 1, 4, 7, 208 } } },
++ { 31500, 0xC558, /* 0xae9003 */ { { 1, 4, 5, 176 } } },
++ { 31704, 0x471F, /* 0xaf9002 */ { { 1, 4, 4, 177 } } },
++ { 32663, 0xC449, /* 0x479000 */ { { 1, 4, 2, 73 } } },
++ { 33750, 0x4721, /* 0x959002 */ { { 1, 4, 4, 151 } } },
++ { 35500, 0x5877, /* 0x759001 */ { { 1, 4, 3, 119 } } },
++ { 36000, 0x5879, /* 0x9f9002 */ { { 1, 4, 4, 161 } } },
++ { 39822, 0xC459, /* 0x578c02 */ { { 1, 3, 4, 89 } } },
++ { 40000, 0x515F, /* 0x848c04 */ { { 1, 3, 6, 134 } } },
++ { 41164, 0x4417, /* 0x2c8c00 */ { { 1, 3, 2, 46 } } },
++ { 46981, 0x5069, /* 0x678c02 */ { { 1, 3, 4, 105 } } },
++ { 49500, 0xC353, /* 0xa48c04 */ { { 3, 3, 5, 138 } } },
++ { 50000, 0xC354, /* 0x368c00 */ { { 1, 3, 2, 56 } } },
++ { 56300, 0x4F76, /* 0x3d8c00 */ { { 1, 3, 2, 63 } } },
++ { 57275, 0, /* 0x3e8c00 */ { { 1, 3, 5, 157 } } }, /* For XO 1.5 no need for a unichrome clock */
++ { 57284, 0x4E70, /* 0x3e8c00 */ { { 1, 3, 2, 64 } } },
++ { 64995, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++ { 65000, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, /* Slightly unstable on PM800 */
++ { 65028, 0x866D, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++ { 74480, 0x156E, /* 0x288800 */ { { 1, 2, 2, 42 } } },
++ { 75000, 0x156E, /* 0x288800 */ { { 1, 2, 2, 42 } } },
++ { 78800, 0x442C, /* 0x2a8800 */ { { 1, 2, 2, 44 } } },
++ { 81135, 0x0622, /* 0x428801 */ { { 1, 2, 3, 68 } } },
++ { 81613, 0x4539, /* 0x708803 */ { { 1, 2, 5, 114 } } },
++ { 94500, 0x4542, /* 0x4d8801 */ { { 1, 2, 3, 79 } } },
++ { 108000, 0x0B53, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++ { 108280, 0x4879, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++ { 122000, 0x0D6F, /* 0x428800 */ { { 1, 2, 2, 68 } } },
++ { 122726, 0x073C, /* 0x878802 */ { { 1, 2, 4, 137 } } },
++ { 135000, 0x0742, /* 0x6f8801 */ { { 1, 2, 3, 113 } } },
++ { 148500, 0x0853, /* 0x518800 */ { { 1, 2, 2, 83 } } },
++ { 155800, 0x0857, /* 0x558402 */ { { 1, 1, 4, 87 } } },
++ { 157500, 0x422C, /* 0x2a8400 */ { { 1, 1, 2, 44 } } },
++ { 161793, 0x4571, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++ { 162000, 0x0A71, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++ { 175500, 0x4231, /* 0x2f8400 */ { { 1, 1, 2, 49 } } },
++ { 189000, 0x0542, /* 0x4d8401 */ { { 1, 1, 3, 79 } } },
++ { 202500, 0x0763, /* 0x6F8402 */ { { 1, 1, 4, 113 } } },
++ { 204800, 0x0764, /* 0x548401 */ { { 1, 1, 3, 86 } } },
++ { 218300, 0x043D, /* 0x3b8400 */ { { 1, 1, 2, 61 } } },
++ { 229500, 0x0660, /* 0x3e8400 */ { { 1, 1, 2, 64 } } }, /* Not tested on Pro } */
++ { 0, 0, { { 0, 0, 0, 0 } } }
+ };
+
+ /*
+diff -ruN xf86-video-openchrome-0.2.904/src/via_panel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c
+--- xf86-video-openchrome-0.2.904/src/via_panel.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c 2010-03-07 01:09:00.000000000 +0100
+@@ -171,12 +171,18 @@
+ resWidth, resHeight, panelWidth, panelHeight));
+
+ if (resWidth < panelWidth) {
+- /* FIXME: It is different for chipset < K8M800 */
+- horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++ /* Load Horizontal Scaling Factor */
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++
++ /* Horizontal scaling enabled */
++ cra2 = 0xC0;
++ cr9f = horScalingFactor & 0x0003; /* HSCaleFactor[1:0] at CR9F[1:0] */
++ } else {
++ /* TODO: Need testing */
++ horScalingFactor = ((resWidth - 1) * 1024) / (panelWidth - 1);
++ }
+
+- /* Horizontal scaling enabled */
+- cra2 = 0xC0;
+- cr9f = horScalingFactor & 0x0003; /* HSCaleFactor[1:0] at CR9F[1:0] */
+ cr77 = (horScalingFactor & 0x03FC) >> 2; /* HSCaleFactor[9:2] at CR77[7:0] */
+ cr79 = (horScalingFactor & 0x0C00) >> 10; /* HSCaleFactor[11:10] at CR79[5:4] */
+ cr79 <<= 4;
+@@ -184,11 +190,18 @@
+ }
+
+ if (resHeight < panelHeight) {
+- verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++ /* Load Vertical Scaling Factor */
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++
++ /* Vertical scaling enabled */
++ cra2 |= 0x08;
++ cr79 |= ((verScalingFactor & 0x0001) << 3); /* VSCaleFactor[0] at CR79[3] */
++ } else {
++ /* TODO: Need testing */
++ verScalingFactor = ((resHeight - 1) * 1024) / (panelHeight - 1);
++ }
+
+- /* Vertical scaling enabled */
+- cra2 |= 0x08;
+- cr79 |= ((verScalingFactor & 0x0001) << 3); /* VSCaleFactor[0] at CR79[3] */
+ cr78 |= (verScalingFactor & 0x01FE) >> 1; /* VSCaleFactor[8:1] at CR78[7:0] */
+ cr79 |= ((verScalingFactor & 0x0600) >> 9) << 6; /* VSCaleFactor[10:9] at CR79[7:6] */
+ scaling = TRUE;
+@@ -203,12 +216,18 @@
+ ViaCrtcMask(hwp, 0x77, cr77, 0xFF);
+ ViaCrtcMask(hwp, 0x78, cr78, 0xFF);
+ ViaCrtcMask(hwp, 0x79, cr79, 0xF8);
+- ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++ }
+ ViaCrtcMask(hwp, 0x79, 0x03, 0x03);
+- } else
++ } else {
++ /* Disable panel scale */
+ ViaCrtcMask(hwp, 0x79, 0x00, 0x01);
+-
+- ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++ }
++
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++ }
+
+ /* Horizontal scaling selection: interpolation */
+ // ViaCrtcMask(hwp, 0x79, 0x02, 0x02);
+@@ -233,14 +252,14 @@
+
+ if (panelMode->Width && panelMode->Height) {
+
+- /* TODO: fix refresh rate and check malloc */
++ /* TODO: fix refresh rate */
+ DisplayModePtr p = malloc( sizeof(DisplayModeRec) ) ;
+- memset(p, 0, sizeof(DisplayModeRec));
++ if (p) {
++ memset(p, 0, sizeof(DisplayModeRec));
+
+- float refresh = 60.0f ;
++ float refresh = 60.0f ;
+
+- /* The following code is borrowed from xf86SetModeCrtc. */
+- if (p) {
++ /* The following code is borrowed from xf86SetModeCrtc. */
+ viaTimingCvt(p, panelMode->Width, panelMode->Height, refresh, FALSE, TRUE);
+ p->CrtcHDisplay = p->HDisplay;
+ p->CrtcHSyncStart = p->HSyncStart;
+@@ -256,9 +275,13 @@
+ p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal);
+ p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay);
+ p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal);
+-
++
++ pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ "Out of memory. Size: %d bytes\n", sizeof(DisplayModeRec));
+ }
+- pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Invalid panel dimension (%dx%d)\n", panelMode->Width,
+@@ -339,22 +362,22 @@
+ ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86MonPtr pMon,
+ int *width, int *height)
+ {
+- int i, max = 0, vsize;
++ int i, max_hsize = 0, vsize = 0;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAGetPanelSizeFromEDID\n"));
+
+ /* !!! Why are we not checking VESA modes? */
+
+ /* checking standard timings */
+- for (i = 0; i < 8; i++)
++ for (i = 0; i < STD_TIMINGS; i++)
+ if ((pMon->timings2[i].hsize > 256)
+- && (pMon->timings2[i].hsize > max)) {
+- max = pMon->timings2[i].hsize;
++ && (pMon->timings2[i].hsize > max_hsize)) {
++ max_hsize = pMon->timings2[i].hsize;
+ vsize = pMon->timings2[i].vsize;
+ }
+
+- if (max != 0) {
+- *width = max;
++ if (max_hsize != 0) {
++ *width = max_hsize;
+ *height = vsize;
+ return TRUE;
+ }
+@@ -369,14 +392,14 @@
+ struct detailed_timings timing = pMon->det_mon[i].section.d_timings;
+
+ /* ignore v_active for now */
+- if ((timing.clock > 15000000) && (timing.h_active > max)) {
+- max = timing.h_active;
++ if ((timing.clock > 15000000) && (timing.h_active > max_hsize)) {
++ max_hsize = timing.h_active;
+ vsize = timing.v_active;
+ }
+ }
+
+- if (max != 0) {
+- *width = max;
++ if (max_hsize != 0) {
++ *width = max_hsize;
+ *height = vsize;
+ return TRUE;
+ }
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c
+--- xf86-video-openchrome-0.2.904/src/via_video.c 2009-10-08 01:39:13.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c 2010-03-07 01:09:00.000000000 +0100
+@@ -466,8 +466,8 @@
+
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ viaVidEng->color_key = 0x821;
+ viaVidEng->snd_color_key = 0x821;
+
+@@ -479,16 +479,16 @@
+ VIAPtr pVia = VIAPTR(pScrn);
+ vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
+
++ DBG_DD(ErrorF(" via_video.c : viaSaveVideo : \n"));
+ /* Save video registers */
+- /* TODO: Identify which registers should be saved and restored */
+ memcpy(pVia->VideoRegs, (void*)viaVidEng, sizeof(video_via_regs));
+
+ pVia->dwV1 = ((vmmtr) viaVidEng)->video1_ctl;
+ pVia->dwV3 = ((vmmtr) viaVidEng)->video3_ctl;
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+
+ void
+@@ -496,16 +496,65 @@
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+ vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
++ video_via_regs *localVidEng = pVia->VideoRegs;
++
+
++ DBG_DD(ErrorF(" via_video.c : viaRestoreVideo : \n"));
+ /* Restore video registers */
+- /* TODO: Identify which registers should be saved and restored */
+- memcpy((void*)viaVidEng, pVia->VideoRegs, sizeof(video_via_regs));
+-
++ /* flush restored video engines' setting to VidMapBase */
++
++ viaVidEng->alphawin_hvstart = localVidEng->alphawin_hvstart;
++ viaVidEng->alphawin_size = localVidEng->alphawin_size;
++ viaVidEng->alphawin_ctl = localVidEng->alphawin_ctl;
++ viaVidEng->alphafb_stride = localVidEng->alphafb_stride;
++ viaVidEng->color_key = localVidEng->color_key;
++ viaVidEng->alphafb_addr = localVidEng->alphafb_addr;
++ viaVidEng->chroma_low = localVidEng->chroma_low;
++ viaVidEng->chroma_up = localVidEng->chroma_up;
++
++ if (pVia->ChipId != PCI_CHIP_VT3314)
++ {
++ /*VT3314 only has V3*/
++ viaVidEng->video1_ctl = localVidEng->video1_ctl;
++ viaVidEng->video1_fetch = localVidEng->video1_fetch;
++ viaVidEng->video1y_addr1 = localVidEng->video1y_addr1;
++ viaVidEng->video1_stride = localVidEng->video1_stride;
++ viaVidEng->video1_hvstart = localVidEng->video1_hvstart;
++ viaVidEng->video1_size = localVidEng->video1_size;
++ viaVidEng->video1y_addr2 = localVidEng->video1y_addr2;
++ viaVidEng->video1_zoom = localVidEng->video1_zoom;
++ viaVidEng->video1_mictl = localVidEng->video1_mictl;
++ viaVidEng->video1y_addr0 = localVidEng->video1y_addr0;
++ viaVidEng->video1_fifo = localVidEng->video1_fifo;
++ viaVidEng->video1y_addr3 = localVidEng->video1y_addr3;
++ viaVidEng->v1_source_w_h = localVidEng->v1_source_w_h ;
++ viaVidEng->video1_CSC1 = localVidEng->video1_CSC1;
++ viaVidEng->video1_CSC2 = localVidEng->video1_CSC2;
++ }
++ viaVidEng->snd_color_key = localVidEng->snd_color_key;
++ viaVidEng->v3alpha_prefifo = localVidEng->v3alpha_prefifo;
++ viaVidEng->v3alpha_fifo = localVidEng->v3alpha_fifo;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->v3_source_width = localVidEng->v3_source_width;
++ viaVidEng->video3_ctl = localVidEng->video3_ctl;
++ viaVidEng->video3_addr0 = localVidEng->video3_addr0;
++ viaVidEng->video3_addr1 = localVidEng->video3_addr1;
++ viaVidEng->video3_stride = localVidEng->video3_stride;
++ viaVidEng->video3_hvstart = localVidEng->video3_hvstart;
++ viaVidEng->video3_size = localVidEng->video3_size;
++ viaVidEng->v3alpha_fetch = localVidEng->v3alpha_fetch;
++ viaVidEng->video3_zoom = localVidEng->video3_zoom;
++ viaVidEng->video3_mictl = localVidEng->video3_mictl;
++ viaVidEng->video3_CSC1 = localVidEng->video3_CSC1;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->compose = localVidEng->compose;
++
+ viaVidEng->video1_ctl = pVia->dwV1;
+ viaVidEng->video3_ctl = pVia->dwV3;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
+-
++ if (pVia->ChipId != PCI_CHIP_VT3314)
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+
+ void
+@@ -524,8 +573,8 @@
+
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+
+ /*
+ * Free all adaptor info allocated in viaInitVideo.
+@@ -561,7 +610,7 @@
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors;
+ int num_adaptors, num_new;
+
+- DBG_DD(ErrorF(" via_video.c : viaInitVideo : \n"));
++ DBG_DD(ErrorF(" via_video.c : viaInitVideo, Screen[%d]\n", pScrn->scrnIndex));
+
+ allAdaptors = NULL;
+ newAdaptors = NULL;
+@@ -832,7 +881,7 @@
+ DevUnion *pdevUnion;
+ int i, j, usedPorts, numPorts;
+
+- DBG_DD(ErrorF(" via_video.c : viaSetupImageVideo: \n"));
++ DBG_DD(ErrorF(" via_video.c : viaSetupAdaptors (viaSetupImageVideo): \n"));
+
+ xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");
+ xvContrast = MAKE_ATOM("XV_CONTRAST");
+@@ -1042,6 +1091,8 @@
+ }
+
+ } else {
++ DBG_DD(ErrorF(" via_video.c : viaGetPortAttribute : is not supported the attribute\n"));
++
+ /*return BadMatch */;
+ }
+ return Success;
+@@ -1498,6 +1549,7 @@
+
+ DBG_DD(ErrorF(" via_video.c : viaQueryImageAttributes : FourCC=0x%x, ",
+ id));
++ DBG_DD(ErrorF(" via_video.c : Screen[%d], w=%d, h=%d\n", pScrn->scrnIndex, *w, *h));
+
+ if ((!w) || (!h))
+ return 0;
+@@ -1513,6 +1565,7 @@
+
+ switch (id) {
+ case FOURCC_YV12: /*Planar format : YV12 -4:2:0 */
++ case FOURCC_I420:
+ *h = (*h + 1) & ~1;
+ size = *w;
+ if (pVia->useDmaBlit)
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h
+--- xf86-video-openchrome-0.2.904/src/via_video.h 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h 2010-03-07 01:09:00.000000000 +0100
+@@ -44,6 +44,10 @@
+
+ #define VIDEO_BPP 2
+
++
++#define V1_COMMAND_FIRE 0x80000000 /* V1 commands fire */
++#define V3_COMMAND_FIRE 0x40000000 /* V3 commands fire */
++
+ typedef struct
+ {
+ CARD32 interruptflag; /* 200 */
+@@ -89,7 +93,7 @@
+ CARD32 video3_ctl; /* 2a0 */
+ CARD32 video3_addr0; /* 2a4 */
+ CARD32 video3_addr1; /* 2a8 */
+- CARD32 video3_stribe; /* 2ac */
++ CARD32 video3_stride; /* 2ac */
+ CARD32 video3_hvstart; /* 2b0 */
+ CARD32 video3_size; /* 2b4 */
+ CARD32 v3alpha_fetch; /* 2b8 */
diff --git a/abs/not_built/core/xf86-video-r128/LICENSE b/abs/not_built/core/xf86-video-r128/LICENSE
new file mode 100644
index 0000000..229a261
--- /dev/null
+++ b/abs/not_built/core/xf86-video-r128/LICENSE
@@ -0,0 +1,219 @@
+
+Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Marc Aurele La France makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2000 Gareth Hughes
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+(c) 2004 Adam Jackson. Standard MIT license applies.
+
+Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+Precision Insight, Inc., Cedar Park, Texas, and
+VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright 2003 Alex Deucher.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER
+CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+/**************************************************************************
+
+Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc.,
+ Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
+/**************************************************************************
+
+Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
+ VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+ * Precision Insight, Inc., Cedar Park, Texas, and
+ * VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation on the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+ * SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Rickard E. Faith <faith@valinux.com>
+ * Daryll Strauss <daryll@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
diff --git a/abs/not_built/core/xf86-video-r128/PKGBUILD b/abs/not_built/core/xf86-video-r128/PKGBUILD
new file mode 100644
index 0000000..a50e88d
--- /dev/null
+++ b/abs/not_built/core/xf86-video-r128/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88652 2010-08-24 12:20:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=xf86-video-r128
+pkgver=6.8.1
+pkgrel=4
+pkgdesc="X.org ati Rage128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'r128-dri')
+makedepends=('xorg-server-devel' 'xf86driproto' 'libdrm' 'mesa')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('2b90854a62a4d45d652062f582dc8d13'
+ '97ad034bea2a153f4418a6bb0c77acf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-rendition/PKGBUILD b/abs/not_built/core/xf86-video-rendition/PKGBUILD
new file mode 100644
index 0000000..fe6f54a
--- /dev/null
+++ b/abs/not_built/core/xf86-video-rendition/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88658 2010-08-24 12:33:11Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-rendition
+pkgver=4.2.4
+pkgrel=2
+pkgdesc="X.org Rendition video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool' '!strip')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('16148c25183f7829c22bc9dfdb588c1a16bf4565')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ strip --strip-unneeded "${pkgdir}/usr/lib/xorg/modules/drivers/rendition_drv.so"
+}
diff --git a/abs/not_built/core/xf86-video-s3/LICENSE b/abs/not_built/core/xf86-video-s3/LICENSE
new file mode 100644
index 0000000..a4c8d5d
--- /dev/null
+++ b/abs/not_built/core/xf86-video-s3/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+ Copyright 2001 Ani Joshi <ajoshi@unixbox.com>
+
+ XFree86 4.x driver for S3 chipsets
+
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation and
+that the name of Ani Joshi not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Ani Joshi makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+ANI JOSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ANI JOSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xf86-video-s3/PKGBUILD b/abs/not_built/core/xf86-video-s3/PKGBUILD
new file mode 100644
index 0000000..74ce9a2
--- /dev/null
+++ b/abs/not_built/core/xf86-video-s3/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 88661 2010-08-24 12:47:55Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-s3
+pkgver=0.6.3
+pkgrel=3
+pkgdesc="X.org S3 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('5eb06d88533fb327d067928faeb20860'
+ '6b2bea29522da7cbb81cadde3235024d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/core/xf86-video-s3virge/LICENSE b/abs/not_built/core/xf86-video-s3virge/LICENSE
new file mode 100644
index 0000000..23c2aea
--- /dev/null
+++ b/abs/not_built/core/xf86-video-s3virge/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
diff --git a/abs/not_built/core/xf86-video-s3virge/PKGBUILD b/abs/not_built/core/xf86-video-s3virge/PKGBUILD
new file mode 100644
index 0000000..c500c2c
--- /dev/null
+++ b/abs/not_built/core/xf86-video-s3virge/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88664 2010-08-24 12:56:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xf86-video-s3virge
+pkgver=1.10.4
+pkgrel=3
+pkgdesc="X.org S3 Virge video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool)
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('6517bbbf808c700502d51acdc44662f8' 'c0a38dfcd6288eff39322f7c584b8d1e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-savage/LICENSE b/abs/not_built/core/xf86-video-savage/LICENSE
new file mode 100644
index 0000000..72598e8
--- /dev/null
+++ b/abs/not_built/core/xf86-video-savage/LICENSE
@@ -0,0 +1,97 @@
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+
+
+Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+/*
+ * Copyright 2005 Felix Kuehling
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT. IN NO EVENT SHALL FELIX KUEHLING BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**************************************************************************
+
+Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
+ VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
diff --git a/abs/not_built/core/xf86-video-savage/PKGBUILD b/abs/not_built/core/xf86-video-savage/PKGBUILD
new file mode 100644
index 0000000..0450131
--- /dev/null
+++ b/abs/not_built/core/xf86-video-savage/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 88667 2010-08-24 13:00:40Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-savage
+pkgver=2.3.1
+pkgrel=4
+pkgdesc="X.org savage video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'savage-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool !makeflags)
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('66c319f610e3699c3de0f3ef630abb32'
+ '0f485840d3cee0a8d9952c0cd34f64c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-siliconmotion/PKGBUILD b/abs/not_built/core/xf86-video-siliconmotion/PKGBUILD
new file mode 100644
index 0000000..63900c6
--- /dev/null
+++ b/abs/not_built/core/xf86-video-siliconmotion/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88670 2010-08-24 13:02:33Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-siliconmotion
+pkgver=1.7.4
+pkgrel=2
+pkgdesc="X.org siliconmotion video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('3c0fd42fbd301e66104e4b9190796d102a034787')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-sis/PKGBUILD b/abs/not_built/core/xf86-video-sis/PKGBUILD
new file mode 100644
index 0000000..ef457ec
--- /dev/null
+++ b/abs/not_built/core/xf86-video-sis/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88682 2010-08-24 13:15:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sis
+pkgver=0.10.3
+pkgrel=2
+pkgdesc="X.org SiS video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'sis-dri')
+makedepends=('xorg-server-devel' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('158673747e240b0c33499685a32d46bdaead7cd5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-sisusb/PKGBUILD b/abs/not_built/core/xf86-video-sisusb/PKGBUILD
new file mode 100644
index 0000000..3146df0
--- /dev/null
+++ b/abs/not_built/core/xf86-video-sisusb/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88685 2010-08-24 13:17:12Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sisusb
+pkgver=0.9.4
+pkgrel=2
+pkgdesc="X.org SiS USB video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-tdfx/LICENSE b/abs/not_built/core/xf86-video-tdfx/LICENSE
new file mode 100644
index 0000000..08b1add
--- /dev/null
+++ b/abs/not_built/core/xf86-video-tdfx/LICENSE
@@ -0,0 +1,160 @@
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+/*
+ * Copyright 2000 VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel i810
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel tdfx
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 4.1
+ *
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ * Keith Whitwell <keith@tungstengraphics.com>
+ * Daniel Borca <dborca@users.sourceforge.net>
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 5.1
+ *
+ * Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ * Keith Whitwell
+ * Daniel Borca
+ */
diff --git a/abs/not_built/core/xf86-video-tdfx/PKGBUILD b/abs/not_built/core/xf86-video-tdfx/PKGBUILD
new file mode 100644
index 0000000..88a96fc
--- /dev/null
+++ b/abs/not_built/core/xf86-video-tdfx/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 88679 2010-08-24 13:12:20Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tdfx
+pkgver=1.4.3
+pkgrel=4
+pkgdesc="X.org tdfx video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'tdfx-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool)
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('8161bbf2b100c21b609163f0010766b3'
+ '978e9486ffd4e4164c12dc68c84186e1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-trident/PKGBUILD b/abs/not_built/core/xf86-video-trident/PKGBUILD
new file mode 100644
index 0000000..80aa2e6
--- /dev/null
+++ b/abs/not_built/core/xf86-video-trident/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88676 2010-08-24 13:07:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-trident
+pkgver=1.3.4
+pkgrel=2
+pkgdesc="X.org Trident video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=(!libtool)
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7c40f5c02bddf399862782b708941e79302318af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/not_built/core/xf86-video-tseng/PKGBUILD b/abs/not_built/core/xf86-video-tseng/PKGBUILD
new file mode 100644
index 0000000..4fbcf23
--- /dev/null
+++ b/abs/not_built/core/xf86-video-tseng/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88673 2010-08-24 13:04:05Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tseng
+pkgver=1.2.4
+pkgrel=2
+pkgdesc="X.org tseng video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-unichrome/LICENSE b/abs/not_built/core/xf86-video-unichrome/LICENSE
new file mode 100644
index 0000000..f400766
--- /dev/null
+++ b/abs/not_built/core/xf86-video-unichrome/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2004-2007 Luc Verhaegen. All Rights Reserved.
+Copyright (c) 2004-2005 The Unichrome Project. All Rights Reserved.
+Copyright (c) 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+Copyright (c) 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/abs/not_built/core/xf86-video-unichrome/PKGBUILD b/abs/not_built/core/xf86-video-unichrome/PKGBUILD
new file mode 100644
index 0000000..b2aa60e
--- /dev/null
+++ b/abs/not_built/core/xf86-video-unichrome/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 88691 2010-08-24 13:31:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=xf86-video-unichrome
+pkgver=0.2.7
+pkgrel=4
+_gitversion=cd12cce88ff886031c23c743569fba97eccace4e
+pkgdesc="Unichrome video drivers for X.Org"
+arch=(i686 x86_64)
+url="http://unichrome.sf.net/"
+license=('custom')
+depends=('glibc' 'unichrome-dri')
+makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc')
+options=('!libtool')
+conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.9.0')
+source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2
+ drm-include.patch
+ LICENSE)
+md5sums=('c64332e6c386ed9a580116e131f288f4'
+ '4a9bf2e3ef338c170a2f58988ebb97dc'
+ '6ea7d64c87c5c32201a1e38e3336e44a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_gitversion}"
+ patch -Np0 -i "${srcdir}/drm-include.patch"
+ ./autogen.sh --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-unichrome/drm-include.patch b/abs/not_built/core/xf86-video-unichrome/drm-include.patch
new file mode 100644
index 0000000..edfe9a8
--- /dev/null
+++ b/abs/not_built/core/xf86-video-unichrome/drm-include.patch
@@ -0,0 +1,11 @@
+--- src/via_memory.h.orig 2010-05-09 16:17:00.143352805 +0200
++++ src/via_memory.h 2010-05-09 16:17:14.433351301 +0200
+@@ -30,7 +30,7 @@
+
+ /* don't include local via_drm.h when using modular */
+ #ifdef HAVE_CONFIG_H
+-#include "drm/via_drm.h"
++#include <via_drm.h>
+ #else
+ #include "via_drm.h"
+ #endif
diff --git a/abs/not_built/core/xf86-video-v4l/LICENSE b/abs/not_built/core/xf86-video-v4l/LICENSE
new file mode 100644
index 0000000..535595b
--- /dev/null
+++ b/abs/not_built/core/xf86-video-v4l/LICENSE
@@ -0,0 +1,826 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+ Licenses
+
+ The X.Org Foundation
+
+ March 2004
+
+1. Introduction
+
+The X.org Foundation X Window System distribution is a compilation of code
+and documentation from many sources. This document is intended primarily as
+a guide to the licenses used in the distribution: you must check each file
+and/or package for precise redistribution terms. None-the-less, this summary
+may be useful to many users. No software incorporating the XFree86 1.1
+license has been incorporated.
+
+This document is based on the compilation from XFree86.
+
+2. XFree86 License
+
+XFree86 code without an explicit copyright is covered by the following copy-
+right/license:
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from the XFree86
+Project.
+
+3. Other Licenses
+
+Portions of code are covered by the following licenses/copyrights. See indi-
+vidual files for the copyright dates.
+
+3.1 X/MIT Copyrights
+
+3.1.1 X Consortium
+
+Copyright (C) <date> X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
+CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+X Window System is a trademark of X Consortium, Inc.
+
+3.1.2 The Open Group
+
+Copyright <date> The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+3.2 Berkeley-based copyrights:
+
+o
+
+3.2.1 General
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.2 UCB/LBL
+
+Copyright (c) 1993 The Regents of the University of California. All rights
+reserved.
+
+This software was developed by the Computer Systems Engineering group at
+Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
+Berkeley.
+
+All advertising materials mentioning features or use of this software must
+display the following acknowledgement: This product includes software devel-
+oped by the University of California, Lawrence Berkeley Laboratory.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement: This product includes soft-
+ ware developed by the University of California, Berkeley and its con-
+ tributors.
+
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
+CLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.3 The NetBSD Foundation, Inc.
+
+Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
+
+This code is derived from software contributed to The NetBSD Foundation by
+Ben Collver <collver1@attbi.com>
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement: This product includes soft-
+ ware developed by the NetBSD Foundation, Inc. and its contributors.
+
+ 4. Neither the name of The NetBSD Foundation nor the names of its con-
+ tributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE-
+QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAM-
+AGE.
+
+3.2.4 Theodore Ts'o.
+
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ and the entire permission notice in its entirety, including the dis-
+ claimer of warranties.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. he name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.5 Theo de Raadt and Damien Miller
+
+Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
+2001-2002 Damien Miller. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.6 Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CON-
+TRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+3.2.7 Thomas Winischhofer
+
+Copyright (C) 2001-2004 Thomas Winischhofer
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.3 NVIDIA Corp
+
+Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
+
+NOTICE TO USER: The source code is copyrighted under U.S. and international
+laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as
+design patents pending on the design and interface of the NV chips. Users
+and possessors of this source code are hereby granted a nonexclusive, roy-
+alty-free copyright and design patent license to use this code in individual
+and commercial software.
+
+Any use of this source code must include, in the user documentation and
+internal comments to the code, notices to the end user as follows:
+
+Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S.
+and foreign countries.
+
+NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
+CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WAR-
+RANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
+FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAM-
+AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.
+
+3.4 GLX Public License
+
+GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
+
+Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
+grants permission to Recipient (defined below), under Recipient's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below), and to permit persons to whom the Subject Software is furnished in
+accordance with this License to do the same, subject to all of the following
+terms and conditions, which Recipient accepts by engaging in any such use,
+copying, modifying, merging, publishing, distributing, sublicensing or sell-
+ing:
+
+1. Definitions.
+
+ (a) "Original Software" means source code of computer software code
+ which is described in Exhibit A as Original Software.
+
+ (b) "Modifications" means any addition to or deletion from the sub-
+ stance or structure of either the Original Software or any previous
+ Modifications. When Subject Software is released as a series of
+ files, a Modification means (i) any addition to or deletion from
+ the contents of a file containing Original Software or previous
+ Modifications and (ii) any new file that contains any part of the
+ Original Code or previous Modifications.
+
+ (c) "Subject Software" means the Original Software or Modifications
+ or the combination of the Original Software and Modifications, or
+ portions of any of the foregoing.
+
+ (d) "Recipient" means an individual or a legal entity exercising
+ rights under, and complying with all of the terms of, this License.
+ For legal entities, "Recipient" includes any entity which controls,
+ is controlled by, or is under common control with Recipient. For
+ purposes of this definition, "control" of an entity means (a) the
+ power, direct or indirect, to direct or manage such entity, or (b)
+ ownership of fifty percent (50%) or more of the outstanding shares
+ or beneficial ownership of such entity.
+
+2. Redistribution of Source Code Subject to These Terms. Redistributions of
+Subject Software in source code form must retain the notice set forth in
+Exhibit A, below, in every file. A copy of this License must be included in
+any documentation for such Subject Software where the recipients' rights
+relating to Subject Software are described. Recipient may distribute the
+source code version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13
+of this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the source code version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+3. Redistribution in Executable Form. The notice set forth in Exhibit A must
+be conspicuously included in any notice in an executable version of Subject
+Software, related documentation or collateral in which Recipient describes
+the user's rights relating to the Subject Software. Recipient may distribute
+the executable version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the executable version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+4. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software which is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+5. No Trademark Rights. This License does not grant any rights to use any
+trade name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from
+the Subject Software without prior written permission of SGI.
+
+6. No Other Rights. This License does not grant any rights with respect to
+the OpenGL API or to any software or hardware implementation thereof or to
+any other software whatsoever, nor shall any other rights or licenses not
+expressly granted hereunder arise by implication, estoppel or otherwise with
+respect to the Subject Software. Title to and ownership of the Original Soft-
+ware at all times remains with SGI. All rights in the Original Software not
+expressly granted under this License are reserved.
+
+7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+8. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Exhibit A notice required under Sec-
+tions 2 and 3, above, and in the text of any related documentation, license
+agreement or collateral in which Recipient describes end user's rights relat-
+ing to the Subject Software. If Recipient obtains such knowledge after it
+makes Subject Software available to any other person or entity, Recipient
+shall take other steps (such as notifying appropriate mailing lists or news-
+groups) reasonably calculated to inform those who received the Subject Soft-
+ware that new knowledge has been obtained.
+
+9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THE-
+ORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIA-
+BILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR
+ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
+STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
+TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
+THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES,
+SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
+
+11. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc.
+from and against any loss, liability, damages, costs or expenses (including
+the payment of reasonable attorneys fees) arising out of Recipient's use,
+modification, reproduction and distribution of the Subject Software or out of
+any representation or warranty made by Recipient.
+
+12. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End
+Users acquire only the rights set forth in this License and are subject to
+the terms of this License.
+
+13. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable, such provision shall be reformed so as to achieve as nearly as
+possible the same economic effect as the original provision and the remainder
+of this License will remain in effect. This License shall be governed by and
+construed in accordance with the laws of the United States and the State of
+California as applied to agreements entered into and to be performed entirely
+within California between California residents. Any litigation relating to
+this License shall be subject to the exclusive jurisdiction of the Federal
+Courts of the Northern District of California (or, absent subject matter
+jurisdiction in such courts, the courts of the State of California), with
+venue lying exclusively in Santa Clara County, California, with the losing
+party responsible for costs, including without limitation, court costs and
+reasonable attorneys fees and expenses. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a con-
+tract shall be construed against the drafter shall not apply to this License.
+
+Exhibit A
+
+The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and
+13 of the GLX Public License Version 1.0 (the "License"). You may not use
+this file except in compliance with those sections of the License. You may
+obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services,
+2011 N. Shoreline Blvd., Mountain View, CA 94043 or at
+http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February,
+1999. The developer of the Original Software is Silicon Graphics, Inc. Those
+portions of the Subject Software created by Silicon Graphics, Inc. are Copy-
+right (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+
+3.5 CID Font Code Public License
+
+CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
+
+Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
+hereby grants permission to Recipient (defined below), under SGI's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below) in both source code and executable form, and to permit persons to whom
+the Subject Software is furnished in accordance with this License to do the
+same, subject to all of the following terms and conditions, which Recipient
+accepts by engaging in any such use, copying, modifying, merging, publica-
+tion, distributing, sublicensing or selling:
+
+1. Definitions.
+
+ a. "Original Software" means source code of computer software code
+ that is described in Exhibit A as Original Software.
+
+ b. "Modifications" means any addition to or deletion from the sub-
+ stance or structure of either the Original Software or any previous
+ Modifications. When Subject Software is released as a series of
+ files, a Modification means (i) any addition to or deletion from
+ the contents of a file containing Original Software or previous
+ Modifications and (ii) any new file that contains any part of the
+ Original Code or previous Modifications.
+
+ c. "Subject Software" means the Original Software or Modifications
+ or the combination of the Original Software and Modifications, or
+ portions of any of the foregoing.
+
+ d. "Recipient" means an individual or a legal entity exercising
+ rights under the terms of this License. For legal entities, "Recip-
+ ient" includes any entity that controls, is controlled by, or is
+ under common control with Recipient. For purposes of this defini-
+ tion, "control" of an entity means (i) the power, direct or indi-
+ rect, to direct or manage such entity, or (ii) ownership of fifty
+ percent (50%) or more of the outstanding shares or beneficial own-
+ ership of such entity.
+
+ e. "Required Notice" means the notice set forth in Exhibit A to
+ this License.
+
+ f. "Accompanying Technology" means any software or other technology
+ that is not a Modification and that is distributed or made publicly
+ available by Recipient with the Subject Software. Separate soft-
+ ware files that do not contain any Original Software or any previ-
+ ous Modification shall not be deemed a Modification, even if such
+ software files are aggregated as part of a product, or in any
+ medium of storage, with any file that does contain Original Soft-
+ ware or any previous Modification.
+
+2. License Terms. All distribution of the Subject Software must be made sub-
+ject to the terms of this License. A copy of this License and the Required
+Notice must be included in any documentation for Subject Software where
+Recipient's rights relating to Subject Software and/or any Accompanying Tech-
+nology are described. Distributions of Subject Software in source code form
+must also include the Required Notice in every file distributed. In addition,
+a ReadMe file entitled "Important Legal Notice" must be distributed with each
+distribution of one or more files that incorporate Subject Software. That
+file must be included with distributions made in both source code and exe-
+cutable form. A copy of the License and the Required Notice must be included
+in that file. Recipient may distribute Accompanying Technology under a
+license of Recipient's choice, which may contain terms different from this
+License, provided that (i) Recipient is in compliance with the terms of this
+License, (ii) such other license terms do not modify or supersede the terms
+of this License as applicable to the Subject Software, (iii) Recipient hereby
+indemnifies SGI for any liability incurred by SGI as a result of the distri-
+bution of Accompanying Technology or the use of other license terms.
+
+3. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software that is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+4. Trademark Rights. This License does not grant any rights to use any trade
+name, trademark or service mark whatsoever. No trade name, trademark or ser-
+vice mark of SGI may be used to endorse or promote products derived from or
+incorporating any Subject Software without prior written permission of SGI.
+
+5. No Other Rights. No rights or licenses not expressly granted hereunder
+shall arise by implication, estoppel or otherwise. Title to and ownership of
+the Original Software at all times remains with SGI. All rights in the Origi-
+nal Software not expressly granted under this License are reserved.
+
+6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity, or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+7. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Required Notice, and in the text of
+any related documentation, license agreement or collateral in which Recipient
+describes end user's rights relating to the Subject Software. If Recipient
+obtains such knowledge after it makes Subject Software available to any other
+person or entity, Recipient shall take other steps (such as notifying appro-
+priate mailing lists or newsgroups) reasonably calculated to provide such
+knowledge to those who received the Subject Software.
+
+8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
+LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
+
+10. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold SGI and its successors and assigns
+harmless from and against any loss, liability, damages, costs or expenses
+(including the payment of reasonable attorneys fees) arising out of (Recipi-
+ent's use, modification, reproduction and distribution of the Subject Soft-
+ware or out of any representation or warranty made by Recipient.
+
+11. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the
+terms of this License.
+
+12. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable by any judicial or administrative authority having proper jurisdic-
+tion with respect thereto, such provision shall be reformed so as to achieve
+as nearly as possible the same economic effect as the original provision and
+the remainder of this License will remain in effect. This License shall be
+governed by and construed in accordance with the laws of the United States
+and the State of California as applied to agreements entered into and to be
+performed entirely within California between California residents. Any liti-
+gation relating to this License shall be subject to the exclusive jurisdic-
+tion of the Federal Courts of the Northern District of California (or, absent
+subject matter jurisdiction in such courts, the courts of the State of Cali-
+fornia), with venue lying exclusively in Santa Clara County, California, with
+the losing party responsible for costs, including without limitation, court
+costs and reasonable attorneys fees and expenses. The application of the
+United Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation that provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+Exhibit A
+
+Copyright (c) 1994-1999 Silicon Graphics, Inc.
+
+The contents of this file are subject to the CID Font Code Public License
+Version 1.0 (the "License"). You may not use this file except in compliance
+with the License. You may obtain a copy of the License at Silicon Graphics,
+Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/cid/license.html
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software (as defined in the License) is CID font code that was
+developed by Silicon Graphics, Inc. Those portions of the Subject Software
+(as defined in the License) that were created by Silicon Graphics, Inc. are
+Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
+
+[NOTE: When using this text in connection with Subject Software delivered
+solely in object code form, Recipient may replace the words "this file" with
+"this software" in both the first and second sentences.]
+
+3.6 Bitstream Vera Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as long as
+"Bitstream" or "Vera" are not in the names), and full redistribution (so long
+as they are not *sold* by themselves). They can be be bundled, redistributed
+and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish, dis-
+tribute, and/or sell copies of the Font Software, and to permit persons to
+whom the Font Software is furnished to do so, subject to the following condi-
+tions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and addi-
+tional glyphs or characters may be added to the Fonts, only if the fonts are
+renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDA-
+TION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the Gnome Foundation or Bitstream Inc., respectively. For
+further information, contact: fonts at gnome dot org.
+
+3.7 Bigelow & Holmes Inc and URW++ GmbH Luxi font license
+
+Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
+code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a regis-
+tered trademark of Bigelow & Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particu-
+lar the designs of glyphs or characters in the Fonts may not be modified nor
+may additional glyphs or characters be added to the Fonts. This License
+becomes null and void when the Fonts or Font Software have been modified.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
+GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+URW++ GmbH. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Font Software without prior written
+authorization from Bigelow & Holmes Inc. and URW++ GmbH.
+
+For further information, contact:
+
+info@urwpp.de or design@bigelowandholmes.com
+
+ $Id: LICENSE,v 1.3 2004/09/03 23:41:21 kem Exp $
diff --git a/abs/not_built/core/xf86-video-v4l/PKGBUILD b/abs/not_built/core/xf86-video-v4l/PKGBUILD
new file mode 100644
index 0000000..338e96a
--- /dev/null
+++ b/abs/not_built/core/xf86-video-v4l/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 88557 2010-08-24 08:40:12Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-v4l
+pkgver=0.2.0
+pkgrel=6
+pkgdesc="X.org v4l video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('2251ae2a0a905764941cd7b098e85ad1'
+ '7d4d018f6bbff7e42672d1aabc75c5cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-voodoo/PKGBUILD b/abs/not_built/core/xf86-video-voodoo/PKGBUILD
new file mode 100644
index 0000000..c0520d8
--- /dev/null
+++ b/abs/not_built/core/xf86-video-voodoo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88548 2010-08-24 08:33:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-voodoo
+pkgver=1.2.4
+pkgrel=2
+pkgdesc="X.org 3dfx Voodoo1/Voodoo2 2D video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7ecd232cc0b7fe507e18e08799791eefa9fdaf48')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/core/xf86-video-xgi/PKGBUILD b/abs/not_built/core/xf86-video-xgi/PKGBUILD
new file mode 100644
index 0000000..a4de300
--- /dev/null
+++ b/abs/not_built/core/xf86-video-xgi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgi
+pkgver=1.6.0
+pkgrel=1
+pkgdesc="X.org XGI video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'xf86dgaproto')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('826f14d6ba799cd2aae9f0c818f84cf8b75f1ddb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86-video-xgixp/PKGBUILD b/abs/not_built/core/xf86-video-xgixp/PKGBUILD
new file mode 100644
index 0000000..56acbc5
--- /dev/null
+++ b/abs/not_built/core/xf86-video-xgixp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgixp
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="X.org XGIXP video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+options=('!libtool')
+groups=('xorg-video-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('67caeaa4c746572160208fe23c7257f62cb442a3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/core/xf86bigfontproto/PKGBUILD b/abs/not_built/core/xf86bigfontproto/PKGBUILD
new file mode 100644
index 0000000..ad7c8eb
--- /dev/null
+++ b/abs/not_built/core/xf86bigfontproto/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 50992 2009-09-04 12:38:04Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86bigfontproto
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Big Fonts extension wire protocol"
+arch=(any)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('312a2ea708b257520c1af4393b69d73a393a478f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
+
diff --git a/abs/not_built/core/xmlrpc-c/PKGBUILD b/abs/not_built/core/xmlrpc-c/PKGBUILD
new file mode 100644
index 0000000..02a386c
--- /dev/null
+++ b/abs/not_built/core/xmlrpc-c/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Vitaliy Berdinskikh <skipper13@root.ua>
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+
+pkgname=xmlrpc-c
+pkgver=1858
+pkgrel=1
+pkgdesc='This library provides a modular implementation of XML-RPC for C and C++'
+arch=('i686' 'x86_64')
+url='http://xmlrpc-c.sourceforge.net/'
+license=('custom:xmlrpc-c')
+depends=('curl' 'libxml2' 'gcc-libs' 'zlib')
+makedepends=('libtool')
+options=('!makeflags' '!libtool')
+source=("ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('2bd41d1827ebd12ca8f0b9ef0b015228')
+
+build() {
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+
+ cd $srcdir/$pkgname
+ ./configure --prefix=/usr \
+ --enable-libxml2-backend \
+ --disable-cgi-server \
+ --disable-abyss-server \
+ --disable-libwww-client \
+ --disable-wininet-client
+
+ make CFLAGS_PERSONAL="${CFLAGS}" || return 1
+}
+package() {
+ cd $srcdir/$pkgname
+ make DESTDIR=$pkgdir install
+
+ install -m 644 -D doc/COPYING $pkgdir/usr/share/licenses/${pkgname}/COPYING
+ mv $pkgdir/usr/man $pkgdir/usr/share/man
+}
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/core/xorg-apps/LICENSE b/abs/not_built/core/xorg-apps/LICENSE
new file mode 100644
index 0000000..e188a3b
--- /dev/null
+++ b/abs/not_built/core/xorg-apps/LICENSE
@@ -0,0 +1,1354 @@
+
+luit:
+
+Copyright (c) 2001 by Juliusz Chroboczek
+Copyright (c) 2002 by Tomohiro KUBOTA
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+oclock:
+
+Copyright 1989, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+x11perf:
+
+Copyright 1988, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+
+xbiff:
+
+Copyright (c) 1988 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+
+xcalc:
+Copyright (c) 1989, 1994 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+------------------------------------------------------------------------------
+
+Copyright 2005 Red Hat, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Red Hat not be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Red Hat makes no
+representations about the suitability of this software for any
+purpose. It is provided "as is" without express or implied warranty.
+
+RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+
+xclipboard:
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1989, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xclock:
+
+Copyright 1987, 1988, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+/*
+ * Copyright 2004 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of Sun Microsystems, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind.
+ *
+ * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
+ * SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR
+ * LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE,
+ * MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES.
+ * IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE,
+ * PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
+ * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE
+ * THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE
+ * SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+
+xconsole:
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1990, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xcursorgen:
+Copyright (C) 2002 Manish Singh
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Manish Singh not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Manish Singh makes no
+representations about the suitability of this software for any purpose. It
+is provided "as is" without express or implied warranty.
+
+MANISH SINGH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL MANISH SINGH BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+xedit:
+
+Copyright (c) 1987, 1993
+ The Regents of the University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+Copyright (c) 1994
+ The Regents of the University of California. All rights reserved.
+
+This code is derived from software contributed to Berkeley by
+Jan-Simon Pendry.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+
+ COPYRIGHT 1987
+ DIGITAL EQUIPMENT CORPORATION
+ MAYNARD, MASSACHUSETTS
+ ALL RIGHTS RESERVED.
+
+THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
+SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
+DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR
+ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
+
+IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS,
+APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT
+SET FORTH ABOVE.
+
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Digital Equipment Corporation not be
+used in advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.
+
+Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright (c) 1999-2002 by The XFree86 Project, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from the
+XFree86 Project.
+
+
+Copyright (c) 2007 Paulo Cesar Pereira de Andrade
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+xeyes:
+Copyright (c) 1991 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+
+xkill:
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1988, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+
+xload:
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1989 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+xlogo:
+
+Copyright 1988, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xmag:
+Copyright 1989, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+ * Copyright (C) 1999 The XFree86 Project, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of the XFree86 Project shall
+ * not be used in advertising or otherwise to promote the sale, use or other
+ * dealings in this Software without prior written authorization from the
+ * XFree86 Project.
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+
+xman:
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1987, 1988 X Consortium
+Copyright (c) 1991 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+xmessage:
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+ * Copyright (C) 2003 The XFree86 Project, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE
+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of the XFree86 Project
+ * shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written
+ * authorization from the XFree86 Project.
+
+Copyright (c) 1988, 1991, 1994 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+xmh:
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1989 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+ *
+ * COPYRIGHT 1987, 1989
+ * DIGITAL EQUIPMENT CORPORATION
+ * MAYNARD, MASSACHUSETTS
+ * ALL RIGHTS RESERVED.
+ *
+ * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
+ * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
+ * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR
+ * ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
+ *
+ * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT
+ * RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN
+ * ADDITION TO THAT SET FORTH ABOVE.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Digital Equipment Corporation not be
+ * used in advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission.
+
+Copyright (c) 1987, 1988 X Consortium
+Copyright (c) 1993 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+xpr:
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright (c) 1985 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+Copyright (c) 1988 by Hewlett-Packard Company
+
+Permission to use, copy, modify, and distribute this software
+and its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that copyright notice and this permission
+notice appear in supporting documentation, and that
+Hewlett-Packard not be used in advertising or publicity
+pertaining to distribution of the software without specific, written
+prior permission.
+
+Copyright (c) 1988 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+
+xwd:
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+ * Copyright 2007 Kim woelders
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+
+Copyright 1993, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+Copyright 1994 Hewlett-Packard Co.
+Copyright 1996, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+
+xwud:
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 1985, 1986, 1988, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
diff --git a/abs/not_built/core/xorg-apps/PKGBUILD b/abs/not_built/core/xorg-apps/PKGBUILD
new file mode 100644
index 0000000..a80ceb5
--- /dev/null
+++ b/abs/not_built/core/xorg-apps/PKGBUILD
@@ -0,0 +1,16 @@
+# $Id: PKGBUILD 96980 2010-10-25 20:36:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-apps
+pkgver=7.6
+pkgrel=1
+pkgdesc="Transition package depending on various X.Org applications"
+arch=(any)
+url="http://xorg.freedesktop.org/"
+license=('GPL')
+depends=('xorg-luit' 'xorg-xpr' 'xorg-xwd' 'xorg-xwud' 'xorg-x11perf' 'xorg-xcursorgen' 'xorg-xkill')
+#removed: oclock xclock xbiff xclipboard xconsole xeyes xload xlogo xmag xmessage xcalc xman xedit
+
+build() {
+ return 0
+}
diff --git a/abs/not_built/core/xorg-fonts-75dpi/PKGBUILD b/abs/not_built/core/xorg-fonts-75dpi/PKGBUILD
new file mode 100644
index 0000000..52954d7
--- /dev/null
+++ b/abs/not_built/core/xorg-fonts-75dpi/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 71681 2010-03-08 12:06:26Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=xorg-fonts-75dpi
+pkgver=1.0.1
+pkgrel=4
+pkgdesc="X.org 75dpi fonts"
+arch=(any)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(xorg-fonts-encodings xorg-fonts-alias xorg-font-utils fontconfig)
+groups=('xorg')
+install=xfonts.install
+source=(${url}/releases/individual/font/font-adobe-75dpi-1.0.1.tar.bz2
+ ${url}/releases/individual/font/font-adobe-utopia-75dpi-1.0.2.tar.bz2
+ ${url}/releases/individual/font/font-bh-75dpi-1.0.1.tar.bz2
+ ${url}/releases/individual/font/font-bh-lucidatypewriter-75dpi-1.0.1.tar.bz2
+ ${url}/releases/individual/font/font-bitstream-75dpi-1.0.1.tar.bz2)
+md5sums=('a47681c97bd012196691c95e34d400f1'
+ '71dffebeeb702d10876555c361fb69cf'
+ '53785d2688392aec5cba79fc0ddb23a2'
+ '6397062f2b346ce5bbe5472f3353a9a9'
+ 'aed54fb53d2d24aff10c92985286d1e5')
+
+build() {
+ cd "${srcdir}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ for dir in *; do
+ if [ -d "${dir}" ]; then
+ pushd "${dir}"
+ ./configure --prefix=/usr \
+ --with-fontdir=/usr/share/fonts/75dpi || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${dir%-75dpi-*}" || return 1
+ popd
+ fi
+ done
+ rm -f "${pkgdir}"/usr/share/fonts/75dpi/fonts.*
+}
+
diff --git a/abs/not_built/core/xorg-fonts-75dpi/xfonts.install b/abs/not_built/core/xorg-fonts-75dpi/xfonts.install
new file mode 100644
index 0000000..997982b
--- /dev/null
+++ b/abs/not_built/core/xorg-fonts-75dpi/xfonts.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/75dpi
+ mkfontdir /usr/share/fonts/75dpi
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/core/xorg-res-utils/LICENSE.listres b/abs/not_built/core/xorg-res-utils/LICENSE.listres
new file mode 100644
index 0000000..0c5bb16
--- /dev/null
+++ b/abs/not_built/core/xorg-res-utils/LICENSE.listres
@@ -0,0 +1,42 @@
+Copyright (c) 1989 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xorg-res-utils/LICENSE.viewres b/abs/not_built/core/xorg-res-utils/LICENSE.viewres
new file mode 100644
index 0000000..0c5bb16
--- /dev/null
+++ b/abs/not_built/core/xorg-res-utils/LICENSE.viewres
@@ -0,0 +1,42 @@
+Copyright (c) 1989 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+ Copyright 2005 Red Hat, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of Red Hat not be used in
+ advertising or publicity pertaining to distribution of the software without
+ specific, written prior permission. Red Hat makes no
+ representations about the suitability of this software for any purpose. It
+ is provided "as is" without express or implied warranty.
+
+ RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xorg-res-utils/PKGBUILD b/abs/not_built/core/xorg-res-utils/PKGBUILD
new file mode 100644
index 0000000..33966f5
--- /dev/null
+++ b/abs/not_built/core/xorg-res-utils/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 36734 2009-04-27 03:02:17Z eric $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=xorg-res-utils
+pkgver=1.0.3
+pkgrel=4
+pkgdesc="X.Org X11 resource utilities"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw')
+makedepends=('pkgconfig')
+groups=('xorg')
+source=(${url}/releases/individual/app/appres-1.0.1.tar.bz2
+ ${url}/releases/individual/app/editres-1.0.3.tar.bz2
+ ${url}/releases/individual/app/listres-1.0.1.tar.bz2
+ ${url}/releases/individual/app/viewres-1.0.1.tar.bz2
+ LICENSE.listres LICENSE.viewres)
+md5sums=('420e6cdf38bb771ec8b00228bf09e8ff' 'a25f931cc6c8d03daaed434f5db5df2d'\
+ '827a1ac5adf9aadd0c13b54a897e297b' 'cdbed540daf7975b56000420c9aa5bf9'\
+ '9c9b17ae5e9be0c570dabe9e54f54f6d' '9c9b17ae5e9be0c570dabe9e54f54f6d')
+
+build() {
+ cd ${srcdir}
+ for i in *; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --disable-xprint
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${i%-*}
+ popd
+ fi
+ done
+#Replacing stub license files
+ install -D -m644 "${srcdir}/LICENSE.listres" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.listres"
+ install -D -m644 "${srcdir}/LICENSE.viewres" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.viewres"
+}
diff --git a/abs/not_built/core/xorg-utils/LICENSE.xdpyinfo b/abs/not_built/core/xorg-utils/LICENSE.xdpyinfo
new file mode 100644
index 0000000..495dd2b
--- /dev/null
+++ b/abs/not_built/core/xorg-utils/LICENSE.xdpyinfo
@@ -0,0 +1,26 @@
+ Copyright 1988, 1998 The Open Group
+ Copyright 2005 Hitachi, Ltd.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
diff --git a/abs/not_built/core/xorg-utils/LICENSE.xfd b/abs/not_built/core/xorg-utils/LICENSE.xfd
new file mode 100644
index 0000000..2ac6c9d
--- /dev/null
+++ b/abs/not_built/core/xorg-utils/LICENSE.xfd
@@ -0,0 +1,25 @@
+ Copyright 1989, 1998 The Open Group
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from The Open Group.
+ * *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
diff --git a/abs/not_built/core/xorg-utils/LICENSE.xlsfonts b/abs/not_built/core/xorg-utils/LICENSE.xlsfonts
new file mode 100644
index 0000000..a9a4bd3
--- /dev/null
+++ b/abs/not_built/core/xorg-utils/LICENSE.xlsfonts
@@ -0,0 +1,22 @@
+ Copyright 1989, 1998 The Open Group
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from The Open Group.
+
diff --git a/abs/not_built/core/xorg-utils/LICENSE.xprop b/abs/not_built/core/xorg-utils/LICENSE.xprop
new file mode 100644
index 0000000..b94017f
--- /dev/null
+++ b/abs/not_built/core/xorg-utils/LICENSE.xprop
@@ -0,0 +1,45 @@
+ Copyright 1990, 1998 The Open Group
+ Copyright (c) 2000 The XFree86 Project, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall
+ not be used in advertising or otherwise to promote the sale, use or
+ other dealings in this Software without prior written authorization
+ from The Open Group.
+
+ Copyright 2007 Kim woelders
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that copyright
+ notice and this permission notice appear in supporting documentation, and
+ that the name of the copyright holders not be used in advertising or
+ publicity pertaining to distribution of the software without specific,
+ written prior permission. The copyright holders make no representations
+ about the suitability of this software for any purpose. It is provided "as
+ is" without express or implied warranty.
+
+ THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ OF THIS SOFTWARE.
+
diff --git a/abs/not_built/core/xorg-utils/PKGBUILD b/abs/not_built/core/xorg-utils/PKGBUILD
new file mode 100644
index 0000000..8040687
--- /dev/null
+++ b/abs/not_built/core/xorg-utils/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 96495 2010-10-21 21:13:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-utils
+pkgver=7.6
+pkgrel=6
+pkgdesc="Collection of client utilities used to query the X server"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxxf86dga' 'libxi' 'libxtst' 'libxinerama' 'libxv'
+ 'libdmx' 'libxft' 'libxaw>=1.0.6' 'libgl' 'libxcomposite' 'xcb-util')
+makedepends=('pkgconfig' 'mesa' 'glproto' 'xorg-util-macros')
+groups=('xorg')
+source=(${url}/releases/individual/app/xdpyinfo-1.2.0.tar.bz2
+ ${url}/releases/individual/app/xdriinfo-1.0.3.tar.bz2
+ ${url}/releases/individual/app/xev-1.0.4.tar.bz2
+ ${url}/releases/individual/app/xfd-1.1.0.tar.bz2
+ ${url}/releases/individual/app/xfontsel-1.0.3.tar.bz2
+ ${url}/releases/individual/app/xlsatoms-1.1.0.tar.bz2
+ ${url}/releases/individual/app/xlsclients-1.1.1.tar.bz2
+ ${url}/releases/individual/app/xlsfonts-1.0.3.tar.bz2
+ ${url}/releases/individual/app/xprop-1.1.0.tar.bz2
+ ${url}/releases/individual/app/xvinfo-1.1.0.tar.bz2
+ ${url}/releases/individual/app/xwininfo-1.1.0.tar.bz2
+ LICENSE.xprop
+ LICENSE.xlsfonts)
+md5sums=('c52fda7bbc80e74b7839f29298cb1d77'
+ 'cb304d1ce562ac48b68eedeba38c662f'
+ '5f98c0a2725a33d60ef4956befe078fb'
+ '17d8ef0d490301158f8abf7641cca243'
+ '299fabe7d7be92b6572d814895ce3bb1'
+ 'c543ccb6489b629d427810d9a57d0724'
+ '6d42621616da0c720f640d23873604ce'
+ 'bf6f3e7074479839d5182ffed735d2be'
+ 'f0bacbd30f0dd1c1e9ccafe97687b7a4'
+ '8cc299b2cb636b5f7fe672610789d3d4'
+ '932cb1393dee3caaf26f3515f640d783'
+ '801f9850b29dad506e995d011efe2914'
+ '345d6e65d71fdde292cc27f93c15e4a1')
+
+build() {
+ cd "${srcdir}"
+ for i in *; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --without-xprint || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.${i%-*} || return 1
+ popd
+ fi
+ done
+# Replacing stub license files
+ install -D -m644 "${srcdir}"/LICENSE.* "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap b/abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap
new file mode 100644
index 0000000..78f516a
--- /dev/null
+++ b/abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap
@@ -0,0 +1,22 @@
+ Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
+
+ Permission to use, copy, modify, and distribute this
+ software and its documentation for any purpose and without
+ fee is hereby granted, provided that the above copyright
+ notice appear in all copies and that both that copyright
+ notice and this permission notice appear in supporting
+ documentation, and that the name of Silicon Graphics not be
+ used in advertising or publicity pertaining to distribution
+ of the software without specific prior written permission.
+ Silicon Graphics makes no representation about the suitability
+ of this software for any purpose. It is provided "as is"
+ without any express or implied warranty.
+
+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
+ THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd
new file mode 100644
index 0000000..a43337e
--- /dev/null
+++ b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd
@@ -0,0 +1,22 @@
+ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
+
+ Permission to use, copy, modify, and distribute this
+ software and its documentation for any purpose and without
+ fee is hereby granted, provided that the above copyright
+ notice appear in all copies and that both that copyright
+ notice and this permission notice appear in supporting
+ documentation, and that the name of Silicon Graphics not be
+ used in advertising or publicity pertaining to distribution
+ of the software without specific prior written permission.
+ Silicon Graphics makes no representation about the suitability
+ of this software for any purpose. It is provided "as is"
+ without any express or implied warranty.
+
+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
+ THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils
new file mode 100644
index 0000000..a43337e
--- /dev/null
+++ b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils
@@ -0,0 +1,22 @@
+ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
+
+ Permission to use, copy, modify, and distribute this
+ software and its documentation for any purpose and without
+ fee is hereby granted, provided that the above copyright
+ notice appear in all copies and that both that copyright
+ notice and this permission notice appear in supporting
+ documentation, and that the name of Silicon Graphics not be
+ used in advertising or publicity pertaining to distribution
+ of the software without specific prior written permission.
+ Silicon Graphics makes no representation about the suitability
+ of this software for any purpose. It is provided "as is"
+ without any express or implied warranty.
+
+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
+ THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/abs/not_built/core/xorg-xkb-utils/PKGBUILD b/abs/not_built/core/xorg-xkb-utils/PKGBUILD
new file mode 100644
index 0000000..e6a1e09
--- /dev/null
+++ b/abs/not_built/core/xorg-xkb-utils/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 61601 2009-12-19 21:31:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkb-utils
+pkgver=7.5
+pkgrel=3
+pkgdesc="X.org keyboard utilities"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw>=1.0.5' 'libxkbfile')
+makedepends=(pkgconfig inputproto)
+source=(${url}/releases/individual/app/xkbutils-1.0.2.tar.bz2
+ ${url}/releases/individual/app/xkbcomp-1.1.1.tar.bz2
+ ${url}/releases/individual/app/xkbevd-1.1.0.tar.bz2
+ ${url}/releases/individual/app/setxkbmap-1.1.0.tar.bz2
+ ${url}/releases/individual/app/xkbprint-1.0.2.tar.bz2
+ LICENSE.setxkbmap LICENSE.xkbevd LICENSE.xkbutils)
+md5sums=('369a21641b7ca983d6641298e51d97f8'
+ '38c387bacdc01038c8ac280588792bcf'
+ '8d3c1485c2dd62ea7395a37377958a39'
+ '2f902e0a89aaf2b19e06e7f26c6efb3a'
+ '3d3eb10466442354d6b73b503b9829db'
+ '7c20baa6a26c32a04b1b1d6cbaa626a7'
+ '7b1fc39455375a25afe6f9594ff979ac'
+ '7b1fc39455375a25afe6f9594ff979ac')
+
+build() {
+ cd "${srcdir}"
+ for i in *; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.${i%-*} || return 1
+ popd
+ fi
+ done
+# Replacing stub license files
+ install -D -m644 "${srcdir}"/LICENSE.* "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/not_built/core/xorg-xmessage/PKGBUILD b/abs/not_built/core/xorg-xmessage/PKGBUILD
new file mode 100644
index 0000000..ca10a8d
--- /dev/null
+++ b/abs/not_built/core/xorg-xmessage/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmessage
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Display a message or query in a window"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmessage-${pkgver}.tar.bz2)
+sha1sums=('a8bfefbbe7785fa0e58ed4f596f4d79ba0b4d9b2')
+
+build() {
+ cd "${srcdir}/xmessage-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/abs/not_built/extra/abs/PKGBUILD b/abs/not_built/extra/abs/PKGBUILD
new file mode 100644
index 0000000..4273e8a
--- /dev/null
+++ b/abs/not_built/extra/abs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 65230 2010-01-25 13:11:11Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=abs
+pkgver=2.3.4.1
+pkgrel=1
+pkgdesc="Utilities to download and work with the Arch Build System (ABS)"
+arch=('i686' 'x86_64')
+url="http://projects.archlinux.org/abs.git/"
+license=('GPL')
+depends=('bash' 'rsync')
+backup=(etc/abs.conf)
+install=abs.install
+source=(ftp://ftp.archlinux.org/other/abs/${pkgname}-${pkgver}.tar.gz)
+md5sums=('286825d64f19f801d510ff1f7cc05ea6')
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ make CONFDIR=/etc/ || return 1
+ make CONFDIR=/etc/ DESTDIR=${pkgdir} install || return 1
+
+ # Add readme file, and make base /var/abs path
+ install -dm0755 ${pkgdir}/var/abs/local/
+ install -Dm0644 ${srcdir}/abs/README ${pkgdir}/var/abs/README
+
+ # change ABS tags for x86_64 to correct values
+ if [ "$CARCH" = "x86_64" ]; then
+ sed -i 's|"i686"|"x86_64"|g' ${pkgdir}/etc/abs.conf
+ fi
+}
diff --git a/abs/not_built/extra/abs/abs.install b/abs/not_built/extra/abs/abs.install
new file mode 100644
index 0000000..c16a8d7
--- /dev/null
+++ b/abs/not_built/extra/abs/abs.install
@@ -0,0 +1,12 @@
+pre_upgrade() {
+ if [ "$(vercmp $2 2.3.2-1)" -lt 0 ]; then
+ echo "==> Fixing potential ABS tree permission issues (this may take a while...)"
+
+ for dir in core extra community testing; do
+ if [ -d /var/abs/$dir ]; then
+ find /var/abs/$dir -type d -exec chown root:root {} \;
+ find /var/abs/$dir -type d -exec chmod 755 {} \;
+ fi
+ done
+ fi
+}
diff --git a/abs/not_built/extra/alpine/2.00-lpam.patch b/abs/not_built/extra/alpine/2.00-lpam.patch
new file mode 100644
index 0000000..69e66d7
--- /dev/null
+++ b/abs/not_built/extra/alpine/2.00-lpam.patch
@@ -0,0 +1,13 @@
+--- alpine-2.00.orig/alpine/Makefile.in
++++ alpine-2.00/alpine/Makefile.in
+@@ -169,7 +169,7 @@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
++LIBS = @LIBS@ -lpam
+ LIBTOOL = @LIBTOOL@
+ LN = @LN@
+ LN_S = @LN_S@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
diff --git a/abs/not_built/extra/alpine/CVE-2008-5514.patch b/abs/not_built/extra/alpine/CVE-2008-5514.patch
new file mode 100644
index 0000000..594bea0
--- /dev/null
+++ b/abs/not_built/extra/alpine/CVE-2008-5514.patch
@@ -0,0 +1,20 @@
+--- alpine-2.00/imap/src/c-client/rfc822.c
++++ alpine-2.00/imap/src/c-client/rfc822.c
+@@ -1351,6 +1351,7 @@
+
+ static long rfc822_output_char (RFC822BUFFER *buf,int c)
+ {
++ if ((buf->cur == buf->end) && !rfc822_output_flush (buf)) return NIL;
+ *buf->cur++ = c; /* add character, soutr buffer if full */
+ return (buf->cur == buf->end) ? rfc822_output_flush (buf) : LONGT;
+ }
+@@ -1374,7 +1375,8 @@
+ len -= i;
+ }
+ /* soutr buffer now if full */
+- if (len && !rfc822_output_flush (buf)) return NIL;
++ if ((len || (buf->cur == buf->end)) && !rfc822_output_flush (buf))
++ return NIL;
+ }
+ return LONGT;
+ }
diff --git a/abs/not_built/extra/alpine/ChangeLog b/abs/not_built/extra/alpine/ChangeLog
new file mode 100644
index 0000000..4c3bf81
--- /dev/null
+++ b/abs/not_built/extra/alpine/ChangeLog
@@ -0,0 +1,43 @@
+2010-01-23 Eric Belanger <eric@archlinux.org>
+
+ * alpine 2.00-7
+ * Updated patchset to level 53
+
+2009-09-18 Eric Belanger <eric@archlinux.org>
+
+ * alpine 2.00-6
+ * libldap-2.4 rebuild
+
+2009-09-18 Eric Belanger <eric@archlinux.org>
+
+ * alpine 2.00-5
+ * Updated patchset to level 52
+ * Security fix
+
+2009-09-17 Allan McRae <allan@archlinux.org>
+
+ * alpine 2.00-4
+ * libldap-2.4 rebuild
+
+2009-02-07 Eric Belanger <eric@archlinux.org>
+
+ * alpine 2.00-3
+ * Updated patchset to level 20
+
+2008-12-05 Eric Belanger <eric@archlinux.org>
+
+ * alpine 2.00-2
+ * Rebuilt against heimdal 1.2.1
+ * Placed copy of all.patch.gz patch on local ftp (close FS#11964)
+
+2008-09-04 Eric Belanger <eric@archlinux.org>
+
+ * alpine 2.00-1
+ * Upstream update
+ * Replaced install scriptlet with optdepends
+
+2008-03-26 Eric Belanger <eric@archlinux.org>
+
+ * alpine 1.10-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/abs/not_built/extra/alpine/PKGBUILD b/abs/not_built/extra/alpine/PKGBUILD
new file mode 100644
index 0000000..1d75c85
--- /dev/null
+++ b/abs/not_built/extra/alpine/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 64978 2010-01-23 22:24:15Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Fabio Scotoni <fabio@esse.ch>
+
+pkgname=alpine
+pkgver=2.00
+pkgrel=7
+_patchlevel=53
+pkgdesc="The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)"
+arch=('i686' 'x86_64')
+url="http://www.washington.edu/alpine/"
+license=('APACHE')
+depends=('libldap>=2.4.11' 'heimdal>=1.2.1' 'gettext')
+optdepends=('aspell: for spell-checking support')
+provides=('pine')
+conflicts=('pine')
+replaces=('pine')
+options=('!makeflags')
+source=(ftp://ftp.cac.washington.edu/${pkgname}/${pkgname}.tar.bz2 \
+ http://staff.washington.edu/chappa/alpine/patches/alpine-${pkgver}/all_${_patchlevel}.patch.gz \
+ 2.00-lpam.patch CVE-2008-5514.patch)
+md5sums=('84e44cbf71ed674800a5d57eed9c1c52' 'c4a85b865f59c095f838617d08b1b123'\
+ 'cd3911c16fc6a072e853c0ccfc35857c' '1b52a54a656979116c09fb1d948a4325')
+sha1sums=('dcbd3c5419954f484ccf706feaba31ce48cdebc4' '7396ed92062924c126087dc32b98ccebf98e17cc'\
+ '1b39525f91ebd5a9de5a1e04f5554f6fa5f58ae3' 'bc61d76a237ff42b00b3f60f2e6fc5c45e261dbb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../all_${_patchlevel}.patch || return 1
+ patch -p1 < ../2.00-lpam.patch || return 1
+ patch -p1 < ../CVE-2008-5514.patch || return 1
+ ./configure --prefix=/usr --without-passfile --without-tcl \
+ --disable-shared --with-system-pinerc=/etc/alpine.d/pine.conf \
+ --with-system-fixed-pinerc=/etc/alpine.d/pine.conf.fixed || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/alsa-driver/PKGBUILD b/abs/not_built/extra/alsa-driver/PKGBUILD
new file mode 100644
index 0000000..c4c3624
--- /dev/null
+++ b/abs/not_built/extra/alsa-driver/PKGBUILD
@@ -0,0 +1,25 @@
+# Syco <SycoLTH at gmail dot com>
+
+pkgname=alsa-driver
+_pkgname=alsa-driver
+pkgver=1.0.24
+pkgrel=0
+pkgdesc="An alternative implementation of Linux sound support"
+arch=('i686' 'x86_64')
+provides=(alsa-driver)
+install='alsa-driver.install'
+url="http://www.alsa-project.org"
+license=('GPL')
+options=(!libtool)
+#source=(ftp://ftp.alsa-project.org/pub/driver/${_pkgname}-${pkgver}.tar.bz2)
+source=(http://mirrors.zerg.biz/alsa/driver/${_pkgname}-${pkgver}.tar.bz2)
+md5sums=('a4ffd80745ce5098dfd48d83c2769e0e')
+
+build() {
+ k_updates=${pkgdir}/lib/modules/$(uname -r)/updates
+ install -d ${k_updates}
+ cd ${srcdir}/${_pkgname}-${pkgver}
+ ./configure --with-cards=all
+ make || return 1
+ install -D -m644 modules/*.ko ${k_updates} || return 1
+}
diff --git a/abs/not_built/extra/alsa-driver/alsa-driver.install b/abs/not_built/extra/alsa-driver/alsa-driver.install
new file mode 100644
index 0000000..912055c
--- /dev/null
+++ b/abs/not_built/extra/alsa-driver/alsa-driver.install
@@ -0,0 +1,8 @@
+_kernver=`uname -r`
+ post_remove() {
+ depmod -a $_kernver
+}
+
+post_install() {
+ depmod -a $_kernver
+}
diff --git a/abs/not_built/extra/alsa-firmware/PKGBUILD b/abs/not_built/extra/alsa-firmware/PKGBUILD
new file mode 100644
index 0000000..af2c544
--- /dev/null
+++ b/abs/not_built/extra/alsa-firmware/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id$
+# Contributor: Jochen Immendörfer <jochen dot immendoerfer at gmail dot com>
+# Package Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=alsa-firmware
+pkgver=1.0.24.1
+pkgrel=1
+pkgdesc="ALSA firmware package"
+arch=('i686' 'x86_64')
+url="http://alsa-project.org/"
+license=('GPL')
+source=(ftp://ftp.alsa-project.org/pub/firmware/$pkgname-$pkgver.tar.bz2)
+options=(!strip)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # remove files which conflicts with kernel26-firmware
+ rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw
+ rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw
+ rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp
+ rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp
+ rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp
+ rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp
+ rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp
+ rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp
+ rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw
+ rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw
+ rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw
+ rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin
+}
+md5sums=('d37434dfcfececd8581d2f0bbe2fcf1b')
diff --git a/abs/not_built/extra/apcupsd/PKGBUILD b/abs/not_built/extra/apcupsd/PKGBUILD
new file mode 100644
index 0000000..ad57d1a
--- /dev/null
+++ b/abs/not_built/extra/apcupsd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD,v 1.17 2009/01/19 10:34:32 sergej Exp $
+# Maintainer: Sergej Pupykin <sergej@aur.archlinux.org>
+# Maintainer: Todd Musall <tmusall@comcast.net>
+
+pkgname=apcupsd
+pkgver=3.14.8
+pkgrel=1
+pkgdesc="Apcupsd can be used for power mangement and controlling most of APC's UPS models on Unix and Windows machines."
+arch=(i686 x86_64)
+url="http://www.apcupsd.org"
+license=('GPL')
+depends=('gcc-libs' 'gd' 'gconf')
+makedepends=('pkgconfig')
+backup=(etc/apcupsd/apcupsd.conf etc/apcupsd/hosts.conf \
+ etc/apcupsd/multimon.conf)
+source=(http://switch.dl.sf.net/sourceforge/apcupsd/$pkgname-$pkgver.tar.gz \
+ apcupsd
+ apcupsd.conf
+ run)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --enable-cgi --enable-usb --enable-net \
+ --with-upstype=usb --with-upscable=usb \
+ --with-serial-dev=/dev/usb/hid/hiddev[0-9] \
+ --enable-pthreads --enable-gapcmon
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ install -D -m755 ../apcupsd $startdir/pkg/etc/rc.d/apcupsd && \
+ chmod 755 $startdir/pkg/sbin/*
+ cp ../apcupsd.conf $startdir/pkg/etc/apcupsd/
+ mkdir -p $startdir/pkg/etc/sv/apcupsd/supervise
+ install -D -m755 ../run $startdir/pkg/etc/sv/apcupsd
+}
+md5sums=('cd17f0a903dc2220e55ed54e242359d2'
+ '5eae3c4d921eeb81798a0250fe3dd111'
+ '2f533aec32c9445510bb2127b453b175'
+ '32ae73bc096c1d0982c12d8ec46abee2')
diff --git a/abs/not_built/extra/apcupsd/apcupsd b/abs/not_built/extra/apcupsd/apcupsd
new file mode 100755
index 0000000..3cd5c9d
--- /dev/null
+++ b/abs/not_built/extra/apcupsd/apcupsd
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /sbin/apcupsd`
+case "$1" in
+ start)
+ stat_busy "Starting APCUPSD Daemon"
+ rm -f /etc/apcupsd/powerfail
+ rm -f /etc/nologin
+ [ -z "$PID" ] && /sbin/apcupsd -f /etc/apcupsd/apcupsd.conf
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /sbin/apcupsd`
+ echo $PID > /var/run/apcupsd.pid
+ add_daemon apcupsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping APCUPSD Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/apcupsd.pid
+ rm_daemon apcupsd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ status)
+ /sbin/apcaccess status
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+exit 0
diff --git a/abs/not_built/extra/apcupsd/apcupsd.conf b/abs/not_built/extra/apcupsd/apcupsd.conf
new file mode 100644
index 0000000..dd60889
--- /dev/null
+++ b/abs/not_built/extra/apcupsd/apcupsd.conf
@@ -0,0 +1,325 @@
+## apcupsd.conf v1.1 ##
+#
+# for apcupsd release 3.14.5 (10 January 2009) - unknown
+#
+# "apcupsd" POSIX config file
+
+#
+# ========= General configuration parameters ============
+#
+
+# UPSNAME xxx
+# Use this to give your UPS a name in log files and such. This
+# is particulary useful if you have multiple UPSes. This does not
+# set the EEPROM. It should be 8 characters or less.
+#UPSNAME
+
+# UPSCABLE <cable>
+# Defines the type of cable connecting the UPS to your computer.
+#
+# Possible generic choices for <cable> are:
+# simple, smart, ether, usb
+#
+# Or a specific cable model number may be used:
+# 940-0119A, 940-0127A, 940-0128A, 940-0020B,
+# 940-0020C, 940-0023A, 940-0024B, 940-0024C,
+# 940-1524C, 940-0024G, 940-0095A, 940-0095B,
+# 940-0095C, M-04-02-2000
+#
+UPSCABLE usb
+
+# To get apcupsd to work, in addition to defining the cable
+# above, you must also define a UPSTYPE, which corresponds to
+# the type of UPS you have (see the Description for more details).
+# You must also specify a DEVICE, sometimes referred to as a port.
+# For USB UPSes, please leave the DEVICE directive blank. For
+# other UPS types, you must specify an appropriate port or address.
+#
+# UPSTYPE DEVICE Description
+# apcsmart /dev/tty** Newer serial character device,
+# appropriate for SmartUPS models using
+# a serial cable (not USB).
+#
+# usb <BLANK> Most new UPSes are USB. A blank DEVICE
+# setting enables autodetection, which is
+# the best choice for most installations.
+#
+# net hostname:port Network link to a master apcupsd
+# through apcupsd's Network Information
+# Server. This is used if you don't have
+# a UPS directly connected to your computer.
+#
+# snmp hostname:port:vendor:community
+# SNMP Network link to an SNMP-enabled
+# UPS device. Vendor is the MIB used by
+# the UPS device: can be "APC", "APC_NOTRAP"
+# or "RFC" where APC is the powernet MIB,
+# "APC_NOTRAP" is powernet with SNMP trap
+# catching disabled, and RFC is the IETF's
+# rfc1628 UPS-MIB. You usually want "APC".
+# Port is usually 161. Community is usually
+# "private".
+#
+# dumb /dev/tty** Old serial character device for use
+# with simple-signaling UPSes.
+#
+# pcnet ipaddr:username:passphrase
+# PowerChute Network Shutdown protocol
+# which can be used as an alternative to SNMP
+# with AP9617 family of smart slot cards.
+# ipaddr is the IP address of the UPS mgmt
+# card. username and passphrase are the
+# credentials for which the card has been
+# configured.
+#
+UPSTYPE usb
+DEVICE /dev/usb/hid/hiddev[0-9]
+
+# POLLTIME <int>
+# Interval (in seconds) at which apcupsd polls the UPS for status. This
+# setting applies both to directly-attached UPSes (UPSTYPE apcsmart, usb,
+# dumb) and networked UPSes (UPSTYPE net, snmp). Lowering this setting
+# will improve apcupsd's responsiveness to certain events at the cost of
+# higher CPU utilization. The default of 60 is appropriate for most
+# situations.
+#POLLTIME 60
+
+# LOCKFILE <path to lockfile>
+# Path for device lock file. Not used on Win32.
+LOCKFILE /var/lock
+
+# SCRIPTDIR <path to script directory>
+# Directory in which apccontrol and event scripts are located.
+SCRIPTDIR /etc/apcupsd
+
+# PWRFAILDIR <path to powerfail directory>
+# Directory in which to write the powerfail flag file. This file
+# is created when apcupsd initiates a system shutdown and is
+# checked in the OS halt scripts to determine if a killpower
+# (turning off UPS output power) is required.
+PWRFAILDIR /etc/apcupsd
+
+# NOLOGINDIR <path to nologin directory>
+# Directory in which to write the nologin file. The existence
+# of this flag file tells the OS to disallow new logins.
+NOLOGINDIR /etc
+
+
+#
+# ======== Configuration parameters used during power failures ==========
+#
+
+# The ONBATTERYDELAY is the time in seconds from when a power failure
+# is detected until we react to it with an onbattery event.
+#
+# This means that, apccontrol will be called with the powerout argument
+# immediately when a power failure is detected. However, the
+# onbattery argument is passed to apccontrol only after the
+# ONBATTERYDELAY time. If you don't want to be annoyed by short
+# powerfailures, make sure that apccontrol powerout does nothing
+# i.e. comment out the wall.
+ONBATTERYDELAY 6
+
+#
+# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
+# the first that occurs will cause the initation of a shutdown.
+#
+
+# If during a power failure, the remaining battery percentage
+# (as reported by the UPS) is below or equal to BATTERYLEVEL,
+# apcupsd will initiate a system shutdown.
+BATTERYLEVEL 5
+
+# If during a power failure, the remaining runtime in minutes
+# (as calculated internally by the UPS) is below or equal to MINUTES,
+# apcupsd, will initiate a system shutdown.
+MINUTES 3
+
+# If during a power failure, the UPS has run on batteries for TIMEOUT
+# many seconds or longer, apcupsd will initiate a system shutdown.
+# A value of 0 disables this timer.
+#
+# Note, if you have a Smart UPS, you will most likely want to disable
+# this timer by setting it to zero. That way, you UPS will continue
+# on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
+# or the remaining battery runtime drops to or below MINUTES. Of course,
+# if you are testing, setting this to 60 causes a quick system shutdown
+# if you pull the power plug.
+# If you have an older dumb UPS, you will want to set this to less than
+# the time you know you can run on batteries.
+TIMEOUT 0
+
+# Time in seconds between annoying users to signoff prior to
+# system shutdown. 0 disables.
+ANNOY 300
+
+# Initial delay after power failure before warning users to get
+# off the system.
+ANNOYDELAY 60
+
+# The condition which determines when users are prevented from
+# logging in during a power failure.
+# NOLOGON <string> [ disable | timeout | percent | minutes | always ]
+NOLOGON disable
+
+# If KILLDELAY is non-zero, apcupsd will continue running after a
+# shutdown has been requested, and after the specified time in
+# seconds attempt to kill the power. This is for use on systems
+# where apcupsd cannot regain control after a shutdown.
+# KILLDELAY <seconds> 0 disables
+KILLDELAY 0
+
+#
+# ==== Configuration statements for Network Information Server ====
+#
+
+# NETSERVER [ on | off ] on enables, off disables the network
+# information server. If netstatus is on, a network information
+# server process will be started for serving the STATUS and
+# EVENT data over the network (used by CGI programs).
+NETSERVER on
+
+# NISIP <dotted notation ip address>
+# IP address on which NIS server will listen for incoming connections.
+# This is useful if your server is multi-homed (has more than one
+# network interface and IP address). Default value is 0.0.0.0 which
+# means any incoming request will be serviced. Alternatively, you can
+# configure this setting to any specific IP address of your server and
+# NIS will listen for connections only on that interface. Use the
+# loopback address (127.0.0.1) to accept connections only from the
+# local machine.
+NISIP 0.0.0.0
+
+# NISPORT <port> default is 3551 as registered with the IANA
+# port to use for sending STATUS and EVENTS data over the network.
+# It is not used unless NETSERVER is on. If you change this port,
+# you will need to change the corresponding value in the cgi directory
+# and rebuild the cgi programs.
+NISPORT 3551
+
+# If you want the last few EVENTS to be available over the network
+# by the network information server, you must define an EVENTSFILE.
+EVENTSFILE /var/log/apcupsd.events
+
+# EVENTSFILEMAX <kilobytes>
+# By default, the size of the EVENTSFILE will be not be allowed to exceed
+# 10 kilobytes. When the file grows beyond this limit, older EVENTS will
+# be removed from the beginning of the file (first in first out). The
+# parameter EVENTSFILEMAX can be set to a different kilobyte value, or set
+# to zero to allow the EVENTSFILE to grow without limit.
+EVENTSFILEMAX 10
+
+#
+# ========== Configuration statements used if sharing =============
+# a UPS with more than one machine
+
+#
+# Remaining items are for ShareUPS (APC expansion card) ONLY
+#
+
+# UPSCLASS [ standalone | shareslave | sharemaster ]
+# Normally standalone unless you share an UPS using an APC ShareUPS
+# card.
+UPSCLASS standalone
+
+# UPSMODE [ disable | share ]
+# Normally disable unless you share an UPS using an APC ShareUPS card.
+UPSMODE disable
+
+#
+# ===== Configuration statements to control apcupsd system logging ========
+#
+
+# Time interval in seconds between writing the STATUS file; 0 disables
+STATTIME 300
+
+# Location of STATUS file (written to only if STATTIME is non-zero)
+STATFILE /var/log/apcupsd.status
+
+# LOGSTATS [ on | off ] on enables, off disables
+# Note! This generates a lot of output, so if
+# you turn this on, be sure that the
+# file defined in syslog.conf for LOG_NOTICE is a named pipe.
+# You probably do not want this on.
+LOGSTATS off
+
+# Time interval in seconds between writing the DATA records to
+# the log file. 0 disables.
+DATATIME 0
+
+# FACILITY defines the logging facility (class) for logging to syslog.
+# If not specified, it defaults to "daemon". This is useful
+# if you want to separate the data logged by apcupsd from other
+# programs.
+#FACILITY DAEMON
+
+#
+# ========== Configuration statements used in updating the UPS EPROM =========
+#
+
+#
+# These statements are used only by apctest when choosing "Set EEPROM with conf
+# file values" from the EEPROM menu. THESE STATEMENTS HAVE NO EFFECT ON APCUPSD.
+#
+
+# UPS name, max 8 characters
+#UPSNAME UPS_IDEN
+
+# Battery date - 8 characters
+#BATTDATE mm/dd/yy
+
+# Sensitivity to line voltage quality (H cause faster transfer to batteries)
+# SENSITIVITY H M L (default = H)
+#SENSITIVITY H
+
+# UPS delay after power return (seconds)
+# WAKEUP 000 060 180 300 (default = 0)
+#WAKEUP 60
+
+# UPS Grace period after request to power off (seconds)
+# SLEEP 020 180 300 600 (default = 20)
+#SLEEP 180
+
+# Low line voltage causing transfer to batteries
+# The permitted values depend on your model as defined by last letter
+# of FIRMWARE or APCMODEL. Some representative values are:
+# D 106 103 100 097
+# M 177 172 168 182
+# A 092 090 088 086
+# I 208 204 200 196 (default = 0 => not valid)
+#LOTRANSFER 208
+
+# High line voltage causing transfer to batteries
+# The permitted values depend on your model as defined by last letter
+# of FIRMWARE or APCMODEL. Some representative values are:
+# D 127 130 133 136
+# M 229 234 239 224
+# A 108 110 112 114
+# I 253 257 261 265 (default = 0 => not valid)
+#HITRANSFER 253
+
+# Battery charge needed to restore power
+# RETURNCHARGE 00 15 50 90 (default = 15)
+#RETURNCHARGE 15
+
+# Alarm delay
+# 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = never
+# BEEPSTATE 0 T L N (default = 0)
+#BEEPSTATE T
+
+# Low battery warning delay in minutes
+# LOWBATT 02 05 07 10 (default = 02)
+#LOWBATT 2
+
+# UPS Output voltage when running on batteries
+# The permitted values depend on your model as defined by last letter
+# of FIRMWARE or APCMODEL. Some representative values are:
+# D 115
+# M 208
+# A 100
+# I 230 240 220 225 (default = 0 => not valid)
+#OUTPUTVOLTS 230
+
+# Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on
+# SELFTEST 336 168 ON OFF (default = 336)
+#SELFTEST 336
diff --git a/abs/not_built/extra/apcupsd/run b/abs/not_built/extra/apcupsd/run
new file mode 100644
index 0000000..bc5c22b
--- /dev/null
+++ b/abs/not_built/extra/apcupsd/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+ stat_runit "Starting APC UPS Daemon"
+ exec /sbin/apcupsd -b -f /etc/apcupsd/apcupsd.conf
diff --git a/abs/not_built/extra/bash-completion/PKGBUILD b/abs/not_built/extra/bash-completion/PKGBUILD
new file mode 100644
index 0000000..a20fa08
--- /dev/null
+++ b/abs/not_built/extra/bash-completion/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 95183 2010-10-16 21:57:23Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=bash-completion
+pkgver=1.2
+pkgrel=2
+pkgdesc="Programmable completion for the bash shell"
+arch=('any')
+url="http://bash-completion.alioth.debian.org/"
+license=('GPL')
+depends=('bash')
+source=(http://bash-completion.alioth.debian.org/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('88c022a98a02a02293716f840eadd884')
+sha1sums=('47e6fb919ae227e74172870379b0fe999a2ae70d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fixes for archlinux
+ sed -i 's#/sbin" lsmod#/bin" lsmod#' bash_completion
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+# Doesn't work on Arch Linux and cause problems (FS#20112)
+ rm "$pkgdir/etc/bash_completion.d/service"
+}
+
diff --git a/abs/not_built/extra/beautiful-soup/PKGBUILD b/abs/not_built/extra/beautiful-soup/PKGBUILD
new file mode 100644
index 0000000..f604804
--- /dev/null
+++ b/abs/not_built/extra/beautiful-soup/PKGBUILD
@@ -0,0 +1,19 @@
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: phrakture < aaron m griffin * gmail::com >
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=beautiful-soup
+pkgver=3.1.0
+pkgrel=2
+pkgdesc="A Python HTML/XML parser designed for quick turnaround projects like screen-scraping"
+arch=('i686' 'x86_64')
+url="http://www.crummy.com/software/BeautifulSoup/index.html"
+license=('PSF')
+depends=('python2')
+source=(http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-$pkgver.tar.gz)
+
+build() {
+ cd $srcdir/BeautifulSoup-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
+md5sums=('6c0dae06f9f7e1fe8181d0d1a105cf72')
diff --git a/abs/not_built/extra/bluez-firmware/PKGBUILD b/abs/not_built/extra/bluez-firmware/PKGBUILD
new file mode 100644
index 0000000..4a3617f
--- /dev/null
+++ b/abs/not_built/extra/bluez-firmware/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: $
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Stefano Zamprogno <stefano.zamprogno@gmail.com>
+
+pkgname=bluez-firmware
+pkgver=1.2
+pkgrel=5
+pkgdesc="Firmware for Broadcom BCM203x and STLC2300 Bluetooth chips"
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+source=("http://bluez.sf.net/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('1cc3cefad872e937e05de5a0a2b390dd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --libdir=/lib
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/abs/not_built/extra/bluez-hcidump/PKGBUILD b/abs/not_built/extra/bluez-hcidump/PKGBUILD
new file mode 100644
index 0000000..ab4047c
--- /dev/null
+++ b/abs/not_built/extra/bluez-hcidump/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy carrier <geoffroy@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=bluez-hcidump
+pkgver=2.2
+pkgrel=1
+pkgdesc="Bluetooth HCI package analyzer"
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('glibc' 'bluez')
+source=(http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+md5sums=('3c298a8be67099fe227f3e4d9de539d5')
diff --git a/abs/not_built/extra/cabextract/PKGBUILD b/abs/not_built/extra/cabextract/PKGBUILD
new file mode 100644
index 0000000..4e7b2cf
--- /dev/null
+++ b/abs/not_built/extra/cabextract/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 86106 2010-07-25 21:30:58Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=cabextract
+pkgver=1.3
+pkgrel=1
+pkgdesc="A program to extract Microsoft cabinet (.CAB) files."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cabextract.org.uk/"
+depends=('glibc')
+source=(http://www.cabextract.org.uk/${pkgname}-${pkgver}.tar.gz)
+md5sums=('cb9a4a38470d2a71a0275968e7eb64d3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/ccache/PKGBUILD b/abs/not_built/extra/ccache/PKGBUILD
new file mode 100644
index 0000000..95c0788
--- /dev/null
+++ b/abs/not_built/extra/ccache/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 98352 2010-11-08 08:19:09Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ccache
+pkgver=3.1.1
+pkgrel=1
+pkgdesc="A compiler cache"
+url="http://ccache.samba.org/"
+source=(http://samba.org/ftp/${pkgname}/$pkgname-$pkgver.tar.bz2)
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('zlib')
+md5sums=('7dbd668c79d78c0b32c13214b2b35b70')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ install -Dm 755 ccache ${pkgdir}/usr/bin/ccache
+ install -Dm 644 ccache.1 ${pkgdir}/usr/share/man/man1/ccache.1
+
+ mkdir -p ${pkgdir}/usr/lib/ccache/bin
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/cc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/gcc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/g++
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/cpp
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/c++
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-cc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-gcc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-g++
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-cpp
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-c++
+}
diff --git a/abs/not_built/extra/celt-0.7/PKGBUILD b/abs/not_built/extra/celt-0.7/PKGBUILD
new file mode 100644
index 0000000..59b9e9c
--- /dev/null
+++ b/abs/not_built/extra/celt-0.7/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lauri Niskanen <ape@ape3000.com>
+
+pkgname=celt-0.7
+_realname=celt
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="Low-latency audio communication codec"
+arch=('i686' 'x86_64')
+url="http://www.celt-codec.org"
+license=('BSD')
+depends=('libogg')
+provides=('celt=$pkgver')
+conflicts=('celt')
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/celt/$_realname-$pkgver.tar.gz)
+md5sums=('c7f6b8346e132b1a48dae0eff77ea9f0')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/BSD"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/extra/community/agg/PKGBUILD b/abs/not_built/extra/community/agg/PKGBUILD
new file mode 100644
index 0000000..b0d6d40
--- /dev/null
+++ b/abs/not_built/extra/community/agg/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 49798 2009-08-16 14:04:06Z jgc $
+# Maintainer:
+
+pkgname=agg
+pkgver=2.5
+pkgrel=3
+pkgdesc="A High Quality Rendering Engine for C++"
+arch=('i686' 'x86_64')
+url="http://www.antigrain.com/"
+license=('GPL')
+depends=('gcc-libs>=4.4.1' 'sdl>=1.2.13' 'freetype2>=2.3.9')
+makedepends=('automake')
+provides=('antigrain')
+replaces=('antigrain')
+options=('!libtool' '!makeflags')
+source=(http://www.antigrain.com/${pkgname}-${pkgver}.tar.gz
+ agg-2.4-depends.patch
+ agg-2.5-pkgconfig.patch)
+md5sums=('0229a488bc47be10a2fee6cf0b2febd6'
+ '22f8e48c137d25038181c86d5e40b110'
+ '43a19a7b1564c591e56c8d09a0fd8da5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/agg-2.4-depends.patch" || return 1
+ patch -Np1 -i "${srcdir}/agg-2.5-pkgconfig.patch" || return 1
+ sh ./autogen.sh || return 1
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/community/agg/agg-2.4-depends.patch b/abs/not_built/extra/community/agg/agg-2.4-depends.patch
new file mode 100644
index 0000000..9d4f6e3
--- /dev/null
+++ b/abs/not_built/extra/community/agg/agg-2.4-depends.patch
@@ -0,0 +1,48 @@
+--- agg-2.4.orig/font_freetype/Makefile.am 2005-10-18 11:45:40.000000000 +0100
++++ agg-2.4/font_freetype/Makefile.am 2006-07-10 15:11:55.000000000 +0100
+@@ -4,8 +4,9 @@
+ agginclude_HEADERS = agg_font_freetype.h
+ lib_LTLIBRARIES = libaggfontfreetype.la
+
+-libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @FREETYPE_LIBS@
++libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@
+ libaggfontfreetype_la_SOURCES = agg_font_freetype.cpp
+ libaggfontfreetype_la_CXXFLAGS = -I$(top_srcdir)/include @FREETYPE_CFLAGS@
++libaggfontfreetype_la_LIBADD = ../src/libagg.la @FREETYPE_LIBS@
+ endif
+
+--- agg-2.4.orig/src/platform/sdl/Makefile.am 2005-10-17 23:49:35.000000000 +0100
++++ agg-2.4/src/platform/sdl/Makefile.am 2006-07-10 15:11:55.000000000 +0100
+@@ -5,6 +5,6 @@
+ libaggplatformsdl_la_LDFLAGS = -version-info @AGG_LIB_VERSION@
+ libaggplatformsdl_la_SOURCES = agg_platform_support.cpp
+ libaggplatformsdl_la_CXXFLAGS = -I$(top_srcdir)/include @SDL_CFLAGS@
+-libaggplatformsdl_la_LIBADD = @SDL_LIBS@
++libaggplatformsdl_la_LIBADD = ../../libagg.la @SDL_LIBS@
+ endif
+
+--- agg-2.5.orig/configure.in 2006-10-09 05:06:36.000000000 +0100
++++ agg-2.5/configure.in 2007-01-07 14:07:39.000000000 +0000
+@@ -122,7 +122,8 @@
+ fi
+ AM_CONDITIONAL(ENABLE_X11,[test x$no_x = x -a xno != x$enable_platform -a x$win32_host != xyes])
+ AC_SUBST(x_includes)
+-AC_SUBST(x_libraries)
++test -n "$x_libraries" && X_LDFLAGS="-L$x_libraries"
++AC_SUBST(X_LDFLAGS)
+ dnl ###############################################
+
+ dnl Settung up library version
+--- agg-2.5.orig/src/platform/X11/Makefile.am 2006-12-11 00:59:45.000000000 +0000
++++ agg-2.5/src/platform/X11/Makefile.am 2007-01-07 14:07:39.000000000 +0000
+@@ -1,8 +1,8 @@
+ if ENABLE_X11
+ lib_LTLIBRARIES = libaggplatformX11.la
+
+-libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ -L@x_libraries@
++libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @X_LDFLAGS@
+ libaggplatformX11_la_SOURCES = agg_platform_support.cpp
+ libaggplatformX11_la_CXXFLAGS = -I$(top_srcdir)/include -I@x_includes@
+-libaggplatformX11_la_LIBADD = -lX11
++libaggplatformX11_la_LIBADD = ../../libagg.la -lX11
+ endif
diff --git a/abs/not_built/extra/community/agg/agg-2.5-pkgconfig.patch b/abs/not_built/extra/community/agg/agg-2.5-pkgconfig.patch
new file mode 100644
index 0000000..a303bfb
--- /dev/null
+++ b/abs/not_built/extra/community/agg/agg-2.5-pkgconfig.patch
@@ -0,0 +1,10 @@
+--- agg-2.5/libagg.pc.in.orig 2007-01-07 13:58:28.000000000 +0000
++++ agg-2.5/libagg.pc.in 2007-01-07 14:02:40.000000000 +0000
+@@ -6,5 +6,6 @@
+ Name: libagg
+ Description: Anti Grain Geometry - A High Quality Rendering Engine for C++
+ Version: @VERSION@
+-Libs: -L${libdir} -Wl,-rpath,${exec_prefix}/lib -lagg
++Requires.private: freetype2
++Libs: -L${libdir} -lagg
+ Cflags: -I${includedir}
diff --git a/abs/not_built/extra/community/amule/PKGBUILD b/abs/not_built/extra/community/amule/PKGBUILD
new file mode 100644
index 0000000..47cc580
--- /dev/null
+++ b/abs/not_built/extra/community/amule/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 98336 2010-11-07 18:59:29Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Henrik Ronellenfitsch <searinox@web.de>
+# Contributor: Alessio Sergi <sergi.alessio {at} gmail.com>
+# Contributor: Dario 'Dax' Vilardi <dax [at] deelab [dot] org>
+
+pkgname=amule
+pkgver=10365
+pkgrel=1
+pkgdesc="An eMule-like client for ed2k p2p network"
+arch=('i686' 'x86_64')
+url="http://www.amule.org"
+license=('GPL')
+depends=('wxgtk' 'gd' 'geoip' 'libupnp')
+makedepends=('crypto++')
+source=(http://amule.sourceforge.net/tarballs/aMule-SVN-r${pkgver}.tar.bz2)
+md5sums=('fa19689a81616d066f8f7bdcddd771ac')
+
+build() {
+ cd "${srcdir}/aMule-SVN-r${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-cas \
+ --enable-wxcas \
+ --enable-amule-daemon \
+ --enable-amulecmd \
+ --enable-amule-gui \
+ --enable-alc \
+ --enable-alcc \
+ --enable-webserver \
+ --disable-debug \
+ --enable-optimize \
+ --enable-ccache \
+ --enable-geoip \
+ --enable-upnp
+
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/aMule-SVN-r${pkgver}"
+ make DESTDIR=${pkgdir}/ install || return 1
+}
diff --git a/abs/not_built/extra/community/blockcontrol/PKGBUILD b/abs/not_built/extra/community/blockcontrol/PKGBUILD
new file mode 100644
index 0000000..2507adc
--- /dev/null
+++ b/abs/not_built/extra/community/blockcontrol/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributor: Daniele Marinello <marinz at email dot it>
+
+pkgname=blockcontrol
+pkgver=1.6.9
+pkgrel=3
+pkgdesc="blockcontrol is designed to do all tasks related to IP block daemons (MoBlock or NFBlock). They check internet traffic based on large lists of IP address ranges in order to protect your privacy."
+arch=('i686' 'x86_64')
+url="http://moblock-deb.sourceforge.net/"
+license=('GPL2' 'BSD')
+depends=('moblock' 'wget')
+conflicts=('moblockcontrol')
+source=(http://downloads.sourceforge.net/moblock-deb/$pkgname-$pkgver.tar.gz \
+ blockcontrol.lib.patch)
+backup=('etc/blockcontrol/blockcontrol.conf' 'etc/blockcontrol/blocklists.list')
+
+build() {
+ cd "$startdir/src/$pkgname-$pkgver"
+ patch -Np1 -i ../blockcontrol.lib.patch || return 1
+
+ install -D -m 755 $startdir/src/$pkgname-$pkgver/blockcontrol ${pkgdir}/usr/bin/blockcontrol
+ install -D -m 755 $startdir/src/$pkgname-$pkgver/blockcontrol.main ${pkgdir}/usr/lib/blockcontrol/blockcontrol.main
+ install -D -m 644 $startdir/src/$pkgname-$pkgver/blockcontrol.defaults ${pkgdir}/usr/lib/blockcontrol/blockcontrol.defaults
+ install -D -m 644 $startdir/src/$pkgname-$pkgver/blockcontrol.lib ${pkgdir}/usr/lib/blockcontrol/blockcontrol.lib
+ install -D -m 755 $startdir/src/$pkgname-$pkgver/blockcontrol.wd ${pkgdir}/usr/bin/blockcontrol.wd
+ install -D -m 644 $startdir/src/$pkgname-$pkgver/allow.p2p ${pkgdir}/etc/blockcontrol/allow.p2p
+ install -D -m 644 $startdir/src/$pkgname-$pkgver/blockcontrol.conf ${pkgdir}/etc/blockcontrol/blockcontrol.conf
+ install -D -m 644 $startdir/src/$pkgname-$pkgver/blocklists.list ${pkgdir}/etc/blockcontrol/blocklists.list
+# install -D -m 755 $startdir/src/$pkgname-$pkgver/if-up ${pkgdir}/etc/network/if-up.d/blockcontrol
+ install -D -m 755 $startdir/src/$pkgname-$pkgver/cron.daily ${pkgdir}/etc/cron.daily/blockcontrol
+ install -D -m 755 $startdir/src/$pkgname-$pkgver/init ${pkgdir}/etc/rc.d/blockcontrol
+ install -D -m 644 $startdir/src/$pkgname-$pkgver/logrotate ${pkgdir}/etc/logrotate.d/blockcontrol
+ install -d ${pkgdir}/var/lib/blockcontrol
+ install -d ${pkgdir}/var/spool/blockcontrol
+}
+
+md5sums=('d02002745aacf6100ff9057bdc80adf3'
+ 'efcca84e52ea98cc10610830f9c2ba37')
diff --git a/abs/not_built/extra/community/blockcontrol/blockcontrol.lib.patch b/abs/not_built/extra/community/blockcontrol/blockcontrol.lib.patch
new file mode 100644
index 0000000..4be1c75
--- /dev/null
+++ b/abs/not_built/extra/community/blockcontrol/blockcontrol.lib.patch
@@ -0,0 +1,15 @@
+--- blockcontrol/blockcontrol_old.lib 2009-09-14 19:35:24.000000000 +0200
++++ blockcontrol/blockcontrol.lib 2009-11-05 20:29:50.000000000 +0100
+@@ -1344,10 +1344,10 @@
+ DAEMON_OPTS="$CUSTOM_DAEMON_OPTS"
+ elif [ "$NAME" = moblock ] ; then
+ # The options MoBlock is started with
+- DAEMON_OPTS="-$BLOCKLIST_FORMAT $BLOCKLIST $NFQUEUE_NUMBER_OPT $LOG_SYSLOG_OPT $LOG_TIMESTAMP_OPT $REJECT_OPT $ACCEPT_OPT $DAEMON_LOG"
++ DAEMON_OPTS="-$BLOCKLIST_FORMAT $BLOCKLIST $NFQUEUE_NUMBER_OPT $LOG_SYSLOG_OPT $DAEMON_LOG"
+ elif [ "$NAME" = nfblockd ] ; then
+ # The options NFBlock is started with
+- DAEMON_OPTS="-d -f $BLOCKLIST -p $PIDFILE $NFQUEUE_NUMBER_OPT $REJECT_OPT $ACCEPT_OPT $LOG_SYSLOG_OPT"
++ DAEMON_OPTS="-d -f $BLOCKLIST -p $PIDFILE $NFQUEUE_NUMBER_OPT $LOG_SYSLOG_OPT"
+ fi
+
+ # Test NICE_LEVEL setting.
diff --git a/abs/not_built/extra/community/chromium/PKGBUILD b/abs/not_built/extra/community/chromium/PKGBUILD
new file mode 100644
index 0000000..df239af
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/PKGBUILD
@@ -0,0 +1,145 @@
+# $Id: PKGBUILD 150259 2012-02-16 02:37:46Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+# Building for x86_64 requires lib32-glibc & lib32-zlib from [multilib]. These
+# libraries are linked from the NaCl toolchain, and are only needed during
+# build time.
+
+pkgname=chromium
+pkgver=17.0.963.56
+pkgrel=2
+pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
+arch=('i686' 'x86_64')
+url="http://www.chromium.org/"
+license=('BSD')
+depends=('gtk2' 'dbus-glib' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent'
+ 'libxss' 'libgcrypt' 'ttf-dejavu' 'desktop-file-utils'
+ 'hicolor-icon-theme')
+makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
+ 'elfutils')
+optdepends=('kdebase-kdialog: needed for file dialogs in KDE'
+ 'mozplugger-chromium: A Mozilla multimedia plugin for Chromium')
+# Needed for the NaCl toolchain
+[[ $CARCH == x86_64 ]] && makedepends+=('lib32-zlib')
+provides=('chromium-browser')
+conflicts=('chromium-browser')
+replaces=('firefox' 'firefox-i18n' 'mozplugger')
+install=chromium.install
+source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.bz2
+ http://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
+ chromium.desktop
+ chromium.sh
+ gcc-4.6.patch
+ nacl-cflags-remove-fstack-protector.patch
+ chromium-media-no-sse-r0.patch)
+sha256sums=('270be138d499c6c2092644af69acab8310cb05c3d06c3afe7891e488c29b020f'
+ '964fe3a5ec56f2505649aba00f900abe4205674b7fdaa16772647d347173bb01'
+ '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
+ 'c53bfc4db9dde684fbaed6a4bbecb207e3e7a0a2703233426fe076a6d3c557f3'
+ '9c5e0803904d1a0e71ab7444c92a7046a34a9518eeba7a70f2eec7abecb8bf4e'
+ '59e732880314333d6e9acf6ac99de467c98e8a92aa5c5292ae808a805e0f8d76'
+ '71751bf5913da1eec3c88c433044224c869b0abd5a29172cf239bddbb4eff761')
+
+build() {
+ cd "$srcdir/chromium-$pkgver"
+
+ # Fix build with gcc 4.6
+ # http://code.google.com/p/chromium/issues/detail?id=80071
+ patch -Np0 -i "$srcdir/gcc-4.6.patch"
+
+ # Filter -fstack-protector out of cflags for nacl_helper_bootstrap
+ # http://code.google.com/p/chromium/issues/detail?id=104569
+ patch -d native_client -Np1 -i \
+ "$srcdir/nacl-cflags-remove-fstack-protector.patch"
+
+ # Remove unconditional use of SSE3 (patch from Gentoo)
+ patch -Np0 -i "$srcdir/chromium-media-no-sse-r0.patch"
+
+ # Use Python 2
+ find . -type f -exec sed -i -r \
+ -e 's|/usr/bin/python$|&2|g' \
+ -e 's|(/usr/bin/python2)\.4$|\1|g' \
+ {} +
+ # There are still a lot of relative calls which need a workaround
+ mkdir "$srcdir/python2-path"
+ ln -s /usr/bin/python2 "$srcdir/python2-path/python"
+ export PATH="$srcdir/python2-path:$PATH"
+
+ pushd "$srcdir/nacl_sdk"
+ ./naclsdk update pepper_16
+ popd
+
+ ln -s "$srcdir/nacl_sdk/pepper_16/toolchain/linux_x86_newlib" \
+ native_client/toolchain/linux_x86_newlib
+
+ # We need to disable system_ssl until "next protocol negotiation" support is
+ # available in our nss package.
+ # (See https://bugzilla.mozilla.org/show_bug.cgi?id=547312)
+
+ # CFLAGS are passed through release_extra_cflags below
+ export -n CFLAGS CXXFLAGS
+
+ build/gyp_chromium -f make build/all.gyp --depth=. \
+ -Dno_strict_aliasing=1 \
+ -Dwerror= \
+ -Dlinux_sandbox_path=/usr/lib/chromium/chromium-sandbox \
+ -Dlinux_strip_binary=1 \
+ -Drelease_extra_cflags="$CFLAGS" \
+ -Dffmpeg_branding=Chrome \
+ -Dproprietary_codecs=1 \
+ -Duse_system_bzip2=1 \
+ -Duse_system_ffmpeg=0 \
+ -Duse_system_libevent=1 \
+ -Duse_system_libjpeg=0 \
+ -Duse_system_libpng=1 \
+ -Duse_system_libxml=0 \
+ -Duse_system_ssl=0 \
+ -Duse_system_yasm=1 \
+ -Duse_system_zlib=1 \
+ -Duse_gconf=0 \
+ $([[ $CARCH == i686 ]] && echo '-Ddisable_sse2=1')
+
+ make chrome chrome_sandbox BUILDTYPE=Release
+}
+
+package() {
+ cd "$srcdir/chromium-$pkgver"
+
+ install -D out/Release/chrome ${pkgdir}/usr/lib/chromium/chromium
+
+ install -Dm4755 -o root -g root out/Release/chrome_sandbox \
+ "$pkgdir/usr/lib/chromium/chromium-sandbox"
+
+ cp out/Release/{{chrome,resources}.pak,libffmpegsumo.so} \
+ out/Release/nacl_helper{,_bootstrap} \
+ out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_x86_*.nexe} \
+ "$pkgdir/usr/lib/chromium/"
+
+ # These links are only needed when building with system ffmpeg
+ #ln -s /usr/lib/libavcodec.so.52 ${pkgdir}/usr/lib/chromium/
+ #ln -s /usr/lib/libavformat.so.52 ${pkgdir}/usr/lib/chromium/
+ #ln -s /usr/lib/libavutil.so.50 ${pkgdir}/usr/lib/chromium/
+
+ cp -a out/Release/locales out/Release/resources "$pkgdir/usr/lib/chromium/"
+
+ find "$pkgdir/usr/lib/chromium/" -name '*.d' -type f -delete
+
+ install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
+
+ install -Dm644 "$srcdir/chromium.desktop" \
+ "$pkgdir/usr/share/applications/chromium.desktop"
+
+ for size in 16 22 24 32 48 64 128 256; do
+ install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
+ "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+ done
+
+ install -D "$srcdir/chromium.sh" "$pkgdir/usr/bin/chromium"
+
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/extra/community/chromium/__changelog b/abs/not_built/extra/community/chromium/__changelog
new file mode 100644
index 0000000..0b5b4c8
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/__changelog
@@ -0,0 +1,2 @@
+* Add replaces=('firefox' 'firefox-i18n' 'mozplugger') array
+* Add optdepends=('mozplugger-chromium: A Mozilla multimedia plugin for Chromium')
diff --git a/abs/not_built/extra/community/chromium/chromium-media-no-sse-r0.patch b/abs/not_built/extra/community/chromium/chromium-media-no-sse-r0.patch
new file mode 100644
index 0000000..07cda2d
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/chromium-media-no-sse-r0.patch
@@ -0,0 +1,17 @@
+--- media/media.gyp.orig 2012-02-02 10:03:41.000000000 +0100
++++ media/media.gyp 2012-02-02 10:04:09.000000000 +0100
+@@ -467,14 +467,6 @@
+ [ 'os_posix == 1 and OS != "mac" and OS != "android"', {
+ 'cflags': [
+ '-msse2',
+- '-msse3',
+- '-mssse3',
+- ],
+- }],
+- [ 'OS == "openbsd"', {
+- # OpenBSD's gcc (4.2.1) does not support -mssse3
+- 'cflags!': [
+- '-mssse3',
+ ],
+ }],
+ [ 'OS == "mac"', {
diff --git a/abs/not_built/extra/community/chromium/chromium.desktop b/abs/not_built/extra/community/chromium/chromium.desktop
new file mode 100644
index 0000000..18446d4
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/chromium.desktop
@@ -0,0 +1,113 @@
+[Desktop Entry]
+Version=1.0
+Name=Chromium
+# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
+# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
+GenericName=Web Browser
+GenericName[ar]=متصŮŘ­ الشبŮŘ©
+GenericName[bg]=Уеб браŃĐ·ŃŠŃ€
+GenericName[ca]=Navegador web
+GenericName[cs]=WWW prohlĂ­ĹľeÄŤ
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=ΠεĎιηγητής ÎąĎτού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gu]=વેબ બ્રાઉઝર
+GenericName[he]=דפדפן ××™× ×רנ×
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェă–ă–ă©ă‚¦ă‚¶
+GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=TÄ«mekÄĽa pÄrlĹ«ks
+GenericName[ml]=വെബ് ബ്രൌസര്‍
+GenericName[mr]=वेब ब्राऊजर
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[pl]=PrzeglÄ…darka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador da Internet
+GenericName[ro]=Navigator de Internet
+GenericName[ru]=Веб-браŃзер
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[ta]=இணŕŻŕ®Ż உலாவி
+GenericName[th]=เว็บเบราว์เซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[zh_CN]=网页浏č§ĺ™¨
+GenericName[zh_HK]=網é ç€Źč¦˝ĺ™¨
+GenericName[zh_TW]=網é ç€Źč¦˝ĺ™¨
+# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[fil]=Web Browser
+GenericName[hr]=Web preglednik
+GenericName[id]=Browser Web
+GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
+GenericName[sk]=WWW prehliadaÄŤ
+GenericName[sr]=Đнтернет прегледник
+GenericName[te]=మహాతల అన్వేషి
+GenericName[vi]=Bộ duyệt Web
+# Gnome and KDE 3 uses Comment.
+Comment=Access the Internet
+Comment[ar]=الدخŮŮ„ إلى الإنترنت
+Comment[bg]=ДоŃŃ‚ŃŠĐż Đ´Đľ интернет
+Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করŕ§ŕ¦¨
+Comment[ca]=Accedeix a Internet
+Comment[cs]=Přístup k internetu
+Comment[da]=FĂĄ adgang til internettet
+Comment[de]=Internetzugriff
+Comment[el]=ΠĎĎŚĎβαĎη ĎĎ„Îż Διαδίκτυο
+Comment[en_GB]=Access the Internet
+Comment[es]=Accede a Internet.
+Comment[et]=Pääs Internetti
+Comment[fi]=Käytä internetiä
+Comment[fil]=I-access ang Internet
+Comment[fr]=Accéder à Internet
+Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
+Comment[he]=גישה ×ל ×”××™× ×רנ×
+Comment[hi]=इंटरनेट तक पहŕĄŕ¤‚च स्थापित करें
+Comment[hr]=Pristup Internetu
+Comment[hu]=Internetelérés
+Comment[id]=Akses Internet
+Comment[it]=Accesso a Internet
+Comment[ja]=イăłă‚żăĽăŤăăă«ă‚˘ă‚Żă‚»ă‚ą
+Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನೠಪ್ರವೇಶಿಸಿ
+Comment[ko]=인터넷 연결
+Comment[lt]=Interneto prieiga
+Comment[lv]=PiekÄĽĹ«t internetam
+Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യŕµŕ´•
+Comment[mr]=इंटरनेटमध्ये प्रवेश करा
+Comment[nb]=GĂĄ til Internett
+Comment[nl]=Verbinding maken met internet
+Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତŕ­
+Comment[pl]=Skorzystaj z internetu
+Comment[pt]=Aceder Ă  Internet
+Comment[pt_BR]=Acessar a internet
+Comment[ro]=AccesaĹŁi Internetul
+Comment[ru]=ДоŃŃ‚ŃĐż в Đнтернет
+Comment[sk]=PrĂ­stup do siete Internet
+Comment[sl]=Dostop do interneta
+Comment[sr]=ПриŃŃ‚Ńпите ĐнтернетŃ
+Comment[sv]=GĂĄ ut pĂĄ Internet
+Comment[ta]=இணŕŻŕ®Żŕ®¤ŕŻŤŕ®¤ŕŻ அணŕŻŕ®•ŕŻŕ®¤ŕ®˛ŕŻŤ
+Comment[te]=ఇంటర్నెట్‌నౠఆక్సెస్ చెయ్యండి
+Comment[th]=เข้าถึงอินเทอร์เน็ต
+Comment[tr]=Ä°nternet'e eriĹźin
+Comment[uk]=ДоŃŃ‚ŃĐż Đ´Đľ ІнтернетŃ
+Comment[vi]=Truy cáş­p Internet
+Comment[zh_CN]=访问互č”网
+Comment[zh_HK]=連線ĺ°ç¶˛éš›ç¶˛č·Ż
+Comment[zh_TW]=連線ĺ°ç¶˛éš›ç¶˛č·Ż
+Exec=chromium %U
+Terminal=false
+Icon=chromium
+Type=Application
+Categories=GTK;Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
diff --git a/abs/not_built/extra/community/chromium/chromium.install b/abs/not_built/extra/community/chromium/chromium.install
new file mode 100644
index 0000000..d43ea7c
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/chromium.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/abs/not_built/extra/community/chromium/chromium.sh b/abs/not_built/extra/community/chromium/chromium.sh
new file mode 100755
index 0000000..e1c3388
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/chromium.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+export CHROME_WRAPPER=/usr/lib/chromium/chromium
+export CHROME_DESKTOP=chromium.desktop
+exec /usr/lib/chromium/chromium "$@"
diff --git a/abs/not_built/extra/community/chromium/gcc-4.6.patch b/abs/not_built/extra/community/chromium/gcc-4.6.patch
new file mode 100644
index 0000000..b5e61dc
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/gcc-4.6.patch
@@ -0,0 +1,99 @@
+diff -u -r chrome/browser/search_engines/template_url_prepopulate_data.h chrome/browser/search_engines/template_url_prepopulate_data.h
+--- chrome/browser/search_engines/template_url_prepopulate_data.h 2011-04-13 13:23:41.000000000 +0400
++++ chrome/browser/search_engines/template_url_prepopulate_data.h 2011-04-20 19:32:58.000000000 +0400
+@@ -7,6 +7,7 @@
+ #pragma once
+
+ #include <vector>
++#include <cstddef>
+
+ class GURL;
+ class PrefService;
+diff -u -r gpu/command_buffer/common/types.h gpu/command_buffer/common/types.h
+--- gpu/command_buffer/common/types.h 2011-04-13 13:22:57.000000000 +0400
++++ gpu/command_buffer/common/types.h 2011-04-20 19:32:58.000000000 +0400
+@@ -11,6 +11,7 @@
+ #include <stdint.h>
+ #endif
+ #include <string>
++#include <cstddef>
+
+ typedef signed char schar;
+ typedef signed char int8;
+diff -u -r ppapi/cpp/paint_aggregator.h ppapi/cpp/paint_aggregator.h
+--- ppapi/cpp/paint_aggregator.h 2011-04-13 13:22:58.000000000 +0400
++++ ppapi/cpp/paint_aggregator.h 2011-04-20 20:11:44.000000000 +0400
+@@ -9,6 +9,7 @@
+
+ #include "ppapi/cpp/point.h"
+ #include "ppapi/cpp/rect.h"
++#include <cstddef>
+
+ namespace pp {
+
+diff -u -r third_party/ots/src/os2.cc third_party/ots/src/os2.cc
+--- third_party/ots/src/os2.cc 2011-04-13 13:24:06.000000000 +0400
++++ third_party/ots/src/os2.cc 2011-04-20 19:45:44.000000000 +0400
+@@ -5,6 +5,7 @@
+ #include "os2.h"
+
+ #include "head.h"
++#include <cstddef>
+
+ // OS/2 - OS/2 and Windows Metrics
+ // http://www.microsoft.com/opentype/otspec/os2.htm
+diff -u -r third_party/tcmalloc/chromium/src/base/stl_allocator.h third_party/tcmalloc/chromium/src/base/stl_allocator.h
+--- third_party/tcmalloc/chromium/src/base/stl_allocator.h 2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/base/stl_allocator.h 2011-04-20 19:32:58.000000000 +0400
+@@ -38,6 +38,7 @@
+ #include <config.h>
+
+ #include <limits>
++#include <cstddef>
+
+ #include "base/basictypes.h"
+ #include "base/logging.h"
+diff -u -r third_party/tcmalloc/chromium/src/base/vdso_support.h third_party/tcmalloc/chromium/src/base/vdso_support.h
+--- third_party/tcmalloc/chromium/src/base/vdso_support.h 2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/base/vdso_support.h 2011-04-20 19:32:58.000000000 +0400
+@@ -37,6 +37,7 @@
+
+ #define HAVE_VDSO_SUPPORT 1
+
++#include <cstddef>
+ #include <stdlib.h> // for NULL
+ #include <link.h> // for ElfW
+ #include "base/basictypes.h"
+diff -u -r third_party/tcmalloc/chromium/src/common.cc third_party/tcmalloc/chromium/src/common.cc
+--- third_party/tcmalloc/chromium/src/common.cc 2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/common.cc 2011-04-20 19:32:58.000000000 +0400
+@@ -34,6 +34,7 @@
+ #include "config.h"
+ #include "common.h"
+ #include "system-alloc.h"
++#include <cstddef>
+
+ namespace tcmalloc {
+
+diff -u -r third_party/tcmalloc/chromium/src/symbolize.h third_party/tcmalloc/chromium/src/symbolize.h
+--- third_party/tcmalloc/chromium/src/symbolize.h 2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/symbolize.h 2011-04-20 19:32:58.000000000 +0400
+@@ -38,6 +38,7 @@
+ #include <stdint.h> // for uintptr_t
+ #endif
+ #include <map>
++#include <cstddef>
+
+ using std::map;
+
+diff -u -r ui/gfx/codec/jpeg_codec.h ui/gfx/codec/jpeg_codec.h
+--- ui/gfx/codec/jpeg_codec.h 2011-04-13 13:23:45.000000000 +0400
++++ ui/gfx/codec/jpeg_codec.h 2011-04-20 19:32:58.000000000 +0400
+@@ -7,6 +7,7 @@
+ #pragma once
+
+ #include <vector>
++#include <cstddef>
+
+ class SkBitmap;
+
diff --git a/abs/not_built/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch b/abs/not_built/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch
new file mode 100644
index 0000000..0e4f7cf
--- /dev/null
+++ b/abs/not_built/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch
@@ -0,0 +1,17 @@
+Index: src/trusted/service_runtime/linux/nacl_bootstrap.gyp
+diff --git a/src/trusted/service_runtime/linux/nacl_bootstrap.gyp b/src/trusted/service_runtime/linux/nacl_bootstrap.gyp
+index 66d95ca4dc98653219c965b899dbd5ad35d2960c..083e3fdd24ff4562d2037f8d17a06540e05357b8 100644
+--- a/src/trusted/service_runtime/linux/nacl_bootstrap.gyp
++++ b/src/trusted/service_runtime/linux/nacl_bootstrap.gyp
+@@ -84,6 +84,11 @@
+ '-fasan',
+ '-faddress-sanitizer',
+ '-w',
++ # We filter these out because release_extra_cflags or another
++ # such thing might be adding them in, and those options wind up
++ # coming after the -fno-stack-protector we added above.
++ '-fstack-protector',
++ '-fstack-protector-all',
+ ],
+ 'conditions': [
+ ['clang==1', {
diff --git a/abs/not_built/extra/community/chrpath/ChangeLog b/abs/not_built/extra/community/chrpath/ChangeLog
new file mode 100644
index 0000000..dabc6f9
--- /dev/null
+++ b/abs/not_built/extra/community/chrpath/ChangeLog
@@ -0,0 +1,10 @@
+2009-05-21 Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+ * 0.13-2 :
+ Replaced in my '# Contributor:' line by '# Maintainer:'
+
+
+2009-03-19 Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+ * 0.13-1 :
+ Initial release.
diff --git a/abs/not_built/extra/community/chrpath/PKGBUILD b/abs/not_built/extra/community/chrpath/PKGBUILD
new file mode 100644
index 0000000..2fefddf
--- /dev/null
+++ b/abs/not_built/extra/community/chrpath/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=chrpath
+pkgver=0.13
+pkgrel=2
+pkgdesc="Change or delete the rpath or runpath in ELF files"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/chrpath"
+license=('GPL2')
+depends=('glibc')
+source=(http://ftp.debian.org/debian/pool/main/c/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz)
+md5sums=('b73072a8fbba277558c50364b65bb407')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir docdir=/usr/share/doc/chrpath install
+}
diff --git a/abs/not_built/extra/community/cksfv/PKGBUILD b/abs/not_built/extra/community/cksfv/PKGBUILD
new file mode 100644
index 0000000..da4ba00
--- /dev/null
+++ b/abs/not_built/extra/community/cksfv/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Wijnand Modderman <wijanand+aur@archlinux.nl>
+
+pkgname=cksfv
+pkgver=1.3.14
+pkgrel=1
+pkgdesc="SFV (Simple File Verification) Checker"
+arch=('i686' 'x86_64')
+url="http://zakalwe.virtuaalipalvelin.net/~shd/foss/cksfv/"
+license=('GPL')
+depends=('glibc')
+source=(http://zakalwe.fi/~shd/foss/cksfv/files/$pkgname-$pkgver.tar.gz)
+md5sums=('2e15289753ea0b90b6ea86993f93b383')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --package-prefix=$startdir/pkg
+ make || return 1
+ make install
+ chmod 644 $startdir/pkg/usr/share/man/man1/$pkgname.1
+}
diff --git a/abs/not_built/extra/community/codecs/PKGBUILD b/abs/not_built/extra/community/codecs/PKGBUILD
new file mode 100644
index 0000000..416ff37
--- /dev/null
+++ b/abs/not_built/extra/community/codecs/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=codecs
+pkgver=20100303
+pkgrel=4
+pkgdesc="Non-linux native codec pack."
+arch=('i686')
+url="http://www.mplayerhq.hu/design7/dload.html"
+license=('unknown')
+depends=('libstdc++5')
+conflicts=('codecs-extra')
+replaces=('codecs-extra')
+options=('!strip')
+source=(http://www.mplayerhq.hu/MPlayer/releases/codecs/all-$pkgver.tar.bz2)
+md5sums=('4a7eb1a706f4ed9950bf6dd7f063ef68')
+
+build() {
+ install -d $pkgdir/usr/lib/codecs
+ ln -s codecs ${pkgdir}/usr/lib/win32
+ install -m644 $srcdir/all-$pkgver/* $pkgdir/usr/lib/codecs
+}
+
diff --git a/abs/not_built/extra/community/curlftpfs/PKGBUILD b/abs/not_built/extra/community/curlftpfs/PKGBUILD
new file mode 100644
index 0000000..242e28f
--- /dev/null
+++ b/abs/not_built/extra/community/curlftpfs/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: Philip Nilsson <leffeman@gmail.com>
+
+pkgname=curlftpfs
+pkgver=0.9.2
+pkgrel=4
+pkgdesc="A filesystem for acessing FTP hosts based on FUSE and libcurl."
+url="http://curlftpfs.sourceforge.net/"
+license=('GPL')
+depends=('curl>=7.15.4' 'fuse' 'glib2')
+makedepends=('pkgconfig>=0.9.0')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/sourceforge/curlftpfs/$pkgname-$pkgver.tar.gz
+ ioerror.patch)
+md5sums=('b452123f755114cd4461d56c648d9f12'
+ '7a8db686293463ba3148c7032871c883')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < "$srcdir/ioerror.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/abs/not_built/extra/community/curlftpfs/ioerror.patch b/abs/not_built/extra/community/curlftpfs/ioerror.patch
new file mode 100644
index 0000000..6ca1afb
--- /dev/null
+++ b/abs/not_built/extra/community/curlftpfs/ioerror.patch
@@ -0,0 +1,11 @@
+--- curlftpfs-0.9.2.orig/ftpfs.c 2008-04-30 03:05:47.000000000 +0400
++++ curlftpfs-0.9.2.orig/ftpfs.c 2011-01-20 20:33:38.000000000 +0300
+@@ -503,7 +503,7 @@ static void *ftpfs_write_thread(void *da
+
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1);
+- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1);
++ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, (curl_off_t)-1);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1);
diff --git a/abs/not_built/extra/community/cwiid-git/PKGBUILD b/abs/not_built/extra/community/cwiid-git/PKGBUILD
new file mode 100644
index 0000000..2a88d26
--- /dev/null
+++ b/abs/not_built/extra/community/cwiid-git/PKGBUILD
@@ -0,0 +1,67 @@
+#Contributor:Andrea Tarocchi <valdar@email.it>
+pkgname=cwiid-git
+#pkgver=`date +%Y%m%d`
+pkgver=20111102
+pkgrel=1
+pkgdesc="Cwiid-git is the bleeding edge version of a wiimote's driver and utility tools"
+arch=('i686' 'x86_64')
+url="http://github.com/abstrakraft/cwiid"
+license=('GPL')
+
+depends=('bluez>=4' 'gtk2' 'python2')
+makedepends=('git' 'make' 'automake' 'autoconf')
+replaces=('cwiid' 'cwiid-svn')
+provides=('cwiid' 'cwiid-git')
+install=('cwiid.install')
+source=()
+
+_gitroot=git://github.com/abstrakraft/cwiid.git
+_gitname=cwiid
+_builddir=$srcdir/$_gitname-build
+
+build() {
+
+ export LDFLAGS=""
+
+ cd $srcdir/
+ msg "Connecting to github.com GIT server...."
+ if [ -d $srcdir/$_gitname ] ; then
+ pushd $_gitname && git pull origin && popd
+ msg "The local files are updated."
+ else
+ git clone $_gitroot
+ fi
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+ rm -rf $_gitname-build
+ git clone $_gitname $_gitname-build
+
+ cd $_builddir
+
+ aclocal
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --with-python=python2 --disable-ldconfig
+
+ make || return 1
+}
+
+package() {
+ cd ${_builddir}
+ make DESTDIR="${pkgdir}" install || return 1
+
+# aclocal
+# autoreconf
+
+# ./configure --disable-ldconfig --prefix=/usr --sysconfdir=/etc --with-cwiid-plugins-dir=/lib/cwiid/plugins
+# make LDFLAGS=-L../libcwiid || return 1
+
+# install -d $startdir/pkg/usr/bin
+# install -d $startdir/pkg/etc
+# install -d $startdir/pkg/usr/lib
+# install -d $startdir/pkg/usr/include
+
+# make install LDFLAGS=-L../libcwiid prefix=$startdir/pkg/usr sysconfdir=$startdir/pkg/etc install
+
+# install -D -m644 ./wminput/README $pkgdir/usr/share/doc/cwiid/wminput
+}
+md5sums=()
diff --git a/abs/not_built/extra/community/cwiid-git/cwiid.install b/abs/not_built/extra/community/cwiid-git/cwiid.install
new file mode 100644
index 0000000..5dc5faf
--- /dev/null
+++ b/abs/not_built/extra/community/cwiid-git/cwiid.install
@@ -0,0 +1,16 @@
+# arg 1: the new package version
+post_install() {
+echo -e "Note:"
+echo -e "\033[1;31m==> In order to use wminput you have to load the uinput kernel module:\033[0m"
+echo -e "\033[1;31m==> modprobe uinput (as root)\033[0m"
+echo -e "\033[1;31m==> and you have to assign correct right acces to /dev/uinput\033[0m"
+echo -e "\033[1;31m==> PLEAS READ THE DOC FILE /usr/share/doc/cwiid/wminput\033[0m"
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+op=$1
+shift
+$op $* \ No newline at end of file
diff --git a/abs/not_built/extra/community/deluge/PKGBUILD b/abs/not_built/extra/community/deluge/PKGBUILD
new file mode 100644
index 0000000..3d36405
--- /dev/null
+++ b/abs/not_built/extra/community/deluge/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 97661 2010-10-31 22:31:52Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=deluge
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="A bittorrent client written with python and pygtk"
+arch=('any')
+url="http://deluge-torrent.org/"
+license=('GPL3')
+depends=('pyxdg' 'python2-distribute' 'libtorrent-rasterbar>=0.15.0' 'twisted' 'pyopenssl' 'xdg-utils' 'python-chardet')
+makedepends=( 'intltool' 'pygtk' 'librsvg' 'python-mako')
+optdepends=('python-notify: libnotify notifications'
+ 'pygtk: needed for gtk ui'
+ 'librsvg: needed for gtk ui'
+ 'python-mako: needed for web ui')
+source=(http://download.deluge-torrent.org/source/${pkgname}-${pkgver}.tar.bz2 deluged deluged.conf.d deluge-web)
+backup=(etc/conf.d/deluged)
+install=deluge.install
+md5sums=('496a9cfaf01e6cf7ab141498acf2d1f1'
+ '7d5790eeb14cd0b47d1bb3e0a19c9935'
+ '332d23fe0d21ce92b494efd73322856c'
+ '6c913ec7322eaa60494ac9d53103005f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
+
+ install -d -m755 "${pkgdir}"/srv/deluge
+ install -D -m644 deluge/data/pixmaps/deluge.svg "${pkgdir}"/usr/share/pixmaps/deluge.svg
+ install -D -m755 "${srcdir}"/deluged "${pkgdir}"/etc/rc.d/deluged
+ install -D -m755 "${srcdir}"/deluge-web "${pkgdir}"/etc/rc.d/deluge-web
+ install -D -m644 "${srcdir}"/deluged.conf.d "${pkgdir}"/etc/conf.d/deluged
+}
diff --git a/abs/not_built/extra/community/deluge/__changelog b/abs/not_built/extra/community/deluge/__changelog
new file mode 100644
index 0000000..c5602d9
--- /dev/null
+++ b/abs/not_built/extra/community/deluge/__changelog
@@ -0,0 +1 @@
+change 'setuptools' dep to 'python2-distribute'
diff --git a/abs/not_built/extra/community/deluge/deluge-web b/abs/not_built/extra/community/deluge/deluge-web
new file mode 100644
index 0000000..587496f
--- /dev/null
+++ b/abs/not_built/extra/community/deluge/deluge-web
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/deluged
+
+[[ -f /var/run/deluge-web.pid ]] && PID=$(cat /var/run/deluge-web.pid)
+[[ -d /proc/$PID ]] || PID=
+
+case "$1" in
+ start)
+ stat_busy "Starting Deluge WebUI"
+ [[ -z $PID ]] && su -l -s /bin/sh -c "/usr/bin/deluge-web -f >/dev/null" $DELUGE_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ sleep 1
+ echo $(pgrep -u $DELUGE_USER deluge-web) > /var/run/deluge-web.pid
+ add_daemon deluge-web
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Deluge WebUI"
+ [[ ! -z $PID ]] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/deluge-web.pid
+ rm_daemon deluge-web
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/extra/community/deluge/deluge.install b/abs/not_built/extra/community/deluge/deluge.install
new file mode 100644
index 0000000..9377a63
--- /dev/null
+++ b/abs/not_built/extra/community/deluge/deluge.install
@@ -0,0 +1,29 @@
+post_install() {
+ getent group deluge >/dev/null 2>&1 || usr/sbin/groupadd -g 125 deluge
+ if getent passwd deluge > /dev/null 2>&1; then
+ usr/sbin/usermod -c 'Deluge user' -d /srv/deluge -s /bin/false deluge > /dev/null 2>&1
+ else
+ usr/sbin/useradd -c 'Deluge user' -u 125 -g deluge -d /srv/deluge -s /bin/false deluge
+ fi
+ usr/bin/passwd -l deluge &>/dev/null
+
+ chown deluge.deluge srv/deluge
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+
+cat << _EOF
+>>> Deluge's daemon is running default with the "deluge" user. The default download directory is /srv/deluge/.
+ You can change the user by editing /etc/conf.d/deluged
+_EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ getent passwd deluge >/dev/null 2>&1 && userdel deluge
+ getent group deluge >/dev/null 2>&1 && groupdel deluge
+
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
diff --git a/abs/not_built/extra/community/deluge/deluged b/abs/not_built/extra/community/deluge/deluged
new file mode 100644
index 0000000..096d36a
--- /dev/null
+++ b/abs/not_built/extra/community/deluge/deluged
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/deluged
+
+[[ -f /var/run/deluged.pid ]] && PID=$(cat /var/run/deluged.pid)
+[[ -d /proc/$PID ]] || PID=
+
+case "$1" in
+ start)
+ stat_busy "Starting Deluge Daemon"
+ [[ -z $PID ]] && su -l -s /bin/sh -c "/usr/bin/deluged >/dev/null" $DELUGE_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ sleep 1
+ echo $(pgrep -u $DELUGE_USER deluged) > /var/run/deluged.pid
+ add_daemon deluged
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Deluge Daemon"
+ [[ ! -z $PID ]] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/deluged.pid
+ rm_daemon deluged
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/abs/not_built/extra/community/deluge/deluged.conf.d b/abs/not_built/extra/community/deluge/deluged.conf.d
new file mode 100644
index 0000000..7f4e873
--- /dev/null
+++ b/abs/not_built/extra/community/deluge/deluged.conf.d
@@ -0,0 +1 @@
+DELUGE_USER="deluge"
diff --git a/abs/not_built/extra/community/djmount/PKGBUILD b/abs/not_built/extra/community/djmount/PKGBUILD
new file mode 100644
index 0000000..a3648dc
--- /dev/null
+++ b/abs/not_built/extra/community/djmount/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Michele Schäuble <mschaeuble@swissonline.ch>
+
+pkgname=djmount
+pkgver=0.71
+pkgrel=1
+pkgdesc="A UPnP AV client that mounts media server contents as a filesystem."
+arch=('i686')
+url="http://djmount.sourceforge.net/"
+license=('GPL')
+depends=('fuse')
+source=(http://voxel.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
+ djmount.rcd djmount.confd)
+md5sums=('c922753e706c194bf82a8b6ca77e6a9a' \
+ 'f473b5150df385447f2f58049bfb6199' \
+ '21de4c947c17e8558f1007a20757f254')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+
+ install -D -m755 $startdir/src/djmount.rcd $startdir/pkg/etc/rc.d/djmount
+ install -D -m644 $startdir/src/djmount.confd $startdir/pkg/etc/conf.d/djmount
+}
diff --git a/abs/not_built/extra/community/djmount/djmount.confd b/abs/not_built/extra/community/djmount/djmount.confd
new file mode 100644
index 0000000..079100e
--- /dev/null
+++ b/abs/not_built/extra/community/djmount/djmount.confd
@@ -0,0 +1,2 @@
+OPTIONS="-o ro,allow_other"
+MOUNTPOINT="/media/upnp"
diff --git a/abs/not_built/extra/community/djmount/djmount.rcd b/abs/not_built/extra/community/djmount/djmount.rcd
new file mode 100755
index 0000000..84899dd
--- /dev/null
+++ b/abs/not_built/extra/community/djmount/djmount.rcd
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+ . /etc/rc.conf
+ . /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/djmount ] && . /etc/conf.d/djmount
+
+ case "$1" in
+
+ start)
+ stat_busy "Starting djmount"
+ /usr/bin/djmount $OPTIONS $MOUNTPOINT &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon djmount
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping djmount"
+ fusermount -u $MOUNTPOINT
+ kill -9 `pidof /usr/bin/djmount` &>/dev/null
+ rm_daemon djmount
+ stat_done
+ ;;
+
+ restart)
+ stat_busy "Restarting djmount ..."
+ $0 stop
+ $0 start
+ stat_done
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ esac
diff --git a/abs/not_built/extra/community/fluxconf/PKGBUILD b/abs/not_built/extra/community/fluxconf/PKGBUILD
new file mode 100644
index 0000000..9d9220f
--- /dev/null
+++ b/abs/not_built/extra/community/fluxconf/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=fluxconf
+pkgver=0.9.9
+pkgrel=1
+pkgdesc="Configuration utility for the Fluxbox windowmanager"
+arch=(i686 x86_64)
+depends=('gtk2')
+source=(http://devaux.fabien.free.fr/flux/$pkgname-$pkgver.tar.gz)
+url="http://devaux.fabien.free.fr/flux/"
+md5sums=('ac37b12410daa06128f8eb29163a741d')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ /usr/bin/make || return 1
+ /usr/bin/make prefix=$startdir/pkg/usr install
+ cd $startdir/pkg/usr/bin
+ /bin/ln -sf $pkgname fluxbare
+ /bin/ln -sf $pkgname fluxkeys
+ /bin/ln -sf $pkgname fluxmenu
+}
diff --git a/abs/not_built/extra/community/fuzemux/PKGBUILD b/abs/not_built/extra/community/fuzemux/PKGBUILD
new file mode 100644
index 0000000..aa542a5
--- /dev/null
+++ b/abs/not_built/extra/community/fuzemux/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Michael Hanson <hansonorders@verizon.net>
+# Maintainer: Michael Hanson <hansonorders@verizon.net>
+pkgname=fuzemux
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="A tool to remux AVI video files for the San Disk Sansa Fuze portable media player"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/fuzemux"
+license=('cc-by-sa-3.0')
+source=("http://${pkgname}.googlecode.com/files/${pkgname}-${pkgver}-fixed.tar.gz")
+provides=('fuzemux')
+replaces=('fuzemux-svn')
+install=fuzemux.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir}/ install
+}
+md5sums=('6c7323e9b98620b39644e4d652b3f8ad')
diff --git a/abs/not_built/extra/community/fuzemux/fuzemux.install b/abs/not_built/extra/community/fuzemux/fuzemux.install
new file mode 100644
index 0000000..877ec1b
--- /dev/null
+++ b/abs/not_built/extra/community/fuzemux/fuzemux.install
@@ -0,0 +1,5 @@
+post_install() {
+ echo ">>>"
+ echo ">>> A user job script is supplied at /usr/LH/bin/myth2fuze"
+ echo ">>>"
+}
diff --git a/abs/not_built/extra/community/gnash/PKGBUILD b/abs/not_built/extra/community/gnash/PKGBUILD
new file mode 100644
index 0000000..daed440
--- /dev/null
+++ b/abs/not_built/extra/community/gnash/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 82896 2010-06-18 18:30:20Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgbase=gnash
+pkgname=(gnash-common gnash-gtk)
+pkgver=0.8.8
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gnash/"
+license=(GPL3)
+makedepends=(curl giflib boost-libs libldap sdl agg libjpeg libpng libtool
+ speex fontconfig libva ffmpeg libxinerama
+ gstreamer0.10-base gstreamer0.10-ffmpeg
+ gtk2 libldap
+ pkgconfig boost)
+options=(!libtool !emptydirs)
+source=(http://ftp.gnu.org/gnu/gnash/${pkgver}/gnash-${pkgver}.tar.bz2)
+md5sums=('ce57f66e222f7eb1adf7f7b4a1274612')
+
+build() {
+ cd "$srcdir/gnash-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-plugins-install=system \
+ --with-npapi-plugindir=/usr/lib/mozilla/plugins \
+ --enable-gui=sdl,gtk \
+ --enable-renderer=agg \
+ --enable-media=gst,ffmpeg \
+ --enable-hwaccel=vaapi
+
+ make
+}
+
+package_gnash-common() {
+ pkgdesc="A GNU Flash movie player"
+ depends=(curl giflib boost-libs libldap ffmpeg sdl agg libjpeg libpng
+ speex fontconfig libva libxinerama
+ gstreamer0.10-base gstreamer0.10-ffmpeg)
+ backup=(etc/gnashrc etc/gnashpluginrc)
+
+ cd "$srcdir/gnash-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ mv "$pkgdir/usr/bin/gtk-gnash" "$srcdir"
+}
+
+package_gnash-gtk() {
+ pkgdesc="A GNU Flash movie player"
+ depends=("gnash-common=$pkgver" gtk2 libldap)
+
+ cd "$srcdir/gnash-$pkgver"
+
+ make DESTDIR="$pkgdir" install-plugin
+
+ install -D "$srcdir/gtk-gnash" "$pkgdir/usr/bin/gtk-gnash"
+}
diff --git a/abs/not_built/extra/community/gpac/PKGBUILD b/abs/not_built/extra/community/gpac/PKGBUILD
new file mode 100644
index 0000000..69717e2
--- /dev/null
+++ b/abs/not_built/extra/community/gpac/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: niQo
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gpac
+pkgver=0.4.5
+pkgrel=7
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+arch=('i686' 'x86_64')
+url="http://gpac.sourceforge.net"
+depends=('libxml2' 'wxgtk' 'alsa-lib' 'sdl' 'js' 'libmad' \
+ 'faad2' 'xvidcore' 'ffmpeg' 'freeglut')
+license=('LGPL')
+options=('!makeflags') # Multiple build jobs aren't handled correctly
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ libpng14-infopp-null.patch)
+md5sums=('755e8c438a48ebdb13525dd491f5b0d1'
+ '14d6483c9eb84434aea68596f243e0ca')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ chmod +x configure
+ sed -i 's|--warn-common||' configure
+ sed -i 's#osmozilla##g' applications/Makefile
+ sed -i 's#"$(prefix)#"$(DESTDIR)$(prefix)#' applications/osmo4_wx/Makefile
+ sed -i 's#ldconfig || true##g' Makefile
+
+ #FS#14506
+ sed -i 's#lib64#lib#g' configure
+ patch -Np1 -i ${srcdir}/libpng14-infopp-null.patch
+
+ # Was getting "symbol lookup error: /usr/lib/gpac/gm_x11_out.so: undefined
+ # symbol: XvQueryExtension" with our LDFLAGS :\
+ unset LDFLAGS
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --use-js=no
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ make DESTDIR=${pkgdir} install install-lib
+}
diff --git a/abs/not_built/extra/community/gpac/libpng14-infopp-null.patch b/abs/not_built/extra/community/gpac/libpng14-infopp-null.patch
new file mode 100644
index 0000000..b024565
--- /dev/null
+++ b/abs/not_built/extra/community/gpac/libpng14-infopp-null.patch
@@ -0,0 +1,12 @@
+diff -upr gpac.orig/src/media_tools/img.c gpac/src/media_tools/img.c
+--- gpac.orig/src/media_tools/img.c 2010-01-24 19:03:28.000000000 +0200
++++ gpac/src/media_tools/img.c 2010-01-24 19:04:07.000000000 +0200
+@@ -551,7 +551,7 @@ GF_Err gf_img_png_enc(char *data, u32 wi
+ /* Allocate/initialize the image information data. REQUIRED */
+ info_ptr = png_create_info_struct(png_ptr);
+ if (info_ptr == NULL) {
+- png_destroy_write_struct(&png_ptr, png_infopp_NULL);
++ png_destroy_write_struct(&png_ptr, NULL);
+ return GF_IO_ERR;
+ }
+
diff --git a/abs/not_built/extra/community/gtkglext/PKGBUILD b/abs/not_built/extra/community/gtkglext/PKGBUILD
new file mode 100644
index 0000000..a310af6
--- /dev/null
+++ b/abs/not_built/extra/community/gtkglext/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 9958 2008-08-21 02:56:50Z eric $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gtkglext
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="opengl extensions for gtk2"
+arch=('i686' 'x86_64')
+url="http://gtkglext.sourceforge.net/"
+depends=('gtk2' 'pango')
+makedepends=('gcc>=4.0.3')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/gtkglext/$pkgname-$pkgver.tar.bz2") # $pkgname-$pkgver-pangox.patch)
+md5sums=('ed7ba24ce06a8630c07f2d0ee5f04ab4')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ # fix "undefined reference to `pango_x_font*" trouble
+ #cat $startdir/src/$pkgname-$pkgver-pangox.patch | patch -p1 || return 1
+ autoconf --force
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+}
diff --git a/abs/not_built/extra/community/gtkglext/gtkglext-1.0.6-pangox.patch b/abs/not_built/extra/community/gtkglext/gtkglext-1.0.6-pangox.patch
new file mode 100644
index 0000000..8cd589e
--- /dev/null
+++ b/abs/not_built/extra/community/gtkglext/gtkglext-1.0.6-pangox.patch
@@ -0,0 +1,30 @@
+--- gtkglext-1.0.6/configure.in 2005-09-10 16:45:06.000000000 +0200
++++ gtkglext-1.0.6.az/configure.in 2005-09-10 16:46:01.000000000 +0200
+@@ -59,6 +59,10 @@
+ m4_define([pango_pkg], [pango])
+ m4_define([pango_required_version], [1.0.0])
+
++# Pangox
++m4_define([pangox_pkg], [pangox])
++m4_define([pangox_required_version], [1.0.0])
++
+ # PangoFT2
+ m4_define([pangoft2_pkg], [pangoft2])
+ m4_define([pangoft2_required_version], [1.0.0])
+@@ -345,6 +349,7 @@
+ gtk_pkg >= gtk_required_version \
+ gdk_pkg >= gdk_required_version \
+ pango_pkg >= pango_required_version \
++pangox_pkg >= pango_required_version \
+ gmodule_pkg >= gmodule_required_version \
+ ])
+
+@@ -789,7 +794,7 @@
+ # CFLAGS and LIBS
+ ##################################################
+
+-GDKGLEXT_PACKAGES="gdk_pkg pango_pkg gmodule_pkg"
++GDKGLEXT_PACKAGES="gdk_pkg pango_pkg pangox_pkg gmodule_pkg"
+ GDKGLEXT_EXTRA_CFLAGS="$GL_CFLAGS $GDKGLEXT_WIN_CFLAGS"
+ GDKGLEXT_EXTRA_LIBS="$GL_LIBS $GDKGLEXT_WIN_LIBS"
+ GDKGLEXT_DEP_CFLAGS="$GDKGLEXT_EXTRA_CFLAGS `$PKG_CONFIG --cflags $GDKGLEXT_PACKAGES`"
diff --git a/abs/not_built/extra/community/ircii/PKGBUILD b/abs/not_built/extra/community/ircii/PKGBUILD
new file mode 100644
index 0000000..2eb8ad6
--- /dev/null
+++ b/abs/not_built/extra/community/ircii/PKGBUILD
@@ -0,0 +1,16 @@
+# Contributor: Mateusz Herych <heniekk@gmail.com>
+pkgname=ircii
+pkgver=20060725
+pkgrel=1
+pkgdesc="IRC Client"
+arch=('i686')
+url="http://www.eterna.com.au/ircii/"
+license=('BSD')
+source=(ftp://ircii.warped.com/pub/ircII/ircii-$pkgver.tar.bz2)
+md5sums=('280ae54367627591c1c43c765eb9d59b')
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+}
diff --git a/abs/not_built/extra/community/js/PKGBUILD b/abs/not_built/extra/community/js/PKGBUILD
new file mode 100644
index 0000000..d55295c
--- /dev/null
+++ b/abs/not_built/extra/community/js/PKGBUILD
@@ -0,0 +1,31 @@
+pkgname=js
+pkgver=1.7.0
+pkgrel=1
+epoch=1
+pkgdesc="Mozilla's C implementation of JavaScript."
+arch=("i686" "x86_64")
+url="http://www.mozilla.org/js/spidermonkey/"
+license=('MPL' 'GPL' 'LGPL')
+depends=('nspr')
+options=('!makeflags')
+replaces=('spidermonkey')
+conflicts=('spidermonkey')
+source=("http://ftp.mozilla.org/pub/mozilla.org/js/js-$pkgver.tar.gz" \
+ "spidermonkey-1.7-threadsafe.patch" "spidermonkey-Makefile.patch")
+md5sums=('5571134c3863686b623ebe4e6b1f6fe6'
+ 'b2ef9be017b6aa1857354b5223975a4f'
+ '161d4c0f2c604d15cba29dab60b1f7a7')
+
+build() {
+ cd "$srcdir/js/src"
+ patch -p0 < "$srcdir/spidermonkey-Makefile.patch" || return 1
+ sed -i 's|include|include/js|' rules.mk || return 1
+ # fix for the lib location
+ [ "$CARCH" = "x86_64" ] && (sed -i -e "s:lib64:lib:g" config.mk || return 1)
+ # patch Makefile for threadsafe support with native nspr
+ patch -p2 -i "$srcdir/spidermonkey-1.7-threadsafe.patch" || return 1
+ # FS#16673
+ export CFLAGS="${CFLAGS} -DJS_C_STRINGS_ARE_UTF8"
+ # build - threadsafe
+ make -f Makefile.ref BUILD_OPT=1 JS_THREADSAFE=1 DIST="$pkgdir/usr" all export || return 1
+}
diff --git a/abs/not_built/extra/community/js/spidermonkey-1.7-threadsafe.patch b/abs/not_built/extra/community/js/spidermonkey-1.7-threadsafe.patch
new file mode 100644
index 0000000..da6c78d
--- /dev/null
+++ b/abs/not_built/extra/community/js/spidermonkey-1.7-threadsafe.patch
@@ -0,0 +1,16 @@
+--- js/src/Makefile.ref.orig 2008-05-28 19:51:32.000000000 -0400
++++ js/src/Makefile.ref 2008-05-28 19:52:17.000000000 -0400
+@@ -63,11 +63,11 @@
+
+ ifdef JS_THREADSAFE
+ DEFINES += -DJS_THREADSAFE
+-INCLUDES += -I$(DIST)/include/nspr
++INCLUDES += -I/usr/include/nspr
+ ifdef USE_MSVC
+ OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
+ else
+-OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
++OTHER_LIBS += -L/usr/$(LIBDIR)/nspr -lnspr${NSPR_LIBSUFFIX}
+ endif
+ endif
+
diff --git a/abs/not_built/extra/community/js/spidermonkey-Makefile.patch b/abs/not_built/extra/community/js/spidermonkey-Makefile.patch
new file mode 100644
index 0000000..abf1f31
--- /dev/null
+++ b/abs/not_built/extra/community/js/spidermonkey-Makefile.patch
@@ -0,0 +1,22 @@
+*** Makefile.ref.orig 2009-02-16 09:56:29.000000000 -0600
+--- Makefile.ref 2009-02-16 09:58:59.000000000 -0600
+***************
+*** 169,184 ****
+--- 169,185 ----
+ jstypes.h \
+ jsprvtd.h \
+ jspubtd.h \
+ jsregexp.h \
+ jsscan.h \
+ jsscope.h \
+ jsscript.h \
+ jsstr.h \
++ jsutil.h \
+ jsxdrapi.h \
+ jsxml.h \
+ $(NULL)
+
+ API_HFILES = \
+ jsapi.h \
+ jsdbgapi.h \
+ $(NULL)
diff --git a/abs/not_built/extra/community/libcec/PKGBUILD b/abs/not_built/extra/community/libcec/PKGBUILD
new file mode 100644
index 0000000..e4b9821
--- /dev/null
+++ b/abs/not_built/extra/community/libcec/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
+# Contributor: Philippe Cherel <philippe.cherel@mayenne.org>
+
+pkgname=libcec
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="Pulse-Eight's libcec for the Pulse-Eight USB-CEC adapter"
+arch=('i686' 'x86_64')
+url="https://github.com/Pulse-Eight/libcec"
+license=('GPL')
+depends=('udev')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/Pulse-Eight/libcec/tarball/$pkgname-$pkgver")
+_srcfolder=Pulse-Eight-libcec-00a02d1
+sha256sums=('93990024d01da7c66e2c78ca23919fd83137f6b944a2dc82fb5cc6d58a46742f')
+options=(!libtool)
+
+build() {
+ mv "$_srcfolder" "$pkgname-$pkgver"
+
+ cd "$pkgname-$pkgver"
+ autoreconf -vif
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/abs/not_built/extra/community/libdnet/PKGBUILD b/abs/not_built/extra/community/libdnet/PKGBUILD
new file mode 100644
index 0000000..70cf6e4
--- /dev/null
+++ b/abs/not_built/extra/community/libdnet/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 27071 2010-09-17 12:26:08Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: James Fryman <jfryman@gmail.com>
+
+pkgname=libdnet
+pkgver=1.12
+pkgrel=5
+pkgdesc="A simplified, portable interface to several low-level networking routines"
+arch=(i686 x86_64)
+makedepends=(python2)
+optdepends=(python2)
+install=(libdnet.install)
+license=("BSD")
+url="http://code.google.com/p/libdnet/"
+options=('!libtool')
+source=(http://libdnet.googlecode.com/files/libdnet-$pkgver.tgz)
+md5sums=('9253ef6de1b5e28e9c9a62b882e44cc9')
+
+build() {
+ mkdir -p $pkgdir/usr/bin
+
+ [ $CARCH == "x86_64" ] && export CFLAGS=-fPIC
+
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make && make DESTDIR=$pkgdir install
+
+ cd python && \
+ python2 setup.py install --root=$pkgdir
+
+ install -D -m0644 ../LICENSE $pkgdir/usr/share/licenses/libdnet/license
+ mv $pkgdir/usr/man $startdir/pkg/usr/share/
+}
diff --git a/abs/not_built/extra/community/libdnet/libdnet.install b/abs/not_built/extra/community/libdnet/libdnet.install
new file mode 100644
index 0000000..cb8146f
--- /dev/null
+++ b/abs/not_built/extra/community/libdnet/libdnet.install
@@ -0,0 +1,3 @@
+post_install() {
+ /sbin/ldconfig
+}
diff --git a/abs/not_built/extra/community/libelf/PKGBUILD b/abs/not_built/extra/community/libelf/PKGBUILD
new file mode 100644
index 0000000..18bd118
--- /dev/null
+++ b/abs/not_built/extra/community/libelf/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 20525 2008-12-05 13:31:11Z jgc $
+# Maintainer: arjan <arjan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libelf
+pkgver=0.8.13
+pkgrel=1
+pkgdesc="libelf is a free ELF object file access library"
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(http://www.mr511.de/software/${pkgname}-${pkgver}.tar.gz)
+url="http://directory.fsf.org/libs/misc/libelf.html"
+depends=('glibc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-shared \
+ --enable-gnu-names --enable-compat || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install || return 1
+}
+md5sums=('4136d7b4c04df68b686570afa26988ac')
diff --git a/abs/not_built/extra/community/libnetfilter_queue/PKGBUILD b/abs/not_built/extra/community/libnetfilter_queue/PKGBUILD
new file mode 100644
index 0000000..0240b96
--- /dev/null
+++ b/abs/not_built/extra/community/libnetfilter_queue/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Maintainer: Filip Wojciechowski, filip at loka dot pl
+
+pkgname=libnetfilter_queue
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="userspace library providing an API to packets that have been queued by the kernel packet filter"
+arch=('i686' 'x86_64')
+url="http://www.netfilter.org/projects/libnetfilter_queue/index.html"
+license=('GPL')
+depends=(libnfnetlink)
+makedepends=(pkgconfig)
+options=('!libtool')
+source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('af6a9ea350f63a13609bc3b47b5c395c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/abs/not_built/extra/community/libnfnetlink/PKGBUILD b/abs/not_built/extra/community/libnfnetlink/PKGBUILD
new file mode 100644
index 0000000..7577f65
--- /dev/null
+++ b/abs/not_built/extra/community/libnfnetlink/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Maintainer: Filip Wojciechowski, filip at loka dot pl
+pkgname=libnfnetlink
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="low-level library for netfilter related kernel/userspace communication"
+depends=(glibc)
+url="http://www.netfilter.org/projects/libnfnetlink/index.html"
+license=('GPL')
+arch=('i686' 'x86_64')
+options=('!libtool')
+source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('016fdec8389242615024c529acc1adb8')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/not_built/extra/community/libstdc++5/PKGBUILD b/abs/not_built/extra/community/libstdc++5/PKGBUILD
new file mode 100644
index 0000000..00bee17
--- /dev/null
+++ b/abs/not_built/extra/community/libstdc++5/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libstdc++5
+pkgver=3.3.6
+pkgrel=2
+pkgdesc="GNU Standard C++ library version 3"
+arch=(i686 x86_64)
+url="http://gcc.gnu.org"
+depends=('gcc-libs')
+makedepends=('binutils' 'gcc')
+options=(!libtool)
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2 gcc-3.4.3-no_multilib_amd64.patch)
+md5sums=(18c52e6fb8966b7700665dca289d077f 6b3d00b8d079805be1b895f7f6ce47a0 \
+ 088e0807e677010cafe4e590e8711be1)
+
+build(){
+ export MAKEFLAGS="-j1"
+ export CFLAGS=$(echo $CFLAGS | sed 's|-mtune=generic||')
+ export CXXFLAGS=$(echo $CXXFLAGS | sed 's|-mtune=generic||')
+ cd ${startdir}/src/gcc-${pkgver}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ patch -Np0 -i ../gcc-3.4.3-no_multilib_amd64.patch || return 1
+ fi
+
+ # No fixincludes
+ sed -i -e 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+ mkdir ../gcc-build
+ cd ../gcc-build
+ ../gcc-${pkgver}/configure --prefix=/usr --enable-shared \
+ --enable-languages=c++ --enable-threads=posix --enable-__cxa_atexit \
+ --disable-multilib --libdir=/usr/lib
+ make all-target-libstdc++-v3 BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || return 1
+ make DESTDIR=${startdir}/pkg install-target-libstdc++-v3 || return 1
+
+ # Remove includefiles and libs provided by gcc
+ rm -rf ${startdir}/pkg/usr/{include,share/locale}
+ rm -f ${startdir}/pkg/usr/lib/*.a
+ rm -f ${startdir}/pkg/usr/lib/libstdc++.so
+}
diff --git a/abs/not_built/extra/community/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch b/abs/not_built/extra/community/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
new file mode 100644
index 0000000..dce10d4
--- /dev/null
+++ b/abs/not_built/extra/community/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
@@ -0,0 +1,11 @@
+--- gcc/config/i386/t-linux64.orig 2003-06-28 00:19:59.000000000 +0000
++++ gcc/config/i386/t-linux64 2003-06-28 00:20:07.000000000 +0000
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = . ../lib
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/abs/not_built/extra/community/mediatomb/PKGBUILD b/abs/not_built/extra/community/mediatomb/PKGBUILD
new file mode 100644
index 0000000..606314a
--- /dev/null
+++ b/abs/not_built/extra/community/mediatomb/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id$
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Nikhil Bysani <nikron@gmail.com>
+# Contributor: Mika Hynnä <igheax@gmail.com>
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+
+pkgname=mediatomb
+pkgver=0.12.1
+pkgrel=5
+pkgdesc="Free UPnP/DLNA media server"
+arch=('i686' 'x86_64')
+url="http://mediatomb.cc/"
+license=('GPL')
+depends=('curl' 'ffmpegthumbnailer' 'js' 'libexif' 'libmp4v2' 'sqlite3' 'taglib')
+backup=('etc/conf.d/mediatomb')
+install=mediatomb.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'mediatomb.rc'
+ 'mediatomb.conf'
+ 'gcc46.patch'
+ 'tonewjs.patch')
+md5sums=('e927dd5dc52d3cfcebd8ca1af6f0d3c2'
+ 'aa1191ec508d8bd4b3b9a5fe48efc079'
+ 'bec297e4178332a26b42bbde873b94cd'
+ '0ae34c0d73b76e3d215887834c3c08cf'
+ 'd9e02a9956eecf5ff645bddf6dac0331')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i $srcdir/gcc46.patch
+ patch -Np1 -i $srcdir/tonewjs.patch
+
+ ./configure --prefix=/usr \
+ --disable-mysql \
+ --enable-libmagic \
+ --enable-libjs \
+ --enable-ffmpeg
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m0755 "$srcdir/mediatomb.rc" "$pkgdir/etc/rc.d/mediatomb"
+ install -D -m0755 "$srcdir/mediatomb.conf" "$pkgdir/etc/conf.d/mediatomb"
+ install -d "$pkgdir/var/lib/mediatomb"
+}
diff --git a/abs/not_built/extra/community/mediatomb/gcc46.patch b/abs/not_built/extra/community/mediatomb/gcc46.patch
new file mode 100644
index 0000000..0f4fe49
--- /dev/null
+++ b/abs/not_built/extra/community/mediatomb/gcc46.patch
@@ -0,0 +1,10 @@
+--- a/src/zmm/object.h
++++ b/src/zmm/object.h
+@@ -33,6 +33,7 @@
+ #define __ZMM_OBJECT_H__
+
+ #include <new> // for size_t
++#include <cstddef>
+ #include "atomic.h"
+
+ namespace zmm
diff --git a/abs/not_built/extra/community/mediatomb/mediatomb.conf b/abs/not_built/extra/community/mediatomb/mediatomb.conf
new file mode 100644
index 0000000..798018d
--- /dev/null
+++ b/abs/not_built/extra/community/mediatomb/mediatomb.conf
@@ -0,0 +1,23 @@
+#
+# Parameters to be passed to mediatomb
+#
+
+# Port to listen on
+MT_PORT='50500'
+
+# User and group to run as
+MT_USER='nobody'
+MT_GROUP='nobody'
+
+# Location of the PID file
+MT_PIDFILE='/var/run/mediatomb.pid'
+
+# Location of the log file
+MT_LOGFILE='/var/log/mediatomb.log'
+
+# Location of the config file/database
+MT_HOME='/var/lib/mediatomb'
+MT_CFGDIR='.mediatomb'
+
+# User defined command line options
+MT_OPTIONS=''
diff --git a/abs/not_built/extra/community/mediatomb/mediatomb.install b/abs/not_built/extra/community/mediatomb/mediatomb.install
new file mode 100644
index 0000000..56f6ef9
--- /dev/null
+++ b/abs/not_built/extra/community/mediatomb/mediatomb.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo 'Warning: the MediaTomb web interface exposes your filesystem to the network'
+ echo 'For maximum security, set <ui enabled="no"> in your MediaTomb config file'
+}
+
+post_upgrade() {
+ # TODO: disable next update
+ post_install
+}
diff --git a/abs/not_built/extra/community/mediatomb/mediatomb.rc b/abs/not_built/extra/community/mediatomb/mediatomb.rc
new file mode 100644
index 0000000..7b93012
--- /dev/null
+++ b/abs/not_built/extra/community/mediatomb/mediatomb.rc
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/mediatomb
+
+MT_OPTIONS="-p $MT_PORT -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE \
+ -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR $MT_OPTIONS"
+
+case "$1" in
+ start)
+ stat_busy "Starting Mediatomb UPnP Media Server"
+
+ chown "$MT_USER:$MT_GROUP" "$MT_HOME"
+
+ if ! pidof -o %PPID /usr/bin/mediatomb &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ fi
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -z "$PID" ] && /usr/bin/mediatomb -d $MT_OPTIONS; then
+ add_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Mediatomb UPnP Media Server"
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -n "$PID" ] && kill "$PID" &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ rm_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ restart)
+ "$0" stop
+ sleep 1
+ "$0" start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/abs/not_built/extra/community/mediatomb/tonewjs.patch b/abs/not_built/extra/community/mediatomb/tonewjs.patch
new file mode 100644
index 0000000..1159685
--- /dev/null
+++ b/abs/not_built/extra/community/mediatomb/tonewjs.patch
@@ -0,0 +1,564 @@
+diff -up mediatomb-0.12.1-back/build/Makefile.in.tonewjs mediatomb-0.12.1-back/build/Makefile.in
+--- mediatomb-0.12.1-back/build/Makefile.in.tonewjs 2010-04-08 00:40:15.000000000 +0200
++++ mediatomb-0.12.1-back/build/Makefile.in 2011-04-19 17:17:01.343509944 +0200
+@@ -257,7 +257,7 @@ CURL_LIBS = @CURL_LIBS@
+ CXX = @CXX@
+ CXXCPP = @CXXCPP@
+ CXXDEPMODE = @CXXDEPMODE@
+-CXXFLAGS = @CXXFLAGS@
++CXXFLAGS = -fpermissive @CXXFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DB_AUTOCREATE_OPTION_ENABLED = @DB_AUTOCREATE_OPTION_ENABLED@
+ DB_AUTOCREATE_OPTION_REQUESTED = @DB_AUTOCREATE_OPTION_REQUESTED@
+diff -up mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/import_script.cc
+--- mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs 2011-04-18 13:10:48.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/import_script.cc 2011-04-18 13:29:36.000000000 +0200
+@@ -53,8 +53,8 @@ ImportScript::ImportScript(Ref<Runtime>
+ try
+ {
+ load(scriptPath);
+- root = JS_NewScriptObject(cx, script);
+- JS_AddNamedRoot(cx, &root, "ImportScript");
++ root = JS_NewObject(cx, NULL, script, NULL);
++ JS_AddNamedObjectRoot(cx, &root, "ImportScript");
+ }
+ catch (Exception ex)
+ {
+@@ -117,7 +117,7 @@ ImportScript::~ImportScript()
+ #endif
+
+ if (root)
+- JS_RemoveRoot(cx, &root);
++ JS_RemoveObjectRoot(cx, &root);
+
+ #ifdef JS_THREADSAFE
+ JS_EndRequest(cx);
+diff -up mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.cc
+--- mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs 2011-04-18 13:29:55.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/js_functions.cc 2011-04-19 16:48:04.009229611 +0200
+@@ -49,7 +49,7 @@ using namespace zmm;
+ extern "C" {
+
+ JSBool
+-js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_print(JSContext *cx, uintN argc, jsval *argv)
+ {
+ uintN i;
+ JSString *str;
+@@ -60,19 +60,21 @@ js_print(JSContext *cx, JSObject *obj, u
+ if (!str)
+ return JS_TRUE;
+ argv[i] = STRING_TO_JSVAL(str);
+- log_js("%s\n", JS_GetStringBytes(str));
++ char * log_str = JS_EncodeString(cx, str);
++ log_js("%s\n", log_str);
++ JS_free(cx, log_str);
+ }
+ return JS_TRUE;
+ }
+
+ JSBool
+-js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_copyObject(JSContext *cx, uintN argc, jsval *argv)
+ {
+ jsval arg;
+ JSObject *js_cds_obj;
+ JSObject *js_cds_clone_obj;
+
+- Script *self = (Script *)JS_GetPrivate(cx, obj);
++ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ try
+ {
+@@ -91,7 +93,7 @@ js_copyObject(JSContext *cx, JSObject *o
+
+ self->cdsObject2jsObject(cds_obj, js_cds_clone_obj);
+
+- *rval = OBJECT_TO_JSVAL(js_cds_clone_obj);
++ JS_SET_RVAL(cx, argv, OBJECT_TO_JSVAL(js_cds_clone_obj));
+
+ return JS_TRUE;
+
+@@ -110,7 +112,7 @@ js_copyObject(JSContext *cx, JSObject *o
+ }
+
+ JSBool
+-js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_addCdsObject(JSContext *cx, uintN argc, jsval *argv)
+ {
+ try
+ {
+@@ -126,7 +128,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ Ref<StringConverter> p2i;
+ Ref<StringConverter> i2i;
+
+- Script *self = (Script *)JS_GetPrivate(cx, obj);
++ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ if (self == NULL)
+ {
+@@ -156,20 +158,20 @@ js_addCdsObject(JSContext *cx, JSObject
+ if (!str)
+ path = _("/");
+ else
+- path = JS_GetStringBytes(str);
++ path = JS_EncodeString(cx, str);
+
+ JSString *cont = JS_ValueToString(cx, argv[2]);
+ if (cont)
+ {
+- containerclass = JS_GetStringBytes(cont);
++ containerclass = JS_EncodeString(cx, cont);
+ if (!string_ok(containerclass) || containerclass == "undefined")
+ containerclass = nil;
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+- js_orig_obj = self->getObjectProperty(obj, _("playlist"));
++ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("playlist"));
+ else if (self->whoami() == S_IMPORT)
+- js_orig_obj = self->getObjectProperty(obj, _("orig"));
++ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("orig"));
+
+ if (js_orig_obj == NULL)
+ {
+@@ -285,8 +287,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ JSString *str2 = JS_NewStringCopyN(cx, tmp.c_str(), tmp.length());
+ if (!str2)
+ return JS_TRUE;
+- *rval = STRING_TO_JSVAL(str2);
+-
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2));
+ return JS_TRUE;
+ }
+ catch (ServerShutdownException se)
+@@ -302,7 +303,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ return JS_TRUE;
+ }
+
+-static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval, charset_convert_t chr)
++static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, charset_convert_t chr)
+ {
+ try
+ {
+@@ -321,7 +322,7 @@ static JSBool convert_charset_generic(JS
+ {
+ str = JS_ValueToString(cx, argv[0]);
+ if (str)
+- result = JS_GetStringBytes(str);
++ result = JS_EncodeString(cx, str);
+ }
+
+ if (result != nil)
+@@ -330,7 +331,7 @@ static JSBool convert_charset_generic(JS
+ JSString *str2 = JS_NewStringCopyN(cx, result.c_str(), result.length());
+ if (!str2)
+ return JS_TRUE;
+- *rval = STRING_TO_JSVAL(str2);
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2));
+ }
+ }
+ catch (ServerShutdownException se)
+@@ -347,24 +348,23 @@ static JSBool convert_charset_generic(JS
+ }
+
+
+-JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, F2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, F2I);
+ }
+
+-JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, M2I);
+-}
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, M2I); }
+
+-JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, P2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, P2I);
+ }
+
+-JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, J2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, J2I);
+ }
+
+ } // extern "C"
+diff -up mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.h
+--- mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs 2010-03-25 15:58:05.000000000 +0100
++++ mediatomb-0.12.1-back/src/scripting/js_functions.h 2011-04-18 13:59:29.000000000 +0200
+@@ -40,18 +40,18 @@
+ extern "C" {
+
+ /// \brief Log output.
+-JSBool js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_print(JSContext *cx, uintN argc, jsval *argv);
+
+ /// \brief Adds an object to the database.
+-JSBool js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_addCdsObject(JSContext *cx, uintN argc, jsval *argv);
+
+ /// \brief Makes a copy of an CDS object.
+-JSBool js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_copyObject(JSContext *cx, uintN argc, jsval *argv);
+
+-JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv);
+
+ } // extern "C"
+
+diff -up mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc
+--- mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs 2011-04-18 13:34:14.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc 2011-04-18 13:51:59.000000000 +0200
+@@ -46,9 +46,9 @@ using namespace zmm;
+ extern "C" {
+
+ static JSBool
+-js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_readln(JSContext *cx, uintN argc, jsval *argv)
+ {
+- PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, obj);
++ PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ String line;
+
+@@ -69,7 +69,7 @@ js_readln(JSContext *cx, JSObject *obj,
+
+ JSString *jsline = JS_NewStringCopyZ(cx, line.c_str());
+
+- *rval = STRING_TO_JSVAL(jsline);
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(jsline));
+
+ return JS_TRUE;
+ }
+@@ -93,8 +93,8 @@ PlaylistParserScript::PlaylistParserScri
+
+ String scriptPath = ConfigManager::getInstance()->getOption(CFG_IMPORT_SCRIPTING_PLAYLIST_SCRIPT);
+ load(scriptPath);
+- root = JS_NewScriptObject(cx, script);
+- JS_AddNamedRoot(cx, &root, "PlaylistScript");
++ root = JS_NewObject(cx, NULL, script, NULL);
++ JS_AddNamedObjectRoot(cx, &root, "PlaylistScript");
+ }
+ catch (Exception ex)
+ {
+@@ -245,7 +245,7 @@ PlaylistParserScript::~PlaylistParserScr
+ #endif
+
+ if (root)
+- JS_RemoveRoot(cx, &root);
++ JS_RemoveObjectRoot(cx, &root);
+
+ #ifdef JS_THREADSAFE
+ JS_EndRequest(cx);
+diff -up mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/script.cc
+--- mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs 2011-04-18 13:53:07.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/script.cc 2011-04-19 18:26:34.460338804 +0200
+@@ -87,7 +87,7 @@ String Script::getProperty(JSObject *obj
+ str = JS_ValueToString(cx, val);
+ if (! str)
+ return nil;
+- return JS_GetStringBytes(str);
++ return JS_EncodeString(cx, str);
+ }
+
+ int Script::getBoolProperty(JSObject *obj, String name)
+@@ -427,14 +427,14 @@ static JSFunctionSpec js_global_function
+ try
+ {
+ common_script = _load(common_scr_path);
+- common_root = JS_NewScriptObject(cx, common_script);
+- JS_AddNamedRoot(cx, &common_root, "common-script");
++ common_root = JS_NewObject(cx, NULL, common_script, NULL);
++ JS_AddNamedObjectRoot(cx, &common_root, "common-script");
+ _execute(common_script);
+ }
+ catch (Exception e)
+ {
+ if (common_root)
+- JS_RemoveRoot(cx, &common_root);
++ JS_RemoveObjectRoot(cx, &common_root);
+
+ log_js("Unable to load %s: %s\n", common_scr_path.c_str(),
+ e.getMessage().c_str());
+@@ -460,7 +460,7 @@ Script::~Script()
+ JS_BeginRequest(cx);
+ #endif
+ if (common_root)
+- JS_RemoveRoot(cx, &common_root);
++ JS_RemoveObjectRoot(cx, &common_root);
+
+ /*
+ * scripts are unrooted and will be cleaned up by GC
+@@ -504,11 +504,11 @@ void Script::initGlobalObject()
+ static JSClass global_class =
+ {
+ "global", /* name */
+- JSCLASS_HAS_PRIVATE, /* flags */
++ JSCLASS_HAS_PRIVATE | JSCLASS_GLOBAL_FLAGS,/* flags */
+ JS_PropertyStub, /* add property */
+ JS_PropertyStub, /* del property */
+ JS_PropertyStub, /* get property */
+- JS_PropertyStub, /* set property */
++ JS_StrictPropertyStub, /* set property */
+ JS_EnumerateStandardClasses, /* enumerate */
+ JS_ResolveStub, /* resolve */
+ JS_ConvertStub, /* convert */
+@@ -517,7 +517,7 @@ void Script::initGlobalObject()
+ };
+
+ /* create the global object here */
+- glob = JS_NewObject(cx, &global_class, NULL, NULL);
++ glob = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL);
+ if (! glob)
+ throw _Exception(_("Scripting: could not initialize glboal class"));
+
+@@ -539,12 +539,12 @@ void Script::defineFunctions(JSFunctionS
+ throw _Exception(_("Scripting: JS_DefineFunctions failed"));
+ }
+
+-JSScript *Script::_load(zmm::String scriptPath)
++JSObject *Script::_load(zmm::String scriptPath)
+ {
+ if (glob == NULL)
+ initGlobalObject();
+
+- JSScript *scr;
++ JSObject *scr;
+
+ String scriptText = read_text_file(scriptPath);
+
+@@ -571,14 +571,11 @@ JSScript *Script::_load(zmm::String scri
+
+ void Script::load(zmm::String scriptPath)
+ {
+- if (script)
+- JS_DestroyScript(cx, script);
+-
+ script = _load((scriptPath));
+ }
+
+
+-void Script::_execute(JSScript *scr)
++void Script::_execute(JSObject *scr)
+ {
+ jsval ret_val;
+
+@@ -662,7 +659,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec
+ JSObject *js_meta = getObjectProperty(js, _("meta"));
+ if (js_meta)
+ {
+- JS_AddNamedRoot(cx, &js_meta, "meta");
++ JS_AddNamedObjectRoot(cx, &js_meta, "meta");
+ /// \todo: only metadata enumerated in MT_KEYS is taken
+ for (int i = 0; i < M_MAX; i++)
+ {
+@@ -687,7 +684,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec
+ }
+ }
+ }
+- JS_RemoveRoot(cx, &js_meta);
++ JS_RemoveObjectRoot(cx, &js_meta);
+ }
+
+ // stuff that has not been exported to js
+diff -up mediatomb-0.12.1-back/src/scripting/script.h.tonewjs mediatomb-0.12.1-back/src/scripting/script.h
+--- mediatomb-0.12.1-back/src/scripting/script.h.tonewjs 2011-04-18 12:56:14.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/script.h 2011-04-18 12:56:51.000000000 +0200
+@@ -66,8 +66,8 @@ public:
+ JSRuntime *rt;
+ JSContext *cx;
+ JSObject *glob;
+- JSScript *script;
+- JSScript *common_script;
++ JSObject *script;
++ JSObject *common_script;
+
+ public:
+ Script(zmm::Ref<Runtime> runtime);
+@@ -115,8 +115,8 @@ private:
+ JSObject *common_root;
+
+ void initGlobalObject();
+- JSScript *_load(zmm::String scriptPath);
+- void _execute(JSScript *scr);
++ JSObject *_load(zmm::String scriptPath);
++ void _execute(JSObject *scr);
+ zmm::Ref<StringConverter> _p2i;
+ zmm::Ref<StringConverter> _j2i;
+ zmm::Ref<StringConverter> _f2i;
+--- mediatomb-0.12.1/configure.tonewjs 2011-07-04 20:20:00.290227110 +1200
++++ mediatomb-0.12.1/configure 2011-07-04 20:20:28.186894644 +1200
+@@ -23784,14 +23784,14 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+
+ else
+
+- LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs $ADD_PTHREAD_CFLAGS"
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs185 $ADD_PTHREAD_CFLAGS"
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -23835,12 +23835,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -23848,12 +23848,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs"
+- MOZLIB=mozjs
++ JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs185"
++ MOZLIB=mozjs185
+
+ else
+
+@@ -24020,13 +24020,13 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+ else
+
+ unset ac_cv_lib_smjs_JS_NewObject
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24070,12 +24070,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -24083,12 +24083,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- MOZLIB=mozjs
+- JS_LIBS="-lmozjs"
++ MOZLIB=mozjs185
++ JS_LIBS="-lmozjs185"
+
+ else
+
+@@ -24239,15 +24239,15 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+
+ else
+
+- LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs"
+- unset ac_cv_lib_mozjs_JS_NewObject
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs185"
++ unset ac_cv_lib_mozjs185_JS_NewObject
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24291,12 +24291,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -24304,12 +24304,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs"
+- MOZLIB=mozjs
++ JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs185"
++ MOZLIB=mozjs185
+
+ else
+
diff --git a/abs/not_built/extra/community/mmv/PKGBUILD b/abs/not_built/extra/community/mmv/PKGBUILD
new file mode 100644
index 0000000..0ccec1b
--- /dev/null
+++ b/abs/not_built/extra/community/mmv/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: blue_lizard lizard@blue.dyn-o-saur.com
+
+pkgname=mmv
+pkgver=1.01b.orig
+pkgrel=1
+pkgdesc="multiple move files"
+depends=('glibc' 'sed')
+conflicts=()
+backup=()
+source=(http://ftp.de.debian.org/debian/pool/main/m/mmv/mmv_1.01b.orig.tar.gz http://ftp.de.debian.org/debian/pool/main/m/mmv/mmv_1.01b-14.diff.gz)
+md5sums=('1b2135ab2f17bdfa9e08debbb3c46ad8' 'a69eff7501e63c0bd1fcd231bf6949f1')
+url="http://linux.maruhn.com/sec/mmv.html"
+license="GPL"
+install=$pkgname.install
+arch=('i686')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -p1 < ../mmv_1.01b-14.diff
+ cat Makefile | sed -e "s/LDFLAGS.\s=-s -N/LDFLAGS =-s/g" > /tmp/Makefile
+ mv /tmp/Makefile ./
+ make || return 1
+ mkdir -p $startdir/pkg/usr/bin
+ mkdir -p $startdir/pkg/usr/man/man1
+ make DESTDIR=$startdir/pkg install
+ chmod 644 $startdir/pkg/usr/man/man1/mmv.1
+ cd $startdir/pkg/usr/bin
+ ln -s mmv mcp
+ ln -s mmv mad
+ ln -s mmv mln
+ cd $startdir/pkg/usr/man/man1/
+ ln -s mmv.1 mcp.1
+ ln -s mmv.1 mad.1
+ ln -s mmv.1 mln.1
+}
diff --git a/abs/not_built/extra/community/mmv/mmv.install b/abs/not_built/extra/community/mmv/mmv.install
new file mode 100644
index 0000000..9b23e48
--- /dev/null
+++ b/abs/not_built/extra/community/mmv/mmv.install
@@ -0,0 +1,19 @@
+# arg 1: the new package version
+post_install() {
+ echo ">>>"
+ echo ">>>"
+ echo ">>>"
+ echo ">>> many thanks to the debian people who provide the sources"
+ echo ">>>"
+}
+
+# arg 1: the old package version
+post_remove() {
+ echo ">>>"
+ echo ">>>"
+ echo ">>>"
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/community/moblock/MoBlock-nfq.sh.patch b/abs/not_built/extra/community/moblock/MoBlock-nfq.sh.patch
new file mode 100644
index 0000000..f9136c3
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/MoBlock-nfq.sh.patch
@@ -0,0 +1,53 @@
+--- MoBlock-0.8/MoBlock-nfq.sh.orig 2008-11-30 03:44:02.000000000 -0500
++++ MoBlock-0.8/MoBlock-nfq.sh 2008-12-01 18:56:15.000000000 -0500
+@@ -3,14 +3,10 @@
+ # MoBlock.sh - MoBlock start script
+ # ---------------------------------
+
+-ACTIVATE_CHAINS=1
+-WHITE_TCP_IN=""
+-WHITE_UDP_IN=""
+-WHITE_TCP_OUT=""
+-WHITE_UDP_OUT=""
+-WHITE_TCP_FORWARD=""
+-WHITE_UDP_FORWARD=""
++# Some configuration options have been moved to an external conf file
++# This should make maintenance and upgrading easier
+
++. /etc/moblock/config
+
+ PIDF=/var/run/moblock.pid
+
+@@ -78,6 +74,17 @@
+ iptables -I MOBLOCK_FW -p udp --dport $PORT -j ACCEPT
+ done
+
++# For added IP whitelisting support
++
++for IP in $WHITE_IP_OUT; do
++ iptables -I MOBLOCK_OUT -p all -m iprange --dst-range $IP -j ACCEPT
++done
++for IP in $WHITE_IP_IN; do
++ iptables -I MOBLOCK_IN -p all -m iprange --src-range $IP -j ACCEPT
++done
++for IP in $WHITE_IP_FW; do
++ iptables -I MOBLOCK_FW -p all -m iprange --dst-range $IP -j ACCEPT
++done
+
+ # Loopback traffic fix
+
+@@ -85,7 +92,8 @@
+ iptables -I OUTPUT -p all -o lo -j ACCEPT
+
+ # Here you can change block list and log files
+-./moblock -p /etc/guarding.p2p ./moblock.log
++#./moblock -p /etc/guarding.p2p ./moblock.log
++/usr/bin/moblock -p /etc/moblock/banned.list /var/log/moblock.log >/dev/null 2>&1
+
+ # On exit delete the rules we added
+
+@@ -108,3 +116,4 @@
+ if [ -f $PIDF ]; then
+ rm $PIDF;
+ fi
++
diff --git a/abs/not_built/extra/community/moblock/PKGBUILD b/abs/not_built/extra/community/moblock/PKGBUILD
new file mode 100755
index 0000000..0f3ff26
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/PKGBUILD
@@ -0,0 +1,57 @@
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Maintainer: Filip Wojciechowski, filip at loka dot pl
+
+pkgname=moblock
+pkgver=0.9rc2
+pkgrel=9
+pkgdesc="Console application that blocks connections from/to hosts listed in a file in peerguardian format"
+arch=('i686' 'x86_64')
+url="http://moblock.berlios.de/"
+license=('GPL')
+depends=(libnetfilter_queue iptables)
+backup=(etc/moblock/config)
+install=moblock.install
+source=(http://download.berlios.de/moblock/MoBlock-0.8-i586.tar.bz2 \
+ moblock_0.9_rc2.patch \
+ MoBlock-nfq.sh.patch \
+ moblock_include.patch \
+ config \
+ moblock-update \
+ moblock \
+ moblock.logrotate)
+
+build() {
+ cd ${srcdir}/MoBlock-0.8
+
+ # patch to update moblock to the latest cvs version
+ patch -Np1 -i ../moblock_0.9_rc2.patch || return 1
+ # add IP whitelisting and move configs to a separate conf file
+ patch -Np1 -i ../MoBlock-nfq.sh.patch || return 1
+ # necessary to make moblock build with recent kernels
+ patch -Np1 -i ../moblock_include.patch || return 1
+
+ # change the CFLAGS for both i686 and x84_64 builds
+ sed -i "s#-Wall -O.*-ffast-math#$CFLAGS#g" Makefile
+
+ # build
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/MoBlock-0.8
+ #move the files
+ install -D -m 755 ./MoBlock-nfq.sh ${pkgdir}/usr/bin/moblock-nfq || return 1
+ install -D -m 744 ./moblock ${pkgdir}/usr/bin/moblock || return 1
+ install -D -m 755 ../moblock-update ${pkgdir}/usr/bin/moblock-update || return 1
+ install -D -m 744 ../moblock ${pkgdir}/etc/rc.d/moblock || return 1
+ install -D -m 644 ../config ${pkgdir}/etc/moblock/config || return 1
+ install -D -m 644 ../moblock.logrotate ${pkgdir}/etc/logrotate.d/moblock || return 1
+}
+md5sums=('199967adb48b153be90db10fe21325c5'
+ 'e4e33c515677fa53eaca4616591d4e44'
+ 'e9f3c6b09f5e07dee948450780340ea3'
+ 'b23b5214965df59632de5cec317ddbde'
+ '840bb52a99529305e49212a69c9ced8a'
+ '49a16feb221d4d912cc7200313517f7b'
+ '1bdc949fcff0ce751a5096e489061513'
+ 'a8285fd3e68043cd8d21993d3dbbf9d4')
diff --git a/abs/not_built/extra/community/moblock/config b/abs/not_built/extra/community/moblock/config
new file mode 100644
index 0000000..7d7c287
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/config
@@ -0,0 +1,30 @@
+# Original MoBlock configuration options from MoBlock-nfq.sh file
+ACTIVATE_CHAINS=1
+WHITE_TCP_IN=""
+WHITE_UDP_IN=""
+WHITE_TCP_OUT="" # Add "http https" here to prevent moblock from blocking webpages
+WHITE_UDP_OUT=""
+WHITE_TCP_FORWARD=""
+WHITE_UDP_FORWARD=""
+
+# Added IP whitelisting support
+WHITE_IP_IN=""
+WHITE_IP_OUT=""
+WHITE_IP_FW=""
+
+# Individual lists can be disabled by prefixing them with '!'
+# Bluetack blacklists (http://www.bluetack.co.uk)
+BLUETACK=(level1 level2 !level3 !edu ads-trackers-and-bad-pr0n bogon spyware spider Microsoft !proxy hijacked templist !rangetest dshield)
+
+# blocklist.org lists (currently doesn't work)
+#BLOCKLIST=(p2p gov spy ads edu)
+
+# backup lists (might be outdated)
+#PHOENIXLABS=(!p2b.p2b edu.txt spider.txt spyware.txt level1.txt !level2.txt !level3.txt)
+
+# Change to 'yes' if you want to backup up the old list before writing
+# a new one. Only one backup copy will be kept.
+BACKUP_OLD_LIST="no"
+
+# Options passed to wget
+WGET_OPTS="-q"
diff --git a/abs/not_built/extra/community/moblock/moblock b/abs/not_built/extra/community/moblock/moblock
new file mode 100755
index 0000000..d88bd2e
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/moblock
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting MoBlock"
+ if [ ! -f /var/run/moblock.pid ]
+ then
+ /usr/bin/moblock-nfq &
+ if [ $? -gt 0 ]
+ then
+ stat_fail
+ else
+ add_daemon moblock
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ update)
+ stat_busy "Updating MoBlock block list..."
+ error=0
+ /usr/bin/moblock-update || error=1
+ stat_busy "Updating MoBlock block list"
+ if [ $error -eq 1 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stats)
+ stat_busy "Logging stats to /var/log/MoBlock.stats"
+ PID=`cat /var/run/moblock.pid 2>/dev/null`
+ if [ ! -z "$PID" ]; then
+ /bin/kill -USR2 $PID
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MoBlock"
+ PID=`cat /var/run/moblock.pid 2>/dev/null`
+ if [ ! -z "$PID" ]; then
+ /bin/kill $PID
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon moblock
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|update|stats}"
+esac
diff --git a/abs/not_built/extra/community/moblock/moblock-update b/abs/not_built/extra/community/moblock/moblock-update
new file mode 100755
index 0000000..aae861d
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/moblock-update
@@ -0,0 +1,174 @@
+#!/bin/bash
+
+. /etc/moblock/config
+
+CONF_DIR=/etc/moblock
+TEMP_DIR=$(/usr/bin/mktemp -t -d moblock-updateXXXXXXXX)
+LIST_FILE=banned.list
+
+USECOLOR="no"
+. /etc/rc.d/functions
+PREFIX_REG=" >"
+PREFIX_HL="::"
+
+function extract()
+{
+ /usr/bin/find $TEMP_DIR -type f -name '*.gz' -o -name '*.zip' |\
+ while read N
+ do
+ case "$N" in
+ *.zip) /usr/bin/unzip -oqq "$N" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ rm -f "$N"
+ return 1
+ else
+ rm -f "$N"
+ fi
+ ;;
+ *.gz) /bin/gunzip -f "$N" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ rm -f "$N"
+ return 1
+ fi
+ ;;
+ *) continue
+ ;;
+ esac
+ done
+ return 0
+}
+
+cd $TEMP_DIR
+
+printf "${C_SEPARATOR} ------------------------------\n"
+printhl "Downloading and extracting files:\n"
+
+# Bluetack lists (with fallback)
+for i in ${BLUETACK[@]}
+do
+ if [ $(echo $i | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]; then
+ stat_busy "BLUETACK '${i}'... "
+ /usr/bin/wget ${WGET_OPTS} "http://www.bluetack.co.uk/config/${i}.gz" && extract
+ if [ $? -gt 0 ] || [ ! -f ${i} ]; then
+ stat_fail
+ bfile=$i
+ if [ "$bfile" = "ads-trackers-and-bad-pr0n" ]; then
+ bfile="ads"
+ elif [ "$bfile" = "Microsoft" ];then
+ bfile="microsoft"
+ fi
+ stat_busy "[!!] BLUETACK '${i}' (fallback link)... "
+ /usr/bin/wget ${WGET_OPTS} "http://list.iblocklist.com/?list=bt_${bfile%%-*}" -O "${i}.gz" && extract
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ else
+ stat_done
+ fi
+ fi
+done
+
+# Blocklist lists
+for i in ${BLOCKLIST[@]}
+do
+ if [ $(echo $i | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]; then
+ stat_busy "BLOCKLIST '${i}'... "
+ /usr/bin/wget ${WGET_OPTS} "blocklist.org/${i}.p2b.gz" && extract
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+done
+
+# Old phoenixlabs.org lists
+for i in ${PHOENIXLABS[@]}
+do
+ if [ $(echo $i | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]; then
+ stat_busy "PHOENIXLABS '${i}'... "
+ /usr/bin/wget ${WGET_OPTS} "fox.phoenixlabs.org/${i}" && extract
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+done
+
+if [ $(/bin/cat "$TEMP_DIR"/* | /usr/bin/wc -l) -eq 0 ]; then
+ printf "\n"
+ printhl "ERROR: No files were downloaded"
+ printf "${C_SEPARATOR} ------------------------------\n"
+ exit 1
+fi
+
+# Check files
+printsep
+printhl "Checking integrity of downloaded files:\n"
+
+/usr/bin/find -type f | while read N
+do
+ stat_busy "File '$(echo $N | /bin/awk -F/ '{print $NF}')'... "
+ scan1=$(/bin/cat "$N" | /usr/bin/wc -l)
+ scan2=$(/bin/egrep -o ":[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*-[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" "$N" | /usr/bin/wc -l)
+ if [ $scan1 -eq $scan2 ]; then
+ stat_done
+ else
+ if [ $scan2 -gt 0 ]; then
+ if [ $scan1 -gt $scan2 ]; then
+ stat_append "$(($scan1-$scan2)) of $scan1 entries failed validation; keeping the file"
+ stat_done
+ fi
+ else
+ stat_fail
+ stat_busy "[!!] Removing corrupted file... "
+ rm "$N" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ stat_done
+ fi
+ fi
+ fi
+done
+
+printsep
+printhl "Saving the list:\n"
+
+# Make backup
+if [ "$BACKUP_OLD_LIST" = "yes" ] && [ -f "$CONF_DIR"/"$LIST_FILE" ]; then
+ stat_busy "Backing up old list to '$CONF_DIR/$LIST_FILE.gz'... "
+ /bin/gzip -f "$CONF_DIR"/"$LIST_FILE" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+fi
+
+# Save the list
+stat_busy "Saving new list to '$CONF_DIR/$LIST_FILE'... "
+/bin/cat "$TEMP_DIR"/* > "$CONF_DIR"/"$LIST_FILE" 2>&1
+if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+else
+ stat_done
+ printf "\n"
+ printhl "Saved `cat "$CONF_DIR"/"$LIST_FILE" | wc -l` ranges"
+ printf "${C_SEPARATOR} ------------------------------\n"
+fi
+
+rm -rf "$TEMP_DIR"
+
+# Restart MoBlock
+if [ -f /var/run/moblock.pid ]; then
+ /bin/kill -HUP `cat /var/run/moblock.pid` >/dev/null 2>&1
+fi
+
+exit 0
+
diff --git a/abs/not_built/extra/community/moblock/moblock.install b/abs/not_built/extra/community/moblock/moblock.install
new file mode 100644
index 0000000..6afe1d5
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/moblock.install
@@ -0,0 +1,26 @@
+post_install() {
+ #clean up after an old hack
+ if [ -h /usr/lib/libnfnetlink.so.1 ]; then
+ rm /usr/lib/libnfnetlink.so.1
+ fi
+ echo ""
+ echo ">>> moblock-update script no longer uses /var/spool/moblock"
+ echo ">>> as a temporary directory. You can safely delete it."
+ echo ""
+}
+
+post_upgrade() {
+ #clean up after an old hack
+ if [ -h /usr/lib/libnfnetlink.so.1 ]; then
+ rm /usr/lib/libnfnetlink.so.1
+ fi
+ echo ""
+ echo ">>> moblock-update script no longer uses /var/spool/moblock"
+ echo ">>> as a temporary directory. You can safely delete it."
+ echo ""
+}
+
+op=$1
+shift
+$op $*
+
diff --git a/abs/not_built/extra/community/moblock/moblock.logrotate b/abs/not_built/extra/community/moblock/moblock.logrotate
new file mode 100644
index 0000000..6ed64bb
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/moblock.logrotate
@@ -0,0 +1,11 @@
+"/var/log/moblock.log" /var/log/MoBlock.stats {
+ daily
+ missingok
+ notifempty
+ sharedscripts
+ postrotate
+ /usr/bin/test -f /var/run/moblock.pid && /bin/kill -HUP `cat /var/run/moblock.pid 2>/dev/null` 2>/dev/null || exit 0
+ endscript
+ compress
+}
+
diff --git a/abs/not_built/extra/community/moblock/moblock_0.9_rc2.patch b/abs/not_built/extra/community/moblock/moblock_0.9_rc2.patch
new file mode 100644
index 0000000..69994ff
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/moblock_0.9_rc2.patch
@@ -0,0 +1,912 @@
+diff -Naur MoBlock-0.8_orig/Changelog MoBlock-0.8/Changelog
+--- MoBlock-0.8_orig/Changelog 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/Changelog 2008-02-10 11:56:08.000000000 -0500
+@@ -4,6 +4,23 @@
+
+ ---
+
++0.9: - fix for kernel 2.6.23
++ - support for MARKing packets instead of DROPping or
++ ACCEPTing
++ - example start script that REJECTs packets instead of
++ DROPping.
++ - Integrated a patch from David Walluck for proper loading
++ of p2b files (version 2)
++ - command line options for logging to syslog, stdout
++ and log timestamping
++ - fixed loading pg1 lists with comments (lines starting
++ with '#')
++ - fixed a bug in ranges merge
++ - applied patch 2223 by badfish99: "IPs logged with bytes
++ reversed on big-endian m/c"
++
++---
++
+ 0.8: - support for NFQUEUE-ing from iptables FORWARD chain (thx to
+ hyakki for suggestions and testing!)
+ - included patches from Maximilian Mehnert to support log file
+diff -Naur MoBlock-0.8_orig/Makefile MoBlock-0.8/Makefile
+--- MoBlock-0.8_orig/Makefile 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/Makefile 2007-11-22 08:10:44.000000000 -0500
+@@ -1,4 +1,3 @@
+-
+ # To use the old-soon-to-be-deprecated libipq interface
+ # uncomment the following line and comment the NFQUEUE one,
+ # then comment the gcc line with netfilter_queue and
+@@ -7,7 +6,7 @@
+ #QUEUE_LIB=LIBIPQ
+ QUEUE_LIB=NFQUEUE
+
+-CFLAGS=-Wall -O2 -march=i586 -mtune=i686 -fomit-frame-pointer -ffast-math \
++CFLAGS=-Wall -O3 -march=i586 -mtune=i686 -fomit-frame-pointer -ffast-math \
+ -D_GNU_SOURCE -D$(QUEUE_LIB) -L/usr/include/libipq
+ CC=gcc
+
+diff -Naur MoBlock-0.8_orig/MoBlock-nfq-reject.sh MoBlock-0.8/MoBlock-nfq-reject.sh
+--- MoBlock-0.8_orig/MoBlock-nfq-reject.sh 1969-12-31 19:00:00.000000000 -0500
++++ MoBlock-0.8/MoBlock-nfq-reject.sh 2007-11-22 08:10:44.000000000 -0500
+@@ -0,0 +1,104 @@
++#!/bin/sh
++#
++# MoBlock.sh - MoBlock start script
++# ---------------------------------
++
++ACTIVATE_CHAINS=1
++WHITE_TCP_IN=""
++WHITE_UDP_IN=""
++WHITE_TCP_OUT=""
++WHITE_UDP_OUT=""
++WHITE_TCP_FORWARD=""
++WHITE_UDP_FORWARD=""
++REJECT_MARK="10"
++
++PIDF=/var/run/moblock.pid
++
++FNAME=`basename $0 .sh`
++MODE=`echo $FNAME|awk -F- '{print $2}'`
++
++if [ -f $PIDF ]; then
++ PID=`cat $PIDF`
++ if [ `ps -p $PID|wc -l` -gt 1 ]; then
++ echo "$0: $PIDF exists and processs seems to be running. Exiting."
++ exit 1;
++ fi;
++fi;
++
++if [ $MODE == "ipq" ]; then
++ modprobe ip_queue
++ TARGET="QUEUE"
++elif [ $MODE == "nfq" ]; then
++ modprobe ipt_NFQUEUE
++ TARGET="NFQUEUE"
++fi;
++
++modprobe ipt_state
++
++# Filter all traffic, edit for your needs
++
++iptables -N MOBLOCK_IN
++iptables -N MOBLOCK_OUT
++iptables -N MOBLOCK_FW
++
++if [ $ACTIVATE_CHAINS -eq 1 ]; then
++ iptables -I INPUT -p all -m state --state NEW -j MOBLOCK_IN
++ iptables -I OUTPUT -p all -m state --state NEW -j MOBLOCK_OUT
++ iptables -I FORWARD -p all -m state --state NEW -j MOBLOCK_FW
++fi;
++
++
++iptables -I MOBLOCK_IN -p all -j $TARGET
++
++iptables -I MOBLOCK_OUT -p all -j $TARGET
++
++iptables -I MOBLOCK_FW -p all -j $TARGET
++
++for PORT in $WHITE_TCP_OUT; do
++ iptables -I MOBLOCK_OUT -p tcp --dport $PORT -j ACCEPT
++done
++for PORT in $WHITE_UDP_OUT; do
++ iptables -I MOBLOCK_OUT -p udp --dport $PORT -j ACCEPT
++done
++
++for PORT in $WHITE_TCP_IN; do
++ iptables -I MOBLOCK_IN -p tcp --dport $PORT -j ACCEPT
++done
++for PORT in $WHITE_UDP_IN; do
++ iptables -I MOBLOCK_IN -p udp --dport $PORT -j ACCEPT
++done
++
++for PORT in $WHITE_TCP_FORWARD; do
++ iptables -I MOBLOCK_FW -p tcp --dport $PORT -j ACCEPT
++done
++for PORT in $WHITE_UDP_FORWARD; do
++ iptables -I MOBLOCK_FW -p udp --dport $PORT -j ACCEPT
++done
++
++iptables -I OUTPUT -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++iptables -I FORWARD -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++
++# Here you can change block list and log files
++./moblock -d /etc/ipfilter.dat -t -s -r $REJECT_MARK ./moblock.log
++
++# On exit delete the rules we added
++
++if [ $ACTIVATE_CHAINS -eq 1 ]; then
++ iptables -D INPUT -p all -m state --state NEW -j MOBLOCK_IN
++ iptables -D OUTPUT -p all -m state --state NEW -j MOBLOCK_OUT
++ iptables -D FORWARD -p all -m state --state NEW -j MOBLOCK_FW
++fi;
++
++iptables -D OUTPUT -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++iptables -D FORWARD -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++
++iptables -F MOBLOCK_IN
++iptables -X MOBLOCK_IN
++iptables -F MOBLOCK_OUT
++iptables -X MOBLOCK_OUT
++iptables -F MOBLOCK_FW
++iptables -X MOBLOCK_FW
++
++if [ -f $PIDF ]; then
++ rm $PIDF;
++fi
+diff -Naur MoBlock-0.8_orig/MoBlock.c MoBlock-0.8/MoBlock.c
+--- MoBlock-0.8_orig/MoBlock.c 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/MoBlock.c 2008-02-10 11:56:08.000000000 -0500
+@@ -35,6 +35,8 @@
+ #include <linux/netfilter_ipv4.h>
+ #include <signal.h>
+ #include <regex.h>
++#include <time.h>
++#include <syslog.h>
+
+ // in Makefile define LIBIPQ to use soon-to-be-deprecated ip_queue,
+ // NFQUEUE for ipt_NFQUEUE (from kernel 2.6.14)
+@@ -46,7 +48,7 @@
+ #include <libnetfilter_queue/libnetfilter_queue.h>
+ #endif
+
+-#define MB_VERSION "0.8"
++#define MB_VERSION "0.9rc2"
+
+ #define BUFSIZE 2048
+ #define PAYLOADSIZE 21
+@@ -58,6 +60,9 @@
+ #define SRC_ADDR(payload) (*(in_addr_t *)((payload)+12))
+ #define DST_ADDR(payload) (*(in_addr_t *)((payload)+16))
+
++#define likely(x) __builtin_expect((x),1)
++#define unlikely(x) __builtin_expect((x),0)
++
+ // rbt datatypes/functions
+
+ typedef enum {
+@@ -96,7 +101,8 @@
+ char filename[100];
+ } blocklist_info;
+
+-int merged_ranges=0, skipped_ranges=0;
++u_int32_t merged_ranges=0, skipped_ranges=0, accept_mark=0, reject_mark=0;
++u_int8_t log2syslog=0, log2file=0, log2stdout=0, timestamp=0;
+
+ #ifdef LIBIPQ
+ static void die(struct ipq_handle *h)
+@@ -112,11 +118,13 @@
+ static char buf[2][ sizeof("aaa.bbb.ccc.ddd") ];
+ static short int index=0;
+
++ ip = ntohl(ip);
++
+ sprintf(buf[index],"%d.%d.%d.%d",
+- (ip) & 0xff,
+- (ip >> 8) & 0xff,
++ (ip >> 24) & 0xff,
+ (ip >> 16) & 0xff,
+- (ip >> 24) & 0xff);
++ (ip >> 8) & 0xff,
++ (ip) & 0xff);
+
+ if (index) {
+ index=0;
+@@ -134,10 +142,38 @@
+ fflush(stdout);
+ }
+
++void log_action(char *msg)
++{
++ char timestr[30];
++ time_t tv;
++
++ if (timestamp) {
++ tv = time(NULL);
++ strncpy(timestr, ctime(&tv), 19);
++ timestr[19] = '\0';
++ strcat(timestr, "| ");
++ }
++ else strcpy(timestr, "");
++
++ if (log2syslog) {
++ syslog(LOG_INFO, msg);
++ }
++
++ if (log2file) {
++ fprintf(logfile,"%s%s",timestr,msg);
++ fflush(logfile);
++ }
++
++ if (log2stdout) {
++ fprintf(stdout,"%s%s",timestr,msg);
++ }
++}
++
+ inline void ranged_insert(char *name,char *ipmin,char *ipmax)
+ {
+ recType tmprec;
+ int ret;
++ char msgbuf[255];
+
+ if ( strlen(name) > (BNAME_LEN-1) ) {
+ strncpy(tmprec.blockname, name, BNAME_LEN);
+@@ -149,10 +185,11 @@
+ if ( (ret=insert(ntohl(inet_addr(ipmin)),&tmprec)) != STATUS_OK )
+ switch(ret) {
+ case STATUS_MEM_EXHAUSTED:
+- fprintf(logfile,"Error inserting range, MEM_EXHAUSTED.\n");
++ log_action("Error inserting range, MEM_EXHAUSTED.\n");
+ break;
+ case STATUS_DUPLICATE_KEY:
+- fprintf(logfile,"Duplicated range ( %s )\n",name);
++ sprintf(msgbuf,"Duplicated range ( %s )\n",name);
++ log_action(msgbuf);
+ break;
+ case STATUS_MERGED:
+ merged_ranges++;
+@@ -161,8 +198,9 @@
+ skipped_ranges++;
+ break;
+ default:
+- fprintf(logfile,"Unexpected return value from ranged_insert()!\n");
+- fprintf(logfile,"Return value was: %d\n",ret);
++ log_action("Unexpected return value from ranged_insert()!\n");
++ sprintf(msgbuf,"Return value was: %d\n",ret);
++ log_action(msgbuf);
+ break;
+ }
+ }
+@@ -177,15 +215,19 @@
+ regex_t regmain;
+ regmatch_t matches[4];
+ int i;
++ char msgbuf[255];
+
+ regcomp(&regmain, "^(.*)[:]([0-9.]*)[-]([0-9.]*)$", REG_EXTENDED);
+
+ fp=fopen(filename,"r");
+ if ( fp == NULL ) {
+- fprintf(logfile,"Error opening %s, aborting...\n", filename);
++ sprintf(msgbuf,"Error opening %s, aborting...\n", filename);
++ log_action(msgbuf);
+ exit(-1);
+ }
+ while ( (count=getline(&line,&len,fp)) != -1 ) {
++ if ( line[0] == '#' ) //comment line, skip
++ continue;
+ for(i=count-1; i>=0; i--) {
+ if ((line[i] == '\r') || (line[i] == '\n') || (line[i] == ' ')) {
+ line[i] = 0;
+@@ -207,36 +249,78 @@
+ line+matches[3].rm_so);
+ ntot++;
+ } else {
+- fprintf(logfile,"Short guarding.p2p line %s, skipping it...\n", line);
++ sprintf(msgbuf,"Short guarding.p2p line %s, skipping it...\n", line);
++ log_action(msgbuf);
+ }
+ }
+ if (line)
+ free(line);
+ fclose(fp);
+- fprintf(logfile,"Ranges loaded: %d\n",ntot);
+- printf("* Ranges loaded: %d\n",ntot);
++ sprintf(msgbuf, "* Ranges loaded: %d\n", ntot);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ }
+
+-void loadlist_pg2(char *filename) // experimental, no check for list sanity
++void loadlist_pg2(char *filename) // supports only v2 files
+ {
+ FILE *fp;
+- int i,retval,ntot=0;
+- char name[100],ipmin[16]; // hope we don't have a list with longer names...
++ int i, j, c, retval=0, ntot=0;
++ char name[100],ipmin[16], msgbuf[255]; // hope we don't have a list with longer names...
+ uint32_t start_ip, end_ip;
+ struct in_addr startaddr,endaddr;
++ size_t s;
+
+ fp=fopen(filename,"r");
+ if ( fp == NULL ) {
+- fprintf(logfile,"Error opening %s, aborting...\n", filename);
++ sprintf(msgbuf, "Error opening %s, aborting...\n", filename);
++ log_action(msgbuf);
+ exit(-1);
+ }
+
+- fgetc(fp); // skip first 4 bytes, don't know what they are
+- fgetc(fp);
+- fgetc(fp);
+- retval=fgetc(fp);
++ for (j=0; j<4; j++) {
++ c=fgetc(fp);
++ if ( c != 0xff ) {
++ sprintf(msgbuf,"Byte %d: 0x%x != 0xff, aborting...\n", j+1, c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++ }
++
++ c=fgetc(fp);
++ if ( c != 'P' ) {
++ sprintf(msgbuf,"Byte 5: %c != P, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ c=fgetc(fp);
++ if ( c != '2' ) {
++ sprintf(msgbuf,"Byte 6: %c != 2, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
+
+- while ( retval != EOF ) {
++ c=fgetc(fp);
++ if ( c != 'B' ) {
++ sprintf(msgbuf,"Byte 7: %c != B, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ c=fgetc(fp);
++ if ( c != 0x02 ) {
++ sprintf(msgbuf,"Byte 8: version: %d != 2, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ do {
+ i=0;
+ do {
+ name[i]=fgetc(fp);
+@@ -244,9 +328,22 @@
+ } while ( name[i-1] != 0x00 && name[i-1] != EOF);
+ if ( name[i-1] != EOF ) {
+ name[i-1]='\0';
+- fread(&start_ip,4,1,fp);
+- fread(&end_ip,4,1,fp);
+- startaddr.s_addr=start_ip;
++ s=fread(&start_ip,4,1,fp);
++ if ( s != 1 ) {
++ sprintf(msgbuf,"Failed to read start IP: %d != 1, aborting...\n", (int)s);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++ s=fread(&end_ip,4,1,fp);
++ if ( s != 1 ) {
++ sprintf(msgbuf,"Failed to read end IP: %d != 1, aborting...\n", (int)s);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ startaddr.s_addr=start_ip;
+ endaddr.s_addr=end_ip;
+ strcpy(ipmin,inet_ntoa(startaddr));
+ ranged_insert(name,ipmin,inet_ntoa(endaddr));
+@@ -255,22 +352,25 @@
+ else {
+ retval=EOF;
+ }
+- }
++ } while ( retval != EOF );
+ fclose(fp);
+- fprintf(logfile,"Ranges loaded: %d\n",ntot);
+- printf("* Ranges loaded: %d\n",ntot);
++ sprintf(msgbuf, "* Ranges loaded: %d\n",ntot);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ }
+
+ void loadlist_dat(char *filename)
+ {
+ FILE *fp;
+ int ntot=0;
+- char readbuf[200], *name, start_ip[16], end_ip[16];
++ char readbuf[200], *name, start_ip[16], end_ip[16], msgbuf[255];
+ unsigned short ip1_0, ip1_1, ip1_2, ip1_3, ip2_0, ip2_1, ip2_2, ip2_3;
+
+ fp=fopen(filename,"r");
+ if ( fp == NULL ) {
+- fprintf(logfile,"Error opening %s, aborting...\n", filename);
++ sprintf(msgbuf,"Error opening %s, aborting...\n", filename);
++ log_action(msgbuf);
+ exit(-1);
+ }
+
+@@ -286,38 +386,45 @@
+ ntot++;
+ }
+ fclose(fp);
+- fprintf(logfile,"Ranges loaded: %d\n",ntot);
+- printf("* Ranges loaded: %d\n",ntot);
++ sprintf(msgbuf, "* Ranges loaded: %d\n", ntot);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ }
+
+ void reopen_logfile(void)
+ {
++ char msgbuf[255];
++
+ if (logfile != NULL) {
+ fclose(logfile);
+ logfile=NULL;
+ }
+ logfile=fopen(logfile_name,"a");
+ if (logfile == NULL) {
+- fprintf(stderr, "Unable to open logfile %s\n", logfile_name);
++ sprintf(msgbuf, "Unable to open logfile %s\n", logfile_name);
++ log_action(msgbuf);
+ exit(-1);
+ }
+- fprintf(logfile, "Reopening logfile.\n");
++ log_action("Reopening logfile.\n");
+ }
+
+ void my_sahandler(int sig)
+ {
++ char msgbuf[255];
++
+ switch( sig ) {
+ case SIGUSR1:
+- fprintf(logfile,"Got SIGUSR1! Dumping stats...\n");
++ log_action("Got SIGUSR1! Dumping stats...\n");
+ ll_show(logfile);
+ reopen_logfile();
+ break;
+ case SIGUSR2:
+- fprintf(logfile,"Got SIGUSR2! Dumping stats to /var/log/MoBlock.stats\n");
++ log_action("Got SIGUSR2! Dumping stats to /var/log/MoBlock.stats\n");
+ ll_log();
+ break;
+ case SIGHUP:
+- fprintf(logfile,"\nGot SIGHUP! Dumping and resetting stats, reloading blocklist\n\n");
++ log_action("Got SIGHUP! Dumping and resetting stats, reloading blocklist\n");
+ ll_log();
+ ll_clear(); // clear stats list
+ destroy_tree(); // clear loaded ranges
+@@ -332,17 +439,18 @@
+ loadlist_pg2(blocklist_info.filename);
+ break;
+ default:
+- fprintf(logfile,"Unknown blocklist type while reloading list, contact the developer!\n");
++ log_action("Unknown blocklist type while reloading list, contact the developer!\n");
+ break;
+ }
+ reopen_logfile();
+ break;
+ case SIGTERM:
+- fprintf(logfile,"Got SIGTERM! Dumping stats and exiting.\n");
++ log_action("Got SIGTERM! Dumping stats and exiting.\n");
+ ll_log();
+ exit(0);
+ default:
+- fprintf(logfile,"Received signal = %d but not handled\n",sig);
++ sprintf(msgbuf,"Received signal = %d but not handled\n",sig);
++ log_action(msgbuf);
+ break;
+ }
+ }
+@@ -378,7 +486,7 @@
+ {
+ int id=0, status=0;
+ struct nfqnl_msg_packet_hdr *ph;
+- char *payload;
++ char *payload, msgbuf[255];
+ recType tmprec;
+
+ ph = nfq_get_msg_packet_hdr(nfa);
+@@ -389,34 +497,78 @@
+ switch (ph->hook) {
+ case NF_IP_LOCAL_IN:
+ if ( find(ntohl(SRC_ADDR(payload)),&tmprec) == STATUS_OK ) {
++ // we drop the packet instead of rejecting
++ // we don't want the other host to know we are alive
+ status=nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
+- fprintf(logfile,"Blocked IN: %s,hits: %d,SRC: %s\n",tmprec.blockname,tmprec.hits,ip2str(SRC_ADDR(payload)));
+- } else status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ sprintf(msgbuf,"Blocked IN: %s,hits: %d,SRC: %s\n",tmprec.blockname,tmprec.hits,ip2str(SRC_ADDR(payload)));
++ log_action(msgbuf);
++ }
++ else if ( unlikely(accept_mark) ) {
++ // we set the user-defined accept_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, accept_mark, 0, NULL);
++ }
++ else {
++ // no accept_mark, just NF_ACCEPT the packet
++ status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ }
+ break;
+ case NF_IP_LOCAL_OUT:
+ if ( find(ntohl(DST_ADDR(payload)),&tmprec) == STATUS_OK ) {
+- status=nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
+- fprintf(logfile,"Blocked OUT: %s,hits: %d,DST: %s\n",tmprec.blockname,tmprec.hits,ip2str(DST_ADDR(payload)));
+- } else status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ if ( likely(reject_mark) ) {
++ // we set the user-defined reject_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, reject_mark, 0, NULL);
++ }
++ else {
++ status = nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
++ }
++ sprintf(msgbuf,"Blocked OUT: %s,hits: %d,DST: %s\n",tmprec.blockname,tmprec.hits,ip2str(DST_ADDR(payload)));
++ log_action(msgbuf);
++ }
++ else if ( unlikely(accept_mark) ) {
++ // we set the user-defined accept_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, accept_mark, 0, NULL);
++ }
++ else {
++ // no accept_mark, just NF_ACCEPT the packet
++ status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ }
+ break;
+ case NF_IP_FORWARD:
+ if ( find2(ntohl(SRC_ADDR(payload)), ntohl(DST_ADDR(payload)), &tmprec) == STATUS_OK ) {
+- status=nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
+- fprintf(logfile,"Blocked FWD: %s,hits: %d,SRC: %s, DST: %s\n",
++ if ( likely(reject_mark) ) {
++ // we set the user-defined reject_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, reject_mark, 0, NULL);
++ }
++ else {
++ status = nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
++ }
++ sprintf(msgbuf,"Blocked FWD: %s,hits: %d,SRC: %s, DST: %s\n",
+ tmprec.blockname, tmprec.hits, ip2str(SRC_ADDR(payload)), ip2str(DST_ADDR(payload)));
+- fflush(logfile);
+- } else status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ log_action(msgbuf);
++ }
++ else if ( unlikely(accept_mark) ) {
++ // we set the user-defined accept_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, accept_mark, 0, NULL);
++ }
++ else {
++ // no accept_mark, just NF_ACCEPT the packet
++ status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ }
+ break;
+ default:
+- fprintf(logfile,"Not NF_LOCAL_IN/OUT/FORWARD packet!\n");
++ log_action("Not NF_LOCAL_IN/OUT/FORWARD packet!\n");
+ break;
+ }
+ }
+ else {
+- fprintf(logfile,"NFQUEUE: can't get msg packet header.\n");
++ log_action("NFQUEUE: can't get msg packet header.\n");
+ return(1); // from nfqueue source: 0 = ok, >0 = soft error, <0 hard error
+ }
+- fflush(logfile);
+ return(0);
+ }
+ #endif
+@@ -492,46 +644,48 @@
+ struct nfq_q_handle *qh;
+ struct nfnl_handle *nh;
+ int fd,rv;
+- char buf[BUFSIZE];
++ char buf[BUFSIZE], msgbuf[255];
+
+ h = nfq_open();
+ if (!h) {
+- fprintf(logfile, "Error during nfq_open()\n");
++ log_action("Error during nfq_open()\n");
+ exit(-1);
+ }
+
+ if (nfq_unbind_pf(h, AF_INET) < 0) {
+- fprintf(logfile, "error during nfq_unbind_pf()\n");
+- exit(-1);
++ log_action("error during nfq_unbind_pf()\n");
++ //exit(-1);
+ }
+
+ if (nfq_bind_pf(h, AF_INET) < 0) {
+- fprintf(logfile, "Error during nfq_bind_pf()\n");
++ log_action("Error during nfq_bind_pf()\n");
+ exit(-1);
+ }
+
+- fprintf(logfile,"NFQUEUE: binding to queue '%hd'\n", queuenum);
++ sprintf(msgbuf,"NFQUEUE: binding to queue '%hd'\n", queuenum);
++ log_action(msgbuf);
+ qh = nfq_create_queue(h, queuenum, &nfqueue_cb, NULL);
+ if (!qh) {
+- fprintf(logfile, "error during nfq_create_queue()\n");
++ log_action("error during nfq_create_queue()\n");
+ exit(-1);
+ }
+
+ if (nfq_set_mode(qh, NFQNL_COPY_PACKET, PAYLOADSIZE) < 0) {
+- fprintf(logfile, "can't set packet_copy mode\n");
++ log_action("can't set packet_copy mode\n");
+ exit(-1);
+ }
+
+ nh = nfq_nfnlh(h);
+ fd = nfnl_fd(nh);
+
+- while ((rv = recv(fd, buf, sizeof(buf), 0)) && rv >= 0) {
++ while ((rv = recv(fd, buf, sizeof(buf), 0)) >= 0) {
+ nfq_handle_packet(h, buf, rv);
+ }
+
+- printf("NFQUEUE: unbinding from queue 0\n");
++ log_action("NFQUEUE: unbinding from queue 0\n");
+ nfq_destroy_queue(qh);
+ nfq_close(h);
++ nfq_unbind_pf(h, AF_INET);
+ return(0);
+ #endif
+
+@@ -540,11 +694,16 @@
+ void print_options(void)
+ {
+ printf("\nMoBlock %s by Morpheus",MB_VERSION);
+- printf("\nSyntax: MoBlock -dnp <blocklist> [-b] [-q 0-65535] <logfile>\n\n");
++ printf("\nSyntax: MoBlock -dnp <blocklist> [-q 0-65535] <logfile>\n\n");
+ printf("\t-d\tblocklist is an ipfilter.dat file\n");
+ printf("\t-n\tblocklist is a peerguardian 2.x file (.p2b)\n");
+ printf("\t-p\tblocklist is a peerguardian file (.p2p)\n");
+ printf("\t-q\t0-65535 NFQUEUE number (as specified in --queue-num with iptables)\n");
++ printf("\t-r MARK\tmark packet with MARK instead of DROP\n");
++ printf("\t-a MARK\tmark packet with MARK instead of ACCEPT\n");
++ printf("\t-l\tlog to stdout\n");
++ printf("\t-s\tlog to syslog\n");
++ printf("\t-t\tlog timestamping\n\n");
+ }
+
+ void on_quit()
+@@ -556,6 +715,7 @@
+ {
+ int ret=0;
+ unsigned short int queuenum=0;
++ char msgbuf[255];
+
+ if (argc < 3) {
+ print_options();
+@@ -591,10 +751,11 @@
+ }
+ logfile_name=malloc(strlen(argv[argc-1])+1);
+ strcpy(logfile_name,argv[argc-1]);
++ log2file = 1;
+ printf("* Logging to %s\n",logfile_name);
+
+ while (1) { //scan command line options
+- ret=getopt(argc, argv, "d:n:p:q:");
++ ret=getopt(argc, argv, "d:n:p:q:a:r:stl");
+ if ( ret == -1 ) break;
+
+ switch (ret) {
+@@ -619,6 +780,28 @@
+ case 'q':
+ queuenum=(unsigned short int)atoi(optarg);
+ break;
++ case 'r':
++ reject_mark=(u_int32_t)atoi(optarg);
++ printf("* DROP MARK: %d\n", reject_mark);
++ reject_mark=htonl(reject_mark);
++ break;
++ case 'a':
++ accept_mark=(u_int32_t)atoi(optarg);
++ printf("* ACCEPT MARK: %d\n", accept_mark);
++ accept_mark=htonl(accept_mark);
++ break;
++ case 's':
++ log2syslog = 1;
++ printf("* Logging to syslog\n");
++ break;
++ case 't':
++ timestamp = 1;
++ printf("* Log timestamp enabled\n");
++ break;
++ case 'l':
++ log2stdout = 1;
++ printf("* Log to stdout enabled\n");
++ break;
+ case '?': // unknown option
+ print_options();
+ exit(-1);
+@@ -626,10 +809,14 @@
+ }
+ }
+
+- printf("* Merged ranges: %d\n", merged_ranges);
+- fprintf(logfile, "Merged ranges: %d\n", merged_ranges);
+- printf("* Skipped useless ranges: %d\n", skipped_ranges);
+- fprintf(logfile,"Skipped useless ranges: %d\n", skipped_ranges);
++ sprintf(msgbuf, "* Merged ranges: %d\n", merged_ranges);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
++ sprintf(msgbuf,"* Skipped useless ranges: %d\n", skipped_ranges);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ fflush(NULL);
+
+ netlink_loop(queuenum);
+diff -Naur MoBlock-0.8_orig/README MoBlock-0.8/README
+--- MoBlock-0.8_orig/README 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/README 2007-11-22 08:10:44.000000000 -0500
+@@ -1,5 +1,5 @@
+
+-MoBlock README v0.8
++MoBlock README v0.9
+ http://moblock.berlios.de
+
+ .Introduction.
+@@ -47,6 +47,22 @@
+ ip_conntrack 40044 1 ipt_state
+ iptable_filter 2176 1
+ ip_tables 17600 3 ipt_NFQUEUE,ipt_state,iptable_filter
++
++ ...and these with kernel 2.6.23 using NFQUEUE interface:
++
++ nfnetlink_queue 9344 1
++ nfnetlink 4568 2 nfnetlink_queue
++ ipt_REJECT 3520 2
++ xt_mark 1600 2
++ nf_conntrack_ipv4 12424 5
++ iptable_filter 2308 1
++ ip_tables 10328 1 iptable_filter
++ xt_state 1984 5
++ nf_conntrack 48356 2 nf_conntrack_ipv4,xt_state
++ xt_NFQUEUE 1664 3
++ x_tables 11396 5 ipt_REJECT,xt_mark,ip_tables,xt_state,xt_NFQUEUE
++
++ (notice that ipt_NFQUEUE has changed to xt_NFQUEUE, same thing for other modules too)
+
+ 2) A valid guarding.p2p/ipfilter.dat/p2p.p2b host file in /etc ( /etc/guarding.p2p ).
+ MoBlock tries to skip malformed or duplicate ranges but
+@@ -140,8 +156,18 @@
+ To specify a NFQUEUE queue number:
+
+ ./moblock -p /etc/guarding.p2p -q 5 MoBlock.log
++
++ From version 0.9 MoBlock supports MARKing packets and RETURN them to
++ iptables, there's an example start script (MoBlock-nfq-reject.sh) that
++ uses this feature to REJECT packet instead of dropping them. It can help
++ in complex firewall configuration where you need more control of packets
++ flow after MoBlock inspection.
++ See the mentioned start script for reference, you can set the MARK value
++ for packets that MoBlock would drop (ip in list) with the "-r" command line
++ option and for packets that MoBlock would accept (ip not in list) with
++ the "-a" command line option.
+
+- To stop it:
++ To stop MoBlock:
+
+ kill -TERM <MoBlockPid>
+
+@@ -149,7 +175,7 @@
+ To obtain stats about blocked ranges while it's running:
+
+ kill -USR1 <MoBlockPid> # write stats to logfile
+- kill -USR2 <MoBlockPid> # write stats to /var/log/MoBlock.stats
++ kill -USR2 <MoBlockPid> # write stats to /var/log/MoBlock.stats
+
+ ** NEW: to reload the blocklist while MoBlock is running send to it the
+ HUP signal:
+@@ -168,7 +194,10 @@
+ took some code and ideas from his FTwall
+ - Andrew de Quincey (adq at lidskialf dot net) for regular expressions
+ and command line args patch
+-- Maximilian Mehnert (clessing at freenet dot de) for logfile rotation
++- clessing at freenet dot de for logfile rotation
+ patches, pid file creation, start script, fixes/files for debian packaging
++- David Walluck, patch for proper loading of p2b files
++- jre, for continuing clessing work on debian packaging and many other
++ contributions
+
+-Last Updated: 20/Mar/2006
++Last Updated: 15/Oct/2007
+diff -Naur MoBlock-0.8_orig/rbt.c MoBlock-0.8/rbt.c
+--- MoBlock-0.8_orig/rbt.c 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/rbt.c 2008-02-10 11:56:08.000000000 -0500
+@@ -19,7 +19,7 @@
+ #include <stdarg.h>
+ #include <time.h>
+
+-#define RBT_VERSION 0.8
++#define RBT_VERSION 0.9
+ #define BNAME_LEN 80
+
+ /* implementation dependend declarations */
+@@ -421,7 +421,7 @@
+
+ statusEnum insert(keyType key, recType *rec) {
+ nodeType *current, *parent, *x;
+- keyType tmpkey;
++ //keyType tmpkey;
+ recType tmprec;
+ int ret;
+
+@@ -433,6 +433,23 @@
+ current = root;
+ parent = 0;
+ while (current != NIL) {
++ if (compEQ2(current->key, key, rec->ipmax)) { // current node key is inside new range to be inserted
++ strcpy(tmprec.blockname, rec->blockname); // block name from new range
++ if (compLT(current->rec.ipmax, rec->ipmax))
++ tmprec.ipmax = rec->ipmax;
++ else tmprec.ipmax = current->rec.ipmax;
++ tmprec.hits = 0;
++ //printf("deleting node :%lu\n", current->key);
++ ret=delete(current->key);
++ if ( ret != STATUS_OK )
++ return(ret);
++ ret=insert(key, &tmprec);
++ if ( ret == STATUS_OK ) {
++ printf("new merge\n");
++ return(STATUS_MERGED);
++ }
++ else return(ret);
++ }
+ if (compEQ(key, current->key)) {
+ if ( rec->ipmax > current->rec.ipmax ) {
+ current->rec.ipmax=rec->ipmax;
+@@ -458,7 +475,7 @@
+ }
+ }
+ //check if higher ip (ipmax) is already in a range
+- if (compEQ2(rec->ipmax,current->key,current->rec.ipmax)) {
++ /*if (compEQ2(rec->ipmax,current->key,current->rec.ipmax)) {
+ fprintf(logfile,"higher ip in range\n");
+ tmpkey=key;
+ strcpy(tmprec.blockname,current->rec.blockname);
+@@ -470,7 +487,7 @@
+ if ( ret == STATUS_OK )
+ return(STATUS_MERGED);
+ else return(ret);
+- }
++ }*/
+ parent = current;
+ current = compLT(key, current->key) ?
+ current->left : current->right;
+@@ -495,7 +512,7 @@
+ } else {
+ root = x;
+ }
+-
++ //printf("new node, key: %lu, parent: %lu\n", x->key, parent ? parent->key : 0);
+ insertFixup(x);
+ lastFind = NULL;
+
diff --git a/abs/not_built/extra/community/moblock/moblock_include.patch b/abs/not_built/extra/community/moblock/moblock_include.patch
new file mode 100644
index 0000000..644e824
--- /dev/null
+++ b/abs/not_built/extra/community/moblock/moblock_include.patch
@@ -0,0 +1,10 @@
+--- MoBlock-0.8/MoBlock.c.orig 2008-08-15 14:41:49.000000000 -0400
++++ MoBlock-0.8/MoBlock.c 2008-08-15 14:43:45.000000000 -0400
+@@ -32,6 +32,7 @@
+ #include <netinet/udp.h>
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
++#include <limits.h>
+ #include <linux/netfilter_ipv4.h>
+ #include <signal.h>
+ #include <regex.h>
diff --git a/abs/not_built/extra/community/mobloquer/PKGBUILD b/abs/not_built/extra/community/mobloquer/PKGBUILD
new file mode 100644
index 0000000..b6254d5
--- /dev/null
+++ b/abs/not_built/extra/community/mobloquer/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Daniele Marinello <marinz att email dot it>
+
+pkgname=mobloquer
+pkgver=0.6
+pkgrel=6
+pkgdesc="A graphical front end for moblock"
+arch=('i686' 'x86_64')
+url="http://mobloquer.foutrelis.com/"
+license=('GPL')
+depends=('qt' 'blockcontrol')
+source=(http://downloads.sourceforge.net/mobloquer/$pkgname-$pkgver.tar.gz)
+md5sums=('6363ee4c42da1d85367fdd65d4bf42ca')
+
+build() {
+
+ cd $startdir/src/$pkgname-$pkgver
+
+ qmake
+ make || return 1
+
+ install -d ${pkgdir}/usr/share/applications ${pkgdir}/usr/bin ${pkgdir}/usr/share/pixmaps
+ install -m 644 -p $startdir/src/$pkgname-$pkgver/images/mobloquer.png $startdir/pkg/usr/share/pixmaps/
+ install -m 644 -p $startdir/src/$pkgname-$pkgver/other/Mobloquer.desktop $startdir/pkg/usr/share/applications/
+ install -m 755 -p $startdir/src/$pkgname-$pkgver/mobloquer $startdir/pkg/usr/bin/mobloquer
+}
+
diff --git a/abs/not_built/extra/community/motion-svn/PKGBUILD b/abs/not_built/extra/community/motion-svn/PKGBUILD
new file mode 100644
index 0000000..dcbd162
--- /dev/null
+++ b/abs/not_built/extra/community/motion-svn/PKGBUILD
@@ -0,0 +1,42 @@
+# Contributor: Demind <demind@gmail.com>
+pkgname=motion-svn
+pkgver=1
+pkgrel=1
+pkgdesc="Motion is a software motion detector. It grabs images from video4linux devices and/or from webcams."
+arch=('i686' 'x86_64')
+url="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome"
+license=('GPL2')
+depends=('zlib' 'libjpeg')
+makedepends=('subversion')
+provides=('motion')
+conflicts=('motion')
+install="motion-svn.install"
+source=('rc.motion')
+md5sums=('fc09828564850824f8549d258053e0b6')
+
+_svntrunk=http://www.lavrsen.dk/svn/motion/trunk/
+_svnmod=motion
+
+build() {
+ cd $startdir/src
+
+ msg "Retrieving sources"
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+
+ [ -d ./$_svnmod-build ] && rm -fr ./$_svnmod-build
+ cp -r ./$_svnmod ./$_svnmod-build
+ cd ./$_svnmod-build
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting build"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+
+ make || return 1
+ make DESTDIR=$startdir/pkg/ install || return 1
+ install -D -m755 $startdir/src/rc.motion $startdir/pkg/etc/rc.d/motion
+ rm -rf $startdir/src/$_svnmod-build
+}
+
diff --git a/abs/not_built/extra/community/motion-svn/motion-svn.install b/abs/not_built/extra/community/motion-svn/motion-svn.install
new file mode 100644
index 0000000..f88a2fc
--- /dev/null
+++ b/abs/not_built/extra/community/motion-svn/motion-svn.install
@@ -0,0 +1,11 @@
+# arg 1: the new package version
+post_install() {
+ echo ""
+ echo ">>> An example configuration has been saved to /etc/motion-dispatch.conf"
+}
+
+op=$1
+shift
+[ "$(type -t "$op")" = "function" ] && $op "$@"
+
+# vim:set ts=2 et:
diff --git a/abs/not_built/extra/community/motion-svn/rc.motion b/abs/not_built/extra/community/motion-svn/rc.motion
new file mode 100644
index 0000000..7dd027c
--- /dev/null
+++ b/abs/not_built/extra/community/motion-svn/rc.motion
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/motion`
+case "$1" in
+ start)
+ stat_busy "Starting Motion"
+ [ -z "$PID" ] && /usr/bin/motion
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon motion
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Motion"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon motion
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/extra/community/mre/PKGBUILD b/abs/not_built/extra/community/mre/PKGBUILD
new file mode 100644
index 0000000..4868d33
--- /dev/null
+++ b/abs/not_built/extra/community/mre/PKGBUILD
@@ -0,0 +1,35 @@
+pkgname=mre
+pkgver=1.1.2
+pkgrel=6
+_kernver=2.6.36-LinHES
+pkgdesc="Myth Recording Extender"
+arch=('i686')
+url="http://sourceforge.net/projects/mythtv-tools/"
+license=('GPL-2')
+depends=('peardb' 'pearlog')
+source=('mre-1.1.2.tar.gz' 'patch.diff' 'run' 'mre.lr')
+install=('mre.install')
+
+build() {
+ cd ${srcdir}/mre-1.1.2/
+ patch -p0 < ../patch.diff
+ ./configure
+ make INST_ROOT=${pkgdir} install
+ cp ${srcdir}/mre-1.1.2/conf/mre.conf ${pkgdir}/etc/mre.conf
+ cp ${srcdir}/mre-1.1.2/test/test_title_subtitle.php\
+ ${pkgdir}/usr/local/bin/
+ chmod a+x ${pkgdir}/usr/local/bin/test_title_subtitle.php
+ rm -r ${pkgdir}/etc/init.d
+ mkdir -p ${pkgdir}/var/log/mre
+ chown root:log "${pkgdir}/var/log/mre"
+ touch ${pkgdir}/var/log/mre/mre.log
+ chown mythtv:mythtv "${pkgdir}/var/log/mre/mre.log"
+ mkdir -p ${pkgdir}/etc/sv/mre
+ cp ${srcdir}/run ${pkgdir}/etc/sv/mre/run
+ mkdir -p ${pkgdir}/etc/logrotate.d
+ cp ${srcdir}/mre.lr ${pkgdir}/etc/logrotate.d/mre.lr
+}
+md5sums=('8ab312e7597ae9413a57bd5e9a068096'
+ 'ed6cb9012c88d589e26132796132bf25'
+ '10e01d572b45ad718e49ff9ef5c230c5'
+ '6d71ab57afd974c5130c994b94e8746f')
diff --git a/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz b/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz
new file mode 100644
index 0000000..3846e4b
--- /dev/null
+++ b/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz
Binary files differ
diff --git a/abs/not_built/extra/community/mre/mre.install b/abs/not_built/extra/community/mre/mre.install
new file mode 100755
index 0000000..bb08427
--- /dev/null
+++ b/abs/not_built/extra/community/mre/mre.install
@@ -0,0 +1,20 @@
+# arg 1: the new package version
+post_install() {
+ add_service.sh mre
+ sed -i.pacsave '/^open_basedir/s|$|:/var/log/mre:/usr/local/lib/mre|' /etc/php/php.ini
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+
+# arg 1: the old package version
+post_remove() {
+ remove_service.sh mre
+ sed -i.pacsave '/^open_basedir/s|:/var/log/mre:/usr/local/lib/mre||' /etc/php/php.ini
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/community/mre/mre.lr b/abs/not_built/extra/community/mre/mre.lr
new file mode 100644
index 0000000..3b54c23
--- /dev/null
+++ b/abs/not_built/extra/community/mre/mre.lr
@@ -0,0 +1,9 @@
+/var/log/mre/mre.log {
+ copytruncate
+ daily
+ size 10M
+ missingok
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/abs/not_built/extra/community/mre/patch.diff b/abs/not_built/extra/community/mre/patch.diff
new file mode 100644
index 0000000..38a501a
--- /dev/null
+++ b/abs/not_built/extra/community/mre/patch.diff
@@ -0,0 +1,293 @@
+--- ../mre-1.1.2/class/MythClient.php.original 2006-04-05 17:39:13.000000000 -0500
++++ ../mre-1.1.2/class/MythClient.php 2010-05-14 10:16:54.000000000 -0500
+@@ -112,7 +112,7 @@
+ return '0';
+ }
+ foreach($out as $line)
+- if(preg_match('/^Library API version: (.*)$/', $line, $matches))
++ if(preg_match('/^Library API *: (.*)$/', $line, $matches))
+ return $matches[1];
+ return '0';
+ }
+--- ../mre-1.1.2/conf/mre.conf.in.original 2006-08-13 16:48:57.000000000 -0500
++++ ../mre-1.1.2/conf/mre.conf.in 2010-05-04 00:25:26.000000000 -0500
+@@ -28,9 +28,9 @@
+ ; *** Application settings
+ ; Unprivledged user to run as, if started as root
+ ; This script will not run as root
+-user = nobody
++user = mythtv
+ ; Run MRE as daemon? Requires pcntl_* functions built into PHP
+-daemon = true
++daemon = false
+ ; Number of minutes to sleep between runs
+ sleep = 5
+ ; Logging level (0 = normal, 1 = +error, 2 = +warning, 3 = +debug)
+--- ../mre-1.1.2/class/EventFactory.php.original 2006-09-22 10:18:07.000000000 -0500
++++ ../mre-1.1.2/class/EventFactory.php 2010-08-28 00:02:37.000000000 -0500
+@@ -50,7 +50,7 @@
+ $obj = new NHLEvent($data['subtitle']); break;
+ case 'MLB Baseball':
+ $obj = new MLBEvent($data['subtitle']); break;
+- case 'NFL Football':
++ case ($data['title']=='NFL Football' || $data['title']=='NFL Preseason Football'):
+ $obj = new NFLEvent($data['subtitle']); break;
+ case 'College Football':
+ $obj = new NCAAFEvent($data['subtitle']); break;
+--- ../mre-1.1.2/class/MLBEvent.php.original 2006-11-05 17:06:57.000000000 -0600
++++ ../mre-1.1.2/class/MLBEvent.php 2010-08-28 00:02:37.000000000 -0500
+@@ -27,7 +27,7 @@
+ /**
+ * URL to grab game info from
+ */
+- const url = 'http://scores.espn.go.com/mlb/scoreboard';
++ const url = 'http://sports.espn.go.com/mlb/bottomline/scores';
+
+ /**
+ * Class constructor.
+@@ -43,41 +43,25 @@
+ trigger_error("Unable to generate valid search terms! [$gameInfo]", E_USER_WARNING);
+ else
+ {
+- $data = file(self::url);
+- $games = array();
+- if($data !== FALSE)
+- {
+- // Split the huge string into individual game data
+- foreach($data as $line)
+- if(preg_match('/\<div id="allGames".*\>.*/', $line))
+- {
+- while(($loc = strrpos($line, 'teamTop')) !== FALSE)
+- {
+- $games[] = substr($line, $loc);
+- $line = substr($line, 0, $loc);
+- }
+- break;
+- }
+- if(!sizeof($games))
+- trigger_error("Unable to find valid game data within source!", E_USER_WARNING);
+- foreach($criteria as $term)
+- {
+- foreach($games as $game)
+- {
+- if(preg_match('/' . preg_quote($term) . '/', $game))
+- if(preg_match('/teamTop.*\>(.*)\<\/td\>/U', $game, $matches))
+- {
+- $this->setStatus($matches[1]);
+- if(preg_match('/^(Final|Postponed)/', $matches[1]))
+- $this->setEventOver(TRUE);
+- else
+- $this->setEventOver(FALSE);
+- $this->setValid(TRUE);
+- break 2;
+- }
+- }
++ $data = file(self::url);
++ if($data)
++ {
++ $data_array=explode("&", $data[0]);
++ foreach($data_array as $line)
++ {
++ $line=str_replace("%20", " ", $line);
++ $line=str_replace("Chicago Sox", "Chicago White Sox", $line); #Program guide gives Chicago White Sox, website gives Chicago Sox
++ if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1])))
++ {
++ if((strpos($line,'FINAL'))or(strpos($line,'Postponed')))
++ $this->setEventOver(TRUE);
++ else
++ $this->setEventOver(FALSE);
++ $this->setValid(TRUE);
++ break;
++ }
+ }
+- }
++ }
+ }
+ if(!$this->isValid())
+ trigger_error("Unable to find MLB info for '$gameInfo'! The MLB parser may need to be updated.", E_USER_WARNING);
+--- ../mre-1.1.2/class/NFLEvent.php.original 2006-11-05 17:06:57.000000000 -0600
++++ ../mre-1.1.2/class/NFLEvent.php 2010-08-28 00:06:56.000000000 -0500
+@@ -27,7 +27,7 @@
+ /**
+ * URL to grab game info from
+ */
+- const url = 'http://scores.espn.go.com/nfl/scoreboard';
++ const url = 'http://sports.espn.go.com/nfl/bottomline/scores';
+
+ /**
+ * Class constructor.
+@@ -44,33 +44,23 @@
+ else
+ {
+ $data = file(self::url);
+- $games = array();
+- if($data !== FALSE)
+- {
+- // Split the huge string into individual game data
+- foreach($data as $line)
+- if(preg_match('/\<td class="teamTop.*".*\>.*/', $line))
+- $games[] = $line;
+- if(!sizeof($games))
+- trigger_error("Unable to find valid game data within source!", E_USER_WARNING);
+- foreach($criteria as $term)
+- {
+- foreach($games as $game)
+- {
+- if(preg_match('/' . preg_quote($term) . '/', $game))
+- if(preg_match('/teamTop.*\>(.*)\<\/td\>/U', $game, $matches))
+- {
+- $this->setStatus($matches[1]);
+- if(preg_match('/^(Final|Postponed)/', $matches[1]))
+- $this->setEventOver(TRUE);
+- else
+- $this->setEventOver(FALSE);
+- $this->setValid(TRUE);
+- break 2;
+- }
+- }
+- }
+- }
++ if($data)
++ {
++ $data_array=explode("&", $data[0]);
++ foreach($data_array as $line)
++ {
++ $line=str_replace("%20", " ", $line);
++ if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1])))
++ {
++ if(strpos($line,'FINAL'))
++ $this->setEventOver(TRUE);
++ else
++ $this->setEventOver(FALSE);
++ $this->setValid(TRUE);
++ break;
++ }
++ }
++ }
+ }
+ if(!$this->isValid())
+ trigger_error("Unable to find NFL info for '$gameInfo'! The NFL parser may need to be updated.", E_USER_WARNING);
+--- ../mre-1.1.2/class/NBAEvent.php.original 2006-11-05 17:06:57.000000000 -0600
++++ ../mre-1.1.2/class/NBAEvent.php 2010-08-28 00:09:50.000000000 -0500
+@@ -27,7 +27,7 @@
+ /**
+ * URL to grab game info from
+ */
+- const url = 'http://scores.espn.go.com/nba/scoreboard';
++ const url = 'http://sports.espn.go.com/nba/bottomline/scores';
+
+ /**
+ * Class constructor.
+@@ -44,35 +44,23 @@
+ else
+ {
+ $data = file(self::url);
+- if($data !== FALSE)
+- foreach($criteria as $term)
+- {
+- $status = '';
+- $i = 0;
+- while($i < sizeof($data))
+- {
+- if(preg_match('/' . preg_quote($term) . '/', $data[$i]))
+- {
+- $status = $data[$i];
+- break;
+- }
+- ++$i;
+- }
+- if($i == sizeof($data))
+- --$i;
+-
+- if(preg_match('/id.*clock"\>(.*)\<\/div/U', $data[$i], $match) ||
+- preg_match('/id.*clock"\>(.*)\<\/div/U', $data[$i-1], $match))
+- {
+- $this->setStatus($match[1]);
+- if(preg_match('/^Final/', $match[1]))
+- $this->setEventOver(TRUE);
+- else
+- $this->setEventOver(FALSE);
+- $this->setValid(TRUE);
+- break;
+- }
++ if($data)
++ {
++ $data_array=explode("&", $data[0]);
++ foreach($data_array as $line)
++ {
++ $line=str_replace("%20", " ", $line);
++ if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1])))
++ {
++ if(strpos($line,'FINAL'))
++ $this->setEventOver(TRUE);
++ else
++ $this->setEventOver(FALSE);
++ $this->setValid(TRUE);
++ break;
++ }
+ }
++ }
+ }
+ if(!$this->isValid())
+ trigger_error("Unable to find NBA info for '$gameInfo'! The NBA parser may need to be updated.", E_USER_WARNING);
+--- ../mre-1.1.2/class/NHLEvent.php.original 2006-11-05 17:06:57.000000000 -0600
++++ ../mre-1.1.2/class/NHLEvent.php 2010-08-28 00:09:04.000000000 -0500
+@@ -27,7 +27,7 @@
+ /**
+ * URL to grab game info from
+ */
+- const url = 'http://scores.espn.go.com/nhl/scoreboard';
++ const url = 'http://sports.espn.go.com/nhl/bottomline/scores';
+
+ /**
+ * Class constructor.
+@@ -39,32 +39,29 @@
+ parent::__construct();
+
+ $criteria = $this->generateSearchTerms($gameInfo);
++
+ if(!sizeof($criteria))
+ trigger_error("Unable to generate valid search terms! [$gameInfo]", E_USER_WARNING);
+ else
+ {
+ $data = file(self::url);
+- if($data !== FALSE)
+- foreach($criteria as $term)
+- {
+- $status = '';
+- foreach($data as $line)
+- if(preg_match('/' . preg_quote($term) . '/', $line))
+- {
+- $status = $line;
+- break;
+- }
+- if(preg_match('/id.*st"\>(.*)\<\/td/U', $status, $match))
+- {
+- $this->setStatus($match[1]);
+- if(preg_match('/^Final/', $match[1]))
+- $this->setEventOver(TRUE);
+- else
+- $this->setEventOver(FALSE);
+- $this->setValid(TRUE);
+- break;
+- }
++ if($data)
++ {
++ $data_array=explode("&", $data[0]);
++ foreach($data_array as $line)
++ {
++ $line=str_replace("%20", " ", $line);
++ if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1])))
++ {
++ if(strpos($line,'FINAL'))
++ $this->setEventOver(TRUE);
++ else
++ $this->setEventOver(FALSE);
++ $this->setValid(TRUE);
++ break;
++ }
+ }
++ }
+ }
+ if(!$this->isValid())
+ trigger_error("Unable to find NHL info for '$gameInfo'! The NHL parser may need to be updated.", E_USER_WARNING); \ No newline at end of file
diff --git a/abs/not_built/extra/community/mre/run b/abs/not_built/extra/community/mre/run
new file mode 100755
index 0000000..94381b3
--- /dev/null
+++ b/abs/not_built/extra/community/mre/run
@@ -0,0 +1,12 @@
+#!/bin/bash
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+stat_runit "Starting mythrecordingextender"
+
+export HOME=/home/mythtv
+
+sv start mythbackend || exit 1
+sleep 5
+
+exec /usr/local/bin/mre.php
diff --git a/abs/not_built/extra/community/mythpywii/CONTROLS b/abs/not_built/extra/community/mythpywii/CONTROLS
new file mode 100644
index 0000000..d733964
--- /dev/null
+++ b/abs/not_built/extra/community/mythpywii/CONTROLS
@@ -0,0 +1,25 @@
+ * Keypad : same as keypad on keyboard
+ * A : Enter (Accept, OK, next, .)
+ * Minus (-) : d (Delete)
+ * Home : escape (Exit to previous menu/exit mythfrontend)
+ * Plus (+) : p (Play/pause)
+ * 1 : Info
+ * 2 : Menu
+ * B + left : rewind to beginning of video
+ * B + twist wiimote : rewind (if twisted to the left) or fastforward
+ (otherwise) with speed dependant on twist amount.
+ * B + A + twist wiimote: timestretching . slower (if twisted left) or
+ faster (if twisted right)
+
+A comment on twisting:
+Point the wii remote at the screen, and twist from the elbow so that it
+ continues to point at the screen.
+
+The maximum fastforward/rewind speed is 180x. The speeds are dictated by
+mythfrontend itself. When you rotate the wiimote, you will feel a slight
+vibration (0.05 seconds) to let you know you have gone up or down a speed
+segment. To stop fastforwarding/rewinding, simply let go of B.
+
+Beware: there is no power saving built in. However you should be able to
+turn the wiimote off (power button) when not in use, and turn it back on
+by holding down 1 and 2 to make it sync.
diff --git a/abs/not_built/extra/community/mythpywii/PKGBUILD b/abs/not_built/extra/community/mythpywii/PKGBUILD
new file mode 100644
index 0000000..509db19
--- /dev/null
+++ b/abs/not_built/extra/community/mythpywii/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=mythpywii
+pkgver=17
+pkgrel=9
+pkgdesc="Control MythTV using Wiimote."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.benjiegillam.com/"
+depends=('bluez' 'python-pybluez' 'cwiid-git')
+install=mythpywii.install
+source=(http://www.benjiegillam.com/code/myth_py_wii.py \
+ wiimote.rules mythpywii.install CONTROLS)
+
+. /usr/MythVantage/bin/install_functions.sh
+home_check
+
+build() {
+
+ /bin/true
+
+}
+
+package() {
+ install -D -m755 ${srcdir}/myth_py_wii.py ${startdir}/pkg/usr/bin/myth_py_wii.py || return 1
+ install -D -m644 ${srcdir}/wiimote.rules ${startdir}/pkg/etc/udev/rules.d/z90-wiimote.rules || return 1
+ install -d -o mythtv -g mythtv ${startdir}/pkg/$MYTHHOME/.cwiid/wminput || return 1
+ install -D -m755 -o mythtv -g mythtv /etc/cwiid/wminput/{acc_led,buttons,gamepad,neverball,nunchuk_stick2btn,acc_ptr,ir_ptr,nunchuk_acc_ptr} ${startdir}/pkg/$MYTHHOME/.cwiid/wminput || return 1
+ install -D -m644 ${srcdir}/CONTROLS ${startdir}/pkg/usr/share/docs/mythpywii/CONTROLS || return 1
+ cd ${startdir}/pkg$MYTHHOME/.cwiid/wminput
+ ln -s acc_led default
+}
+md5sums=('52b756c403349640c3e66f485b6c0a54'
+ '0d817a971d414b9320587a4cf289386b'
+ '18a4c2936a731191e2db92211b254b66'
+ '0872cbdb3def3dd9aa2b97b191ad76d8')
diff --git a/abs/not_built/extra/community/mythpywii/mythpywii.install b/abs/not_built/extra/community/mythpywii/mythpywii.install
new file mode 100644
index 0000000..76b9c6e
--- /dev/null
+++ b/abs/not_built/extra/community/mythpywii/mythpywii.install
@@ -0,0 +1,65 @@
+post_install() {
+ . /$MYTHHOME/.mythtv/mysql.txt
+ # Enable the Network Remote Control Interface for use with the wiimote.
+ # Get local machine's hostname
+ HOST=`cat /etc/hostname`
+ # Update mysql for Network Remote Control Support
+ mysql -u mythtv -pmythtv --host=${DBHostName} mythconverg -e \
+ "UPDATE settings SET data = '1' WHERE value = 'NetworkControlEnabled' AND hostname = '${HOST}'";
+ echo "------------------------------------------------------------"
+ echo "myth_py_wii.py expects the Network Control Port to be set to"
+ echo "mythtv's default port of 6546. It will not work if you have"
+ echo "changed it to something else."
+ echo "------------------------------------------------------------"
+ # Add myth_py_wii.py to ~/mythtv/.fluxbox/apps before LinHES-run
+ sed -i '/LinHES-run/ i [startup] {/usr/bin/myth_py_wii.py >/dev/null}' /$MYTHHOME/.fluxbox/apps
+ # udev needs to pick up our new rule for the mythpywii.
+ udevadm trigger --subsystem-match="misc" --subsystem-match="bluetooth"
+ # Add the uinput module
+ modprobe uinput
+ # Ensure this module is loaded across reboots
+ echo "# uinput is needed by mythpywii" >> /etc/modules.mythvantage
+ echo "uinput" >> /etc/modules.mythvantage
+ # Bring up the bluetooth interface -- udev will do this after reboot
+ /usr/sbin/hciconfig hci0 up
+ # Punting on the multiple bluetooth adapter question.
+ echo "It is assumed your bluetooth adapter will be hci0."
+ echo "If you have more than one bluetooth adapter, you"
+ echo "may need to edit /etc/udev/rules.d/z90-wiimote.rules"
+ echo "--------------------------------------------------------------"
+ echo "--------------------------------------------------------------"
+ # Unfortunately there does not seem to be a way to do this without
+ # the user manually intervening.
+ echo "To use your wiimote you will need to restart the frontend service."
+ echo "$ sudo sv restart frontend"
+ echo "or simply reboot your machine."
+ echo "--------------------------------------------------------------"
+ echo "--------------------------------------------------------------"
+ echo "After frontend restart, you should now be able to pair your"
+ echo "Wiimote with your bluetooth adapter by pressing 1 & 2 at the"
+ echo "same time. After a few seconds the wiimote should vibrate and the"
+ echo "LEDs will show [ # . . # ] where # is on and . is off."
+ echo "--------------------------------------------------------------"
+ echo "See /usr/share/docs/mythpywii/CONTROLS for more information."
+ echo "--------------------------------------------------------------"
+}
+
+post_remove() {
+ . /$MYTHHOME/.mythtv/mysql.txt
+ # kill myth_py_wii.py
+ WIIPID=`pidof -o %PPID /usr/bin/myth_py_wii.py`
+ [ -n "$WIIPID" ] && kill $WIIPID
+ # Remove uinput
+ sed -i '/uinput/d' /etc/modules.mythvantage
+ # Remove line in .fluxbox/apps
+ sed -i '/myth_py_wii.py/d' /$MYTHHOME/.fluxbox/apps
+ # Remove network remote control support
+ mysql -u mythtv -pmythtv --host=${DBHostName} mythconverg -e \
+ "UPDATE settings SET data = '0' WHERE value = 'NetworkControlEnabled' AND hostname = '${HOST}'";
+}
+
+if [ x$MYTHHOME = x ]
+then
+ . /etc/profile.d/MythVantage.sh
+fi
+
diff --git a/abs/not_built/extra/community/mythpywii/wiimote.rules b/abs/not_built/extra/community/mythpywii/wiimote.rules
new file mode 100644
index 0000000..4bb2d9d
--- /dev/null
+++ b/abs/not_built/extra/community/mythpywii/wiimote.rules
@@ -0,0 +1,6 @@
+# For Bluetooth/Wiimote
+ KERNEL=="uinput", MODE="0660", GROUP="mythtv"
+
+# Automaticly bring up/down the bluetooth interface
+ ACTION=="add", KERNEL=="hci%n", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig hci%n up"
+ ACTION=="remove", KERNEL=="hci%n", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig hci%n down"
diff --git a/abs/not_built/extra/community/nvclock/PKGBUILD b/abs/not_built/extra/community/nvclock/PKGBUILD
new file mode 100644
index 0000000..d49f915
--- /dev/null
+++ b/abs/not_built/extra/community/nvclock/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 23406 2009-01-09 22:39:57Z andyrtr $
+# Contributor: Markus Meissner <markus@meissna.de>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=nvclock
+pkgver=0.8b4
+pkgrel=1
+pkgdesc="A small utility which allows users to overclock NVIDIA based video cards"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk2')
+source=(http://www.linuxhardware.org/$pkgname/${pkgname}${pkgver}.tar.gz
+ nvclock-0.8b4-buildfix.patch)
+url="http://www.linuxhardware.org/nvclock/"
+md5sums=('23f1b3ebf40f35d76d5fdac50f66ab11'
+ '1da24b50dd6a8c4704fa550a3e1a8b53')
+options=('!makeflags')
+
+build(){
+ cd ${srcdir}/$pkgname$pkgver
+ # build fix from Fedora
+ patch -Np1 -i $srcdir/nvclock-0.8b4-buildfix.patch || return 1
+ sed -i 's:${prefix}/man:${prefix}\/share\/man:' ${srcdir}/$pkgname$pkgver/Makefile.in || return 1
+ ./configure --prefix=/usr --bindir=/usr/bin
+ make || return 1 || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/abs/not_built/extra/community/nvclock/nvclock-0.8b4-buildfix.patch b/abs/not_built/extra/community/nvclock/nvclock-0.8b4-buildfix.patch
new file mode 100644
index 0000000..cdc9f5c
--- /dev/null
+++ b/abs/not_built/extra/community/nvclock/nvclock-0.8b4-buildfix.patch
@@ -0,0 +1,16 @@
+diff -upNr nvclock0.8b4.orign/src/Makefile.in nvclock0.8b4/src/Makefile.in
+--- nvclock0.8b4.orign/src/Makefile.in 2009-01-03 18:02:54.000000000 +0100
++++ nvclock0.8b4/src/Makefile.in 2009-01-07 11:37:39.000000000 +0100
+@@ -50,8 +50,8 @@ distclean: distclean-recursive clean-app
+ install: install-recursive install-app
+ install-app:
+ mkdir -p $(bindir)
+- $(INSTALL) -c nvclock $(DESTDIR)$(bindir)/nvclock
+- $(INSTALL) -c smartdimmer $(DESTDIR)$(bindir)/smartdimmer
++ $(INSTALL) -c nvclock $(bindir)/nvclock
++ $(INSTALL) -c smartdimmer $(bindir)/smartdimmer
+
+
+ uninstall: uninstall-recursive uninstall-app
+
+
diff --git a/abs/not_built/extra/community/nxtvepg/PKGBUILD b/abs/not_built/extra/community/nxtvepg/PKGBUILD
new file mode 100644
index 0000000..5de6bc7
--- /dev/null
+++ b/abs/not_built/extra/community/nxtvepg/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributor: Perry3D <perry3d at gmail dot com>
+# Previous: Gilles CHAUVIN <gcnweb at gmail dot com>
+
+pkgname=nxtvepg
+pkgver=2.8.1
+pkgrel=2
+pkgdesc="A decoder for nexTView EPG an Electronic TV Programme Guide"
+url="http://nxtvepg.sf.net/"
+license="GPL"
+depends=('tcl>=8.5.0' 'tk' 'libxmu')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz \
+tcl_85.patch \
+$pkgname-icon-16.png $pkgname-icon-32.png $pkgname-icon-48.png \
+$pkgname.desktop)
+arch=('i686' 'x86_64')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ msg "Applying patch for tcl/tk8.5..."
+ patch -p0 < ../tcl_85.patch
+
+ make || return 1
+
+ make prefix=$startdir/pkg/usr/ \
+ bindir=$startdir/pkg/usr/bin \
+ resdir=$startdir/pkg/usr/share/X11 \
+ INST_DB_DIR=$startdir/pkg/var/tmp/nxtvdb \
+ cfgdir=$startdir/pkg/usr/share/nxtvepg \
+ install
+
+ # Icons
+ for size in 16 32 48; do
+ install $startdir/src/$pkgname-icon-$size.png -D -m644 $startdir/pkg/usr/share/pixmaps/$pkgname-icon-$size.png
+ done
+
+ # .desktop file
+ install $startdir/src/$pkgname.desktop -D -m644 $startdir/pkg/usr/share/applications/$pkgname.desktop
+}
+md5sums=('0811b1b95537b3cbab9f8d18d1501411'
+ 'db5e77089204aeb35e84c7f5505664a6'
+ '5f7c220d3355b6f043a2bdd5acec8608'
+ '8988d3f33a90bd99f9a61d8f7e4f46c3'
+ '26d86bd935df1dc9328f07b879f30de2'
+ '5d14ff096ef811ccb7dc330e5d3a76fd')
diff --git a/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-16.png b/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-16.png
new file mode 100644
index 0000000..e6d8a85
--- /dev/null
+++ b/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-16.png
Binary files differ
diff --git a/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-32.png b/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-32.png
new file mode 100644
index 0000000..9071f10
--- /dev/null
+++ b/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-32.png
Binary files differ
diff --git a/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-48.png b/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-48.png
new file mode 100644
index 0000000..a5f991b
--- /dev/null
+++ b/abs/not_built/extra/community/nxtvepg/nxtvepg-icon-48.png
Binary files differ
diff --git a/abs/not_built/extra/community/nxtvepg/nxtvepg.desktop b/abs/not_built/extra/community/nxtvepg/nxtvepg.desktop
new file mode 100644
index 0000000..6703dfc
--- /dev/null
+++ b/abs/not_built/extra/community/nxtvepg/nxtvepg.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Comment=Electronic TV Programme Guide
+Icon=/usr/share/pixmaps/nxtvepg-icon-48.png
+Exec=nxtvepg
+Name=nexTView EPG
+GenericName=electronic TV Programme Guide
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;
diff --git a/abs/not_built/extra/community/nxtvepg/tcl_85.patch b/abs/not_built/extra/community/nxtvepg/tcl_85.patch
new file mode 100644
index 0000000..9059a6c
--- /dev/null
+++ b/abs/not_built/extra/community/nxtvepg/tcl_85.patch
@@ -0,0 +1,13 @@
+--- Makefile.orig 2008-02-03 20:01:14.000000000 +0100
++++ Makefile 2008-02-03 20:01:23.000000000 +0100
+@@ -58,8 +58,8 @@
+ YACC = /usr/bin/yacc
+
+ # select Tcl/Tk version (8.5 recommended due to modernized widget appearence)
+-TCL_VER := $(shell echo 'puts [package require Tcl]' | tclsh)
+-#TCL_VER = 8.5
++#TCL_VER := $(shell echo 'puts [package require Tcl]' | tclsh)
++TCL_VER = 8.5
+
+ ifeq ($(shell test -d /usr/include/tcl$(TCL_VER) && echo YES),YES)
+ INCS += -I/usr/include/tcl$(TCL_VER)
diff --git a/abs/not_built/extra/community/nzbperl/PKGBUILD b/abs/not_built/extra/community/nzbperl/PKGBUILD
new file mode 100755
index 0000000..bbfee00
--- /dev/null
+++ b/abs/not_built/extra/community/nzbperl/PKGBUILD
@@ -0,0 +1,16 @@
+#Contributor: Xavier Vierling <xavierling@free.fr>
+pkgname=nzbperl
+pkgver=0.6.8
+pkgrel=1
+pkgdesc="nzb based nntp/usenet downloader in perl"
+arch=('i686' 'x86_64')
+url="http://noisybox.net/computers/nzbperl/"
+license="GPL"
+depends=(perl-term-readkey perl-xml-dom uudeview)
+source=(http://noisybox.net/computers/nzbperl/$pkgname-$pkgver.pl)
+md5sums=('70e64b7cd4ff9c7c098bf8dffeb62578')
+
+build() {
+ cd $startdir/src
+ install -D nzbperl-$pkgver.pl $startdir/pkg/usr/bin/nzbperl
+} \ No newline at end of file
diff --git a/abs/not_built/extra/community/patchutils/PKGBUILD b/abs/not_built/extra/community/patchutils/PKGBUILD
new file mode 100644
index 0000000..8aedbf0
--- /dev/null
+++ b/abs/not_built/extra/community/patchutils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id$
+# Contributor: Aurelien Foret <orelien@chez.com>
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=patchutils
+pkgver=0.3.2
+pkgrel=1
+pkgdesc="A small collection of programs that operate on patch files"
+license=('GPL')
+url="http://cyberelk.net/tim/patchutils/"
+depends=('perl')
+arch=('i686' 'x86_64')
+source=(http://cyberelk.net/tim/data/patchutils/stable/$pkgname-$pkgver.tar.bz2)
+md5sums=('74607b4a28c9009c6aeeed0e91098917')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/abs/not_built/extra/community/peardb/PKGBUILD b/abs/not_built/extra/community/peardb/PKGBUILD
new file mode 100755
index 0000000..01164eb
--- /dev/null
+++ b/abs/not_built/extra/community/peardb/PKGBUILD
@@ -0,0 +1,24 @@
+pkgname=peardb
+pkgver=1.7.13
+pkgrel=2
+arch=('i686')
+pkgdesc="Pear Database Abstraction Layer"
+url="http://pear.php.net/"
+license=('GPL2')
+replaces=('PearDB')
+source=(http://download.pear.php.net/package/DB-${pkgver}.tgz)
+
+build() {
+ /bin/true
+}
+
+package() {
+ mkdir -p ${pkgdir}/usr/share/pear/
+ cp -r ${srcdir}/DB-$pkgver/DB* ${pkgdir}/usr/share/pear/
+ mkdir -p ${pkgdir}/usr/share/pear/docs/DB/
+ cp -r ${srcdir}/DB-$pkgver/doc/* ${pkgdir}/usr/share/pear/docs/DB/
+ mkdir -p ${pkgdir}/usr/share/pear/tests/DB/
+ cp -r ${srcdir}/DB-$pkgver/tests/* ${pkgdir}/usr/share/pear/tests/DB/
+}
+
+md5sums=('39b451245941a7059511a852f18b4946')
diff --git a/abs/not_built/extra/community/pearlog/PKGBUILD b/abs/not_built/extra/community/pearlog/PKGBUILD
new file mode 100755
index 0000000..31ad2b3
--- /dev/null
+++ b/abs/not_built/extra/community/pearlog/PKGBUILD
@@ -0,0 +1,27 @@
+pkgname=pearlog
+pkgver=1.12.3
+pkgrel=1
+pkgdesc="Pear Logging Framework"
+arch=('i686')
+url="http://pear.php.net/"
+license=('GPL2')
+replaces=('PearLog')
+source=(http://download.pear.php.net/package/Log-${pkgver}.tgz)
+
+build() {
+ /bin/true
+}
+
+package() {
+ mkdir -p ${pkgdir}/usr/share/pear/
+ cp -r ${srcdir}/Log-${pkgver}/Log* ${pkgdir}/usr/share/pear/
+ mkdir -p ${pkgdir}/usr/share/pear/docs/Log
+ cp -r ${srcdir}/Log-${pkgver}/docs/* ${pkgdir}/usr/share/pear/docs/Log/
+ mkdir -p ${pkgdir}/usr/share/pear/examples/Log
+ cp -r ${srcdir}/Log-${pkgver}/examples/* ${pkgdir}/usr/share/pear/examples/Log/
+ mkdir -p ${pkgdir}/usr/share/pear/misc/Log
+ cp -r ${srcdir}/Log-${pkgver}/misc/* ${pkgdir}/usr/share/pear/misc/Log/
+ mkdir -p ${pkgdir}/usr/share/pear/tests/Log
+ cp -r ${srcdir}/Log-${pkgver}/tests/* ${pkgdir}/usr/share/pear/tests/Log/
+}
+md5sums=('9930cb6d52b3af2ca6a24db267e237f0')
diff --git a/abs/not_built/extra/community/portaudio/PKGBUILD b/abs/not_built/extra/community/portaudio/PKGBUILD
new file mode 100644
index 0000000..1872b94
--- /dev/null
+++ b/abs/not_built/extra/community/portaudio/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 55258 2011-09-07 18:41:32Z ebelanger $
+# Based on 'portaudio' package - Eric Belanger <eric@archlinux.org>
+# Last/Most-Recent Contributor: Darwin Bautista <djclue917@gmail.com>
+# Maintainer: Bob Finch <w9ya@qrparci.net>
+
+pkgname=portaudio
+pkgver=19_20110326
+pkgrel=1
+pkgdesc="A free, cross-platform, open source, audio I/O library"
+arch=('i686' 'x86_64')
+url="http://www.portaudio.com/"
+license=('custom')
+depends=('jack')
+options=('!libtool')
+source=(http://www.portaudio.com/archives/pa_stable_v$pkgver.tgz)
+md5sums=('8f266ce03638419ef46e4efcb0fabde6')
+
+build() {
+ cd "$srcdir/$pkgname"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt"
+}
diff --git a/abs/not_built/extra/community/powernowd/PKGBUILD b/abs/not_built/extra/community/powernowd/PKGBUILD
new file mode 100644
index 0000000..f784523
--- /dev/null
+++ b/abs/not_built/extra/community/powernowd/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: kastor <kastor@fobos.org.ar>
+
+pkgname=powernowd
+pkgver=1.00
+pkgrel=2
+pkgdesc="Program for powering down CPUs dynamicly"
+arch=('i686' 'x86_64')
+url="http://www.deater.net/john/powernowd.html"
+license="GPL"
+depends=('glibc')
+source=(http://www.deater.net/john/$pkgname-$pkgver.tar.gz \
+ run finish powernowd.install powernowd.conf.d)
+install=($pkgname.install)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make || return 1
+ install -D -m755 powernowd $startdir/pkg/usr/sbin/powernowd || return 1
+ mkdir -p $startdir/pkg/etc/sv/powernowd || return 1
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/powernowd || return 1
+ install -D -m755 $startdir/src/finish $startdir/pkg/etc/sv/powernowd || return 1
+ install -D -m644 $startdir/src/powernowd.conf.d $startdir/pkg/etc/conf.d/powernowd || return 1
+}
+md5sums=('abc48b690d104e9e71a85400ba19d799'
+ 'ffd9b939665f74dac2220b4311482e04'
+ '13c6591ffc27d0b16f41f7892671302f'
+ 'dcbf8e98425b208c29f4c06b687dd0d0'
+ 'c9385af22c7c74e6cd6bdc982f94644f')
diff --git a/abs/not_built/extra/community/powernowd/finish b/abs/not_built/extra/community/powernowd/finish
new file mode 100644
index 0000000..97e3034
--- /dev/null
+++ b/abs/not_built/extra/community/powernowd/finish
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# AUR Credits:
+# simple init script the ARCH-way for Powernowd
+# Made by, CyberTron, packages@linuxportalen.com
+
+# Modifications by Alexander Baldeck <alexander@archlinux.org>
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/powernowd`
+
+[ -f /etc/conf.d/powernowd ] && source /etc/conf.d/powernowd
+
+ stat_runit "Stopping Powernowd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/powernowd.pid
+ rm_daemon powernowd
+ stat_done
+ fi
diff --git a/abs/not_built/extra/community/powernowd/powernowd.conf.d b/abs/not_built/extra/community/powernowd/powernowd.conf.d
new file mode 100644
index 0000000..287c2bc
--- /dev/null
+++ b/abs/not_built/extra/community/powernowd/powernowd.conf.d
@@ -0,0 +1,6 @@
+# Configuration file for powernowd
+
+# If no options given, powernowd should be able to autodetect
+# a sane setup. So most users will not have to put anything
+# here.
+OPTIONS="-d"
diff --git a/abs/not_built/extra/community/powernowd/powernowd.install b/abs/not_built/extra/community/powernowd/powernowd.install
new file mode 100644
index 0000000..af218af
--- /dev/null
+++ b/abs/not_built/extra/community/powernowd/powernowd.install
@@ -0,0 +1,19 @@
+post_install() {
+ add_service.sh powernowd
+
+ echo "Be sure to modprobe the proper module for your CPU and then add it
+ echo "to /etc/rc.conf in the MODULES section."
+ echo "i.e. for a Core2Duo modprobe/add acpi_cpufreq"
+ echo "Then restart the powernowd service: sudo sv restart powernowd"
+}
+
+post_upgrade() {
+ echo "Be sure to modprobe the proper module for your CPU and then add it
+ echo "to /etc/rc.conf in the MODULES section."
+ echo "i.e. for a Core2Duo modprobe/add acpi_cpufreq"
+ echo "Then restart the powernowd service: sudo sv restart powernowd"
+}
+
+pre_remove() {
+ remove_service.sh powernowd
+}
diff --git a/abs/not_built/extra/community/powernowd/run b/abs/not_built/extra/community/powernowd/run
new file mode 100644
index 0000000..0e83b98
--- /dev/null
+++ b/abs/not_built/extra/community/powernowd/run
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# AUR Credits:
+# simple init script the ARCH-way for Powernowd
+# Made by, CyberTron, packages@linuxportalen.com
+
+# Modifications by Alexander Baldeck <alexander@archlinux.org>
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/powernowd`
+
+[ -f /etc/conf.d/powernowd ] && source /etc/conf.d/powernowd
+
+ stat_runit "Starting Powernowd"
+ [ -z "$PID" ] && /usr/sbin/powernowd $OPTIONS 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/powernowd.pid
+ add_daemon powernowd
+ stat_done
+ fi
diff --git a/abs/not_built/extra/community/projectx/PKGBUILD b/abs/not_built/extra/community/projectx/PKGBUILD
new file mode 100644
index 0000000..62092a4
--- /dev/null
+++ b/abs/not_built/extra/community/projectx/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributer: Sebastian Sareyko <public@nooms.de>
+
+pkgname=projectx
+pkgver=0.90.4.00
+pkgrel=8
+license=('GPL')
+arch=('i686' 'x86_64')
+pkgdesc="DVB demux tool for repairing and analyzing different stream types"
+makedepends=('java-environment')
+depends=('java-runtime')
+url="http://sourceforge.net/projects/project-x"
+source=(http://dl.sourceforge.net/sourceforge/project-x/ProjectX_Source_eng_$pkgver.zip \
+ http://dl.sourceforge.net/sourceforge/project-x/ProjectX_LanguagePack_$pkgver.zip \
+ projectx)
+
+md5sums=('92d7b5aea50b8811307f27b6e01ceb5c'
+ 'edfe8d04bd3d403eec4d9e27d1b976d2'
+ '0c88b15884a0c997e3386d15e207cd30')
+
+build() {
+ cd $startdir/src/ProjectX_Source_0.90.4
+
+ sed -i 's,^Exec=.*,Exec=projectx,' projectx.desktop
+
+ mkdir -p build
+
+ javac -encoding "ISO-8859-1" -O -g:none \
+ -classpath lib/commons-net-1.3.0.jar:lib/jakarta-oro-2.0.8.jar \
+ -d build @sources.lst || return 1
+
+ mv resources/* ./build
+ sed -i -e 's/ReleaseNotes_0.90.1.txt/ReleaseNotes_0.90.4.txt/' htmls/index.html
+ mv htmls build
+ mv ReadMe.txt build
+ mv ReleaseNotes_0.90.4.txt build
+ jar cvfm ProjectX.jar MANIFEST.MF -C build .
+
+ install -D -m0755 $startdir/projectx $startdir/pkg/usr/bin/projectx
+ install -D -m0644 ProjectX.jar $startdir/pkg/opt/projectx/ProjectX.jar
+ install -D -m0644 lib/commons-net-1.3.0.jar \
+ $startdir/pkg/opt/projectx/lib/commons-net-1.3.0.jar
+ install -D -m0644 lib/jakarta-oro-2.0.8.jar \
+ $startdir/pkg/opt/projectx/lib/jakarta-oro-2.0.8.jar
+ install -D -m0644 projectx.desktop $startdir/pkg/usr/share/applications/projectx.desktop
+}
diff --git a/abs/not_built/extra/community/projectx/projectx b/abs/not_built/extra/community/projectx/projectx
new file mode 100644
index 0000000..1d540bc
--- /dev/null
+++ b/abs/not_built/extra/community/projectx/projectx
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+if [ ! -d ~/.projectx ] ; then
+ mkdir ~/.projectx
+fi
+
+if [ "$#" -eq 0 ] ; then
+ cd ~/.projectx
+fi
+java -jar /opt/projectx/ProjectX.jar "$@"
diff --git a/abs/not_built/extra/community/smplayer/ChangeLog b/abs/not_built/extra/community/smplayer/ChangeLog
new file mode 100644
index 0000000..e8397b3
--- /dev/null
+++ b/abs/not_built/extra/community/smplayer/ChangeLog
@@ -0,0 +1,74 @@
+2010-02-23 Ionut Biru <ibiru@archlinux.org>
+ * smplayer 0.6.9-2
+ * changed exec argument from %U to %F in smplayer.desktop
+
+2010-02-22 Ionut Biru <ibiru@archlinux.org>
+ * smplayer 0.6.9-1
+ * Upstream update
+
+2009-07-25 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.8-1
+ * Upstream update
+
+2009-03-13 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.7-1
+ * Upstream update
+
+2009-01-01 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.6-1
+ * Upstream update
+
+2008-11-14 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.5.1-1
+ * Upstream update
+
+2008-10-27 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.4-1
+ * Upstream update
+
+2008-09-27 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.3-1
+ * Upstream update
+
+2008-06-21 Allan McRae <allan@archlinux.org>
+
+ * smplayer 0.6.2-1
+ * Upstream update
+ * Removed install message
+
+2008-06-21 Allan McRae <allan@archlinux.org>
+
+ * smplayer 0.6.1-1
+ * Upstream update
+ * Removed provides/conflicts/replaces
+
+2008-05-23 Eric Belanger <eric@archlinux.org>
+
+ * smplayer 0.6.0-1
+ * Upstream update
+ * Updated .install file
+
+2008-01-32 Varun Acharya <varun@archlinux.org>
+
+ * smplayer-0.5.62-1 moved to extra, thanks molok
+ * PKGBUILD cleanup
+
+2007-11-27 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-0.5.62-1
+ * version bump
+
+2007-10-24 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-0.5.61-1
+ * build against qt4
+ * removed post_upgrade message
+
+2007-07-12 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-0.5.21-1
+ * version bump
+
+2007-05-30 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+ * smplayer-0.5.0-1
+ * version bump
diff --git a/abs/not_built/extra/community/smplayer/PKGBUILD b/abs/not_built/extra/community/smplayer/PKGBUILD
new file mode 100644
index 0000000..0928e4b
--- /dev/null
+++ b/abs/not_built/extra/community/smplayer/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: shamrok <szamrok@gmail.com>
+
+pkgname=smplayer
+pkgver=0.6.9
+pkgrel=3
+pkgdesc="A complete front-end for MPlayer"
+arch=('i686' 'x86_64')
+url="http://smplayer.sourceforge.net/"
+license=('GPL')
+depends=('qt>=4.7.1' 'mplayer')
+source=(http://downloads.sourceforge.net/sourceforge/smplayer/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dfe874b386509de5df78537489f95004')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # remove broken translation
+ sed -i "s|translations/smplayer_gl.ts|#translations/smplayer_gl.ts|" src/smplayer.pro
+
+ make PREFIX=/usr
+ make PREFIX=${pkgdir}/usr install
+
+ install -dm755 ${pkgdir}/usr/share/pixmaps
+ ln -s /usr/share/icons/hicolor/64x64/apps/smplayer.png \
+ ${pkgdir}/usr/share/pixmaps/
+
+ sed -i 's|Exec=smplayer %U|Exec=smplayer %F|' ${pkgdir}/usr/share/applications/smplayer.desktop
+ sed -i 's|Exec=smplayer -add-to-playlist %U|Exec=smplayer -add-to-playlist %F|' \
+ ${pkgdir}/usr/share/applications/smplayer_enqueue.desktop
+}
+
diff --git a/abs/not_built/extra/community/squeezeboxserver/PKGBUILD b/abs/not_built/extra/community/squeezeboxserver/PKGBUILD
new file mode 100644
index 0000000..45db11f
--- /dev/null
+++ b/abs/not_built/extra/community/squeezeboxserver/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Anton Prins <uar at prinsonline dot demon dot nl>
+
+pkgname=squeezeboxserver
+pkgver=7.4.1
+pkgrel=1
+pkgdesc="Powerful streaming audio server from Slim Devices"
+depends=(
+# unknown to me, default arch install + openssh handles it
+ )
+
+source=(http://downloads.slimdevices.com/SqueezeboxServer_v${pkgver}/squeezeboxserver-${pkgver}.tgz
+ $pkgname.rc
+ $pkgname.conf.d
+ )
+
+url="http://www.slimdevices.com/pi_features.html"
+license=('GPL')
+arch=('i686' 'x86_64')
+install=squeezeboxserver.install
+
+#not sure how to handle the build number -28947?
+build() {
+cd $startdir/src/squeezeboxserver-${pkgver}-28947 || return 1
+
+mkdir -p $startdir/pkg/home/squeezeboxserver || return 1
+cp -a * $startdir/pkg/home/squeezeboxserver || return 1
+install -D -m755 ../squeezeboxserver.rc $startdir/pkg/etc/rc.d/squeezeboxserver || return 1
+install -D -m644 ../squeezeboxserver.conf.d $startdir/pkg/etc/conf.d/squeezeboxserver || return 1
+mkdir $startdir/pkg/home/squeezeboxserver/prefs
+}
+
+md5sums=('fa65636e7df75ae7af884a2efa184639'
+ '5e57982c257797badbf72c2ae04994f7'
+ 'aa65896541958e119e63ee7c96be39af')
diff --git a/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.conf.d b/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.conf.d
new file mode 100644
index 0000000..d14a2e9
--- /dev/null
+++ b/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.conf.d
@@ -0,0 +1,7 @@
+# Configuration file for SqueezeCenter on Arch Linux.
+# Save this as /etc/conf.d/squeezeboxserver
+
+# Enter space-delimited options on the following line.
+# e.g. SQUEEZEBOXSERVER_OPTS="--diag --d_scan --d_command"
+# See "/home/squeezeboxserver/slimserver.pl --help" for a full list of possible options.
+SQUEEZEBOXSERVER_OPTS=""
diff --git a/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.install b/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.install
new file mode 100644
index 0000000..058de02
--- /dev/null
+++ b/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.install
@@ -0,0 +1,56 @@
+post_install() {
+echo -n "adding squeezeboxserver user... "
+useradd -c "SqueezeBoxServer" -g users -s /bin/false squeezeboxserver && echo "done."
+passwd -l squeezeboxserver &>/dev/null
+
+chown -R squeezeboxserver:users /home/squeezeboxserver
+
+install -o squeezeboxserver -d /var/cache/squeezeboxserver
+touch /var/log/squeezeboxserver.log
+chown squeezeboxserver:users /var/log/squeezeboxserver.log
+
+cat << 'EOM'
+
+==> SqueezeBoxServer uses MySQL instead of sqlite. If you have MySQL up and running
+==> you can configure SqueezeBoxServer to use that server as described here:
+==> http://wiki.slimdevices.com/index.php/ExistingMySQLInstance
+
+==> PLEASE NOTE: SqueezeBoxServer should always be run as the user 'squeezeboxserver'.
+==> This is easily done by adding squeezeboxserver to the DAEMONS array in rc.conf,
+==> after network and mysql.
+
+==> Additional run-time options can be added to /etc/conf.d/squeezeboxserver.
+==> Please refer to "/home/squeezeboxserver/slimserver.pl --help" for full details.
+
+EOM
+}
+
+post_upgrade() {
+chown -R squeezeboxserver:users /home/squeezeboxserver
+
+cat << 'EOM'
+
+==> SqueezeBoxServer uses MySQL instead of sqlite. If you have MySQL up and running
+==> you can configure SqueezeBoxServer to use that server as described here:
+==> http://wiki.slimdevices.com/index.php/ExistingMySQLInstance
+
+EOM
+}
+
+pre_remove() {
+# pre_remove gets called whenever post_remove is defined.
+true
+}
+
+post_remove() {
+# post_remove doesn't start at a newline like the other post_* functions,
+# so we'll have to make one for ourselves.
+echo -n -e "\nremoving squeezeboxserver user... "
+userdel squeezeboxserver && echo "done."
+
+rm -r /var/cache/squeezeboxserver /var/log/squeezeboxserver.log
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.rc b/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.rc
new file mode 100644
index 0000000..d33db16
--- /dev/null
+++ b/abs/not_built/extra/community/squeezeboxserver/squeezeboxserver.rc
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/squeezeboxserver ] && . /etc/conf.d/squeezeboxserver
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+squeezehome=/home/squeezeboxserver
+pidfile=/var/run/squeezeboxserver.pid
+logfile=/var/log/squeezeboxserver.log
+prefsdir=/home/squeezeboxserver/prefs
+cachedir=/var/cache/squeezeboxserver
+
+
+case "$1" in
+ start)
+ stat_busy "Starting SqueezeBoxServer"
+ cd $squeezehome
+ ./slimserver.pl --daemon --user squeezeboxserver --prefsdir $prefsdir \
+ --cachedir $cachedir --pidfile $pidfile --logfile $logfile $SQUEEZEBOXSERVER_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon squeezeboxserver
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping SqueezeBoxServer"
+ kill `cat $pidfile` &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon squeezeboxserver
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/abs/not_built/extra/community/tig/PKGBUILD b/abs/not_built/extra/community/tig/PKGBUILD
new file mode 100644
index 0000000..87e5e4d
--- /dev/null
+++ b/abs/not_built/extra/community/tig/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Loui Chang <louipc dot ist at gmail company>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Nathan Jones <nathanj@insightbb.com>
+
+pkgname=tig
+pkgver=0.18
+pkgrel=1
+pkgdesc="Text-mode interface for git"
+depends=('git' 'ncurses')
+url="http://jonas.nitro.dk/tig/"
+license=('GPL')
+arch=('i686' 'x86_64')
+source=("http://jonas.nitro.dk/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4fa9e33c5daa76b6fed11e068405356f')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install install-doc-man
+ install -D -m644 contrib/tigrc "$pkgdir"/etc/tigrc.sample
+ install -D -m644 contrib/tig-completion.bash "$pkgdir"/etc/bash_completion.d/tig
+}
diff --git a/abs/not_built/extra/community/transmission-cli/PKGBUILD b/abs/not_built/extra/community/transmission-cli/PKGBUILD
new file mode 100644
index 0000000..4980466
--- /dev/null
+++ b/abs/not_built/extra/community/transmission-cli/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 23076 2009-01-02 11:33:41Z alexanderf $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=transmission-cli
+pkgver=2.51
+pkgrel=1
+pkgdesc="Fast, easy, and free BitTorrent client (CLI tools, daemon and web client)"
+arch=('i686' 'x86_64')
+url="http://www.transmissionbt.com/"
+license=('MIT')
+depends=('curl' 'libevent>=2.0.10')
+makedepends=('intltool' 'libcroco')
+replaces=('transmission')
+backup=('etc/conf.d/transmissiond')
+install=transmission-cli.install
+source=(http://mirrors.m0k.org/transmission/files/transmission-$pkgver.tar.bz2
+ run.transmissiond
+ transmission-cli.install
+ transmission.include
+ transmissiond.conf)
+
+build() {
+ cd "$srcdir/transmission-$pkgver"
+
+ ./configure --prefix=/usr --disable-gtk || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/transmission-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+
+ mkdir -p -m744 "$pkgdir/etc/sv/transmissiond" || return 1
+ mkdir -p -m777 "$pkgdir/myth/transmission" || return 1
+ install -D -m755 "$srcdir/run.transmissiond" "$pkgdir/etc/sv/transmissiond/run" || return 1
+ install -D -m644 "$srcdir/transmissiond.conf" "$pkgdir/etc/conf.d/transmissiond" || return 1
+ install -D -m644 "$srcdir/transmission.include" "$pkgdir/etc/transmission/transmission.include" || return 1
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-cli/COPYING" || return 1
+}
+md5sums=('dfe2faeb2b76b43954ec943affef2133'
+ 'e876d24b99c401f782395b053976dffd'
+ 'ff22c13dbd52565f9e88b1de22514eb9'
+ 'b5a49ea375333cd0fee40f70dbac4c2e'
+ 'd05567c7a4f9df9f28602d1356d5c05c')
diff --git a/abs/not_built/extra/community/transmission-cli/run.transmissiond b/abs/not_built/extra/community/transmission-cli/run.transmissiond
new file mode 100755
index 0000000..792594a
--- /dev/null
+++ b/abs/not_built/extra/community/transmission-cli/run.transmissiond
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/transmissiond
+
+CONFIGDIR=/home/$TRANS_USER/.config/transmission-daemon
+PID=`pidof -o %PPID /usr/bin/transmission-daemon`
+# Update the block lists - try to keep the bad guys out.
+ cd ${CONFIGDIR}/blocklists
+ if [ $? -eq 0 ]; then
+ find . -mtime +4 -type f -name level1 -exec rm {} \;
+ if [ ! -f ${CONFIGDIR}/blocklists/level1 ]; then
+ # update blocklist
+ # echo "updating blocklist, ~4MB"
+ wget -q -O level1.gz http://www.bluetack.co.uk/config/level1.gz
+ if [ -f level1.gz ]; then
+ gunzip level1.gz
+ if [ $? -eq 0 ]; then
+ chmod go+r level1
+ else
+ rm -f level1*
+ fi
+ fi
+ fi
+ cd - 2>&1 >/dev/null
+ fi
+ stat_runit "Starting Transmission Daemon"
+ [ -z "$PID" ] && exec su -l -c "/usr/bin/nice -n 19 /usr/bin/transmission-daemon $TRANS_OPTS" $TRANS_USER 2>/dev/null
diff --git a/abs/not_built/extra/community/transmission-cli/transmission-cli.install b/abs/not_built/extra/community/transmission-cli/transmission-cli.install
new file mode 100644
index 0000000..088ecc6
--- /dev/null
+++ b/abs/not_built/extra/community/transmission-cli/transmission-cli.install
@@ -0,0 +1,28 @@
+post_install() {
+ /bin/echo 'include "/etc/transmission/transmission.include"' >> /etc/lighttpd/conf.include
+ killall -HUP lighttpd
+
+ add_service.sh transmissiond
+
+ cat << _EOF
+
+ You can edit the user and options in /etc/conf.d/transmissiond.
+
+ To access the web interface:
+ http://localhost/transmission
+
+ Configuration file editing information can be found at:
+ http://trac.transmissionbt.com/wiki/ConfigFiles
+
+_EOF
+
+}
+
+pre_upgrade() {
+ rm -f /usr/share/man/man1/transmission*
+
+}
+
+pre_remove() {
+ remove_service.sh transmissiond
+}
diff --git a/abs/not_built/extra/community/transmission-cli/transmission.include b/abs/not_built/extra/community/transmission-cli/transmission.include
new file mode 100644
index 0000000..5cbf399
--- /dev/null
+++ b/abs/not_built/extra/community/transmission-cli/transmission.include
@@ -0,0 +1,15 @@
+#Redirect from /transmission to /transmission/web
+url.rewrite-once += ( "^/transmission[/]?$" => "/transmission/web" )
+$HTTP["url"] =~ "^/transmission/" {
+ #Serve static files from /usr/share/transmission
+ server.document-root = "/usr/share/"
+ #Forward RPC requests to the Transmission daemon
+ proxy.server = (
+ "/transmission/rpc" => (
+ (
+ "host" => "127.0.0.1",
+ "port" => 9091
+ )
+ )
+ )
+}
diff --git a/abs/not_built/extra/community/transmission-cli/transmissiond.conf b/abs/not_built/extra/community/transmission-cli/transmissiond.conf
new file mode 100644
index 0000000..d642c01
--- /dev/null
+++ b/abs/not_built/extra/community/transmission-cli/transmissiond.conf
@@ -0,0 +1,2 @@
+TRANS_USER="mythtv"
+TRANS_OPTS="-f -ep -w /myth/transmission"
diff --git a/abs/not_built/extra/community/tre/PKGBUILD b/abs/not_built/extra/community/tre/PKGBUILD
new file mode 100644
index 0000000..52fb147
--- /dev/null
+++ b/abs/not_built/extra/community/tre/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Igor Galic<i.galic@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de
+pkgname=tre
+pkgver=0.8.0
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="POSIX compliant regexp matching library. Includes agrep for aproximate grepping."
+url="http://laurikari.net/tre/index.html"
+depends=('glibc')
+license=('custom:BSD')
+source=(http://laurikari.net/tre/$pkgname-$pkgver.tar.bz2)
+md5sums=('b4d3232593dadf6746f4727bdda20b41')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --enable-static || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -Dm644 ${srcdir}/$pkgname-$pkgver/LICENSE \
+ ${pkgdir}/usr/share/licenses/$pkgname/LICENSE || return 1
+ install -d ${pkgdir}/usr/share/doc/$pkgname
+ cd doc
+ for _i in default.css tre-api.html tre-syntax.html
+ do
+ install -Dm644 ${_i} ${pkgdir}/usr/share/doc/$pkgname/${_i}
+ done || return 1
+}
diff --git a/abs/not_built/extra/community/twisted/PKGBUILD b/abs/not_built/extra/community/twisted/PKGBUILD
new file mode 100644
index 0000000..13fca6b
--- /dev/null
+++ b/abs/not_built/extra/community/twisted/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 94591 2010-10-08 12:55:33Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=twisted
+pkgver=10.1.0
+pkgrel=3
+pkgdesc="Asynchronous networking framework written in Python."
+arch=('i686' 'x86_64')
+url="http://twistedmatrix.com/"
+license=('MIT')
+depends=('python2' 'pycrypto' 'zope-interface')
+optdepends=('pyopenssl'
+ 'python-soappy:for twisted.web.soap')
+install=twisted.install
+source=(http://tmrc.mit.edu/mirror/twisted/Twisted/${pkgver%.*}/Twisted-${pkgver}.tar.bz2)
+md5sums=('04cca97506e830074cffc1965297da3f')
+build() {
+ cd "${srcdir}/Twisted-${pkgver}"
+
+ python2 setup.py install --prefix=/usr --root=$pkgdir --optimize=1
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.6/site-packages/twisted/trial/test/scripttest.py
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.6/site-packages/twisted/mail/test/pop3testserver.py
+}
diff --git a/abs/not_built/extra/community/twisted/twisted.install b/abs/not_built/extra/community/twisted/twisted.install
new file mode 100644
index 0000000..62a2cc5
--- /dev/null
+++ b/abs/not_built/extra/community/twisted/twisted.install
@@ -0,0 +1,11 @@
+post_install() {
+ python2 -c 'from twisted.plugin import IPlugin, getPlugins; list(getPlugins(IPlugin))' >/dev/null 2>&1 || return 1
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ find /usr/lib/python2.6/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
+}
diff --git a/abs/not_built/extra/community/unrar/PKGBUILD b/abs/not_built/extra/community/unrar/PKGBUILD
new file mode 100644
index 0000000..20d5213
--- /dev/null
+++ b/abs/not_built/extra/community/unrar/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 72474 2010-03-16 19:39:31Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+
+pkgname=unrar
+pkgver=3.9.10
+pkgrel=1
+pkgdesc="The RAR uncompression program"
+arch=('i686' 'x86_64')
+url="http://www.rarlab.com/rar_add.htm"
+license=('custom')
+depends=('gcc-libs')
+source=(http://www.rarlab.com/rar/unrarsrc-${pkgver}.tar.gz)
+md5sums=('3c130ae52ff9fece50af988c343e396d')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ make -f makefile.unix
+ install -Dm755 unrar ${pkgdir}/usr/bin/unrar || return 1
+ # install license
+ install -Dm644 license.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/abs/not_built/extra/community/unrar/unrar-3.5.2-optimalization-fix.patch b/abs/not_built/extra/community/unrar/unrar-3.5.2-optimalization-fix.patch
new file mode 100644
index 0000000..2ed2e6e
--- /dev/null
+++ b/abs/not_built/extra/community/unrar/unrar-3.5.2-optimalization-fix.patch
@@ -0,0 +1,12 @@
+diff -Naur unrar.orig/makefile.unix unrar/makefile.unix
+--- unrar.orig/makefile.unix 2005-05-27 21:53:56.000000000 +0000
++++ unrar/makefile.unix 2005-05-27 21:54:16.000000000 +0000
+@@ -7,7 +7,7 @@
+
+ # Linux using GCC
+ CXX=g++
+-CXXFLAGS=-O2
++CXXFLAGS=${CFLAGS}
+ DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+ STRIP=strip
+
diff --git a/abs/not_built/extra/community/uriparser/PKGBUILD b/abs/not_built/extra/community/uriparser/PKGBUILD
new file mode 100644
index 0000000..a44876f
--- /dev/null
+++ b/abs/not_built/extra/community/uriparser/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Juan Pablo Gonzalez Tognarelli <lord_jotape@yahoo.com.ar>
+ pkgname=uriparser
+ pkgver=0.7.5
+ pkgrel=1
+ pkgdesc="uriparser is a strictly RFC 3986 compliant URI parsing library. uriparser is cross-platform, fast, supports Unicode"
+ url="http://sourceforge.net/projects/uriparser/"
+ depends=(glibc)
+ makedepends=(doxygen)
+ source=(http://downloads.sourceforge.net/sourceforge/uriparser/$pkgname-$pkgver.tar.bz2)
+ md5sums=('4f4349085fe5de33bcae8d0f26649593')
+ arch=('i686' 'x86_64')
+ license="CUSTOM"
+ build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --disable-test
+ ln -s ${srcdir}/$pkgname-$pkgver/doc/Doxyfile.in ${srcdir}/$pkgname-$pkgver/doc/Doxyfile
+ make || return 1
+ touch ${srcdir}/$pkgname-$pkgver/doc/html/empty.gif
+ make DESTDIR=$startdir/pkg install || return 1
+ install -D -m644 "${srcdir}/$pkgname-$pkgver/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
+
diff --git a/abs/not_built/extra/community/uudeview/PKGBUILD b/abs/not_built/extra/community/uudeview/PKGBUILD
new file mode 100644
index 0000000..cdb3a81
--- /dev/null
+++ b/abs/not_built/extra/community/uudeview/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD,v 1.5 2008/09/23 12:49:17 sergej Exp $
+# Maintainer: Sergej Pupykin <sergej@aur.archlinux.org>
+# Maintainer: kmaster <kmaster12@sasktel.net>
+
+pkgname=uudeview
+pkgver=0.5.20
+pkgrel=6
+pkgdesc="UUDeview helps transmitting & recieving binary files using mail or newsgroups. Includes library files."
+arch=('i686' 'x86_64')
+url="http://www.fpx.de/fp/Software/UUDeview/"
+license=('GPL')
+optdepends=('tk: for GUI')
+source=(http://www.fpx.de/fp/Software/UUDeview/download/$pkgname-$pkgver.tar.gz)
+md5sums=('0161abaec3658095044601eae82bbc5b')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install || return 1
+ mkdir -p $startdir/pkg/usr/lib/uudeview && \
+ mkdir -p $startdir/pkg/usr/include/uudeview || return 1
+
+ cd $startdir/src/uudeview-$pkgver/uulib
+ ./configure --prefix=/usr
+ make || return 1
+ cp -v *.o $startdir/pkg/usr/lib/uudeview && \
+ cp -v *.a $startdir/pkg/usr/lib/uudeview && \
+ cp -v *.h $startdir/pkg/usr/include/uudeview
+}
diff --git a/abs/not_built/extra/community/video4fuze/PKGBUILD b/abs/not_built/extra/community/video4fuze/PKGBUILD
new file mode 100644
index 0000000..35c1e85
--- /dev/null
+++ b/abs/not_built/extra/community/video4fuze/PKGBUILD
@@ -0,0 +1,38 @@
+# Contributor: Michael Hanson <hansonorders@verizon.net>
+# Maintainer: Michael Hanson <hansonorders@verizon.net>
+pkgname=video4fuze
+pkgver=0.6
+pkgrel=1
+pkgdesc="A tool to make videos compatable with the San Disk Sana Fuze media player"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/video4fuze"
+license=('GPL3' 'CC-BY-SA-3.0')
+depends=('fuzemux' 'python2>=2.5' 'qt>=4.5' 'pyqt>=4.5' 'python-imaging' 'mplayer' 'ffmpeg-svn')
+optdepends=('xterm')
+source=("http://${pkgname}.googlecode.com/files/${pkgname}-${pkgver}%2B.tar.gz")
+provides=('video4fuze')
+replaces=('video4fuze-svn')
+install=video4fuze.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}+
+
+ for file in GUI/*.py *.py *.pyw ; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' ${file}
+ done
+
+ sed -i 's/^python/python2/g' dist/*
+
+ lrelease video4fuze_e4x.pro
+
+ python2 setup.py install --root="$pkgdir" || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}+
+ install -D -m644 README.txt ${pkgdir}/usr/share/doc/video4fuze/README || return 1
+ chmod 755 ${pkgdir}/usr/share/video4fuze/*.py || return 1
+ chmod 755 ${pkgdir}/usr/share/video4fuze/*.pyw || return 1
+ chmod 755 ${pkgdir}/usr/share/video4fuze/GUI/*.py || return 1
+}
+md5sums=('f19250f2e166e10e5b115e8bffdfee35')
diff --git a/abs/not_built/extra/community/video4fuze/video4fuze.install b/abs/not_built/extra/community/video4fuze/video4fuze.install
new file mode 100644
index 0000000..d6e391f
--- /dev/null
+++ b/abs/not_built/extra/community/video4fuze/video4fuze.install
@@ -0,0 +1,9 @@
+post_install() {
+ ln -s /usr/share/video4fuze/video4fuze.pyw /usr/bin/video4fuze
+ ln -s /usr/share/video4fuze/fuze.py /usr/bin/fuze.py
+}
+
+pre_remove() {
+ rm -f /usr/bin/video4fuze
+ rm -f /usr/bin/fuze.py
+}
diff --git a/abs/not_built/extra/community/vsftpd/PKGBUILD b/abs/not_built/extra/community/vsftpd/PKGBUILD
new file mode 100644
index 0000000..78ba1c5
--- /dev/null
+++ b/abs/not_built/extra/community/vsftpd/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=vsftpd
+pkgver=2.3.4
+pkgrel=2
+pkgdesc="Very Secure FTP daemon"
+arch=('i686' 'x86_64')
+url="https://security.appspot.com/vsftpd.html"
+license=('GPL2')
+depends=('openssl')
+backup=('etc/vsftpd.conf' 'etc/xinetd.d/vsftpd')
+install=vsftpd.install
+source=("https://security.appspot.com/downloads/${pkgname}-${pkgver}.tar.gz"
+ 'vsftpd.xinetd' 'vsftpd.d' 'run')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # build-time config
+ sed \
+ -e 's|^#undef VSF_BUILD_SSL$|#define VSF_BUILD_SSL|' \
+ -i builddefs.h
+# Below added for LinHES
+ mkdir -p $startdir/pkg/etc/sv/vsftpd/supervise
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/vsftpd/
+ make CFLAGS="${CFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -D -m755 vsftpd "${pkgdir}/usr/sbin/vsftpd"
+ install -D -m644 vsftpd.conf "${pkgdir}/etc/vsftpd.conf"
+ install -D -m644 vsftpd.8 "${pkgdir}/usr/share/man/man8/vsftpd.8"
+ install -D -m644 vsftpd.conf.5 "${pkgdir}/usr/share/man/man5/vsftpd.conf.5"
+ install -D -m644 "${srcdir}/vsftpd.xinetd" "${pkgdir}/etc/xinetd.d/vsftpd"
+ install -D -m755 "${srcdir}/vsftpd.d" "${pkgdir}/etc/rc.d/vsftpd"
+
+ install -d -m755 "${pkgdir}/usr/share/empty"
+}
+md5sums=('2ea5d19978710527bb7444d93b67767a'
+ 'b07fd4609c70063c1d6b20142910c1a6'
+ '60060a6c7db3b3b7baa1561a302e6923'
+ '8abbed7cc75f9a9d2944e0e83c8dd90d')
diff --git a/abs/not_built/extra/community/vsftpd/__changelog b/abs/not_built/extra/community/vsftpd/__changelog
new file mode 100644
index 0000000..82615f6
--- /dev/null
+++ b/abs/not_built/extra/community/vsftpd/__changelog
@@ -0,0 +1 @@
+-Add back run file and modify PKGBUILD to install run
diff --git a/abs/not_built/extra/community/vsftpd/run b/abs/not_built/extra/community/vsftpd/run
new file mode 100644
index 0000000..1fd5202
--- /dev/null
+++ b/abs/not_built/extra/community/vsftpd/run
@@ -0,0 +1,13 @@
+#!/bin/sh
+exec 2>&1
+. /etc/profile
+. /etc/systemconfig
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+stat_runit "Starting VSFTPD"
+export HOME=/root
+
+# Start vsftpd
+/usr/sbin/vsftpd /etc/vsftpd.conf
diff --git a/abs/not_built/extra/community/vsftpd/vsftpd.d b/abs/not_built/extra/community/vsftpd/vsftpd.d
new file mode 100644
index 0000000..2731085
--- /dev/null
+++ b/abs/not_built/extra/community/vsftpd/vsftpd.d
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+daemon_name=vsftpd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name &
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/abs/not_built/extra/community/vsftpd/vsftpd.install b/abs/not_built/extra/community/vsftpd/vsftpd.install
new file mode 100644
index 0000000..48f134e
--- /dev/null
+++ b/abs/not_built/extra/community/vsftpd/vsftpd.install
@@ -0,0 +1,17 @@
+# arg 1: the new package version
+post_install() {
+ if [ -f lib/modules/`uname -r`/kernel/security/capability.ko ]; then
+ echo ">>> It appears that your current kernel has linux security"
+ echo ">>> capabilities built as a module. vsftpd requires this"
+ echo ">>> functionality to operate."
+ echo ">>>"
+ echo ">>> To activate the module, please load it now (modprobe capability)."
+ echo ">>> Also, you should add it to your MODULES array in rc.conf, so"
+ echo ">>> it will be activated automatically at boot-up."
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
diff --git a/abs/not_built/extra/community/vsftpd/vsftpd.xinetd b/abs/not_built/extra/community/vsftpd/vsftpd.xinetd
new file mode 100644
index 0000000..eff2eb3
--- /dev/null
+++ b/abs/not_built/extra/community/vsftpd/vsftpd.xinetd
@@ -0,0 +1,10 @@
+service ftp
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/vsftpd
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/abs/not_built/extra/community/zope-interface/PKGBUILD b/abs/not_built/extra/community/zope-interface/PKGBUILD
new file mode 100644
index 0000000..a2918bf
--- /dev/null
+++ b/abs/not_built/extra/community/zope-interface/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 87850 2010-08-18 13:23:55Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=zope-interface
+pkgver=3.5.3
+pkgrel=2
+pkgdesc="Separate distribution of the zope.interface package used in Zope 3."
+license=('ZPL')
+arch=('i686' 'x86_64')
+url="http://www.zope.org/Products/ZopeInterface/"
+depends=('python2')
+source=(http://pypi.python.org/packages/source/z/zope.interface/zope.interface-${pkgver}.tar.gz)
+md5sums=('1fdb9a77f92d3ada3e795a8c9b58d0c6')
+
+build() {
+ cd ${srcdir}/zope.interface-${pkgver}
+ python2 setup.py install --prefix=/usr --root=${pkgdir} --optimize=1
+ # Blabla.
+ rm $pkgdir/usr/lib/python2.7/site-packages/zope/interface/README*.txt
+}
diff --git a/abs/not_built/extra/community/zvbi/PKGBUILD b/abs/not_built/extra/community/zvbi/PKGBUILD
new file mode 100644
index 0000000..9bc150c
--- /dev/null
+++ b/abs/not_built/extra/community/zvbi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id$
+# Maintainer:
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+pkgname=zvbi
+pkgver=0.2.33
+pkgrel=3
+pkgdesc="VBI capture and decoding library"
+url="http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome"
+arch=(i686 x86_64)
+depends=('libpng' 'libx11')
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/zapping/${pkgname}-${pkgver}.tar.bz2
+ fix-includes.patch)
+md5sums=('1741a6045c3eedfb611d645f2da69ac8'
+ '38766bc59e1571133d0399f0102da653')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-includes.patch"
+ ./configure --prefix=/usr --disable-static --mandir=/usr/share/man
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/community/zvbi/fix-includes.patch b/abs/not_built/extra/community/zvbi/fix-includes.patch
new file mode 100644
index 0000000..2825264
--- /dev/null
+++ b/abs/not_built/extra/community/zvbi/fix-includes.patch
@@ -0,0 +1,36 @@
+Add proper #includes so that we do not get undef errors to S_ISCHR
+during linking.
+
+Signed-off-by: Alex Chiang <achiang@canonical.com>
+---
+--- zvbi-0.2.33.orig/src/io-dvb.c
++++ zvbi-0.2.33/src/io-dvb.c
+@@ -29,6 +29,8 @@
+ #include <errno.h>
+ #include <sys/select.h>
+ #include <sys/ioctl.h>
++#include <sys/types.h>
++#include <sys/stat.h>
+
+ #ifndef HAVE_S64_U64
+ /* Linux 2.6.x asm/types.h defines __s64 and __u64 only
+--- zvbi-0.2.33.orig/src/io-v4l.c
++++ zvbi-0.2.33/src/io-v4l.c
+@@ -42,6 +42,7 @@ static const char rcsid [] =
+ #include <assert.h>
+ #include <sys/time.h> /* timeval */
+ #include <sys/types.h> /* fd_set, uid_t */
++#include <sys/stat.h> /* S_ISCHR */
+ #include <sys/ioctl.h> /* for (_)videodev.h */
+ #include <pthread.h>
+
+--- zvbi-0.2.33.orig/contrib/ntsc-cc.c
++++ zvbi-0.2.33/contrib/ntsc-cc.c
+@@ -34,6 +34,7 @@
+ #include <locale.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #include <sys/time.h>
+ #ifdef HAVE_GETOPT_LONG
+ # include <getopt.h>
diff --git a/abs/not_built/extra/congruity/PKGBUILD b/abs/not_built/extra/congruity/PKGBUILD
new file mode 100644
index 0000000..470a1e3
--- /dev/null
+++ b/abs/not_built/extra/congruity/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id$
+# Maintainers:
+# Andreas Baumann <abaumann@yahoo.com>
+# Guillaume DUMOULIN <guillaume.dumoulin@gmail.com>
+# Contributor: elsixdiab
+
+pkgname=congruity
+pkgver=15
+pkgrel=2
+pkgdesc="Congruity is a GUI application for programming Logitech(R) Harmony(TM) remote controls."
+arch=('any')
+url="http://congruity.sourceforge.net"
+license=('GPL3')
+depends=('libconcord' 'wxpython' 'python-libconcord')
+makedepends=()
+install=
+options=
+source=(http://downloads.sourceforge.net/project/congruity/congruity/${pkgver}/"${pkgname}-${pkgver}.tar.bz2")
+md5sums=('c67cc411a7f7f02758fd55101c1a4be3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's@#!/usr/bin/env python@#!/usr/bin/env python2@g' congruity
+ make DESTDIR=${pkgdir} PREFIX=/usr install
+}
diff --git a/abs/not_built/extra/conky/PKGBUILD b/abs/not_built/extra/conky/PKGBUILD
new file mode 100644
index 0000000..d542937
--- /dev/null
+++ b/abs/not_built/extra/conky/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id$
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Partha Chowdhury <kira.laucas@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=conky
+pkgver=1.8.1
+pkgrel=3
+pkgdesc='An advanced, highly configurable system monitor for X based on torsmo'
+arch=('i686' 'x86_64')
+url='http://conky.sourceforge.net/'
+license=('custom')
+replaces=('torsmo')
+makedepends=('pkg-config')
+depends=('alsa-lib' 'libxml2' 'curl' 'wireless_tools' 'libxft' 'glib2' 'libxdamage' 'imlib2')
+backup=('etc/conky/conky.conf' 'etc/conky/conky_no_x11.conf')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'current-power.patch')
+
+sha1sums=('06bbe9b7eed8603fa7a971b27c5c61f38424ac6f'
+ '2eeef0cc5a0b612826b2a7f0b43b7a3b7e10bf0b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 < ../current-power.patch # See FS#21984
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-ibm \
+ --enable-curl \
+ --enable-rss \
+ --enable-weather-xoap \
+ --enable-imlib2 \
+ --disable-lua \
+ --enable-wlan \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/extra/conky/current-power.patch b/abs/not_built/extra/conky/current-power.patch
new file mode 100644
index 0000000..1e7cf5a
--- /dev/null
+++ b/abs/not_built/extra/conky/current-power.patch
@@ -0,0 +1,12 @@
+diff -aur old/src/linux.c new/src/linux.c
+--- old/src/linux.c 2010-10-05 23:29:36.000000000 +0200
++++ new/src/linux.c 2010-12-06 22:18:59.346667183 +0100
+@@ -1671,6 +1671,8 @@
+ the tradition! */
+ else if (strncmp(buf, "POWER_SUPPLY_CURRENT_NOW=", 25) == 0)
+ sscanf(buf, "POWER_SUPPLY_CURRENT_NOW=%d", &present_rate);
++ else if (strncmp(buf, "POWER_SUPPLY_POWER_NOW=", 23) == 0)
++ sscanf(buf, "POWER_SUPPLY_POWER_NOW=%d", &present_rate);
+ else if (strncmp(buf, "POWER_SUPPLY_ENERGY_NOW=", 24) == 0)
+ sscanf(buf, "POWER_SUPPLY_ENERGY_NOW=%d", &remaining_capacity);
+ else if (strncmp(buf, "POWER_SUPPLY_ENERGY_FULL=", 25) == 0)
diff --git a/abs/not_built/extra/consolekit/PKGBUILD b/abs/not_built/extra/consolekit/PKGBUILD
new file mode 100644
index 0000000..10a1f7f
--- /dev/null
+++ b/abs/not_built/extra/consolekit/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 87085 2010-08-10 18:29:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=consolekit
+pkgver=0.4.1
+pkgrel=4
+pkgdesc="A framework for defining and tracking users, login sessions, and seats"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/ConsoleKit"
+license=('GPL')
+depends=('polkit>=0.95' 'zlib' 'libx11>=1.2.2')
+makedepends=('pkgconfig' 'xmlto' 'docbook-xsl')
+options=(!libtool)
+source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${pkgver}.tar.bz2
+ pam-foreground-compat.ck
+ nodaemon.patch
+ reorder-initialization.patch
+ add_since_option.patch
+ consolekit.logrotate)
+md5sums=('48eda4483cc97841d5f88e8e003eb6d7'
+ 'a8a4de71d9b0549b8143e5f6c2a36fc7'
+ 'a5bfd56bc89411ff5bb18276a68cb212'
+ '99fa8cb1bf232050cc0c076378e216c5'
+ 'bd5e72397fe2d42a933a897d28d58155'
+ '6fefa451d9fe2fc6d6269629d3529793')
+
+build() {
+ cd "${srcdir}/ConsoleKit-${pkgver}"
+ patch -Np1 -i "${srcdir}/nodaemon.patch"
+ patch -Np1 -i "${srcdir}/reorder-initialization.patch"
+ patch -Np1 -i "${srcdir}/add_since_option.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/ConsoleKit \
+ --enable-pam-module \
+ --enable-docbook-docs
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 "${srcdir}/pam-foreground-compat.ck" "${pkgdir}/usr/lib/ConsoleKit/run-session.d/"
+
+ # install the logrotate config
+ install -D -m644 ${srcdir}/consolekit.logrotate ${pkgdir}/etc/logrotate.d/consolekit
+}
diff --git a/abs/not_built/extra/consolekit/add_since_option.patch b/abs/not_built/extra/consolekit/add_since_option.patch
new file mode 100644
index 0000000..50c1421
--- /dev/null
+++ b/abs/not_built/extra/consolekit/add_since_option.patch
@@ -0,0 +1,220 @@
+From c9f2292339540d4b9d8940bcef16b7485480c8d9 Mon Sep 17 00:00:00 2001
+From: William Jon McCann <jmccann@redhat.com>
+Date: Fri, 11 Jun 2010 19:53:22 +0000
+Subject: Add a --since option to show entries in a time window
+
+Doesn't load any history files it doesn't need to which should
+help performance on systems with long histories.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25660
+---
+diff --git a/tools/ck-history.c b/tools/ck-history.c
+index 606106c..d02caaa 100644
+--- a/tools/ck-history.c
++++ b/tools/ck-history.c
+@@ -62,8 +62,8 @@ typedef enum {
+
+ static GList *all_events = NULL;
+
+-static gboolean
+-process_event_line (const char *line)
++static CkLogEvent *
++parse_event_line (const char *line)
+ {
+ GString *str;
+ CkLogEvent *event;
+@@ -72,47 +72,80 @@ process_event_line (const char *line)
+ event = ck_log_event_new_from_string (str);
+ g_string_free (str, TRUE);
+
+- if (event != NULL) {
+- all_events = g_list_prepend (all_events, event);
+- }
+-
+- return TRUE;
++ return event;
+ }
+
+ static gboolean
+-process_log_gzstream (gzFile *fstream)
++process_log_gzstream (gzFile *fstream,
++ GTimeVal *since)
+ {
+- char line[MAX_LINE_LEN];
++ char line[MAX_LINE_LEN];
++ gboolean hit_since;
++ GList *events;
+
++ events = NULL;
++ hit_since = FALSE;
+ while (gzgets (fstream, line, sizeof (line)) != Z_NULL) {
++ CkLogEvent *event;
++
+ if (strlen (line) == sizeof (line) - 1) {
+ g_warning ("Log line truncated");
+ }
+
+- process_event_line (line);
++ event = parse_event_line (line);
++ if (event == NULL) {
++ continue;
++ }
++
++ if (since == NULL || event->timestamp.tv_sec >= since->tv_sec) {
++ events = g_list_prepend (events, event);
++ } else {
++ hit_since = TRUE;
++ }
+ }
+
+- return TRUE;
++ all_events = g_list_concat (all_events, events);
++
++ return !hit_since;
+ }
+
+ static gboolean
+-process_log_stream (FILE *fstream)
++process_log_stream (FILE *fstream,
++ GTimeVal *since)
+ {
+- char line[MAX_LINE_LEN];
++ char line[MAX_LINE_LEN];
++ gboolean hit_since;
++ GList *events;
+
++ events = NULL;
++ hit_since = FALSE;
+ while (fgets (line, sizeof (line), fstream) != NULL) {
++ CkLogEvent *event;
++
+ if (strlen (line) == sizeof (line) - 1) {
+ g_warning ("Log line truncated");
+ }
+
+- process_event_line (line);
++ event = parse_event_line (line);
++ if (event == NULL) {
++ continue;
++ }
++
++ if (since == NULL || event->timestamp.tv_sec >= since->tv_sec) {
++ events = g_list_prepend (events, event);
++ } else {
++ hit_since = TRUE;
++ }
+ }
+
+- return TRUE;
++ all_events = g_list_concat (all_events, events);
++
++ return !hit_since;
+ }
+
+ static gboolean
+-process_log_file (const char *filename)
++process_log_file (const char *filename,
++ GTimeVal *since)
+ {
+ gboolean ret;
+
+@@ -131,7 +164,7 @@ process_log_file (const char *filename)
+ errmsg);
+ return FALSE;
+ }
+- ret = process_log_gzstream (f);
++ ret = process_log_gzstream (f, since);
+ gzclose (f);
+ } else {
+ FILE *f;
+@@ -143,7 +176,7 @@ process_log_file (const char *filename)
+ g_strerror (errno));
+ return FALSE;
+ }
+- ret = process_log_stream (f);
++ ret = process_log_stream (f, since);
+ fclose (f);
+ }
+
+@@ -180,11 +213,14 @@ get_log_file_list (void)
+ files = g_list_prepend (files, filename);
+ };
+
++ /* Return the list in reverse time order, newest first */
++ files = g_list_reverse (files);
++
+ return files;
+ }
+
+ static gboolean
+-process_logs (void)
++process_logs (GTimeVal *since)
+ {
+ gboolean ret;
+ GList *files;
+@@ -199,8 +235,7 @@ process_logs (void)
+ char *filename;
+
+ filename = l->data;
+-
+- res = process_log_file (filename);
++ res = process_log_file (filename, since);
+ if (! res) {
+ goto out;
+ }
+@@ -843,6 +878,8 @@ main (int argc,
+ GError *error = NULL;
+ int report_type;
+ int uid;
++ GTimeVal timestamp;
++ gboolean use_since;
+ static gboolean do_version = FALSE;
+ static gboolean report_last_compat = FALSE;
+ static gboolean report_last = FALSE;
+@@ -851,6 +888,7 @@ main (int argc,
+ static char *username = NULL;
+ static char *seat = NULL;
+ static char *session_type = NULL;
++ static char *since = NULL;
+ static GOptionEntry entries [] = {
+ { "version", 'V', 0, G_OPTION_ARG_NONE, &do_version, N_("Version of this application"), NULL },
+ { "frequent", 0, 0, G_OPTION_ARG_NONE, &report_frequent, N_("Show listing of frequent users"), NULL },
+@@ -860,6 +898,7 @@ main (int argc,
+ { "seat", 's', 0, G_OPTION_ARG_STRING, &seat, N_("Show entries for the specified seat"), N_("SEAT") },
+ { "session-type", 't', 0, G_OPTION_ARG_STRING, &session_type, N_("Show entries for the specified session type"), N_("TYPE") },
+ { "user", 'u', 0, G_OPTION_ARG_STRING, &username, N_("Show entries for the specified user"), N_("NAME") },
++ { "since", 0, 0, G_OPTION_ARG_STRING, &since, N_("Show entries since the specified time (ISO 8601 format)"), N_("DATETIME") },
+ { NULL }
+ };
+
+@@ -880,6 +919,15 @@ main (int argc,
+ exit (1);
+ }
+
++ use_since = FALSE;
++ if (since != NULL) {
++ use_since = g_time_val_from_iso8601 (since, &timestamp);
++ if (! use_since) {
++ g_warning ("Invalid ISO 8601 time value");
++ exit (1);
++ }
++ }
++
+ if (report_last_compat) {
+ report_type = REPORT_TYPE_LAST_COMPAT;
+ } else if (report_last) {
+@@ -902,7 +950,11 @@ main (int argc,
+ uid = -1;
+ }
+
+- process_logs ();
++ if (use_since) {
++ process_logs (&timestamp);
++ } else {
++ process_logs (NULL);
++ }
+ generate_report (report_type, uid, seat, session_type);
+ free_events ();
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/abs/not_built/extra/consolekit/consolekit.logrotate b/abs/not_built/extra/consolekit/consolekit.logrotate
new file mode 100644
index 0000000..7c5346e
--- /dev/null
+++ b/abs/not_built/extra/consolekit/consolekit.logrotate
@@ -0,0 +1,5 @@
+/var/log/ConsoleKit/history {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/abs/not_built/extra/consolekit/nodaemon.patch b/abs/not_built/extra/consolekit/nodaemon.patch
new file mode 100644
index 0000000..c4c08e9
--- /dev/null
+++ b/abs/not_built/extra/consolekit/nodaemon.patch
@@ -0,0 +1,9 @@
+diff -up ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in.nodaemon ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in
+--- ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in.nodaemon 2009-12-15 10:56:39.839818556 -0500
++++ ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in 2009-12-15 10:56:50.177792048 -0500
+@@ -1,4 +1,4 @@
+ [D-BUS Service]
+ Name=org.freedesktop.ConsoleKit
+-Exec=@sbindir@/console-kit-daemon
++Exec=@sbindir@/console-kit-daemon --no-daemon
+ User=root
diff --git a/abs/not_built/extra/consolekit/pam-foreground-compat.ck b/abs/not_built/extra/consolekit/pam-foreground-compat.ck
new file mode 100644
index 0000000..7f6b122
--- /dev/null
+++ b/abs/not_built/extra/consolekit/pam-foreground-compat.ck
@@ -0,0 +1,16 @@
+#!/bin/sh
+TAGDIR=/var/run/console
+
+[ -n "$CK_SESSION_USER_UID" ] || exit 1
+
+TAGFILE="$TAGDIR/`getent passwd $CK_SESSION_USER_UID | cut -f 1 -d:`"
+
+if [ "$1" = "session_added" ]; then
+ mkdir -p "$TAGDIR"
+ echo "$CK_SESSION_ID" >> "$TAGFILE"
+fi
+
+if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then
+ sed -i "\%^$CK_SESSION_ID\$%d" "$TAGFILE"
+ [ -s "$TAGFILE" ] || rm -f "$TAGFILE"
+fi
diff --git a/abs/not_built/extra/consolekit/reorder-initialization.patch b/abs/not_built/extra/consolekit/reorder-initialization.patch
new file mode 100644
index 0000000..f65abd5
--- /dev/null
+++ b/abs/not_built/extra/consolekit/reorder-initialization.patch
@@ -0,0 +1,40 @@
+diff -up ConsoleKit-0.4.1/src/main.c.reorder-initialization ConsoleKit-0.4.1/src/main.c
+--- ConsoleKit-0.4.1/src/main.c.reorder-initialization 2009-12-18 14:51:38.821212946 -0500
++++ ConsoleKit-0.4.1/src/main.c 2009-12-18 14:52:19.246211176 -0500
+@@ -294,11 +294,19 @@ main (int argc,
+
+ setup_debug_log (debug);
+
++ g_debug ("initializing console-kit-daemon %s", VERSION);
++
+ connection = get_system_bus ();
+ if (connection == NULL) {
+ goto out;
+ }
+
++ manager = ck_manager_new ();
++
++ if (manager == NULL) {
++ goto out;
++ }
++
+ bus_proxy = get_bus_proxy (connection);
+ if (bus_proxy == NULL) {
+ g_warning ("Could not construct bus_proxy object; bailing out");
+@@ -310,16 +318,8 @@ main (int argc,
+ goto out;
+ }
+
+- g_debug ("initializing console-kit-daemon %s", VERSION);
+-
+ create_pid_file ();
+
+- manager = ck_manager_new ();
+-
+- if (manager == NULL) {
+- goto out;
+- }
+-
+ loop = g_main_loop_new (NULL, FALSE);
+
+ g_signal_connect (bus_proxy,
diff --git a/abs/not_built/extra/cpufreqd/PKGBUILD b/abs/not_built/extra/cpufreqd/PKGBUILD
new file mode 100644
index 0000000..fd6d544
--- /dev/null
+++ b/abs/not_built/extra/cpufreqd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 60269 2009-12-02 16:30:29Z giovanni $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=cpufreqd
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="A small daemon to adjust cpu speed (and indeed voltage)"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/cpufreqd"
+license=('GPL2')
+depends=('cpufrequtils')
+install="$pkgname.install"
+backup=(etc/cpufreqd.conf)
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+ 'cpufreqd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=$pkgdir install
+
+ install -D -m 755 $srcdir/cpufreqd $pkgdir/etc/rc.d/cpufreqd || return 1
+}
+md5sums=('2ca80a77849c9a69b81e27c1843c97f5'
+ 'ae7b0ec1e8e9f9e7f05fb83749af4ed4')
diff --git a/abs/not_built/extra/cpufreqd/cpufreqd b/abs/not_built/extra/cpufreqd/cpufreqd
new file mode 100644
index 0000000..af55456
--- /dev/null
+++ b/abs/not_built/extra/cpufreqd/cpufreqd
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/cpufreqd`
+case "$1" in
+ start)
+ stat_busy "Starting cpufreqd"
+ [ -z "$PID" ] && /usr/sbin/cpufreqd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon cpufreqd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping cpufreqd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon cpufreqd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/extra/cpufreqd/cpufreqd.install b/abs/not_built/extra/cpufreqd/cpufreqd.install
new file mode 100644
index 0000000..e56ce57
--- /dev/null
+++ b/abs/not_built/extra/cpufreqd/cpufreqd.install
@@ -0,0 +1,26 @@
+post_install() {
+ cat << EOF
+
+NOTE
+----
+In order to use that daemon you need to either patch your
+kernel-2.4.x with cpufreq patch (check
+http://www.codemonkey.org.uk/projects/cpufreq/),
+or use kernel-2.6.x or 2.4.x.-ac.
+
+EOF
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/cpufrequtils/PKGBUILD b/abs/not_built/extra/cpufrequtils/PKGBUILD
new file mode 100644
index 0000000..c9087aa
--- /dev/null
+++ b/abs/not_built/extra/cpufrequtils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 66595 2010-02-01 00:00:07Z giovanni $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: phrakture <aaronmgriffin+gmail+com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=cpufrequtils
+pkgver=008
+pkgrel=1
+pkgdesc="Userspace tools for the kernel cpufreq subsystem"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html"
+license=('GPL')
+depends=('sysfsutils')
+backup=('etc/conf.d/cpufreq')
+source=(http://www.kernel.org/pub/linux/utils/kernel/cpufreq/${pkgname}-${pkgver}.tar.bz2
+ cpufreq.rcd
+ cpufreq.confd)
+options=(!libtool)
+
+build()
+{
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make -j1 || return 1
+ make INSTALL="/bin/install -c" mandir=/usr/share/man DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m755 ${srcdir}/cpufreq.rcd "${pkgdir}/etc/rc.d/cpufreq" || return 1
+ install -D -m644 ${srcdir}/cpufreq.confd "${pkgdir}/etc/conf.d/cpufreq" || return 1
+}
+md5sums=('c59b71c044d463896f3247e8dd83dd7e'
+ '7f2b5085df44d2df3e7c2d0b9f6dab08'
+ 'baae1f2abffc6bef2bd32a8dd8263c09')
diff --git a/abs/not_built/extra/cpufrequtils/cpufreq.confd b/abs/not_built/extra/cpufrequtils/cpufreq.confd
new file mode 100644
index 0000000..2189097
--- /dev/null
+++ b/abs/not_built/extra/cpufrequtils/cpufreq.confd
@@ -0,0 +1,14 @@
+#configuration for cpufreq control
+
+# valid governors:
+# ondemand, performance, powersave,
+# conservative, userspace
+#governor="ondemand"
+
+# limit frequency range (optional)
+# valid suffixes: Hz, kHz (default), MHz, GHz, THz
+#min_freq="2.25GHz"
+#max_freq="3GHz"
+
+# use freq to set up the exact cpu frequency using it with userspace governor
+#freq=
diff --git a/abs/not_built/extra/cpufrequtils/cpufreq.rcd b/abs/not_built/extra/cpufrequtils/cpufreq.rcd
new file mode 100644
index 0000000..9bc19b1
--- /dev/null
+++ b/abs/not_built/extra/cpufrequtils/cpufreq.rcd
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/cpufreq ] && . /etc/conf.d/cpufreq
+
+case "$1" in
+ start)
+ stat_busy "Setting cpufreq governing rules"
+
+ params=""
+ if [ -n "$governor" ]; then
+ mod="cpufreq_$governor"
+ params="-g $governor"
+ grep -qw "$governor" /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors || modprobe -q $mod
+ if [ $? -eq 0 ]; then
+ if [ "$min_freq" != "" ]; then
+ params="$params -d $min_freq"
+ fi
+ if [ "$max_freq" != "" ]; then
+ params="$params -u $max_freq"
+ fi
+ else
+ stat_busy " Cannot load governor module '$governor'"
+ stat_fail
+ exit
+ fi
+ fi
+
+ if [ "$params" != "" ]; then
+ CPUS=$(sed -ne 's/^processor.* \([0-9]\+\)$/\1/p' /proc/cpuinfo)
+ stat_append ", cpu"
+ for cpu in $CPUS; do
+ stat_append " $cpu"
+ cpufreq-set -c $cpu $params
+ if [ "$freq" != "" ]; then
+ cpufreq-set -c $cpu -f $freq
+ fi
+ done
+ stat_done
+ else
+ stat_busy " Invalid configuration in /etc/conf.d/cpufreq"
+ stat_fail
+ fi
+ ;;
+ stop)
+ # nothing to do
+ ;;
+ restart)
+ $0 start
+ ;;
+ set)
+ # TODO: make callable... "cpufreq set 800MHz"
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/not_built/extra/crypto++/PKGBUILD b/abs/not_built/extra/crypto++/PKGBUILD
new file mode 100644
index 0000000..45c90d5
--- /dev/null
+++ b/abs/not_built/extra/crypto++/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+# Contributor: jlvsimoes <jlvsimoes@oninet.pt>
+
+pkgname=crypto++
+pkgver=5.6.1
+_srcver=561
+pkgrel=2
+pkgdesc="A free C++ class library of cryptographic schemes."
+arch=('i686' 'x86_64')
+url="http://www.cryptopp.com/"
+license=('custom')
+depends=('gcc-libs')
+makedepends=('unzip')
+source=(http://www.cryptopp.com/cryptopp${_srcver}.zip
+ libcrypto++.pc)
+md5sums=('96cbeba0907562b077e26bcffb483828'
+ '2337c6edbc552d9142cae8e0854715e7')
+
+build() {
+ cd ${srcdir}
+ sed -i -e 's/^CXXFLAGS/#CXXFLAGS/' GNUmakefile
+ export CXXFLAGS="${CXXFLAGS} -DNDEBUG -fPIC"
+ make -f GNUmakefile
+ make libcryptopp.so
+ install -d ${pkgdir}/usr/{lib/pkgconfig,include/cryptopp}
+ install -m644 *.h ${pkgdir}/usr/include/cryptopp/
+ install -m644 libcryptopp.a ${pkgdir}/usr/lib/libcryptopp.a
+ install -m644 libcryptopp.so ${pkgdir}/usr/lib/libcryptopp.so
+ install -m644 ${srcdir}/libcrypto++.pc "${pkgdir}/usr/lib/pkgconfig/libcrypto++.pc"
+ install -D -m644 License.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/abs/not_built/extra/crypto++/libcrypto++.pc b/abs/not_built/extra/crypto++/libcrypto++.pc
new file mode 100644
index 0000000..698d761
--- /dev/null
+++ b/abs/not_built/extra/crypto++/libcrypto++.pc
@@ -0,0 +1,11 @@
+# Written by Alexander Rødseth <rodseth@gmail.com>
+
+prefix=/usr
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: libcrypto++-5.6.1
+Description: Class library of cryptographic schemes
+Version: 5.6.1
+Libs: -L${libdir} -lcryptopp
+Cflags: -I${includedir}
diff --git a/abs/not_built/extra/crystalhd-firmware/PKGBUILD b/abs/not_built/extra/crystalhd-firmware/PKGBUILD
new file mode 100644
index 0000000..6fcff54
--- /dev/null
+++ b/abs/not_built/extra/crystalhd-firmware/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Lex Rivera <x-demon@x-demon.org>
+pkgname=crystalhd-firmware
+pkgver=20100703
+_intver=07032010
+pkgrel=1
+pkgdesc="Broadcom Crystal HD firmware"
+arch=('i686' 'x86_64')
+url="http://git.wilsonet.com/crystalhd.git/"
+license=('GPL2')
+source=("http://www.broadcom.com/docs/support/crystalhd/crystalhd_linux_${pkgver}.zip")
+
+md5sums=('f14c0e418b36ea14f8d25f9a7d6f7507')
+
+build() {
+ tar zxf crystalhd_${_intver}.tbz2
+ cd $srcdir/${_intver}/linux_lib/libcrystalhd/
+ msg "Building..."
+ #./configure
+ make
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr
+
+}
+# vim:syntax=sh
diff --git a/abs/not_built/extra/crystalhd-git/PKGBUILD b/abs/not_built/extra/crystalhd-git/PKGBUILD
new file mode 100644
index 0000000..a7b3e7f
--- /dev/null
+++ b/abs/not_built/extra/crystalhd-git/PKGBUILD
@@ -0,0 +1,52 @@
+# Contributor: Petteri Tolonen <petteri.tolonen[at]gmail.com>
+# Maintainer: Petteri Tolonen <petteri.tolonen[at]gmail.com>
+
+pkgname=crystalhd-git
+pkgver=20111227
+pkgrel=1
+pkgdesc="Broadcom CrystalHD kernel module"
+arch=('i686' 'x86_64')
+url="http://linuxtv.org/git/jarod/crystalhd.git"
+license=('GPL2')
+depends=('libcrystalhd-git')
+makedepends=('autoconf' 'make' 'git')
+install='crystalhd-git.install'
+conflicts=('crystalhd')
+_gitroot='git://linuxtv.org/jarod/crystalhd.git'
+_gitname='crystalhd'
+
+build() {
+
+ cd $startdir/src
+
+ msg "Connecting to the GIT server...."
+
+ if [ -d $startdir/src/$_gitname ] ; then
+ cd $_gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot
+ cd $_gitname
+ fi
+
+ cd driver/linux
+
+ autoconf
+ ./configure --prefix=/usr
+ sed -i 's/'-Werror'/''/g' Makefile
+
+ if ! grep -q "<linux/delay.h>" $srcdir/crystalhd/driver/linux/crystalhd_flea_ddr.c
+ then
+ sed -i '26i #include <linux/delay.h>' $srcdir/crystalhd/driver/linux/crystalhd_flea_ddr.c
+ fi
+
+ make || return 1
+
+ mkdir -p $pkgdir/etc/udev/rules.d
+ mkdir -p $pkgdir/lib/modules/$(uname -r)/kernel/drivers/video/broadcom
+
+ cp -f 20-crystalhd.rules $pkgdir/etc/udev/rules.d/
+ install -d $pkgdir/lib/modules/$(uname -r)/kernel/drivers/video/broadcom
+ install -m 0644 crystalhd.ko $pkgdir/lib/modules/$(uname -r)/kernel/drivers/video/broadcom
+}
+md5sums=()
diff --git a/abs/not_built/extra/crystalhd-git/crystalhd-git.install b/abs/not_built/extra/crystalhd-git/crystalhd-git.install
new file mode 100644
index 0000000..077905e
--- /dev/null
+++ b/abs/not_built/extra/crystalhd-git/crystalhd-git.install
@@ -0,0 +1,6 @@
+post_install () {
+ depmod -a
+}
+post_upgrade() {
+ post_install
+}
diff --git a/abs/not_built/extra/cvs/PKGBUILD b/abs/not_built/extra/cvs/PKGBUILD
new file mode 100644
index 0000000..26b95db
--- /dev/null
+++ b/abs/not_built/extra/cvs/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 75326 2010-04-01 10:25:20Z allan $
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=cvs
+pkgver=1.11.23
+pkgrel=5
+pkgdesc="Concurrent Versions System - a source control system"
+arch=(i686 x86_64)
+url="http://cvs.nongnu.org"
+license=('GPL')
+depends=('heimdal>=1.3.1')
+optdepends=('openssh: for using cvs over ssh' 'inetutils: for using cvs over rsh')
+install=cvs.install
+source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/$pkgver/$pkgname-$pkgver.tar.bz2
+ cvs-1.11.23-getline64.patch)
+sha256sums=('400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9'
+ '9126d7992ace943980ad8a10d5a09aeb6f1eeeb9b921fc796fe31de7b1c220cf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset EDITOR VISUAL
+
+ patch -Np1 -i $srcdir/cvs-1.11.23-getline64.patch || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+ rm ${pkgdir}/usr/share/info/dir
+}
diff --git a/abs/not_built/extra/cvs/cvs-1.11.23-getline64.patch b/abs/not_built/extra/cvs/cvs-1.11.23-getline64.patch
new file mode 100644
index 0000000..99942e0
--- /dev/null
+++ b/abs/not_built/extra/cvs/cvs-1.11.23-getline64.patch
@@ -0,0 +1,34 @@
+--- cvs-1.11.23/lib/getline.c 2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.c.old 2008-06-03 19:06:25.000000000 +0200
+@@ -154,7 +154,7 @@
+ return ret;
+ }
+
+-int
++ssize_t
+ getline (lineptr, n, stream)
+ char **lineptr;
+ size_t *n;
+@@ -163,7 +163,7 @@
+ return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+ }
+
+-int
++ssize_t
+ getline_safe (lineptr, n, stream, limit)
+ char **lineptr;
+ size_t *n;
+--- cvs-1.11.23/lib/getline.h 2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.h.old 2008-06-03 19:06:27.000000000 +0200
+@@ -11,9 +11,9 @@
+
+ #define GETLINE_NO_LIMIT -1
+
+-int
++ssize_t
+ getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+-int
++ssize_t
+ getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+ int limit));
+ int
diff --git a/abs/not_built/extra/cvs/cvs.install b/abs/not_built/extra/cvs/cvs.install
new file mode 100644
index 0000000..f1cdd1f
--- /dev/null
+++ b/abs/not_built/extra/cvs/cvs.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(cvs.info cvs-info-1 cvs-info-2 cvsclient.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/extra/diffstat/PKGBUILD b/abs/not_built/extra/diffstat/PKGBUILD
new file mode 100644
index 0000000..f52c2fb
--- /dev/null
+++ b/abs/not_built/extra/diffstat/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 13739 2008-09-28 10:43:08Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Matthias-Christian Ott <matthias.christian.at.tiscali.de>
+
+pkgname=diffstat
+pkgver=1.53
+pkgrel=1
+pkgdesc="diffstat produces graph of changes introduced by a diff file"
+arch=('i686' 'x86_64')
+url="http://invisible-island.net/diffstat"
+depends=('glibc')
+license=('GPL')
+source=(ftp://invisible-island.net/$pkgname/$pkgname-$pkgver.tgz)
+
+build () {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+}
+package() {
+ cd $startdir/src/$pkgname-$pkgver
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('0631010aa598a8011259749dd882936a')
diff --git a/abs/not_built/extra/dpgconv/PKGBUILD b/abs/not_built/extra/dpgconv/PKGBUILD
new file mode 100644
index 0000000..82fe117
--- /dev/null
+++ b/abs/not_built/extra/dpgconv/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+pkgname=dpgconv
+pkgver=9
+pkgrel=1
+pkgdesc="This is a converter to produce DPG movies for Moonshell software for Nintendo DS."
+arch=('i686' 'x86_64')
+url="http://theli.is-a-geek.org/blog/static/dpgconv"
+license=('GPL2')
+depends=('mpeg_stat' 'mplayer')
+source=(http://theli.is-a-geek.org/files/dpgconv/dpgconv-$pkgver.py.bz2
+ dpgconv-panscan.patch)
+
+build() {
+
+cd $startdir/src
+patch < dpgconv-panscan.patch
+install -m755 -D $startdir/src/dpgconv-$pkgver.py $startdir/pkg/usr/bin/dpgconv-$pkgver.py
+cd $startdir/pkg/usr/bin
+ln -s dpgconv-$pkgver.py dpgconv.py
+}
+md5sums=('fa61ceb4ebb241e98fc005aed86406e5')
+
diff --git a/abs/not_built/extra/dpgconv/dpgconv-panscan.patch b/abs/not_built/extra/dpgconv/dpgconv-panscan.patch
new file mode 100644
index 0000000..471d518
--- /dev/null
+++ b/abs/not_built/extra/dpgconv/dpgconv-panscan.patch
@@ -0,0 +1,83 @@
+--- dpgconv-9.py.old 2009-10-28 19:33:46.000000000 +1030
++++ dpgconv-9.py 2009-10-28 19:28:01.000000000 +1030
+@@ -49,9 +49,12 @@
+ --width xxx
+ destination video width (default: 256)
+ --keep-aspect
+- try to keep aspect ratio
++ try to keep aspect ratio by letterboxing
++ --keep-aspect-panscan
++ try to keep aspect ratio by cropping original
+
+ NOTE: width/height have no effect when --keep-aspect is set
++ --keep-aspect-panscan overrides --keep-aspect
+
+ --mv
+ additional parameters for mencoder for video
+@@ -150,8 +153,38 @@
+ v_pf = "format=rgb24,"
+ options.pf = 3
+
+- if options.aspect:
+- aspect = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_ASPECT\"")
++ crop=""
++ if options.panscan:
++ options.width=256
++ options.height=192
++
++ aspect = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_ASPECT\" | tail -1")
++ p1 = re.compile ("ID_VIDEO_ASPECT=(.*)")
++ m1 = p1.search( aspect )
++ width = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_WIDTH\" | tail -1")
++ p2 = re.compile ("ID_VIDEO_WIDTH=(.*)")
++ m2 = p2.search( width )
++ height = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_HEIGHT\" | tail -1")
++ p3 = re.compile ("ID_VIDEO_HEIGHT=(.*)")
++ m3 = p3.search( height )
++ if m1 and m2 and m3:
++ print "Input Aspect %s" % m1.group(1)
++ print "Input Width %s" % m2.group(1)
++ print "Input Height %s" % m3.group(1)
++ ar = float (m1.group(1))
++ iw = int (m2.group(1))
++ ih = int (m3.group(1))
++ if aspect > 1.333333:
++ cropw=int(round(iw / ar * 4 / 3, 0))
++ croph=ih
++ else:
++ cropw=iw
++ croph=int(round(ih * ar * 3 / 4, 0))
++ crop="crop="+`cropw`+":"+`croph`+","
++ print crop
++
++ elif options.aspect:
++ aspect = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_ASPECT\" | tail -1")
+ p = re.compile ("ID_VIDEO_ASPECT=(.*)")
+ m = p.search( aspect )
+ if m:
+@@ -169,13 +202,13 @@
+ if options.fps < 24:
+ print "mencoder won't work with double pass and fps < 24, forcing fps = 24"
+ options.fps = 24
+- v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:vmax_b_frames=2:cmp=6:subcmp=6:precmp=6:dia=4:predia=4:bidir_refine=4:mv0_threshold=0:last_pred=3:vbitrate=" + `options.vbps` )
++ v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:vmax_b_frames=2:cmp=6:subcmp=6:precmp=6:dia=4:predia=4:bidir_refine=4:mv0_threshold=0:last_pred=3:vbitrate=" + `options.vbps` )
+ elif options.hq:
+- v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=6:subcmp=6:precmp=6:dia=3:predia=3:last_pred=3:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
++ v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=6:subcmp=6:precmp=6:dia=3:predia=3:last_pred=3:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
+ elif options.lq:
+- v_cmd = ( " \"" + file + "\" -v -ofps " + `options.fps` + " -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` + ",harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
++ v_cmd = ( " \"" + file + "\" -v -ofps " + `options.fps` + " -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` + ",harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
+ else :
+- v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` + ":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=2:subcmp=2:precmp=2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo")
++ v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` + ":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=2:subcmp=2:precmp=2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo")
+
+ if options.nosub:
+ if options.sub != None:
+@@ -459,6 +492,7 @@
+ parser.add_option("-a","--abps", type="int", dest="abps", default=128)
+ parser.add_option("--volnorm", action="store_true", dest="volnorm", default=False)
+ parser.add_option("--keep-aspect", action="store_true", dest="aspect", default=False)
++parser.add_option("--keep-aspect-panscan", action="store_true", dest="panscan", default=False)
+ parser.add_option("--height", type="int", dest="height", default=192)
+ parser.add_option("--width", type="int", dest="width", default=256)
+ parser.add_option("-z","--hz", type="int", dest="hz", default=32000)
diff --git a/abs/not_built/extra/exo/PKGBUILD b/abs/not_built/extra/exo/PKGBUILD
new file mode 100644
index 0000000..e4eaf14
--- /dev/null
+++ b/abs/not_built/extra/exo/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 89681 2010-09-03 08:02:13Z remy $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=exo
+pkgver=0.3.107
+pkgrel=2
+pkgdesc="Extensions to Xfce by os-cillation"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL')
+url="http://www.xfce.org/projects/exo"
+depends=("libxfce4util>=4.6.2" "hal>=0.5.14" 'gtk2' 'hicolor-icon-theme' 'sh')
+makedepends=("pygtk>=2.17.0" 'pkgconfig' 'libnotify' 'perl-uri' 'intltool')
+optdepends=('libnotify: notification support for exo-mount-notify' \
+ 'perl-uri: for mail-compose helper script')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3a92cca0c99ee940db4410891c9e8498')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var --disable-static --enable-notifications \
+ --enable-python || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/exo/exo.install b/abs/not_built/extra/exo/exo.install
new file mode 100644
index 0000000..21b79d2
--- /dev/null
+++ b/abs/not_built/extra/exo/exo.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/abs/not_built/extra/fakeroot/PKGBUILD b/abs/not_built/extra/fakeroot/PKGBUILD
new file mode 100644
index 0000000..688c3d3
--- /dev/null
+++ b/abs/not_built/extra/fakeroot/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 29508 2009-03-09 17:06:43Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=fakeroot
+pkgver=1.14.4
+pkgrel=1
+pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://packages.debian.org/fakeroot"
+groups=('base-devel')
+install=fakeroot.install
+depends=('glibc' 'filesystem' 'grep' 'sed')
+options=('!libtool')
+source=(http://ftp.debian.org/debian/pool/main/f/$pkgname/${pkgname}_${pkgver}.orig.tar.bz2)
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \
+ --disable-static --with-ipc=sysv
+ # --with-ipc=tcp is currently broken and no option on smp systems
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ # install README for sysv/tcp usage
+ install -Dm644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/$pkgname/README
+}
+md5sums=('bea628be77838aaa7323a2f7601c2d7e')
diff --git a/abs/not_built/extra/fakeroot/fakeroot.install b/abs/not_built/extra/fakeroot/fakeroot.install
new file mode 100644
index 0000000..c2f62a7
--- /dev/null
+++ b/abs/not_built/extra/fakeroot/fakeroot.install
@@ -0,0 +1,30 @@
+# arg 1: the new package version
+post_install() {
+ if [ ! "`grep /usr/lib/libfakeroot etc/ld.so.conf`" ]; then
+ echo -n "updating /etc/ld.so.conf... "
+ echo "/usr/lib/libfakeroot" >>etc/ld.so.conf
+ sbin/ldconfig -r .
+ echo "done."
+ fi
+echo "The package is built using sysv ipc. If this causes segfaults"
+echo "see included README file and rebuild the pkg --with-ipc=tcp"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ echo -ne "\nupdating /etc/ld.so.conf... "
+ sed -i -e '/\/usr\/lib\/libfakeroot/d' etc/ld.so.conf
+ sbin/ldconfig -r .
+ echo "done."
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/ffmpegthumbnailer/PKGBUILD b/abs/not_built/extra/ffmpegthumbnailer/PKGBUILD
new file mode 100644
index 0000000..8be79eb
--- /dev/null
+++ b/abs/not_built/extra/ffmpegthumbnailer/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 23110 2010-08-06 11:01:51Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: boromil@gmail.com
+
+pkgname=ffmpegthumbnailer
+pkgver=2.0.6
+pkgrel=1
+pkgdesc="Lightweight video thumbnailer that can be used by file managers."
+url="http://code.google.com/p/ffmpegthumbnailer/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('ffmpeg' 'libjpeg' 'libpng')
+optdepends=('gvfs: support for gio uris')
+source=(http://ffmpegthumbnailer.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+md5sums=('5003ceaadc1c5a1be1dbb34739a12bab')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --enable-gio
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+
diff --git a/abs/not_built/extra/fuppes-svn/PKGBUILD b/abs/not_built/extra/fuppes-svn/PKGBUILD
new file mode 100644
index 0000000..03ffb9c
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/PKGBUILD
@@ -0,0 +1,54 @@
+# Contributor: Andrew Krawchyk <krawch_a@denison.edu>
+# patch for svn r634: Ivan Yurasov <vd@vdk.su>
+
+pkgname=fuppes-svn
+pkgver=664
+pkgrel=1
+pkgdesc="A free, multiplatform Universal Plug and Play A/V MediaServer"
+arch=('i686' 'x86_64')
+url="http://fuppes.ulrich-voelkel.de/"
+license=('GPL2')
+depends=('pcre' 'libxml2' 'sqlite3' 'gettext' 'taglib' 'imagemagick' 'ffmpeg' 'libmp4v2' 'lame' 'libvorbis' 'libmpcdec' 'flac' 'faad2' 'libmad')
+makdepends=('pkgconfig' 'autoconf' 'subversion')
+install=fuppes.install
+source=(fuppes-r634-archlinux.patch fuppes.diff fuppes.cfg run fuppes.ch fuppes.lr)
+
+_svnmod="fuppes"
+_svntrunk="https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk"
+
+build()
+{
+ cd ${startdir}/src
+
+ msg "Getting sources..."
+ svn co ${_svntrunk} ${_svnmod}
+ msg "Done getting sources or failed to connect to server."
+
+ cd ${_svnmod}
+
+# patch -Np0 -i ../fuppes-r634-archlinux.patch
+# patch -Np0 -i ../fuppes.diff
+ autoreconf -vfi
+
+ ./configure --prefix=/usr \
+ --enable-video-transcoding \
+ --disable-twolame || return 1
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ mkdir -p $startdir/pkg/etc/sv/fuppes/supervise
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/fuppes/
+ mkdir -p $startdir/pkg/etc/fuppes
+ cp $startdir/src/fuppes.cfg $startdir/pkg/etc/fuppes
+ mkdir -p $startdir/pkg/etc/cron.hourly
+ mkdir -p $startdir/pkg/etc/logrotate.d/
+ install -D -m755 $startdir/src/fuppes.ch $startdir/pkg/etc/cron.hourly
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/fuppes
+ install -D -m755 $startdir/src/fuppes.lr $startdir/pkg/etc/logrotate.d
+}
+md5sums=('5d9f6331cc91b64aab69449ce327b214'
+ 'c495fa1bd9a870ae36820632434319ee'
+ 'b0cef07d8e60d01c8146a69870672e1f'
+ '3850001378088e5efac60487e5550d54'
+ '3c355b860f1b0d273f5aa8b2bea1bde6'
+ '3151a3862fbc6b758d7ae5776eba3d57')
diff --git a/abs/not_built/extra/fuppes-svn/PKGBUILD.orig b/abs/not_built/extra/fuppes-svn/PKGBUILD.orig
new file mode 100644
index 0000000..79d11e2
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/PKGBUILD.orig
@@ -0,0 +1,52 @@
+# Contributor: Andrew Krawchyk <krawch_a@denison.edu>
+# patch for svn r634: Ivan Yurasov <vd@vdk.su>
+
+pkgname=fuppes-svn
+pkgver=636
+pkgrel=9
+pkgdesc="A free, multiplatform Universal Plug and Play A/V MediaServer"
+arch=('i686' 'x86_64')
+url="http://fuppes.ulrich-voelkel.de/"
+license=('GPL2')
+depends=('pcre' 'libxml2' 'sqlite3' 'gettext' 'taglib' 'imagemagick' 'ffmpeg' 'libmp4v2' 'lame' 'libvorbis' 'libmpcdec' 'flac' 'faad2' 'libmad')
+makdepends=('pkgconfig' 'autoconf' 'subversion')
+install=fuppes.install
+source=(fuppes-r634-archlinux.patch fuppes.diff fuppes.cfg run fuppes.ch fuppes.lr)
+md5sums=('5d9f6331cc91b64aab69449ce327b214' 'c495fa1bd9a870ae36820632434319ee' \
+ 'b0cef07d8e60d01c8146a69870672e1f' '3850001378088e5efac60487e5550d54' \
+ '3c355b860f1b0d273f5aa8b2bea1bde6')
+
+_svnmod="fuppes"
+_svntrunk="https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk"
+
+build()
+{
+ cd ${startdir}/src
+
+ msg "Getting sources..."
+ svn co -r 636 ${_svntrunk} ${_svnmod}
+ msg "Done getting sources or failed to connect to server."
+
+ cd ${_svnmod}
+
+ patch -Np0 -i ../fuppes-r634-archlinux.patch
+ patch -Np0 -i ../fuppes.diff
+ autoreconf -vfi
+
+ ./configure --prefix=/usr \
+ --enable-video-transcoding \
+ --disable-twolame || return 1
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ mkdir -p $startdir/pkg/etc/sv/fuppes/supervise
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/fuppes/
+ mkdir -p $startdir/pkg/etc/fuppes
+ cp $startdir/src/fuppes.cfg $startdir/pkg/etc/fuppes
+ mkdir -p $startdir/pkg/etc/cron.hourly
+ mkdir -p $startdir/pkg/etc/logrotate.d/
+ mkdir -p $startdir/pkg/etc/sv/fuppes/supervise
+ install -D -m755 $startdir/src/fuppes.ch $startdir/pkg/etc/cron.hourly
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/fuppes
+ install -D -m755 $startdir/src/fuppes.lr $startdir/pkg/etc/logrotate.d
+}
diff --git a/abs/not_built/extra/fuppes-svn/fuppes-r634-archlinux.patch b/abs/not_built/extra/fuppes-svn/fuppes-r634-archlinux.patch
new file mode 100644
index 0000000..feaccfa
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/fuppes-r634-archlinux.patch
@@ -0,0 +1,93 @@
+Index: src/plugins/ffmpeg/ffmpeg.cpp
+===================================================================
+--- src/plugins/ffmpeg/ffmpeg.cpp (revision 634)
++++ src/plugins/ffmpeg/ffmpeg.cpp (working copy)
+@@ -2190,7 +2190,7 @@
+ p=NULL;
+ for(p = av_codec_next(p); p != NULL; p = av_codec_next(p) ) {
+ #else
+- for(p = first_avcodec; p != NULL; p = p->next) {
++ for(p = av_codec_next(NULL); p != NULL; p = p->next) {
+ #endif
+
+ if((p2==NULL || strcmp(p->name, p2->name)<0) &&
+@@ -2269,7 +2269,7 @@
+ }
+ avformat_opts = av_alloc_format_context();
+ #ifdef HAVE_LIBSWSCALE
+- sws_opts = sws_getContext(16,16,0, 16,16,0, sws_flags, NULL,NULL,NULL);
++ sws_opts = sws_getContext(16,16,(PixelFormat)0, 16,16,(PixelFormat)0, sws_flags, NULL,NULL,NULL);
+ #endif
+
+
+Index: src/plugins/ffmpeg/ffmpeg.h
+===================================================================
+--- src/plugins/ffmpeg/ffmpeg.h (revision 634)
++++ src/plugins/ffmpeg/ffmpeg.h (working copy)
+@@ -38,7 +38,7 @@
+ #include <ctype.h>
+ #include <string.h>
+
+-#if FFMPEG_VERSION >= 52 && !defined(OLD_INCLUDES_PATH)
++/* #if FFMPEG_VERSION >= 52 && !defined(OLD_INCLUDES_PATH) */
+ #include <libavformat/avformat.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/fifo.h>
+@@ -51,27 +51,27 @@
+ #ifdef HAVE_AVSTRING_H
+ #include <libavutil/avstring.h>
+ #endif
+-#else
++/* #else
+ #include <avformat.h>
+ #include <avutil.h>
+ #include <fifo.h>
+- #include <opt.h>
++ #include <opt.h> */
+
+
+ #ifdef HAVE_LIBSWSCALE
+- #include <swscale.h>
++ #include <libswscale/swscale.h>
+ #endif
+
+ #ifdef HAVE_AVSTRING_H
+- #include <avstring.h>
++ #include <libavutil/avstring.h>
+ #endif
+-#endif
++/* #endif */
+
+
+ #include <math.h>
+ #include <stdlib.h>
+ #include <limits.h>
+- //#include <mem.h>
++ //#include <mem.h>
+
+ }
+ #endif // __cplusplus
+Index: version.sh
+===================================================================
+--- version.sh (revision 634)
++++ version.sh (working copy)
+@@ -1,8 +1,15 @@
+ #!/bin/sh
+
+-svn_revision=`cd "$1" && LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2`
+-test $svn_revision || svn_revision=`cd "$1" && grep revision .svn/entries 2>/dev/null | cut -d '"' -f2`
+-test $svn_revision || svn_revision=`cd "$1" && sed -n -e '/^dir$/{n;p;q}' .svn/entries 2>/dev/null`
++if [ "$1" == "" ]
++then
++DIR="."
++else
++DIR="$1"
++fi
++
++svn_revision=`cd "$DIR" && LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2`
++test $svn_revision || svn_revision=`cd "$DIR" && grep revision .svn/entries 2>/dev/null | cut -d '"' -f2`
++test $svn_revision || svn_revision=`cd "$DIR" && sed -n -e '/^dir$/{n;p;q}' .svn/entries 2>/dev/null`
+ test $svn_revision || svn_revision=UNKNOWN
+
+ NEW_REVISION="#define FUPPES_VERSION \"0.$svn_revision\""
+
diff --git a/abs/not_built/extra/fuppes-svn/fuppes.cfg b/abs/not_built/extra/fuppes-svn/fuppes.cfg
new file mode 100644
index 0000000..beb81cf
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/fuppes.cfg
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<fuppes_config version="0.7.2.3">
+ <shared_objects>
+ <!--<dir>/mnt/music</dir>-->
+ <!--<itunes>/Users/.../iTunes.xml</itunes>-->
+ <dir>/myth/tv</dir>
+ <dir>/myth/video</dir>
+ <dir>/myth/music</dir>
+ <dir>/myth/gallery</dir>
+ <dir>/myth/pretty</dir>
+ </shared_objects>
+ <network>
+ <!--empty = automatic detection-->
+ <interface>192.168.1.253</interface>
+ <!--empty or 0 = random port-->
+ <http_port>81</http_port>
+ <!--list of ip addresses allowed to access fuppes. if empty all ips are allowed-->
+ <allowed_ips>
+ <!--<ip>192.168.0.1</ip>-->
+ </allowed_ips>
+ </network>
+ <content_directory>
+ <!--a list of possible charsets can be found under:
+ http://www.gnu.org/software/libiconv/-->
+ <local_charset>UTF-8</local_charset>
+ <!--libs used for metadata extraction when building the database. [true|false]-->
+ <use_imagemagick>true</use_imagemagick>
+ <use_taglib>true</use_taglib>
+ <use_libavformat>true</use_libavformat>
+ </content_directory>
+ <global_settings>
+ <temp_dir/>
+ <!--uuid is written to and read from <config-dir>/uuid.txt if set to true-->
+ <use_fixed_uuid>false</use_fixed_uuid>
+ </global_settings>
+ <device_settings>
+ <!--"default" settings are inhertied by specific devices and can be overwritten-->
+ <!--do NOT remove the "default" device settings-->
+ <!--all new file types have to be added to the default settings-->
+ <!--adding new file types just to a specific device will have no affect-->
+ <device name="default">
+ <!--specify the maximum length for file names (0 or empty = unlimited)-->
+ <max_file_name_length>0</max_file_name_length>
+ <!--[file|container]-->
+ <playlist_style>file</playlist_style>
+ <show_childcount_in_title>false</show_childcount_in_title>
+ <enable_dlna>false</enable_dlna>
+ <transcoding_release_delay>4</transcoding_release_delay>
+ <file_settings>
+ <!--audio files-->
+ <file ext="mp3">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ </file>
+ <file ext="ogg">
+ <type>AUDIO_ITEM</type>
+ <mime_type>application/octet-stream</mime_type>
+ <transcode enabled="true">
+ <ext>mp3</ext>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ <http_encoding>chunked</http_encoding>
+ <decoder>vorbis</decoder>
+ <encoder>lame</encoder>
+ <bitrate>192</bitrate>
+ <samplerate>44100</samplerate>
+ </transcode>
+ </file>
+ <file ext="mpc">
+ <type>AUDIO_ITEM</type>
+ <mime_type>application/octet-stream</mime_type>
+ <transcode enabled="true">
+ <ext>mp3</ext>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ <http_encoding>chunked</http_encoding>
+ <decoder>musepack</decoder>
+ <encoder>lame</encoder>
+ <bitrate>192</bitrate>
+ <samplerate>44100</samplerate>
+ </transcode>
+ </file>
+ <file ext="wav">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/x-wav</mime_type>
+ </file>
+ <file ext="flac">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/x-flac</mime_type>
+ <transcode enabled="true">
+ <ext>mp3</ext>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ <http_encoding>chunked</http_encoding>
+ <decoder>flac</decoder>
+ <encoder>lame</encoder>
+ <bitrate>192</bitrate>
+ <samplerate>44100</samplerate>
+ </transcode>
+ </file>
+ <file ext="wma">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/x-ms-wma</mime_type>
+ <dlna>WMAFULL</dlna>
+ </file>
+ <!--image files-->
+ <file ext="jpg">
+ <ext>jpeg</ext>
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/jpeg</mime_type>
+ <convert enabled="false">
+ <!--<dcraw enabled="true">-q 0</dcraw>-->
+ <ext>png</ext>
+ <mime_type>image/png</mime_type>
+ <height>0</height>
+ <width>0</width>
+ <!--set "greater" to "true" if you only want to resize images greater than "height" or "width"-->
+ <greater>false</greater>
+ <!--set "less" to "true" if you only want to resize images less than "height" or "width"-->
+ <less>false</less>
+ <!--set "less" and "greater" to "false" if you always want to resize-->
+ </convert>
+ </file>
+ <file ext="bmp">
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/bmp</mime_type>
+ </file>
+ <file ext="png">
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/png</mime_type>
+ </file>
+ <file ext="gif">
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/gif</mime_type>
+ </file>
+ <!--video files-->
+ <file ext="mpg">
+ <ext>mpeg</ext>
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/mpeg</mime_type>
+ </file>
+ <file ext="mp4">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/mp4</mime_type>
+ </file>
+ <file ext="avi">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-msvideo</mime_type>
+ </file>
+ <file ext="wmv">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-ms-wmv</mime_type>
+ </file>
+ <file ext="vob">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-ms-vob</mime_type>
+ </file>
+ <file ext="vdr">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-extension-vdr</mime_type>
+ <transcode enabled="true">
+ <ext>vob</ext>
+ <mime_type>video/x-ms-vob</mime_type>
+ </transcode>
+ </file>
+ <file ext="flv">
+ <type>VIDEO_ITEM</type>
+ <mime_type>application/x-flash-video</mime_type>
+ </file>
+ <file ext="asf">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-ms-asf</mime_type>
+ </file>
+ <!--playlists-->
+ <file ext="pls">
+ <type>PLAYLIST</type>
+ <mime_type>audio/x-scpls</mime_type>
+ </file>
+ <file ext="m3u">
+ <type>PLAYLIST</type>
+ <mime_type>audio/x-mpegurl</mime_type>
+ </file>
+ </file_settings>
+ </device>
+ <!--For other device settings take a look at http://fuppes.ulrich-voelkel.de/wiki/index.php/Category:Device-->
+ <!--If you have more than one device it is a good idea to set the ip address as some devices may have conflicting "user agents".-->
+ <!--It is safe to remove unneeded devices-->
+ <device name="PS3" enabled="false">
+ <user_agent>UPnP/1.0 DLNADOC/1.00</user_agent>
+ <user_agent>PLAYSTATION3</user_agent>
+ <!--<ip></ip>-->
+ <enable_dlna>true</enable_dlna>
+ <transcoding_release_delay>50</transcoding_release_delay>
+ <file_settings>
+ <file ext="ogg">
+ <type>AUDIO_ITEM_MUSIC_TRACK</type>
+ <transcode enabled="true">
+ <http_encoding>stream</http_encoding>
+ </transcode>
+ </file>
+ </file_settings>
+ </device>
+ <device name="Xbox 360" virtual="Xbox 360" enabled="false">
+ <user_agent>Xbox/2.0.\d+.\d+ UPnP/1.0 Xbox/2.0.\d+.\d+</user_agent>
+ <user_agent>Xenon</user_agent>
+ <xbox360>true</xbox360>
+ <show_empty_resolution>true</show_empty_resolution>
+ <description_values>
+ <friendly_name>%s %v : 1 : Windows Media Connect</friendly_name>
+ <model_name>Windows Media Connect compatible (%s)</model_name>
+ <model_number>2.0</model_number>
+ </description_values>
+ </device>
+ </device_settings>
+</fuppes_config>
diff --git a/abs/not_built/extra/fuppes-svn/fuppes.ch b/abs/not_built/extra/fuppes-svn/fuppes.ch
new file mode 100644
index 0000000..60960b5
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/fuppes.ch
@@ -0,0 +1,2 @@
+#!/bin/bash
+/usr/bin/wget -O /dev/null -q http://localhost:81/presentation/options.html?db=update &> /dev/null
diff --git a/abs/not_built/extra/fuppes-svn/fuppes.diff b/abs/not_built/extra/fuppes-svn/fuppes.diff
new file mode 100644
index 0000000..9b7b6a8
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/fuppes.diff
@@ -0,0 +1,25 @@
+--- src/plugins/ffmpeg/ffmpeg.cpp.orig 2009-05-29 20:12:09.000000000 +0000
++++ src/plugins/ffmpeg/ffmpeg.cpp 2009-05-29 20:10:01.000000000 +0000
+@@ -1021,19 +1021,9 @@
+ if (subtitle_to_free) {
+ if (subtitle_to_free->rects != NULL) {
+ for (i = 0; i < subtitle_to_free->num_rects; i++) {
+-
+-#ifndef LIBAVCODEC_VERSION_MINOR
+-#define LIBAVCODEC_VERSION_MINOR 0
+-#endif
+-
+-#if LIBAVCODEC_VERSION_MINOR >= 11
+- av_freep(subtitle_to_free->rects[i]->pict.data[0]);
+- av_freep(subtitle_to_free->rects[i]->pict.data[1]);
+- av_freep(subtitle_to_free->rects[i]);
+-#else
+- av_free(subtitle_to_free->rects[i].bitmap);
+- av_free(subtitle_to_free->rects[i].rgba_palette);
+-#endif
++ av_freep(&subtitle_to_free->rects[i]->pict.data[0]);
++ av_freep(&subtitle_to_free->rects[i]->pict.data[1]);
++ av_freep(&subtitle_to_free->rects[i]);
+ }
+ av_freep(&subtitle_to_free->rects);
+ }
diff --git a/abs/not_built/extra/fuppes-svn/fuppes.install b/abs/not_built/extra/fuppes-svn/fuppes.install
new file mode 100644
index 0000000..d0099e3
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/fuppes.install
@@ -0,0 +1,20 @@
+# arg 1: the new package version
+post_install() {
+ sv stop mythbackend
+ mv /etc/sv/mythbackend/run /tmp
+ sed 's/logfile/noupnp\ --logfile/' </tmp/run >/etc/sv/mythbackend/run
+ chmod 755 /etc/sv/mythbackend/run
+ sv start mythbackend
+ add_service.sh fuppes
+ sv start fuppes
+}
+
+post_remove() {
+ sv stop fuppes
+ remove_service.sh fuppes
+ mv /etc/sv/mythbackend/run /tmp/run
+ sv stop mythbackend
+ sed 's/--noupnp\ --logfile/--logfile/' </tmp/run >/etc/sv/mythbackend/run
+ chmod 755 /etc/sv/mythbackend/run
+ sv start mythbackend
+}
diff --git a/abs/not_built/extra/fuppes-svn/fuppes.lr b/abs/not_built/extra/fuppes-svn/fuppes.lr
new file mode 100644
index 0000000..ec2f88f
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/fuppes.lr
@@ -0,0 +1,9 @@
+/var/log/fuppes/fuppes.log {
+ copytruncate
+ daily
+ size 10M
+ missingok
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/abs/not_built/extra/fuppes-svn/run b/abs/not_built/extra/fuppes-svn/run
new file mode 100755
index 0000000..dc69879
--- /dev/null
+++ b/abs/not_built/extra/fuppes-svn/run
@@ -0,0 +1,2 @@
+#!/bin/bash
+exec su mythtv -c "/usr/bin/fuppes --config-dir /etc/fuppes --database-file /data/srv/fuppes/fuppes.db --temp-dir /myth/tmp"
diff --git a/abs/not_built/extra/gdl/PKGBUILD b/abs/not_built/extra/gdl/PKGBUILD
new file mode 100644
index 0000000..f7ee580
--- /dev/null
+++ b/abs/not_built/extra/gdl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 32356 2009-03-30 17:59:10Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdl
+pkgver=2.90.0
+pkgrel=1
+pkgdesc="Gnome Devtool Libraries"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org/"
+depends=('libglade>=2.6.4')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/gdl/2.90/${pkgname}-${pkgver}.tar.bz2)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+md5sums=('7ccaafc1b55c510a4e39ea7e54844bb3')
diff --git a/abs/not_built/extra/glib-perl/PKGBUILD b/abs/not_built/extra/glib-perl/PKGBUILD
new file mode 100644
index 0000000..121377f
--- /dev/null
+++ b/abs/not_built/extra/glib-perl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 81903 2010-06-07 10:01:01Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=glib-perl
+_realname=Glib
+pkgver=1.223
+pkgrel=1
+pkgdesc="Perl wrappers for glib 2.x, including GObject"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+options=('!emptydirs')
+depends=('glib2>=2.24.1' 'perl>=5.10.1')
+makedepends=('perl-extutils-depends>=0.302' 'perl-extutils-pkgconfig>=1.12')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('cfdeaa8c95448f86c30b505e4701abf1')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/glib-perl/__changelog b/abs/not_built/extra/glib-perl/__changelog
new file mode 100644
index 0000000..e44f8a2
--- /dev/null
+++ b/abs/not_built/extra/glib-perl/__changelog
@@ -0,0 +1 @@
+change perl dep to 5.10.1
diff --git a/abs/not_built/extra/gnome-desktop/PKGBUILD b/abs/not_built/extra/gnome-desktop/PKGBUILD
new file mode 100644
index 0000000..7c10e8c
--- /dev/null
+++ b/abs/not_built/extra/gnome-desktop/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 99767 2010-11-17 12:13:39Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-desktop
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="The GNOME Desktop"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('gconf>=2.32.0' 'startup-notification>=0.10')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool')
+optdepends=('pygtk: gnome-about')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('55cbecf67efe1fa1e57ac966520a7c46d799c8ba3c652a1219f60cafccb3739d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-gnome-distributor="Archlinux" \
+ --disable-scrollkeeper
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/gnome-keyring/PKGBUILD b/abs/not_built/extra/gnome-keyring/PKGBUILD
new file mode 100644
index 0000000..5da3d28
--- /dev/null
+++ b/abs/not_built/extra/gnome-keyring/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 97123 2010-10-26 16:27:27Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gnome-keyring
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="GNOME Password Management daemon"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk2>=2.22.0' 'dconf')
+makedepends=('intltool' 'pkgconfig' 'python2')
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gnome-keyring.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('31fecec1430a97f59a6159a5a2ea8d6a1b44287f1e9e595b3594df46bf7f18f9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring \
+ --with-pam-dir=/lib/security --with-root-certs=/etc/ssl/certs \
+ --disable-schemas-compile
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/gnome-keyring/gnome-keyring.install b/abs/not_built/extra/gnome-keyring/gnome-keyring.install
new file mode 100644
index 0000000..e5204bc
--- /dev/null
+++ b/abs/not_built/extra/gnome-keyring/gnome-keyring.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/abs/not_built/extra/gnome-keyring/gnome-keyring.service b/abs/not_built/extra/gnome-keyring/gnome-keyring.service
new file mode 100644
index 0000000..96ea061
--- /dev/null
+++ b/abs/not_built/extra/gnome-keyring/gnome-keyring.service
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.keyring
+Exec=/usr/bin/gnome-keyring-daemon
diff --git a/abs/not_built/extra/gnome-menus/PKGBUILD b/abs/not_built/extra/gnome-menus/PKGBUILD
new file mode 100644
index 0000000..60b4632
--- /dev/null
+++ b/abs/not_built/extra/gnome-menus/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 99752 2010-11-17 11:52:09Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-menus
+pkgver=2.30.5
+pkgrel=1
+pkgdesc="GNOME menu specifications"
+arch=('i686' 'x86_64')
+depends=('pygtk>=2.22.0')
+makedepends=('pkg-config' 'intltool' 'gobject-introspection')
+options=('!libtool' '!makeflags')
+license=('GPL' 'LGPL')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ menus.patch)
+sha256sums=('6dcc565006d6e8c2025ae83ab1f82edf6bd04d61c804c0dc9bf5ea50629c4caa'
+ 'df2779777906b038fa911dc745534564ede9524a64ab368e2f6f8e38d54e7acc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/menus.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" \
+ $pkgdir/usr/lib/python2.7/site-packages/GMenuSimpleEditor/config.py
+}
diff --git a/abs/not_built/extra/gnome-menus/menus.patch b/abs/not_built/extra/gnome-menus/menus.patch
new file mode 100644
index 0000000..bf73e86
--- /dev/null
+++ b/abs/not_built/extra/gnome-menus/menus.patch
@@ -0,0 +1,25 @@
+--- layout/applications.menu 2005-06-28 10:16:39.000000000 +0200
++++ layout/applications.menu 2005-09-12 23:21:20.000000000 +0200
+@@ -7,7 +7,6 @@
+ <Directory>Applications.directory</Directory>
+
+ <!-- Scan legacy dirs first, as later items take priority -->
+- <KDELegacyDirs/>
+ <LegacyDir>/etc/X11/applnk</LegacyDir>
+ <LegacyDir>/usr/share/gnome/apps</LegacyDir>
+
+@@ -18,6 +17,14 @@
+ <!-- Read in overrides and child menus from applications-merged/ -->
+ <DefaultMergeDirs/>
+
++ <!-- Archlinux submenu -->
++ <Menu>
++ <Name>Archlinux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu> <!-- End Archlinux -->
+ <!-- Accessories submenu -->
+ <Menu>
+ <Name>Accessories</Name>
diff --git a/abs/not_built/extra/gnupg/PKGBUILD b/abs/not_built/extra/gnupg/PKGBUILD
new file mode 100644
index 0000000..e123287
--- /dev/null
+++ b/abs/not_built/extra/gnupg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 96620 2010-10-22 18:59:05Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=gnupg
+pkgver=1.4.11
+pkgrel=1
+pkgdesc="GNU Privacy Guard - a PGP replacement tool"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('zlib' 'bzip2' 'libldap>=2.4.18' 'libusb' 'curl>=7.16.2' 'readline>=6.0.00')
+source=(ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg/$pkgname-$pkgver.tar.bz2)
+install=gnupg.install
+url="http://www.gnupg.org/"
+md5sums=('411744e1ef8ce90b87938c4203f001f1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --libexecdir=/usr/lib # docdir can't be set properly
+ make || return 1
+ ln -s ${pkgname}-${pkgver}/scripts ..
+}
+
+package () {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ # fix fileconflict with gnupg2 pkg
+ rm ${pkgdir}/usr/share/man/man1/gpg-zip.1
+}
diff --git a/abs/not_built/extra/gnupg/gnupg.install b/abs/not_built/extra/gnupg/gnupg.install
new file mode 100644
index 0000000..5a67047
--- /dev/null
+++ b/abs/not_built/extra/gnupg/gnupg.install
@@ -0,0 +1,21 @@
+info_dir=/usr/share/info
+info_files=(gnupg1.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/extra/gnuplot/PKGBUILD b/abs/not_built/extra/gnuplot/PKGBUILD
new file mode 100644
index 0000000..3b04bde
--- /dev/null
+++ b/abs/not_built/extra/gnuplot/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Niklas Volbers <mithrandir42@web.de>
+
+pkgname=gnuplot
+pkgver=4.4.0
+pkgrel=1
+pkgdesc="Command-line driven interactive data and function plotting utility"
+url="http://www.gnuplot.info"
+depends=('gd>=2.0.29' 'wxgtk' 'libjpeg>=7')
+makedepends=('texinfo')
+license='custom'
+arch=('i686')
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/usr \
+ --datadir=/usr/share \
+ --libexecdir=/usr/bin \
+ --with-readline=gnu \
+ --enable-history-file \
+ --with-x
+
+ make X11_DRIVER_DIR='/usr/bin' || return 1
+
+ make DESTDIR=$startdir/pkg \
+ libexecdir=/usr/bin \
+ pkglibexecdir=/usr/bin install
+
+ install -D $startdir/src/$pkgname-$pkgver/Copyright $startdir/pkg/usr/share/licenses/custom/gnuplot/Copyright
+}
+md5sums=('e708665bd512153ad5c35252fe499059')
diff --git a/abs/not_built/extra/gpgme/PKGBUILD b/abs/not_built/extra/gpgme/PKGBUILD
new file mode 100644
index 0000000..6371ad2
--- /dev/null
+++ b/abs/not_built/extra/gpgme/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 48153 2009-07-31 20:34:25Z tpowa $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gpgme
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="A C wrapper library for GnuPG."
+arch=('i686' 'x86_64')
+url="http://www.gnupg.org/related_software/gpgme/"
+license=('GPL')
+depends=('libgpg-error>=1.5' 'pth' 'gnupg' 'libassuan')
+install=gpgme.install
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ rm ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+}
+md5sums=('f148c73f6f540f91e02141df72844f62')
diff --git a/abs/not_built/extra/gpgme/__changelog b/abs/not_built/extra/gpgme/__changelog
new file mode 100644
index 0000000..4074d1b
--- /dev/null
+++ b/abs/not_built/extra/gpgme/__changelog
@@ -0,0 +1 @@
+removed gnupg2 requirement
diff --git a/abs/not_built/extra/gpgme/gpgme.install b/abs/not_built/extra/gpgme/gpgme.install
new file mode 100644
index 0000000..b54620d
--- /dev/null
+++ b/abs/not_built/extra/gpgme/gpgme.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gpgme.info gpgme.info-1 gpgme.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/abs/not_built/extra/graphload/PKGBUILD b/abs/not_built/extra/graphload/PKGBUILD
new file mode 100644
index 0000000..6af2f95
--- /dev/null
+++ b/abs/not_built/extra/graphload/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=graphload
+pkgver=1
+pkgrel=1
+pkgdesc="command to graph the total CPU utilization for N-core systems for a given interval"
+depends=('gnuplot>=4.2.5')
+license='GPLv2'
+arch=('i686')
+
+build() {
+ LH_ROOT=/usr/LH
+ mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
+ cd $startdir
+ # executables
+ install -m0755 -D graphload.sh $startdir/pkg/$LH_ROOT/bin/
+}
diff --git a/abs/not_built/extra/graphload/graphload.sh b/abs/not_built/extra/graphload/graphload.sh
new file mode 100755
index 0000000..79023ec
--- /dev/null
+++ b/abs/not_built/extra/graphload/graphload.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+MYTICKS=100
+MYINTERVAL=4 # we sample once every $MYINTERVAL seconds
+MYINVERSEINTERVAL=0.25
+
+top -d $MYINVERSEINTERVAL -n $MYTICKS -b -i | grep Cpu | perl -e "while(<>) { split(','); \$load = 100 - substr @_[3], 0, -3; print \$load,\"\n\";}" > profile
+perl -e '$second=0; while(<>) { chop(); $load = $_; print "$second $load "; split " ", $load; print @_[0] + @_[1], "\n"; $second+=0.25;}' < profile > points
+echo "set grid
+set xrange [0: $(($MYTICKS/$MYINTERVAL))]
+set yrange [0: 101]
+set xtics 0,$MYINVERSEINTERVAL,$(($MYTICKS/$MYINTERVAL))
+set xlabel \"time\"
+set ylabel \"CPU usage\"
+plot \"points\" using 1:2 with lines title 'total load'
+replot" > gplot.cmds
+gnuplot -persist gplot.cmds
diff --git a/abs/not_built/extra/i2c-tools/Makefile.patch b/abs/not_built/extra/i2c-tools/Makefile.patch
new file mode 100644
index 0000000..f90fa14
--- /dev/null
+++ b/abs/not_built/extra/i2c-tools/Makefile.patch
@@ -0,0 +1,19 @@
+--- Makefile.orig 2007-11-01 18:54:57.000000000 +0100
++++ Makefile 2008-09-24 14:46:54.000000000 +0200
+@@ -5,7 +5,7 @@
+ # Licensed under the GNU General Public License.
+
+ DESTDIR =
+-prefix = /usr/local
++prefix = /usr
+ bindir = $(prefix)/bin
+ sbindir = $(prefix)/sbin
+ mandir = $(prefix)/share/man
+@@ -32,6 +32,6 @@
+ all:
+
+ include eeprom/Module.mk
+-include include/Module.mk
++#include include/Module.mk
+ include stub/Module.mk
+ include tools/Module.mk
diff --git a/abs/not_built/extra/i2c-tools/PKGBUILD b/abs/not_built/extra/i2c-tools/PKGBUILD
new file mode 100644
index 0000000..db1700d
--- /dev/null
+++ b/abs/not_built/extra/i2c-tools/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=i2c-tools
+pkgver=3.0.2
+pkgrel=1
+pkgdesc="Heterogeneous set of I2C tools for Linux that used to be part of lm-sensors"
+arch=('i686' 'x86_64')
+url="http://www.lm-sensors.org/wiki/I2CTools"
+license=('GPL')
+depends=('lm_sensors' 'perl' 'read-edid')
+options=(strip)
+source=(http://dl.lm-sensors.org/$pkgname/releases/$pkgname-$pkgver.tar.bz2 Makefile.patch)
+md5sums=('b546345ac19db56719dea6b8199f11e0' '49d17834f9d7e68407ec46785e47bb94')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p0 < $startdir/Makefile.patch
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
+# vim:set ts=2 sw=2 et:
diff --git a/abs/not_built/extra/icon-naming-utils/PKGBUILD b/abs/not_built/extra/icon-naming-utils/PKGBUILD
new file mode 100644
index 0000000..5496c29
--- /dev/null
+++ b/abs/not_built/extra/icon-naming-utils/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 33029 2009-04-03 21:35:27Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=icon-naming-utils
+pkgver=0.8.90
+pkgrel=2
+pkgdesc="Maps the new names of icons for Tango to the legacy names used by the GNOME and KDE desktops."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://tango.freedesktop.org/"
+depends=('perl-xml-simple')
+source=(http://tango.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dd8108b56130b9eedc4042df634efa66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/icon-naming-utils \
+ --localstatedir=/var || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ mv "${pkgdir}/usr/share/pkgconfig" "${pkgdir}/usr/lib/pkgconfig" || return 1
+}
+
diff --git a/abs/not_built/extra/iso-codes/PKGBUILD b/abs/not_built/extra/iso-codes/PKGBUILD
new file mode 100644
index 0000000..9477d74
--- /dev/null
+++ b/abs/not_built/extra/iso-codes/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 1166 2008-05-01 15:36:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=iso-codes
+pkgver=3.18
+pkgrel=1
+arch=(i686 x86_64)
+license=('LGPL')
+pkgdesc="Lists of the country, language, and currency names"
+source=(ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/${pkgname}-${pkgver}.tar.bz2)
+url="http://pkg-isocodes.alioth.debian.org/"
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} pkgconfigdir=/usr/lib/pkgconfig install || return 1
+}
+md5sums=('96d22a03e307a8e0ca1e43280392cdc4')
diff --git a/abs/not_built/extra/jade/PKGBUILD b/abs/not_built/extra/jade/PKGBUILD
new file mode 100644
index 0000000..e6a7722
--- /dev/null
+++ b/abs/not_built/extra/jade/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 3700 2008-06-29 13:36:31Z jgc $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+pkgname=jade
+pkgver=1.2.1
+pkgrel=5
+_debpatch=47
+pkgdesc="James Clark's DSSSL Engine"
+url='http://www.jclark.com/jade/'
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('gcc-libs')
+replaces='openjade'
+options=('!libtool')
+source=(ftp://ftp.jclark.com/pub/jade/jade-${pkgver}.tar.gz
+ http://ftp.debian.org/debian/pool/main/j/jade/jade_${pkgver}-${_debpatch}.diff.gz)
+md5sums=('4239670ca6b578bff68b8c2e7cd1225f'
+ 'feb3889e2a5fa86ac6bdb742a25d0001')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/jade_${pkgver}-${_debpatch}.diff || return 1
+ chmod 755 configure || return 1
+ ./configure --prefix=/usr --enable-default-catalog=/usr/share/sgml/catalog || return 1
+ make || return 1
+ install -d -m755 ${pkgdir}/usr/lib
+ make prefix=${pkgdir}/usr install || return 1
+ mv ${pkgdir}/usr/bin/sx ${pkgdir}/usr/bin/sgml2xml || return 1
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+}
diff --git a/abs/not_built/extra/libass/PKGBUILD b/abs/not_built/extra/libass/PKGBUILD
new file mode 100644
index 0000000..508e232
--- /dev/null
+++ b/abs/not_built/extra/libass/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+
+pkgname=libass
+pkgver=0.9.13
+pkgrel=1
+pkgdesc="A portable library for SSA/ASS subtitles rendering"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/libass/"
+license=('BSD')
+depends=('enca' 'fontconfig' 'libpng')
+makedepends=('pkgconfig')
+options=(!libtool)
+source=("http://libass.googlecode.com/files/${pkgname}-${pkgver}.tar.xz")
+md5sums=('d99381922dcbeb7a766d2e7825cca193')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/extra/libassuan/PKGBUILD b/abs/not_built/extra/libassuan/PKGBUILD
new file mode 100644
index 0000000..50a0ce8
--- /dev/null
+++ b/abs/not_built/extra/libassuan/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 87326 2010-08-12 11:59:25Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libassuan
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="A IPC library used by some GnuPG related software"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/related_software/libassuan"
+depends=('libgpg-error')
+options=('!libtool')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('53a7d4c22af909d7236d17d454ef935b')
+
diff --git a/abs/not_built/extra/libconcord/PKGBUILD b/abs/not_built/extra/libconcord/PKGBUILD
new file mode 100644
index 0000000..a4b4e2e
--- /dev/null
+++ b/abs/not_built/extra/libconcord/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Sven Klomp <mail@klomp.eu>
+# Contributor: Mattheus Happe <mhappe@gmail.com>
+
+pkgname=libconcord
+_pkgsrcname=concordance
+pkgver=0.23
+pkgrel=1
+pkgdesc="Concordance's core functionality contained in a shared library"
+url="http://www.phildev.net/harmony/index.shtml"
+license=("GPL3")
+arch=(i686 x86_64)
+depends=('libusb')
+optdepends=('udev: use libconcord as non-root user')
+source=("http://downloads.sourceforge.net/project/${_pkgsrcname}/${_pkgsrcname}/${pkgver}/${_pkgsrcname}-${pkgver}.tar.bz2")
+md5sums=('d7400d5b351b195b63adfafae68be3d8')
+
+
+build() {
+ cd ${srcdir}/${_pkgsrcname}-${pkgver}/libconcord
+ ./configure --prefix=/usr
+ make || return 1
+ make udev || return 1
+}
+
+package() {
+ cd ${srcdir}/${_pkgsrcname}-${pkgver}/libconcord
+ make prefix=${pkgdir}/usr install || return 1
+ make prefix=${pkgdir}/ install_udev || return 1
+} \ No newline at end of file
diff --git a/abs/not_built/extra/libdvbpsi/PKGBUILD b/abs/not_built/extra/libdvbpsi/PKGBUILD
new file mode 100644
index 0000000..77152f0
--- /dev/null
+++ b/abs/not_built/extra/libdvbpsi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 80128 2010-05-12 16:41:47Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
+
+pkgname=libdvbpsi
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="A library designed for decoding and generation of MPEG TS and DVB PSI tables"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+replaces=('libdvbpsi4' 'libdvbpsi5')
+conflicts=('libdvbpsi4' 'libdvbpsi5')
+url="http://developers.videolan.org/libdvbpsi/"
+source=(http://download.videolan.org/pub/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('af419575719e356b908b0c6946499052')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/abs/not_built/extra/libdvdnav/PKGBUILD b/abs/not_built/extra/libdvdnav/PKGBUILD
new file mode 100644
index 0000000..67c56e4
--- /dev/null
+++ b/abs/not_built/extra/libdvdnav/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 69820 2010-02-22 22:23:44Z giovanni $
+# Maintainer: arjan <arjan@archlinux.org>
+# contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libdvdnav
+pkgver=4.1.3
+pkgrel=2
+pkgdesc="The library for xine-dvdnav plugin."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mplayerhq.hu/MPlayer/releases/dvdnav/"
+depends=('libdvdread>=4.1.3')
+options=(!libtool)
+source=(http://www.mplayerhq.hu/MPlayer/releases/dvdnav/${pkgname}-${pkgver}.tar.bz2
+ deadlock.patch)
+md5sums=('d62383c45b28816771e283515f2c27fa'
+ '864529165a1136ae4c1ccbc7b43cdb1a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/deadlock.patch || return 1
+
+ ./autogen.sh --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
+md5sums=('d62383c45b28816771e283515f2c27fa'
+ 'd26d9ab9d705e4e3fa16e0592ad33c79')
diff --git a/abs/not_built/extra/libdvdnav/deadlock.patch b/abs/not_built/extra/libdvdnav/deadlock.patch
new file mode 100644
index 0000000..2a58240
--- /dev/null
+++ b/abs/not_built/extra/libdvdnav/deadlock.patch
@@ -0,0 +1,17 @@
+--- a/src/dvdnav.c 2009-11-08 16:58:25.000000000 +0300
++++ b/src/dvdnav.c 2009-11-08 16:58:52.000000000 +0300
+@@ -180,12 +180,13 @@
+ pthread_mutex_unlock(&this->vm_lock);
+ return DVDNAV_STATUS_ERR;
+ }
++ pthread_mutex_unlock(&this->vm_lock);
++
+ #ifdef LOG_DEBUG
+ fprintf(MSG_OUT, "libdvdnav: clearing dvdnav\n");
+ #endif
+ result = dvdnav_clear(this);
+
+- pthread_mutex_unlock(&this->vm_lock);
+ return result;
+ }
+
diff --git a/abs/not_built/extra/libffi/PKGBUILD b/abs/not_built/extra/libffi/PKGBUILD
new file mode 100644
index 0000000..555f0eb
--- /dev/null
+++ b/abs/not_built/extra/libffi/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 72255 2010-03-13 20:43:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libffi
+pkgver=3.0.9
+pkgrel=1
+pkgdesc="A portable, high level programming interface to various calling conventions."
+arch=('i686' 'x86_64')
+license=('MIT')
+url="http://sourceware.org/libffi"
+depends=('glibc' 'texinfo')
+options=('!libtool' 'force')
+install=libffi.install
+source=(ftp://sourceware.org/pub/libffi/libffi-${pkgver}.tar.gz)
+md5sums=('1f300a7a7f975d4046f51c3022fa5ff1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/not_built/extra/libffi/libffi.install b/abs/not_built/extra/libffi/libffi.install
new file mode 100644
index 0000000..151b79b
--- /dev/null
+++ b/abs/not_built/extra/libffi/libffi.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(libffi.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/abs/not_built/extra/libgda/Changelog b/abs/not_built/extra/libgda/Changelog
new file mode 100644
index 0000000..88ba942
--- /dev/null
+++ b/abs/not_built/extra/libgda/Changelog
@@ -0,0 +1,2 @@
+4.0.2 5/2/09
+Added path for jni headers in configure.
diff --git a/abs/not_built/extra/libgda/PKGBUILD b/abs/not_built/extra/libgda/PKGBUILD
new file mode 100644
index 0000000..72c9404
--- /dev/null
+++ b/abs/not_built/extra/libgda/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 99473 2010-11-14 19:52:55Z ibiru $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libgda
+pkgver=4.2.1
+pkgrel=2
+pkgdesc="data abstraction layer; with mysql, pgsql, xml, sqlite providers"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glib2>=2.26.0' 'libxslt' 'db>=5.1.19' 'ncurses>=5.7' 'libsoup>=2.32.0' 'libmysqlclient>=5.1.59' 'postgresql-libs>=9.0.1')
+makedepends=('intltool')
+options=('!libtool')
+url="http://www.gnome-db.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/4.2/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('d485d24fb19bd95faad196c8ed22b2cb8f9e9275d907f880a3f8f079f6bf40f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/python/python2/' libgda-report/RML/trml*/trml*.py
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-bdb=/usr --with-bdb-libdir-name=lib \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/libgda/bdb43.patch b/abs/not_built/extra/libgda/bdb43.patch
new file mode 100644
index 0000000..3fe6e93
--- /dev/null
+++ b/abs/not_built/extra/libgda/bdb43.patch
@@ -0,0 +1,18 @@
+diff -r -u libgda-1.2.0.old/providers/bdb/gda-bdb-recordset.c libgda-1.2.0/providers/bdb/gda-bdb-recordset.c
+--- libgda-1.2.0.old/providers/bdb/gda-bdb-recordset.c 2003-12-17 11:27:02.000000000 +0000
++++ libgda-1.2.0/providers/bdb/gda-bdb-recordset.c 2005-02-19 15:43:12.000000000 +0000
+@@ -227,10 +227,14 @@
+
+ /* get the number of records in the database */
+ ret = dbp->stat (dbp,
++#if BDB_VERSION > 40300
++ NULL,
++#endif
+ &statp,
+ #if BDB_VERSION < 40000
+ NULL,
+ #endif
++
+ 0);
+ if (ret != 0) {
+ gda_connection_add_error (cnc, gda_bdb_make_error (ret));
diff --git a/abs/not_built/extra/libgda/libgda.install b/abs/not_built/extra/libgda/libgda.install
new file mode 100644
index 0000000..6420004
--- /dev/null
+++ b/abs/not_built/extra/libgda/libgda.install
@@ -0,0 +1,16 @@
+post_install() {
+ scrollkeeper-update -q -p var/lib/scrollkeeper
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/libgksu/PKGBUILD b/abs/not_built/extra/libgksu/PKGBUILD
new file mode 100644
index 0000000..b4414d5
--- /dev/null
+++ b/abs/not_built/extra/libgksu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 90625 2010-09-14 09:37:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgksu
+pkgver=2.0.12
+pkgrel=3
+pkgdesc="gksu authorization library"
+arch=(i686 x86_64)
+url="http://www.nongnu.org/gksu/index.html"
+license=(GPL)
+depends=('libgnome-keyring>=2.30.1' 'libgtop>=2.28.1' 'startup-notification>=0.10' 'gconf>=2.28.1')
+makedepends=('gtk-doc' 'pkgconfig' 'intltool')
+options=('!libtool' '!emptydirs')
+install=libgksu.install
+source=(http://people.debian.org/~kov/gksu/${pkgname}-${pkgver}.tar.gz
+ libgksu-2.0.12-revert-forkpty.patch)
+md5sums=('c7154c8806f791c10e7626ff123049d3'
+ 'aebbe57e5286c654e27cf714cf3b704a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libgksu-2.0.12-revert-forkpty.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ rm -f ${pkgdir}/usr/lib/*.a
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgksu ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/abs/not_built/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch b/abs/not_built/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch
new file mode 100644
index 0000000..2c3a8cc
--- /dev/null
+++ b/abs/not_built/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch
@@ -0,0 +1,359 @@
+diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN libgksu-2.0.12.orig/libgksu/libgksu.c libgksu-2.0.12/libgksu/libgksu.c
+--- libgksu-2.0.12.orig/libgksu/libgksu.c 2009-06-29 13:48:24.000000000 -0400
++++ libgksu-2.0.12/libgksu/libgksu.c 2010-01-12 07:32:10.450657456 -0500
+@@ -1,7 +1,6 @@
+ /*
+ * Gksu -- a library providing access to su functionality
+ * Copyright (C) 2004-2009 Gustavo Noronha Silva
+- * Portions Copyright (C) 2009 VMware, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+@@ -56,9 +55,6 @@
+ static void
+ gksu_context_launch_complete (GksuContext *context);
+
+-static void
+-read_line (int fd, gchar *buffer, int n);
+-
+ GType
+ gksu_error_get_type (void)
+ {
+@@ -2009,8 +2005,6 @@ gksu_su_fuller (GksuContext *context,
+ for (i = 0 ; cmd[i] != NULL ; i++)
+ g_free (cmd[i]);
+ g_free(cmd);
+-
+- _exit(1);
+ }
+ else if (pid == -1)
+ {
+@@ -2125,10 +2119,10 @@ gksu_su_fuller (GksuContext *context,
+ /* drop the \n echoed on password entry if su did request
+ a password */
+ if (password_needed)
+- read_line (fdpty, buf, 255);
++ read (fdpty, buf, 255);
+ if (context->debug)
+ fprintf (stderr, "DEBUG (run:post-after-pass) buf: -%s-\n", buf);
+- read_line (fdpty, buf, 255);
++ read (fdpty, buf, 255);
+ if (context->debug)
+ fprintf (stderr, "DEBUG (run:post-after-pass) buf: -%s-\n", buf);
+ }
+@@ -2142,9 +2136,7 @@ gksu_su_fuller (GksuContext *context,
+ {
+ int retval = 0;
+
+- /* Red Hat's su shows the full path to su in its error messages. */
+- if (!strncmp (buf, "su:", 3) ||
+- !strncmp (buf, "/bin/su:", 7))
++ if (!strncmp (buf, "su", 2))
+ {
+ gchar **strings;
+
+@@ -2155,11 +2147,7 @@ gksu_su_fuller (GksuContext *context,
+ }
+
+ strings = g_strsplit (buf, ":", 2);
+-
+- /* Red Hat and Fedora use 'incorrect password'. */
+- if (strings[1] &&
+- (g_str_has_prefix(strings[1], " Authentication failure") ||
+- g_str_has_prefix(strings[1], " incorrect password")))
++ if (strings[1] && !strncmp (strings[1], " Authentication failure", 23))
+ {
+ if (used_gnome_keyring)
+ g_set_error (error, gksu_quark,
+@@ -2473,12 +2461,6 @@ gksu_sudo_fuller (GksuContext *context,
+ {
+ char **cmd;
+ char buffer[256] = {0};
+- char *child_stderr = NULL;
+- /* This command is used to gain a token */
+- char *const verifycmd[] =
+- {
+- "/usr/bin/sudo", "-p", "GNOME_SUDO_PASS", "-v", NULL
+- };
+ int argcount = 8;
+ int i, j;
+
+@@ -2489,8 +2471,9 @@ gksu_sudo_fuller (GksuContext *context,
+
+ pid_t pid;
+ int status;
+- FILE *fdfile = NULL;
+- int fdpty = -1;
++ FILE *infile, *outfile;
++ int parent_pipe[2]; /* For talking to the parent */
++ int child_pipe[2]; /* For talking to the child */
+
+ context->sudo_mode = TRUE;
+
+@@ -2565,10 +2548,6 @@ gksu_sudo_fuller (GksuContext *context,
+ cmd[argcount] = g_strdup("-S");
+ argcount++;
+
+- /* Make sudo noninteractive (we should already have a token) */
+- cmd[argcount] = g_strdup("-n");
+- argcount++;
+-
+ /* Make sudo use next arg as prompt */
+ cmd[argcount] = g_strdup("-p");
+ argcount++;
+@@ -2647,21 +2626,26 @@ gksu_sudo_fuller (GksuContext *context,
+ fprintf (stderr, "cmd[%d]: %s\n", i, cmd[i]);
+ }
+
+- pid = forkpty(&fdpty, NULL, NULL, NULL);
+- if (pid == 0)
++ if ((pipe(parent_pipe)) == -1)
+ {
+- // Child
+- setsid(); // make us session leader
+-
+- execv(verifycmd[0], verifycmd);
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error creating pipe: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
+
+- g_set_error (error, gksu_quark, GKSU_ERROR_EXEC,
+- _("Failed to exec new process: %s"),
++ if ((pipe(child_pipe)) == -1)
++ {
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error creating pipe: %s"),
+ strerror(errno));
+ sudo_reset_xauth (context, xauth, xauth_env);
+ return FALSE;
+ }
+- else if (pid == -1)
++
++ pid = fork();
++ if (pid == -1)
+ {
+ g_set_error (error, gksu_quark, GKSU_ERROR_FORK,
+ _("Failed to fork new process: %s"),
+@@ -2669,26 +2653,56 @@ gksu_sudo_fuller (GksuContext *context,
+ sudo_reset_xauth (context, xauth, xauth_env);
+ return FALSE;
+ }
++ else if (pid == 0)
++ {
++ // Child
++ setsid(); // make us session leader
++ close(child_pipe[1]);
++ dup2(child_pipe[0], STDIN_FILENO);
++ dup2(parent_pipe[1], STDERR_FILENO);
+
++ execv(cmd[0], cmd);
++
++ g_set_error (error, gksu_quark, GKSU_ERROR_EXEC,
++ _("Failed to exec new process: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
+ else
+ {
+ gint counter = 0;
+ gchar *cmdline = NULL;
+- struct termios tio;
+
+ // Parent
+- fdfile = fdopen(fdpty, "w+");
++ close(parent_pipe[1]);
+
+- /* make sure we notice that ECHO is turned off, if it gets
+- turned off */
+- tcgetattr (fdpty, &tio);
+- for (counter = 0; (tio.c_lflag & ECHO) && counter < 15; counter++)
+- {
+- usleep (1000);
+- tcgetattr (fdpty, &tio);
+- }
++ infile = fdopen(parent_pipe[0], "r");
++ if (!infile)
++ {
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error opening pipe: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
+
+- fcntl (fdpty, F_SETFL, O_NONBLOCK);
++ outfile = fdopen(child_pipe[1], "w");
++ if (!outfile)
++ {
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error opening pipe: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
++
++ /*
++ we are expecting to receive a GNOME_SUDO_PASS
++ if we don't there are two possibilities: an error
++ or a password is not needed
++ */
++ fcntl (parent_pipe[0], F_SETFL, O_NONBLOCK);
+
+ { /* no matter if we can read, since we're using
+ O_NONBLOCK; this is just to avoid the prompt
+@@ -2697,11 +2711,11 @@ gksu_sudo_fuller (GksuContext *context,
+ struct timeval tv;
+
+ FD_ZERO(&rfds);
+- FD_SET(fdpty, &rfds);
++ FD_SET(parent_pipe[0], &rfds);
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+
+- select (fdpty + 1, &rfds, NULL, NULL, &tv);
++ select (parent_pipe[0] + 1, &rfds, NULL, NULL, &tv);
+ }
+
+ /* Try hard to find the prompt; it may happen that we're
+@@ -2713,7 +2727,7 @@ gksu_sudo_fuller (GksuContext *context,
+ if (strncmp (buffer, "GNOME_SUDO_PASS", 15) == 0)
+ break;
+
+- read_line (fdpty, buffer, 256);
++ read_line (parent_pipe[0], buffer, 256);
+
+ if (context->debug)
+ fprintf (stderr, "buffer: -%s-\n", buffer);
+@@ -2747,17 +2761,18 @@ gksu_sudo_fuller (GksuContext *context,
+
+ usleep (1000);
+
+- write (fdpty, password, strlen(password) + 1);
+- write (fdpty, "\n", 1);
++ fprintf (outfile, "%s\n", password);
++ fclose (outfile);
+
+ nullify_password (password);
+
+- fcntl(fdpty, F_SETFL, fcntl(fdpty, F_GETFL) & ~O_NONBLOCK);
++ /* turn NONBLOCK off */
++ fcntl(parent_pipe[0], F_SETFL, fcntl(parent_pipe[0], F_GETFL) & ~O_NONBLOCK);
+ /* ignore the first newline that comes right after sudo receives
+ the password */
+- fgets (buffer, 255, fdfile);
+- /* this is the status we are interested in */
+- fgets (buffer, 255, fdfile);
++ fgets (buffer, 255, infile);
++ /* this is the status we are interessted in */
++ fgets (buffer, 255, infile);
+ }
+ else
+ {
+@@ -2766,7 +2781,7 @@ gksu_sudo_fuller (GksuContext *context,
+ fprintf (stderr, "No password prompt found; we'll assume we don't need a password.\n");
+
+ /* turn NONBLOCK off, also if have no prompt */
+- fcntl(fdpty, F_SETFL, fcntl(fdpty, F_GETFL) & ~O_NONBLOCK);
++ fcntl(parent_pipe[0], F_SETFL, fcntl(parent_pipe[0], F_GETFL) & ~O_NONBLOCK);
+
+ should_display = gconf_client_get_bool (context->gconf_client,
+ BASE_PATH "display-no-pass-info", NULL);
+@@ -2785,9 +2800,14 @@ gksu_sudo_fuller (GksuContext *context,
+ fprintf (stderr, "%s", buffer);
+ }
+
+- if (g_str_has_prefix (buffer, "Sorry, try again."))
++ if (!strcmp (buffer, "Sorry, try again.\n"))
+ g_set_error (error, gksu_quark, GKSU_ERROR_WRONGPASS,
+ _("Wrong password."));
++ else if (!strncmp (buffer, "Sorry, user ", 12))
++ g_set_error (error, gksu_quark, GKSU_ERROR_NOT_ALLOWED,
++ _("The underlying authorization mechanism (sudo) "
++ "does not allow you to run this program. Contact "
++ "the system administrator."));
+ else
+ {
+ gchar *haystack = buffer;
+@@ -2805,10 +2825,6 @@ gksu_sudo_fuller (GksuContext *context,
+ }
+ }
+
+- /* If we have an error, let's just stop sudo right there. */
+- if (error)
+- close(fdpty);
+-
+ cmdline = g_strdup("sudo");
+ /* wait for the child process to end or become something other
+ than sudo */
+@@ -2825,23 +2841,17 @@ gksu_sudo_fuller (GksuContext *context,
+ if (context->sn_context)
+ gksu_context_launch_complete (context);
+
++ while (read (parent_pipe[0], buffer, 255) > 0)
++ {
++ fprintf (stderr, "%s", buffer);
++ bzero(buffer, 256);
++ }
++
+ /* if the process is still active waitpid() on it */
+ if (pid_exited != pid)
+ waitpid(pid, &status, 0);
+ sudo_reset_xauth (context, xauth, xauth_env);
+
+- /*
+- * Did token acquisition succeed? If so, spawn sudo in
+- * non-interactive mode. It should either succeed or die
+- * immediately if you're not allowed to run the command.
+- */
+- if (WEXITSTATUS(status) == 0)
+- {
+- g_spawn_sync(NULL, cmd, NULL, 0, NULL, NULL,
+- NULL, &child_stderr, &status,
+- error);
+- }
+-
+ if (exit_status)
+ {
+ if (WIFEXITED(status)) {
+@@ -2853,13 +2863,6 @@ gksu_sudo_fuller (GksuContext *context,
+
+ if (WEXITSTATUS(status))
+ {
+- if (g_str_has_prefix(child_stderr, "Sorry, user "))
+- {
+- g_set_error (error, gksu_quark, GKSU_ERROR_NOT_ALLOWED,
+- _("The underlying authorization mechanism (sudo) "
+- "does not allow you to run this program. Contact "
+- "the system administrator."));
+- }
+ if(cmdline)
+ {
+ /* sudo already exec()ed something else, don't report
+@@ -2868,7 +2871,6 @@ gksu_sudo_fuller (GksuContext *context,
+ if (!g_str_has_suffix (cmdline, "sudo"))
+ {
+ g_free (cmdline);
+- g_free (child_stderr);
+ return FALSE;
+ }
+ g_free (cmdline);
+@@ -2881,11 +2883,11 @@ gksu_sudo_fuller (GksuContext *context,
+ }
+ }
+
+- fprintf(stderr, child_stderr);
+- g_free(child_stderr);
+-
+ /* if error is set we have found an error condition */
+- return (error == NULL);
++ if (error)
++ return FALSE;
++
++ return TRUE;
+ }
+
+ /**
diff --git a/abs/not_built/extra/libgksu/libgksu.install b/abs/not_built/extra/libgksu/libgksu.install
new file mode 100644
index 0000000..89cf0cf
--- /dev/null
+++ b/abs/not_built/extra/libgksu/libgksu.install
@@ -0,0 +1,17 @@
+pkgname=libgksu
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
diff --git a/abs/not_built/extra/libgnomekbd/PKGBUILD b/abs/not_built/extra/libgnomekbd/PKGBUILD
new file mode 100644
index 0000000..1740541
--- /dev/null
+++ b/abs/not_built/extra/libgnomekbd/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 91776 2010-09-27 21:05:35Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomekbd
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Gnome keyboard library"
+url="http://gswitchit.sourceforge.net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxklavier>=5.0' 'gconf>=2.32.0')
+makedepends=('intltool' 'pkg-config')
+options=('!libtool' '!emptydirs')
+install=libgnomekbd.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ddd52c4cc7d83ad7ef964a1bcb4db87407e65b00ffc3e70c088ca4ee7383d256')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgnomekbd ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/abs/not_built/extra/libgnomekbd/libgnomekbd.install b/abs/not_built/extra/libgnomekbd/libgnomekbd.install
new file mode 100644
index 0000000..9fc9f55
--- /dev/null
+++ b/abs/not_built/extra/libgnomekbd/libgnomekbd.install
@@ -0,0 +1,17 @@
+pkgname=libgnomekbd
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/abs/not_built/extra/libgtkhtml/PKGBUILD b/abs/not_built/extra/libgtkhtml/PKGBUILD
new file mode 100644
index 0000000..f0753d7
--- /dev/null
+++ b/abs/not_built/extra/libgtkhtml/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 18537 2008-11-06 23:26:35Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libgtkhtml
+pkgver=2.11.1
+pkgrel=2
+pkgdesc="An HTML library for GTK"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk2>=2.14.4' 'libxml2>=2.6.32')
+makedepends=('perlxml' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.11/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a1d1a197dcff8c4571659deef5495e24')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/libgtop/PKGBUILD b/abs/not_built/extra/libgtop/PKGBUILD
new file mode 100644
index 0000000..a602fbe
--- /dev/null
+++ b/abs/not_built/extra/libgtop/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 91991 2010-09-28 16:33:41Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgtop
+pkgver=2.28.2
+pkgrel=1
+pkgdesc="A library that read information about processes and the running system"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('glib2>=2.26' 'libxau' 'texinfo')
+makedepends=('intltool')
+install=libgtop.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://www.gnome.org/"
+sha256sums=('49958d7da1f76b257bfd0d557d8ed2b218a5ab0d31b59fed1c32ddf2a1529f5d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-libgtop-smp
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/libgtop/libgtop.install b/abs/not_built/extra/libgtop/libgtop.install
new file mode 100644
index 0000000..15690f1
--- /dev/null
+++ b/abs/not_built/extra/libgtop/libgtop.install
@@ -0,0 +1,13 @@
+info_dir=/usr/share/info
+
+post_install() {
+ install-info ${info_dir}/libgtop2.info.gz ${info_dir}/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete ${info_dir}/libgtop2.info.gz ${info_dir}/dir 2> /dev/null
+}
diff --git a/abs/not_built/extra/libmms/PKGBUILD b/abs/not_built/extra/libmms/PKGBUILD
new file mode 100644
index 0000000..d0101a6
--- /dev/null
+++ b/abs/not_built/extra/libmms/PKGBUILD
@@ -0,0 +1,25 @@
+#$Id$
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmms
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="MMS stream protocol library"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/libmms/"
+license=(LGPL)
+depends=('glib2')
+options=('!libtool')
+source=(http://download.sourceforge.net/libmms/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9f63aa363deb4874e072a45850161bff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/libmpcdec/PKGBUILD b/abs/not_built/extra/libmpcdec/PKGBUILD
new file mode 100644
index 0000000..feeaf8b
--- /dev/null
+++ b/abs/not_built/extra/libmpcdec/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmpcdec
+pkgver=1.2.6
+pkgrel=1
+pkgdesc="Musepack decoding library"
+arch=(i686 x86_64)
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://files.musepack.net/source/${pkgname}-${pkgver}.tar.bz2)
+url="http://musepack.net/"
+md5sums=('7f7a060e83b4278acf4b77d7a7b9d2c0')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+ install -Dm644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/abs/not_built/extra/libmpdclient/PKGBUILD b/abs/not_built/extra/libmpdclient/PKGBUILD
new file mode 100644
index 0000000..84ecda6
--- /dev/null
+++ b/abs/not_built/extra/libmpdclient/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 50625 2009-08-30 03:02:23Z allan $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libmpdclient
+pkgver=2.3
+pkgrel=1
+pkgdesc="An asynchronous API library for interfacing MPD in the C, C++ & Objective C languages"
+arch=('i686' 'x86_64')
+url="http://mpd.wikia.com/wiki/ClientLib:libmpdclient"
+license=('GPL2')
+depends=('glibc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/musicpd/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('d1ccd40f1c7a723ef0a8eb0e19b51699ec9a8f9e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/libmtp/PKGBUILD b/abs/not_built/extra/libmtp/PKGBUILD
new file mode 100644
index 0000000..06a2dd6
--- /dev/null
+++ b/abs/not_built/extra/libmtp/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id$
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+
+pkgname=libmtp
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="library implementation of the Media Transfer Protocol"
+arch=("i686" "x86_64")
+url="http://libmtp.sourceforge.net"
+license=('LGPL')
+depends=('libusb-compat')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('6dc708757e3fd3ccce7445b4f2171263')
diff --git a/abs/not_built/extra/libmtp/__changelog b/abs/not_built/extra/libmtp/__changelog
new file mode 100644
index 0000000..310a62b
--- /dev/null
+++ b/abs/not_built/extra/libmtp/__changelog
@@ -0,0 +1 @@
+2012-01-25: bump version to 1.1.2
diff --git a/abs/not_built/extra/libnl/PKGBUILD b/abs/not_built/extra/libnl/PKGBUILD
new file mode 100644
index 0000000..8136059
--- /dev/null
+++ b/abs/not_built/extra/libnl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libnl
+pkgver=1.1
+pkgrel=3
+pkgdesc="Library for applications dealing with netlink sockets"
+arch=('i686' 'x86_64')
+url="http://www.infradead.org/~tgr/libnl/"
+license=('GPL')
+depends=('glibc')
+source=("http://www.infradead.org/~tgr/libnl/files/${pkgname}-${pkgver}.tar.gz"
+ 'fix-compilation.patch')
+
+build() {
+ cd ${srcdir}/libnl-${pkgver}
+ patch -Np1 -i ${srcdir}/fix-compilation.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/libnl-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('ae970ccd9144e132b68664f98e7ceeb1'
+ '2490289a9edcc5c03802d151bcf3acc4')
diff --git a/abs/not_built/extra/libnl/fix-compilation.patch b/abs/not_built/extra/libnl/fix-compilation.patch
new file mode 100644
index 0000000..92c0696
--- /dev/null
+++ b/abs/not_built/extra/libnl/fix-compilation.patch
@@ -0,0 +1,10 @@
+--- libnl-1.1.orig/include/netlink-local.h 2008-01-14 16:48:45.000000000 +0100
++++ libnl-1.1/include/netlink-local.h 2009-06-26 11:15:33.186011844 +0200
+@@ -26,6 +26,7 @@
+ #include <sys/socket.h>
+ #include <inttypes.h>
+ #include <assert.h>
++#include <limits.h>
+
+ #include <arpa/inet.h>
+ #include <netdb.h>
diff --git a/abs/not_built/extra/liboil/PKGBUILD b/abs/not_built/extra/liboil/PKGBUILD
new file mode 100644
index 0000000..e206abb
--- /dev/null
+++ b/abs/not_built/extra/liboil/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 72222 2010-03-13 20:12:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=liboil
+pkgver=0.3.17
+pkgrel=1
+pkgdesc="Library of simple functions that are optimized for various CPUs."
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://liboil.freedesktop.org/"
+depends=('glibc')
+makedepends=('glib2' 'pkgconfig' 'docbook-xsl')
+options=('!libtool' '!makeflags')
+source=(${url}/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('47dc734f82faeb2964d97771cfd2e701')
+
+build() {
+ unset CFLAGS
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/liboil"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/liboil/" || return 1
+}
diff --git a/abs/not_built/extra/libupnp/PKGBUILD b/abs/not_built/extra/libupnp/PKGBUILD
new file mode 100644
index 0000000..39cfef7
--- /dev/null
+++ b/abs/not_built/extra/libupnp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: kastor <kastor@fobos.org.ar>
+
+pkgname=libupnp
+pkgver=1.6.13
+pkgrel=1
+pkgdesc="Portable Open Source UPnP Development Kit"
+arch=('i686' 'x86_64')
+url="http://pupnp.sourceforge.net/"
+license=('BSD')
+depends=('glibc')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/pupnp/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('71476b1781ad179bfc9bead640be5f54')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/custom/${pkgname}/LICENSE
+}
+
diff --git a/abs/not_built/extra/libxklavier/PKGBUILD b/abs/not_built/extra/libxklavier/PKGBUILD
new file mode 100644
index 0000000..06e6444
--- /dev/null
+++ b/abs/not_built/extra/libxklavier/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 68544 2010-02-13 09:51:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+
+pkgname=libxklavier
+pkgver=5.0
+pkgrel=1
+pkgdesc="High-level API for X Keyboard Extension"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxkbfile>=1.0.5' 'libxml2>=2.7.6' 'glib2>=2.22.3' 'xkeyboard-config>=1.6' 'libxi>=1.2.1' 'iso-codes>=3.10.1')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+url="http://gswitchit.sourceforge.net"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('dfd94b17a752b2839281764f0a16af2b338024c8867c10fba7015f276dec4db0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-xkb-base=/usr/share/X11/xkb --disable-static || return 1
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/make/PKGBUILD b/abs/not_built/extra/make/PKGBUILD
new file mode 100644
index 0000000..a908e6e
--- /dev/null
+++ b/abs/not_built/extra/make/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=make
+pkgver=3.81
+pkgrel=4
+pkgdesc="GNU make utility to maintain groups of programs"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/make"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc' 'bash')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('a4e9494ac6dc3f6b0c5ff75c5d52abba')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/not_built/extra/mdbtools/PKGBUILD b/abs/not_built/extra/mdbtools/PKGBUILD
new file mode 100644
index 0000000..870551c
--- /dev/null
+++ b/abs/not_built/extra/mdbtools/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Eduard "bekks" Warkentin <eduard.warkentin@gmail.com>
+pkgname=mdbtools
+pkgver=0.5
+pkgrel=9
+pkgdesc="Utilities for viewing data and exporting schema from Microsoft Access Database files"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/mdbtools/"
+license=('LGPL' 'GPL')
+depends=('libgnomeui')
+makedepends=('bison' 'flex')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ gmdb2.desktop)
+md5sums=('4a18bf96e67161101cade64526756d22'
+ '289f236ca91d73510e842922b5776999')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR="$pkgdir" install
+ install -Dm644 ../gmdb2.desktop "$pkgdir/usr/share/applications/gmdb2.desktop"
+}
diff --git a/abs/not_built/extra/mdbtools/gmdb2.desktop b/abs/not_built/extra/mdbtools/gmdb2.desktop
new file mode 100644
index 0000000..8b40dc2
--- /dev/null
+++ b/abs/not_built/extra/mdbtools/gmdb2.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=MDB Tools
+Comment=View data and export schema from MDB files
+TryExec=/usr/bin/gmdb2
+Exec=gmdb2
+Icon=/usr/share/gmdb/glade/logo.xpm
+Categories=System;FileTools;
diff --git a/abs/not_built/extra/mediaserv/PKGBUILD b/abs/not_built/extra/mediaserv/PKGBUILD
new file mode 100644
index 0000000..59eed79
--- /dev/null
+++ b/abs/not_built/extra/mediaserv/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=mediaserv
+pkgver=0.05
+pkgrel=20
+pkgdesc="On-demand transcoding server for videos, targetting the Nokia Internet Tablets."
+arch=('i686' 'x86_64')
+license=('ARTISTIC')
+depends=('tablet-encode' 'perl-xml-rss')
+backup=(/myth/mediaserv/config)
+install=(mediaserv.install)
+url="http://mediautils.garage.maemo.org/tablet-encode.html"
+source=(https://garage.maemo.org/frs/download.php/2632/mediaserv-0.05.tar.gz linhes-mediaserv.tar.bz2 mediaserv.no_daemon.patch run finish)
+
+build() {
+ cd ${srcdir}/mediaserv
+ patch -Np1 -i ${startdir}/src/mediaserv.no_daemon.patch || return 1
+ mkdir -p $startdir/pkg/usr/bin
+ mkdir -p $startdir/pkg/etc/sv/mediaserv/supervise
+ mkdir -p $startdir/pkg/usr/share/doc/mediaserv
+ mkdir -p $startdir/pkg/myth/mediaserv
+ mkdir -p $startdir/pkg/myth/mediaserv/media
+ install -D -m755 mediaserv $startdir/pkg/usr/bin
+ cp README.txt $startdir/pkg/usr/share/doc/mediaserv
+ cp -a ${srcdir}/.mediaserv/* ${pkgdir}/myth/mediaserv
+ install -D -m755 ${srcdir}/run ${srcdir}/finish $startdir/pkg/etc/sv/mediaserv
+}
+md5sums=('94c300a0e95c55dae42a61f77e4e41fe'
+ 'e7b6fcc91b73939db350c4854c19e9ee'
+ '68d25630786e76fa36c9e6bb29821367'
+ 'd047f0fa5f1d39d864debd8a76f677e2'
+ 'f2022c1cc8f04959299c97edde06d023')
diff --git a/abs/not_built/extra/mediaserv/finish b/abs/not_built/extra/mediaserv/finish
new file mode 100644
index 0000000..f424494
--- /dev/null
+++ b/abs/not_built/extra/mediaserv/finish
@@ -0,0 +1,8 @@
+#!/bin/bash
+exec 2>&1
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+stat_runit "Stopping mediaserv"
+#wait
+exec /usr/bin/killall mediaserv
diff --git a/abs/not_built/extra/mediaserv/linhes-mediaserv.tar.bz2 b/abs/not_built/extra/mediaserv/linhes-mediaserv.tar.bz2
new file mode 100644
index 0000000..6397fb7
--- /dev/null
+++ b/abs/not_built/extra/mediaserv/linhes-mediaserv.tar.bz2
Binary files differ
diff --git a/abs/not_built/extra/mediaserv/mediaserv.install b/abs/not_built/extra/mediaserv/mediaserv.install
new file mode 100644
index 0000000..53fe53a
--- /dev/null
+++ b/abs/not_built/extra/mediaserv/mediaserv.install
@@ -0,0 +1,38 @@
+# arg 1: the new package version
+
+
+post_install() {
+ if [ ! -e $MYTHHOME/.mediaserv ]
+ then
+ ln -s /myth/mediaserv $MYTHHOME/.mediaserv
+ fi
+
+ if [ ! -e /myth/mediaserv/media/tv ]
+ then
+ ln -s /myth/pretty /myth/mediaserv/media/tv
+ fi
+ if [ ! -e /myth/mediaserv/media/video ]
+ then
+ ln -s /myth/video /myth/mediaserv/media/video
+ fi
+ chown -R mythtv.mythtv /myth/mediaserv
+ add_service.sh mediaserv
+ sv start mediaserv
+}
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+post_remove() {
+ sv stop mediaserv
+ remove_service.sh mediaserv
+ rm -fr $MYTHHOME/.mediaserv
+ rm -fr /myth/mediaserv
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/mediaserv/mediaserv.no_daemon.patch b/abs/not_built/extra/mediaserv/mediaserv.no_daemon.patch
new file mode 100644
index 0000000..b659354
--- /dev/null
+++ b/abs/not_built/extra/mediaserv/mediaserv.no_daemon.patch
@@ -0,0 +1,17 @@
+--- mediaserv/mediaserv.orig 2009-06-15 03:16:53.000000000 +0000
++++ mediaserv/mediaserv 2009-06-15 03:17:29.000000000 +0000
+@@ -608,10 +608,10 @@
+ # daemonize - daemonize the parent/control app
+ #
+ sub daemonize {
+- my $pid = fork; # Fork off the main process
+- defined ($pid) or die "Cannot start daemon: $!";
+- print "Parent daemon running.\n" if $pid; # If we have a PID, the parent daemonized okay
+- exit if $pid; # Return control to the user
++# my $pid = fork; # Fork off the main process
++# defined ($pid) or die "Cannot start daemon: $!";
++ print "Parent daemon running.\n" ; # If we have a PID, the parent daemonized okay
++# exit if $pid; # Return control to the user
+
+ # Now we're a daemonized parent process!
+
diff --git a/abs/not_built/extra/mediaserv/run b/abs/not_built/extra/mediaserv/run
new file mode 100644
index 0000000..fbd1c97
--- /dev/null
+++ b/abs/not_built/extra/mediaserv/run
@@ -0,0 +1,8 @@
+#!/bin/bash
+exec 2>&1
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+stat_runit "Starting mediaserv"
+exec su mythtv -c "/usr/bin/mediaserv" 2>/dev/null
+wait
diff --git a/abs/not_built/extra/mercurial/PKGBUILD b/abs/not_built/extra/mercurial/PKGBUILD
new file mode 100644
index 0000000..7c146f5
--- /dev/null
+++ b/abs/not_built/extra/mercurial/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 99614 2010-11-15 21:11:47Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=mercurial
+pkgver=1.7.1
+pkgrel=2
+pkgdesc="A scalable distributed SCM tool"
+arch=('i686' 'x86_64')
+url="http://www.selenic.com/mercurial"
+license=('GPL')
+depends=('python2')
+optdepends=('tk: for the hgk GUI')
+source=(http://www.selenic.com/mercurial/release/${pkgname}-${pkgver}.tar.gz
+ mercurial.profile)
+md5sums=('b14caa0f9e4dd5acbf9e9a6059c37fd3'
+ '43e1d36564d4c7fbe9a091d3ea370a44')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1 || return 1
+
+ sed -i -e 's#env python#env python2#' \
+ "${pkgdir}"/usr/lib/python2.6/site-packages/mercurial/lsprof.py
+
+ install -d ${pkgdir}/usr/share/man/{man1,man5}
+ install -m644 doc/hg.1 "${pkgdir}/usr/share/man/man1" || return 1
+ install -m644 doc/{hgrc.5,hgignore.5} "${pkgdir}/usr/share/man/man5" || return 1
+ install -m755 contrib/hgk "${pkgdir}/usr/bin" || return 1
+ install -m644 -D contrib/zsh_completion "${pkgdir}/usr/share/zsh/site-functions/_hg" || return 1
+ install -m644 -D contrib/bash_completion "${pkgdir}/etc/bash_completion.d/hg" || return 1
+ install -d "${pkgdir}/usr/share/emacs/site-lisp"
+ install -m644 contrib/{mq.el,mercurial.el} "${pkgdir}/usr/share/emacs/site-lisp" || return 1
+
+ vimpath="${pkgdir}/usr/share/vim/vimfiles"
+ install -Dm644 contrib/vim/HGAnnotate.vim "${vimpath}/syntax/HGAnnotate.vim" || return 1
+
+ # set some variables
+ install -m755 -d ${pkgdir}/etc/profile.d
+ install -m755 ${srcdir}/mercurial.profile "${pkgdir}/etc/profile.d/mercurial.sh" || return 1
+}
diff --git a/abs/not_built/extra/mercurial/__changelog b/abs/not_built/extra/mercurial/__changelog
new file mode 100644
index 0000000..e0cb121
--- /dev/null
+++ b/abs/not_built/extra/mercurial/__changelog
@@ -0,0 +1 @@
+7/4/11 - chw - change to ensure use of python 2.6 in PKGBUILD
diff --git a/abs/not_built/extra/mercurial/mercurial.profile b/abs/not_built/extra/mercurial/mercurial.profile
new file mode 100644
index 0000000..fc96182
--- /dev/null
+++ b/abs/not_built/extra/mercurial/mercurial.profile
@@ -0,0 +1 @@
+export HG=/usr/bin/hg
diff --git a/abs/not_built/extra/mingetty/PKGBUILD b/abs/not_built/extra/mingetty/PKGBUILD
new file mode 100644
index 0000000..d24a8b5
--- /dev/null
+++ b/abs/not_built/extra/mingetty/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: stonecrest <stonecrestATgmailDOTcom>
+pkgname=mingetty
+pkgver=1.08
+pkgrel=2
+pkgdesc="Designed to be a minimal getty and allows automatic logins."
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/mingetty"
+license=('GPL')
+depends=('glibc')
+makedepends=('gcc' 'make')
+provides=('mingetty')
+conflicts=('mingetty')
+md5sums=('2a75ad6487ff271424ffc00a64420990'
+ 'b1bcb0668c34d4981e3acddc3990dfdb')
+source=(http://downloads.sourceforge.net/sourceforge/mingetty/$pkgname-$pkgver.tar.gz
+ mingetty-utf8.patch)
+
+build() {
+ patch $startdir/src/$pkgname-$pkgver/mingetty.c mingetty-utf8.patch || return 1
+
+ mkdir -p $startdir/pkg/sbin || return 1
+ mkdir -p $startdir/pkg/usr/man/man8 || return 1
+
+ cd $startdir/src || return 1
+ cd $startdir/src/$pkgname-$pkgver || return 1
+
+ LDFLAGS="-s" make || return 1
+ install -m 0755 mingetty $startdir/pkg/sbin || return 1
+ install -m 0644 mingetty.8 $startdir/pkg/usr/man/man8 || return 1
+}
diff --git a/abs/not_built/extra/mingetty/mingetty-utf8.patch b/abs/not_built/extra/mingetty/mingetty-utf8.patch
new file mode 100644
index 0000000..c269039
--- /dev/null
+++ b/abs/not_built/extra/mingetty/mingetty-utf8.patch
@@ -0,0 +1,158 @@
+diff -Nru mingetty-1.07.orig/mingetty.c mingetty-1.07/mingetty.c
+--- mingetty-1.07.orig/mingetty.c 2004-01-03 15:15:56.000000000 +0200
++++ mingetty-1.07/mingetty.c 2006-11-22 22:13:26.967910100 +0200
+@@ -16,10 +16,15 @@
+ * - autologin only at first login
+ * - /etc/mingetty.conf that can be used instead of /etc/inittab for
+ * command line options
+- * - Can UTF-8 setup be done within mingetty?
++ * - Can UTF-8 setup be done within mingetty? Let's try now :-) (VinzC)
+ * - Also add /bin/login-type functionality in here?
+ */
+
++/* Additional comments: Vincent Cadet <vcadet@hotmail.com> (2006-11-21)
++ * - Attempt to make mingetty support UTF-8. Modifications were imported
++ * from Suse migetty.c 0.9.6s.
++ */
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -39,6 +44,19 @@
+ #include <syslog.h>
+ #include <sys/utsname.h>
+ #include <time.h>
++#include <locale.h>
++#include <iconv.h>
++#include <wctype.h>
++#include <sys/kd.h>
++#include <sys/ttydefaults.h>
++
++#ifndef IUTF8
++# ifndef ASM_IUTF8
++# error ASM_IUTF8 input flag not defined - Cannot define IUTF8
++# else
++# define IUTF8 ASM_IUTF8
++# endif
++#endif
+
+ /* name of this program (argv[0]) */
+ static char *progname;
+@@ -74,6 +92,8 @@
+ static char *autologin = NULL;
+ /* try to read a char before dropping to login prompt */
+ static int loginpause = 0;
++/* terminal mode */
++static int mode = K_RAW;
+
+ /* error() - output error messages */
+ static void error (const char *fmt, ...)
+@@ -187,10 +207,21 @@
+ if (fd > 2)
+ close (fd);
+
++ /* Detect mode of current keyboard setup, e.g. for UTF-8 */
++ if (ioctl(0, KDGKBMODE, &mode) < 0)
++ mode = K_RAW;
++
+ /* Write a reset string to the terminal. This is very linux-specific
+ and should be checked for other systems. */
+ if (noclear == 0)
+- write (0, "\033c", 2);
++ /* don't write a full reset (ESC c) because this leaves the
++ unicode mode again if the terminal was in unicode mode
++ and also undos the ESC sequences in CONSOLE_MAGIC which
++ are needed for some languages/console-fonts.
++ Just put the cursor to the home position (ESC [ H),
++ erase everything below the cursor (ESC [ J), and set the
++ scrolling region to the full window (ESC [ r) */
++ write (0, "\033[r\033[H\033[J", 9);
+
+ sigaction (SIGHUP, &sa_old, NULL);
+ }
+@@ -292,32 +323,75 @@
+
+ static char *get_logname (void)
+ {
+- static char logname[40];
++ static char logname[4*UT_NAMESIZE];
+ char *bp;
+ unsigned char c;
++ int ascii;
++ iconv_t ic;
+
+ tcflush (0, TCIFLUSH); /* flush pending input */
++
++ /* Check for UTF-8 mode */
++ switch(mode) {
++ case K_UNICODE:
++ ascii = 0;
++ setlocale(LC_CTYPE, "en_US.UTF-8");
++ break;
++ case K_RAW:
++ case K_MEDIUMRAW:
++ case K_XLATE:
++ default:
++ ascii = 1;
++ setlocale(LC_CTYPE, "POSIX");
++ break;
++ }
++
+ for (*logname = 0; *logname == 0;) {
+ do_prompt (1);
+ for (bp = logname;;) {
+ if (read (0, &c, 1) < 1) {
+- if (errno == EINTR || errno == EIO
+- || errno == ENOENT)
++ if (errno == EINTR || errno == EAGAIN) {
++ usleep(1000);
++ continue;
++ }
++ if (errno == EIO || errno == ENOENT)
+ exit (EXIT_SUCCESS);
+ error ("%s: read: %s", tty, strerror (errno));
+ }
+ if (c == '\n' || c == '\r') {
+ *bp = 0;
+ break;
+- } else if (!isprint (c))
+- error ("%s: invalid character 0x%x in login"
+- " name", tty, c);
++ }
++
++ if (ascii && !isprint (c))
++ error ("%s: invalid character 0x%x in login name", tty, c);
+ else if ((size_t)(bp - logname) >= sizeof (logname) - 1)
+ error ("%s: too long login name", tty);
+- else
+- *bp++ = c;
++
++ *bp++ = c;
+ }
+ }
++
++ if (!ascii && (ic = iconv_open("WCHAR_T", "UTF-8"))) {
++ char tmpbuf[4*sizeof(logname)], *op, *lp;
++ size_t len = bp - logname;
++ size_t out = sizeof(tmpbuf) - 1;
++ size_t wcl;
++ wint_t *wcp;
++
++ op = tmpbuf;
++ lp = logname;
++ if ((wcl = iconv(ic , &lp, &len, &op, &out)) == (size_t)-1)
++ error ("%s: invalid character conversion for login name", tty);
++ iconv_close(ic);
++
++ wcp = (wint_t*)tmpbuf;
++ wcp[wcl] = (wint_t)0;
++ while (*wcp) {
++ if (!iswprint(*wcp++))
++ error ("%s: invalid character for login name found", tty);
++ }
++ }
+ return logname;
+ }
+
+
+
diff --git a/abs/not_built/extra/monitorix/PKGBUILD b/abs/not_built/extra/monitorix/PKGBUILD
new file mode 100644
index 0000000..d2dceec
--- /dev/null
+++ b/abs/not_built/extra/monitorix/PKGBUILD
@@ -0,0 +1,47 @@
+# Contributor: graysky <graysky AT archlinux dot us>
+# Contributor: res <andres87p gmail>
+
+pkgname=monitorix
+pkgver=1.5.2
+pkgrel=1
+pkgdesc='A lightweight system monitoring tool that uses rrd databases.'
+arch=(any)
+url=http://www.$pkgname.org/
+license=(GPL)
+depends=('rrdtool' 'perl-libwww')
+optdepends=('lm_sensors: enable support for system temp monitoring'
+'hddtemp: enable support for hdd temp monitoring'
+'metamail: enable support for reports via system mail')
+
+backup=(etc/$pkgname.conf)
+source=($url$pkgname-$pkgver.tar.gz
+ monitorix.rc.d)
+install=('readme.install')
+
+build() {
+ cd $pkgname-$pkgver
+
+ install -D $pkgname.pl $pkgdir/usr/sbin/$pkgname.pl
+ install -D ../$pkgname.rc.d $pkgdir/etc/rc.d/$pkgname
+
+# use Arch defaults
+ sed -e '/^our $OSTYPE/ s,RHFC,Arch,' \
+ -e '/^our @HDDTEMP_LIST/ s,hda,sda,' < $pkgname.conf \
+ > $pkgdir/etc/$pkgname.conf
+ mkdir -p $pkgdir/var/lib/$pkgname/usage
+ cp -r reports $pkgdir/var/lib/$pkgname
+
+ mkdir -p $pkgdir/usr/share/doc/$pkgname
+ cp Changes $pkgname-apache.conf $pkgname-alert.sh README README.nginx TODO \
+ $pkgdir/usr/share/doc/$pkgname
+
+ install -dm777 $pkgdir/srv/http/$pkgname/imgs
+ cp {logo_bot,logo_top,${pkgname}ico}.png $pkgdir/srv/http/$pkgname
+
+ install -D $pkgname.cgi $pkgdir/srv/http/cgi-bin/$pkgname.cgi
+
+ gzip -9 man/man5/$pkgname.conf.5
+ install -Dm644 man/man5/$pkgname.conf.5.gz $pkgdir/usr/share/man/man5/$pkgname.conf.5.gz
+}
+sha256sums=('3d025d097fe8dd458501b8cf3345b80b1b66625ae257e21452b95d1596ec5b6d'
+ 'f9ba4e09f8e583808bc9fa5476ddac067182799512e103ea40565b7da47dbab6')
diff --git a/abs/not_built/extra/monitorix/monitorix.rc.d b/abs/not_built/extra/monitorix/monitorix.rc.d
new file mode 100644
index 0000000..24eb433
--- /dev/null
+++ b/abs/not_built/extra/monitorix/monitorix.rc.d
@@ -0,0 +1,56 @@
+#!/bin/bash
+#
+# @(#) Fibranet NSP, SL
+# Copyright (C) 2005-2009 by Jordi Sanfeliu <jordi@fibranet.cat>
+#
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case $1 in
+ start)
+ stat_busy "Starting Monitorix"
+ if ck_daemon monitorix; then
+ # check for monitorix-tmps and if present execute it
+ if [ -x /etc/cron.hourly/sync-monitorix.sh ]; then
+ /etc/cron.hourly/sync-monitorix.sh >/dev/null 2>&1
+ fi
+ # Creates RRDs files if needed
+ /usr/sbin/monitorix.pl create >/dev/null 2>&1 || stat_die $?
+ /usr/sbin/monitorix.pl init >/dev/null 2>&1 || stat_die $?
+ add_daemon monitorix
+ # restart crond so data gets collected
+ /etc/rc.d/crond restart
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Monitorix"
+ if ! ck_daemon monitorix; then
+ # check for monitorix-tmps and if present execute it
+ if [ -x /etc/cron.hourly/sync-monitorix.sh ]; then
+ /etc/cron.hourly/sync-monitorix.sh >/dev/null 2>&1
+ fi
+ /usr/sbin/monitorix.pl stop 2>&1 || stat_die $?
+ rm_daemon monitorix
+ # restart crond data stops getting collected
+ /etc/rc.d/crond restart
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+
+exit 0
diff --git a/abs/not_built/extra/monitorix/readme.install b/abs/not_built/extra/monitorix/readme.install
new file mode 100644
index 0000000..2630018
--- /dev/null
+++ b/abs/not_built/extra/monitorix/readme.install
@@ -0,0 +1,54 @@
+post_install() {
+ echo '----------------------------------------------------------------------'
+ echo 'NOTE that you will need a mono-font for this package to work.'
+ echo 'There are many options here so I did not add one as a formal dep.'
+ echo 'You may use for example terminus-font. If your graphs have no numbers'
+ echo 'go ahead and install it. If they work as is you do not need it.'
+ echo ' '
+ echo 'Consider having your rrd databases for monitorix reside in RAM.'
+ echo 'D/L and build the monitorix-tmpfs package from the AUR:'
+ echo
+ echo ' http://aur.archlinux.org/packages.php?ID=34134'
+ echo '----------------------------------------------------------------------'
+}
+
+post_remove() {
+ echo '----------------------------------------------------------------------'
+ echo 'To remove all traces of monitorix from your system, you must manually'
+ echo 'remove the following dir trees (doing so will delete your databases):'
+ echo
+ echo '/var/lib/monitorix'
+ echo '/srv/http/monitorix'
+ echo '----------------------------------------------------------------------'
+}
+
+# $1: The new package version
+# $2: The old package version
+
+post_upgrade() {
+NEW=`echo $1 | cut -f-1 -d '-'`
+OLD=`echo $2 | cut -f-1 -d '-'`
+
+# if running the 1.4.2 series then display warning message
+
+if [ "$OLD" = "1.4.2" ]; then
+ echo '----------------------------------------------------------------------'
+ echo ' WARNING:'
+ echo
+ echo 'With this upgrade you MUST replace your current version of'
+ echo '/etc/monitorix.conf with /etc/monitorix.conf.pacnew which contains new'
+ echo 'configs needed by the 1.5.0 release of monitorix.'
+ echo
+ echo 'Simply do the following:'
+ echo '# cp /etc/monitorix.conf /etc/monitorix.conf.old'
+ echo '# mv /etc/monitorix.conf.pacnew /etc/monitorix.conf'
+ echo
+ echo 'Now you can compare your old config saved as /etc/monitorix.conf.old'
+ echo 'to your new config to ensure that you get all your config options into'
+ echo 'the new version.'
+ echo
+ echo 'Restart monitorix when you have completed the edit as well:'
+ echo '# /etc/rc.d/monitorix restart'
+ echo '----------------------------------------------------------------------'
+fi
+}
diff --git a/abs/not_built/extra/most/PKGBUILD b/abs/not_built/extra/most/PKGBUILD
new file mode 100644
index 0000000..b2d8624
--- /dev/null
+++ b/abs/not_built/extra/most/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 57011 2009-10-31 08:09:42Z allan $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=most
+pkgver=5.0.0a
+pkgrel=2
+pkgdesc="A terminal pager similar to 'more' and 'less'"
+arch=('i686' 'x86_64')
+depends=('slang')
+license=('GPL')
+url="ftp://space.mit.edu/pub/davis/most/"
+source=(ftp://space.mit.edu/pub/davis/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('30f2131b67f61716f6fe1f65205da48b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/abs/not_built/extra/most/most-debian.patch b/abs/not_built/extra/most/most-debian.patch
new file mode 100644
index 0000000..4387420
--- /dev/null
+++ b/abs/not_built/extra/most/most-debian.patch
@@ -0,0 +1,1655 @@
+--- most-4.10.2.orig/most.1
++++ most-4.10.2/most.1
+@@ -134,7 +134,7 @@
+ Use this switch when you want to view files
+ containing 8 bit characters.
+ .I most
+-will display the file 16 bytes per line in hexidecimal notation.
++will display the file 16 bytes per line in hexadecimal notation.
+ A typical line looks like:
+ .IP
+ .Ds
+@@ -185,12 +185,13 @@
+ This option is meaningful only when used with the
+ .B \-v
+ option.
++.TP
+ .BI + lineno
+ Start up at
+ .IR lineno .
+ .TP
+-.B +c
+-Make search case sensitive.
++.B -c
++Make searches case sensitive.
+ By default, they are not.
+ .TP
+ .B +d
+@@ -482,7 +483,7 @@
+ descriptors that represent the file name and line number,
+ respectively. For example, if JED is your editor, then set
+ .B MOST_EDITOR
+-to 'jed %s -g %d'.
++to 'jed %s -g %d'. This will only work where the %s preceeds the %d.
+ .TP
+ .B MOST_HELP
+ This variable may be used to specify an alternate help file.
+@@ -496,7 +497,7 @@
+ .I most.rc
+ on other systems.
+ .SH CONFIGURATION FILE SYNTAX
+-When most starts up, it tries to read a system confiuration file and
++When most starts up, it tries to read a system configuration file and
+ then a personal configuration file. These files may be used to
+ specify keybindings and colors.
+ .PP
+--- most-4.10.2.orig/src/buffer.c
++++ most-4.10.2/src/buffer.c
+@@ -44,10 +44,10 @@
+
+ Most_Buffer_Type *Most_Buf;
+
+-int Most_Num_Lines;
++long long Most_Num_Lines;
+
+-unsigned int Most_C_Offset;
+-int Most_C_Line;
++unsigned long long Most_C_Offset;
++long long Most_C_Line;
+
+ static unsigned char *beg_of_line1(void)
+ {
+@@ -61,24 +61,29 @@
+ {
+ if (*pos == '\n')
+ {
+- pos--;
+- while ((pos > Most_Beg)
+- && (*pos != '\n'))
++ pos--; /* Skip back the new-line. */
++ /* This block is UTF-8 safe, because it only scans the
++ buffer for a new-line, and doesn't count
++ characters. */
++ while ((pos > Most_Beg) && (*pos != '\n'))
+ pos--;
+
+- if (*pos != '\n') return pos;
++ if (*pos != '\n') return Most_Beg;
++ /* from here on *pos == '\n' */
+ if (pos + 1 != cpos)
+ return pos + 1;
+ }
+ }
+- else pos--;
++ else
++ pos = SLutf8_bskip_char(Most_Beg, pos);
+
+ if (*pos != '\n')
+ {
+- while ((pos > Most_Beg)
+- && (*pos != '\n'))
++ /* This block is UTF-8 safe. See comment above. */
++ while ((pos > Most_Beg) && (*pos != '\n'))
+ pos--;
+ if (*pos != '\n') return Most_Beg;
++ /* from here on *pos == '\n' */
+ return pos + 1;
+ }
+
+@@ -93,55 +98,6 @@
+ return pos;
+ }
+
+-
+-static unsigned char *forward_columns (unsigned char *b, unsigned char *e, unsigned int num_cols)
+-{
+- unsigned int col = 0;
+-
+- while ((b < e)
+- && (col < num_cols))
+- {
+- unsigned char ch = *b++;
+- if (((ch >= ' ') && (ch < 0x7F))
+- || (ch >= SLsmg_Display_Eight_Bit))
+- {
+- col++;
+- continue;
+- }
+-
+- if ((ch == '\b') || (ch == '\t') || (ch == '\r'))
+- switch (ch)
+- {
+- case '\b':
+- if (Most_V_Opt == 0)
+- {
+- if (col > 0) col--;
+- }
+- else col += 2;
+- break;
+-
+- case '\r':
+- if (Most_V_Opt == 0)
+- col = 0;
+- else
+- col += 2;
+- break;
+-
+- case '\t':
+- if (Most_T_Opt == 0)
+- col = Most_Tab_Width * (col/Most_Tab_Width + 1);
+- else
+- col += 2;
+- break;
+- }
+- else if (ch & 0x80)
+- col += 3;
+- else
+- col += 2;
+- }
+- return b;
+-}
+-
+ /* does not move point */
+ static unsigned char *end_of_line1(void)
+ {
+@@ -164,6 +120,9 @@
+
+ if (*pos != '\n')
+ {
++ /* This block is UTF-8 safe, because it only scans the buffer
++ for a new-line, and doesn't count characters. */
++
+ n = pmax - pos;
+ n2 = n % 8;
+ pmax = pos + (n - 8);
+@@ -215,7 +174,7 @@
+ ncols = SLtt_Screen_Cols-1;
+ while (1)
+ {
+- unsigned char *next_b = forward_columns (b, e, ncols);
++ unsigned char *next_b = most_forward_columns (b, e, ncols, 1);
+ if ((next_b == e) || (next_b == b))
+ break;
+
+@@ -237,11 +196,12 @@
+ return e;
+
+ if (b == NULL) b = most_beg_of_line ();
+- b = forward_columns (b, e, SLtt_Screen_Cols-1);
++ b = most_forward_columns (b, e, SLtt_Screen_Cols-1, 1);
+
+ /* Do not wrap the line if the last character falls on the last column
+ * of the display.
+ */
++ /* FIXME potential bug if dealing with multi-byte char. */
+ if ((b + 1 <= e)
+ && (b + 1 < Most_Eob)
+ && (b[1] == '\n'))
+@@ -250,10 +210,10 @@
+ return b;
+ }
+
+-int most_forward_line(int save)
++long long most_forward_line(long long save)
+ {
+- int m;
+- register int n = save;
++ long long m;
++ register long long n = save;
+ unsigned char *p;
+ unsigned char *pmax;
+
+@@ -346,14 +306,14 @@
+ }
+
+ /* Count lines in the region. A half line counts as 1 */
+-int most_count_lines(unsigned char *beg, unsigned char *end)
++long long most_count_lines(unsigned char *beg, unsigned char *end)
+ {
+- int save_line, n;
++ long long save_line, n;
+ unsigned char *save_beg, *save_eob;
+- unsigned int save_pos;
++ unsigned long long save_pos;
+ int dn = 1000;
+
+- if (Most_B_Opt) return(1 + (int)(end - beg) / 16);
++ if (Most_B_Opt) return(1 + (long long)(end - beg) / 16);
+
+ save_line = Most_C_Line; save_beg = Most_Beg; save_eob = Most_Eob;
+ save_pos = Most_C_Offset;
+@@ -371,9 +331,9 @@
+ return(n);
+ }
+
+-void most_goto_line(int line)
++void most_goto_line(long long line)
+ {
+- int dif_c, dif_b,dif_t;
++ long long dif_c, dif_b,dif_t;
+
+ if (line < 1) line = 1;
+ most_read_to_line(line);
+@@ -420,7 +380,7 @@
+ }
+
+ /* return line the point is on without the final '\n's */
+-int most_extract_line(unsigned char **beg, unsigned char **end)
++long long most_extract_line(unsigned char **beg, unsigned char **end)
+ {
+ *beg = most_beg_of_line();
+ *end = end_of_line (*beg);
+@@ -428,12 +388,12 @@
+ return 0;
+ }
+
+-int most_what_line(unsigned char *pos)
++long long most_what_line(unsigned char *pos)
+ {
+- unsigned int save_pos;
+- int save_line, dir;
+- register int dif_c, dif_b,dif_t;
+- int ret;
++ unsigned long long save_pos;
++ long long save_line, dir;
++ register long long dif_c, dif_b,dif_t;
++ long long ret;
+
+ if (Most_B_Opt)
+ {
+@@ -517,7 +477,7 @@
+ }
+
+ /* given a buffer position, find the line and column */
+-void most_find_row_column(unsigned char *pos, int *r, int *c)
++void most_find_row_column(unsigned char *pos, long long *r, long long *c)
+ {
+ unsigned char *beg;
+ unsigned int save_offset;
+@@ -545,7 +505,10 @@
+ /* Now we have found the line it is on so.... */
+ beg = most_beg_of_line();
+ *c = 1;
+- while (beg++ < pos) *c = *c + 1;
++ if (Most_UTF8_Mode)
++ while ((beg = SLutf8_skip_char(beg, pos)) < pos) *c = *c + 1;
++ else
++ while (beg++ < pos) *c = *c + 1;
+ Most_C_Line = save_line;
+ Most_C_Offset = save_offset;
+ }
+--- most-4.10.2.orig/src/buffer.h
++++ most-4.10.2/src/buffer.h
+@@ -23,12 +23,12 @@
+
+ extern Most_Buffer_Type *Most_Buf;
+ extern unsigned char *Most_Beg, *Most_Eob;
+-extern int Most_Num_Lines;
++extern long long Most_Num_Lines;
+
+ /* Offset of current position from beginning of buffer */
+-extern unsigned int Most_C_Offset;
++extern unsigned long long Most_C_Offset;
+
+-extern int Most_C_Line;
++extern long long Most_C_Line;
+ /*
+ * Current line number. If at the beginning of the buffer, it is 1. If
+ * we are at the last point of the buffer it is the number of lines.
+@@ -37,26 +37,26 @@
+ /* This routine does not move the point */
+ extern unsigned char *most_beg_of_line(void);
+
+-extern int most_forward_line(int);
++extern long long most_forward_line(long long);
+ /* This routine moves the point forward n lines. n can be negative.
+ It returns the number moved. */
+
+-extern void most_goto_line(int);
++extern void most_goto_line(long long);
+ /* Move the point somewhere on the nth line of the buffer returning
+ C_POS */
+
+-extern int most_what_line(unsigned char *);
++extern long long most_what_line(unsigned char *);
+ /* return the line number of position 'argument'. Does not move point */
+
+ /* count the number of lines in the region delimited by beg and end.
+ Counts lines from beg up to end but does not count end.
+ Does not move point. */
+-extern int most_count_lines(unsigned char *, unsigned char *);
+-extern int most_extract_line(unsigned char **, unsigned char **);
++extern long long most_count_lines(unsigned char *, unsigned char *);
++extern long long most_extract_line(unsigned char **, unsigned char **);
+
+ extern Most_Buffer_Type *most_switch_to_buffer(Most_Buffer_Type *);
+ extern Most_Buffer_Type *most_create_buffer(char *);
+-extern void most_find_row_column(unsigned char *, int *, int *);
++extern void most_find_row_column(unsigned char *, long long *, long long *);
+
+ #endif
+
+--- most-4.10.2.orig/src/keym.c
++++ most-4.10.2/src/keym.c
+@@ -228,7 +228,7 @@
+ static void goto_percent_cmd(void)
+ {
+ unsigned char *pos;
+- int n;
++ long long n;
+
+ if (Most_Digit_Arg != (int *) NULL) n = *Most_Digit_Arg;
+ else
+@@ -282,7 +282,7 @@
+
+ static void find_next_cmd(void)
+ {
+- int col, line, n = 1;
++ long long col, line, n = 1;
+ unsigned long ofs;
+
+ if (Most_Digit_Arg != NULL) n = *Most_Digit_Arg;
+@@ -309,7 +309,7 @@
+ #else
+ "Search: ",
+ #endif
+- Most_Search_Str,
++ (char *) Most_Search_Str,
+ MOST_SEARCH_BUF_LEN
+ ) == -1) return;
+ Most_Curs_Offset = Most_C_Offset;
+@@ -325,7 +325,7 @@
+ #else
+ "Search Backwards: ",
+ #endif
+- Most_Search_Str,
++ (char *) Most_Search_Str,
+ MOST_SEARCH_BUF_LEN) == -1) return;
+ find_next_cmd();
+ }
+--- most-4.10.2.orig/src/line.c
++++ most-4.10.2/src/line.c
+@@ -87,8 +87,7 @@
+ while (b < end)
+ {
+ ch = *b++;
+- if (((ch >= ' ') && (ch < 0x7F))
+- || (ch >= SLsmg_Display_Eight_Bit))
++ if (most_isprint(ch))
+ {
+ *s++ = ch;
+ continue;
+@@ -108,103 +107,156 @@
+
+ if (end > Most_Eob) end = Most_Eob;
+
+- sprintf (buf, "0x%08X: ", Most_C_Offset);
++ sprintf (buf, "0x%08llX: ", Most_C_Offset);
+ ascii_format_line (beg, end, buf + 12);
+ SLsmg_write_string (buf);
+ SLsmg_erase_eol ();
+ }
+
+-static int most_analyse_line(unsigned char *begg, unsigned char *endd,
+- char *out, char *attributes)
++int most_isprint(unsigned char ch)
+ {
+- unsigned char *beg, *end;
+- unsigned int min_col, max_col;
+- unsigned int i, i_max;
++ /* Can this be directly replaced with isprint? */
++ return (ch >= ' ' && ch < 0x7F) || ch >= SLsmg_Display_Eight_Bit;
++}
++
++static void most_analyse_line(unsigned char *beg, unsigned char *end,
++ unsigned char *out, char *attributes)
++{
++ unsigned char *pout;
++ char* pattributes;
++
++ /* Holds the number of columns for the current character counting
++ * from the left margin (in contrast to the leftmost visible
++ * column).
++ */
++ unsigned int col;
++
++ /* Holds the number of the column up to which to apply the
++ * current/following formatting. Only meaningful when format_rlim > i.
++ */
++ unsigned int format_rlim;
+
+- beg = begg;
+- end = endd;
+- i = i_max = 0;
+- min_col = Most_Column - 1;
+- max_col = min_col + SLtt_Screen_Cols;
++ beg = most_forward_columns(beg, end, Most_Column - 1, 0);
++ pout = out;
++ pattributes = attributes;
++ col = format_rlim = 0;
+
+ while (beg < end)
+ {
+ char attr = ' ';
+- unsigned char ch;
++ unsigned char ch = *beg++;
+
+- if ('\n' == (ch = *beg++))
++ if ('\n' == ch)
+ break;
+
+ if ((ch == '\r') && (Most_V_Opt == 0))
+ {
+- if (i > i_max) i_max = i;
+- i = 0;
++ if (col > format_rlim) format_rlim = col;
++ col = 0;
+ continue;
+ }
+
+ if ((ch == '\b') && (Most_V_Opt == 0))
+ {
+- if (i > i_max) i_max = i;
+- if (i > 0)
+- i--;
++ if (col > format_rlim) format_rlim = col;
++ if (col > 0)
++ {
++ if (Most_UTF8_Mode)
++ {
++ SLwchar_Type wc;
++ pout = SLutf8_bskip_char(out, pout);
++ if (SLutf8_decode(pout, pout + SLUTF8_MAX_MBLEN, &wc, NULL))
++ {
++ unsigned int char_len = SLwchar_wcwidth(wc);
++ if (char_len > 1)
++ col -= char_len - 1;
++ }
++ }
++ else
++ pout--;
++ pattributes--;
++ col--;
++ }
+ continue;
+ }
+
+- if (i < i_max) /* overstrike */
++ if (col < format_rlim) /* overstrike */
+ {
+ attr = 'b';
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- if (out[i-min_col] == '_')
++ if (*pout == '_')
+ attr = 'u';
+ else if (ch == '_')
+ {
+ attr = 'u';
+- ch = out[i - min_col];
++ ch = *pout;
+ }
+ }
+ if (ch == ' ')
+ {
+- i++;
++ col++;
+ continue;
+ }
+ /* drop */
+ }
+-
+- if ((ch >= ' ') && (ch < 0x7F))
+- {
+- if ((i >= min_col) && (i < max_col))
++
++ if (Most_UTF8_Mode) {
++ unsigned char *prev = --beg;
++ SLwchar_Type wc;
++ unsigned int len;
++
++ if (SLutf8_decode(beg, end, &wc, NULL))
++ {
++ unsigned int char_len = SLwchar_wcwidth(wc);
++ if (char_len > 1)
++ col += char_len - 1;
++ }
++
++ beg = SLutf8_skip_char(beg, end);
++ len = beg - prev;
++
++ if (len > 1) {
++ /* Non-ASCII char, display it. */
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ch;
+- attributes[i-min_col] = attr;
++ memcpy(pout, prev, len);
++ pout += len;
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ continue;
+- }
+-
+- if (ch >= SLsmg_Display_Eight_Bit)
++ }
++ }
++
++ if (most_isprint(ch))
+ {
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ch;
+- attributes[i-min_col] = attr;
++ *pout++ = ch;
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ continue;
+ }
+
+ if ((ch == '\t') && (Most_T_Opt == 0) && (Most_Tab_Width))
+ {
+-
+- int nspaces = Most_Tab_Width * (i/Most_Tab_Width + 1) - i;
++ /* Tab expansion must take into consideration the
++ * leftmost visible column. However, variable col holds the
++ * number of columns from the left margin and must be
++ * corrected.
++ */
++ int vis_col = col + Most_Column - 1;
++ int nspaces = Most_Tab_Width - (vis_col % Most_Tab_Width);
+ while (nspaces > 0)
+ {
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ' ';
+- attributes[i-min_col] = attr;
++ *pout++ = ' ';
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ nspaces--;
+ }
+ continue;
+@@ -212,36 +264,36 @@
+
+ if (ch & 0x80)
+ {
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = '~';
+- attributes[i-min_col] = attr;
++ *pout++ = '~';
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ ch &= 0x7F;
+ /* drop */
+ }
+
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = '^';
+- attributes[i-min_col] = attr;
++ *pout++ = '^';
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+
+ if (ch == 0x7F) ch = '?';
+ else ch += '@';
+
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ch;
+- attributes[i-min_col] = attr;
++ *pout++ = ch;
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ }
+
+- if (i < i_max)
+- i = i_max;
++ if (col < format_rlim)
++ col = format_rlim;
+
+ /* Now add "..." if selective display. To do that, the next line needs to
+ * be dealt with to determine whether or not it will be hidden.
+@@ -249,7 +301,7 @@
+ if (Most_Selective_Display
+ && (Most_W_Opt == 0)
+ && (beg < Most_Eob)
+- && ((i >= min_col) && (i < max_col)))
++ && (col < SLtt_Screen_Cols))
+ {
+ if (*beg == '\n') beg++;
+
+@@ -260,37 +312,29 @@
+ if ((beg >= Most_Eob) || (*beg == '\n')
+ || (most_apparant_distance(beg) >= Most_Selective_Display))
+ {
+- i_max = i + 3;
+- while (i < i_max)
++ /* Add an ellipsis, if they fit on the screen. */
++ int rlimit = col + 3;
++ while (col < rlimit)
+ {
+- if (i < max_col)
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i] = '.';
+- attributes[i] = ' ';
++ *pout++ = '.';
++ *pattributes++ = ' ';
+ }
+- i++;
++ col++;
+ }
+ }
+ }
+-
+- i_max = i;
+
+- if (i < min_col)
+- i = min_col;
+- else if (i >= max_col)
+- i = max_col;
+-
+- i -= min_col;
+-
+- out[i] = 0;
+- attributes[i] = 0;
+- return i_max;
++ *pout = 0;
++ *pattributes = 0;
+ }
+
+-static void output_with_attr (unsigned char *out, unsigned char *attr)
++static void output_with_attr (unsigned char *out, char *attr)
+ {
+- unsigned char at, ch, lat;
++ unsigned char at, lat;
+ unsigned char *p = out;
++ unsigned char *pmax = p + strlen((char *) p);
+
+ if (Most_V_Opt)
+ {
+@@ -299,7 +343,7 @@
+ }
+
+ lat = ' ';
+- while ((ch = *p) != 0)
++ while (p < pmax)
+ {
+ if (lat != *attr)
+ {
+@@ -321,7 +365,7 @@
+ else most_tt_normal_video ();
+ lat = at;
+ }
+- p++;
++ p = SLutf8_skip_char(p, pmax);
+ attr++;
+ }
+
+@@ -340,10 +384,11 @@
+ void most_display_line (void)
+ {
+ unsigned char *beg, *end;
+- unsigned int len;
++#if 0
+ unsigned char dollar;
++#endif
+ static unsigned char *line;
+- static unsigned char *attr;
++ static char *attr;
+ static unsigned int line_len;
+
+ if (Most_B_Opt)
+@@ -357,37 +402,43 @@
+ if (line_len < (unsigned int)(SLtt_Screen_Cols + 1) * SLUTF8_MAX_MBLEN)
+ {
+ SLfree ((char *) line);
+- SLfree ((char *) attr);
++ SLfree (attr);
+
+ line_len = (SLtt_Screen_Cols + 1) * SLUTF8_MAX_MBLEN;
+
+ if ((NULL == (line = (unsigned char *) SLmalloc (line_len)))
+- || (NULL == (attr = (unsigned char *) SLmalloc (line_len))))
++ || (NULL == (attr = SLmalloc (line_len))))
+ most_exit_error ("Out of memory");
+ }
+
+ (void) most_extract_line (&beg, &end);
+
+- len = most_analyse_line(beg, end, (char *) line, (char *) attr);
++ most_analyse_line(beg, end, line, attr);
+
++#if 0
++ /* Currently the dollar sign is not always being written at the
++ rightmost column when displaying multi-byte characters. */
+ dollar = 0;
+ if (Most_W_Opt)
+ {
+- if ((end < Most_Eob)
+- && (*end != '\n'))
+- dollar = '\\';
++ if ((end < Most_Eob)
++ && (*end != '\n'))
++ dollar = '\\';
+ }
+ else if (len > (unsigned int) SLtt_Screen_Cols + (Most_Column - 1))
+ dollar = '$';
+-
++
+ if (dollar)
+ {
+- line[SLtt_Screen_Cols-1] = dollar;
+- attr[SLtt_Screen_Cols-1] = ' ';
+- line[SLtt_Screen_Cols] = 0;
+- attr[SLtt_Screen_Cols] = 0;
++ unsigned char *pline =
++ most_forward_columns(line, line + line_len, SLtt_Screen_Cols-1, 1);
++ *pline = dollar;
++ *(pline+1) = 0;
++ attr[SLtt_Screen_Cols-1] = ' ';
++ attr[SLtt_Screen_Cols] = 0;
+ }
+-
++#endif
++
+ output_with_attr (line, attr);
+ SLsmg_erase_eol ();
+ }
+@@ -398,21 +449,34 @@
+ int most_apparant_distance (unsigned char *pos)
+ {
+ int i;
+- unsigned char *save_pos, ch;
++ unsigned char *save_pos, *beg, ch;
+ unsigned int save_offset;
+
+ save_offset = Most_C_Offset;
+ save_pos = pos;
+ Most_C_Offset = (unsigned int) (pos - Most_Beg);
+- pos = most_beg_of_line();
++ beg = pos = most_beg_of_line();
+ Most_C_Offset = save_offset;
+
+ i = 0;
+ while (pos < save_pos)
+ {
+- ch = *pos++;
+- if (((ch >= ' ') && (ch < 0x7F))
+- || (ch >= SLsmg_Display_Eight_Bit))
++ ch = *pos;
++
++ if (Most_UTF8_Mode) {
++ unsigned char *prev = pos;
++ int len;
++ pos = SLutf8_skip_char(pos, save_pos);
++ len = pos - prev;
++ if (len > 1) {
++ i++;
++ continue;
++ }
++ } else {
++ pos++;
++ }
++
++ if (most_isprint(ch))
+ {
+ i++;
+ continue;
+@@ -420,7 +484,13 @@
+
+ if (!Most_V_Opt && (ch == '\b'))
+ {
+- if (i > 0) i--;
++ if (i > 0)
++ {
++ if (Most_UTF8_Mode)
++ i -= pos - SLutf8_bskip_char(beg, pos);
++ else
++ i--;
++ }
+ }
+ else if (!Most_V_Opt && (ch == '\015')) /* ^M */
+ {
+@@ -439,3 +509,95 @@
+ }
+ return i;
+ }
++
++/*
++ * Returns a pointer to the num_cols'th character after the one
++ * pointed at b. Invisible character runs are not counted toward this
++ * limit, i.e. strings that represent attributes, such as "_\b" for
++ * underlines.
++ *
++ * If multi_column is non-zero, characters spanning more than one
++ * column will add their extra width to the column count.
++ *
++ * If there the end of the buffer is reached, as delimited by argument
++ * e, then e is returned.
++ */
++unsigned char *most_forward_columns (unsigned char *beg, unsigned char *e, unsigned int num_cols, int multi_column)
++{
++ unsigned int col = 0;
++ unsigned int prev_width = 1;
++ unsigned char* b = beg;
++
++ while ((b < e)
++ && ((col < num_cols)
++ || (*b == '\b')
++ || (*b == '\r')))
++ {
++ unsigned char ch = *b;
++
++ if (Most_UTF8_Mode)
++ {
++ unsigned char *prev = b;
++ int len;
++ b = SLutf8_skip_char(b, e);
++ len = b - prev;
++ if (len > 1)
++ {
++ if (multi_column)
++ {
++ SLwchar_Type wc;
++ if (SLutf8_decode(prev, e, &wc, NULL))
++ col += prev_width = SLwchar_wcwidth(wc);
++ }
++ else
++ col++;
++ continue;
++ }
++ }
++ else
++ b++;
++
++ if (most_isprint(ch))
++ {
++ col++;
++ prev_width = 1;
++ continue;
++ }
++
++ if ((ch == '\b') || (ch == '\t') || (ch == '\r'))
++ switch (ch)
++ {
++ case '\b':
++ if (Most_V_Opt == 0)
++ {
++ if (col > 0) col -= prev_width;
++ }
++ else col += 2;
++ break;
++
++ case '\r':
++ if (Most_V_Opt == 0)
++ col = 0;
++ else
++ col += 2;
++ break;
++
++ case '\t':
++ if (Most_T_Opt == 0)
++ col = Most_Tab_Width * (col/Most_Tab_Width + 1);
++ else
++ col += 2; /* ^I is two chars long. */
++ break;
++ }
++ else if (ch & 0x80)
++ col += 3;
++ else
++ col += 2;
++ }
++
++ /* Last character was too wide. Backstep it. */
++ if (col > num_cols)
++ b = SLutf8_bskip_char(beg, b);
++
++ return b;
++}
+--- most-4.10.2.orig/src/line.h
++++ most-4.10.2/src/line.h
+@@ -7,5 +7,7 @@
+
+ extern void most_display_line(void);
+ extern int most_apparant_distance(unsigned char *);
++extern int most_isprint(unsigned char);
++extern unsigned char *most_forward_columns (unsigned char *, unsigned char *, unsigned int, int);
+ #endif
+
+--- most-4.10.2.orig/src/most.c
++++ most-4.10.2/src/most.c
+@@ -125,7 +125,7 @@
+ ch = *(++str);
+ if ( ch == '/')
+ {
+- strcpy (Most_Search_Str,++str);
++ strcpy ((char *) Most_Search_Str,++str);
+ return;
+ }
+
+@@ -329,7 +329,8 @@
+
+ static void do_most (char *file, int start)
+ {
+- int piped, row, col;
++ int piped;
++ long long row, col;
+
+ most_get_cdir(Most_C_Dir);
+
+@@ -347,7 +348,7 @@
+ Most_Curs_Offset = Most_C_Offset;
+
+ if (*Most_Search_Str
+- && ((row = most_search (Most_Beg + Most_C_Offset, 1, &col)) > 0))
++ && ((row = most_search (Most_Beg + Most_C_Offset, 1LL, &col)) > 0))
+ most_goto_line(row);
+ else
+ {
+@@ -455,13 +456,7 @@
+
+ SLtt_get_terminfo();
+ #if SLANG_VERSION >= 20000
+-#if 0
+- Most_UTF8_Mode = SLutf8_enable (1);
+- if (Most_UTF8_Mode)
+- {
+- fprintf (stderr, "UTF-8 Mode is in effect\n");
+- }
+-#endif
++ Most_UTF8_Mode = SLutf8_enable (-1);
+ #endif
+ SLtt_Ignore_Beep = 1;
+ if (No_Colors)
+--- most-4.10.2.orig/src/most.h
++++ most-4.10.2/src/most.h
+@@ -1,4 +1,5 @@
+ #include "config.h"
++#define SLANG_REGEXP
+ extern int Most_S_Opt;
+ extern int Most_A_Opt; /* automatically choose -b if necessary */
+ extern int Most_V_Opt; /* display control chars */
+--- most-4.10.2.orig/src/search.c
++++ most-4.10.2/src/search.c
+@@ -20,6 +20,7 @@
+ */
+ #include "config.h"
+
++#include <ctype.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <slang.h>
+@@ -31,18 +32,18 @@
+ #include "display.h"
+ #include "search.h"
+
+-/* Note!!! The regular expression searches may not work. I have not
+- * tested them.
+- * FIXME!!!
+- */
+-
+ int Most_Case_Sensitive = 0;
+-char Most_Search_Str[256];
++unsigned char Most_Search_Str[256];
+ int Most_Search_Dir = 1;
+
+ #include "jdmacros.h"
+
+-#define UPCASE(ch) ((!Most_Case_Sensitive && (ch <= 'z') && (ch >= 'a')) ? (ch - 32) : ch)
++#if SLANG_VERSION < 20000
++# define NORM_CHAR(ch) ((!Most_Case_Sensitive) ? toupper(ch) : ch)
++# define UPCASE(ch) NORM_CHAR(ch)
++#else
++# define NORM_CHAR(ch) (ch)
++#endif
+
+ #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
+
+@@ -78,7 +79,7 @@
+ * This function is called by the V8 regcomp to report
+ * errors in regular expressions.
+ */
+-static void regerror(char *s)
++static void regerror(const char *s)
+ {
+ char string[256];
+
+@@ -95,13 +96,17 @@
+ * 0 error
+ *
+ */
+-static int do_regcomp(unsigned char *key)
++static int do_regcomp(const unsigned char *key)
+ {
+ static int old_Most_Case_Sensitive;
+- unsigned char UpCaseKey[sizeof(savepattern)];
+ # ifndef HAVE_V8_REGCOMP
+ int posn; /* reg exp error at this offset */
+ # endif
++# if SLANG_VERSION < 20000
++ unsigned char UpCaseKey[sizeof(savepattern)];
++# else
++ int re_flags = 0;
++# endif
+
+ /*
+ * Only recompile search string if it has changed
+@@ -124,6 +129,7 @@
+
+ old_Most_Case_Sensitive = Most_Case_Sensitive;
+
++# if SLANG_VERSION < 20000
+ if ( Most_Case_Sensitive == 0 )
+ {
+ register unsigned char *p; /* ptr to UpCaseKey */
+@@ -141,6 +147,7 @@
+
+ *p = '\0';
+ }
++# endif
+
+ strcpy((char *)savepattern, (char *)key);
+
+@@ -162,7 +169,12 @@
+ # else
+ if (Regexp != NULL)
+ SLregexp_free (Regexp);
+- if (NULL == (Regexp = SLregexp_compile ((char *)key, Most_Case_Sensitive ? 0 : SLREGEXP_CASELESS)))
++
++ if (!Most_Case_Sensitive)
++ re_flags |= SLREGEXP_CASELESS;
++ if (Most_UTF8_Mode)
++ re_flags |= SLREGEXP_UTF8;
++ if (NULL == (Regexp = SLregexp_compile ((char *)key, re_flags)))
+ posn = -1;
+ else
+ posn = 0;
+@@ -187,7 +199,7 @@
+ * Call the appropriate regular expression execute function
+ */
+
+-static unsigned char *do_regexec(unsigned char *string)
++static unsigned char *do_regexec(const unsigned char *string, size_t length)
+ {
+ # ifdef HAVE_V8_REGCOMP
+ if ( regexec(regpattern, (char *)string) )
+@@ -196,40 +208,46 @@
+ return( NULL );
+ # else
+ # if SLANG_VERSION < 20000
+- return ( SLang_regexp_match(string, strlen((char *)string), &regdata) );
++ return ( SLang_regexp_match(string, length, &regdata) );
+ # else
+- return (unsigned char *)SLregexp_match (Regexp, (char *)string, strlen ((char *)string));
++ return (unsigned char *)SLregexp_match (Regexp, (char *)string, length);
+ # endif
+ # endif /* HAVE_V8_REGCOMP */
+ }
+
+ /*
+- * Make a upper case copy of a string. Also changes any "c\b" character
+- * strings into just "" so that highlighted and underlined characters
+- * can be searched.
++ * Changes any "c\b" character strings into just "" so that
++ * highlighted and underlined characters can be searched. Stores in
++ * length the new size of the string, after the aforementioned
++ * changes.
++ *
++ * If using a version of S-Lang that does not support case
++ * insensitive regular expressions, this function upper cases the
++ * input string, as well.
+ *
+ * Reuses malloced memory, so a copy cannot be retained between calls.
+ */
+
+-static unsigned char *StrUpCaseCopy(unsigned char *input)
++static const unsigned char *StrNormCopy(const unsigned char *input,
++ size_t *length)
+ {
+ static unsigned char *uppercase; /* ptr to malloced area */
+ static size_t bufsize; /* size of malloced area */
+- unsigned char *src; /* ptr to source */
++ const unsigned char *src; /* ptr to source */
++ const unsigned char *end; /* ptr to end of source */
+ register unsigned char *dest; /* ptr to destination */
+ register int idx; /* index into uppercase[] */
+- register unsigned char c; /* source character */
+- size_t length; /* size of string to copy */
+
+ src = input;
+- length = strlen((char *)src) + 1; /* len of line plus terminator */
++ end = input + *length;
+
+- if ( length > bufsize )
++ if ( *length >= bufsize )
+ {
+ if ( uppercase != (unsigned char *)NULL )
+ free(uppercase);
+
+- bufsize = (length > 256 ) ? length : 256; /* 256 byte default */
++ /* len of line plus terminator */
++ bufsize = (*length >= 256 ) ? *length + 1 : 256; /* 256 byte default */
+
+ uppercase = (unsigned char *)malloc(bufsize);
+ if ( uppercase == (unsigned char *)NULL )
+@@ -242,8 +260,9 @@
+
+ dest = uppercase;
+
+- for ( idx = 0 ; (c = *src) != '\0' ; src++ )
++ for ( idx = 0 ; src < end ; src++ )
+ {
++ unsigned char c = *src;
+ if ( c == '\b' ) /* backspace */
+ {
+ if ( idx-- > 0 )
+@@ -252,54 +271,79 @@
+ else
+ {
+ if ( idx++ >= 0 )
+- *dest++ = UPCASE(c);
++ *dest++ = NORM_CHAR(c);
+ }
+ }
+
+ *dest = '\0'; /* add termination */
+
++ *length = dest - uppercase;
+ return(uppercase);
+ }
+
+ /*
+- * Given an offset into a copy made by StrUpCaseCopy() and a pointer to the
++ * Given an offset into a copy made by StrNormCopy() and a pointer to the
+ * original string, returns a pointer into the original string corresponding
+ * to this offset.
+ */
+
+-static unsigned char *GetOrigPtr(unsigned char *original, int offset)
++static const unsigned char *
++GetOrigPtr(const unsigned char *original, int offset,
++ const unsigned char *end)
+ {
+- register unsigned char *p = original;
++ const unsigned char *p = original;
+ register int j = offset;
+
+ /*
+ * Step through, adjusting offset according to backspaces found
+ */
+- while ( *p != '\0' )
++ while ( p < end )
+ {
++ const unsigned char *next;
++ if (Most_UTF8_Mode)
++ next = SLutf8_skip_char((unsigned char*) p, (unsigned char*) end);
++ else
++ next = p + 1;
++ size_t length_last = next - p;
++
+ if ( *p == '\b' )
+- j++;
++ j += length_last;
+ else
+- j--;
++ j -= length_last;
+
+ if ( j < 0 )
+ break;
+ else
+- p++;
++ p = next;
+ }
+
+ return(p);
+ }
+ #endif /* HAVE_V8_REGCOMP || SLANG_REGEXP */
+
++/* Returns a pointer to the first occurrence of '\n' in string beg, or
++ * end if no '\n' can be found between inclusive beg and exclusive
++ * end.
++ */
++static const unsigned char *
++find_eol(const unsigned char *beg, const unsigned char *end)
++{
++ const unsigned char *p;
++ if ( (p = memchr(beg, '\n', end - beg)) != NULL)
++ return p;
++ else
++ return end;
++}
++
+ /* This routine returns the 1 + position of first match of key in str.
+ key is modified to match the case of str. */
+ /* We should try to optimize this routine */
+ /* searches from beg up to but not including end */
+
+-static unsigned char *forw_search_region(unsigned char *beg,
+- unsigned char *end,
+- unsigned char *key)
++static const unsigned char *
++forw_search_region(const unsigned char *beg,
++ const unsigned char *end,
++ const unsigned char *key)
+ {
+ #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
+ /*
+@@ -307,10 +351,11 @@
+ * to be broken into lines.
+ *
+ */
+- unsigned char *p; /* temp pointer */
+- unsigned char *linebeg; /* beginning of working line */
+- unsigned char *copy; /* ptr to upper case copy */
++ const unsigned char *linebeg; /* beginning of working line */
++ const unsigned char *lineend; /* end of working line */
++ const unsigned char *norm_line; /* ptr to normalized line */
+ unsigned char *match; /* ptr to matching string */
++ int anchored_re;
+
+ /*
+ * Compile "key" into an executable regular expression
+@@ -318,58 +363,35 @@
+ if ( do_regcomp(key) == 0 )
+ return(Most_Eob);
+
+- /*
+- * For regular expression searches we need to do a line by line
+- * search, so it is necessary to temporarily replace '\n' with '\0'
+- * characters.
+- */
+- p = beg;
+- linebeg = beg;
++ anchored_re = key[0] == '^';
+
+- while (linebeg < end)
++ for ( linebeg = beg ; linebeg < end ; linebeg = lineend + 1 )
+ {
+- while ((p < end) && (*p != '\n')) p++;
+- if (p == end) break;
+- *p = 0;
++ size_t length;
+
+- if ( Most_Case_Sensitive == 0 ) /* i.e. case insensitive */
+- {
+- copy = StrUpCaseCopy(linebeg);
+- if ( copy == (unsigned char *)NULL )
+- return(Most_Eob);
+- }
++ lineend = find_eol(linebeg, end);
++
++ length = lineend - linebeg;
++ if (0 == length) continue; /* Skip empty lines. */
++
++ norm_line = StrNormCopy(linebeg, &length);
++ if ( norm_line == NULL )
++ return(Most_Eob);
+
+ /*
+ * Quick sanity check for beginning of line archored tests.
+- * If 1st char of key is "^", then the character before linebeg (which
+- * must be beyond the start of the window), must be a "\n",
+- * otherwise do_regexec() isn't called.
++ * If 1st char of key is "^", then the character before
++ * linebeg (which must be within the buffer), must be a "\n".
+ */
+- if (
+-# if 0
+- ((*key != '^')
+- || (linebeg > Most_Win->beg_pos && linebeg[-1] == '\n'))
+- &&
+-#endif
+- (match = do_regexec(Most_Case_Sensitive ? linebeg : copy)))
++ if ( !(anchored_re && (linebeg <= Most_Beg || linebeg[-1] != '\n'))
++ && (match = do_regexec(norm_line, length)) )
+ {
+- *p = '\n';
+- if ( Most_Case_Sensitive == 0 )
+- {
+- /*
+- * Use offset into "copy" as idx to find point in
+- * real line.
+- */
+- return( GetOrigPtr(linebeg, match - copy) );
+- }
+- else
+- {
+- return( match );
+- }
++ /*
++ * Use offset into "norm_line" as idx to find point in
++ * real line.
++ */
++ return( GetOrigPtr(linebeg, match - norm_line, lineend) );
+ }
+-
+- *p++ = '\n';
+- linebeg = p;
+ }
+
+ return(Most_Eob);
+@@ -475,23 +497,18 @@
+ * pattern "key".
+ */
+
+-static unsigned char *back_search_region(unsigned char *beg,
+- unsigned char *end,
+- unsigned char *key)
++static const unsigned char *
++back_search_region(const unsigned char *beg,
++ const unsigned char *end,
++ const unsigned char *key)
+ {
+ #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
+- register unsigned char *p;
+- unsigned char *endp, /* end of line */
+- *lastmatch, /* last match in line */
++ const unsigned char *p;
++ const unsigned char *endp, /* end of line */
++ *lastmatch, /* last match in line */
+ *endprevline, /* end of line before this one */
+ *match; /* ptr to matching string */
+- unsigned char savec; /* last char on line */
+-
+- /*
+- * Compile "key" into an executable regular expression
+- */
+- if ( do_regcomp(key) == 0 )
+- return(Most_Eob);
++ int anchored_re;
+
+ /*
+ * Starting from the end of the buffer, break the buffer into lines
+@@ -501,84 +518,60 @@
+ * and isn't that what we want to do in a reverse search.
+ */
+ endp = end;
+- lastmatch = Most_Eob;
+- while ( 1 ) /* forever loop */
+- {
+- if ( (endp < beg) )
+- return(Most_Eob); /* Reach start of buffer, no match */
++ endprevline = end;
++ match = Most_Eob;
+
+- /* Find the real end of current line */
+- if ( (p = (unsigned char *)strchr((char *)endp, '\n')) != NULL )
+- endp = p;
+-
+- savec = *endp;
+- *endp = '\0'; /* terminate line with NULL */
++ /* Find out whether the regexp attempts to match a line boundary.
++ * In this case, only a match on the full line should be attempted.
++ */
++ anchored_re = key[strlen((const char *) key)-1] == '$';
+
++ while ( endp > beg )
++ {
+ /* Find the beginning of line */
+ for ( p = endp - 1 ; (p >= beg) && (*p != '\n') ; p-- )
+ {
+ }
+
++ if ( p < beg )
++ break;
++
+ endprevline = p;
+
+- p++; /* point to 1st char after newline */
++ /*
++ * Quick sanity check for end of line archored tests. If last
++ * char of key is "$", then the character after endp (which
++ * must be within the buffer), must be a "\n".
++ */
++ if ( anchored_re && endp < Most_Eob && endp[0] != '\n' )
++ {
++ endp = p;
++ continue;
++ }
+
+ /*
+ * Keep searching forward in this line till no more matches
+ */
+- if ( Most_Case_Sensitive == 0 ) /* i.e. case insensitive */
++ do
+ {
+- unsigned char *copy; /* ptr to upper case copy */
+- unsigned char *savecopy; /* copy of "copy" */
+-
+- copy = StrUpCaseCopy(p);
+- if ( copy == (unsigned char *)NULL )
+- return(Most_Eob);
++ lastmatch = match;
+
+- savecopy = copy;
+-
+- /*
+- * Quick sanity check for beginning of line archored tests.
+- * Must be at start of line.
+- */
+- while ( ((*key != '^') || (copy == savecopy))
+- && (match = do_regexec(copy)) )
+- {
+- if ( GetOrigPtr(p, match - savecopy) > end )
+- break;
+- lastmatch = match;
+- if ( *lastmatch == '\0' ) /* key must be "$" or "^" */
+- break;
+- copy = lastmatch + 1; /* character after match */
+- }
++ if (Most_UTF8_Mode)
++ p = SLutf8_skip_char((unsigned char*) p, (unsigned char*) endp);
++ else
++ p++;
+
+- if ( lastmatch != Most_Eob ) /* found a match */
+- lastmatch = GetOrigPtr(p, lastmatch - savecopy);
+- }
+- else
+- {
+- /*
+- * Quick sanity check for beginning of line archored tests.
+- * Must be at start of buffer or start of line
+- */
+- while ( ( (*key != '^') || (p == endprevline + 1) )
+- && (match = do_regexec(p)) )
+- {
+- if ( match > end )
+- break;
+- lastmatch = match;
+- if ( *lastmatch == '\0' ) /* key must be "$" or "^" */
+- break;
+- p = lastmatch + 1; /* character after match */
+- }
++ match = forw_search_region(p, endp, key);
+ }
++ while ( match <= endp );
+
+- *endp = savec;
+ if ( lastmatch != Most_Eob ) /* found a match */
+ return(lastmatch);
+
+ endp = endprevline;
+ }
++
++ return(Most_Eob); /* Reached start of buffer, no match */
+ #else
+ char ch, char1, work[256];
+ unsigned char *pos;
+@@ -670,15 +663,15 @@
+ #endif /* HAVE_V8_REGCOMP || SLANG_REGEXP */
+ }
+
+-int most_search(unsigned char *from, int repeat, int *col)
++long long most_search(const unsigned char *from, int repeat, long long *col)
+ {
+ /* return the line match was found as well as line number,
+ * search from i on; assume that line_array match the i so we need
+ * no initial lookup */
+
+- int test, save_line, the_col, row, s_len;
++ long long test, save_line, the_col, row, s_len;
+ char string[300];
+- unsigned char *pos;
++ const unsigned char *pos;
+ unsigned int save_ofs;
+ unsigned int found_ofs;
+
+@@ -687,7 +680,10 @@
+ save_line = Most_C_Line;
+ found_ofs = Most_Eob - Most_Beg;
+ *col = 0;
+- s_len = strlen (Most_Search_Str);
++ if (Most_UTF8_Mode)
++ s_len = SLutf8_strlen (Most_Search_Str, 0);
++ else
++ s_len = strlen ((char *) Most_Search_Str);
+ pos = from;
+
+ if (*Most_Search_Str)
+--- most-4.10.2.orig/src/search.h
++++ most-4.10.2/src/search.h
+@@ -6,7 +6,7 @@
+ extern int Most_Case_Sensitive;
+ extern int Most_Search_Dir;
+ #define MOST_SEARCH_BUF_LEN 256
+-extern char Most_Search_Str[MOST_SEARCH_BUF_LEN];
+-extern int most_search(unsigned char *, int, int *);
++extern unsigned char Most_Search_Str[MOST_SEARCH_BUF_LEN];
++extern long long most_search(const unsigned char *, int, long long *);
+ #endif
+
+--- most-4.10.2.orig/src/window.c
++++ most-4.10.2/src/window.c
+@@ -48,10 +48,11 @@
+
+ Most_Window_Type *Most_Win;
+ Most_Window_Type *Most_Top_Win;
+-int Most_Top_Line; /* row number of top window */
+-int Most_Curs_Row;
+-int Most_Curs_Col;
+-int Most_Column = 1;
++long long Most_Top_Line; /* row number of top window */
++long long Most_Curs_Row;
++long long Most_Curs_Col;
++/* The leftmost visible column. */
++long long Most_Column = 1;
+ int Most_Restore_Width_To = 0;
+ char Most_Mini_Buf[256];
+ unsigned long Most_Curs_Offset;
+@@ -156,7 +157,7 @@
+ SLsmg_write_nchars (buf + point, len - point);
+ if (col < SLtt_Screen_Cols)
+ break;
+- buf++; point--; len--; /* FIXME for UTF-8 */
++ buf++; point--; len--;
+ }
+ SLsmg_erase_eol ();
+ SLsmg_gotorc (SLtt_Screen_Rows - 1, col);
+@@ -227,6 +228,8 @@
+ {
+ SLang_RLine_Info_Type *rli;
+ unsigned int flags = SL_RLINE_BLINK_MATCH;
++ if (Most_UTF8_Mode)
++ flags |= SL_RLINE_UTF8_MODE;
+
+ if (NULL == (rli = SLrline_open (SLtt_Screen_Cols, flags)))
+ return NULL;
+@@ -258,7 +261,7 @@
+
+ /* do not use default. The up arrow can always get it back. */
+ if ((what != NULL)
+- && (*what) && (what != Most_Search_Str))
++ && (*what) && (what != (char *) Most_Search_Str))
+ {
+ if (-1 == SLrline_set_line (Most_RLI, what))
+ return -1;
+@@ -593,7 +596,8 @@
+ unsigned int num_chars;
+ unsigned int field_width, info_len;
+ unsigned char *eob;
+- int r, x;
++ int r;
++ long long x;
+
+ eob = Most_Eob;
+ #if MOST_HAS_MMAP
+@@ -601,20 +605,20 @@
+ eob = Most_Beg + Most_Buf->mmap_size;
+ #endif
+
+- if (eob == Most_Beg) x = 100;
++ if (eob == Most_Beg) x = 100LL;
+ else
+ {
+- x = Most_C_Offset * 100;
++ x = Most_C_Offset * 100LL;
+ x = x / (eob - Most_Beg);
+ }
+
+ if (Most_C_Line + (Most_Win->bot - Most_Win->top + 1) >= Most_Num_Lines)
+- x = 100;
++ x = 100LL;
+
+ /* for files with end of file above the bottom row (due to window manipulations) */
+- if (x > 100) x = 100;
++ if (x > 100LL) x = 100LL;
+
+- sprintf (info, "(%d,%d) %d%%", Most_C_Line, Most_Column, x);
++ sprintf (info, "(%lld,%lld) %d%%", Most_C_Line, Most_Column, (int)x);
+
+ r = Most_Win->bot + 1;
+ most_goto_rc (r,1);
+--- most-4.10.2.orig/src/window.h
++++ most-4.10.2/src/window.h
+@@ -5,11 +5,11 @@
+ typedef struct _Most_Window_Type
+ {
+ unsigned long top_offset; /* offset of top line of window from bob */
+- int beg_line; /* line number of top */
+- int curs_line; /* line number of curs pos */
+- int curs_col; /* column number of curs pos */
++ long long beg_line; /* line number of top */
++ long long curs_line; /* line number of curs pos */
++ long long curs_col; /* column number of curs pos */
+ unsigned long curs_offset; /* pos of cursor from bob*/
+- int col; /* column offset */
++ long long col; /* column offset */
+ int n_lines; /* number of lines of buffer (mode dependent) */
+ int top; /* screen location of top */
+ int bot; /* screen location of bot */
+@@ -29,9 +29,9 @@
+ extern Most_Window_Type *Most_Win;
+ extern Most_Window_Type *Most_Top_Win;
+ extern unsigned long Most_Curs_Offset;
+-extern int Most_Column;
+-extern int Most_Curs_Row;
+-extern int Most_Curs_Col;
++extern long long Most_Column;
++extern long long Most_Curs_Row;
++extern long long Most_Curs_Col;
+ #define MOST_MINI_BUF_LEN 256
+ extern char Most_Mini_Buf[MOST_MINI_BUF_LEN];
+ extern int Most_Selective_Display;
diff --git a/abs/not_built/extra/mpc/ChangeLog b/abs/not_built/extra/mpc/ChangeLog
new file mode 100644
index 0000000..b645e19
--- /dev/null
+++ b/abs/not_built/extra/mpc/ChangeLog
@@ -0,0 +1,15 @@
+2009-03-11 Alexander Fehr <pizzapunk gmail com>
+
+ * mpc-0.15-1:
+ New upstream release.
+ Changed license to GPL2.
+
+2008-12-22 Alexander Fehr <pizzapunk gmail com>
+
+ * mpc-0.14-1:
+ New upstream release.
+ New maintainer.
+ Changed url.
+ Added !emptydirs option.
+ Changed download location to downloads.sourceforge.net.
+ Added ChangeLog.
diff --git a/abs/not_built/extra/mpc/PKGBUILD b/abs/not_built/extra/mpc/PKGBUILD
new file mode 100644
index 0000000..b8acd57
--- /dev/null
+++ b/abs/not_built/extra/mpc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 63165 2010-01-15 13:32:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=mpc
+pkgver=0.19
+pkgrel=1
+pkgdesc="Minimalist command line interface to MPD"
+arch=('i686' 'x86_64')
+url="http://mpd.wikia.com/wiki/Client:Mpc"
+license=('GPL2')
+depends=('libmpdclient')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/musicpd/${pkgname}-$pkgver.tar.bz2)
+md5sums=('9ab2967d9ec719b06a86f3b4121be654')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ # Install bash completion file
+ install -D -m644 doc/mpc-completion.bash "$pkgdir/etc/bash_completion.d/mpc" || return 1
+}
diff --git a/abs/not_built/extra/mpeg_stat/PKGBUILD b/abs/not_built/extra/mpeg_stat/PKGBUILD
new file mode 100644
index 0000000..b0f7315
--- /dev/null
+++ b/abs/not_built/extra/mpeg_stat/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+pkgname=mpeg_stat
+pkgver=2.2b
+pkgrel=2
+pkgdesc="A Berkely MPEG Tools bitstream analysis tool."
+arch=('i686' 'x86_64')
+url="http://bmrc.berkeley.edu/ftp/pub/multimedia/mpeg/"
+license=('custom')
+depends=('ffmpeg')
+source=(http://www.sfr-fresh.com/unix/misc/old/${pkgname}-${pkgver}-src.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ make || return 1
+}
+package() {
+ cd ${srcdir}/${pkgname}
+ install -m755 -D ${srcdir}/mpeg_stat/mpeg_stat ${pkgdir}/usr/bin/mpeg_stat
+ install -m644 -D ${srcdir}/mpeg_stat/COPYRIGHT ${pkgdir}/usr/share/licenses/mpeg_stat/COPYRIGHT
+}
+md5sums=('d0eca3833b76855c4e348b39deaf667d')
diff --git a/abs/not_built/extra/mpgtx/PKGBUILD b/abs/not_built/extra/mpgtx/PKGBUILD
new file mode 100644
index 0000000..8474da3
--- /dev/null
+++ b/abs/not_built/extra/mpgtx/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 5185 2009-11-07 02:20:01Z dgriffiths $
+# Contributor: Peter Baldwin <bald_pete@hotmail.com>
+pkgname=mpgtx
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A command line MPEG audio/video/system toolkit"
+arch=('i686' 'x86_64')
+url="http://mpgtx.sourceforge.net"
+license=("GPL")
+depends=()
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d628060aa04ad3b40a175bf35f5167cf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=${pkgdir}/usr install
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share/
+}
diff --git a/abs/not_built/extra/mupen64plus-svn/PKGBUILD b/abs/not_built/extra/mupen64plus-svn/PKGBUILD
new file mode 100644
index 0000000..5df794d
--- /dev/null
+++ b/abs/not_built/extra/mupen64plus-svn/PKGBUILD
@@ -0,0 +1,71 @@
+#!!! Due to a limitation in pacman's SVN package handling,
+# this package requires out-of-the-ordinary building. pacman checks
+# the SVN repo for new revisions before scanning the PKGBUILD.
+#!!! So, when you run makepkg, if it asks you for a password for 'mupen64',
+# give it 'Dyson5632-kart' without the quotes. If it asks for a password
+# for _your_ username, hit Enter to make it ask for a new username, tell it
+# 'mupen64' without the quotes, and then give it the password above. When
+# it asks you to save the password unencrypted, you can say yes, because
+# it's just a read-only access login :P Once you do that, you shouldn't
+# need to do the above anymore.
+
+# Maintainer: Devin Cofer <ranguvar@archlinux.us>
+# Contributor: Rudy Matela <rudy.matela@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Zephyr
+
+pkgname=mupen64plus-svn
+pkgver=1416
+pkgrel=1
+pkgdesc="Nintendo64 emulator, SVN version"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/mupen64plus/"
+license=('GPL2')
+
+makedepends=('subversion' 'pkgconfig' 'libsamplerate' 'yasm' 'mesa')
+depends=('gtk2' 'sdl_ttf')
+optdepends=('libsamplerate: Higher quality audio')
+conflicts=('mupen64plus')
+provides=('mupen64plus')
+source=('install.patch'
+ 'fix-gcc4.4-const-char.patch')
+md5sums=('f6a3bc6e59d4f2af9db1b3fce257eb43'
+ '7bb0182949bf043847ad7ff66097e66f')
+
+_svnuser=mupen64
+_svnpass=Dyson5632-kart
+_svntrunk=svn://$_svnuser:$_svnpass@fascination.homelinux.net:7684/mupen64plus/trunk
+_svnmod=mupen64plus
+
+build() {
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod &&\
+ svn up --config-dir . -r $pkgver \
+ --non-interactive --username $_svnuser --password $_svnpass)
+ else
+ svn co $_svntrunk --config-dir . -r $pkgver $_svnmod \
+ --non-interactive --username $_svnuser --password $_svnpass
+ fi
+ msg "SVN checkout done or server timeout"
+
+ cp -r $_svnmod $_svnmod-build
+ patch -d $_svnmod-build < install.patch || return 1
+# patch -p0 -d $_svnmod-build < fix-gcc4.4-const-char.patch || return 1
+ cd $_svnmod-build
+
+ make PREFIX="/usr" LIRC=1 all || return 1
+ make PREFIX="$pkgdir/usr" install || return 1
+
+ ##### Qt 4 GUI build #####
+ #==> Currently broken
+ #make PREFIX="/usr" GUI=QT4 all || return 1
+ #install -m755 mupen64plus "$pkgdir/usr/bin/mupen64plus-qt"
+ #
+ #cd "$pkgdir/usr/share/applications"
+ #cp mupen64plus.desktop mupen64plus-qt.desktop
+ #sed -i "s#Name=Mupen64Plus#Name=Mupen64Plus (Qt)#" mupen64plus-qt.desktop || return 1
+ #sed -i "s#Exec=mupen64plus#Exec=mupen64plus-qt#" mupen64plus-qt.desktop || return 1
+ ##### End Qt 4 GUI build #####
+
+ rm -r "$srcdir/$_svnmod-build"
+}
diff --git a/abs/not_built/extra/mupen64plus-svn/fix-gcc4.4-const-char.patch b/abs/not_built/extra/mupen64plus-svn/fix-gcc4.4-const-char.patch
new file mode 100644
index 0000000..fd1495d
--- /dev/null
+++ b/abs/not_built/extra/mupen64plus-svn/fix-gcc4.4-const-char.patch
@@ -0,0 +1,22 @@
+--- glide64/Combine.old.cpp 2009-06-19 17:59:20.191723065 -0400
++++ glide64/Combine.cpp 2009-06-19 18:43:46.955453868 -0400
+@@ -11873,7 +11873,7 @@
+ LOG ("InitCombine() ");
+ memset(&cmb, 0, sizeof(cmb));
+ const char *extensions = grGetString (GR_EXTENSION);
+- if (char * extstr = strstr(extensions, "COMBINE")) {
++ if (const char * extstr = strstr(extensions, "COMBINE")) {
+ if (!strncmp(extstr, "COMBINE", 7)) {
+ LOG ("extensions ");
+ cmb.grColorCombineExt = (GRCOLORCOMBINEEXT) grGetProcAddress("grColorCombineExt");
+--- glide64/Main.old.cpp 2009-06-19 18:47:04.238930057 -0400
++++ glide64/Main.cpp 2009-06-19 18:47:18.018772876 -0400
+@@ -784,7 +784,7 @@
+ printf("bebefore2\n");
+ if (settings.fb_hires)
+ {
+- if (char * extstr = strstr(extensions, "TEXTUREBUFFER"))
++ if (const char * extstr = strstr(extensions, "TEXTUREBUFFER"))
+ {
+ if (!strncmp(extstr, "TEXTUREBUFFER", 13))
+ {
diff --git a/abs/not_built/extra/mupen64plus-svn/install.patch b/abs/not_built/extra/mupen64plus-svn/install.patch
new file mode 100644
index 0000000..5e41460
--- /dev/null
+++ b/abs/not_built/extra/mupen64plus-svn/install.patch
@@ -0,0 +1,13 @@
+Index: install.sh
+===================================================================
+--- install.sh (revision 1295)
++++ install.sh (working copy)
+@@ -90,7 +90,7 @@
+ if [ -f mupen64plus.desktop ]
+ then
+ $INSTALL -d -v "${APPLICATIONSDIR}"
+- $INSTALL -m 0644 mupen64plus.desktop "${APPLICATIONSDIR}"
++ $INSTALL -m 0644 mupen64plus.desktop "${APPLICATIONSDIR}/mupen64plus.desktop"
+ fi
+ if [ "x$(ls plugins/)" != "x" ]
+ then
diff --git a/abs/not_built/extra/mupen64plus/PKGBUILD b/abs/not_built/extra/mupen64plus/PKGBUILD
new file mode 100644
index 0000000..c7835c0
--- /dev/null
+++ b/abs/not_built/extra/mupen64plus/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 78487 2012-10-19 16:17:59Z jelle $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Zephyr
+
+pkgname=mupen64plus
+pkgver=1.99.5
+pkgrel=3
+pkgdesc='Nintendo64 Emulator'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/mupen64plus/'
+license=('GPL')
+depends=('glu' 'libgl' 'libsamplerate' 'libpng' 'sdl' 'freetype2')
+makedepends=('mesa')
+source=("http://mupen64plus.googlecode.com/files/mupen64plus-bundle-src-${pkgver}.tar.gz")
+md5sums=('93772a6d6fc6a63353462deae8a6db71')
+
+build() {
+ cd mupen64plus-bundle-src-${pkgver}
+
+ sh m64p_build.sh
+}
+
+package() {
+ cd mupen64plus-bundle-src-$pkgver
+
+ # set LDCONFIG since we are using fakeroot and scripts run root commands by checking the uid
+ ./m64p_install.sh DESTDIR="$pkgdir" PREFIX='/usr' MANDIR='/usr/share/man/man6' LDCONFIG='true'
+}
+
+# vim: ts=2:sw=2:et
diff --git a/abs/not_built/extra/mutt/PKGBUILD b/abs/not_built/extra/mutt/PKGBUILD
new file mode 100644
index 0000000..c481eec
--- /dev/null
+++ b/abs/not_built/extra/mutt/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 50055 2009-08-19 01:49:30Z thayer $
+# Maintainer: tobias [tobias [at] archlinux.org]
+pkgname=mutt
+pkgver=1.5.20
+pkgrel=2
+pkgdesc="A small but very powerful text-based mail client"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mutt.org/"
+depends=('slang' 'openssl>=0.9.8e' 'gdbm' 'mime-types' 'zlib' 'libsasl' 'gpgme')
+makedepends=('gnupg')
+install=${pkgname}.install
+source=(ftp://ftp.mutt.org/mutt/devel/${pkgname}-${pkgver}.tar.gz
+ mutt-unmailbox.patch)
+url="http://www.mutt.org/"
+md5sums=('027cdd9959203de0c3c64149a7ee351c'
+ 'fa8e03a49a2fa7b294dc8237d928cdb7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # patch a segfault bug in 1.5.20 -- remove for next release
+ patch -p1 < ${srcdir}/mutt-unmailbox.patch || return 1
+ #patch -Np1 -i ../mutt-unmailbox.patch || exit 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-pop --enable-imap --enable-smtp \
+ --with-sasl --with-ssl=/usr --without-idn \
+ --enable-hcache --enable-pgp --enable-inodesort \
+ --enable-compressed --with-regex \
+ --enable-gpgme --with-slang=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ rm -f ${pkgdir}/usr/bin/{flea,muttbug}
+ rm -f ${pkgdir}/usr/share/man/man1/{flea,muttbug}.1
+ rm -f ${pkgdir}/etc/mime.types*
+ install -Dm644 contrib/gpg.rc ${pkgdir}/etc/Muttrc.gpg.dist
+}
+
diff --git a/abs/not_built/extra/mutt/mutt-unmailbox.patch b/abs/not_built/extra/mutt/mutt-unmailbox.patch
new file mode 100644
index 0000000..cbb3210
--- /dev/null
+++ b/abs/not_built/extra/mutt/mutt-unmailbox.patch
@@ -0,0 +1,10 @@
+--- a/buffy.c 2009-08-10 08:23:12.731846990 -0400
++++ b/buffy.c 2009-08-10 08:23:50.541878087 -0400
+@@ -236,7 +236,6 @@
+ {
+ if(*tmp)
+ {
+- FREE (&((*tmp)->path));
+ tmp1=(*tmp)->next;
+ FREE (tmp); /* __FREE_CHECKED__ */
+ *tmp=tmp1;
diff --git a/abs/not_built/extra/mutt/mutt.install b/abs/not_built/extra/mutt/mutt.install
new file mode 100644
index 0000000..98ece96
--- /dev/null
+++ b/abs/not_built/extra/mutt/mutt.install
@@ -0,0 +1,15 @@
+# arg 1: the new package version
+post_install() {
+ cat << EOM
+
+--> to support gpg, please use the following line in your ~/.muttrc
+
+source /etc/Muttrc.gpg.dist
+
+EOM
+}
+
+post_upgrade() {
+ post_install $1
+}
+
diff --git a/abs/not_built/extra/myt2xvid3/PKGBUILD b/abs/not_built/extra/myt2xvid3/PKGBUILD
new file mode 100755
index 0000000..abd7cb5
--- /dev/null
+++ b/abs/not_built/extra/myt2xvid3/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=myt2xvid3
+pkgver=0.1
+pkgrel=9
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="http://www.knoppmythwiki.org/index.php?page=XvidEncoding"
+depends=('nuvexport')
+install="myt2xvid3.install"
+source=( myt2xvid3 myt2xvid3-userjob.sh archive.php)
+
+
+build() {
+ cd $startdir/src
+ install -D -m 755 myt2xvid3 $startdir/pkg/usr/bin/myt2xvid3
+ install -D -m 755 myt2xvid3-userjob.sh $startdir/pkg/usr/bin/myt2xvid3-userjob.sh
+ mkdir -m777 -p $startdir/pkg/myth/video/archive/
+ install -D -m 755 archive.php $startdir/pkg/myth/video/archive/
+}
diff --git a/abs/not_built/extra/myt2xvid3/archive.php b/abs/not_built/extra/myt2xvid3/archive.php
new file mode 100644
index 0000000..f970868
--- /dev/null
+++ b/abs/not_built/extra/myt2xvid3/archive.php
@@ -0,0 +1,159 @@
+<?
+//archive.php
+// based on m2iweb.php by http://anthony.lusby.us/m2iweb/
+//release 0.1
+//10/05/07
+?>
+
+<html>
+<head>
+ <title>MythWeb - Archive Recordings</title>
+
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+
+ <script type="text/javascript" src="/mythweb/js/init.js"></script>
+ <script type="text/javascript" src="/mythweb/js/browser.js"></script>
+ <script type="text/javascript" src="/mythweb/js/utils.js"></script>
+
+ <script type="text/javascript" src="/mythweb/js/mouseovers.js"></script>
+ <script type="text/javascript" src="/mythweb/js/visibility.js"></script>
+ <script type="text/javascript" src="/mythweb/js/ajax.js"></script>
+
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/style.css" />
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/header.css" />
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/menus.css" />
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/programming.css" />
+
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/status.css" />
+
+</head>
+
+<body>
+
+<div id="page_header" class="clearfix">
+ <div id="logo_box">
+ <a id="mythtv_logo" href="/mythweb/">
+ <img src="/mythweb/skins/default/img/mythtv-logo.png"
+width="174" height="48" border="0" alt="MythTV" class="alpha_png">
+ </a>
+
+ </div>
+ <div id="sections">
+ <a id="tv_link" href="/mythweb/tv" onmouseover="return help_text('TV functions, including recorded programs.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/tv.png" width="48" height="48" class="alpha_png" alt="MythTV"/>
+ </a>
+ <a id="video_link" href="/mythweb/video" onmouseover="return help_text('MythVideo on the web.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/video.png" width="48" height="48" class="alpha_png" alt="MythVideo" />
+ </a>
+ <a id="weather_link" href="/mythweb/weather" onmouseover="return help_text('MythWeb Weather.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/weather.png" width="48" height="48" class="alpha_png" alt="MythWeather" />
+ </a>
+ <a id="settings_link" href="/mythweb/settings" onmouseover="return help_text('Edit MythWeb and some MythTV settings.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/settings.png" width="48" height="48" class="alpha_png" alt="Settings" />
+ </a>
+ </div>
+ <div id="extra_header">
+ <div id="help_wrapper">
+ <div id="help_box">
+
+ <div id="help_text_default">
+ MythWeb: Mon May 16, 2006, 09:09 PM </div>
+ <div id="help_text">
+ </div>
+ </div>
+ </div>
+ <div id="search" >
+ <form action="/mythweb/tv/search" method="post">
+
+ <div id="simple_search">
+ <input id="search_text" type="text" name="searchstr" size="15" value="">
+ <input id="search_submit" type="submit" class="submit" value="Search"> (<a href="/mythweb/tv/search">Advanced</a>)
+ </div>
+ <div id="search_options">
+ </div>
+ </form>
+
+ </div>
+ </div>
+</div>
+
+
+<table width="100%" border="0" cellspacing="2" cellpadding="0">
+<tr>
+
+ <td colspan="2" class="menu menu_border_t menu_border_b"><table class="body" width="100%" border="0"
+
+cellspacing="2" cellpadding="2">
+ <tr>
+ <td><div id="command_choices">
+ <a href="/mythweb/" id="category_legend" onmouseover="popup('category_legend'); return true;">MythTV:</a> &nbsp; &nbsp;
+
+ <a href="/mythweb/tv/list">Listings</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/searches">Searches</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/schedules">Recording Schedules</a>
+ (<a href="/mythweb/tv/schedules/manual">Manual</a>,
+ <a href="/mythweb/tv/schedules/custom">Custom</a>)
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/upcoming">Upcoming Recordings</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/recorded">Recorded Programs</a>
+ &nbsp; | &nbsp;
+ <a href="/ipodfeed/m2iweb.php">Myth2iPod</a>
+ &nbsp; | &nbsp;
+ <a href="/archive/archive.php">Myt2XviD3</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/status">Backend Status</a>
+ </div></td>
+ </tr>
+ </table></td>
+
+</tr>
+</table>
+
+<table width="100%" border="0" cellpadding="4" cellspacing="2" class="list small">
+<tr><td colspan="10" class="list_separator">View and delete recordings transcoded to XviD via Myt2XviD3.</td></tr>
+<?php
+if (isset($_REQUEST['delete'])){
+ $delete = $_REQUEST['delete'];
+ if ($delete AND substr($delete, -9) == ".XviD.xml") {
+ echo '<tr><td colspan="10" class="list_separator">
+ <font color="red">';
+ echo $delete;
+ unlink($delete) or print(" failed to be ");
+ echo ' has been deleted, ';
+ $deletetoo = substr($delete, 0, -3)."avi";
+ echo $deletetoo;
+ unlink($deletetoo) or print(" failed to be ");
+ echo ' has been deleted.';
+ echo'</td></tr>';
+ }
+}
+ $i=1;
+ foreach (glob("*.XviD.xml") as $file) {
+ $lines = file($file);
+ echo '<tr class="recorded"><td class="list">&nbsp;</td><td>';
+ echo '<font color="';
+ if (!file_exists(substr($file, 0, -3)."avi")) {
+ echo "red";
+ }
+ echo '">'.$i.'</font>';
+ echo "</td></td><td><a href=".'"'.substr($file, 0, -3)."avi".'"'."style='color:white'>".strip_tags($lines[1])."</a></td><td>".strip_tags($lines[7])."</td><td>".strip_tags($lines[6])."</td><td nowrap>".filesizeparse(filesize(substr($file, 0, -3)."avi"))."</td><td>".'<a href="?delete='.$file.'" onclick="return confirm('."'Are you sure you want to delete?'".')">Delete</a>'."</td>".'<td class="list">&nbsp;</td>'."</tr>";
+ $i++;
+ }
+//}
+
+function filesizeparse($size){
+ $i=0;
+ $iec = array(" B", " KB", " MB", " GB", " TB");
+ while (($size/1024)>1) {
+ $size=$size/1024;
+ $i++;
+ }
+ return substr($size,0,strpos($size,'.')+3).$iec[$i];
+}
+?>
+</table>
+</body>
+</html>
diff --git a/abs/not_built/extra/myt2xvid3/myt2xvid3 b/abs/not_built/extra/myt2xvid3/myt2xvid3
new file mode 100755
index 0000000..af65188
--- /dev/null
+++ b/abs/not_built/extra/myt2xvid3/myt2xvid3
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+use DBI;
+use Getopt::Long;
+use File::Path;
+
+# User variables
+my $portable = "XviD";
+my $feedfile = "/myth/video/archive/feed.php";
+my $feedpath = "/myth/video/archive/";
+my $wwwloc = "/data/srv/httpd/htdocs";
+my $feedurl = "http://REPLACEME/archive/";
+my $nuvoptions ="--mode=XviD --nice=19 --cutlist --nodenoise --nodeinterlace --crop --multipass";
+
+# Some variables
+our ($dest, $format, $usage);
+our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+our ($hostname, $db_handle, $sql, $statement, $row_ref);
+our ($chanid, $start, $nuvfile, @nuvarray);
+my $rebuild = '0';
+my $encode = '0';
+my $debug = '0';
+my $setup = '0';
+my $cut = '0';
+my( $rightnow ) = `date`;
+
+GetOptions ("rebuild" => \$rebuild,
+ "encode" => \$encode,
+ "debug" => \$debug,
+ "setup" => \$setup,
+ "cut" => \$cut);
+
+if ($setup == 1){
+ system("clear");
+ print "Setup will do everything needed to run this script.\n";
+ print "This has only been tested on KnoppMyth R5A22.\n";
+ print "make sure you have edited the variables for your conguration.\n";
+ my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+ if ($cksetup =~ "y") {
+ DoSetup();
+ exit;
+ }
+ print "Setup exited. Nothing done.\n";
+ exit;
+}
+elsif ($rebuild == 1){
+ GenerateRSSFeed();
+ print "Rebuilding of RSS feed is complete.\n";
+ exit;
+}
+else {
+ Encode4Portable();
+ print "$title is ready for your $portable\n";
+
+ # Check to see if the feed file exists; if not, create it.
+ if (! -e $feedfile) {
+ print "No feed file found. I will make one for you.\n";
+ GenerateRSSFeed();
+ print "All done.\n";
+ }
+}
+
+sub Encode4Portable{
+ if ($#ARGV != 1) {
+ print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n";
+ exit;
+ }
+
+ # Get the show information
+ $directory = $ARGV[0];
+ $file = $ARGV[1];
+ @file = split(/_/, $file);
+ $chanid = $file[0];
+ $start = substr $file[1],0,14;
+ if($debug == 1){ print "$chanid\n$start\n"};
+ if (! -e $directory."/".$file){
+ print "Oops, the file ".$directory.$file." does not exist.\n";
+ exit;
+ }
+
+ # Connect to the database
+ PrepSQLRead();
+ $db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+ or die "Cannot connect to database: $!\n\n";
+ $sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+ $statement = $db_handle->prepare($sql)
+ or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+
+ $statement->execute()
+ or die "Couldn't execute query '$sql': $DBI::errstr\n";
+ $row_ref = $statement->fetchrow_hashref();
+ if($debug == 1){ print "$row_ref->{starttime}\n"};
+ $title = $row_ref->{title};
+ $subtitle = $row_ref->{subtitle};
+ $recorddate = $row_ref->{starttime};
+ $description = $row_ref->{description};
+ $category = $row_ref->{category};
+ $filename = $title."-".$subtitle."-".substr $start, 0, 8;
+ $filename =~ s/ /_/g;
+ $filename =~ s/&/+/g;
+ $filename =~ s/\047//g;
+ $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+ $filename =~ s/_$//g;
+
+ printf("Starting nuvexport...\n");
+ EncodeIt();
+ printf("Nuvexport completed, starting xml generation...\n");
+ CreateItemXML();
+ printf("XML file created for \"$filename\" : Yipeee\n");
+ printf("Cleaning up temporary files\n");
+ $cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+
+ # remove the cutlist incase we added it.
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+ return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt {
+ # Create cutlist from commercial flagging if -cut was passed to the script
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+
+ # Use nuvexport to do the work
+ $cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.$portable --path=$feedpath";
+ print $cmd."\n";
+ if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; }
+
+ # Now clean up the output so iPods with firmware 1.1 and above can use it
+ #$cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+ #print $cmd."\n";
+ #if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; }
+ return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+ open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+ print ITEM "<item>\n";
+ print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+ print ITEM "<itunes:author>MythTV</itunes:author>\n";
+ print ITEM "<author>MythTV</author>\n";
+ print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print ITEM "<comments>".&encodeForXML($file)."</comments>\n";
+ print ITEM "<description>".&encodeForXML($description)."</description>\n";
+ print ITEM "<pubDate>".$recorddate."</pubDate>\n";
+ print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.avi")."\" type=\"video/quicktime\" />\n";
+ print ITEM "<itunes:duration></itunes:duration>\n";
+ print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+ print ITEM "<category>".&encodeForXML($category)."</category>\n";
+ print ITEM "</item>\n";
+ print "\"$filename\" has been added to the feed.\n";
+ close(ITEM);
+ return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+ open(RSS, ">$feedfile");
+ print RSS "<?php\n";
+ print RSS "header(\"Content-Type: text/xml\");\n";
+ print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n";
+ print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n";
+ print RSS "<channel>\n";
+ print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+ print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+ print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n";
+ print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n";
+ print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n";
+ print RSS "<itunes:owner>\n";
+ print RSS "<itunes:name>MythTV</itunes:name>\n";
+ print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n";
+ print RSS "</itunes:owner>\n";
+ print RSS "<itunes:explicit>No</itunes:explicit>\n";
+ print RSS "<language>en-us</language>\n";
+ print RSS "<copyright>Copyright 2005.</copyright>\n";
+ print RSS "<webMaster>mythtv\@localhost</webMaster>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n";
+ print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print RSS "<category>TV Shows</category>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+ print RSS "<image>";
+ print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+ print RSS "<title>MythTV 2 iPod</title>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<width>200</width>\n";
+ print RSS "<height>200</height>\n";
+ print RSS "</image>\n";
+ print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+ print RSS "</channel>\n";
+ print RSS "</rss>\n";
+ close(RSS);
+ if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+ return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+ local $result;
+ $result = $_[0];
+ $result =~ s/&/&amp;/g;
+ $result =~ s/</&lt;/g;
+ $result =~ s/>/&gt;/g;
+ $result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+ $hostname = `hostname`;
+ chomp($hostname);
+
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+ my $found = 0;
+ my @mysql = ('/usr/local/share/mythtv/mysql.txt',
+ '/usr/share/mythtv/mysql.txt',
+ '/etc/mythtv/mysql.txt',
+ '/usr/local/etc/mythtv/mysql.txt',
+ "$ENV{HOME}/.mythtv/mysql.txt",
+ 'mysql.txt'
+ );
+ foreach my $file (@mysql) {
+ next unless (-e $file);
+ $found = 1;
+ open(CONF, $file) or die "Unable to open $file: $!\n\n";
+ while (my $line = <CONF>) {
+ # Cleanup
+ next if ($line =~ /^\s*#/);
+ $line =~ s/^str //;
+ chomp($line);
+ # Split off the var=val pairs
+ my ($var, $val) = split(/\=/, $line, 2);
+ next unless ($var && $var =~ /\w/);
+ if ($var eq 'DBHostName') {
+ $db_host = $val;
+ }
+ elsif ($var eq 'DBUserName') {
+ $db_user = $val;
+ }
+ elsif ($var eq 'DBName') {
+ $db_name = $val;
+ }
+ elsif ($var eq 'DBPassword') {
+ $db_pass = $val;
+ }
+ # Hostname override
+ elsif ($var eq 'LocalHostName') {
+ $hostname = $val;
+ }
+ }
+ close CONF;
+ }
+ die "Unable to locate mysql.txt: $!\n\n" unless ($found && $db_host);
+ return 0;
+}
+
+sub promptUser {
+ local($promptString,$defaultValue) = @_;
+ if ($defaultValue) {
+ print $promptString, "[", $defaultValue, "]: ";
+ } else {
+ print $promptString, ": ";
+ }
+
+ $| = 1; # force a flush after our print
+ $_ = <STDIN>; # get the input from STDIN (presumably the keyboard)
+ chomp;
+ if ("$defaultValue") {
+ return $_ ? $_ : $defaultValue; # return $_ if it has a value
+ } else {
+ return $_;
+ }
+}
+
+sub DoSetup {
+ print "\nNot ready yet. How do you send the cd command from perl?\n";
+ return 0;
+}
diff --git a/abs/not_built/extra/myt2xvid3/myt2xvid3-userjob.sh b/abs/not_built/extra/myt2xvid3/myt2xvid3-userjob.sh
new file mode 100755
index 0000000..6bd46ea
--- /dev/null
+++ b/abs/not_built/extra/myt2xvid3/myt2xvid3-userjob.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+. /etc/profile
+#su mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" >/tmp/logfile"
+su mythtv -c "TERM=vt100 /usr/bin/myt2xvid3 "$1" "$2" "
+#or to also use commercial flagging cutlist
+#su mythtv -c "TERM=vt100 /usr/bin/myth2ipod -cut "$1" "$2" >/tmp/logfile"
diff --git a/abs/not_built/extra/myt2xvid3/myt2xvid3.install b/abs/not_built/extra/myt2xvid3/myt2xvid3.install
new file mode 100755
index 0000000..b3767f3
--- /dev/null
+++ b/abs/not_built/extra/myt2xvid3/myt2xvid3.install
@@ -0,0 +1,38 @@
+
+pre_install() {
+ mkdir -p /myth/video/archive
+ chown mythtv:http /myth/video/archive
+}
+
+pre_upgrade() {
+ pre_install
+}
+
+pre_remove() {
+ pre_install
+}
+
+post_install() {
+ . /etc/systemconfig
+ ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
+ ln -s /myth/video/archive/archive.php /myth/video/archive/index.php
+ sed -i -e "s/REPLACEME/$HOSTNAME/g" /usr/bin/myt2xvid3
+ chown -R mythtv:http /myth/video/archive
+ /usr/bin/myt2xvid3 -rebuild
+}
+
+post_upgrade() {
+ /usr/bin/myt2xvid3 -rebuild
+}
+
+post_remove() {
+ rm -fr /data/srv/http/htdocs/archive
+ rm -rf /myth/video/archive/index.php
+ rm -rf /myth/video/archive/archive.php
+ # don't delete content that the user may still want, so leave /myth/video/archive
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/myth2ipod/PKGBUILD b/abs/not_built/extra/myth2ipod/PKGBUILD
new file mode 100755
index 0000000..2c7540b
--- /dev/null
+++ b/abs/not_built/extra/myth2ipod/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=myth2ipod
+pkgver=0.2
+pkgrel=29
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="myth2ipod.com"
+depends=('gpac' 'nuvexport' )
+install="myth2ipod.install"
+source=( myth2ipod iPod.pm myth2ipod-userjob.sh m2iweb.php)
+
+
+build() {
+ cd $startdir/src
+ install -D -m 755 myth2ipod $startdir/pkg/usr/bin/myth2ipod
+ install -D -m 755 myth2ipod-userjob.sh /$startdir/pkg/usr/bin/myth2ipod-userjob.sh
+ install -D -m755 iPod.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/iPod.pm
+ mkdir -m755 -p $startdir/pkg/myth/ipodfeed
+ install -D -m755 m2iweb.php $startdir/pkg/myth/ipodfeed/
+}
diff --git a/abs/not_built/extra/myth2ipod/iPod.pm b/abs/not_built/extra/myth2ipod/iPod.pm
new file mode 100755
index 0000000..24eae99
--- /dev/null
+++ b/abs/not_built/extra/myth2ipod/iPod.pm
@@ -0,0 +1,184 @@
+#
+# $Date: 2006-01-18 00:15:31 -0800 (Wed, 18 Jan 2006) $
+# $Revision: 226 $
+# $Author: xris $
+#
+# export::ffmpeg::iPod
+#
+
+package export::ffmpeg::iPod;
+ use base 'export::ffmpeg';
+
+# Load the myth and nuv utilities, and make sure we're connected to the database
+ use nuv_export::shared_utils;
+ use nuv_export::cli;
+ use nuv_export::ui;
+ use mythtv::db;
+ use mythtv::recordings;
+
+# Load the following extra parameters from the commandline
+ add_arg('quantisation|q=i', 'Quantisation');
+ add_arg('a_bitrate|a=i', 'Audio bitrate');
+ add_arg('v_bitrate|v=i', 'Video bitrate');
+ add_arg('multipass!', 'Enably two-pass encoding.');
+
+ sub new {
+ my $class = shift;
+ my $self = {
+ 'cli' => qr/\bipod\b/i,
+ 'name' => 'Export to iPod',
+ 'enabled' => 1,
+ 'errors' => [],
+ 'defaults' => {},
+ };
+ bless($self, $class);
+
+ # Initialize the default parameters
+ $self->load_defaults();
+
+ # Verify any commandline or config file options
+ die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0);
+ die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0);
+
+ # VBR, multipass, etc.
+ if ($self->val('multipass')) {
+ $self->{'vbr'} = 0;
+ }
+ elsif ($self->val('quantisation')) {
+ die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31);
+ $self->{'vbr'} = 1;
+ }
+
+ # Initialize and check for ffmpeg
+ $self->init_ffmpeg();
+
+ # Can we even encode ipod?
+ # if (!$self->can_encode('mov')) {
+ # push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mov file formats.";
+ # }
+ if (!$self->can_encode('xvid')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to xvid video.";
+ }
+ if (!$self->can_encode('aac')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to aac audio.";
+ }
+ # Any errors? disable this function
+ $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0);
+ # Return
+ return $self;
+ }
+
+# Load default settings
+ sub load_defaults {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::load_defaults();
+ # Default bitrates
+ $self->{'defaults'}{'v_bitrate'} = 384;
+ $self->{'defaults'}{'a_bitrate'} = 64;
+ }
+
+# Gather settings from the user
+ sub gather_settings {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::gather_settings();
+ # Audio Bitrate
+ $self->{'a_bitrate'} = query_text('Audio bitrate?',
+ 'int',
+ $self->val('a_bitrate'));
+ # VBR options
+ if (!$is_cli) {
+ $self->{'vbr'} = query_text('Variable bitrate video?',
+ 'yesno',
+ $self->val('vbr'));
+ if ($self->{'vbr'}) {
+ $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?',
+ 'yesno',
+ $self->val('multipass'));
+ if (!$self->{'multipass'}) {
+ while (1) {
+ my $quantisation = query_text('VBR quality/quantisation (1-31)?',
+ 'float',
+ $self->val('quantisation'));
+ if ($quantisation < 1) {
+ print "Too low; please choose a number between 1 and 31.\n";
+ }
+ elsif ($quantisation > 31) {
+ print "Too high; please choose a number between 1 and 31\n";
+ }
+ else {
+ $self->{'quantisation'} = $quantisation;
+ last;
+ }
+ }
+ }
+ } else {
+ $self->{'multipass'} = 0;
+ }
+ # Ask the user what video bitrate he/she wants
+ $self->{'v_bitrate'} = query_text('Video bitrate?',
+ 'int',
+ $self->val('v_bitrate'));
+ }
+ }
+
+ sub export {
+ my $self = shift;
+ my $episode = shift;
+ # Force to 4:3 aspect ratio
+ $self->{'out_aspect'} = 1.3333;
+ $self->{'aspect_stretched'} = 1;
+ # PAL or NTSC?
+ my $standard = ($episode->{'finfo'}{'fps'} =~ /^2(?:5|4\.9)/) ? 'PAL' : 'NTSC';
+ $self->{'width'} = 320;
+ $self->{'height'} = ($standard eq 'PAL') ? '288' : '240';
+ $self->{'out_fps'} = ($standard eq 'PAL') ? 25 : 29.97;
+ # Embed the title
+ my $safe_title = shell_escape($episode->{'show_name'}.' - '.$episode->{'title'});
+ # Dual pass?
+ if ($self->{'multipass'}) {
+ # Build the common ffmpeg string
+ my $ffmpeg_xtra = ' -b ' . $self->{'v_bitrate'}
+ .' -bufsize 65535'
+ .' -vcodec xvid -acodec aac '
+ .' -ab ' . $self->{'a_bitrate'}
+ ." -f mp4 -title $safe_title";
+ # Add the temporary file to the list
+ push @tmpfiles, "/tmp/xvid.$$.log";
+ # Back up the path and use /dev/null for the first pass
+ my $path_bak = $self->{'path'};
+ $self->{'path'} = '/dev/null';
+ # Build the ffmpeg string
+ print "First pass...\n";
+ $self->{'ffmpeg_xtra'} = " -pass 1 -passlogfile '/tmp/divx.$$.log'"
+ .$ffmpeg_xtra;
+ $self->SUPER::export($episode, '');
+ # Restore the path
+ $self->{'path'} = $path_bak;
+ # Second Pass
+ print "Final pass...\n";
+ $self->{'ffmpeg_xtra'} = " -pass 2 -passlogfile '/tmp/divx.$$.log'"
+ .$ffmpeg_xtra;
+ }
+ # Single Pass
+ else {
+ $self->{'ffmpeg_xtra'} = ' -b ' . $self->{'v_bitrate'}
+ .(($self->{'vbr'})
+ ? ' -qmin '.$self->{'quantisation'}
+ .' -qmax 31 -minrate 32'
+ .' -maxrate '.(2*$self->{'v_bitrate'})
+ .' -bt 32'
+ : '')
+ .' -vcodec xvid -acodec aac '
+ .' -ab ' . $self->{'a_bitrate'}
+ ." -f mp4 -title $safe_title";
+ }
+ # Execute the (final pass) encode
+ $self->SUPER::export($episode, '.mp4');
+ }
+
+1; #return true
+
+# vim:ts=4:sw=4:ai:et:si:sts=4
+
diff --git a/abs/not_built/extra/myth2ipod/m2iweb.php b/abs/not_built/extra/myth2ipod/m2iweb.php
new file mode 100755
index 0000000..a8a9e4d
--- /dev/null
+++ b/abs/not_built/extra/myth2ipod/m2iweb.php
@@ -0,0 +1,157 @@
+<?
+//archive.php
+// based on m2iweb.php by http://anthony.lusby.us/m2iweb/
+//release 0.1
+//10/05/07
+?>
+
+<html>
+<head>
+ <title>MythWeb - Archive Recordings</title>
+
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+
+ <script type="text/javascript" src="/mythweb/js/init.js"></script>
+ <script type="text/javascript" src="/mythweb/js/browser.js"></script>
+ <script type="text/javascript" src="/mythweb/js/utils.js"></script>
+
+ <script type="text/javascript" src="/mythweb/js/mouseovers.js"></script>
+ <script type="text/javascript" src="/mythweb/js/visibility.js"></script>
+ <script type="text/javascript" src="/mythweb/js/ajax.js"></script>
+
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/style.css" />
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/header.css" />
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/menus.css" />
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/programming.css" />
+
+ <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/status.css" />
+
+</head>
+
+<body>
+
+<div id="page_header" class="clearfix">
+ <div id="logo_box">
+ <a id="mythtv_logo" href="/mythweb/">
+ <img src="/mythweb/skins/default/img/mythtv-logo.png"
+width="174" height="48" border="0" alt="MythTV" class="alpha_png">
+ </a>
+
+ </div>
+ <div id="sections">
+ <a id="tv_link" href="/mythweb/tv" onmouseover="return help_text('TV functions, including recorded programs.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/tv.png" width="48" height="48" class="alpha_png" alt="MythTV"/>
+ </a>
+ <a id="video_link" href="/mythweb/video" onmouseover="return help_text('MythVideo on the web.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/video.png" width="48" height="48" class="alpha_png" alt="MythVideo" />
+ </a>
+ <a id="weather_link" href="/mythweb/weather" onmouseover="return help_text('MythWeb Weather.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/weather.png" width="48" height="48" class="alpha_png" alt="MythWeather" />
+ </a>
+ <a id="settings_link" href="/mythweb/settings" onmouseover="return help_text('Edit MythWeb and some MythTV settings.')" onmouseout="return help_text()">
+ <img src="/mythweb/skins/default/img/settings.png" width="48" height="48" class="alpha_png" alt="Settings" />
+ </a>
+ </div>
+ <div id="extra_header">
+ <div id="help_wrapper">
+ <div id="help_box">
+
+ <div id="help_text_default">
+ MythWeb: Mon May 16, 2006, 09:09 PM </div>
+ <div id="help_text">
+ </div>
+ </div>
+ </div>
+ <div id="search" >
+ <form action="/mythweb/tv/search" method="post">
+
+ <div id="simple_search">
+ <input id="search_text" type="text" name="searchstr" size="15" value="">
+ <input id="search_submit" type="submit" class="submit" value="Search"> (<a href="/mythweb/tv/search">Advanced</a>)
+ </div>
+ <div id="search_options">
+ </div>
+ </form>
+
+ </div>
+ </div>
+</div>
+
+
+<table width="100%" border="0" cellspacing="2" cellpadding="0">
+<tr>
+
+ <td colspan="2" class="menu menu_border_t menu_border_b"><table class="body" width="100%" border="0"
+
+cellspacing="2" cellpadding="2">
+ <tr>
+ <td><div id="command_choices">
+ <a href="/mythweb/" id="category_legend" onmouseover="popup('category_legend'); return true;">MythTV:</a> &nbsp; &nbsp;
+
+ <a href="/mythweb/tv/list">Listings</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/searches">Searches</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/schedules">Recording Schedules</a>
+ (<a href="/mythweb/tv/schedules/manual">Manual</a>,
+ <a href="/mythweb/tv/schedules/custom">Custom</a>)
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/upcoming">Upcoming Recordings</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/tv/recorded">Recorded Programs</a>
+ &nbsp; | &nbsp;
+ <a href="/ipodfeed/m2iweb.php">Myth2iPod</a>
+ &nbsp; | &nbsp;
+ <a href="/archive/archive.php">Myt2XviD3</a>
+ &nbsp; | &nbsp;
+ <a href="/mythweb/status">Backend Status</a>
+ </div></td>
+ </tr>
+ </table></td>
+
+</tr>
+</table>
+<table width="100%" border="0" cellpadding="4" cellspacing="2" class="list small">
+<tr><td colspan="10" class="list_separator">View information and delete myth2ipod recordings.</td></tr>
+<?php
+if (isset($_REQUEST['delete'])){
+$delete = $_REQUEST['delete'];
+if ($delete AND substr($delete, -9) == ".ipod.xml") {
+ echo '<br><font color="red">';
+ echo $delete;
+ unlink($delete) or print(" failed to be ");
+ echo 'deleted<br>';
+ $deletetoo = substr($delete, 0, -3)."mp4";
+ echo $deletetoo;
+ unlink($deletetoo) or print(" failed to be ");
+ echo 'deleted<br><br><a href="?">Home</a>';
+}
+}
+else {
+ $i=1;
+ foreach (glob("*.ipod.xml") as $file) {
+ $lines = file($file);
+ echo '<tr class="recorded"><td class="list">&nbsp;</td><td>';
+ echo '<font color="';
+ if (!file_exists(substr($file, 0, -3)."mp4")) {
+ echo "red";
+ }
+ echo '">'.$i.'</font>';
+ echo "</td></td><td><a href=".'"'.substr($file, 0, -3)."mp4".'"'."style='color:white'>".strip_tags($lines[1])."</a></td><td>".strip_tags($lines[7])."</td><td>".strip_tags($lines[6])."</td><td nowrap>".filesizeparse(filesize(substr($file, 0, -3)."mp4"))."</td><td>".'<a href="?delete='.$file.'" onclick="return confirm('."'Are you sure you want to delete?'".')">Delete</a>'."</td>".'<td class="list">&nbsp;</td>'."</tr>";
+ $i++;
+ }
+}
+function filesizeparse($size){
+ $i=0;
+ $iec = array(" B", " KB", " MB", " GB", " TB");
+ while (($size/1024)>1) {
+ $size=$size/1024;
+ $i++;
+ }
+ return substr($size,0,strpos($size,'.')+3).$iec[$i];
+}
+?>
+</table>
+</body>
+</html>
+</code>
diff --git a/abs/not_built/extra/myth2ipod/myth2ipod b/abs/not_built/extra/myth2ipod/myth2ipod
new file mode 100755
index 0000000..baf749e
--- /dev/null
+++ b/abs/not_built/extra/myth2ipod/myth2ipod
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+use DBI;
+use Getopt::Long;
+use File::Path;
+
+# User variables
+my $portable = "ipod";
+my $feedfile = "/myth/ipodfeed/feed.php";
+my $feedpath = "/myth/ipodfeed/";
+my $wwwloc = "/data/srv/httpd/htdocs";
+my $feedurl = "http://REPLACEME/ipodfeed/";
+my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
+
+# Some variables
+our ($dest, $format, $usage);
+our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+our ($hostname, $db_handle, $sql, $statement, $row_ref);
+our ($chanid, $start, $nuvfile, @nuvarray);
+my $rebuild = '0';
+my $encode = '0';
+my $debug = '0';
+my $setup = '0';
+my $cut = '0';
+my( $rightnow ) = `date`;
+
+GetOptions ("rebuild" => \$rebuild,
+ "encode" => \$encode,
+ "debug" => \$debug,
+ "setup" => \$setup,
+ "cut" => \$cut);
+
+if ($setup == 1){
+ system("clear");
+ print "Setup will do everything needed to run this script.\n";
+ print "This has only been tested on KnoppMyth R5A22.\n";
+ print "make sure you have edited the variables for your conguration.\n";
+ my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+ if ($cksetup =~ "y") {
+ DoSetup();
+ exit;
+ }
+ print "Setup exited. Nothing done.\n";
+ exit;
+}
+elsif ($rebuild == 1){
+ GenerateRSSFeed();
+ print "Rebuilding of RSS feed is complete.\n";
+ exit;
+}
+else {
+ Encode4Portable();
+ print "$title is ready for your $portable\n";
+
+ # Check to see if the feed file exists; if not, create it.
+ if (! -e $feedfile) {
+ print "No feed file found. I will make one for you.\n";
+ GenerateRSSFeed();
+ print "All done.\n";
+ }
+}
+
+sub Encode4Portable{
+ if ($#ARGV != 1) {
+ print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n";
+ exit;
+ }
+
+ # Get the show information
+ $directory = $ARGV[0];
+ $file = $ARGV[1];
+ @file = split(/_/, $file);
+ $chanid = $file[0];
+ $start = substr $file[1],0,14;
+ if($debug == 1){ print "$chanid\n$start\n"};
+ if (! -e $directory."/".$file){
+ print "Oops, the file ".$directory.$file." does not exist.\n";
+ exit;
+ }
+
+ # Connect to the database
+ PrepSQLRead();
+ $db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+ or die "Cannot connect to database: $!\n\n";
+ $sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+ $statement = $db_handle->prepare($sql)
+ or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+
+ $statement->execute()
+ or die "Couldn't execute query '$sql': $DBI::errstr\n";
+ $row_ref = $statement->fetchrow_hashref();
+ if($debug == 1){ print "$row_ref->{starttime}\n"};
+ $title = $row_ref->{title};
+ $subtitle = $row_ref->{subtitle};
+ $recorddate = $row_ref->{starttime};
+ $description = $row_ref->{description};
+ $category = $row_ref->{category};
+ $filename = $title."-".$subtitle."-".substr $start, 0, 8;
+ $filename =~ s/ /_/g;
+ $filename =~ s/&/+/g;
+ $filename =~ s/\047//g;
+ $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+ $filename =~ s/_$//g;
+
+ printf("Starting nuvexport...\n");
+ EncodeIt();
+ printf("Nuvexport completed, starting xml generation...\n");
+ CreateItemXML();
+ printf("XML file created for \"$filename\" : Yipeee\n");
+ printf("Cleaning up temporary files\n");
+ $cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+
+ # remove the cutlist incase we added it.
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+ return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt {
+ # Create cutlist from commercial flagging if -cut was passed to the script
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+
+ # Use nuvexport to do the work
+ $cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath";
+ print $cmd."\n";
+ if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; }
+
+ # Now clean up the output so iPods with firmware 1.1 and above can use it
+ $cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; }
+ return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+ open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+ print ITEM "<item>\n";
+ print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+ print ITEM "<itunes:author>MythTV</itunes:author>\n";
+ print ITEM "<author>MythTV</author>\n";
+ print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print ITEM "<comments>".&encodeForXML($file)."</comments>\n";
+ print ITEM "<description>".&encodeForXML($description)."</description>\n";
+ print ITEM "<pubDate>".$recorddate."</pubDate>\n";
+ print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n";
+ print ITEM "<itunes:duration></itunes:duration>\n";
+ print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+ print ITEM "<category>".&encodeForXML($category)."</category>\n";
+ print ITEM "</item>\n";
+ print "\"$filename\" has been added to the feed.\n";
+ close(ITEM);
+ return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+ open(RSS, ">$feedfile");
+ print RSS "<?php\n";
+ print RSS "header(\"Content-Type: text/xml\");\n";
+ print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n";
+ print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n";
+ print RSS "<channel>\n";
+ print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+ print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+ print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n";
+ print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n";
+ print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n";
+ print RSS "<itunes:owner>\n";
+ print RSS "<itunes:name>MythTV</itunes:name>\n";
+ print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n";
+ print RSS "</itunes:owner>\n";
+ print RSS "<itunes:explicit>No</itunes:explicit>\n";
+ print RSS "<language>en-us</language>\n";
+ print RSS "<copyright>Copyright 2005.</copyright>\n";
+ print RSS "<webMaster>mythtv\@localhost</webMaster>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n";
+ print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print RSS "<category>TV Shows</category>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+ print RSS "<image>";
+ print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+ print RSS "<title>MythTV 2 iPod</title>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<width>200</width>\n";
+ print RSS "<height>200</height>\n";
+ print RSS "</image>\n";
+ print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+ print RSS "</channel>\n";
+ print RSS "</rss>\n";
+ close(RSS);
+ if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+ return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+ local $result;
+ $result = $_[0];
+ $result =~ s/&/&amp;/g;
+ $result =~ s/</&lt;/g;
+ $result =~ s/>/&gt;/g;
+ $result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+ $hostname = `hostname`;
+ chomp($hostname);
+
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+ my $found = 0;
+ my @mysql = ('/usr/share/mythtv/mysql.txt',
+ '/usr/share/mythtv/mysql.txt',
+ '/etc/mythtv/mysql.txt',
+ '/usr/local/etc/mythtv/mysql.txt',
+ '$ENV{HOME}/.mythtv/mysql.txt',
+ 'mysql.txt'
+ );
+ foreach my $file (@mysql) {
+ next unless (-e $file);
+ $found = 1;
+ open(CONF, $file) or die "Unable to open $file: $!\n\n";
+ while (my $line = <CONF>) {
+ # Cleanup
+ next if ($line =~ /^\s*#/);
+ $line =~ s/^str //;
+ chomp($line);
+ # Split off the var=val pairs
+ my ($var, $val) = split(/\=/, $line, 2);
+ next unless ($var && $var =~ /\w/);
+ if ($var eq 'DBHostName') {
+ $db_host = $val;
+ }
+ elsif ($var eq 'DBUserName') {
+ $db_user = $val;
+ }
+ elsif ($var eq 'DBName') {
+ $db_name = $val;
+ }
+ elsif ($var eq 'DBPassword') {
+ $db_pass = $val;
+ }
+ # Hostname override
+ elsif ($var eq 'LocalHostName') {
+ $hostname = $val;
+ }
+ }
+ close CONF;
+ }
+ die "Unable to locate mysql.txt: $!\n\n" unless ($found && $db_host);
+ return 0;
+}
+
+sub promptUser {
+ local($promptString,$defaultValue) = @_;
+ if ($defaultValue) {
+ print $promptString, "[", $defaultValue, "]: ";
+ } else {
+ print $promptString, ": ";
+ }
+
+ $| = 1; # force a flush after our print
+ $_ = <STDIN>; # get the input from STDIN (presumably the keyboard)
+ chomp;
+ if ("$defaultValue") {
+ return $_ ? $_ : $defaultValue; # return $_ if it has a value
+ } else {
+ return $_;
+ }
+}
+
+sub DoSetup {
+ print "\nNot ready yet. How do you send the cd command from perl?\n";
+ return 0;
+}
diff --git a/abs/not_built/extra/myth2ipod/myth2ipod-userjob.sh b/abs/not_built/extra/myth2ipod/myth2ipod-userjob.sh
new file mode 100755
index 0000000..9ed65b2
--- /dev/null
+++ b/abs/not_built/extra/myth2ipod/myth2ipod-userjob.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+. /etc/profile
+#su mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" >/tmp/logfile"
+su mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" "
+#or to also use commercial flagging cutlist
+#su mythtv -c "TERM=vt100 /usr/bin/myth2ipod -cut "$1" "$2" >/tmp/logfile"
diff --git a/abs/not_built/extra/myth2ipod/myth2ipod.install b/abs/not_built/extra/myth2ipod/myth2ipod.install
new file mode 100755
index 0000000..367d90f
--- /dev/null
+++ b/abs/not_built/extra/myth2ipod/myth2ipod.install
@@ -0,0 +1,38 @@
+
+pre_install() {
+ mkdir -p /myth/ipodfeed
+ chown mythtv:http /myth/ipodfeed
+}
+
+pre_upgrade() {
+ pre_install
+}
+
+pre_remove() {
+ pre_install
+}
+
+post_install() {
+ . /etc/systemconfig
+ ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed
+ ln -s /myth/ipodfeed/m2iweb.php /myth/ipodfeed/index.php
+ sed -i -e "s/REPLACEME/$hostname/g" /usr/bin/myth2ipod
+ chown -R mythtv:http /myth/ipodfeed
+ /usr/bin/myth2ipod -rebuild
+}
+
+post_upgrade() {
+ /usr/bin/myth2ipod -rebuild
+}
+
+post_remove() {
+ rm -fr /data/srv/httpd/htdocs/ipodfeed
+ rm -rf /myth/ipodfeed/m2iweb.php
+ rm -rf /myth/ipodfeed/index.php
+ # don't delete content that the user may still want, so leave /myth/ipodfeed
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/netkit-bsd-finger/LICENSE b/abs/not_built/extra/netkit-bsd-finger/LICENSE
new file mode 100644
index 0000000..7825451
--- /dev/null
+++ b/abs/not_built/extra/netkit-bsd-finger/LICENSE
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 1989 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Tony Nardo of the Johns Hopkins University/Applied Physics Lab.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
diff --git a/abs/not_built/extra/netkit-bsd-finger/PKGBUILD b/abs/not_built/extra/netkit-bsd-finger/PKGBUILD
new file mode 100644
index 0000000..06a45cc
--- /dev/null
+++ b/abs/not_built/extra/netkit-bsd-finger/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 35715 2009-04-16 03:28:17Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=netkit-bsd-finger
+pkgver=0.17
+pkgrel=4
+pkgdesc="bsd-finger ported to Linux"
+arch=('i686' 'x86_64')
+url="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
+license=('BSD')
+depends=('glibc' 'xinetd')
+backup=('etc/xinetd.d/finger')
+source=(ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/bsd-finger-$pkgver.tar.gz finger.xinetd LICENSE)
+md5sums=('52bf281aac8814bf56cdc92f7661ee75' 'a8682004dc8dee356065162bde892b47'\
+ '5fc568418a0379fc3a358ed1c2523b44')
+
+build() {
+ cd $srcdir/bsd-finger-$pkgver
+ install -d $pkgdir/usr/{bin,sbin} $pkgdir/usr/share/man/{man1,man8}
+ ./configure --prefix=/usr || return 1
+ sed -i 's@include <sys/time.h>@include <time.h>@' finger/lprint.c || return 1
+ sed -i 's@include <sys/time.h>@include <time.h>@' finger/sprint.c || return 1
+ make || return 1
+ make INSTALLROOT=$pkgdir MANDIR=/usr/share/man install || return 1
+ install -D -m644 $srcdir/finger.xinetd $pkgdir/etc/xinetd.d/finger || return 1
+ install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/abs/not_built/extra/netkit-bsd-finger/finger.xinetd b/abs/not_built/extra/netkit-bsd-finger/finger.xinetd
new file mode 100644
index 0000000..cc9a8b1
--- /dev/null
+++ b/abs/not_built/extra/netkit-bsd-finger/finger.xinetd
@@ -0,0 +1,8 @@
+service finger
+{
+ socket_type = stream
+ wait = no
+ user = nobody
+ server = /usr/sbin/in.fingerd
+ disable = yes
+}
diff --git a/abs/not_built/extra/numlockx/PKGBUILD b/abs/not_built/extra/numlockx/PKGBUILD
new file mode 100644
index 0000000..172cceb
--- /dev/null
+++ b/abs/not_built/extra/numlockx/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 19225 2008-11-17 22:12:15Z thayer $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=numlockx
+pkgver=1.1
+pkgrel=4
+pkgdesc="Turns on the numlock key in X11"
+arch=('i686' 'x86_64')
+license=('MIT')
+url="http://ktown.kde.org/~seli/numlockx/"
+depends=('libxtst')
+source=(http://ktown.kde.org/~seli/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('127d9dfbbbe6dbec62cc78db340f913c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr x_includes=/usr/include/X11 \
+ x_libraries=/usr/lib || return 1
+ make || return 1
+ make prefix=$pkgdir/usr install || return 1
+
+ # Install the custom MIT license
+ install -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE || return 1
+}
diff --git a/abs/not_built/extra/perl-time-hires/PKGBUILD b/abs/not_built/extra/perl-time-hires/PKGBUILD
new file mode 100644
index 0000000..2e01636
--- /dev/null
+++ b/abs/not_built/extra/perl-time-hires/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 82203 2010-06-09 09:42:03Z jgc $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: mezcal <fila at pruda dot com>
+
+pkgname=perl-time-hires
+pkgver=1.9721
+pkgrel=2
+pkgdesc="Perl module: high resolution time, sleep, and alarm"
+arch=('i686' 'x86_64')
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/Time-HiRes/"
+depends=('perl')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-${pkgver}.tar.gz)
+md5sums=('bf09911a36b9481537c8e0d28fbb3aaf')
+
+build() {
+ cd "${srcdir}/Time-HiRes-${pkgver}"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make test || return 1
+ make install DESTDIR="${pkgdir}" || return 1
+}
+
diff --git a/abs/not_built/extra/perl-yaml/PKGBUILD b/abs/not_built/extra/perl-yaml/PKGBUILD
new file mode 100644
index 0000000..b2e093c
--- /dev/null
+++ b/abs/not_built/extra/perl-yaml/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-yaml
+_realname=YAML
+pkgver=0.66
+pkgrel=1
+pkgdesc="Perl/CPAN Module YAML : YAML Aint Markup Language tm"
+arch=(i686 x86_64)
+url="http://search.cpan.org/dist/${_realname}/"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://www.cpan.org/authors/id/I/IN/INGY/${_realname}-${pkgver}.tar.gz)
+md5sums=('33a0367cb343e1f0dce20f144d0167ba')
+
+build() {
+ cd ${startdir}/src/${_realname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
diff --git a/abs/not_built/extra/phonon/PKGBUILD b/abs/not_built/extra/phonon/PKGBUILD
new file mode 100644
index 0000000..40b13d2
--- /dev/null
+++ b/abs/not_built/extra/phonon/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=phonon
+pkgname=('phonon' 'phonon-xine' 'phonon-gstreamer')
+pkgver=4.4.2
+pkgrel=3
+arch=('i686' 'x86_64')
+url="http://phonon.kde.org"
+license=('LGPL')
+makedepends=('cmake' 'automoc4' 'qt' 'xine-lib' 'gstreamer0.10-base-plugins' 'mesa')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('c329d924fb75a89a9de8a4d799ff4dcd7ee3302e')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DWITH_PulseAudio=OFF
+ make
+}
+
+package_phonon(){
+ pkgdesc="The multimedia API for KDE4"
+ depends=('qt' 'phonon-backend')
+ cd ${srcdir}/build/phonon
+ make DESTDIR=${pkgdir} install
+ cd ${srcdir}/build/includes
+ make DESTDIR=${pkgdir} install
+ cd ${srcdir}/build
+ install -Dm644 phonon.pc ${pkgdir}/usr/lib/pkgconfig/phonon.pc
+}
+
+package_phonon-gstreamer(){
+ pkgdesc="Phonon Gstreamer backend"
+ depends=('qt' 'gstreamer0.10-base-plugins')
+ provides=('phonon-backend')
+ cd ${srcdir}/build/gstreamer
+ make DESTDIR=${pkgdir} install
+}
+
+package_phonon-xine(){
+ pkgdesc="Phonon Xine backend"
+ depends=('qt' 'xine-lib')
+ provides=('phonon-backend')
+ cd ${srcdir}/build/xine
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/abs/not_built/extra/phpmyadmin/PKGBUILD b/abs/not_built/extra/phpmyadmin/PKGBUILD
new file mode 100644
index 0000000..f3b9be3
--- /dev/null
+++ b/abs/not_built/extra/phpmyadmin/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 34046 2010-12-01 14:03:04Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tobias <tobias@archlinux.org>
+# Committer: Manolis Tzanidakis <manolis@archlinux.org>
+# Contributor: Simon Lackerbauer <calypso "at" strpg.org>
+
+pkgname=phpmyadmin
+pkgver=3.3.8.1
+pkgrel=1
+pkgdesc="A PHP and hence web-based tool to administrate MySQL over the WWW"
+arch=('any')
+url="http://www.phpmyadmin.net"
+license=('GPL')
+depends=('mysql-clients' 'php')
+optdepends=('libmcrypt: to use phpMyAdmin internal authentication'
+ 'python2')
+backup=("etc/webapps/phpmyadmin/.htaccess"
+ "etc/webapps/phpmyadmin/config.inc.php")
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/phpMyAdmin-$pkgver-all-languages.tar.bz2)
+md5sums=('784b2534c443b1cb2328e3b97f0d2a36')
+
+build() {
+ _instdir=${startdir}/pkg/data/srv/httpd/htdocs/phpMyAdmin
+ mkdir -p ${_instdir} $pkgdir/etc/webapps/phpmyadmin
+ cd ${_instdir}
+
+ cp -ra $srcdir/phpMyAdmin-${pkgver}-all-languages/* .
+# echo "deny from all" >$pkgdir/etc/webapps/phpmyadmin/.htaccess
+
+ ln -s /etc/webapps/phpmyadmin/.htaccess ${_instdir}/.htaccess
+ ln -s /etc/webapps/phpmyadmin/config.inc.php ${_instdir}/config.inc.php
+ cp ${_instdir}/config.sample.inc.php $pkgdir/etc/webapps/phpmyadmin/config.inc.php
+ cp ${_instdir}/config.sample.inc.php $pkgdir/etc/webapps/phpmyadmin/
+
+ # apache
+# cat >$pkgdir/etc/webapps/phpmyadmin/apache.example.conf <<EOF
+# Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
+# <Directory "/usr/share/webapps/phpMyAdmin">
+# AllowOverride All
+# Options FollowSymlinks
+# Order allow,deny
+# Allow from all
+# </Directory>
+#EOF
+
+}
+
+
diff --git a/abs/not_built/extra/phpmyadmin/__changelog b/abs/not_built/extra/phpmyadmin/__changelog
new file mode 100644
index 0000000..4ee3bf9
--- /dev/null
+++ b/abs/not_built/extra/phpmyadmin/__changelog
@@ -0,0 +1,2 @@
+Comment out all apache related stuff.
+optdepends: change 'python' to 'python2'
diff --git a/abs/not_built/extra/pmount/PKGBUILD b/abs/not_built/extra/pmount/PKGBUILD
new file mode 100644
index 0000000..bbdb957
--- /dev/null
+++ b/abs/not_built/extra/pmount/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 119797 2011-04-15 09:29:18Z jgc $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=pmount
+pkgver=0.9.23
+pkgrel=2
+pkgdesc="mount removable devices as normal user"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://pmount.alioth.debian.org/"
+backup=('etc/pmount.allow')
+depends=('sysfsutils>=2.0.0-1' 'bash')
+makedepends=('intltool')
+source=(https://alioth.debian.org/frs/download.php/3310/pmount-0.9.23.tar.bz2)
+md5sums=('db19f5bf3151b1b41705ec7bafa439d3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-hal
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/pmount/pmount-dbus-close.patch b/abs/not_built/extra/pmount/pmount-dbus-close.patch
new file mode 100644
index 0000000..06ffa2b
--- /dev/null
+++ b/abs/not_built/extra/pmount/pmount-dbus-close.patch
@@ -0,0 +1,11 @@
+diff -ruN pmount-0.9.13/src/pmount-hal.c pmount-0.9.13-new/src/pmount-hal.c
+--- pmount-0.9.13/src/pmount-hal.c 2006-08-15 22:31:02.000000000 +0200
++++ pmount-0.9.13-new/src/pmount-hal.c 2007-02-05 12:01:09.000000000 +0100
+@@ -361,7 +361,6 @@
+ /* shut down hal connection */
+ libhal_ctx_shutdown( hal_ctx, &error );
+ libhal_ctx_free( hal_ctx );
+- dbus_connection_close( dbus_conn );
+ dbus_connection_unref( dbus_conn );
+
+ /* go */
diff --git a/abs/not_built/extra/pptpclient/PKGBUILD b/abs/not_built/extra/pptpclient/PKGBUILD
new file mode 100644
index 0000000..f94a7d2
--- /dev/null
+++ b/abs/not_built/extra/pptpclient/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Daniel Isenmann <daniel @ archlinux.org>
+# Contributor: Mark Nikkel <mnikkel@gmail.com>
+pkgname=pptpclient
+pkgver=1.7.2
+pkgrel=2
+pkgdesc="Client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP."
+url="http://pptpclient.sourceforge.net/"
+license=('GPL')
+depends=(glibc ppp iproute2)
+backup=(etc/ppp/{options.pptp})
+source=(http://downloads.sourceforge.net/sourceforge/pptpclient/pptp-$pkgver.tar.gz)
+md5sums=('4c3d19286a37459a632c7128c92a9857')
+arch=('i686' 'x86_64')
+
+build() {
+ cd $srcdir/pptp-$pkgver
+ sed -i '/CFLAGS/d' Makefile
+ sed -i 's|\/bin\/ip|\/usr\/sbin\/ip|g' routing.c
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/abs/not_built/extra/procmail/PKGBUILD b/abs/not_built/extra/procmail/PKGBUILD
new file mode 100644
index 0000000..356a147
--- /dev/null
+++ b/abs/not_built/extra/procmail/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 35774 2009-04-17 03:11:54Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=procmail
+pkgver=3.22
+pkgrel=2
+pkgdesc="Highly configurable auto mail processing."
+arch=(i686 x86_64)
+url="http://www.procmail.org"
+license=('GPL' 'custom:Artistic')
+depends=('glibc')
+source=(http://www.procmail.org/${pkgname}-${pkgver}.tar.gz)
+source=(ftp://ftp.psg.com/pub/unix/procmail/procmail-3.22.tar.gz)
+md5sums=('1678ea99b973eb77eda4ecf6acae53f1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ yes n | make LOCKINGTEST="/tmp ." || return 1
+ make BASENAME=$pkgdir/usr MANDIR=$pkgdir/usr/share/man install || return 1
+ install -D -m644 Artistic ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/abs/not_built/extra/pth/PKGBUILD b/abs/not_built/extra/pth/PKGBUILD
new file mode 100644
index 0000000..2e0f66b
--- /dev/null
+++ b/abs/not_built/extra/pth/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35785 2009-04-17 05:07:12Z eric $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=pth
+pkgver=2.0.7
+pkgrel=2
+pkgdesc="The GNU Portable Threads."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/pth/"
+license=('LGPL')
+depends=('glibc')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gnu.org/gnu/pth/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9cb4a25331a4c4db866a31cbe507c793')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/abs/not_built/extra/pyxis/PKGBUILD b/abs/not_built/extra/pyxis/PKGBUILD
new file mode 100644
index 0000000..436db6e
--- /dev/null
+++ b/abs/not_built/extra/pyxis/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Corey Ling <kasuko@gmail.com>
+
+pkgname=pyxis
+pkgver=0.2.3
+pkgrel=2
+pkgdesc="SIRIUS/XM Internet Radio Player for Command Line"
+url="http://www.ionshard.com/pyxis"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('python2-beautifulsoup4' 'mplayer' 'python2')
+makedepends=('python2' 'setuptools')
+optdepends=('python-notify: for OSD notifications')
+conflicts=()
+replaces=()
+backup=()
+options=(!emptydirs)
+install=
+source=( "https://github.com/Kasuko/pyxis/tarball/v$pkgver" "python2.patch" )
+
+build() {
+ cd $srcdir/Kasuko-pyxis*
+ patch -p0 < ../../python2.patch
+ python2 setup.py install --root=$pkgdir
+}
+
+md5sums=('b2f42dc7bb5e2a0a6c0ef0ff6f327790'
+ '3096a832aac9e155cd21e2d108168516')
diff --git a/abs/not_built/extra/pyxis/__changelog b/abs/not_built/extra/pyxis/__changelog
new file mode 100644
index 0000000..2410a63
--- /dev/null
+++ b/abs/not_built/extra/pyxis/__changelog
@@ -0,0 +1,2 @@
+9/3/12 chw
+Changed dep from python-beautiful to python2-beautifulsoup4.
diff --git a/abs/not_built/extra/pyxis/python2.patch b/abs/not_built/extra/pyxis/python2.patch
new file mode 100644
index 0000000..e53cf99
--- /dev/null
+++ b/abs/not_built/extra/pyxis/python2.patch
@@ -0,0 +1,90 @@
+diff --git bin/pyxis bin/pyxis
+index 9b447fb..0350278 100755
+--- bin/pyxis
++++ bin/pyxis
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/Config.py pyxis/Config.py
+index d4d6d29..a36778e 100644
+--- pyxis/Config.py
++++ pyxis/Config.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/Debug.py pyxis/Debug.py
+index d4af851..bf1bd6e 100644
+--- pyxis/Debug.py
++++ pyxis/Debug.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis
+ #Copyright (C) Corey Ling
+ #
+diff --git pyxis/Exceptions.py pyxis/Exceptions.py
+index a1b5f8d..0270a02 100644
+--- pyxis/Exceptions.py
++++ pyxis/Exceptions.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/Interface.py pyxis/Interface.py
+index 3c60a7c..1b0c05c 100644
+--- pyxis/Interface.py
++++ pyxis/Interface.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/Player.py pyxis/Player.py
+index 8e945ba..c467acd 100644
+--- pyxis/Player.py
++++ pyxis/Player.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/ProviderCanada.py pyxis/ProviderCanada.py
+index 4d84952..9ff2aa6 100644
+--- pyxis/ProviderCanada.py
++++ pyxis/ProviderCanada.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/ProviderUSA.py pyxis/ProviderUSA.py
+index 7c30eaf..b1fb950 100644
+--- pyxis/ProviderUSA.py
++++ pyxis/ProviderUSA.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
+diff --git pyxis/Sirius.py pyxis/Sirius.py
+index 30a25d6..75f1fb6 100644
+--- pyxis/Sirius.py
++++ pyxis/Sirius.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #Pyxis and Original Sipie: Sirius Command Line Player
+ #Copyright (C) Corey Ling, Eli Criffield
+ #
diff --git a/abs/not_built/extra/qscintilla/PKGBUILD b/abs/not_built/extra/qscintilla/PKGBUILD
new file mode 100644
index 0000000..b0f83be
--- /dev/null
+++ b/abs/not_built/extra/qscintilla/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgbase=qscintilla
+pkgname=('qscintilla' 'python2-qscintilla')
+pkgver=2.5.1
+pkgrel=3
+license=('GPL')
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.co.uk/software/qscintilla/intro"
+makedepends=('python2-pyqt')
+source=("http://riverbankcomputing.com/static/Downloads/QScintilla2/QScintilla-gpl-${pkgver}.tar.gz"
+ 'configure.py-objdir-support.diff')
+md5sums=('dd7edef5ff674d307057a3c12dbd8fce'
+ '8cf9c06252e2f11ab00e62848e322fd3')
+
+
+build() {
+ cd "${srcdir}/QScintilla-gpl-${pkgver}"
+ patch -Np1 -i "${srcdir}/configure.py-objdir-support.diff"
+
+ cd Qt4
+ qmake qscintilla.pro
+ make
+
+ cd ../designer-Qt4
+ qmake designer.pro INCLUDEPATH+=../Qt4 QMAKE_LIBDIR+=../Qt4
+ make
+
+ cd ../
+ cp -rf Python Python2
+ cd Python
+ python configure.py -n ../Qt4/ -o ../Qt4 -c -p 4
+ make
+
+ cd ../Python2
+ python2 configure.py -n ../Qt4/ -o ../Qt4 -c -p 4
+ make
+}
+
+package_qscintilla() {
+ pkgdesc="A port to Qt4 of Neil Hodgson's Scintilla C++ editor class"
+ depends=('qt')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Qt4"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/designer-Qt4"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
+
+package_python2-qscintilla() {
+ pkgdesc="Python 2 bindings for QScintilla2"
+ depends=('pyqt' 'qscintilla')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Python2"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/qscintilla/configure.py-objdir-support.diff b/abs/not_built/extra/qscintilla/configure.py-objdir-support.diff
new file mode 100644
index 0000000..b595de1
--- /dev/null
+++ b/abs/not_built/extra/qscintilla/configure.py-objdir-support.diff
@@ -0,0 +1,39 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02_configure.dpatch by Torsten Marek <shlomme@debian.org>
+##
+## DP: patch the configure script for the Python bindings to support object dir builds
+
+@DPATCH@
+Index: qscintilla2-2.4.2/Python/configure.py
+===================================================================
+--- qscintilla2-2.4.2.orig/Python/configure.py 2010-01-20 20:56:09.000000000 +0100
++++ qscintilla2-2.4.2/Python/configure.py 2010-01-27 22:54:35.603870417 +0100
+@@ -33,6 +33,7 @@
+ import glob
+ import optparse
+
++src_dir = os.path.dirname(os.path.abspath(__file__))
+
+ # Import SIP's configuration module so that we have access to the error
+ # reporting. Then try and import the configuration modules for both PyQt3 and
+@@ -162,7 +163,7 @@
+ if os.access(sciglobal, os.F_OK):
+ # Get the QScintilla version string.
+ _, sciversstr = sipconfig.read_version(sciglobal, "QScintilla", "QSCINTILLA_VERSION", "QSCINTILLA_VERSION_STR")
+-
++ return # Debian: do not check for the installed version, we're good this way.
+ if glob.glob(os.path.join(opts.qscilibdir, "*qscintilla2*")):
+ # Because we include the Python bindings with the C++ code we can
+ # reasonably force the same version to be used and not bother about
+@@ -232,9 +233,9 @@
+ argv.append(buildfile)
+
+ if pyqt.pyqt_version >= 0x040000:
+- argv.append("sip/qscimod4.sip")
++ argv.append(os.path.join(src_dir, "sip/qscimod4.sip"))
+ else:
+- argv.append("sip/qscimod3.sip")
++ argv.append(os.path.join(src_dir, "sip/qscimod3.sip"))
+
+ os.system(" ".join(argv))
+
diff --git a/abs/not_built/extra/quilt/PKGBUILD b/abs/not_built/extra/quilt/PKGBUILD
new file mode 100644
index 0000000..1775294
--- /dev/null
+++ b/abs/not_built/extra/quilt/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
+
+pkgname=quilt
+pkgver=0.48
+pkgrel=3
+pkgdesc="Manage a series of patches by keeping track of the changes each patch makes."
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/quilt"
+license=('GPL')
+depends=('perl' 'diffstat' 'gawk' 'patch' 'diffutils' 'gettext')
+source=(http://savannah.nongnu.org/download/quilt/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install || return 1
+}
+md5sums=('f77adda60039ffa753f3c584a286f12b')
diff --git a/abs/not_built/extra/read-edid/PKGBUILD b/abs/not_built/extra/read-edid/PKGBUILD
new file mode 100644
index 0000000..6e6b0b3
--- /dev/null
+++ b/abs/not_built/extra/read-edid/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=read-edid
+pkgver=2.0.0
+pkgrel=2
+pkgdesc="Program that can get information from a pnp monitor"
+arch=('i686' 'x86_64')
+url="http://www.polypux.org/projects/read-edid/"
+license=('GPL')
+depends=('libx86')
+source=(http://www.polypux.org/projects/read-edid/read-edid-$pkgver.tar.gz)
+md5sums=('586e7fa1167773b27f4e505edc93274b')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+}
diff --git a/abs/not_built/extra/recstat/PKGBUILD b/abs/not_built/extra/recstat/PKGBUILD
new file mode 100644
index 0000000..6df6627
--- /dev/null
+++ b/abs/not_built/extra/recstat/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=recstat
+pkgver=1
+pkgrel=20
+pkgdesc="pkg to help use the System LEDs for Recording Status"
+arch=('i686' 'x86_64')
+url=""
+depends=('python2' 'python-pyserial')
+license=('GPL')
+source=(recstat recstat.py run)
+md5sums=('626acb8cdd9e5cdb3a502bc12b828067')
+install=recstat.install
+build () {
+# install -D ${srcdir}/recstat ${pkgdir}/etc/rc.d/recstat
+ install -D ${srcdir}/recstat.py ${pkgdir}/usr/bin/recstat.py
+ install -D ${srcdir}/run ${pkgdir}/etc/sv/recstat/run
+}
+md5sums=('7f4ba41b65ed4d693d60d5ea00e8411b'
+ 'df8e54220636cedec89dee95109853ed'
+ '3a7cd3382212650e9233b910ed28d046')
diff --git a/abs/not_built/extra/recstat/recstat b/abs/not_built/extra/recstat/recstat
new file mode 100644
index 0000000..2d72c61
--- /dev/null
+++ b/abs/not_built/extra/recstat/recstat
@@ -0,0 +1,56 @@
+#! /bin/sh
+
+set -e
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DESC="serial port encoder status script"
+NAME=recstat
+DAEMON=/usr/bin/$NAME.py
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Gracefully exit if the package has been removed.
+test -x $DAEMON || exit 0
+
+#
+# Function that starts the daemon/service.
+#
+d_start() {
+ start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON &
+}
+
+#
+# Function that stops the daemon/service.
+#
+d_stop() {
+ kill -9 `cat $PIDFILE`
+}
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: $NAME"
+ d_start
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: $NAME"
+ d_stop
+ echo "."
+ ;;
+ restart|force-reload)
+ echo -n "Stopping $DESC: $NAME"
+ d_stop
+ sleep 1
+ echo "."
+ echo -n "Starting $DESC: $NAME"
+ d_start
+ echo "."
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0 \ No newline at end of file
diff --git a/abs/not_built/extra/recstat/recstat.install b/abs/not_built/extra/recstat/recstat.install
new file mode 100644
index 0000000..ecd58f0
--- /dev/null
+++ b/abs/not_built/extra/recstat/recstat.install
@@ -0,0 +1,13 @@
+# arg 1: the new package version
+post_install() {
+ echo ""
+ echo ""
+ echo ""
+ echo " Edit /usr/bin/recstat.py to fit your tuner setup"
+ echo " http://linhes.org/bugs/projects/lin-hes/wiki/_Using_System_LEDs_for_Recording_Status_"
+ echo " To start this program at boot run add_service.sh recstat "
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/recstat/recstat.py b/abs/not_built/extra/recstat/recstat.py
new file mode 100644
index 0000000..d791cb6
--- /dev/null
+++ b/abs/not_built/extra/recstat/recstat.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python2
+
+import httplib
+import serial,time
+
+mythStatus = "127.0.0.1:6544"
+encoder1 = "Encoder 1 "
+encoder2 = "Encoder 2 "
+recording = "is local on mythtv and is recording"
+watching = "is local on mythtv and is watching"
+
+#Open COM2
+s = serial.Serial(1)
+#Turn off all lights
+s.setDTR(0)
+s.setRTS(0)
+
+while(True):
+ conn = httplib.HTTPConnection(mythStatus)
+ conn.request("GET", "/")
+ r1 = conn.getresponse()
+ results = r1.read()
+
+ if(results.find(encoder1+recording)!=-1):
+ s.setDTR(1)
+ elif (results.find(encoder1+watching) !=-1):
+ s.setDTR(1)
+ else:
+ s.setDTR(0)
+
+ if(results.find(encoder2+recording)!=-1):
+ s.setRTS(1)
+ elif (results.find(encoder2+watching) !=-1):
+ s.setRTS(1)
+ else:
+ s.setRTS(0)
+
+ time.sleep(1)
diff --git a/abs/not_built/extra/recstat/run b/abs/not_built/extra/recstat/run
new file mode 100755
index 0000000..150fdb4
--- /dev/null
+++ b/abs/not_built/extra/recstat/run
@@ -0,0 +1,7 @@
+#!/bin/sh
+exec 2>&1
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+stat_runit "Starting recstat"
+exec /usr/bin/recstat.py
diff --git a/abs/not_built/extra/rrd_stats/PKGBUILD b/abs/not_built/extra/rrd_stats/PKGBUILD
new file mode 100644
index 0000000..b000185
--- /dev/null
+++ b/abs/not_built/extra/rrd_stats/PKGBUILD
@@ -0,0 +1,31 @@
+pkgname=rrd_stats
+pkgver=1
+pkgrel=20
+pkgdesc="graph system stats"
+arch=('i686' 'x86_64')
+url=""
+license=('GPL')
+source=(rrd_stats.tgz)
+depends=('hddtemp' 'sysstat' 'xmbmon' 'rrdtool' 'perl' 'local-website')
+backup=('etc/rrdsettings.cfg' 'data/srv/httpd/htdocs/index-rrd.html'
+ 'data/srv/httpd/htdocs/cgi-bin/rrd.cgi' 'usr/bin/rrd_python.py')
+install=rrd_stats.install
+
+build() {
+
+ /bin/true
+
+}
+
+package() {
+
+ cd ${srcdir}/${pkgname}
+ cp -a * ${pkgdir}/
+ install -d ${pkgdir}/var/lib/rrd
+ echo "RRD files are used by rrd_stats" > ${pkgdir}/var/lib/rrd/README
+ mv ${pkgdir}/data/srv/httpd/htdocs/rrd/index.html ${pkgdir}/data/srv/httpd/htdocs/rrd/index-rrd.html
+ chown -R http:users ${pkgdir}/data/srv/httpd
+ chmod -R 755 ${pkgdir}/data/srv/httpd
+
+}
+md5sums=('1be3b8b684853908aab62aa5130ae30f')
diff --git a/abs/not_built/extra/rrd_stats/rrd_stats.install b/abs/not_built/extra/rrd_stats/rrd_stats.install
new file mode 100644
index 0000000..126e4f0
--- /dev/null
+++ b/abs/not_built/extra/rrd_stats/rrd_stats.install
@@ -0,0 +1,34 @@
+post_install() {
+ PFIX="/data/srv/httpd/htdocs/rrd"
+ if [ ! -e $PFIX/index.html.orig ]
+ then
+ mv $PFIX/index.html $PFIX/index.html.orig
+ ln -s $PFIX/index-rrd.html $PFIX/index.html
+ fi
+
+ ct=`crontab -l`
+ echo $ct | grep -q run_rrd.sh
+ if [ $? != 0 ]
+ then
+ line="*/5 * * * * /usr/bin/run_rrd.sh > /dev/null"
+ (crontab -l; echo "$line") | crontab -
+ fi
+
+
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+pre_remove() {
+ crontab -l | grep -v run_rrd | crontab -
+ PFIX="/data/srv/httpd/htdocs/rrd"
+ if [ -e $PFIX/index.html.orig ]
+ then
+ rm $PFIX/index.html
+ mv $PFIX/index.html.orig $PFIX/index.html
+ fi
+
+}
diff --git a/abs/not_built/extra/rrd_stats/rrd_stats.tgz b/abs/not_built/extra/rrd_stats/rrd_stats.tgz
new file mode 100644
index 0000000..7dde039
--- /dev/null
+++ b/abs/not_built/extra/rrd_stats/rrd_stats.tgz
Binary files differ
diff --git a/abs/not_built/extra/rrd_stats/run_rrd.sh b/abs/not_built/extra/rrd_stats/run_rrd.sh
new file mode 100644
index 0000000..19150a4
--- /dev/null
+++ b/abs/not_built/extra/rrd_stats/run_rrd.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+RRD='hddtemp disk traffic mem cpu usage ups'
+DIR='/usr/bin'
+#
+for x in $RRD
+do
+ $DIR/rrd_${x}.pl >& /dev/null
+done
diff --git a/abs/not_built/extra/sample-media/PKGBUILD b/abs/not_built/extra/sample-media/PKGBUILD
new file mode 100644
index 0000000..9851899
--- /dev/null
+++ b/abs/not_built/extra/sample-media/PKGBUILD
@@ -0,0 +1,37 @@
+pkgname=sample-media
+pkgver=1
+pkgrel=5
+pkgdesc="sample media for testing"
+url=""
+license="public domain"
+depends=(media_dirs)
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+install=sample.install
+provides=("")
+source=()
+md5sums=()
+arch=('i686')
+
+build() {
+cd $startdir/src/
+mkdir -p myth/music
+mkdir -p myth/gallery
+mkdir -p myth/video
+mkdir -p myth/games/snes/roms
+
+
+cp -rp $startdir/audio/* myth/music
+cp -rp $startdir/images/* myth/gallery
+cp -rp $startdir/video/* myth/video
+cp -rp $startdir/rom/* myth/games/snes/roms
+
+cd myth
+chown -R mythtv media
+chmod -R 777 media
+cd $startdir/src
+cp -rp myth $startdir/pkg/
+
+}
diff --git a/abs/not_built/extra/sample-media/audio/05-Hush.mp3 b/abs/not_built/extra/sample-media/audio/05-Hush.mp3
new file mode 100644
index 0000000..e335abb
--- /dev/null
+++ b/abs/not_built/extra/sample-media/audio/05-Hush.mp3
Binary files differ
diff --git a/abs/not_built/extra/sample-media/images/115_1573.jpg b/abs/not_built/extra/sample-media/images/115_1573.jpg
new file mode 100644
index 0000000..f626325
--- /dev/null
+++ b/abs/not_built/extra/sample-media/images/115_1573.jpg
Binary files differ
diff --git a/abs/not_built/extra/sample-media/images/345-1217206791B81W.jpg b/abs/not_built/extra/sample-media/images/345-1217206791B81W.jpg
new file mode 100644
index 0000000..646ae95
--- /dev/null
+++ b/abs/not_built/extra/sample-media/images/345-1217206791B81W.jpg
Binary files differ
diff --git a/abs/not_built/extra/sample-media/images/classic-menugraph.png b/abs/not_built/extra/sample-media/images/classic-menugraph.png
new file mode 100644
index 0000000..bedbd93
--- /dev/null
+++ b/abs/not_built/extra/sample-media/images/classic-menugraph.png
Binary files differ
diff --git a/abs/not_built/extra/sample-media/images/dvr_menugraph.png b/abs/not_built/extra/sample-media/images/dvr_menugraph.png
new file mode 100644
index 0000000..712ab36
--- /dev/null
+++ b/abs/not_built/extra/sample-media/images/dvr_menugraph.png
Binary files differ
diff --git a/abs/not_built/extra/sample-media/images/menu_diagram_color.png b/abs/not_built/extra/sample-media/images/menu_diagram_color.png
new file mode 100644
index 0000000..d364d94
--- /dev/null
+++ b/abs/not_built/extra/sample-media/images/menu_diagram_color.png
Binary files differ
diff --git a/abs/not_built/extra/sample-media/rom/PACMAN.SMC b/abs/not_built/extra/sample-media/rom/PACMAN.SMC
new file mode 100644
index 0000000..7a1f403
--- /dev/null
+++ b/abs/not_built/extra/sample-media/rom/PACMAN.SMC
Binary files differ
diff --git a/abs/not_built/extra/sample-media/sample.install b/abs/not_built/extra/sample-media/sample.install
new file mode 100644
index 0000000..123d060
--- /dev/null
+++ b/abs/not_built/extra/sample-media/sample.install
@@ -0,0 +1,41 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ cd /
+ chown -R mythtv:users /myth
+
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ depmod -A
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/sample-media/video/TripThe1939.mpeg b/abs/not_built/extra/sample-media/video/TripThe1939.mpeg
new file mode 100644
index 0000000..84f9ba3
--- /dev/null
+++ b/abs/not_built/extra/sample-media/video/TripThe1939.mpeg
Binary files differ
diff --git a/abs/not_built/extra/sane/PKGBUILD b/abs/not_built/extra/sane/PKGBUILD
new file mode 100644
index 0000000..951a64b
--- /dev/null
+++ b/abs/not_built/extra/sane/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 162163 2012-06-22 12:59:38Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Simo L. <neotuli@yahoo.com>
+# Contributor: eric <eric@archlinux.org>
+
+pkgname=sane
+pkgver=1.0.22
+pkgrel=9
+pkgdesc="Scanner Access Now Easy"
+url="http://www.sane-project.org/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libtiff>=4.0.0' 'libgphoto2>=2.4.7-2' 'libjpeg>=8' 'libusb-compat' 'libieee1284' 'v4l-utils' 'avahi' 'bash' 'net-snmp')
+makedepends=('texlive-latexextra')
+install=$pkgname.install
+backup=(etc/sane.d/{abaton.conf,agfafocus.conf,apple.conf,artec.conf,artec_eplus48u.conf,avision.conf,bh.conf,canon.conf,canon630u.conf,canon_dr.conf,canon_pp.conf,cardscan.conf,coolscan2.conf,coolscan3.conf,coolscan.conf,dc25.conf,dc210.conf,dc240.conf,dell1600n_net.conf,dll.conf,dmc.conf,epjitsu.conf,epson.conf,epson2.conf,fujitsu.conf,genesys.conf,gphoto2.conf,gt68xx.conf,hp.conf,hp3900.conf,hp4200.conf,hp5400.conf,hpsj5s.conf,hs2p.conf,ibm.conf,kodak.conf,leo.conf,lexmark.conf,ma1509.conf,magicolor.conf,matsushita.conf,microtek.conf,microtek2.conf,mustek.conf,mustek_pp.conf,mustek_usb.conf,mustek_usb2.conf,nec.conf,net.conf,p5.conf,pie.conf,pixma.conf,plustek.conf,plustek_pp.conf,qcam.conf,ricoh.conf,rts8891.conf,s9036.conf,saned.conf,sceptre.conf,sharp.conf,sm3840.conf,snapscan.conf,sp15c.conf,st400.conf,stv680.conf,tamarack.conf,teco1.conf,teco2.conf,teco3.conf,test.conf,u12.conf,umax.conf,umax1220u.conf,umax_pp.conf,xerox_mfp.conf,v4l.conf} etc/xinetd.d/sane)
+source=(ftp://ftp2.sane-project.org/pub/sane/$pkgname-backends-$pkgver/$pkgname-backends-$pkgver.tar.gz
+ 'sane.xinetd'
+ 'libv4l-0.8.3.patch'
+ 'xerox_mfp_fix_usb_devices.patch'
+ 'saned.socket'
+ 'saned.service')
+options=(!libtool)
+md5sums=('fadf56a60f4776bfb24491f66b617cf5'
+ 'da946cc36fb83612162cf9505986d4b2'
+ 'e645a8921cff9f18ffbdabb2ed885060'
+ 'cfef73e7db7c28308914d3db6767d852'
+ 'e57e9e15528f47f5f1b3f1411135ed5d'
+ 'e44bd4c994a52d6f472463d1eb0a03be')
+
+build() {
+ cd "${srcdir}/${pkgname}-backends-${pkgver}"
+
+ patch -p1 -i "${srcdir}"/libv4l-0.8.3.patch
+ # fix https://bugs.archlinux.org/task/26114
+ patch -Np1 -i "${srcdir}"/xerox_mfp_fix_usb_devices.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-docdir=/usr/share/doc/sane \
+ --enable-avahi \
+ --enable-pthread \
+ --disable-rpath \
+ --disable-locking
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-backends-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ # fix hp officejets
+ echo "#hpaio" >> "${pkgdir}/etc/sane.d/dll.conf"
+ # install udev files
+ install -D -m0644 tools/udev/libsane.rules \
+ "${pkgdir}/usr/lib/udev/rules.d/53-sane.rules"
+ # fix udev rules
+ sed -i 's|NAME="%k", ||g' "${pkgdir}/usr/lib/udev/rules.d/53-sane.rules"
+
+ # install xinetd file
+ install -D -m644 "${srcdir}/sane.xinetd" "${pkgdir}/etc/xinetd.d/sane"
+
+ # Install the pkg-config file
+ install -D -m644 tools/sane-backends.pc \
+ "${pkgdir}/usr/lib/pkgconfig/sane-backends.pc"
+ # install systemd files
+ install -D -m644 ${srcdir}/saned.socket \
+ "${pkgdir}/usr/lib/systemd/system/saned.socket"
+ install -D -m644 ${srcdir}/saned.service \
+ "${pkgdir}/usr/lib/systemd/system/saned@.service"
+}
diff --git a/abs/not_built/extra/sane/libv4l-0.8.3.patch b/abs/not_built/extra/sane/libv4l-0.8.3.patch
new file mode 100644
index 0000000..4e240e0
--- /dev/null
+++ b/abs/not_built/extra/sane/libv4l-0.8.3.patch
@@ -0,0 +1,64 @@
+From 26c69b228b29f612faf4b0cc85db969ee7cc4ea6 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Mon, 14 Mar 2011 13:35:05 +0100
+Subject: [PATCH] patch: v4l
+
+Squashed commit of the following:
+
+commit 23381932c76846191b42a48e505b37cd74711265
+Author: Julien BLACHE <jb@jblache.org>
+Date: Wed Feb 16 19:37:43 2011 +0100
+
+ Fix v4l build with libv4l 0.8.3+
+
+ (cherry picked from commit c5ca46c2d1be78c651afb843cc834cf2b5b24953)
+
+ Conflicts:
+
+ ChangeLog
+
+ Signed-off-by: Nils Philippsen <nils@redhat.com>
+---
+ backend/v4l.c | 3 +--
+ backend/v4l.h | 3 ++-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/backend/v4l.c b/backend/v4l.c
+index 6510ef0..38595ed 100644
+--- a/backend/v4l.c
++++ b/backend/v4l.c
+@@ -84,9 +84,8 @@
+ #include "../include/sane/sanei_config.h"
+ #define V4L_CONFIG_FILE "v4l.conf"
+
+-#include "v4l.h"
+-
+ #include <libv4l1.h>
++#include "v4l.h"
+
+ static const SANE_Device **devlist = NULL;
+ static int num_devices;
+diff --git a/backend/v4l.h b/backend/v4l.h
+index 588b96e..6aee586 100644
+--- a/backend/v4l.h
++++ b/backend/v4l.h
+@@ -29,6 +29,7 @@
+ #ifndef v4l_h
+ #define v4l_h
+
++#ifndef __LINUX_VIDEODEV_H
+ /* Kernel interface */
+ /* Only the stuff we need. For more features, more defines are needed */
+
+@@ -165,7 +166,7 @@ struct video_channel
+
+
+ /* end of kernel interface */
+-
++#endif /* !__LINUX_VIDEODEV_H */
+
+ #include <../include/sane/sane.h>
+
+--
+1.7.4
+
diff --git a/abs/not_built/extra/sane/sane.install b/abs/not_built/extra/sane/sane.install
new file mode 100644
index 0000000..5ec361e
--- /dev/null
+++ b/abs/not_built/extra/sane/sane.install
@@ -0,0 +1,7 @@
+post_install() {
+ /bin/cat <<THEEND
+NOTE
+----
+Add your user to group 'scanner' to use scanner devices.
+THEEND
+}
diff --git a/abs/not_built/extra/sane/sane.xinetd b/abs/not_built/extra/sane/sane.xinetd
new file mode 100644
index 0000000..b035664
--- /dev/null
+++ b/abs/not_built/extra/sane/sane.xinetd
@@ -0,0 +1,11 @@
+service sane-port
+{
+ port = 6566
+ socket_type = stream
+ wait = no
+ user = root
+ group = scanner
+ server = /usr/sbin/saned
+ # disabled by default!
+ disable = yes
+ }
diff --git a/abs/not_built/extra/sane/saned.service b/abs/not_built/extra/sane/saned.service
new file mode 100644
index 0000000..69e833e
--- /dev/null
+++ b/abs/not_built/extra/sane/saned.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Scanner Service
+
+[Service]
+Group=scanner
+ExecStart=/usr/sbin/saned
+StandardInput=socket
+StandardError=syslog
diff --git a/abs/not_built/extra/sane/saned.socket b/abs/not_built/extra/sane/saned.socket
new file mode 100644
index 0000000..66ef9c9
--- /dev/null
+++ b/abs/not_built/extra/sane/saned.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=saned incoming socket
+
+[Socket]
+ListenStream=6566
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/abs/not_built/extra/sane/xerox_mfp_fix_usb_devices.patch b/abs/not_built/extra/sane/xerox_mfp_fix_usb_devices.patch
new file mode 100644
index 0000000..5ed29b9
--- /dev/null
+++ b/abs/not_built/extra/sane/xerox_mfp_fix_usb_devices.patch
@@ -0,0 +1,67 @@
+commit 5ea227caeacd504b64eef301e83fa63e0a25b3f7
+Author: Alex Belkin <abc@telekom.ru>
+Date: Tue Mar 8 17:57:19 2011 +0300
+
+ keep usb device by default (correct for bug introduced by tcp sub-backend
+
+diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c
+index e08b50f..d4672a7 100644
+--- a/backend/xerox_mfp.c
++++ b/backend/xerox_mfp.c
+@@ -37,10 +37,10 @@
+ static const SANE_Device **devlist = NULL; /* sane_get_devices array */
+ static struct device *devices_head = NULL; /* sane_get_devices list */
+
+-transport available_transports[] = {
++enum { TRANSPORT_USB, TRANSPORT_TCP, TRANSPORTS_MAX };
++transport available_transports[TRANSPORTS_MAX] = {
+ { "usb", usb_dev_request, usb_dev_open, usb_dev_close, usb_configure_device },
+ { "tcp", tcp_dev_request, tcp_dev_open, tcp_dev_close, tcp_configure_device },
+- { 0 }
+ };
+
+ static int resolv_state(int state)
+@@ -824,7 +824,13 @@ free_devices (void)
+ devices_head = NULL;
+ }
+
+-/* SANE API ignores return code of this callback */
++static transport *tr_from_devname(SANE_String_Const devname)
++{
++ if (strncmp("tcp", devname, 3) == 0)
++ return &available_transports[TRANSPORT_TCP];
++ return &available_transports[TRANSPORT_USB];
++}
++
+ static SANE_Status
+ list_one_device (SANE_String_Const devname)
+ {
+@@ -839,12 +845,7 @@ list_one_device (SANE_String_Const devname)
+ return SANE_STATUS_GOOD;
+ }
+
+- for (tr = available_transports; tr->ttype; tr++) {
+- if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+- break;
+- }
+- if (!tr->ttype)
+- return SANE_STATUS_INVAL;
++ tr = tr_from_devname(devname);
+
+ dev = calloc (1, sizeof (struct device));
+ if (dev == NULL)
+@@ -878,13 +879,7 @@ list_one_device (SANE_String_Const devname)
+ static SANE_Status
+ list_conf_devices (UNUSED (SANEI_Config * config), const char *devname)
+ {
+- transport *tr;
+-
+- for (tr = available_transports; tr->ttype; tr++) {
+- if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+- return tr->configure_device(devname, list_one_device);
+- }
+- return SANE_STATUS_INVAL;
++ return tr_from_devname(devname)->configure_device(devname, list_one_device);
+ }
+
+ SANE_Status
diff --git a/abs/not_built/extra/sdl_perl/PKGBUILD b/abs/not_built/extra/sdl_perl/PKGBUILD
new file mode 100644
index 0000000..82552e8
--- /dev/null
+++ b/abs/not_built/extra/sdl_perl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 85950 2010-07-22 19:09:33Z kevin $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=sdl_perl
+_realname=SDL_Perl
+pkgver=2.2.6
+pkgrel=4
+pkgdesc="A Perl wrapper for SDL"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://sdl.perl.org"
+depends=('perl>=5.10.1' 'sdl_net' 'sdl_ttf' 'sdl_image>=1.2.8' 'sdl_mixer>=1.2.10'
+ 'mesa' 'sdl_gfx>=2.0.20' 'smpeg')
+makedepends=('perl-yaml')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/K/KT/KTHAKORE/${_realname}-v${pkgver}.tar.gz)
+md5sums=('445950ca7b9991f34ec792bbac8386b6')
+
+build() {
+ cd "${srcdir}/${_realname}-v${pkgver}"
+ # install module in vendor directories
+ perl Build.PL installdirs=vendor destdir="${pkgdir}" \
+ --config man1ext=1p --config man3ext=3pm || return 1
+ perl Build || return 1
+ perl Build install || return 1
+}
diff --git a/abs/not_built/extra/sdl_sound/PKGBUILD b/abs/not_built/extra/sdl_sound/PKGBUILD
new file mode 100644
index 0000000..cf47cae
--- /dev/null
+++ b/abs/not_built/extra/sdl_sound/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 22259 2008-12-24 15:26:14Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_sound
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="A library to decode several popular sound file formats, such as .WAV and .MP3"
+arch=('i686' 'x86_64')
+url="http://icculus.org/SDL_sound/"
+license=('LGPL')
+depends=('sdl' 'libmikmod' 'libvorbis' 'flac' 'speex' 'smpeg')
+options=('!libtool')
+source=(http://icculus.org/SDL_sound/downloads/SDL_sound-$pkgver.tar.gz
+ flac.patch)
+md5sums=('aa09cd52df85d29bee87a664424c94b5'
+ '302aa9dc94cc71dd3339ca3177d36e1c')
+
+build() {
+ cd ${srcdir}/SDL_sound-${pkgver}
+
+ CFLAGS="$CFLAGS -I/usr/include/smpeg" \
+ CXXFLAGS="$CXXFLAGS -I/usr/include/smpeg" \
+ ./configure --prefix=/usr
+
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/abs/not_built/extra/sdl_sound/flac.patch b/abs/not_built/extra/sdl_sound/flac.patch
new file mode 100644
index 0000000..d0ed491
--- /dev/null
+++ b/abs/not_built/extra/sdl_sound/flac.patch
@@ -0,0 +1,126 @@
+diff -u -r SDL_sound-1.0.1/configure.in SDL_sound-1.0.1-flac/configure.in
+--- SDL_sound-1.0.1/configure.in 2003-10-12 20:49:54.000000000 +0200
++++ SDL_sound-1.0.1-flac/configure.in 2006-12-11 20:43:46.546583251 +0100
+@@ -155,9 +155,12 @@
+ dnl FLAC developers tend to break their API with every release, so we're
+ dnl checking for the latest-and-greatest here so we don't have to support
+ dnl obsolete versions.
++dnl Starting with FLAC 1.1.3:
++dnl libFLAC supports Ogg FLAC (no more libOggFLAC) so we also need -logg
++dnl the libFLAC .so version is also #defined in FLAC/export.h
+
+ dnl Hooray for shitty autoconf bugs!
+-x="C__seekable_stream_decoder_process_single"
++x="C__stream_decoder_process_single"
+ flcsym="FLA$x"
+ dnl Check for libFLAC
+ AC_ARG_ENABLE(flac,
+@@ -167,7 +170,7 @@
+ AC_CHECK_HEADER(FLAC/stream_decoder.h, have_flac_hdr=yes)
+ AC_CHECK_LIB(FLAC, $flcsym, have_flac_lib=yes)
+ if test x$have_flac_hdr = xyes -a x$have_flac_lib = xyes; then
+- LIBS="$LIBS -lFLAC"
++ LIBS="$LIBS -lFLAC -logg"
+ AC_DEFINE(SOUND_SUPPORTS_FLAC)
+ fi
+ fi
+diff -u -r SDL_sound-1.0.1/decoders/flac.c SDL_sound-1.0.1-flac/decoders/flac.c
+--- SDL_sound-1.0.1/decoders/flac.c 2003-03-10 23:44:14.000000000 +0100
++++ SDL_sound-1.0.1-flac/decoders/flac.c 2006-12-11 20:43:57.880097062 +0100
+@@ -44,6 +44,16 @@
+ #define __SDL_SOUND_INTERNAL__
+ #include "SDL_sound_internal.h"
+
++#include <FLAC/export.h>
++
++/* FLAC 1.1.3 has FLAC_API_VERSION_CURRENT == 8 */
++#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
++#define LEGACY_FLAC
++#else
++#undef LEGACY_FLAC
++#endif
++
++#ifdef LEGACY_FLAC
+ #include <FLAC/seekable_stream_decoder.h>
+
+ #define D_END_OF_STREAM FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM
+@@ -80,6 +90,34 @@
+ typedef FLAC__SeekableStreamDecoderSeekStatus d_seek_status_t;
+ typedef FLAC__SeekableStreamDecoderTellStatus d_tell_status_t;
+ typedef FLAC__SeekableStreamDecoderLengthStatus d_length_status_t;
++#else
++#include <FLAC/stream_decoder.h>
++
++#define D_END_OF_STREAM FLAC__STREAM_DECODER_END_OF_STREAM
++
++#define d_new() FLAC__stream_decoder_new()
++#define d_process_metadata(x) FLAC__stream_decoder_process_until_end_of_metadata(x)
++#define d_process_one_frame(x) FLAC__stream_decoder_process_single(x)
++#define d_get_state(x) FLAC__stream_decoder_get_state(x)
++#define d_finish(x) FLAC__stream_decoder_finish(x)
++#define d_delete(x) FLAC__stream_decoder_delete(x)
++
++typedef FLAC__StreamDecoder decoder_t;
++typedef FLAC__StreamDecoderReadStatus d_read_status_t;
++
++#define D_SEEK_STATUS_OK FLAC__STREAM_DECODER_SEEK_STATUS_OK
++#define D_SEEK_STATUS_ERROR FLAC__STREAM_DECODER_SEEK_STATUS_ERROR
++#define D_TELL_STATUS_OK FLAC__STREAM_DECODER_TELL_STATUS_OK
++#define D_TELL_STATUS_ERROR FLAC__STREAM_DECODER_TELL_STATUS_ERROR
++#define D_LENGTH_STATUS_OK FLAC__STREAM_DECODER_LENGTH_STATUS_OK
++#define D_LENGTH_STATUS_ERROR FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR
++
++#define d_seek_absolute(x, y) FLAC__stream_decoder_seek_absolute(x, y)
++
++typedef FLAC__StreamDecoderSeekStatus d_seek_status_t;
++typedef FLAC__StreamDecoderTellStatus d_tell_status_t;
++typedef FLAC__StreamDecoderLengthStatus d_length_status_t;
++#endif
+
+ #define D_WRITE_CONTINUE FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE
+ #define D_READ_END_OF_STREAM FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM
+@@ -141,9 +179,15 @@
+ } /* free_flac */
+
+
++#ifdef LEGACY_FLAC
+ static d_read_status_t read_callback(
+ const decoder_t *decoder, FLAC__byte buffer[],
+ unsigned int *bytes, void *client_data)
++#else
++static d_read_status_t read_callback(
++ const decoder_t *decoder, FLAC__byte buffer[],
++ size_t *bytes, void *client_data)
++#endif
+ {
+ flac_t *f = (flac_t *) client_data;
+ Uint32 retval;
+@@ -400,6 +444,7 @@
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, 0);
+ } /* if */
+
++#ifdef LEGACY_FLAC
+ d_set_read_callback(decoder, read_callback);
+ d_set_write_callback(decoder, write_callback);
+ d_set_metadata_callback(decoder, metadata_callback);
+@@ -410,6 +455,7 @@
+ d_set_eof_callback(decoder, eof_callback);
+
+ d_set_client_data(decoder, f);
++#endif
+
+ f->rw = internal->rw;
+ f->sample = sample;
+@@ -418,7 +464,12 @@
+ f->is_flac = 0 /* !!! FIXME: should be "has_extension", not "0". */;
+
+ internal->decoder_private = f;
++ /* really should check the init return value here: */
++#ifdef LEGACY_FLAC
+ d_init(decoder);
++#else
++ FLAC__stream_decoder_init_stream(decoder, read_callback, seek_callback, tell_callback, length_callback, eof_callback, write_callback, metadata_callback, error_callback, f);
++#endif
+
+ sample->flags = SOUND_SAMPLEFLAG_NONE;
+
diff --git a/abs/not_built/extra/sdlmame/ChangeLog b/abs/not_built/extra/sdlmame/ChangeLog
new file mode 100644
index 0000000..872c595
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/ChangeLog
@@ -0,0 +1,5 @@
+2008-02-13 JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+ * 0.123 version
+
+2008-01-22 JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+ * 0.122u6 version
diff --git a/abs/not_built/extra/sdlmame/PKGBUILD b/abs/not_built/extra/sdlmame/PKGBUILD
new file mode 100644
index 0000000..7e1aabc
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 50675 2011-06-29 12:53:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: robb_force <robb_force@holybuffalo.net>
+# Maintainer: JJDaNiMoTh <jjdanimoth@gmail.com>
+
+_patchlevel=0
+_basever=0.143
+
+pkgname=sdlmame
+if [ ${_patchlevel} -ne 0 ]; then
+ pkgver=${_basever}u${_patchlevel}
+else
+ pkgver=${_basever}
+fi
+pkgrel=2
+pkgdesc="A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support."
+url="http://mamedev.org/"
+license=('custom:MAME License')
+arch=('i686' 'x86_64')
+depends=('sdl>=1.2.11' 'libxinerama' 'gconf' 'sdl_ttf' 'gtk2')
+makedepends=('unzip' 'nasm' 'mesa')
+DLAGENTS=('http::/usr/bin/wget -U "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090804 Shiretoko/3.5.2" -c -t 3 --waitretry=3 -O %o %u')
+install=sdlmame.install
+
+for i in `seq 1 ${_patchlevel}`; do
+ _patches="${_patches} sdlmame-${_basever/./}u${i}_diff.zip::http://mamedev.org/updates/${_basever/./}u${i}_diff.zip"
+done
+
+source=("mame${_basever/./}s.zip::http://mamedev.org/downloader.php?file=releases/mame${_basever/./}s.zip"
+ "sdlmame.sh"
+ "extras.tar.gz"
+ ${_patches})
+md5sums=('2d95b9d9f79a97a690f62284e4db0e7e'
+ '3119ccfa1e970eba4467df31208adaf0'
+ '420b61240bf5ae11615ba7c6100ee00d')
+
+build() {
+ cd $srcdir/
+
+ if [ $NOEXTRACT -eq 0 ]; then
+ unzip mame.zip
+ find . -type f -not -name \*.png | xargs perl -pi -e 's/\r\n?/\n/g'
+ for i in `seq 1 ${_patchlevel}`; do
+ patch -p0 -E <${_basever/./}u$i.diff
+ done
+ sed -i 's/-Werror//' makefile
+ sed -i 's/LDFLAGS = -Wl,--warn-common/LDFLAGS = -Wl,--warn-common -Wl,-zmuldefs/' makefile
+ fi
+
+ # Modify the make options based on the user's architecture
+ if [ "$CARCH" == "x86_64" ]; then
+ echo "Compiling for AMD64..."
+ make AMD64=1 PTR64=1
+ make tools AMD64=1 PTR64=1
+ elif [ "$CARCH" == "i686" ]; then
+ make I686=1
+ make tools I686=1
+ else
+ echo "Compiling for i386..."
+ make PM=1
+ make tools PM=1
+ fi
+
+}
+package() {
+ cd $srcdir/
+ # Install the sdlmame script
+ install -Dm755 $srcdir/${pkgname}.sh $pkgdir/usr/bin/${pkgname}
+
+ # Install the applications and the UI font in /usr/share
+ install -Dm755 mame $pkgdir/usr/share/${pkgname}/${pkgname} || \
+ install -Dm755 mame64 $pkgdir/usr/share/${pkgname}/${pkgname}
+
+ install -m755 chdman $pkgdir/usr/share/${pkgname}/chdman
+ install -m755 jedutil $pkgdir/usr/share/${pkgname}/jedutil
+ install -m755 regrep $pkgdir/usr/share/${pkgname}/regrep
+ install -m755 romcmp $pkgdir/usr/share/${pkgname}/romcmp
+ install -m755 testkeys $pkgdir/usr/share/${pkgname}/testkeys
+ install -m755 src2html $pkgdir/usr/share/${pkgname}/src2html
+ install -m755 srcclean $pkgdir/usr/share/${pkgname}/srcclean
+ install -m755 ldverify $pkgdir/usr/share/${pkgname}/ldverify
+ install -m755 ldresample $pkgdir/usr/share/${pkgname}/ldresample
+
+# install -m755 makemeta $pkgdir/usr/share/${pkgname}/makemeta
+# install -m755 runtest $pkgdir/usr/share/${pkgname}/runtest
+# install -m644 ui.bdf $pkgdir/usr/share/${pkgname}/ui.bdf
+
+ # Install the extra bits
+ install -d $pkgdir/usr/share/${pkgname}/{artwork,ctrlr,keymaps,shader}
+ install -d $pkgdir/usr/share/man/man1
+ install -m644 src/osd/sdl/shader/glsl*.*h $pkgdir/usr/share/${pkgname}/shader/
+ install -m644 src/osd/sdl/man/* $pkgdir/usr/share/man/man1/
+
+ install -m644 $srcdir/artwork/* $pkgdir/usr/share/${pkgname}/artwork/
+ install -m644 $srcdir/ctrlr/* $pkgdir/usr/share/${pkgname}/ctrlr/
+ install -m644 src/osd/sdl/keymaps/* $pkgdir/usr/share/${pkgname}/keymaps/
+
+ # Include the license
+ install -Dm644 docs/license.txt $pkgdir/usr/share/licenses/${pkgname}/license.txt
+
+ find $pkgdir -type f -exec strip {} \;
+}
diff --git a/abs/not_built/extra/sdlmame/extras.tar.gz b/abs/not_built/extra/sdlmame/extras.tar.gz
new file mode 100644
index 0000000..ae0bc2a
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/extras.tar.gz
Binary files differ
diff --git a/abs/not_built/extra/sdlmame/mame-0137-wiimote.diff b/abs/not_built/extra/sdlmame/mame-0137-wiimote.diff
new file mode 100644
index 0000000..8f29b8e
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/mame-0137-wiimote.diff
@@ -0,0 +1,424 @@
+diff -BNburp mame-org/makefile mame-wiimote/makefile
+diff -BNburp mame-org/src/osd/sdl/input.c mame-wiimote/src/osd/sdl/input.c
+--- mame-org/src/osd/sdl/input.c 2010-02-28 04:16:40.000000000 +0100
++++ mame-wiimote/src/osd/sdl/input.c 2010-05-07 13:53:59.000000000 +0200
+@@ -17,6 +17,12 @@
+ #include <ctype.h>
+ #include <stddef.h>
+
++// for xinput
++#include <X11/Xlib.h>
++#include <X11/extensions/XInput.h>
++#include <X11/Xutil.h>
++
++
+ // MAME headers
+ #include "emu.h"
+ #include "ui.h"
+@@ -53,6 +59,16 @@ enum
+ #define MAX_POV 4
+ #define MAX_DEVMAP_ENTRIES 16
+
++//For xinput
++#define INVALID_EVENT_TYPE -1
++static int motion_type = INVALID_EVENT_TYPE;
++static int button_press_type = INVALID_EVENT_TYPE;
++static int button_release_type = INVALID_EVENT_TYPE;
++static int key_press_type = INVALID_EVENT_TYPE;
++static int key_release_type = INVALID_EVENT_TYPE;
++static int proximity_in_type = INVALID_EVENT_TYPE;
++static int proximity_out_type = INVALID_EVENT_TYPE;
++
+ //============================================================
+ // MACROS
+ //============================================================
+@@ -86,6 +102,16 @@ struct _mouse_state
+ INT32 buttons[MAX_BUTTONS];
+ };
+
++// state information for a lightgun
++typedef struct _lightgun_state lightgun_state;
++struct _lightgun_state
++{
++ INT32 lX, lY;
++ INT32 buttons[MAX_BUTTONS];
++ XID deviceid; //Xinput device id
++ INT32 maxx,maxy;
++ INT32 minx,miny;
++};
+
+ // state information for a joystick; DirectInput state must be first element
+ typedef struct _joystick_state joystick_state;
+@@ -115,6 +141,7 @@ struct _device_info
+ keyboard_state keyboard;
+ mouse_state mouse;
+ joystick_state joystick;
++ lightgun_state lightgun;
+ };
+ };
+
+@@ -164,10 +191,13 @@ struct _device_map_t
+
+ static device_map_t joy_map;
+ static device_map_t mouse_map;
++static device_map_t lightgun_map;
+ static device_map_t keyboard_map;
+
+ static int sixaxis_mode;
+
++Display *XDisplay;
++
+
+ //============================================================
+ // PROTOTYPES
+@@ -671,6 +703,244 @@ static device_info *devmap_class_registe
+ return devinfo;
+ }
+
++//============================================================
++// WiiMote lightgun stuff
++//============================================================
++
++//Copypasted from xinfo
++XDeviceInfo*
++find_device_info(Display *display,
++ char *name,
++ Bool only_extended)
++{
++ XDeviceInfo *devices;
++ XDeviceInfo *found = NULL;
++ int loop;
++ int num_devices;
++ int len = strlen(name);
++ Bool is_id = True;
++ XID id=0;
++
++ for(loop=0; loop<len; loop++) {
++ if (!isdigit(name[loop])) {
++ is_id = False;
++ break;
++ }
++ }
++
++ if (is_id) {
++ id = atoi(name);
++ }
++
++ devices = XListInputDevices(display, &num_devices);
++
++ for(loop=0; loop<num_devices; loop++) {
++ if ((!only_extended || (devices[loop].use >= IsXExtensionDevice)) &&
++ ((!is_id && strcmp(devices[loop].name, name) == 0) ||
++ (is_id && devices[loop].id == id))) {
++ if (found) {
++ fprintf(stderr,
++ "Warning: There are multiple devices named \"%s\".\n"
++ "To ensure the correct one is selected, please use "
++ "the device ID instead.\n\n", name);
++ } else {
++ found = &devices[loop];
++ }
++ }
++ }
++ return found;
++}
++
++//Copypasted from xinfo
++static int
++register_events(Display *dpy,
++ XDeviceInfo *info,
++ char *dev_name,
++ Bool handle_proximity)
++{
++ int number = 0; /* number of events registered */
++ XEventClass event_list[7];
++ int i;
++ XDevice *device;
++ Window root_win;
++ unsigned long screen;
++ XInputClassInfo *ip;
++
++ screen = DefaultScreen(dpy);
++ root_win = RootWindow(dpy, screen);
++
++ device = XOpenDevice(dpy, info->id);
++
++ if (!device) {
++ fprintf(stderr, "unable to open device %s\n", dev_name);
++ return 0;
++ }
++
++ if (device->num_classes > 0) {
++ for (ip = device->classes, i=0; i<info->num_classes; ip++, i++) {
++ switch (ip->input_class) {
++ case KeyClass:
++ DeviceKeyPress(device, key_press_type, event_list[number]); number++;
++ DeviceKeyRelease(device, key_release_type, event_list[number]); number++;
++ break;
++
++ case ButtonClass:
++ DeviceButtonPress(device, button_press_type, event_list[number]); number++;
++ DeviceButtonRelease(device, button_release_type, event_list[number]); number++;
++ break;
++
++ case ValuatorClass:
++ DeviceMotionNotify(device, motion_type, event_list[number]); number++;
++ fprintf(stderr, "Motion = %i\n",motion_type);
++ if (handle_proximity) {
++ ProximityIn(device, proximity_in_type, event_list[number]); number++;
++ ProximityOut(device, proximity_out_type, event_list[number]); number++;
++ }
++ break;
++
++ default:
++ fprintf(stderr, "unknown class\n");
++ break;
++ }
++ }
++
++ if (XSelectExtensionEvent(dpy, root_win, event_list, number)) {
++ fprintf(stderr, "error selecting extended events\n");
++ return 0;
++ }
++ }
++ return number;
++}
++
++
++
++static void sdlinput_register_lightguns(running_machine *machine)
++{
++ int index;
++ XExtensionVersion *version;
++
++ lightgun_enabled = options_get_bool(mame_options(), OPTION_LIGHTGUN);
++ devmap_init(machine, &lightgun_map, SDLOPTION_LIGHTGUNINDEX, 8, "Lightgun mapping");
++
++ XDisplay = XOpenDisplay(NULL);
++
++ if (XDisplay == NULL) {
++ fprintf(stderr, "Unable to connect to X server\n");
++ return;
++ }
++
++ version = XGetExtensionVersion(XDisplay, INAME);
++
++ if (!version || (version == (XExtensionVersion*) NoSuchExtension)) {
++ fprintf(stderr, "xinput extension not available!\n");
++ return;
++ }
++
++
++ for (index=0; index<8; index++) {
++ XDeviceInfo *info;
++ if (strlen(lightgun_map.map[index].name)!=0) {
++ device_info *devinfo;
++ char *name=lightgun_map.map[index].name;
++ char defname[512];
++ devinfo = devmap_class_register(machine, &lightgun_map, index, &lightgun_list, DEVICE_CLASS_LIGHTGUN);
++ fprintf(stderr, "%i: %s\n",index, name);
++ info=find_device_info(XDisplay, name, 0);
++ if (!info) continue;
++
++ //Grab device info and translate to stuff mame can use
++ if (info->num_classes > 0) {
++ XAnyClassPtr any = (XAnyClassPtr) (info->inputclassinfo);
++ int i;
++ for (i=0; i<info->num_classes; i++) {
++ int button;
++ XValuatorInfoPtr v;
++ XAxisInfoPtr a;
++ int j;
++ XButtonInfoPtr b;
++ switch (any->c_class) {
++ case ButtonClass:
++ b = (XButtonInfoPtr) any;
++ for (button = 0; button < b->num_buttons; button++)
++ {
++ input_item_id itemid;
++ sprintf(defname, "B%d", button + 1);
++ itemid=(input_item_id) (ITEM_ID_BUTTON1+button);
++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.buttons[button], itemid, generic_button_get_state);
++ }
++ break;
++ case ValuatorClass:
++ v = (XValuatorInfoPtr) any;
++ a = (XAxisInfoPtr) ((char *) v + sizeof (XValuatorInfo));
++ for (j=0; j<v->num_axes; j++, a++) {
++ if (j==0) {
++ devinfo->lightgun.maxx=a->max_value;
++ devinfo->lightgun.minx=a->min_value;
++ }
++ if (j==1) {
++ devinfo->lightgun.maxy=a->max_value;
++ devinfo->lightgun.miny=a->min_value;
++ }
++ }
++ break;
++ }
++ any = (XAnyClassPtr) ((char *) any + any->length);
++ }
++ }
++
++
++ sprintf(defname, "X %s", devinfo->name);
++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.lX, ITEM_ID_XAXIS, generic_axis_get_state);
++ sprintf(defname, "Y %s", devinfo->name);
++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.lY, ITEM_ID_YAXIS, generic_axis_get_state);
++
++
++ devinfo->lightgun.deviceid=info->id;
++ if (!info) {
++ fprintf(stderr, "Can't find device %s!\n", lightgun_map.map[index].name);
++ } else {
++ fprintf(stderr, "Device %i: Registered %i events.\n",(int)info->id, register_events(XDisplay, info, lightgun_map.map[index].name, 0));
++ }
++ }
++ }
++ mame_printf_verbose("Lightgun: End initialization\n");
++}
++
++device_info *get_lightgun_info_for_deviceid(XID deviceid) {
++ device_info *devinfo;
++ int index;
++ //Find lightgun according to device id
++ for (index=0; ; index++) {
++ devinfo = generic_device_find_index(lightgun_list, index);
++ if (devinfo==NULL) break;
++ if (devinfo->lightgun.deviceid==deviceid) break;
++ }
++ return devinfo;
++}
++
++int normalize_absolute_axis(int raw, int rawmin, int rawmax)
++{
++ int center = (rawmax + rawmin) / 2;
++
++ // make sure we have valid data
++ if (rawmin >= rawmax)
++ return raw;
++
++ // above center
++ if (raw >= center)
++ {
++ int result = (long)(raw - center) * (long)INPUT_ABSOLUTE_MAX / (long)(rawmax - center);
++ return MIN(result, INPUT_ABSOLUTE_MAX);
++ }
++
++ // below center
++ else
++ {
++ int result = -((long)(center - raw) * (long)-INPUT_ABSOLUTE_MIN / (long)(center - rawmin));
++ return MAX(result, INPUT_ABSOLUTE_MIN);
++ }
++}
++
+
+ //============================================================
+ // sdlinput_register_joysticks
+@@ -1115,6 +1385,9 @@ void sdlinput_init(running_machine *mach
+ // register the mice
+ sdlinput_register_mice(machine);
+
++ // register the lightguns
++ sdlinput_register_lightguns(machine);
++
+ if (machine->debug_flags & DEBUG_FLAG_OSD_ENABLED)
+ {
+ mame_printf_warning("Debug Build: Disabling input grab for -debug\n");
+@@ -1131,6 +1404,7 @@ void sdlinput_init(running_machine *mach
+ device_list_reset_devices(keyboard_list);
+ device_list_reset_devices(mouse_list);
+ device_list_reset_devices(joystick_list);
++ device_list_reset_devices(lightgun_list);
+
+ }
+
+@@ -1248,6 +1522,7 @@ void sdlinput_poll(running_machine *mach
+ device_info *devinfo;
+ SDL_Event event;
+ int index;
++ XEvent xevent;
+
+ // only for SDLMAME_EVENTS_IN_WORKER_THREAD
+ SDL_Event loc_event_buf[MAX_BUF_EVENTS];
+@@ -1263,6 +1538,21 @@ void sdlinput_poll(running_machine *mach
+ devinfo->mouse.lY = 0;
+ }
+
++ //Get XInput events
++ while (XPending(XDisplay)!=0) {
++ XNextEvent(XDisplay, &xevent);
++ if (xevent.type==motion_type) {
++ XDeviceMotionEvent *motion = (XDeviceMotionEvent *) &xevent;
++ devinfo=get_lightgun_info_for_deviceid(motion->deviceid);
++ devinfo->lightgun.lX=normalize_absolute_axis(motion->axis_data[0], devinfo->lightgun.minx, devinfo->lightgun.maxx);
++ devinfo->lightgun.lY=normalize_absolute_axis(motion->axis_data[1], devinfo->lightgun.miny, devinfo->lightgun.maxy);
++ } else if (xevent.type==button_press_type || xevent.type==button_release_type) {
++ XDeviceButtonEvent *button = (XDeviceButtonEvent *) &xevent;
++ devinfo=get_lightgun_info_for_deviceid(button->deviceid);
++ devinfo->lightgun.buttons[button->button]=(xevent.type==button_press_type)?0x80:0;
++ }
++ }
++
+ if (SDLMAME_EVENTS_IN_WORKER_THREAD)
+ {
+ osd_lock_acquire(input_lock);
+diff -BNburp mame-org/src/osd/sdl/osdsdl.h mame-wiimote/src/osd/sdl/osdsdl.h
+--- mame-org/src/osd/sdl/osdsdl.h 2010-02-12 14:42:32.000000000 +0100
++++ mame-wiimote/src/osd/sdl/osdsdl.h 2010-05-07 08:53:34.000000000 +0200
+@@ -130,3 +130,4 @@ void sdlaudio_init(running_machine *mach
+ extern int sdl_num_processors;
+
+ #endif
++#define SDLOPTION_LIGHTGUNINDEX "lightgun_index"
+diff -BNburp mame-org/src/osd/sdl/sdlmain.c mame-wiimote/src/osd/sdl/sdlmain.c
+--- mame-org/src/osd/sdl/sdlmain.c 2010-02-13 12:19:16.000000000 +0100
++++ mame-wiimote/src/osd/sdl/sdlmain.c 2010-05-07 08:54:03.000000000 +0200
+@@ -190,6 +190,17 @@ static const options_entry mame_sdl_opti
+ { SDLOPTION_JOYINDEX "8", SDLOPTVAL_AUTO, 0, "name of joystick mapped to joystick #8" },
+ { SDLOPTION_SIXAXIS, "0", OPTION_BOOLEAN, "Use special handling for PS3 Sixaxis controllers" },
+
++ { NULL, NULL, OPTION_HEADER, "SDL LIGHTGUN MAPPING" },
++ { SDLOPTION_LIGHTGUNINDEX "1", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #1" },
++ { SDLOPTION_LIGHTGUNINDEX "2", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #2" },
++ { SDLOPTION_LIGHTGUNINDEX "3", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #3" },
++ { SDLOPTION_LIGHTGUNINDEX "4", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #4" },
++ { SDLOPTION_LIGHTGUNINDEX "5", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #5" },
++ { SDLOPTION_LIGHTGUNINDEX "6", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #6" },
++ { SDLOPTION_LIGHTGUNINDEX "7", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #7" },
++ { SDLOPTION_LIGHTGUNINDEX "8", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #8" },
++
++
+ #if (SDL_VERSION_ATLEAST(1,3,0))
+ { NULL, NULL, OPTION_HEADER, "SDL MOUSE MAPPING" },
+ { SDLOPTION_MOUSEINDEX "1", SDLOPTVAL_AUTO, 0, "name of mouse mapped to mouse #1" },
+diff -BNburp mame-org/src/osd/sdl/window.c mame-wiimote/src/osd/sdl/window.c
+--- mame-org/src/osd/sdl/window.c 2010-02-12 07:40:12.000000000 +0100
++++ mame-wiimote/src/osd/sdl/window.c 2010-05-07 08:54:54.000000000 +0200
+@@ -659,8 +659,17 @@ static void sdlwindow_update_cursor_stat
+ }
+
+ #else
++ //Hack for wii-lightguns: they stop working with a grabbed mouse; even a ShowCursor(SDL_DISABLE) already
++ //does this. To make the cursor disappear, we'll just set an empty cursor image.
++ unsigned char data[]={0,0,0,0,0,0,0,0};
++ SDL_Cursor *c;
++ c=SDL_CreateCursor(data, data, 8, 8, 0, 0);
++ SDL_SetCursor(c);
++
++
+ // do not do mouse capture if the debugger's enabled to avoid
+ // the possibility of losing control
++/*
+ if (!(machine->debug_flags & DEBUG_FLAG_OSD_ENABLED))
+ {
+ if ( window->fullscreen || sdlinput_should_hide_mouse(machine) )
+@@ -680,6 +689,7 @@ static void sdlwindow_update_cursor_stat
+ }
+ }
+ }
++*/
+ #endif
+ }
+
diff --git a/abs/not_built/extra/sdlmame/sdlmame.install b/abs/not_built/extra/sdlmame/sdlmame.install
new file mode 100644
index 0000000..6103018
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/sdlmame.install
@@ -0,0 +1,29 @@
+# Message displayed for a fresh install.
+post_install()
+{
+ echo ""
+ echo "***************************************************************"
+ echo " SDLMAME and the additional MAME utilities have been installed"
+ echo " in /usr/share/sdlmame However, SDLMAME can be run by"
+ echo " typing sdlmame and it's options. Try running SDLMAME with"
+ echo " these options:"
+ echo " sdlmame <rom> -nowindow -noswitchres"
+ echo "***************************************************************"
+ echo ""
+}
+
+# Message for an update.
+post_upgrade()
+{
+ echo ""
+ echo "***************************************************************"
+ echo " SDLMAME has been updated. If you are upgrading directly from"
+ echo " 0.117 or earlier, you must delete all .cfg files and"
+ echo " re-configure your controllers. You should also run"
+ echo " 'SDLMAME --newini' to force the script to create a new ini"
+ echo " file with default settings at ~/.mame/sdlmame.ini"
+ echo " since there may be new ini options."
+ echo "***************************************************************"
+ echo ""
+}
+
diff --git a/abs/not_built/extra/sdlmame/sdlmame.sh b/abs/not_built/extra/sdlmame/sdlmame.sh
new file mode 100644
index 0000000..38b4870
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/sdlmame.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# Create a variable equal to $HOME that will be used later in the ini creation
+home=('$HOME')
+
+if [ "$1" != "" ] && [ "$1" = "--newini" ]; then
+ echo "Rebuilding the ini file at $HOME/.mame/sdlmame.ini"
+ echo "Modify this file for permanent changes to your SDLMAME"
+ echo "options and paths before running SDLMAME again."
+ cd $HOME/.mame
+ if [ -e sdlmame.ini ]; then
+ echo "Your old ini file has been renamed to sdlmameini.bak"
+ mv sdlmame.ini sdlmameini.bak
+ fi
+ /usr/share/sdlmame/sdlmame \
+ -artpath "$home/.mame/artwork;artwork" \
+ -ctrlrpath "$home/.mame/ctrlr;ctrlr" \
+ -inipath $home/.mame/ini \
+ -rompath $home/.mame/roms \
+ -samplepath $home/.mame/samples \
+ -cfg_directory $home/.mame/cfg \
+ -comment_directory $home/.mame/comments \
+ -diff_directory $home/.mame/diff \
+ -input_directory $home/.mame/inp \
+ -memcard_directory $home/.mame/memcard \
+ -nvram_directory $home/.mame/nvram \
+ -snapshot_directory $home/.mame/snap \
+ -state_directory $home/.mame/sta \
+ -video opengl \
+ -createconfig
+elif [ ! -e $HOME/.mame ]; then
+ echo "Running SDLMAME for the first time..."
+ echo "Creating an ini file for SDLMAME at $HOME/.mame/sdlmame.ini"
+ echo "Modify this file for permanent changes to your SDLMAME"
+ echo "options and paths before running SDLMAME again."
+ mkdir $HOME/.mame
+ mkdir $HOME/.mame/{artwork,cfg,comments,ctrlr,diff,ini,inp,memcard,nvram,samples,snap,sta}
+ cd $HOME/.mame
+ /usr/share/sdlmame/sdlmame \
+ -artpath "$home/.mame/artwork;artwork" \
+ -ctrlrpath "$home/.mame/ctrlr;ctrlr" \
+ -inipath $home/.mame/ini \
+ -rompath $home/.mame/roms \
+ -samplepath $home/.mame/samples \
+ -cfg_directory $home/.mame/cfg \
+ -comment_directory $home/.mame/comments \
+ -diff_directory $home/.mame/diff \
+ -input_directory $home/.mame/inp \
+ -memcard_directory $home/.mame/memcard \
+ -nvram_directory $home/.mame/nvram \
+ -snapshot_directory $home/.mame/snap \
+ -state_directory $home/.mame/sta \
+ -video opengl \
+ -createconfig
+else
+ cd /usr/share/sdlmame
+ ./sdlmame "$@"
+fi
diff --git a/abs/not_built/extra/shepherd/PKGBUILD b/abs/not_built/extra/shepherd/PKGBUILD
new file mode 100644
index 0000000..735fef5
--- /dev/null
+++ b/abs/not_built/extra/shepherd/PKGBUILD
@@ -0,0 +1,17 @@
+# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $
+# Maintainer: Greg Frost <gregfrost1@bigpond.com>
+pkgname=shepherd
+pkgver=1.5.1
+pkgrel=1
+pkgdesc="Australian EPG Grabber."
+license=('unknown')
+arch=('i686')
+depends=('perl-pathtools' 'perl-digest-sha1' 'perl-algorithm-diff'
+ 'perl-javascript' 'perl-list-compare')
+source=(http://www.whuffy.com/shepherd/shepherd)
+
+build() {
+ mkdir -p ${pkgdir}/usr/bin/
+ install -m 0755 shepherd ${pkgdir}/usr/bin/
+}
+md5sums=('ca37aff5606acfebc341525eac825449')
diff --git a/abs/not_built/extra/swh-plugins/PKGBUILD b/abs/not_built/extra/swh-plugins/PKGBUILD
new file mode 100644
index 0000000..69157a1
--- /dev/null
+++ b/abs/not_built/extra/swh-plugins/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 8773 2008-08-16 05:51:00Z eric $
+#Maintainer: Damir Perisa <damir.perisa@bluewin.ch>
+#Contributor: Robert Emil Berge
+
+pkgname=swh-plugins
+pkgver=0.4.15
+pkgrel=1
+pkgdesc="LADSPA Plugin-Collection from plugin.org.uk"
+arch=(i686 x86_64)
+url="http://plugin.org.uk/"
+depends=('fftw' 'ladspa')
+groups=('ladspa-plugins')
+source=(http://plugin.org.uk/releases/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('2fbdccef2462ea553901acd429fa3573')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+#Arch64 fix, -fPIC seems to be the only option
+if [ "$CARCH" = "x86_64" ]; then
+ export CFLAGS="$CFLAGS -fPIC"
+ export CXXFLAGS="$CFLAGS"
+fi
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/not_built/extra/tango-icon-theme/PKGBUILD b/abs/not_built/extra/tango-icon-theme/PKGBUILD
new file mode 100644
index 0000000..9f1dfba
--- /dev/null
+++ b/abs/not_built/extra/tango-icon-theme/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 77764 2010-04-17 16:52:32Z thayer $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+
+pkgname=tango-icon-theme
+pkgver=0.8.90
+pkgrel=2
+pkgdesc="The Tango Desktop Project exists to create a consistent user experience"
+arch=('any')
+url="http://tango.freedesktop.org"
+license=('custom:ccpl-attribution-sharealike-2.5')
+depends=('librsvg')
+makedepends=('imagemagick' 'icon-naming-utils' 'intltool' 'python2' 'perl-xml-libxml')
+source=(http://tango.freedesktop.org/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('0795895d2f20eddcbd2bffe94ed431a6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --enable-png-creation
+ make || return 1
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE" || return 1
+}
+
diff --git a/abs/not_built/extra/tatir/PKGBUILD b/abs/not_built/extra/tatir/PKGBUILD
new file mode 100644
index 0000000..e9d8ab2
--- /dev/null
+++ b/abs/not_built/extra/tatir/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=tatir
+pkgver=1
+pkgrel=4
+pkgdesc="TatIR, the Linux media remote control."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://tatir.dropthetranny.com/"
+depends=('pyusb' 'xautomation')
+source=('tatir.tar.bz2')
+install=tatir.install
+build() {
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/etc/tatir
+# mkdir -p $pkgdir/etc/sv/tatir/supervise
+ cp *.py $pkgdir/usr/bin
+ cp remote_xte.conf $pkgdir/etc/tatir/
+# cp run $pkgdir/etc/sv/tatir/
+}
diff --git a/abs/not_built/extra/tatir/__delete b/abs/not_built/extra/tatir/__delete
new file mode 100644
index 0000000..61aca57
--- /dev/null
+++ b/abs/not_built/extra/tatir/__delete
@@ -0,0 +1 @@
+this pkg is marked to be removed
diff --git a/abs/not_built/extra/tatir/tatir.install b/abs/not_built/extra/tatir/tatir.install
new file mode 100644
index 0000000..aef470a
--- /dev/null
+++ b/abs/not_built/extra/tatir/tatir.install
@@ -0,0 +1,19 @@
+# arg 1: the new package version
+post_install() {
+# add_service.sh tatir
+ /bin/true
+}
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ remove_service.sh tatir
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/not_built/extra/tatir/tatir.tar.bz2 b/abs/not_built/extra/tatir/tatir.tar.bz2
new file mode 100644
index 0000000..1a16a46
--- /dev/null
+++ b/abs/not_built/extra/tatir/tatir.tar.bz2
Binary files differ
diff --git a/abs/not_built/extra/terminal/PKGBUILD b/abs/not_built/extra/terminal/PKGBUILD
new file mode 100644
index 0000000..1acef9d
--- /dev/null
+++ b/abs/not_built/extra/terminal/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 80889 2010-05-22 15:58:57Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=terminal
+pkgver=0.4.5
+pkgrel=1
+pkgdesc="A modern terminal emulator primarly for the Xfce desktop environment"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/projects/terminal/"
+groups=('xfce4')
+depends=('exo>=0.3.107' "vte>=0.24.1" 'dbus-glib>=0.86'
+ 'startup-notification>=0.10' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=terminal.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/0.4/Terminal-${pkgver}.tar.bz2)
+md5sums=('3c707628e2e97c6d9566cd74d400036a')
+
+build() {
+ cd ${srcdir}/Terminal-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/Terminal-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/abs/not_built/extra/terminal/terminal-dont-die-on-dbus-kill.patch b/abs/not_built/extra/terminal/terminal-dont-die-on-dbus-kill.patch
new file mode 100644
index 0000000..e20e45c
--- /dev/null
+++ b/abs/not_built/extra/terminal/terminal-dont-die-on-dbus-kill.patch
@@ -0,0 +1,10 @@
+--- terminal/terminal-dbus.c.orig 2007-01-23 22:25:12.000000000 +0000
++++ terminal/terminal-dbus.c 2007-01-23 22:25:50.000000000 +0000
+@@ -191,6 +191,7 @@ terminal_dbus_register_service (Terminal
+
+ /* register DBus connection with GLib main loop */
+ dbus_connection_setup_with_g_main (connection, NULL);
++ dbus_connection_set_exit_on_disconnect (connection, FALSE);
+
+ if (dbus_bus_request_name (connection, TERMINAL_DBUS_SERVICE, 0, &derror) < 0)
+ {
diff --git a/abs/not_built/extra/terminal/terminal.install b/abs/not_built/extra/terminal/terminal.install
new file mode 100644
index 0000000..21b79d2
--- /dev/null
+++ b/abs/not_built/extra/terminal/terminal.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/abs/not_built/extra/ttf-ms-fonts/PKGBUILD b/abs/not_built/extra/ttf-ms-fonts/PKGBUILD
new file mode 100644
index 0000000..00fd09d
--- /dev/null
+++ b/abs/not_built/extra/ttf-ms-fonts/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: dale <dale@archlinux.org>
+pkgname=ttf-ms-fonts
+pkgver=2.0
+pkgrel=1
+pkgdesc="Un-extracted TTF Fonts from Microsoft"
+arch=(i686 x86_64)
+url="http://corefonts.sourceforge.net/"
+sfpath="http://heanet.dl.sourceforge.net/sourceforge/corefonts/"
+depends=(cabextract xorg-fonts-encodings xorg-font-utils fontconfig)
+install=ttf-ms-fonts.install
+source=($sfpath/andale32.exe $sfpath/arial32.exe $sfpath/arialb32.exe \
+ $sfpath/comic32.exe $sfpath/courie32.exe $sfpath/georgi32.exe \
+ $sfpath/impact32.exe $sfpath/times32.exe $sfpath/trebuc32.exe \
+ $sfpath/verdan32.exe $sfpath/webdin32.exe $sfpath/wd97vwr32.exe)
+md5sums=('cbdc2fdd7d2ed0832795e86a8b9ee19a' '9637df0e91703179f0723ec095a36cb5'\
+ 'c9089ae0c3b3d0d8c4b0a95979bb9ff0' '2b30de40bb5e803a0452c7715fc835d1'\
+ '4e412c772294403ab62fb2d247d85c60' '4d90016026e2da447593b41a8d8fa8bd'\
+ '7907c7dd6684e9bade91cff82683d9d7' 'ed39c8ef91b9fb80f76f702568291bd5'\
+ '0d7ea16cac6261f8513a061fbfcdb2b5' '12d2a75f8156e10607be1eaa8e8ef120'\
+ '230a1d13a365b22815f502eb24d9149b' 'efa72d3ed0120a07326ce02f051e9b42')
+
+build() {
+ mkdir -p $startdir/pkg/tmp/${pkgname}
+ chmod 1777 $startdir/pkg/tmp
+ install -m644 $startdir/src/*.exe $startdir/pkg/tmp/$pkgname
+}
diff --git a/abs/not_built/extra/ttf-ms-fonts/ttf-ms-fonts.install b/abs/not_built/extra/ttf-ms-fonts/ttf-ms-fonts.install
new file mode 100644
index 0000000..043cd88
--- /dev/null
+++ b/abs/not_built/extra/ttf-ms-fonts/ttf-ms-fonts.install
@@ -0,0 +1,55 @@
+# arg 1: the new package version
+post_install() {
+ echo -n "extracting fonts... "
+ for font in tmp/ttf-ms-fonts/*.exe
+ do
+ cabextract --lowercase --directory=tmp/ttf-ms-fonts/ $font -F '*.ttf' >/dev/null 2>&1
+ done
+ cabextract --lowercase --directory=tmp/ttf-ms-fonts/ tmp/ttf-ms-fonts/wd97vwr32.exe -F '*.cab' >/dev/null 2>&1
+ cabextract --lowercase --directory=tmp/ttf-ms-fonts/ tmp/ttf-ms-fonts/viewer1.cab -F '*.ttf' >/dev/null 2>&1
+ mkdir -p usr/share/fonts/TTF
+ : >usr/share/fonts/TTF/msfonts.txt
+ for i in `/bin/ls tmp/ttf-ms-fonts/*.ttf`; do
+ echo `basename $i` >>usr/share/fonts/TTF/msfonts.txt
+ cp $i usr/share/fonts/TTF
+ done
+ echo "done."
+ echo -n "rebuilding font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done."
+ rm -rf tmp/ttf-ms-fonts
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ # remove fonts from their old location
+ rm -rf usr/X11R6/lib/X11/fonts/ttf-ms-fonts
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ #rm -f usr/X11R6/lib/X11/fonts/TTF/
+ [ -f usr/share/fonts/TTF/msfonts.txt ] || return
+ for i in `cat usr/share/fonts/TTF/msfonts.txt`; do
+ rm -f usr/share/fonts/TTF/$i
+ done
+ rm -f usr/share/fonts/TTF/msfonts.txt
+}
+
+# arg 1: the old package version
+post_remove() {
+ echo -n "rebuilding font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done."
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/twinhan-remote/PKGBUILD b/abs/not_built/extra/twinhan-remote/PKGBUILD
new file mode 100644
index 0000000..d7f56b0
--- /dev/null
+++ b/abs/not_built/extra/twinhan-remote/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=twinhan-remote
+pkgver=1
+pkgrel=1
+pkgdesc="Provides usbkbd.ko for older Twinhan remotes."
+replaces=()
+arch=('i686' 'x86_64')
+url=""
+source=('twinhan-remote.conf' 'usbkbd.ko')
+install=twinhan-remote.install
+
+build() {
+ cd ${srcdir}
+ mkdir -p ${pkgdir}/etc/modprobe.d
+ install -D -m644 "twinhan-remote.conf" "${pkgdir}/etc/modprobe.d/"
+ mkdir -p ${pkgdir}/lib/modules/2.6.39-LinHES/kernel/drivers/hid/usbhid/
+ install -D -m644 "usbkbd.ko" "${pkgdir}/lib/modules/2.6.39-LinHES/kernel/drivers/hid/usbhid/"
+}
+md5sums=('3d7cddd5f3433ffe6d4031d1cf9e859d'
+ 'feefbe9b5e4861c9f2faf85b75395ac0')
diff --git a/abs/not_built/extra/twinhan-remote/twinhan-remote.conf b/abs/not_built/extra/twinhan-remote/twinhan-remote.conf
new file mode 100644
index 0000000..e472f04
--- /dev/null
+++ b/abs/not_built/extra/twinhan-remote/twinhan-remote.conf
@@ -0,0 +1,3 @@
+# Disable hid_twinhan
+#
+blacklist hid_twinhan
diff --git a/abs/not_built/extra/twinhan-remote/twinhan-remote.install b/abs/not_built/extra/twinhan-remote/twinhan-remote.install
new file mode 100644
index 0000000..4fa78ad
--- /dev/null
+++ b/abs/not_built/extra/twinhan-remote/twinhan-remote.install
@@ -0,0 +1,19 @@
+KERNEL_NAME=
+KERNEL_VERSION=`/bin/uname -r`
+
+post_install () {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ /sbin/depmod $KERNEL_VERSION
+ # generate init ramdisks
+ echo ">>> Generating ramdisk, using mkinitcpio. Please wait..."
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/abs/not_built/extra/twinhan-remote/usbkbd.ko b/abs/not_built/extra/twinhan-remote/usbkbd.ko
new file mode 100644
index 0000000..6f0cd2c
--- /dev/null
+++ b/abs/not_built/extra/twinhan-remote/usbkbd.ko
Binary files differ
diff --git a/abs/not_built/extra/unetbootin/PKGBUILD b/abs/not_built/extra/unetbootin/PKGBUILD
new file mode 100644
index 0000000..2978b54
--- /dev/null
+++ b/abs/not_built/extra/unetbootin/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Det <nimetonmaili at gmail a-dot com>
+# Contributor: Godane aka Christopher Rogers <slaxemulator@gmail.com>
+
+pkgname=unetbootin
+pkgver=494
+pkgrel=1
+pkgdesc="Allows the creation of bootable Live USB drives for Linux/BSD distributions"
+url="http://unetbootin.sourceforge.net/"
+license="GPL"
+arch=('i686' 'x86_64')
+depends=('syslinux' 'p7zip' 'qt' 'mtools')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-source-${pkgver}.tar.gz)
+md5sums=('e3f01fd88f3aa5d918c60ba0be608e86')
+
+build() {
+ cd "${srcdir}"
+ sed -i '/^RESOURCES/d' unetbootin.pro
+ lupdate unetbootin.pro
+ lrelease unetbootin.pro
+ qmake "DEFINES += NOSTATIC" "RESOURCES -= unetbootin.qrc"
+ make
+}
+
+package() {
+ cd "${srcdir}"
+ mkdir -p "${pkgdir}/usr/sbin"
+ install -m 755 ${pkgname} "${pkgdir}/usr/sbin/${pkgname}"
+ mkdir -p "${pkgdir}/usr/share/${pkgname}"
+ install -m 644 unetbootin_*.qm "${pkgdir}/usr/share/${pkgname}"
+ mkdir -p "${pkgdir}/usr/share/applications/"
+ install -m 644 ${pkgname}.desktop "${pkgdir}/usr/share/applications/"
+ sed -i 's|Exec=/usr/bin/unetbootin|Exec=su -c /usr/sbin/unetbootin|g' "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ sed -i 's|Terminal=false|Terminal=true|g' "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+}
+
diff --git a/abs/not_built/extra/vcdimager/PKGBUILD b/abs/not_built/extra/vcdimager/PKGBUILD
new file mode 100644
index 0000000..2aa79b1
--- /dev/null
+++ b/abs/not_built/extra/vcdimager/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 59903 2009-11-29 16:30:52Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=vcdimager
+pkgver=0.7.23
+pkgrel=7
+pkgdesc="GNU VCDImager is a full-featured mastering suite for authoring disassembling and analyzing Video CD's and Super Video CD's"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.vcdimager.org/"
+depends=('libcdio>=0.82' 'libxml2>=2.7.3' 'popt')
+options=('!libtool' '!emptydirs')
+install=vcdimager.install
+source=(ftp://ftp.gnu.org/gnu/vcdimager/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5e7d80fdbf0037ad20e438f2a9573253')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man --infodir=/usr/share/info || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/not_built/extra/vcdimager/__changelog b/abs/not_built/extra/vcdimager/__changelog
new file mode 100644
index 0000000..701b6bb
--- /dev/null
+++ b/abs/not_built/extra/vcdimager/__changelog
@@ -0,0 +1 @@
+options=!noemptdir
diff --git a/abs/not_built/extra/vcdimager/cdio.patch b/abs/not_built/extra/vcdimager/cdio.patch
new file mode 100644
index 0000000..f7f9e31
--- /dev/null
+++ b/abs/not_built/extra/vcdimager/cdio.patch
@@ -0,0 +1,11 @@
+--- lib/image.c.org 2004-07-15 17:19:01.000000000 +0200
++++ lib/image.c 2004-07-15 17:22:06.000000000 +0200
+@@ -76,7 +76,7 @@
+ }
+
+ int
+-vcd_image_sink_write (VcdImageSink *obj, void *buf, uint32_t lsn)
++vcd_image_sink_write (VcdImageSink *obj, void *buf, lsn_t lsn)
+ {
+ vcd_assert (obj != NULL);
+
diff --git a/abs/not_built/extra/vcdimager/vcdimager.install b/abs/not_built/extra/vcdimager/vcdimager.install
new file mode 100644
index 0000000..faa9748
--- /dev/null
+++ b/abs/not_built/extra/vcdimager/vcdimager.install
@@ -0,0 +1,19 @@
+infodir=/usr/share/info
+filelist=(vcd-info.info.gz vcdimager.info.gz vcdxrip.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/abs/not_built/extra/vlc-nogui/PKGBUILD b/abs/not_built/extra/vlc-nogui/PKGBUILD
new file mode 100644
index 0000000..ccbc1ae
--- /dev/null
+++ b/abs/not_built/extra/vlc-nogui/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Alexsandr Pavlov <kidoz at mail dot ru>
+
+pkgname=vlc-nogui
+pkgver=1.1.13
+pkgrel=1
+pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
+arch=('i686' 'x86_64')
+url="http://www.videolan.org/vlc/"
+license=('GPL')
+depends=('a52dec' 'faad2' 'fluidsynth' 'libmtp' 'libdvbpsi' 'lirc-utils'
+ 'libdca' 'libproxy' 'sdl_image' 'libdvdnav'
+ 'lua' 'libv4l' 'libcddb' 'smbclient' 'libmatroska' 'zvbi'
+ 'taglib' 'sysfsutils' 'libmpcdec' 'ffmpeg' 'xcb-util-keysyms'
+ 'libshout' 'libmad' 'fribidi' 'libmpeg2' 'libmodplug'
+ 'ttf-freefont' 'libxv' 'libass' 'xdg-utils' 'libxpm' 'libupnp')
+makedepends=('alsa-lib' 'avahi' 'jack' 'live-media' 'pkgconfig' 'udev')
+optdepends=('avahi: for service discovery using bonjour protocol'
+ 'libnotify: for notification plugin')
+provides=('vlc')
+conflicts=('vlc' 'vlc-plugin')
+replaces=('vlc' 'vlc-plugin')
+options=('!libtool')
+source=(http://downloads.videolan.org/pub/videolan/vlc/${pkgver}/vlc-${pkgver}.tar.bz2)
+
+build() {
+ cd "${srcdir}/vlc-${pkgver}"
+
+ sed -i -e 's:truetype/freefont:TTF:g' modules/misc/freetype.c
+ ./configure --prefix=/usr \
+ --enable-faad \
+ --enable-v4l \
+ --enable-theora \
+ --enable-flac \
+ --enable-snapshot \
+ --enable-ogg \
+ --enable-shout \
+ --enable-lirc \
+ --enable-pvr \
+ --enable-realrtsp \
+ --disable-rpath \
+ --disable-qt4 \
+ --disable-skins2 \
+ --disable-glx \
+ --with-live555-tree=/usr/lib/live
+ make
+}
+
+package() {
+ cd "${srcdir}/vlc-${pkgver}"
+
+ make DESTDIR=${pkgdir}/ install
+
+ rm -rf ${pkgdir}/usr/share/applications
+ rm -rf ${pkgdir}/usr/share/kde4
+ rm -rf ${pkgdir}/usr/share/icons
+ rm ${pkgdir}/usr/share/vlc/vlc.ico
+}
+md5sums=('9678fb7a04808b6e0de63746d35e4bb1')
diff --git a/abs/not_built/extra/vlc-nogui/__changelog b/abs/not_built/extra/vlc-nogui/__changelog
new file mode 100644
index 0000000..b20cb01
--- /dev/null
+++ b/abs/not_built/extra/vlc-nogui/__changelog
@@ -0,0 +1,2 @@
+2012-01-25: add 'libupnp' 'xcb-util-keysyms' to depends
+ bump to version 1.1.13
diff --git a/abs/not_built/extra/wireshark/PKGBUILD b/abs/not_built/extra/wireshark/PKGBUILD
new file mode 100644
index 0000000..3d6b90e
--- /dev/null
+++ b/abs/not_built/extra/wireshark/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 94904 2010-10-12 06:47:49Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume at alaux dot net>
+# Contributor: Florian Pritz <bluewind at jabber dot ccc dot de>
+pkgname=(wireshark-cli wireshark-gtk)
+pkgbase=wireshark
+pkgver=1.4.1
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL2')
+makedepends=('bison' 'flex' 'gtk2' 'heimdal' 'libpcap' 'bash' 'gnutls' 'libcap')
+url="http://www.wireshark.org/"
+options=(!libtool)
+source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('1719d20a10990e7c2cb261df7021aab6')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ export CFLAGS="-fno-unit-at-a-time ${CFLAGS}"
+
+ ./configure --prefix=/usr --with-ssl
+ make all
+}
+
+package_wireshark-cli() {
+ pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - CLI version"
+ depends=('heimdal' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2')
+ install=wireshark.install
+ conflicts=(wireshark)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ #wireshark uid group is 150
+ chgrp 150 "${pkgdir}/usr/bin/dumpcap"
+ chmod 754 "${pkgdir}/usr/bin/dumpcap"
+ rm "$pkgdir/usr/bin/wireshark"
+}
+
+package_wireshark-gtk() {
+ pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - GTK frontend"
+ depends=('gtk2' 'wireshark-cli')
+ install=wireshark-gtk.install
+ replaces=(wireshark)
+ conflicts=(wireshark)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ install -Dm755 .libs/wireshark "$pkgdir/usr/bin/wireshark"
+ for d in 16 32 48; do
+ install -Dm644 image/hi${d}-app-wireshark.png ${pkgdir}/usr/share/icons/hicolor/${d}x${d}/apps/wireshark.png
+ done
+ install -Dm644 wireshark.desktop ${pkgdir}/usr/share/applications/wireshark.desktop
+}
diff --git a/abs/not_built/extra/wireshark/wireshark-gtk.install b/abs/not_built/extra/wireshark/wireshark-gtk.install
new file mode 100644
index 0000000..6b1b64b
--- /dev/null
+++ b/abs/not_built/extra/wireshark/wireshark-gtk.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/abs/not_built/extra/wireshark/wireshark.install b/abs/not_built/extra/wireshark/wireshark.install
new file mode 100644
index 0000000..8936256
--- /dev/null
+++ b/abs/not_built/extra/wireshark/wireshark.install
@@ -0,0 +1,19 @@
+post_install() {
+ if getent group wireshark >/dev/null 2>&1; then
+ groupmod -g 150 wireshark &>/dev/null
+ else
+ groupadd -g 150 wireshark &>/dev/null
+ fi
+ setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' usr/bin/dumpcap
+ echo "NOTE: To run wireshark as normal user you have to add yourself into wireshark group"
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ if getent group wireshark >/dev/null 2>&1; then
+ groupdel wireshark
+ fi
+}
diff --git a/abs/not_built/extra/wxpython/ChangeLog b/abs/not_built/extra/wxpython/ChangeLog
new file mode 100644
index 0000000..02c759e
--- /dev/null
+++ b/abs/not_built/extra/wxpython/ChangeLog
@@ -0,0 +1,48 @@
+2010-08-21 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.11.0-2
+ * Rebuilt for python2
+
+2010-06-03 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.11.0-1
+ * Upstream update
+
+2010-05-08 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.10.1-2
+ * Rebuilt against wxgtk 2.8.11
+ * Added mediactrl support (close FS#18522)
+
+2009-05-18 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.10.1-1
+ * Upstream update
+ * Added patch for editra
+
+2009-05-05 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.9.2-2
+ * Rebuilt against wxgtk 2.8.10
+
+2009-03-06 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.9.2-1
+ * Upstream update
+
+2008-10-28 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.9.1-1
+ * Upstream update
+ * Python 2.6 rebuild
+
+2008-08-19 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.8.1-1
+ * Upstream update
+
+2008-07-05 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.8.0-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/abs/not_built/extra/wxpython/PKGBUILD b/abs/not_built/extra/wxpython/PKGBUILD
new file mode 100644
index 0000000..b9375cc
--- /dev/null
+++ b/abs/not_built/extra/wxpython/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 88207 2010-08-21 05:14:19Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Andrew Wright <andreww@photism.org>
+
+pkgname=wxpython
+pkgver=2.8.11.0
+pkgrel=2
+pkgdesc="A wxWidgets GUI toolkit for Python"
+arch=('i686' 'x86_64')
+license=('custom:wxWindows')
+url="http://www.wxpython.org"
+depends=('wxgtk' 'python2')
+makedepends=('mesa')
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2 editra-aui.diff)
+md5sums=('63f73aae49e530852db56a31b57529fa' '06c637c34c1570d8c82b870ce19c0622')
+sha1sums=('18982edc236a1d87e4eef018928358c925aa5b17' '077fe341bf8822647934d6b1ea82ce9b0adbf93a')
+
+build() {
+ cd "${srcdir}/wxPython-src-${pkgver}"
+ patch -p1 < ../editra-aui.diff
+ ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=2 --with-opengl --enable-unicode \
+ --enable-graphics_ctx --with-gnomeprint --disable-optimize --enable-mediactrl \
+ --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys
+ cd "${srcdir}/wxPython-src-${pkgver}/wxPython"
+ python2 setup.py WXPORT=gtk2 UNICODE=1 build
+}
+
+package() {
+ cd "${srcdir}/wxPython-src-${pkgver}/wxPython"
+ python2 setup.py WXPORT=gtk2 UNICODE=1 install --root="${pkgdir}"
+ install -D -m644 ../docs/licence.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/not_built/extra/wxpython/editra-aui.diff b/abs/not_built/extra/wxpython/editra-aui.diff
new file mode 100644
index 0000000..afdcf9f
--- /dev/null
+++ b/abs/not_built/extra/wxpython/editra-aui.diff
@@ -0,0 +1,11 @@
+diff -Naur wxPython-src-2.8.11.0-orig/wxPython/setup.py wxPython-src-2.8.11.0/wxPython/setup.py
+--- wxPython-src-2.8.11.0-orig/wxPython/setup.py 2010-06-04 04:15:47.000000000 -0400
++++ wxPython-src-2.8.11.0/wxPython/setup.py 2010-06-04 04:18:36.000000000 -0400
+@@ -893,6 +893,7 @@
+ 'wx.tools.Editra.src.eclib',
+ 'wx.tools.Editra.src.ebmlib',
+ 'wx.tools.Editra.src.extern',
++ 'wx.tools.Editra.src.extern.aui',
+ 'wx.tools.Editra.src.syntax',
+ ]
+
diff --git a/abs/not_built/extra/xalan-java/PKGBUILD b/abs/not_built/extra/xalan-java/PKGBUILD
new file mode 100644
index 0000000..31157a0
--- /dev/null
+++ b/abs/not_built/extra/xalan-java/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
+
+pkgname=xalan-java
+pkgver=2.7.1
+pkgrel=3
+pkgdesc="XSLT processor for transforming XML documents into HTML, text, or other XML document types"
+arch=('any')
+license=('APACHE')
+url="http://xml.apache.org/xalan-j"
+depends=('xerces2-java')
+source=(http://www.apache.org/dist/xml/xalan-j/xalan-j_${pkgver//./_}-bin-2jars.tar.gz)
+md5sums=('3ccda39bcd08b780436dfd2f22fb23d5')
+
+build() {
+ cd ${srcdir}/xalan-j_${pkgver//./_}
+ install -m755 -d ${pkgdir}/usr/share/java
+ install -m644 xalan.jar ${pkgdir}/usr/share/java/ || return 1
+ install -m644 xsltc.jar ${pkgdir}/usr/share/java/ || return 1
+}
+
diff --git a/abs/not_built/extra/xautomation/PKGBUILD b/abs/not_built/extra/xautomation/PKGBUILD
new file mode 100644
index 0000000..9c223ee
--- /dev/null
+++ b/abs/not_built/extra/xautomation/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: raubkopierer <mail[dot]sensenmann[at]gmail[dot]com>
+
+pkgname=xautomation
+pkgver=1.03
+pkgrel=1
+pkgdesc="Controls X from the command line for scripts, and do 'visual scraping' to find things on the screen."
+url="http://hoopajoo.net/projects/xautomation.html"
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(http://hoopajoo.net/static/projects/$pkgname-$pkgver.tar.gz)
+md5sums=('91030079b0ecf96195dd21bcec635cb6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=$startdir/pkg install
+}
+
diff --git a/abs/not_built/extra/xcb-util-keysyms/LICENSE b/abs/not_built/extra/xcb-util-keysyms/LICENSE
new file mode 100644
index 0000000..5e3822c
--- /dev/null
+++ b/abs/not_built/extra/xcb-util-keysyms/LICENSE
@@ -0,0 +1,267 @@
+/* Copyright (C) 2007 Bart Massey
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/*
+ * Copyright (C) 2008-2009 Julien Danjou <julien@danjou.info>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright (C) 2008 Arnaud Fontaine <arnau@debian.org>
+ * Copyright (C) 2007-2008 Vincent Torri <vtorri@univ-evry.fr>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+
+/*
+ * Copyright © 2008 Bart Massey <bart@cs.pdx.edu>
+ * Copyright © 2008 Julien Danjou <julien@danjou.info>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Keith Packard <keithp@keithp.com>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Bart Massey <bart@cs.pdx.edu>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Ian Osgood <iano@quirkster.com>
+ * Copyright © 2008 Jamey Sharp <jamey@minilop.net>
+ * Copyright © 2008 Josh Triplett <josh@freedesktop.org>
+ * Copyright © 2008 Ulrich Eckhardt <doomster@knuut.de>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/* Copyright © 2006 Jamey Sharp.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Copyright © 2006 Ian Osgood
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Copyright © 2000 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/abs/not_built/extra/xcb-util-keysyms/PKGBUILD b/abs/not_built/extra/xcb-util-keysyms/PKGBUILD
new file mode 100644
index 0000000..efec398
--- /dev/null
+++ b/abs/not_built/extra/xcb-util-keysyms/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=xcb-util-keysyms
+pkgver=0.3.8
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding - Standard X key constants and conversion to/from keycodes"
+arch=('i686' 'x86_64')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.7')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=("http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'LICENSE')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+md5sums=('c75bb20e709093580a67eaf263251b50'
+ '2672c2e72dedb40f773e989dd622f298')
diff --git a/abs/not_built/extra/xerces2-java/PKGBUILD b/abs/not_built/extra/xerces2-java/PKGBUILD
new file mode 100644
index 0000000..bb3b327
--- /dev/null
+++ b/abs/not_built/extra/xerces2-java/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xerces2-java
+pkgver=2.11.0
+pkgrel=1
+pkgdesc="High performance fully compliant Java XML parser"
+arch=('any')
+url="http://xml.apache.org/xerces2-j"
+license=('APACHE')
+provides=("java-xerces2=${pkgver}")
+conflicts=('java-xerces2')
+replaces=('java-xerces2')
+source=(http://www.apache.org/dist/xerces/j/Xerces-J-bin.${pkgver}.tar.gz)
+
+build() {
+/bin/true
+}
+
+package() {
+ cd $startdir/src/xerces-${pkgver//./_}
+ install -m755 -d ${pkgdir}/usr/share/java
+ rm -f xercesSamples.jar
+ install -m644 *.jar ${pkgdir}/usr/share/java/ || return 1
+}
+md5sums=('29d731e0ae57eb3f2e09af6594bc2515')
diff --git a/abs/not_built/extra/xfconf/PKGBUILD b/abs/not_built/extra/xfconf/PKGBUILD
new file mode 100644
index 0000000..f6b97cf
--- /dev/null
+++ b/abs/not_built/extra/xfconf/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 87984 2010-08-18 20:44:29Z andyrtr $
+# Maintainer: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfconf
+pkgver=4.6.2
+pkgrel=2
+pkgdesc="a simple client-server configuration storage and query system"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+# http://www.xfce.org/documentation/requirements
+# keep dbus and gtk2, see also http://bugs.archlinux.org/task/14536
+depends=( "libxfce4util>=4.6.2" "dbus-glib>=0.86" 'dbus>=1.2.24' 'gtk2>=2.20.1')
+makedepends=('pkgconfig' 'perl-extutils-depends' 'perl-extutils-pkgconfig' 'glib-perl' 'intltool' 'chrpath')
+options=('!libtool' '!emptydirs')
+replaces=('libxfce4mcs' 'xfce-mcs-manager' 'xfce-mcs-plugins')
+conflicts=('libxfce4mcs' 'xfce-mcs-manager' 'xfce-mcs-plugins')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('5ff93c15077c6dbbcd38c437bc1ab2ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var --disable-static --with-perl-options=INSTALLDIRS="vendor"
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${startdir}/pkg install || return 1
+ # remove unneeded dynloader bootstrap file
+ rm ${pkgdir}/usr/lib/perl5/vendor_perl/auto/Xfce4/Xfconf/Xfconf.bs
+
+ # fix insecure rpath, http://bugs.archlinux.org/task/19980
+ chrpath -d ${pkgdir}/usr/lib/perl5/vendor_perl/auto/Xfce4/Xfconf/Xfconf.so
+}
diff --git a/abs/not_built/extra/xine-lib/ChangeLog b/abs/not_built/extra/xine-lib/ChangeLog
new file mode 100644
index 0000000..4d92448
--- /dev/null
+++ b/abs/not_built/extra/xine-lib/ChangeLog
@@ -0,0 +1,106 @@
+2010-09-25 Eric Belanger <eric@archlinux.org>
+
+ * Added XvMC build patch (close FS#20944)
+
+2010-07-28 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.19-1
+ * Upstream update
+
+2010-07-03 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.18.1-2
+ * Rebuilt against imagemagick 6.6.2.10
+ * Added gtk2 and mesa optdepends
+
+2010-03-23 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.18.1-1
+ * Upstream update
+ * Changed jack-audio-connection-kit references to jack
+ * Added vcdimager optdepends
+
+2010-02-23 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.18-1
+ * Upstream update
+
+2010-01-21 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.17-3
+ * Rebuilt against imagemagick 6.5.9.0
+
+2010-01-10 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.17-2
+ * Rebuilt against ffmpeg 20100108
+
+2009-12-01 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.17-1
+ * Upstream update
+ * Updated url
+
+2009-04-19 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.3-3
+ * Updated ffmpeg versioned depends
+
+2009-04-17 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.3-2
+ * Rebuilt against libcdio 0.81
+
+2009-04-03 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.3-1
+ * Upstream update
+
+2009-02-20 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.2-2
+ * Rebuilt against faad2 2.7
+
+2009-02-11 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.2-1
+ * Upstream update
+
+2009-02-02 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.1-2
+ * Rebuilt against imagemagick 6.4.8.10
+
+2009-01-11 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16.1-1
+ * Upstream update
+
+2009-01-10 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.16-1
+ * Upstream update
+
+2008-12-05 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.15-4
+ * Rebuilt against heimdal 1.2.1
+ * Added xcb support
+
+2008-11-27 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.15-3
+ * Added jack support (close FS#12020)
+ * Fixed several build issue (close FS#12117)
+
+2008-08-14 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.15-1
+ * Upstream update
+
+2008-07-28 Eric Belanger <eric@archlinux.org>
+
+ * xine-lib 1.1.14-2
+ * Switched to the more recent externel ffmpeg snapshot (close FS#10286)
+ * Updated win32 codecs directory location (close FS#11011)
+ * Added ChangeLog
diff --git a/abs/not_built/extra/xine-lib/PKGBUILD b/abs/not_built/extra/xine-lib/PKGBUILD
new file mode 100644
index 0000000..d14313e
--- /dev/null
+++ b/abs/not_built/extra/xine-lib/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 91275 2010-09-25 21:56:25Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=xine-lib
+pkgver=1.1.19
+pkgrel=2
+pkgdesc="A multimedia playback engine"
+arch=('i686' 'x86_64')
+url="http://www.xine-project.org"
+license=('LGPL' 'GPL')
+install=xine.install
+depends=('libgl' 'libxvmc' 'flac' 'libvorbis' 'sdl' 'libmng' 'libtheora'
+ 'libxcb' 'wavpack' 'ffmpeg' 'heimdal' 'faad2')
+makedepends=('pkg-config' 'libtool' 'imagemagick' 'smbclient' 'mesa' 'alsa-lib'
+ 'vcdimager' 'gtk2')
+optdepends=('imagemagick: for using the imagemagick plugin' 'smbclient: for using the smb plugin' \
+ 'gtk2: for using the gdk-pixbuf plugin' 'mesa: for using the opengl plugin')
+options=('!libtool')
+#changelog=ChangeLog
+source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.bz2
+ xine-lib-1.1.1-configure-no-mcpu-march.patch xine-lib-1.1.19-xvmc.patch)
+md5sums=('a410a0f0617e1d6309f0cbe907f73f8a' '9776df4eb54d2f1f68d8268adbc3b5c2'\
+ '8662fb124870b1dd7effe4ff5e2a2e3d')
+sha1sums=('5afcc28c5cf2bdaab99d951960f6587797e1e5a0' '121a8358d7919b2e51067412373f52848290338a'\
+ '920bf27e6e3523dfe4cc9c802ff713e9688a3f34')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 < ../xine-lib-1.1.1-configure-no-mcpu-march.patch
+ patch -p0 < ../xine-lib-1.1.19-xvmc.patch
+
+ libtoolize --force --copy
+ aclocal -I m4
+ autoconf
+ automake --add-missing
+
+ ./configure --prefix=/usr --with-w32-path=/usr/lib/codecs \
+ --with-xv-path=/usr/lib --with-xxmc-path=/usr/lib --with-xvmc-path=/usr/lib \
+ --with-libflac --with-wavpack --with-xcb \
+ --without-arts --without-jack --without-speex \
+ --disable-gnomevfs --without-pulseaudio --disable-aalib \
+ --disable-modplug --with-external-ffmpeg
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/not_built/extra/xine-lib/__changelog b/abs/not_built/extra/xine-lib/__changelog
new file mode 100644
index 0000000..0f4719d
--- /dev/null
+++ b/abs/not_built/extra/xine-lib/__changelog
@@ -0,0 +1,3 @@
+add xine.install
+disable jack
+disable esound
diff --git a/abs/not_built/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch b/abs/not_built/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch
new file mode 100644
index 0000000..4b6ba9e
--- /dev/null
+++ b/abs/not_built/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch
@@ -0,0 +1,13 @@
+--- m4/optimizations.m4.orig 2005-11-27 01:20:08.000000000 +0100
++++ m4/optimizations.m4 2005-11-27 01:22:56.000000000 +0100
+@@ -161,10 +161,6 @@
+ ;;
+
+ esac
+- if test x"$archopt_val" != x; then
+- CFLAGS="$sarchopt=$archopt_val $CFLAGS"
+- DEBUG_CFLAGS="$sarchopt=$archopt_val $DEBUG_CFLAGS"
+- fi
+ fi
+ else
+ dnl we have the Intel compiler
diff --git a/abs/not_built/extra/xine-lib/xine-lib-1.1.19-xvmc.patch b/abs/not_built/extra/xine-lib/xine-lib-1.1.19-xvmc.patch
new file mode 100644
index 0000000..bef8b0b
--- /dev/null
+++ b/abs/not_built/extra/xine-lib/xine-lib-1.1.19-xvmc.patch
@@ -0,0 +1,17 @@
+Quoting ChangeLog of X11's videoproto package:
+vldXvMC.h: stop uselessly including XvMClib.h
+
+--- src/video_out/xxmc.h
++++ src/video_out/xxmc.h
+@@ -77,10 +77,10 @@
+ #include <X11/extensions/XShm.h>
+ #include <X11/extensions/Xv.h>
+ #include <X11/extensions/Xvlib.h>
++#include <X11/extensions/XvMClib.h>
+ #ifdef HAVE_VLDXVMC
+ #include <X11/extensions/vldXvMC.h>
+ #else
+- #include <X11/extensions/XvMClib.h>
+ #include <X11/extensions/XvMC.h>
+ #endif
+
diff --git a/abs/not_built/extra/xine-lib/xine.install b/abs/not_built/extra/xine-lib/xine.install
new file mode 100755
index 0000000..f9102ee
--- /dev/null
+++ b/abs/not_built/extra/xine-lib/xine.install
@@ -0,0 +1,27 @@
+# arg 1: the new package version
+ post_install() {
+ MYTHOME=` su - mythtv -c "echo ~" `
+ if [ ! -f $MYTHOME/.xine/config ]
+ then
+ echo "Copying in standard config file for xine"
+ mkdir -p $MYTHOME/.xine/
+ cp -rp $TEMPLATES/xine.config.template $MYTHOME/.xine/config
+ chown -R mythtv:mythtv $MYTHOME/.xine
+ fi
+ }
+
+# # arg 1: the new package version
+# # arg 2: the old package version
+ post_upgrade() {
+ post_install $1
+ }
+#
+# # arg 1: the old package version
+ post_remove() {
+ /bin/true
+ }
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/not_built/extra/xine-ui/PKGBUILD b/abs/not_built/extra/xine-ui/PKGBUILD
new file mode 100644
index 0000000..59ae0cb
--- /dev/null
+++ b/abs/not_built/extra/xine-ui/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id$
+# Maintainer: Eric BĂ©langer <eric@archlinux.org>
+
+pkgname=xine-ui
+pkgver=0.99.6
+pkgrel=2
+pkgdesc="A free video player for Unix"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.xine-project.org"
+depends=('xine-lib' 'curl' 'libxtst' 'libxinerama' 'libxv' 'libpng' 'libxft'
+ 'libxxf86vm' 'readline' 'xdg-utils' 'shared-mime-info' 'hicolor-icon-theme'
+ 'desktop-file-utils' 'lirc-utils')
+makedepends=('libxt')
+options=('!emptydirs' '!strip')
+install=xine-ui.install
+source=(http://downloads.sourceforge.net/xine/${pkgname}-${pkgver}.tar.xz
+ lirc-check-a89347673097.patch lirc-makefile-a68dd15ff7ae.patch
+ fix_lirc.diff xine-ui-xdg.diff)
+md5sums=('d468b4e7fe39ff19888261e1da9be914'
+ '4f06f63f5fd55b08a648e5d63f881898'
+ '9f5acaf14f3945aa2ce428631d09cd47'
+ '0174bd096756b9c6f47e9b8b5ff6e145'
+ '5972b4061acf3b553760de9ae2178d38')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < "${srcdir}/lirc-check-a89347673097.patch"
+ patch -p1 < "${srcdir}/lirc-makefile-a68dd15ff7ae.patch"
+ patch -p1 < "${srcdir}/fix_lirc.diff"
+ patch -p1 < "${srcdir}/xine-ui-xdg.diff"
+ autoconf
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-x --enable-lirc --without-aalib --enable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/applications"
+ mv "${pkgdir}/usr/share/xine/desktop/xine.desktop" "${pkgdir}/usr/share/applications"
+}
diff --git a/abs/not_built/extra/xine-ui/fix_lirc.diff b/abs/not_built/extra/xine-ui/fix_lirc.diff
new file mode 100644
index 0000000..93890cb
--- /dev/null
+++ b/abs/not_built/extra/xine-ui/fix_lirc.diff
@@ -0,0 +1,13 @@
+diff --git a/m4/_xine.m4 b/m4/_xine.m4
+--- a/m4/_xine.m4
++++ b/m4/_xine.m4
+@@ -46,7 +46,8 @@ AC_DEFUN([AC_CHECK_LIRC],
+ fi
+ for llirc in $lirc_libprefix /lib /usr/lib /usr/local/lib; do
+ AC_CHECK_FILE(["$llirc/liblirc_client.so"],
+- [LIRC_LIBS="$llirc/liblirc_client.so"]
++ [LIRC_LIBS="$llirc/liblirc_client.so"
++ found_lirc=yes]
+ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed]),
+ AC_CHECK_FILE(["$llirc/liblirc_client.a"],
+ [LIRC_LIBS="$llirc/liblirc_client.a"
diff --git a/abs/not_built/extra/xine-ui/lirc-check-a89347673097.patch b/abs/not_built/extra/xine-ui/lirc-check-a89347673097.patch
new file mode 100644
index 0000000..c1c8d26
--- /dev/null
+++ b/abs/not_built/extra/xine-ui/lirc-check-a89347673097.patch
@@ -0,0 +1,64 @@
+
+# HG changeset patch
+# User Darren Salt <linux@youmustbejoking.demon.co.uk>
+# Date 1268754560 0
+# Node ID a89347673097053d89675e991ab403cda04d94cd
+# Parent ed3079d668ed5291d1daf7096d6b42c90ee06e11
+Resync LIRC check with gxine; no longer fails if liblircclient0.pc is missing.
+
+--- a/m4/_xine.m4 Sun Mar 14 18:04:46 2010 +0000
++++ b/m4/_xine.m4 Tue Mar 16 15:49:20 2010 +0000
+@@ -25,14 +25,14 @@
+ dnl
+ AC_DEFUN([AC_CHECK_LIRC],
+ [AC_ARG_ENABLE(lirc,
+- [ --disable-lirc Turn off LIRC support.],
+- [], enable_lirc=yes)
++ [AS_HELP_STRING([--disable-lirc], [turn off LIRC support])],
++ [given=Y], [given=N; enable_lirc=yes])
+
+ found_lirc=no
+ if test x"$enable_lirc" = xyes; then
+ have_lirc=yes
+- PKG_CHECK_MODULES(LIRC, liblircclient0, [found_lirc=yes], [])
+- if test "$LIRC_CFLAGS" != ''; then
++ PKG_CHECK_MODULES(LIRC, liblircclient0, [found_lirc=yes], [:])
++ if test "$found_lirc" = yes; then
+ LIRC_INCLUDE="$LIRC_CFLAGS"
+ else
+ AC_REQUIRE_CPP
+@@ -42,15 +42,20 @@
+
+ if test x"$LIRC_PREFIX" != "x"; then
+ lirc_libprefix="$LIRC_PREFIX/lib"
+- LIRC_INCLUDE="-I$LIRC_PREFIX/include"
++ LIRC_INCLUDE="-I$LIRC_PREFIX/include"
+ fi
+ for llirc in $lirc_libprefix /lib /usr/lib /usr/local/lib; do
+- AC_CHECK_FILE(["$llirc/liblirc_client.a"],
+- [LIRC_LIBS="$llirc/liblirc_client.a"
+- found_lirc=yes],,)
++ AC_CHECK_FILE(["$llirc/liblirc_client.so"],
++ [LIRC_LIBS="$llirc/liblirc_client.so"]
++ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed]),
++ AC_CHECK_FILE(["$llirc/liblirc_client.a"],
++ [LIRC_LIBS="$llirc/liblirc_client.a"
++ found_lirc=yes],,)
++ )
+ done
+ else
+- AC_MSG_RESULT([*** LIRC client support not available, LIRC support will be disabled ***]);
++ test $given = Y && AC_MSG_ERROR([LIRC client support requested but not available])
++ AC_MSG_RESULT([*** LIRC client support not available, LIRC support will be disabled ***])
+ fi
+ fi
+ fi
+@@ -59,7 +64,6 @@
+ fi
+ AC_SUBST(LIRC_LIBS)
+ AC_SUBST(LIRC_INCLUDE)
+- AM_CONDITIONAL([HAVE_LIRC], [test "x$have_lirc" = "xyes"])
+ ])
+
+ dnl AC_C_ATTRIBUTE_ALIGNED
+
diff --git a/abs/not_built/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch b/abs/not_built/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch
new file mode 100644
index 0000000..daad4f0
--- /dev/null
+++ b/abs/not_built/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch
@@ -0,0 +1,19 @@
+
+# HG changeset patch
+# User Darren Salt <linux@youmustbejoking.demon.co.uk>
+# Date 1268758696 0
+# Node ID a68dd15ff7ae4be65c2ace25ef66966d7c272514
+# Parent 882c464d4a650d09da37ade366face74452c1897
+Restore definition of HAVE_LIRC for use in makefiles.
+
+--- a/m4/_xine.m4 Mon Mar 15 12:03:01 2010 -0700
++++ b/m4/_xine.m4 Tue Mar 16 16:58:16 2010 +0000
+@@ -62,6 +62,7 @@
+ if test "$found_lirc" = yes; then
+ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed])
+ fi
++ AM_CONDITIONAL([HAVE_LIRC], [test "$found_lirc" = yes])
+ AC_SUBST(LIRC_LIBS)
+ AC_SUBST(LIRC_INCLUDE)
+ ])
+
diff --git a/abs/not_built/extra/xine-ui/xine-ui-xdg.diff b/abs/not_built/extra/xine-ui/xine-ui-xdg.diff
new file mode 100644
index 0000000..959d674
--- /dev/null
+++ b/abs/not_built/extra/xine-ui/xine-ui-xdg.diff
@@ -0,0 +1,206 @@
+--- xine-ui-0.99.6.orig/src/xitk/common.h
++++ xine-ui-0.99.6/src/xitk/common.h
+@@ -331,6 +331,5 @@ typedef struct {
+ int use_root_window;
+
+ int ssaver_enabled;
+- int ssaver_timeout;
+
+ int skip_by_chapter;
+--- xine-ui-0.99.6.orig/src/xitk/main.c
++++ xine-ui-0.99.6/src/xitk/main.c
+@@ -1383,6 +1383,8 @@ int main(int argc, char *argv[]) {
+ if (sigprocmask (SIG_BLOCK, &vo_mask, NULL))
+ fprintf (stderr, "sigprocmask() failed.\n");
+
++ signal(SIGCHLD, SIG_IGN);
++
+ gGui = (gGui_t *) calloc(1, sizeof(gGui_t));
+
+ gGui->stream = NULL;
+--- xine-ui-0.99.6.orig/src/xitk/panel.c
++++ xine-ui-0.99.6/src/xitk/panel.c
+@@ -356,7 +356,6 @@ void panel_update_runtime_display(void)
+ * Update slider thread.
+ */
+ static void *slider_loop(void *dummy) {
+- int screensaver_timer = 0;
+ int status, speed;
+ int pos, secs;
+ int i = 0;
+@@ -441,20 +440,7 @@ static void *slider_loop(void *dummy) {
+ else
+ video_window_set_mrl((char *)gGui->mmk.mrl);
+
+- if(!xitk_is_window_iconified(gGui->video_display, gGui->video_window)) {
+-
+- if(gGui->ssaver_timeout) {
+-
+- if(!(i % 2))
+- screensaver_timer++;
+-
+- if(screensaver_timer >= gGui->ssaver_timeout) {
+- screensaver_timer = 0;
+- video_window_reset_ssaver();
+-
+- }
+- }
+- }
++ video_window_suspend_ssaver(!xitk_is_window_iconified(gGui->video_display, gGui->video_window));
+
+ if(gGui->logo_mode == 0) {
+
+@@ -494,6 +480,8 @@ static void *slider_loop(void *dummy) {
+ stream_infos_update_infos();
+
+ }
++ } else {
++ video_window_suspend_ssaver(0);
+ }
+ }
+
+--- xine-ui-0.99.6.orig/src/xitk/videowin.c
++++ xine-ui-0.99.6/src/xitk/videowin.c
+@@ -1087,6 +1087,9 @@ static void video_window_adapt_size (voi
+
+ /* The old window should be destroyed now */
+ if(old_video_window != None) {
++ /* Screensaver control is tied to our window id */
++ video_window_suspend_ssaver(0);
++
+ XDestroyWindow(gGui->video_display, old_video_window);
+
+ if(gGui->cursor_grabbed)
+@@ -2261,69 +2264,34 @@ static void video_window_handle_event (X
+
+ }
+
+-void video_window_reset_ssaver(void) {
++void video_window_suspend_ssaver(int do_suspend) {
++ static int was_suspended;
+
+- if(gGui->ssaver_enabled && (xitk_get_last_keypressed_time() >= (long int) gGui->ssaver_timeout)) {
++ do_suspend = do_suspend && gGui->ssaver_enabled;
+
+-#ifdef HAVE_XTESTEXTENSION
+- if(gVw.have_xtest == True) {
+-
+- gVw.fake_key_cur++;
+-
+- if(gVw.fake_key_cur >= 2)
+- gVw.fake_key_cur = 0;
+-
+- XLockDisplay(gGui->video_display);
+- XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], True, CurrentTime);
+- XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], False, CurrentTime);
+- XSync(gGui->video_display, False);
+- XUnlockDisplay(gGui->video_display);
++ if(was_suspended != do_suspend) {
++ if(fork() == 0) {
++ char window_id[30];
++ char *args[] = { "xdg-screensaver", NULL, window_id, NULL };
++ int fd;
++
++ for(fd = 3; fd < 256; fd++)
++ close(fd);
++
++ args[1] = do_suspend ? "suspend" : "resume";
++ sprintf(window_id, "%lu", (unsigned long)gGui->video_window);
++ execvp(args[0], args);
++ _exit(0);
+ }
+- else
+-#endif
+- {
+- /* Reset the gnome screensaver. Look up the command in PATH only once to save time, */
+- /* assuming its location and permission will not change during run time of xine-ui. */
+- {
+- static char *const gssaver_args[] = { "gnome-screensaver-command", "--poke", NULL };
+- static char *gssaver_path = NULL;
+-
+- if(!gssaver_path) {
+- char *path = getenv("PATH");
+-
+- if(!path)
+- path = "/usr/local/bin:/usr/bin";
+- do {
+- char *p, *pbuf;
+- int plen;
+-
+- for(p = path; *path && *path != ':'; path++)
+- ;
+- if(p == path)
+- plen = 1, p = ".";
+- else
+- plen = path - p;
+- asprintf(&pbuf, "%.*s/%s", plen, p, gssaver_args[0]);
+- if ( access(pbuf, X_OK) ) {
+- free(pbuf);
+- gssaver_path = "";
+- } else
+- gssaver_path = pbuf;
+- } while(!gssaver_path[0] && *path++);
+- }
+- if(gssaver_path[0] && (fork() == 0)) {
+- execv(gssaver_path, gssaver_args);
+- exit(0);
+- }
+- }
+
+- XLockDisplay(gGui->video_display);
+- XResetScreenSaver(gGui->video_display);
+- XUnlockDisplay(gGui->video_display);
+- }
++ was_suspended = do_suspend;
+ }
+ }
+
++void video_window_reset_ssaver(void) {
++ video_window_suspend_ssaver(1);
++}
++
+ void video_window_get_frame_size(int *w, int *h) {
+ if(w)
+ *w = gVw.frame_width;
+--- xine-ui-0.99.6.orig/src/xitk/videowin.h
++++ xine-ui-0.99.6/src/xitk/videowin.h
+@@ -81,6 +81,7 @@ void video_window_get_mag (float *xmag,
+ void video_window_update_logo(void);
+ void video_window_change_skins(int);
+
++void video_window_suspend_ssaver(int do_suspend);
+ void video_window_reset_ssaver(void);
+
+ void video_window_get_frame_size(int *w, int *h);
+--- xine-ui-0.99.6.orig/src/xitk/event.c
++++ xine-ui-0.99.6/src/xitk/event.c
+@@ -135,9 +135,6 @@ static void skip_by_chapter_cb(void *dat
+ gGui->skip_by_chapter = cfg->num_value;
+ panel_update_nextprev_tips();
+ }
+-static void ssaver_timeout_cb(void *data, xine_cfg_entry_t *cfg) {
+- gGui->ssaver_timeout = cfg->num_value;
+-}
+
+ static void visual_anim_cb(void *data, xine_cfg_entry_t *cfg) {
+
+@@ -1614,14 +1611,6 @@ void gui_init (int nfiles, char *filenam
+ snapshot_loc_cb,
+ CONFIG_NO_DATA);
+
+- gGui->ssaver_timeout =
+- xine_config_register_num (__xineui_global_xine_instance, "gui.screensaver_timeout", 10,
+- _("Screensaver reset interval (s)"),
+- _("Time, in seconds, between two faked events to keep a screensaver quiet, 0 to disable."),
+- CONFIG_LEVEL_ADV,
+- ssaver_timeout_cb,
+- CONFIG_NO_DATA);
+-
+ gGui->skip_by_chapter =
+ xine_config_register_bool (__xineui_global_xine_instance, "gui.skip_by_chapter", 1,
+ _("Chapter hopping"),
+
+
+
+
+
diff --git a/abs/not_built/extra/xine-ui/xine-ui.install b/abs/not_built/extra/xine-ui/xine-ui.install
new file mode 100644
index 0000000..3b3aff7
--- /dev/null
+++ b/abs/not_built/extra/xine-ui/xine-ui.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/abs/not_built/extra/xmbmon/Makefile.in.patch b/abs/not_built/extra/xmbmon/Makefile.in.patch
new file mode 100644
index 0000000..be3bf73
--- /dev/null
+++ b/abs/not_built/extra/xmbmon/Makefile.in.patch
@@ -0,0 +1,37 @@
+diff -ru xmbmon205.orig/Makefile.in xmbmon205/Makefile.in
+--- xmbmon205.orig/Makefile.in 2004-08-13 17:04:21.000000000 +1000
++++ xmbmon205/Makefile.in 2008-06-14 00:59:35.000000000 +1000
+@@ -37,11 +37,11 @@
+ RM=rm -f
+ INSTALL=install
+
+-INST_DIR=/usr/local/bin
+-INST_MANDIR=/usr/local/man/man1
+-INST_XDIR=/usr/X11R6/bin
+-INST_MANXDIR=/usr/X11R6/man/man1
+-INST_XRDIR=/usr/X11R6/lib/X11/app-defaults
++INST_DIR=/usr/bin
++INST_MANDIR=/usr/share/man/man1
++INST_XDIR=/usr/bin
++INST_MANXDIR=/usr/share/man/man1
++INST_XRDIR=/usr/lib/X11/app-defaults
+
+ .c.o:
+ $(CC) -c $(CFLAGS) $*.c
+@@ -133,12 +133,12 @@
+ $(RM) Makefile config.cache config.log config.h config.status
+
+ install: $(PROGRAM)
+- $(INSTALL) -o root -g wheel -m 4555 -c -p mbmon $(INST_DIR)
+- $(INSTALL) -o root -g wheel -m 4555 -c -p xmbmon $(INST_XDIR)
++ $(INSTALL) -o root -g wheel -m 4555 -c -p mbmon $(DESTDIR)$(INST_DIR)
++ $(INSTALL) -o root -g wheel -m 4555 -c -p xmbmon $(DESTDIR)$(INST_XDIR)
+
+ install-man: $(MANPAGE)
+- $(INSTALL) -o root -g wheel -m 444 -c -p mbmon.1 $(INST_MANDIR)
+- $(INSTALL) -o root -g wheel -m 444 -c -p xmbmon.1x $(INST_MANXDIR)
++ $(INSTALL) -o root -g wheel -m 444 -c -p mbmon.1 $(DESTDIR)$(INST_MANDIR)
++ $(INSTALL) -o root -g wheel -m 444 -c -p xmbmon.1x $(DESTDIR)$(INST_MANXDIR)
+
+ lint:
+ $(LINT) $(INCLUDES) $(DEFS) $(FONTDEFINES) $(SRCS) -lm
diff --git a/abs/not_built/extra/xmbmon/PKGBUILD b/abs/not_built/extra/xmbmon/PKGBUILD
new file mode 100644
index 0000000..348094b
--- /dev/null
+++ b/abs/not_built/extra/xmbmon/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Jonathan Liu <net147@hotmail.com>
+pkgname=xmbmon
+pkgver=2.05
+pkgrel=2
+pkgdesc="X Motherboard Monitor"
+arch=('i686' 'x86_64')
+url="http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/download.html"
+license=('GPL')
+source=(http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/xmbmon/xmbmon205.tar.gz
+ Makefile.in.patch)
+md5sums=('ab6614c785f5b653fcc69fb9c02058f0'
+ 'e417a1a04b95bc3505b74a52faa54c4a')
+
+build() {
+ cd $startdir/src/xmbmon205
+ patch -Np1 -i $startdir/src/Makefile.in.patch
+ ./configure
+ mkdir -p $startdir/pkg/usr/{bin,share/man/man1}
+ make DESTDIR=$startdir/pkg install install-man || return 1
+}
diff --git a/abs/not_built/extra/xulrunner/PKGBUILD b/abs/not_built/extra/xulrunner/PKGBUILD
new file mode 100644
index 0000000..36ed257
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 97209 2010-10-27 20:57:31Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xulrunner
+pkgver=1.9.2.12
+_ffoxver=3.6.12
+pkgrel=1
+pkgdesc="Mozilla Runtime Environment"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL' 'LGPL')
+depends=('gtk2>=2.22.0' 'gcc-libs' 'libidl2>=0.8.13' 'mozilla-common' 'nss>=3.12.8' 'libxt' 'hunspell>=1.2.8' 'startup-notification>=0.10' 'mime-types' 'dbus-glib>=0.86' 'alsa-lib>=1.0.23' 'libevent')
+makedepends=('zip' 'pkg-config' 'diffutils' 'libgnomeui' 'python2' 'wireless_tools' 'autoconf2.13')
+optdepends=('libgnomeui: GNOME integration and MIME handling'
+ 'wireless_tools: Location aware browsing')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver}/source/firefox-${_ffoxver}.source.tar.bz2
+ mozconfig
+ mozilla-pkgconfig.patch
+ fix-mozilla-launcher.patch
+ xulrunner-version.patch
+ xulrunner-png14.patch
+ enable-x86_64-tracemonkey.patch
+ python2.7.patch)
+md5sums=('80f4d83f23a7c45fc3f1904964ea2a5a'
+ 'e195cdcd51a8fb6fc77f0f653ff1e582'
+ '2d2d7143a4e0bfe71149a51f8dbbab2f'
+ '63eee2d1da3b43c9d604f2253f242f40'
+ '371303c5bdc4fa0d955d14521b93b69d'
+ '3bd0566180ad2daa32743b3ce58b2095'
+ 'cbd938cd1fb8210cd8a2c41833489af9'
+ 'ab3dc9aecae7f08b9492fb3c00a5fd28')
+
+build() {
+ cd "${srcdir}/mozilla-1.9.2"
+ cp "${srcdir}/mozconfig" .mozconfig
+
+ #fix libdir/sdkdir - fedora
+ patch -Np1 -i "${srcdir}/mozilla-pkgconfig.patch"
+
+ #Fix stub launcher - archlinux
+ patch -Np0 -i "${srcdir}/fix-mozilla-launcher.patch"
+
+ #Force installation to the same path for every version
+ patch -Np1 -i "${srcdir}/xulrunner-version.patch"
+
+ #Fix compile with libpng 1.4
+ patch -Np0 -i "${srcdir}/xulrunner-png14.patch"
+
+ #Tracemonkey for x86_64
+ patch -Np0 -i "${srcdir}/enable-x86_64-tracemonkey.patch"
+
+ #python2.7
+ patch -Np0 -i "${srcdir}/python2.7.patch"
+
+ unset CFLAGS
+ unset CXXFLAGS
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+ make -j1 DESTDIR="${pkgdir}" install
+
+ #Remove included dictionaries, add symlink to system myspell path.
+ #Note: this will cause file conflicts when users have installed dictionaries in the old location
+ rm -rf "${pkgdir}/usr/lib/xulrunner-1.9.2/dictionaries"
+ ln -sf /usr/share/myspell "${pkgdir}/usr/lib/xulrunner-1.9.2/dictionaries"
+
+ # add xulrunner library path to ld.so.conf
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/xulrunner-1.9.2" > ${pkgdir}/etc/ld.so.conf.d/xulrunner.conf
+}
diff --git a/abs/not_built/extra/xulrunner/enable-x86_64-tracemonkey.patch b/abs/not_built/extra/xulrunner/enable-x86_64-tracemonkey.patch
new file mode 100644
index 0000000..b72ad76
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/enable-x86_64-tracemonkey.patch
@@ -0,0 +1,25 @@
+--- js/src/configure.in.old 2009-11-08 19:50:54.299642792 -0500
++++ js/src/configure.in 2009-11-08 19:57:49.235621814 -0500
+@@ -2465,6 +2465,10 @@
+ ENABLE_JIT=1
+ NANOJIT_ARCH=i386
+ ;;
++x86_64*-*)
++ ENABLE_JIT=1
++ NANOJIT_ARCH=X64
++ ;;
+ arm*-*)
+ ENABLE_JIT=1
+ NANOJIT_ARCH=ARM
+@@ -2488,7 +2492,10 @@
+ i?86-*)
+ AC_DEFINE(AVMPLUS_IA32)
+ ;;
+-
++x86_64*-*)
++ AC_DEFINE(AVMPLUS_AMD64)
++ AC_DEFINE(AVMPLUS_64BIT)
++ ;;
+ arm*-*)
+ AC_DEFINE(AVMPLUS_ARM)
+ ;;
diff --git a/abs/not_built/extra/xulrunner/fix-mozilla-launcher.patch b/abs/not_built/extra/xulrunner/fix-mozilla-launcher.patch
new file mode 100644
index 0000000..de64e4c
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/fix-mozilla-launcher.patch
@@ -0,0 +1,23 @@
+--- xulrunner/stub/nsXULStub.cpp 2008-07-17 21:43:11.000000000 +0200
++++ xulrunner/stub/nsXULStub.cpp 2008-07-17 21:47:04.000000000 +0200
+@@ -208,8 +208,10 @@
+ // 3) give up
+
+ struct stat fileStat;
++ char *testp;
+
+- if (!realpath(argv[0], iniPath) || stat(iniPath, &fileStat)) {
++ testp = realpath(argv[0], iniPath);
++ if (!(testp != NULL && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) || (testp != NULL && stat(iniPath, &fileStat))) {
+ const char *path = getenv("PATH");
+ if (!path)
+ return 1;
+@@ -222,7 +224,7 @@
+ char *token = strtok(pathdup, ":");
+ while (token) {
+ sprintf(tmpPath, "%s/%s", token, argv[0]);
+- if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0) {
++ if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) {
+ found = PR_TRUE;
+ break;
+ }
diff --git a/abs/not_built/extra/xulrunner/mozconfig b/abs/not_built/extra/xulrunner/mozconfig
new file mode 100644
index 0000000..2b23fc7
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/mozconfig
@@ -0,0 +1,36 @@
+. $topsrcdir/xulrunner/config/mozconfig
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --enable-system-hunspell
+#disabled: mozilla is broken with recent versions of sqlite
+#ac_add_options --enable-system-sqlite
+#disabled: mozilla is broken with cairo 1.10
+#ac_add_options --enable-system-cairo
+ac_add_options --with-pthreads
+ac_add_options --enable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+ac_add_options --disable-debug
+ac_add_options --enable-optimize
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-pango
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-crashreporter
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-startup-notification
+ac_add_options --enable-extensions=default
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/abs/not_built/extra/xulrunner/mozilla-pkgconfig.patch b/abs/not_built/extra/xulrunner/mozilla-pkgconfig.patch
new file mode 100644
index 0000000..a42d2a3
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/mozilla-pkgconfig.patch
@@ -0,0 +1,70 @@
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-1.9.2/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/libxul-embedding.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/libxul-embedding.pc.in 2010-01-21 22:27:17.000000000 +0200
+@@ -6,5 +6,6 @@
+ Name: libxul-embedding
+ Description: Static library for version-independent embedding of the Mozilla runtime
+ Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lxpcomglue
+ Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/libxul.pc.in mozilla-1.9.2/xulrunner/installer/libxul.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/libxul.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/libxul.pc.in 2010-01-21 22:27:56.000000000 +0200
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/Makefile.in mozilla-1.9.2/xulrunner/installer/Makefile.in
+--- mozilla-1.9.2.orig/xulrunner/installer/Makefile.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/Makefile.in 2010-01-21 22:25:04.000000000 +0200
+@@ -121,6 +121,7 @@
+ -e "s|%includedir%|$(includedir)|" \
+ -e "s|%idldir%|$(idldir)|" \
+ -e "s|%sdkdir%|$(sdkdir)|" \
++ -e "s|%libdir%|$(installdir)|" \
+ -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
+ -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
+ -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2010-01-21 22:28:15.000000000 +0200
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed.pc.in 2010-01-21 22:28:27.000000000 +0200
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-js.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-js.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-js.pc.in 2010-01-21 22:29:30.000000000 +0200
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lmozjs
+-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-plugin.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-plugin.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-plugin.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-plugin.pc.in 2010-01-21 22:29:58.000000000 +0200
+@@ -5,5 +5,5 @@
+ Name: Mozilla Plug-In API
+ Description: Mozilla Plug-In API
+ Version: %MOZILLA_VERSION%
+-Cflags: -I${includedir}/stable -DXP_UNIX %ojidef%
++Cflags: -I${includedir} -DXP_UNIX %ojidef%
+
diff --git a/abs/not_built/extra/xulrunner/python2.7.patch b/abs/not_built/extra/xulrunner/python2.7.patch
new file mode 100644
index 0000000..05a3e91
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/python2.7.patch
@@ -0,0 +1,11 @@
+--- configure.in 2010-10-12 10:44:37.000000000 -0700
++++ configure.in~ 2010-10-19 09:51:49.660019364 -0700
+@@ -811,7 +811,7 @@
+ AC_MSG_RESULT([yes])
+ fi
+
+-MOZ_PATH_PROGS(PYTHON, $PYTHON python2.5 python2.4 python)
++MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.5 python2.4 python)
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([python was not found in \$PATH])
+ fi
diff --git a/abs/not_built/extra/xulrunner/xulrunner-png14.patch b/abs/not_built/extra/xulrunner/xulrunner-png14.patch
new file mode 100644
index 0000000..f512416
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/xulrunner-png14.patch
@@ -0,0 +1,11 @@
+--- modules/libpr0n/encoders/png/nsPNGEncoder.cpp.orig 2010-01-17 00:15:53.979744638 +0100
++++ modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-01-17 00:16:07.855993411 +0100
+@@ -135,7 +135,7 @@
+
+ // initialize
+ mPNG = png_create_write_struct(PNG_LIBPNG_VER_STRING,
+- png_voidp_NULL,
++ NULL,
+ ErrorCallback,
+ ErrorCallback);
+ if (! mPNG)
diff --git a/abs/not_built/extra/xulrunner/xulrunner-version.patch b/abs/not_built/extra/xulrunner/xulrunner-version.patch
new file mode 100644
index 0000000..418b7c7
--- /dev/null
+++ b/abs/not_built/extra/xulrunner/xulrunner-version.patch
@@ -0,0 +1,13 @@
+diff -up mozilla/toolkit/mozapps/update/src/updater/module.ver mozilla/toolkit/mozapps/update/src/updater/module
+diff -up mozilla/xulrunner/installer/Makefile.in.ver mozilla/xulrunner/installer/Makefile.in
+--- mozilla/xulrunner/installer/Makefile.in.ver 2007-12-14 09:51:34.000000000 +0100
++++ mozilla/xulrunner/installer/Makefile.in 2007-12-14 09:52:03.000000000 +0100
+@@ -44,6 +44,8 @@ VPATH = @srcdir@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="1.9.2"
++
+ NO_PKG_FILES = \
+ xulrunner-config \
+ regchrome* \