From 0e2532d4e8f4eed5e047f1db54d5c03ba849ec0a Mon Sep 17 00:00:00 2001 From: James Meyer Date: Wed, 1 Oct 2008 20:19:12 -0700 Subject: initial import --- .gitignore | 14 + abs/chroot-devel-testing/README | 0 abs/chroot-devel/README | 0 abs/core-testing/a52dec/PKGBUILD | 26 + abs/core-testing/a52dec/a52dec-0.7.4-build.patch | 27 + abs/core-testing/aalib/PKGBUILD | 24 + abs/core-testing/aalib/aclocal-fixes.patch | 11 + abs/core-testing/acl/PKGBUILD | 35 + abs/core-testing/alsa-lib/PKGBUILD | 23 + abs/core-testing/alsa-lib/python2.5.patch | 11 + ...ch-to-fix-converting-32bit-audio-to-16bit.patch | 242 + abs/core-testing/alsa-oss/PKGBUILD | 20 + abs/core-testing/alsa-utils/PKGBUILD | 27 + abs/core-testing/alsa-utils/alsa | 48 + abs/core-testing/alsa-utils/alsa.conf.d | 4 + abs/core-testing/alsa-utils/alsaconf.patch | 21 + abs/core-testing/apache/PKGBUILD | 81 + abs/core-testing/apache/arch.layout | 22 + abs/core-testing/apache/httpd | 40 + abs/core-testing/apache/httpd.install | 16 + abs/core-testing/apache/httpd.logrotate | 5 + abs/core-testing/apr-util/PKGBUILD | 24 + abs/core-testing/apr/PKGBUILD | 25 + abs/core-testing/aspell/PKGBUILD | 24 + abs/core-testing/aspell/aspell.install | 8 + abs/core-testing/atk/PKGBUILD | 21 + abs/core-testing/attr/PKGBUILD | 37 + abs/core-testing/aufs-utils/PKGBUILD | 40 + abs/core-testing/aufs/PKGBUILD | 57 + abs/core-testing/aufs/aufs.install | 31 + abs/core-testing/b43-fwcutter/PKGBUILD | 21 + abs/core-testing/base.list | 98 + abs/core-testing/bash/PKGBUILD | 87 + abs/core-testing/bash/bash-noinfo.patch | 12 + abs/core-testing/bash/bashrc | 3 + abs/core-testing/bash/profile | 35 + abs/core-testing/bash/profile.bash | 25 + abs/core-testing/bc/PKGBUILD | 24 + abs/core-testing/bc/build-fix.patch | 13 + abs/core-testing/bigreqsproto/PKGBUILD | 20 + abs/core-testing/binutils/PKGBUILD | 67 + abs/core-testing/bzip2/PKGBUILD | 47 + abs/core-testing/ca-certificates/PKGBUILD | 33 + .../ca-certificates/ca-certificates.install | 7 + abs/core-testing/cairo/PKGBUILD | 23 + abs/core-testing/cdparanoia/ChangeLog | 18 + abs/core-testing/cdparanoia/PKGBUILD | 22 + abs/core-testing/cdrdao/PKGBUILD | 21 + abs/core-testing/cdrdao/cdrdao-1.2.2-gcc43.patch | 73 + abs/core-testing/cdrdao/gcc4.patch | 23 + abs/core-testing/cdrkit/ChangeLog | 10 + abs/core-testing/cdrkit/PKGBUILD | 38 + abs/core-testing/compositeproto/PKGBUILD | 20 + abs/core-testing/coreutils/PKGBUILD | 62 + .../coreutils/coreutils-6.10-configuration.patch | 62 + abs/core-testing/coreutils/coreutils-i18n.patch | 4045 ++++ abs/core-testing/coreutils/coreutils-pam.patch | 413 + abs/core-testing/coreutils/coreutils-uname.patch | 173 + abs/core-testing/coreutils/futimes.patch | 47 + abs/core-testing/coreutils/su | 9 + abs/core-testing/cpio/PKGBUILD | 25 + abs/core-testing/cpio/cpio-2.9-gcc43.patch | 31 + abs/core-testing/cracklib/PKGBUILD | 26 + abs/core-testing/cryptsetup/PKGBUILD | 39 + .../cryptsetup-1.0.5-run_udevsettle.patch | 29 + abs/core-testing/cryptsetup/encrypt_hook | 122 + abs/core-testing/cryptsetup/encrypt_install | 22 + abs/core-testing/cryptsetup/luksOpen-status.patch | 13 + abs/core-testing/curl/ChangeLog | 19 + abs/core-testing/curl/PKGBUILD | 25 + abs/core-testing/damageproto/PKGBUILD | 19 + abs/core-testing/dash/PKGBUILD | 29 + abs/core-testing/db/PKGBUILD | 27 + abs/core-testing/db/db.install | 29 + abs/core-testing/db4.5/PKGBUILD | 41 + abs/core-testing/dbus-glib/PKGBUILD | 22 + abs/core-testing/dbus/PKGBUILD | 48 + abs/core-testing/dbus/dbus | 57 + abs/core-testing/dbus/dbus.install | 21 + abs/core-testing/dcron/PKGBUILD | 38 + abs/core-testing/dcron/crond | 37 + abs/core-testing/dcron/crond.logrotate | 5 + abs/core-testing/dcron/dcron-3.1.patch | 33 + abs/core-testing/dcron/root.crontab | 12 + abs/core-testing/dcron/run-cron | 14 + abs/core-testing/device-mapper/PKGBUILD | 30 + abs/core-testing/device-mapper/device-mapper.rules | 1 + abs/core-testing/dhcpcd/PKGBUILD | 27 + abs/core-testing/dhcpcd/dhcpcd.conf.d | 6 + abs/core-testing/dialog/PKGBUILD | 21 + abs/core-testing/dialog/timeout.patch | 11 + abs/core-testing/diffutils/PKGBUILD | 20 + abs/core-testing/dmapi/PKGBUILD | 31 + abs/core-testing/dmidecode/PKGBUILD | 20 + abs/core-testing/dmxproto/PKGBUILD | 19 + abs/core-testing/dnsutils/PKGBUILD | 31 + abs/core-testing/dnsutils/bind.so_bsdcompat.diff | 11 + abs/core-testing/dnsutils/tools-only.patch | 22 + abs/core-testing/dosfstools/PKGBUILD | 20 + abs/core-testing/dosfstools/linux-2.6.patch | 64 + abs/core-testing/dvd+rw-tools/PKGBUILD | 32 + .../buildpatch-7.0-3-20080108-karolina.patch | 22 + abs/core-testing/dvdauthor/PKGBUILD | 21 + .../e2fsprogs/Makefile-fsck.static.patch | 13 + abs/core-testing/e2fsprogs/PKGBUILD | 34 + abs/core-testing/e2fsprogs/mke2fs.conf | 26 + abs/core-testing/eject/PKGBUILD | 20 + .../eject/eject-2.1.5-handle-spaces.patch | 57 + abs/core-testing/etcnet/10-defaults | 6 + abs/core-testing/etcnet/PKGBUILD | 39 + abs/core-testing/etcnet/adddhcp.patch | 51 + abs/core-testing/etcnet/etcnet.install | 42 + abs/core-testing/etcnet/functions.patch | 12 + abs/core-testing/etcnet/ipv4address | 1 + abs/core-testing/etcnet/ipv4route | 1 + abs/core-testing/etcnet/network | 6 + abs/core-testing/etcnet/options | 62 + abs/core-testing/expat/PKGBUILD | 23 + abs/core-testing/expect/PKGBUILD | 35 + abs/core-testing/faac/PKGBUILD | 28 + abs/core-testing/faac/libmp4v2.patch | 11 + abs/core-testing/faac/pipe-output.patch | 18 + abs/core-testing/faad2/ChangeLog | 14 + abs/core-testing/faad2/LICENSE | 28 + abs/core-testing/faad2/PKGBUILD | 45 + .../faad2/faad2-2.6.1-abi_has_changed.patch | 14 + .../faad2/faad2-2.6.1-broken-pipe.patch | 22 + .../faad2/faad2-2.6.1-implicitdeclar.patch | 11 + abs/core-testing/faad2/faad2-2.6.1-libtool22.patch | 13 + abs/core-testing/feh/PKGBUILD | 17 + abs/core-testing/ffmpeg/PKGBUILD | 48 + abs/core-testing/fftw2/PKGBUILD | 34 + abs/core-testing/file/PKGBUILD | 23 + abs/core-testing/filesystem/PKGBUILD | 90 + abs/core-testing/filesystem/crypttab | 33 + abs/core-testing/filesystem/filesystem.install | 60 + abs/core-testing/filesystem/fstab | 11 + abs/core-testing/filesystem/group | 28 + abs/core-testing/filesystem/gshadow | 27 + abs/core-testing/filesystem/host.conf | 8 + abs/core-testing/filesystem/hosts | 8 + abs/core-testing/filesystem/issue | 3 + abs/core-testing/filesystem/ld.so.conf | 5 + abs/core-testing/filesystem/motd | 0 abs/core-testing/filesystem/nsswitch.conf | 19 + abs/core-testing/filesystem/passwd | 7 + abs/core-testing/filesystem/profile | 57 + abs/core-testing/filesystem/protocols | 57 + abs/core-testing/filesystem/resolv.conf | 8 + abs/core-testing/filesystem/securetty | 13 + abs/core-testing/filesystem/services | 557 + abs/core-testing/filesystem/shadow | 7 + abs/core-testing/filesystem/shells | 9 + abs/core-testing/findutils/PKGBUILD | 30 + abs/core-testing/fixesproto/PKGBUILD | 20 + abs/core-testing/flac/PKGBUILD | 32 + abs/core-testing/flac/flac-1.2.1-gcc43.patch | 10 + abs/core-testing/flac/flac-linking.diff | 12 + abs/core-testing/flac/xmms-plugin.patch | 11 + abs/core-testing/fltk/PKGBUILD | 23 + abs/core-testing/fluxbox/PKGBUILD | 38 + abs/core-testing/fluxbox/fluxbox-1.0.0-gcc43.patch | 10 + abs/core-testing/fluxbox/fluxbox.desktop | 6 + abs/core-testing/fontcacheproto/PKGBUILD | 19 + .../fontconfig/29-replace-bitmap-fonts.conf | 37 + abs/core-testing/fontconfig/PKGBUILD | 32 + abs/core-testing/fontconfig/fontconfig.install | 100 + abs/core-testing/fontsproto/PKGBUILD | 19 + abs/core-testing/freeglut/PKGBUILD | 30 + .../freeglut/glut-cursor-inherit.patch | 23 + abs/core-testing/freetype2/PKGBUILD | 33 + abs/core-testing/freetype2/bytecode.patch | 29 + .../freetype2/freetype-2.2.1-enable-valid.patch | 20 + .../freetype2/freetype-2.2.1-memcpy-fix.patch | 14 + .../freetype2/freetype-2.3.0-enable-spr.patch | 11 + .../freetype2/freetype-2.3.3-ftbitmap.patch | 25 + abs/core-testing/freetype2/freetype2.install | 23 + abs/core-testing/fribidi/ChangeLog | 5 + abs/core-testing/fribidi/PKGBUILD | 23 + abs/core-testing/fuse/PKGBUILD | 38 + abs/core-testing/fuse/fuse.install | 14 + abs/core-testing/fuse/fuse.rc.d | 49 + abs/core-testing/fxload/PKGBUILD | 20 + abs/core-testing/gawk/PKGBUILD | 31 + .../gawk/gawk-3.1.5-segfault_fix-1.patch | 43 + abs/core-testing/gcc-libs/PKGBUILD | 65 + .../gcc-libs/gcc-hash-style-both.patch | 163 + abs/core-testing/gcc-libs/gcc_pure64.patch | 26 + abs/core-testing/gdbm/PKGBUILD | 24 + abs/core-testing/gen-init-cpio/Makefile | 42 + abs/core-testing/gen-init-cpio/PKGBUILD | 21 + abs/core-testing/gen-init-cpio/gen_init_cpio.c | 514 + abs/core-testing/gettext/PKGBUILD | 22 + abs/core-testing/ghostscript/PKGBUILD | 50 + .../ghostscript/ghostscript-fPIC.patch | 31 + abs/core-testing/ghostscript/ghostscript.install | 14 + abs/core-testing/giblib/PKGBUILD | 20 + abs/core-testing/giflib/PKGBUILD | 35 + abs/core-testing/glib2/PKGBUILD | 32 + abs/core-testing/glib2/gkeyfile-bool-nocase.patch | 16 + abs/core-testing/glib2/glib2.csh | 1 + abs/core-testing/glib2/glib2.sh | 1 + abs/core-testing/glibc/ChangeLog | 28 + abs/core-testing/glibc/PKGBUILD | 100 + abs/core-testing/glibc/fix-makecontext.patch | 33 + abs/core-testing/glibc/glibc.install | 122 + abs/core-testing/glibc/locale-gen | 42 + abs/core-testing/glibc/locale.gen | 438 + abs/core-testing/glibc/locale.gen.txt | 23 + abs/core-testing/glibc/nscd | 40 + abs/core-testing/glproto/PKGBUILD | 20 + abs/core-testing/gnutls/PKGBUILD | 24 + abs/core-testing/gpm/ChangeLog | 11 + abs/core-testing/gpm/PKGBUILD | 35 + abs/core-testing/gpm/gpm | 40 + abs/core-testing/gpm/gpm.conf.d | 4 + abs/core-testing/grep/01-fgrep.patch | 145 + abs/core-testing/grep/02-bracket.patch | 11 + abs/core-testing/grep/03-i18n.patch | 303 + abs/core-testing/grep/04-oi.patch | 48 + abs/core-testing/grep/05-manpage.patch | 19 + abs/core-testing/grep/06-color.patch | 10 + abs/core-testing/grep/07-icolor.patch | 36 + abs/core-testing/grep/08-skip.patch | 42 + abs/core-testing/grep/09-egf-speedup.patch | 823 + abs/core-testing/grep/10-dfa-optional.patch | 67 + abs/core-testing/grep/11-tests.patch | 138 + abs/core-testing/grep/12-w.patch | 121 + abs/core-testing/grep/13-P.patch | 14 + abs/core-testing/grep/14-mem-exhausted.patch | 15 + abs/core-testing/grep/15-empty-pattern.patch | 36 + abs/core-testing/grep/64-egf-speedup.patch | 791 + abs/core-testing/grep/PKGBUILD | 50 + abs/core-testing/groff/PKGBUILD | 34 + abs/core-testing/groff/man-utf8.tmac | 9 + .../grub/040_all_grub-0.96-nxstack.patch | 623 + abs/core-testing/grub/05-grub-0.97-initrdaddr.diff | 16 + abs/core-testing/grub/PKGBUILD | 81 + abs/core-testing/grub/grub-0.97-gpt.patch | 315 + abs/core-testing/grub/grub-inode-size.patch | 94 + abs/core-testing/grub/i2o.patch | 45 + abs/core-testing/grub/install-grub | 187 + abs/core-testing/grub/intelmac.patch | 67 + abs/core-testing/grub/menu.lst | 46 + abs/core-testing/grub/more-raid.patch | 100 + abs/core-testing/grub/special-devices.patch | 18 + abs/core-testing/gsfonts/PKGBUILD | 18 + abs/core-testing/gsfonts/xfonts.install | 20 + abs/core-testing/gtk2/PKGBUILD | 35 + abs/core-testing/gtk2/gtk2.install | 27 + abs/core-testing/gtk2/gtkclipboard-check.patch | 11 + abs/core-testing/gzip/PKGBUILD | 31 + abs/core-testing/gzip/gzip-fixpaths.patch | 37 + abs/core-testing/gzip/gzip-fixutimens.patch | 36 + abs/core-testing/gzip/gzip-security-update.patch | 186 + abs/core-testing/hal-info/PKGBUILD | 23 + abs/core-testing/hal/PKGBUILD | 49 + abs/core-testing/hal/cryptsetup_location.patch | 36 + abs/core-testing/hal/hal | 54 + .../hal/hal-0.5.9-hide-diagnostic.patch | 14 + abs/core-testing/hal/hal-policy.patch | 32 + abs/core-testing/hal/hal.install | 25 + abs/core-testing/hal/ntfs3g-valid-options.patch | 11 + abs/core-testing/hdparm/PKGBUILD | 33 + .../heimdal/002_all_heimdal-no_libedit.patch | 10 + .../heimdal/003_all_heimdal-fPIC.patch | 12 + .../heimdal/004_all_heimdal-rxapps.patch | 19 + .../heimdal/006_all_heimdal-suid_fix.patch | 20 + .../heimdal/010_all_heimdal-system-libss.patch | 40 + abs/core-testing/heimdal/PKGBUILD | 103 + abs/core-testing/heimdal/heimdal-kdc.rc | 40 + abs/core-testing/heimdal/kadmind.rc | 40 + abs/core-testing/heimdal/kpasswd.rc | 40 + abs/core-testing/hwdetect/PKGBUILD | 18 + abs/core-testing/hwdetect/hwdetect | 482 + abs/core-testing/imagemagick/ChangeLog | 44 + abs/core-testing/imagemagick/PKGBUILD | 56 + abs/core-testing/imagemagick/add_delegate.patch | 8 + .../imagemagick/libpng_mmx_patch_x86_64.patch | 12 + abs/core-testing/imlib2/PKGBUILD | 28 + abs/core-testing/initscripts/ChangeLog | 2083 ++ abs/core-testing/initscripts/PKGBUILD | 22 + abs/core-testing/initscripts/initscripts.install | 25 + abs/core-testing/inputproto/PKGBUILD | 22 + abs/core-testing/intel-dri/PKGBUILD | 38 + abs/core-testing/iproute/PKGBUILD | 26 + .../iproute/iproute2-2.4.7-now-ss020116.patch | 9823 ++++++++ abs/core-testing/iptables/PKGBUILD | 30 + abs/core-testing/iptables/PKGBUILD.orig | 36 + abs/core-testing/iptables/empty.rules | 6 + abs/core-testing/iptables/ip6tables | 97 + abs/core-testing/iptables/iptables | 95 + abs/core-testing/iptables/iptables.conf.d | 8 + abs/core-testing/iptables/simple_firewall.rules | 11 + abs/core-testing/iputils/PKGBUILD | 72 + .../iputils/iputils-20070202-no-open-max.patch | 16 + abs/core-testing/iputils/iputils-big-patches.patch | 595 + .../iputils/iputils-ss021109-try.patch | 239 + abs/core-testing/iputils/iputils.patch | 1170 + abs/core-testing/iputils/protocols | 18 + abs/core-testing/iputils/services | 195 + abs/core-testing/ipw2100-fw/PKGBUILD | 36 + abs/core-testing/ipw2100-fw/ipw2100-fw.install | 18 + abs/core-testing/ipw2200-fw/PKGBUILD | 34 + abs/core-testing/ipw2200-fw/ipw2200-fw.install | 18 + abs/core-testing/ipw3945-ucode/PKGBUILD | 22 + .../ipw3945-ucode/ipw3945-ucode.install | 18 + abs/core-testing/ipw3945/2.6.18-compile.patch | 11 + abs/core-testing/ipw3945/PKGBUILD | 31 + abs/core-testing/ipw3945/compile-2.6.24.patch | 43 + abs/core-testing/ipw3945/ipw3945.install | 26 + abs/core-testing/ipw3945/kernel-2.6.19.patch | 10 + abs/core-testing/ipw3945/lockup.patch | 31 + abs/core-testing/ipw3945d/PKGBUILD | 28 + abs/core-testing/ipw3945d/ipw3945d.install | 35 + abs/core-testing/ipw3945d/ipw3945d.rc | 42 + abs/core-testing/ivtv-utils/PKGBUILD | 46 + abs/core-testing/ivtv-utils/ivtv-utils.install | 31 + abs/core-testing/iwlwifi-3945-ucode/PKGBUILD | 28 + abs/core-testing/iwlwifi-4965-ucode/PKGBUILD | 26 + .../jack-audio-connection-kit/PKGBUILD | 30 + .../jack-audio-connection-kit.conf.d | 42 + .../jack-audio-connection-kit.install | 34 + .../jack-audio-connection-kit.rc.d | 39 + abs/core-testing/jasper/PKGBUILD | 21 + abs/core-testing/jfsutils/PKGBUILD | 21 + abs/core-testing/kakasi/PKGBUILD | 20 + abs/core-testing/kbd/PKGBUILD | 34 + abs/core-testing/kbd/kbd-1.12-alias.patch | 47 + abs/core-testing/kbd/kbd-1.12-find_map_fix.patch | 37 + abs/core-testing/kbd/kbd-1.12-no-user-map.patch | 19 + abs/core-testing/kbd/keymap_hook | 21 + abs/core-testing/kbd/keymap_install | 44 + abs/core-testing/kbd/rename-duplicates.patch | 830 + abs/core-testing/kbproto/PKGBUILD | 18 + abs/core-testing/kdelibs3/PKGBUILD | 55 + abs/core-testing/kdelibs3/kde3.profile | 15 + abs/core-testing/kdelibs3/kdelibs3.install | 11 + abs/core-testing/kernel-headers/PKGBUILD | 27 + .../kernel-headers/netfilter-includes.patch | 91 + abs/core-testing/kernel26/PKGBUILD | 159 + abs/core-testing/kernel26/config | 3897 +++ abs/core-testing/kernel26/config.x86_64 | 3649 +++ abs/core-testing/kernel26/kernel26.install | 144 + abs/core-testing/kernel26/kernel26.preset | 17 + abs/core-testing/kernel26/logo_linux_clut224.ppm | 883 + abs/core-testing/kernel26/logo_linux_mono.pbm | 883 + abs/core-testing/kernel26/logo_linux_vga16.ppm | 883 + abs/core-testing/klibc-extras/PKGBUILD | 22 + abs/core-testing/klibc-kbd/PKGBUILD | 45 + abs/core-testing/klibc-kbd/keymap_hook | 27 + abs/core-testing/klibc-kbd/keymap_install | 76 + abs/core-testing/klibc-kbd/no-exit.patch | 31 + abs/core-testing/klibc-kbd/no-isatty.patch | 58 + abs/core-testing/klibc-module-init-tools/PKGBUILD | 31 + .../fix-modprobe-ignore-path.patch | 14 + .../klibc-module-init-tools/makefile.patch | 54 + abs/core-testing/klibc-udev/PKGBUILD | 58 + .../klibc-udev/klibc-remove-revert.patch | 111 + abs/core-testing/klibc-udev/load-modules.sh | 32 + abs/core-testing/klibc-udev/post-107.patch | 176 + abs/core-testing/klibc-udev/start_udev | 115 + abs/core-testing/klibc-udev/udev.rules | 187 + abs/core-testing/klibc-udev/udev_hook | 7 + abs/core-testing/klibc-udev/udev_install | 31 + abs/core-testing/klibc-udev/vol_id-suspend2.patch | 15 + abs/core-testing/klibc/PKGBUILD | 62 + abs/core-testing/klibc/klibc-2.6.24.patch | 44 + abs/core-testing/klibc/klibc-Kbuild.patch | 41 + .../klibc/klibc-compile-shared-by-default.patch | 12 + .../klibc/klibc-module-init-tools.patch | 63 + .../klibc/multiple_raid_assembly_fix.patch | 20 + abs/core-testing/lame/PKGBUILD | 23 + abs/core-testing/lame/shared-frontend.patch | 23 + abs/core-testing/lcms/PKGBUILD | 24 + abs/core-testing/less/PKGBUILD | 23 + abs/core-testing/less/zless | 9 + abs/core-testing/libao/ChangeLog | 5 + abs/core-testing/libao/PKGBUILD | 25 + abs/core-testing/libao/libao.conf | 2 + abs/core-testing/libarchive/PKGBUILD | 31 + abs/core-testing/libart-lgpl/PKGBUILD | 20 + .../libart-lgpl/art_misc.h-cplusplus.patch | 35 + abs/core-testing/libcap/PKGBUILD | 20 + abs/core-testing/libcap/libcap-1.10-debian.patch | 766 + .../libcap/libcap-1.10-fixcflags.patch | 22 + abs/core-testing/libcap/libcap-1.10-shared.patch | 17 + abs/core-testing/libcdaudio/PKGBUILD | 23 + abs/core-testing/libcroco/PKGBUILD | 21 + abs/core-testing/libcups/PKGBUILD | 32 + abs/core-testing/libdatrie/PKGBUILD | 22 + abs/core-testing/libdmx/PKGBUILD | 22 + abs/core-testing/libdownload/PKGBUILD | 21 + abs/core-testing/libdownload/largefiles.patch | 12 + abs/core-testing/libdrm/PKGBUILD | 20 + abs/core-testing/libdvdread/PKGBUILD | 23 + abs/core-testing/libdvdread/libdvdread.install | 11 + abs/core-testing/libexif/PKGBUILD | 22 + abs/core-testing/libfontenc/PKGBUILD | 24 + abs/core-testing/libgcrypt/PKGBUILD | 23 + abs/core-testing/libgl/PKGBUILD | 49 + abs/core-testing/libglade/PKGBUILD | 26 + abs/core-testing/libglade/glade.install | 30 + .../libglade/libglade-2.0.1-nowarning.patch | 39 + abs/core-testing/libgpg-error/PKGBUILD | 23 + abs/core-testing/libgsf/PKGBUILD | 25 + abs/core-testing/libice/PKGBUILD | 22 + abs/core-testing/libid3tag/PKGBUILD | 21 + abs/core-testing/libid3tag/id3tag.pc | 10 + abs/core-testing/libidn/PKGBUILD | 22 + abs/core-testing/libjpeg/PKGBUILD | 21 + abs/core-testing/liblbxutil/PKGBUILD | 23 + abs/core-testing/libldap/PKGBUILD | 62 + abs/core-testing/libldap/ntlm.patch | 189 + abs/core-testing/libldap/peercred.patch | 11 + abs/core-testing/libmad/PKGBUILD | 27 + abs/core-testing/libmad/libmad.patch | 117 + abs/core-testing/libmad/libmad_gcc43.patch | 10 + abs/core-testing/libmp4v2/PKGBUILD | 33 + abs/core-testing/libmysqlclient/PKGBUILD | 55 + abs/core-testing/libogg/PKGBUILD | 22 + abs/core-testing/libpcap/PKGBUILD | 44 + abs/core-testing/libpcap/libpcap-shared.patch | 51 + abs/core-testing/libpng/ChangeLog | 51 + abs/core-testing/libpng/PKGBUILD | 43 + abs/core-testing/libpng/libpng-1.2.29-apng.patch | 1671 ++ abs/core-testing/libpng/libpng-1.2.31-apng.patch | 1644 ++ abs/core-testing/librsvg/PKGBUILD | 28 + abs/core-testing/librsvg/librsvg.install | 14 + abs/core-testing/libsasl/PKGBUILD | 43 + .../libsasl/cyrus-sasl-2.1.19-checkpw.c.patch | 170 + abs/core-testing/libsasl/db-4.7.patch | 20 + abs/core-testing/libsasl/libsasl.install | 18 + abs/core-testing/libsm/PKGBUILD | 24 + abs/core-testing/libsmbios/PKGBUILD | 36 + abs/core-testing/libsndfile/PKGBUILD | 28 + abs/core-testing/libsndfile/flac-1.1.4.dpatch | 486 + .../libsndfile/lossy_comp_test-overflow.dpatch | 21 + abs/core-testing/libsndfile/overflow.dpatch | 46 + abs/core-testing/libstatgrab/PKGBUILD | 30 + abs/core-testing/libtasn1/PKGBUILD | 21 + abs/core-testing/libthai/PKGBUILD | 22 + abs/core-testing/libtheora/PKGBUILD | 26 + abs/core-testing/libtiff/CVE-2006-3459-3465.patch | 669 + abs/core-testing/libtiff/PKGBUILD | 31 + .../libtiff/tiff2pdf-compression.patch | 44 + .../libtiff/tiff2pdf-octal-printf.patch | 11 + .../libtiff/tiffsplit-fname-overflow.patch | 19 + abs/core-testing/libtool/PKGBUILD | 21 + abs/core-testing/libusb/PKGBUILD | 21 + abs/core-testing/libvorbis/PKGBUILD | 24 + abs/core-testing/libwmf/PKGBUILD | 31 + abs/core-testing/libwmf/libwmf.install | 18 + .../libx11/012_ru_RU_UTF-8_XLC_LOCALE.diff | 237 + abs/core-testing/libx11/PKGBUILD | 44 + abs/core-testing/libx11/xorg.sh | 19 + abs/core-testing/libx86/PKGBUILD | 27 + abs/core-testing/libx86/lrmi.patch | 16 + abs/core-testing/libxau/PKGBUILD | 22 + abs/core-testing/libxaw/PKGBUILD | 26 + abs/core-testing/libxcb/PKGBUILD | 29 + .../libxcb/xcb_xlib-no-assert-on-lock.patch | 30 + abs/core-testing/libxcomposite/PKGBUILD | 22 + abs/core-testing/libxcursor/PKGBUILD | 22 + abs/core-testing/libxdamage/PKGBUILD | 22 + abs/core-testing/libxdmcp/PKGBUILD | 22 + abs/core-testing/libxext/PKGBUILD | 21 + abs/core-testing/libxfixes/PKGBUILD | 22 + .../libxfixes/xfixes_coverity576.patch | 16 + abs/core-testing/libxfont/PKGBUILD | 24 + abs/core-testing/libxfontcache/PKGBUILD | 22 + abs/core-testing/libxft/PKGBUILD | 25 + abs/core-testing/libxi/PKGBUILD | 22 + abs/core-testing/libxinerama/PKGBUILD | 22 + abs/core-testing/libxkbfile/PKGBUILD | 25 + abs/core-testing/libxkbui/PKGBUILD | 23 + abs/core-testing/libxml2/PKGBUILD | 25 + abs/core-testing/libxmu/PKGBUILD | 23 + abs/core-testing/libxp/PKGBUILD | 24 + abs/core-testing/libxpm/PKGBUILD | 26 + abs/core-testing/libxrandr/PKGBUILD | 24 + abs/core-testing/libxrender/PKGBUILD | 22 + abs/core-testing/libxslt/ChangeLog | 9 + abs/core-testing/libxslt/PKGBUILD | 25 + abs/core-testing/libxss/PKGBUILD | 25 + abs/core-testing/libxt/PKGBUILD | 23 + abs/core-testing/libxtrap/PKGBUILD | 24 + abs/core-testing/libxtst/PKGBUILD | 23 + abs/core-testing/libxv/PKGBUILD | 25 + abs/core-testing/libxvmc/PKGBUILD | 23 + abs/core-testing/libxxf86dga/PKGBUILD | 23 + abs/core-testing/libxxf86misc/PKGBUILD | 23 + abs/core-testing/libxxf86vm/PKGBUILD | 24 + .../licenses/LICENSE.ralink-firmware.txt | 39 + abs/core-testing/licenses/PKGBUILD | 123 + abs/core-testing/licenses/ZopePublicLicense.txt | 54 + abs/core-testing/licenses/cc-by-3.0.txt | 60 + abs/core-testing/licenses/cc-by-nc-3.0.txt | 61 + abs/core-testing/licenses/cc-by-nc-nd-3.0.txt | 58 + abs/core-testing/licenses/cc-by-nc-sa-3.0.txt | 63 + abs/core-testing/licenses/cc-by-nd-3.0.txt | 57 + abs/core-testing/licenses/cc-by-sa-3.0.txt | 63 + abs/core-testing/licenses/cc-readme.txt | 12 + abs/core-testing/licenses/cddl-1.0.txt | 377 + abs/core-testing/licenses/cpl-1.0.txt | 217 + abs/core-testing/licenses/eclipse-1.0.txt | 88 + abs/core-testing/licenses/perlartistic.txt | 151 + abs/core-testing/licenses/python-2.txt | 270 + abs/core-testing/linhes-live/PKGBUILD | 30 + abs/core-testing/linhes-live/bin/gen_fstab | 122 + abs/core-testing/linhes-live/bin/km | 76 + abs/core-testing/linhes-live/etc/live-shutdown | 50 + abs/core-testing/linhes-live/etc/live-sysinit | 54 + abs/core-testing/linhes-live/etc/loginroot | 3 + abs/core-testing/linhes-live/etc/rc.shutdown-live | 167 + abs/core-testing/linhes-live/etc/rc.sysinit-live | 466 + abs/core-testing/linhes-live/etc/ulogin | 57 + .../linhes-live/lib/initcpio/gen_larch_init | 12 + .../linhes-live/lib/initcpio/hooks/larch1 | 120 + .../linhes-live/lib/initcpio/hooks/larch2 | 33 + .../linhes-live/lib/initcpio/hooks/larch2_aufs | 33 + .../linhes-live/lib/initcpio/hooks/larch3 | 192 + .../linhes-live/lib/initcpio/install/larch1 | 15 + .../linhes-live/lib/initcpio/install/larch2 | 15 + .../linhes-live/lib/initcpio/install/larch2_aufs | 15 + .../linhes-live/lib/initcpio/install/larch3 | 18 + abs/core-testing/linhes-live/lib/initcpio/kinit | 6 + .../linhes-live/lib/initcpio/mkinitcpio.conf | 54 + abs/core-testing/linuxtv-dvb-apps/ChangeLog | 2 + abs/core-testing/linuxtv-dvb-apps/PKGBUILD | 38 + .../linuxtv-dvb-apps/linuxtv-dvb-apps.install | 12 + abs/core-testing/lirc-utils/PKGBUILD | 66 + abs/core-testing/lirc-utils/kernel-2.6.26.patch | 122 + abs/core-testing/lirc-utils/lirc.logrotate | 5 + abs/core-testing/lirc-utils/lircd | 43 + abs/core-testing/lirc-utils/lircd.conf.d | 8 + abs/core-testing/lirc-utils/lircmd | 36 + abs/core-testing/lirc/PKGBUILD | 50 + abs/core-testing/lirc/kernel-2.6.26.patch | 122 + abs/core-testing/lirc/lirc.install | 50 + abs/core-testing/live-installer/LinHES-release | 1 + abs/core-testing/live-installer/MythVantage.sh | 3 + abs/core-testing/live-installer/PKGBUILD | 66 + abs/core-testing/live-installer/add_service.sh | 15 + abs/core-testing/live-installer/autocard.py | 302 + abs/core-testing/live-installer/bpopup-ui.xml | 164 + abs/core-testing/live-installer/build_diskless.sh | 143 + .../live-installer/copy-to-mythbase.sh | 12 + abs/core-testing/live-installer/create_master.sh | 57 + .../live-installer/file_time_offset.py | 39 + abs/core-testing/live-installer/install-ui.xml | 175 + .../live-installer/install_db_chroot.sh | 52 + .../live-installer/install_functions.sh | 484 + abs/core-testing/live-installer/install_proxy.sh | 481 + abs/core-testing/live-installer/issue | 1 + abs/core-testing/live-installer/live-install.sh | 28 + abs/core-testing/live-installer/live.install | 78 + abs/core-testing/live-installer/networkconfig.sh | 280 + abs/core-testing/live-installer/remove_service.sh | 8 + .../live-installer/restore_default_settings.sh | 325 + abs/core-testing/live-installer/soundconfig.sh | 248 + abs/core-testing/live-installer/startx | 29 + abs/core-testing/live-installer/systemconfig.sh | 1255 + .../templates/LCD/Shuttle-SG33/LCDd.conf | 869 + .../templates/LCD/Silverstone/LCDd.conf | 869 + .../templates/LCD/Silverstone/modules | 1 + .../templates/LCD/antec_fusion/LCDd.conf | 869 + .../templates/LCD/antec_fusion/lircd.conf | 38 + .../templates/LCD/antec_fusion/lircrc | 15 + .../templates/LCD/antec_fusion/modules | 1 + .../live-installer/templates/LCD/xosd/LCDd.conf | 957 + .../live-installer/templates/cc.orig.sh | 35 + abs/core-testing/live-installer/templates/cc.sh | 5 + .../live-installer/templates/cc_vol.sh | 5 + .../live-installer/templates/change_chan.sh | 19 + .../live-installer/templates/cron.template | 4 + .../templates/etcnet/eth/ipv4address | 2 + .../live-installer/templates/etcnet/eth/ipv4route | 2 + .../live-installer/templates/etcnet/eth/iwconfig | 2 + .../live-installer/templates/etcnet/eth/options | 7 + .../templates/evrouter/MythVantage-4 | 0 .../templates/evrouter/MythVantage-8 | 0 .../templates/evrouter/MythVantage-Full | 0 .../templates/evrouter/MythVantage8-minipac | 3 + .../templates/evrouter/MythVantage8-uhid | 3 + .../live-installer/templates/exports.template | 8 + .../live-installer/templates/fstab.conf.template | 16 + .../live-installer/templates/mysql.service | 13 + .../live-installer/templates/mysql.txt | 29 + .../live-installer/templates/ncid.conf.template | 51 + .../live-installer/templates/ncidd.conf.template | 143 + .../live-installer/templates/real_change_chan.sh | 19 + .../templates/remotes/ATI_wonder/lircd.ATI.conf | 357 + .../remotes/ATI_wonder/lircrc-atiwonder.txt | 922 + .../templates/remotes/ATI_wonder/preview.jpg | Bin 0 -> 63480 bytes .../remotes/MX-500-jams/lircd.conf.MX-500-JAMS | 115 + .../templates/remotes/MX-500-jams/lircrc | 832 + .../templates/remotes/MX-500-jams/preview.jpg | Bin 0 -> 10473 bytes .../templates/remotes/MythVantage-one/lircd.conf | 115 + .../templates/remotes/MythVantage-one/lircrc | 857 + .../templates/remotes/MythVantage-one/preview.jpg | Bin 0 -> 88727 bytes .../RadioShack_15-2116-Jarod_Wilson/lircd-rs.conf | 87 + .../RadioShack_15-2116-Jarod_Wilson/lircrc-rs | 539 + .../RadioShack_15-2116-Jarod_Wilson/preview.jpg | Bin 0 -> 7504 bytes .../templates/remotes/gr8zap/lircd.conf.streamzap | 69 + .../live-installer/templates/remotes/gr8zap/lircrc | 472 + .../templates/remotes/gr8zap/preview.jpg | Bin 0 -> 83195 bytes .../remotes/hauppauge/lircd.conf.hauppauge | 274 + .../remotes/hauppauge/lircmd.conf.hauppauge | 33 + .../templates/remotes/hauppauge/preview.jpg | Bin 0 -> 45763 bytes .../templates/remotes/imon-pad/lircd.conf | 88 + .../templates/remotes/imon-pad/lircrc | 240 + .../templates/remotes/imon-pad/preview.jpg | Bin 0 -> 33321 bytes .../templates/remotes/mceusb/lircd-mceusb.conf | 88 + .../templates/remotes/mceusb/lircrc-mceusb | 393 + .../templates/remotes/mceusb/preview.jpg | Bin 0 -> 12551 bytes .../templates/remotes/no_remote/preview.jpg | Bin 0 -> 3087 bytes .../templates/remotes/receiver_usb.id | 4 + .../remotes/snapstream_firefly/lircd.snapstrm.conf | 127 + .../remotes/snapstream_firefly/lircrc-snapstrm.txt | 590 + .../remotes/snapstream_firefly/preview.jpg | Bin 0 -> 63750 bytes .../remotes/streamzap/lircd.conf.streamzap | 69 + .../templates/remotes/streamzap/lircrc | 832 + .../templates/remotes/streamzap/preview.jpg | Bin 0 -> 83195 bytes .../live-installer/templates/samba/smb.conf.home | 10 + .../live-installer/templates/samba/smb.conf.media | 10 + .../templates/samba/smb.conf.template | 125 + .../templates/settings/default_1/keybindings.txt | 209 + .../templates/settings/default_1/settings.txt | 320 + .../templates/settings/default_2/keybindings.txt | 209 + .../templates/settings/default_2/settings.txt | 320 + .../live-installer/templates/sources/mv-core | 2 + .../templates/sources/mv-core-testing | 2 + .../live-installer/templates/sources/mv-extra | 2 + .../templates/sources/mv-extra-testing | 2 + .../live-installer/templates/sources/svc_pkg | 3 + .../transmit/Time_Warner_SA3250/lircd.conf | 413 + .../live-installer/templates/xine.config.template | 754 + .../live-installer/templates/xorg/modeline.ATSC | 33 + .../live-installer/templates/xorg/modeline.DVD | 9 + .../live-installer/templates/xorg/modeline.NTSC | 10 + .../live-installer/templates/xorg/modeline.VESA | 163 + .../live-installer/templates/xorg/modeline.custom | 1 + .../live-installer/templates/xorg/xorg.conf.ati | 94 + .../live-installer/templates/xorg/xorg.conf.intel | 148 + .../live-installer/templates/xorg/xorg.conf.nvidia | 90 + .../live-installer/templates/xorg/xorg.conf.via | 77 + .../live-installer/templates/xorg/xorg.conf.vmware | 72 + abs/core-testing/live-installer/timezip.py | 185 + abs/core-testing/live-installer/xconfig.sh | 233 + abs/core-testing/logrotate/PKGBUILD | 37 + abs/core-testing/logrotate/logrotate.conf | 28 + abs/core-testing/logrotate/logrotate.cron.daily | 3 + abs/core-testing/lsof/PKGBUILD | 30 + abs/core-testing/lsof/license.txt | 27 + abs/core-testing/lvm2/PKGBUILD | 35 + abs/core-testing/lvm2/lvm2_hook | 16 + abs/core-testing/lvm2/lvm2_install | 19 + abs/core-testing/lzo2/PKGBUILD | 22 + abs/core-testing/lzop/PKGBUILD | 21 + abs/core-testing/madwifi-utils/PKGBUILD | 35 + abs/core-testing/madwifi/PKGBUILD | 38 + abs/core-testing/madwifi/kernel-2.6.19.patch | 383 + abs/core-testing/madwifi/kernel-2.6.20.patch | 73 + abs/core-testing/madwifi/madwifi-ng.install | 23 + abs/core-testing/mailx/PKGBUILD | 24 + abs/core-testing/mailx/mailx-8.1.1.patch | 32 + abs/core-testing/mailx/mailx-gcc4.patch | 12 + abs/core-testing/man-pages/PKGBUILD | 41 + abs/core-testing/man/PKGBUILD | 31 + abs/core-testing/man/man-troff.patch | 16 + abs/core-testing/man/whatis.cron.daily | 9 + abs/core-testing/mcpp/PKGBUILD | 27 + abs/core-testing/mcpp/mcpp-2.6.4-patch | 22 + abs/core-testing/mdadm/PKGBUILD | 34 + abs/core-testing/mdadm/mdadm | 37 + abs/core-testing/mdadm/mdadm-2.2-segfault.patch | 12 + abs/core-testing/mdadm/mdadm.conf | 64 + abs/core-testing/mdadm/raid-partitions_hook | 21 + abs/core-testing/mdadm/raid-partitions_install | 32 + abs/core-testing/mesa/PKGBUILD | 63 + abs/core-testing/mesa/mesa-6.5-apps-noglut.patch | 17 + abs/core-testing/mkinitcpio/PKGBUILD | 27 + abs/core-testing/mlocate/PKGBUILD | 47 + abs/core-testing/mlocate/mlocate.db | 0 abs/core-testing/mlocate/mlocate.install | 27 + abs/core-testing/mlocate/updatedb.conf | 5 + abs/core-testing/mlocate/updatedb.cron.daily | 10 + abs/core-testing/module-init-tools/PKGBUILD | 33 + .../fix-modprobe-ignore-path.patch | 14 + abs/core-testing/module-init-tools/makefile.patch | 22 + abs/core-testing/module-init-tools/modprobe.conf | 3 + .../module-init-tools/modutils-gcc4.patch | 280 + .../mplayer/MPlayer-1.0rc1-gnome-screensaver.patch | 286 + abs/core-testing/mplayer/PKGBUILD | 67 + .../mplayer/demux_audio_fix_20080129.diff | 11 + .../mplayer/demux_mov_fix_20080129.diff | 45 + abs/core-testing/mplayer/ivtv_2.6.24.patch | 33 + .../mplayer/stream_cddb_fix_20080120.diff | 32 + abs/core-testing/mplayer/url_fix_20080120.diff | 10 + abs/core-testing/mtools/PKGBUILD | 23 + abs/core-testing/mysql-clients/PKGBUILD | 36 + abs/core-testing/mysql-python/PKGBUILD | 18 + abs/core-testing/mysql/PKGBUILD | 54 + abs/core-testing/mysql/my.cnf | 149 + abs/core-testing/mysql/mysql-no-clients.patch | 65 + abs/core-testing/mysql/mysqld | 87 + abs/core-testing/mysql/mysqld.conf.d | 1 + .../mythtv/stable/mytharchive/PKGBUILD | 35 + .../mythtv/stable/mythbrowser/PKGBUILD | 33 + .../mythtv/stable/mythcontrols/PKGBUILD | 32 + .../mythtv/stable/mythdb-initial/PKGBUILD | 21 + .../mythtv/stable/mythdb-initial/mc.sql | 2797 +++ .../mythtv/stable/mythdb-initial/mythdb.install | 31 + .../mythtv/stable/mythdb-initial/permissions.sql | 11 + abs/core-testing/mythtv/stable/mythflix/PKGBUILD | 31 + .../mythtv/stable/mythgallery/PKGBUILD | 32 + abs/core-testing/mythtv/stable/mythgame/PKGBUILD | 31 + abs/core-testing/mythtv/stable/mythmusic/PKGBUILD | 33 + .../mythtv/stable/mythmusic/music_flac.patch | 293 + .../mythtv/stable/mythmusic/mythmusic-0.21.patch | 22 + abs/core-testing/mythtv/stable/mythnews/PKGBUILD | 31 + abs/core-testing/mythtv/stable/mythphone/PKGBUILD | 32 + abs/core-testing/mythtv/stable/myththemes/PKGBUILD | 32 + abs/core-testing/mythtv/stable/mythtv/PKGBUILD | 70 + .../mythtv/stable/mythtv/QUICKSTART.archlinux | 69 + abs/core-testing/mythtv/stable/mythtv/mythbackend | 38 + .../mythtv/stable/mythtv/mythtv.install | 13 + abs/core-testing/mythtv/stable/mythvideo/PKGBUILD | 36 + abs/core-testing/mythtv/stable/mythvideo/mtd | 36 + .../mythtv/stable/mythweather/PKGBUILD | 32 + abs/core-testing/mythtv/stable/mythweb/PKGBUILD | 27 + .../mythtv/stable/mythweb/mythweb.install | 10 + abs/core-testing/nano/PKGBUILD | 25 + abs/core-testing/nano/nano.install | 20 + abs/core-testing/ncurses/PKGBUILD | 75 + abs/core-testing/ncurses/ncurses.install | 9 + abs/core-testing/ndiswrapper-utils/PKGBUILD | 22 + abs/core-testing/ndiswrapper/PKGBUILD | 29 + abs/core-testing/ndiswrapper/ndiswrapper.install | 28 + abs/core-testing/net-tools/PKGBUILD | 36 + abs/core-testing/net-tools/gcc340.patch | 46 + .../net-tools/net-tools-1.60-2.6-compilefix.patch | 23 + .../net-tools/net-tools-1.60-miiioctl.patch | 17 + .../net-tools/net-tools-1.60-nameif.patch | 58 + .../net-tools/net-tools-1.60-nameif_strncpy.patch | 13 + abs/core-testing/net-tools/net-tools.patch | 52 + abs/core-testing/net-tools/nisdomainname.conf.d | 3 + abs/core-testing/netcfg/PKGBUILD | 25 + abs/core-testing/ntfsprogs/PKGBUILD | 26 + abs/core-testing/ntfsprogs/ntfsprogs.install | 24 + abs/core-testing/nuvexport/PKGBUILD | 31 + .../nuvexport/nuvexport-ipod-disable.patch | 12 + abs/core-testing/openexr/PKGBUILD | 24 + abs/core-testing/openexr/gcc43.patch | 21 + abs/core-testing/openexr/openexr-gcc4.patch | 11 + abs/core-testing/openssh/PKGBUILD | 61 + abs/core-testing/openssh/sshd | 40 + abs/core-testing/openssh/sshd.confd | 4 + abs/core-testing/openssh/sshd.pam | 10 + abs/core-testing/openssl/PKGBUILD | 28 + abs/core-testing/pacman/PKGBUILD | 46 + abs/core-testing/pacman/mirrorlist | 101 + abs/core-testing/pacman/pacman.conf | 76 + abs/core-testing/pacman/pacman.install | 56 + abs/core-testing/pam/PKGBUILD | 50 + abs/core-testing/pam/other | 5 + abs/core-testing/pam/pam.install | 22 + abs/core-testing/pango/PKGBUILD | 24 + abs/core-testing/pango/pango.install | 26 + abs/core-testing/parted/PKGBUILD | 24 + abs/core-testing/parted/parted-1.7.1-fix-seg.patch | 13 + abs/core-testing/pciutils/PKGBUILD | 29 + abs/core-testing/pcmciautils/PKGBUILD | 34 + abs/core-testing/pcre/ChangeLog | 10 + abs/core-testing/pcre/PKGBUILD | 32 + .../pcre/libpcre-7.7-buffer-overflow.patch | 16 + abs/core-testing/perl/PKGBUILD | 102 + .../perl/archlinux-cpan-installdir.patch | 17 + abs/core-testing/perl/archlinux-inc-order.patch | 101 + .../perl-5.10.0-archlinux-cpan-installdir.patch | 11 + .../perl/perl-5.10.0-archlinux-inc-order.patch | 101 + abs/core-testing/perl/perl-5.8.6-picdl.patch0 | 13 + abs/core-testing/perl/perl-5.8.8-gcc-4.2.0.patch | 10 + abs/core-testing/perl/perl-5.8.8-utf-regexes.patch | 59 + abs/core-testing/perl/perl.install | 54 + abs/core-testing/perl/perlbin.sh | 2 + .../perl_modules/perl-archive-zip/PKGBUILD | 28 + .../perl_modules/perl-class-methodmaker/PKGBUILD | 23 + .../perl_modules/perl-crypt-ssleay/PKGBUILD | 23 + .../perl_modules/perl-date-manip/PKGBUILD | 28 + .../perl_modules/perl-dbd-mysql/PKGBUILD | 29 + abs/core-testing/perl_modules/perl-dbi/PKGBUILD | 28 + abs/core-testing/perl_modules/perl-fcgi/PKGBUILD | 23 + .../perl_modules/perl-file-slurp/PKGBUILD | 23 + .../perl_modules/perl-html-parser/PKGBUILD | 31 + .../perl_modules/perl-html-tagset/PKGBUILD | 31 + .../perl_modules/perl-html-tree/PKGBUILD | 23 + .../perl-http-cache-transparent/PKGBUILD | 23 + .../perl_modules/perl-io-socket-ssl/PKGBUILD | 31 + .../perl_modules/perl-io-stringy/PKGBUILD | 23 + abs/core-testing/perl_modules/perl-libwww/PKGBUILD | 32 + .../perl-lingua-en-numbers-ordinate/PKGBUILD | 23 + .../perl_modules/perl-lingua-en-numbers/PKGBUILD | 23 + .../perl_modules/perl-lingua-preferred/PKGBUILD | 23 + .../perl_modules/perl-mailtools/PKGBUILD | 29 + .../perl_modules/perl-mime-lite/PKGBUILD | 29 + .../perl_modules/perl-mime-tools/ChangeLog | 4 + .../perl_modules/perl-mime-tools/PKGBUILD | 23 + .../perl_modules/perl-mime-types/PKGBUILD | 29 + .../perl_modules/perl-net-ssleay/PKGBUILD | 33 + .../perl_modules/perl-soap-lite/PKGBUILD | 24 + .../perl_modules/perl-term-progressbar/PKGBUILD | 23 + .../perl_modules/perl-term-readkey/PKGBUILD | 28 + .../perl_modules/perl-text-bidi/PKGBUILD | 23 + .../perl_modules/perl-text-iconv/PKGBUILD | 25 + .../perl_modules/perl-text-kakasi/PKGBUILD | 23 + .../perl_modules/perl-timedate/PKGBUILD | 32 + .../perl_modules/perl-tk-tablematrix/PKGBUILD | 25 + abs/core-testing/perl_modules/perl-tk/PKGBUILD | 45 + .../perl_modules/perl-unicode-string/PKGBUILD | 28 + .../perl_modules/perl-unicode-utf8simple/PKGBUILD | 23 + abs/core-testing/perl_modules/perl-uri/PKGBUILD | 31 + .../perl_modules/perl-www-mechanize/PKGBUILD | 24 + .../perl_modules/perl-xml-libxml-common/ChangeLog | 5 + .../perl_modules/perl-xml-libxml-common/PKGBUILD | 25 + .../perl_modules/perl-xml-libxml/PKGBUILD | 26 + .../perl-xml-libxml/perl-xml-libxml.install | 19 + .../perl-xml-namespacesupport/PKGBUILD | 23 + .../perl_modules/perl-xml-sax/PKGBUILD | 26 + .../perl_modules/perl-xml-sax/perl-xml-sax.install | 15 + .../perl_modules/perl-xml-sax/perl-xml-sax.patch | 45 + .../perl_modules/perl-xml-simple/PKGBUILD | 26 + .../perl_modules/perl-xml-twig/PKGBUILD | 26 + .../perl_modules/perl-xml-writer/PKGBUILD | 23 + abs/core-testing/perlxml/PKGBUILD | 29 + abs/core-testing/php/PKGBUILD | 174 + abs/core-testing/php/apache.conf | 9 + abs/core-testing/php/db-configure.patch | 51 + abs/core-testing/php/php.ini | 1304 + abs/core-testing/php/php.install | 97 + abs/core-testing/pil/PKGBUILD | 26 + abs/core-testing/pixman/PKGBUILD | 20 + abs/core-testing/pkgconfig/PKGBUILD | 22 + .../plextor-convertX-driver/.svn/all-wcprops | 29 + .../plextor-convertX-driver/.svn/entries | 95 + .../plextor-convertX-driver/.svn/format | 1 + .../.svn/prop-base/PKGBUILD.svn-base | 5 + .../.svn/prop-base/convertX.install.svn-base | 5 + .../.svn/prop-base/download.php?id=9719.svn-base | 5 + .../prop-base/wis-go-0.9.8-2.6.17.patch.svn-base | 5 + .../.svn/text-base/PKGBUILD.svn-base | 31 + .../.svn/text-base/convertX.install.svn-base | 31 + .../.svn/text-base/download.php?id=9719.svn-base | 460 + .../text-base/wis-go-0.9.8-2.6.17.patch.svn-base | 76 + abs/core-testing/plextor-convertX-driver/PKGBUILD | 30 + .../plextor-convertX-driver/convertX.install | 31 + .../wis-go7007-2.6.26-nopage.diff | 26 + abs/core-testing/pm-utils/11netcfg | 26 + abs/core-testing/pm-utils/PKGBUILD | 29 + abs/core-testing/pm-utils/pm-utils.install | 15 + abs/core-testing/pm-utils/service.patch | 15 + abs/core-testing/popt/PKGBUILD | 33 + abs/core-testing/ppp/PKGBUILD | 47 + abs/core-testing/ppp/ip-down | 4 + abs/core-testing/ppp/ip-up | 4 + abs/core-testing/ppp/options | 352 + abs/core-testing/ppp/plog | 7 + abs/core-testing/ppp/poff | 103 + abs/core-testing/ppp/pon | 32 + abs/core-testing/ppp/pon.1 | 121 + abs/core-testing/ppp/ppp | 36 + abs/core-testing/printproto/PKGBUILD | 22 + abs/core-testing/procinfo/PKGBUILD | 22 + abs/core-testing/procinfo/procinfo-19.2.patch | 325 + abs/core-testing/procps/PKGBUILD | 24 + abs/core-testing/procps/sysctl.conf | 13 + abs/core-testing/psmisc/PKGBUILD | 25 + abs/core-testing/pycairo/PKGBUILD | 21 + abs/core-testing/pygobject/PKGBUILD | 21 + abs/core-testing/pygtk/PKGBUILD | 24 + abs/core-testing/python-numeric/PKGBUILD | 19 + abs/core-testing/python-pexpect/PKGBUILD | 17 + abs/core-testing/python/PKGBUILD | 69 + abs/core-testing/python/Python-2.4.4-gdbm-1.patch | 17 + abs/core-testing/python/Python-2.5.2-idlelib.patch | 17 + .../python/db4.6-setup.py-detection.patch | 11 + abs/core-testing/python/modulator-launcher | 2 + abs/core-testing/python/pynche-launcher | 3 + .../python-2.5.CVE-2007-4965-int-overflow.patch | 217 + abs/core-testing/python/python.install | 13 + .../python/python2.6-set_wakeup_fd4.patch | 94 + abs/core-testing/qt3/PKGBUILD | 101 + abs/core-testing/qt3/mysql.patch | 47 + abs/core-testing/qt3/qt-copy-kde-patches.tar.bz2 | Bin 0 -> 31498 bytes abs/core-testing/qt3/qt-font-default-subst.diff | 77 + abs/core-testing/qt3/qt-patches.tar.bz2 | Bin 0 -> 3627 bytes abs/core-testing/qt3/qt.install | 24 + abs/core-testing/qt3/qt.profile | 4 + abs/core-testing/qt3/utf8-bug-qt3.diff | 101 + abs/core-testing/randrproto/PKGBUILD | 21 + abs/core-testing/readline/PKGBUILD | 59 + abs/core-testing/readline/inputrc | 40 + abs/core-testing/readline/readline.install | 9 + abs/core-testing/recordproto/PKGBUILD | 19 + abs/core-testing/reiserfsprogs/PKGBUILD | 26 + abs/core-testing/renderproto/PKGBUILD | 18 + abs/core-testing/rp-pppoe/PKGBUILD | 25 + abs/core-testing/rp-pppoe/adsl | 35 + abs/core-testing/rt2500/PKGBUILD | 29 + abs/core-testing/rt2500/kernel-2.6.22.patch | 24125 +++++++++++++++++++ abs/core-testing/rt2500/kernel-2.6.24.patch | 20 + abs/core-testing/rt2500/rt2500.install | 26 + abs/core-testing/rt2x00-rt61-fw/PKGBUILD | 18 + abs/core-testing/rt2x00-rt71w-fw/PKGBUILD | 17 + abs/core-testing/run-parts/PKGBUILD | 22 + abs/core-testing/runit/PKGBUILD | 69 + abs/core-testing/runit/add_service.sh | 15 + abs/core-testing/runit/halt.script | 16 + abs/core-testing/runit/poweroff.script | 11 + abs/core-testing/runit/reboot.script | 11 + abs/core-testing/runit/remove_service.sh | 8 + abs/core-testing/runit/runit.install | 57 + abs/core-testing/runit/runitscripts/1 | 14 + abs/core-testing/runit/runitscripts/2 | 8 + abs/core-testing/runit/runitscripts/3 | 4 + abs/core-testing/runit/runitscripts/ctrlaltdel | 9 + abs/core-testing/runit/runitscripts/halt-runit | 2 + abs/core-testing/runit/runitscripts/logger | 11 + abs/core-testing/runit/runitscripts/reboot-runit | 2 + .../runit/runitscripts/services/Xvfb/finish | 12 + .../runit/runitscripts/services/Xvfb/run | 5 + .../runit/runitscripts/services/acpid/run | 3 + .../runit/runitscripts/services/alsa-utils/finish | 3 + .../runit/runitscripts/services/alsa-utils/run | 3 + .../runit/runitscripts/services/apache/run | 2 + .../runit/runitscripts/services/avahi/run | 4 + .../runit/runitscripts/services/cron/run | 3 + .../runit/runitscripts/services/dbus/run | 3 + .../runit/runitscripts/services/dnsmasq/run | 4 + .../runit/runitscripts/services/evrouter/finish | 4 + .../runit/runitscripts/services/evrouter/run | 5 + .../runit/runitscripts/services/frontend/finish | 30 + .../runit/runitscripts/services/frontend/log/run | 5 + .../runit/runitscripts/services/frontend/run | 10 + .../runit/runitscripts/services/gpm/run | 4 + .../runit/runitscripts/services/hal/run | 4 + .../runit/runitscripts/services/hobbit-client/run | 68 + .../runit/runitscripts/services/hobbit/run | 3 + .../runit/runitscripts/services/lcdd/run | 9 + .../runit/runitscripts/services/lighttpd/run | 2 + .../runit/runitscripts/services/lircd/finish | 12 + .../runit/runitscripts/services/lircd/run | 39 + .../runit/runitscripts/services/mysql/run | 29 + .../runitscripts/services/mythbackend/log/run | 4 + .../runit/runitscripts/services/mythbackend/run | 25 + .../runit/runitscripts/services/ncid/run | 5 + .../runit/runitscripts/services/ncidd/run | 3 + .../runit/runitscripts/services/netfs/finish | 3 + .../runit/runitscripts/services/netfs/run | 5 + .../runit/runitscripts/services/nfsd/run | 22 + .../runit/runitscripts/services/nfslock/run | 4 + .../runit/runitscripts/services/nmbd/run | 3 + .../runit/runitscripts/services/ntpd/run | 3 + .../runit/runitscripts/services/oss/finish | 4 + .../runit/runitscripts/services/oss/run | 6 + .../runit/runitscripts/services/portmap/run | 3 + .../runit/runitscripts/services/smbd/run | 3 + .../runit/runitscripts/services/sshd/run | 8 + .../runit/runitscripts/services/syslog-ng/run | 3 + .../runit/runitscripts/services/tty2/run | 2 + .../runit/runitscripts/services/tty3/run | 2 + abs/core-testing/scrnsaverproto/PKGBUILD | 21 + abs/core-testing/sdl/PKGBUILD | 21 + abs/core-testing/sdparm/PKGBUILD | 22 + abs/core-testing/sed/PKGBUILD | 21 + abs/core-testing/sg3_utils/PKGBUILD | 18 + abs/core-testing/shadow/PKGBUILD | 88 + abs/core-testing/shadow/adduser | 399 + abs/core-testing/shadow/chage | 6 + abs/core-testing/shadow/chsh | 6 + abs/core-testing/shadow/login | 18 + abs/core-testing/shadow/login.defs | 212 + abs/core-testing/shadow/passwd | 4 + abs/core-testing/shadow/shadow | 6 + .../shadow/shadow-4.0.18.2-useradd-fix-1.patch | 26 + abs/core-testing/shadow/shadow-UID_GID.patch | 34 + abs/core-testing/shadow/shadow.cron.daily | 6 + abs/core-testing/shadow/shadow.install | 11 + abs/core-testing/shadow/useradd | 6 + abs/core-testing/shadow/useradd-default.patch | 14 + abs/core-testing/shadow/xstrdup.patch | 9 + abs/core-testing/smbclient/PKGBUILD | 58 + abs/core-testing/smbclient/heimdal.patch | 33 + abs/core-testing/squashfs-tools/PKGBUILD | 24 + abs/core-testing/sudo/PKGBUILD | 33 + abs/core-testing/sudo/sudo.pam | 3 + abs/core-testing/sysfsutils/PKGBUILD | 31 + abs/core-testing/syslinux/PKGBUILD | 25 + abs/core-testing/syslog-ng/PKGBUILD | 31 + abs/core-testing/syslog-ng/syslog-ng | 39 + abs/core-testing/syslog-ng/syslog-ng.conf | 91 + abs/core-testing/syslog-ng/syslog-ng.logrotate | 7 + abs/core-testing/sysvinit/PKGBUILD | 26 + abs/core-testing/sysvinit/halt-init.patch | 17 + abs/core-testing/taglib/PKGBUILD | 29 + abs/core-testing/tar/PKGBUILD | 22 + abs/core-testing/tar/tar.1 | 376 + abs/core-testing/tcl/ChangeLog | 10 + abs/core-testing/tcl/PKGBUILD | 41 + abs/core-testing/tcp_wrappers/PKGBUILD | 35 + abs/core-testing/tcp_wrappers/gcc340.patch | 11 + abs/core-testing/tcp_wrappers/hosts.allow | 5 + abs/core-testing/tcp_wrappers/hosts.deny | 7 + abs/core-testing/tcp_wrappers/safe_finger.8 | 34 + .../tcp_wrappers/shared_lib_plus_plus-1.patch | 1025 + abs/core-testing/tcp_wrappers/try-from.8 | 28 + abs/core-testing/tiacx-firmware/PKGBUILD | 20 + .../tiacx-firmware/tiacx-firmware.install | 22 + abs/core-testing/tiacx/PKGBUILD | 23 + abs/core-testing/tiacx/acx.install | 23 + abs/core-testing/tk/ChangeLog | 16 + abs/core-testing/tk/PKGBUILD | 37 + abs/core-testing/trapproto/PKGBUILD | 19 + abs/core-testing/ttf-dejavu/ChangeLog | 9 + abs/core-testing/ttf-dejavu/PKGBUILD | 25 + abs/core-testing/ttf-dejavu/ttf-dejavu.install | 13 + abs/core-testing/tzdata/Makefile.patch | 140 + abs/core-testing/tzdata/PKGBUILD | 36 + abs/core-testing/tzdata/chile.patch | 65 + abs/core-testing/udev/00-load-blacklist.rules | 1 + abs/core-testing/udev/51-arch.rules | 191 + abs/core-testing/udev/PKGBUILD | 82 + abs/core-testing/udev/arch-udev-rules.patch | 151 + abs/core-testing/udev/cdrom-rules.patch | 8 + abs/core-testing/udev/cdsymlinks.sh | 45 + abs/core-testing/udev/load-modules.sh | 60 + abs/core-testing/udev/migrate-udev | 29 + abs/core-testing/udev/mod-blacklist.sh | 47 + abs/core-testing/udev/readme-udev-arch.txt | 264 + abs/core-testing/udev/root-link.sh | 7 + abs/core-testing/udev/start_udev | 137 + abs/core-testing/udev/udev.install | 22 + abs/core-testing/udev/udev.rules | 456 + abs/core-testing/udev/usb_id-fix.patch | 107 + abs/core-testing/unichrome-dri/PKGBUILD | 40 + abs/core-testing/unison/PKGBUILD | 28 + abs/core-testing/unison/ocaml-3.08-extnames.patch | 14 + abs/core-testing/unison/unison.desktop | 13 + abs/core-testing/unison/unison.install | 32 + abs/core-testing/usbutils/PKGBUILD | 25 + abs/core-testing/util-linux-ng/PKGBUILD | 38 + .../util-linux-ng/util-linux-ng-2.14-20080624.diff | 6826 ++++++ abs/core-testing/v4l-dvb/PKGBUILD | 24 + abs/core-testing/v4l-dvb/v4l-dvb.install | 23 + abs/core-testing/vbetool/PKGBUILD | 32 + abs/core-testing/vi/PKGBUILD | 62 + abs/core-testing/vi/fetch_patches.sh | 63 + abs/core-testing/vi/fetch_runtime.sh | 117 + abs/core-testing/vi/vi.install | 37 + abs/core-testing/videoproto/PKGBUILD | 19 + abs/core-testing/wget/PKGBUILD | 21 + abs/core-testing/which/PKGBUILD | 20 + abs/core-testing/wlan-ng26-utils/PKGBUILD | 32 + .../wlan-ng26-utils/kernel-2.6.22-r1832.patch | 120 + .../wlan-ng26-utils/kernel-2.6.26.patch | 14 + abs/core-testing/wlan-ng26-utils/wlan | 68 + abs/core-testing/wlan-ng26-utils/wlan-ng.patch | 14 + abs/core-testing/wlan-ng26/PKGBUILD | 35 + abs/core-testing/wlan-ng26/kernel-2.6.26.patch | 14 + abs/core-testing/wlan-ng26/wlan-ng26.install | 30 + abs/core-testing/wpa_supplicant/PKGBUILD | 36 + abs/core-testing/wpa_supplicant/config | 308 + .../wpa_supplicant/wpa_supplicant.install | 15 + abs/core-testing/x264/PKGBUILD | 35 + abs/core-testing/xbitmaps/PKGBUILD | 22 + abs/core-testing/xcb-proto/PKGBUILD | 21 + abs/core-testing/xcursor-themes/PKGBUILD | 20 + abs/core-testing/xextproto/PKGBUILD | 22 + abs/core-testing/xf86-input-acecad/PKGBUILD | 22 + abs/core-testing/xf86-input-aiptek/PKGBUILD | 23 + abs/core-testing/xf86-input-calcomp/PKGBUILD | 23 + abs/core-testing/xf86-input-citron/PKGBUILD | 24 + abs/core-testing/xf86-input-digitaledge/PKGBUILD | 23 + abs/core-testing/xf86-input-dmc/PKGBUILD | 23 + abs/core-testing/xf86-input-dynapro/PKGBUILD | 23 + abs/core-testing/xf86-input-elo2300/PKGBUILD | 22 + abs/core-testing/xf86-input-elographics/PKGBUILD | 26 + abs/core-testing/xf86-input-evdev/PKGBUILD | 22 + abs/core-testing/xf86-input-fpit/PKGBUILD | 23 + abs/core-testing/xf86-input-hyperpen/PKGBUILD | 23 + abs/core-testing/xf86-input-jamstudio/PKGBUILD | 23 + abs/core-testing/xf86-input-joystick/PKGBUILD | 23 + abs/core-testing/xf86-input-keyboard/PKGBUILD | 25 + .../xf86-input-keyboard/new-server.patch | 5087 ++++ abs/core-testing/xf86-input-magellan/PKGBUILD | 23 + abs/core-testing/xf86-input-magictouch/PKGBUILD | 23 + abs/core-testing/xf86-input-microtouch/PKGBUILD | 23 + abs/core-testing/xf86-input-mouse/PKGBUILD | 25 + abs/core-testing/xf86-input-mutouch/PKGBUILD | 23 + abs/core-testing/xf86-input-palmax/PKGBUILD | 23 + abs/core-testing/xf86-input-penmount/PKGBUILD | 23 + abs/core-testing/xf86-input-spaceorb/PKGBUILD | 23 + abs/core-testing/xf86-input-summa/PKGBUILD | 23 + abs/core-testing/xf86-input-tek4957/PKGBUILD | 23 + abs/core-testing/xf86-input-ur98/PKGBUILD | 23 + abs/core-testing/xf86-input-vmmouse/PKGBUILD | 23 + abs/core-testing/xf86-input-void/PKGBUILD | 23 + abs/core-testing/xf86-video-amd/PKGBUILD | 27 + abs/core-testing/xf86-video-apm/PKGBUILD | 22 + abs/core-testing/xf86-video-ark/PKGBUILD | 22 + abs/core-testing/xf86-video-ati/PKGBUILD | 51 + abs/core-testing/xf86-video-chips/PKGBUILD | 22 + abs/core-testing/xf86-video-cirrus/PKGBUILD | 22 + abs/core-testing/xf86-video-dummy/PKGBUILD | 23 + abs/core-testing/xf86-video-fbdev/PKGBUILD | 23 + abs/core-testing/xf86-video-glint/PKGBUILD | 23 + abs/core-testing/xf86-video-i128/PKGBUILD | 23 + abs/core-testing/xf86-video-i740/PKGBUILD | 23 + abs/core-testing/xf86-video-imstt/PKGBUILD | 23 + abs/core-testing/xf86-video-intel/PKGBUILD | 25 + abs/core-testing/xf86-video-mga/PKGBUILD | 49 + abs/core-testing/xf86-video-neomagic/PKGBUILD | 22 + abs/core-testing/xf86-video-nv/PKGBUILD | 26 + abs/core-testing/xf86-video-radeonhd/PKGBUILD | 26 + abs/core-testing/xf86-video-rendition/PKGBUILD | 23 + abs/core-testing/xf86-video-s3/PKGBUILD | 23 + abs/core-testing/xf86-video-s3virge/PKGBUILD | 49 + abs/core-testing/xf86-video-savage/PKGBUILD | 49 + abs/core-testing/xf86-video-siliconmotion/PKGBUILD | 23 + abs/core-testing/xf86-video-sis/PKGBUILD | 48 + abs/core-testing/xf86-video-sisusb/PKGBUILD | 23 + abs/core-testing/xf86-video-tdfx/PKGBUILD | 49 + abs/core-testing/xf86-video-trident/PKGBUILD | 49 + abs/core-testing/xf86-video-tseng/PKGBUILD | 23 + abs/core-testing/xf86-video-unichrome/PKGBUILD | 26 + .../xf86-video-unichrome/fix-defines.patch | 68 + abs/core-testing/xf86-video-v4l/PKGBUILD | 23 + abs/core-testing/xf86-video-vesa/COPYING | 24 + abs/core-testing/xf86-video-vesa/PKGBUILD | 27 + abs/core-testing/xf86-video-vga/PKGBUILD | 23 + abs/core-testing/xf86-video-vmware/PKGBUILD | 22 + abs/core-testing/xf86-video-voodoo/PKGBUILD | 23 + abs/core-testing/xf86dgaproto/PKGBUILD | 18 + abs/core-testing/xf86miscproto/PKGBUILD | 19 + abs/core-testing/xf86vidmodeproto/PKGBUILD | 19 + abs/core-testing/xfsprogs/PKGBUILD | 28 + abs/core-testing/xineramaproto/PKGBUILD | 19 + abs/core-testing/xkeyboard-config/PKGBUILD | 30 + abs/core-testing/xmltv/PKGBUILD | 29 + abs/core-testing/xorg-apps/PKGBUILD | 78 + abs/core-testing/xorg-font-utils/PKGBUILD | 54 + abs/core-testing/xorg-font-utils/ttmkfdir.patch | 86 + .../xorg-font-utils/ttmkfdir_gcc43.patch | 8 + .../xorg-font-utils/xorg-font-utils.install | 8 + abs/core-testing/xorg-fonts-100dpi/PKGBUILD | 35 + abs/core-testing/xorg-fonts-100dpi/xfonts.install | 20 + abs/core-testing/xorg-fonts-75dpi/PKGBUILD | 35 + abs/core-testing/xorg-fonts-75dpi/xfonts.install | 20 + abs/core-testing/xorg-fonts-alias/PKGBUILD | 22 + abs/core-testing/xorg-fonts-encodings/PKGBUILD | 21 + .../xorg-fonts-encodings.install | 16 + abs/core-testing/xorg-fonts-misc/PKGBUILD | 45 + abs/core-testing/xorg-fonts-misc/xfonts.install | 20 + abs/core-testing/xorg-res-utils/PKGBUILD | 31 + abs/core-testing/xorg-server-utils/PKGBUILD | 75 + abs/core-testing/xorg-server/PKGBUILD | 92 + abs/core-testing/xorg-server/xorg-server.install | 12 + abs/core-testing/xorg-utils/PKGBUILD | 47 + abs/core-testing/xorg-xauth/PKGBUILD | 23 + abs/core-testing/xorg-xinit/PKGBUILD | 39 + abs/core-testing/xorg-xinit/xinitrc | 18 + abs/core-testing/xorg-xinit/xserverrc | 1 + abs/core-testing/xorg-xinit/xsession | 10 + abs/core-testing/xorg-xkb-utils/PKGBUILD | 34 + abs/core-testing/xproto/PKGBUILD | 22 + abs/core-testing/xterm/PKGBUILD | 43 + abs/core-testing/xtrans/PKGBUILD | 21 + abs/core-testing/xvidcore/PKGBUILD | 28 + abs/core-testing/zd1211-firmware/PKGBUILD | 22 + abs/core-testing/zlib/PKGBUILD | 25 + abs/core/a52dec/PKGBUILD | 26 + abs/core/a52dec/a52dec-0.7.4-build.patch | 27 + abs/core/aalib/PKGBUILD | 24 + abs/core/aalib/aclocal-fixes.patch | 11 + abs/core/acl/PKGBUILD | 35 + abs/core/alsa-lib/PKGBUILD | 23 + abs/core/alsa-lib/python2.5.patch | 11 + ...ch-to-fix-converting-32bit-audio-to-16bit.patch | 242 + abs/core/alsa-oss/PKGBUILD | 20 + abs/core/alsa-utils/PKGBUILD | 27 + abs/core/alsa-utils/alsa | 48 + abs/core/alsa-utils/alsa.conf.d | 4 + abs/core/alsa-utils/alsaconf.patch | 21 + abs/core/apache/PKGBUILD | 81 + abs/core/apache/arch.layout | 22 + abs/core/apache/httpd | 40 + abs/core/apache/httpd.install | 16 + abs/core/apache/httpd.logrotate | 5 + abs/core/apr-util/PKGBUILD | 24 + abs/core/apr/PKGBUILD | 25 + abs/core/aspell/PKGBUILD | 24 + abs/core/aspell/aspell.install | 8 + abs/core/atk/PKGBUILD | 21 + abs/core/attr/PKGBUILD | 37 + abs/core/aufs-utils/PKGBUILD | 40 + abs/core/aufs/PKGBUILD | 57 + abs/core/aufs/aufs.install | 31 + abs/core/b43-fwcutter/PKGBUILD | 21 + abs/core/base.list | 98 + abs/core/bash/PKGBUILD | 87 + abs/core/bash/bash-noinfo.patch | 12 + abs/core/bash/bashrc | 3 + abs/core/bash/profile | 35 + abs/core/bash/profile.bash | 25 + abs/core/bc/PKGBUILD | 24 + abs/core/bc/build-fix.patch | 13 + abs/core/bigreqsproto/PKGBUILD | 20 + abs/core/binutils/PKGBUILD | 67 + abs/core/bzip2/PKGBUILD | 47 + abs/core/ca-certificates/PKGBUILD | 33 + abs/core/ca-certificates/ca-certificates.install | 7 + abs/core/cairo/PKGBUILD | 23 + abs/core/cdparanoia/ChangeLog | 18 + abs/core/cdparanoia/PKGBUILD | 22 + abs/core/cdrdao/PKGBUILD | 21 + abs/core/cdrdao/cdrdao-1.2.2-gcc43.patch | 73 + abs/core/cdrdao/gcc4.patch | 23 + abs/core/cdrkit/ChangeLog | 10 + abs/core/cdrkit/PKGBUILD | 38 + abs/core/compositeproto/PKGBUILD | 20 + abs/core/coreutils/PKGBUILD | 62 + .../coreutils/coreutils-6.10-configuration.patch | 62 + abs/core/coreutils/coreutils-i18n.patch | 4045 ++++ abs/core/coreutils/coreutils-pam.patch | 413 + abs/core/coreutils/coreutils-uname.patch | 173 + abs/core/coreutils/futimes.patch | 47 + abs/core/coreutils/su | 9 + abs/core/cpio/PKGBUILD | 25 + abs/core/cpio/cpio-2.9-gcc43.patch | 31 + abs/core/cracklib/PKGBUILD | 26 + abs/core/cryptsetup/PKGBUILD | 39 + .../cryptsetup-1.0.5-run_udevsettle.patch | 29 + abs/core/cryptsetup/encrypt_hook | 122 + abs/core/cryptsetup/encrypt_install | 22 + abs/core/cryptsetup/luksOpen-status.patch | 13 + abs/core/curl/ChangeLog | 19 + abs/core/curl/PKGBUILD | 25 + abs/core/damageproto/PKGBUILD | 19 + abs/core/dash/PKGBUILD | 29 + abs/core/db/PKGBUILD | 27 + abs/core/db/db.install | 29 + abs/core/db4.5/PKGBUILD | 41 + abs/core/dbus-glib/PKGBUILD | 22 + abs/core/dbus/PKGBUILD | 48 + abs/core/dbus/dbus | 57 + abs/core/dbus/dbus.install | 21 + abs/core/dcron/PKGBUILD | 38 + abs/core/dcron/crond | 37 + abs/core/dcron/crond.logrotate | 5 + abs/core/dcron/dcron-3.1.patch | 33 + abs/core/dcron/root.crontab | 12 + abs/core/dcron/run-cron | 14 + abs/core/device-mapper/PKGBUILD | 30 + abs/core/device-mapper/device-mapper.rules | 1 + abs/core/dhcpcd/PKGBUILD | 27 + abs/core/dhcpcd/dhcpcd.conf.d | 6 + abs/core/dialog/PKGBUILD | 21 + abs/core/dialog/timeout.patch | 11 + abs/core/diffutils/PKGBUILD | 20 + abs/core/dmapi/PKGBUILD | 31 + abs/core/dmidecode/PKGBUILD | 20 + abs/core/dmxproto/PKGBUILD | 19 + abs/core/dnsutils/PKGBUILD | 31 + abs/core/dnsutils/bind.so_bsdcompat.diff | 11 + abs/core/dnsutils/tools-only.patch | 22 + abs/core/dosfstools/PKGBUILD | 20 + abs/core/dosfstools/linux-2.6.patch | 64 + abs/core/dvd+rw-tools/PKGBUILD | 32 + .../buildpatch-7.0-3-20080108-karolina.patch | 22 + abs/core/dvdauthor/PKGBUILD | 21 + abs/core/e2fsprogs/Makefile-fsck.static.patch | 13 + abs/core/e2fsprogs/PKGBUILD | 34 + abs/core/e2fsprogs/mke2fs.conf | 26 + abs/core/eject/PKGBUILD | 20 + abs/core/eject/eject-2.1.5-handle-spaces.patch | 57 + abs/core/etcnet/10-defaults | 6 + abs/core/etcnet/PKGBUILD | 39 + abs/core/etcnet/adddhcp.patch | 51 + abs/core/etcnet/etcnet.install | 42 + abs/core/etcnet/functions.patch | 12 + abs/core/etcnet/ipv4address | 1 + abs/core/etcnet/ipv4route | 1 + abs/core/etcnet/network | 6 + abs/core/etcnet/options | 62 + abs/core/expat/PKGBUILD | 23 + abs/core/expect/PKGBUILD | 35 + abs/core/faac/PKGBUILD | 28 + abs/core/faac/libmp4v2.patch | 11 + abs/core/faac/pipe-output.patch | 18 + abs/core/faad2/ChangeLog | 14 + abs/core/faad2/LICENSE | 28 + abs/core/faad2/PKGBUILD | 45 + abs/core/faad2/faad2-2.6.1-abi_has_changed.patch | 14 + abs/core/faad2/faad2-2.6.1-broken-pipe.patch | 22 + abs/core/faad2/faad2-2.6.1-implicitdeclar.patch | 11 + abs/core/faad2/faad2-2.6.1-libtool22.patch | 13 + abs/core/feh/PKGBUILD | 17 + abs/core/ffmpeg/PKGBUILD | 48 + abs/core/fftw2/PKGBUILD | 34 + abs/core/file/PKGBUILD | 23 + abs/core/filesystem/PKGBUILD | 90 + abs/core/filesystem/crypttab | 33 + abs/core/filesystem/filesystem.install | 60 + abs/core/filesystem/fstab | 11 + abs/core/filesystem/group | 28 + abs/core/filesystem/gshadow | 27 + abs/core/filesystem/host.conf | 8 + abs/core/filesystem/hosts | 8 + abs/core/filesystem/issue | 3 + abs/core/filesystem/ld.so.conf | 5 + abs/core/filesystem/motd | 0 abs/core/filesystem/nsswitch.conf | 19 + abs/core/filesystem/passwd | 7 + abs/core/filesystem/profile | 57 + abs/core/filesystem/protocols | 57 + abs/core/filesystem/resolv.conf | 8 + abs/core/filesystem/securetty | 13 + abs/core/filesystem/services | 557 + abs/core/filesystem/shadow | 7 + abs/core/filesystem/shells | 9 + abs/core/findutils/PKGBUILD | 30 + abs/core/fixesproto/PKGBUILD | 20 + abs/core/flac/PKGBUILD | 32 + abs/core/flac/flac-1.2.1-gcc43.patch | 10 + abs/core/flac/flac-linking.diff | 12 + abs/core/flac/xmms-plugin.patch | 11 + abs/core/fltk/PKGBUILD | 23 + abs/core/fluxbox/PKGBUILD | 38 + abs/core/fluxbox/fluxbox-1.0.0-gcc43.patch | 10 + abs/core/fluxbox/fluxbox.desktop | 6 + abs/core/fontcacheproto/PKGBUILD | 19 + abs/core/fontconfig/29-replace-bitmap-fonts.conf | 37 + abs/core/fontconfig/PKGBUILD | 32 + abs/core/fontconfig/fontconfig.install | 100 + abs/core/fontsproto/PKGBUILD | 19 + abs/core/freeglut/PKGBUILD | 30 + abs/core/freeglut/glut-cursor-inherit.patch | 23 + abs/core/freetype2/PKGBUILD | 33 + abs/core/freetype2/bytecode.patch | 29 + .../freetype2/freetype-2.2.1-enable-valid.patch | 20 + abs/core/freetype2/freetype-2.2.1-memcpy-fix.patch | 14 + abs/core/freetype2/freetype-2.3.0-enable-spr.patch | 11 + abs/core/freetype2/freetype-2.3.3-ftbitmap.patch | 25 + abs/core/freetype2/freetype2.install | 23 + abs/core/fribidi/ChangeLog | 5 + abs/core/fribidi/PKGBUILD | 23 + abs/core/fuse/PKGBUILD | 38 + abs/core/fuse/fuse.install | 14 + abs/core/fuse/fuse.rc.d | 49 + abs/core/fxload/PKGBUILD | 20 + abs/core/gawk/PKGBUILD | 31 + abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch | 43 + abs/core/gcc-libs/PKGBUILD | 65 + abs/core/gcc-libs/gcc-hash-style-both.patch | 163 + abs/core/gcc-libs/gcc_pure64.patch | 26 + abs/core/gdbm/PKGBUILD | 24 + abs/core/gen-init-cpio/Makefile | 42 + abs/core/gen-init-cpio/PKGBUILD | 21 + abs/core/gen-init-cpio/gen_init_cpio.c | 514 + abs/core/gettext/PKGBUILD | 22 + abs/core/ghostscript/PKGBUILD | 50 + abs/core/ghostscript/ghostscript-fPIC.patch | 31 + abs/core/ghostscript/ghostscript.install | 14 + abs/core/giblib/PKGBUILD | 20 + abs/core/giflib/PKGBUILD | 35 + abs/core/glib2/PKGBUILD | 32 + abs/core/glib2/gkeyfile-bool-nocase.patch | 16 + abs/core/glib2/glib2.csh | 1 + abs/core/glib2/glib2.sh | 1 + abs/core/glibc/ChangeLog | 28 + abs/core/glibc/PKGBUILD | 100 + abs/core/glibc/fix-makecontext.patch | 33 + abs/core/glibc/glibc.install | 122 + abs/core/glibc/locale-gen | 42 + abs/core/glibc/locale.gen | 438 + abs/core/glibc/locale.gen.txt | 23 + abs/core/glibc/nscd | 40 + abs/core/glproto/PKGBUILD | 20 + abs/core/gnutls/PKGBUILD | 24 + abs/core/gpm/ChangeLog | 11 + abs/core/gpm/PKGBUILD | 35 + abs/core/gpm/gpm | 40 + abs/core/gpm/gpm.conf.d | 4 + abs/core/grep/01-fgrep.patch | 145 + abs/core/grep/02-bracket.patch | 11 + abs/core/grep/03-i18n.patch | 303 + abs/core/grep/04-oi.patch | 48 + abs/core/grep/05-manpage.patch | 19 + abs/core/grep/06-color.patch | 10 + abs/core/grep/07-icolor.patch | 36 + abs/core/grep/08-skip.patch | 42 + abs/core/grep/09-egf-speedup.patch | 823 + abs/core/grep/10-dfa-optional.patch | 67 + abs/core/grep/11-tests.patch | 138 + abs/core/grep/12-w.patch | 121 + abs/core/grep/13-P.patch | 14 + abs/core/grep/14-mem-exhausted.patch | 15 + abs/core/grep/15-empty-pattern.patch | 36 + abs/core/grep/64-egf-speedup.patch | 791 + abs/core/grep/PKGBUILD | 50 + abs/core/groff/PKGBUILD | 34 + abs/core/groff/man-utf8.tmac | 9 + abs/core/grub/040_all_grub-0.96-nxstack.patch | 623 + abs/core/grub/05-grub-0.97-initrdaddr.diff | 16 + abs/core/grub/PKGBUILD | 81 + abs/core/grub/grub-0.97-gpt.patch | 315 + abs/core/grub/grub-inode-size.patch | 94 + abs/core/grub/i2o.patch | 45 + abs/core/grub/install-grub | 187 + abs/core/grub/intelmac.patch | 67 + abs/core/grub/menu.lst | 46 + abs/core/grub/more-raid.patch | 100 + abs/core/grub/special-devices.patch | 18 + abs/core/gsfonts/PKGBUILD | 18 + abs/core/gsfonts/xfonts.install | 20 + abs/core/gtk2/PKGBUILD | 35 + abs/core/gtk2/gtk2.install | 27 + abs/core/gtk2/gtkclipboard-check.patch | 11 + abs/core/gzip/PKGBUILD | 31 + abs/core/gzip/gzip-fixpaths.patch | 37 + abs/core/gzip/gzip-fixutimens.patch | 36 + abs/core/gzip/gzip-security-update.patch | 186 + abs/core/hal-info/PKGBUILD | 23 + abs/core/hal/PKGBUILD | 49 + abs/core/hal/cryptsetup_location.patch | 36 + abs/core/hal/hal | 54 + abs/core/hal/hal-0.5.9-hide-diagnostic.patch | 14 + abs/core/hal/hal-policy.patch | 32 + abs/core/hal/hal.install | 25 + abs/core/hal/ntfs3g-valid-options.patch | 11 + abs/core/hdparm/PKGBUILD | 33 + abs/core/heimdal/002_all_heimdal-no_libedit.patch | 10 + abs/core/heimdal/003_all_heimdal-fPIC.patch | 12 + abs/core/heimdal/004_all_heimdal-rxapps.patch | 19 + abs/core/heimdal/006_all_heimdal-suid_fix.patch | 20 + .../heimdal/010_all_heimdal-system-libss.patch | 40 + abs/core/heimdal/PKGBUILD | 103 + abs/core/heimdal/heimdal-kdc.rc | 40 + abs/core/heimdal/kadmind.rc | 40 + abs/core/heimdal/kpasswd.rc | 40 + abs/core/hwdetect/PKGBUILD | 18 + abs/core/hwdetect/hwdetect | 482 + abs/core/imagemagick/ChangeLog | 44 + abs/core/imagemagick/PKGBUILD | 56 + abs/core/imagemagick/add_delegate.patch | 8 + abs/core/imagemagick/libpng_mmx_patch_x86_64.patch | 12 + abs/core/imlib2/PKGBUILD | 28 + abs/core/initscripts/ChangeLog | 2083 ++ abs/core/initscripts/PKGBUILD | 22 + abs/core/initscripts/initscripts.install | 25 + abs/core/inputproto/PKGBUILD | 22 + abs/core/intel-dri/PKGBUILD | 38 + abs/core/iproute/PKGBUILD | 26 + abs/core/iproute/iproute2-2.4.7-now-ss020116.patch | 9823 ++++++++ abs/core/iptables/PKGBUILD | 30 + abs/core/iptables/PKGBUILD.orig | 36 + abs/core/iptables/empty.rules | 6 + abs/core/iptables/ip6tables | 97 + abs/core/iptables/iptables | 95 + abs/core/iptables/iptables.conf.d | 8 + abs/core/iptables/simple_firewall.rules | 11 + abs/core/iputils/PKGBUILD | 72 + .../iputils/iputils-20070202-no-open-max.patch | 16 + abs/core/iputils/iputils-big-patches.patch | 595 + abs/core/iputils/iputils-ss021109-try.patch | 239 + abs/core/iputils/iputils.patch | 1170 + abs/core/iputils/protocols | 18 + abs/core/iputils/services | 195 + abs/core/ipw2100-fw/PKGBUILD | 36 + abs/core/ipw2100-fw/ipw2100-fw.install | 18 + abs/core/ipw2200-fw/PKGBUILD | 34 + abs/core/ipw2200-fw/ipw2200-fw.install | 18 + abs/core/ipw3945-ucode/PKGBUILD | 22 + abs/core/ipw3945-ucode/ipw3945-ucode.install | 18 + abs/core/ipw3945/2.6.18-compile.patch | 11 + abs/core/ipw3945/PKGBUILD | 31 + abs/core/ipw3945/compile-2.6.24.patch | 43 + abs/core/ipw3945/ipw3945.install | 26 + abs/core/ipw3945/kernel-2.6.19.patch | 10 + abs/core/ipw3945/lockup.patch | 31 + abs/core/ipw3945d/PKGBUILD | 28 + abs/core/ipw3945d/ipw3945d.install | 35 + abs/core/ipw3945d/ipw3945d.rc | 42 + abs/core/ivtv-utils/PKGBUILD | 46 + abs/core/ivtv-utils/ivtv-utils.install | 31 + abs/core/iwlwifi-3945-ucode/PKGBUILD | 28 + abs/core/iwlwifi-4965-ucode/PKGBUILD | 26 + abs/core/jack-audio-connection-kit/PKGBUILD | 30 + .../jack-audio-connection-kit.conf.d | 42 + .../jack-audio-connection-kit.install | 34 + .../jack-audio-connection-kit.rc.d | 39 + abs/core/jasper/PKGBUILD | 21 + abs/core/jfsutils/PKGBUILD | 21 + abs/core/kakasi/PKGBUILD | 20 + abs/core/kbd/PKGBUILD | 34 + abs/core/kbd/kbd-1.12-alias.patch | 47 + abs/core/kbd/kbd-1.12-find_map_fix.patch | 37 + abs/core/kbd/kbd-1.12-no-user-map.patch | 19 + abs/core/kbd/keymap_hook | 21 + abs/core/kbd/keymap_install | 44 + abs/core/kbd/rename-duplicates.patch | 830 + abs/core/kbproto/PKGBUILD | 18 + abs/core/kdelibs3/PKGBUILD | 55 + abs/core/kdelibs3/kde3.profile | 15 + abs/core/kdelibs3/kdelibs3.install | 11 + abs/core/kernel-headers/PKGBUILD | 27 + abs/core/kernel-headers/netfilter-includes.patch | 91 + abs/core/kernel26/PKGBUILD | 159 + abs/core/kernel26/config | 3897 +++ abs/core/kernel26/config.x86_64 | 3649 +++ abs/core/kernel26/kernel26.install | 144 + abs/core/kernel26/kernel26.preset | 17 + abs/core/kernel26/logo_linux_clut224.ppm | 883 + abs/core/kernel26/logo_linux_mono.pbm | 883 + abs/core/kernel26/logo_linux_vga16.ppm | 883 + abs/core/klibc-extras/PKGBUILD | 22 + abs/core/klibc-kbd/PKGBUILD | 45 + abs/core/klibc-kbd/keymap_hook | 27 + abs/core/klibc-kbd/keymap_install | 76 + abs/core/klibc-kbd/no-exit.patch | 31 + abs/core/klibc-kbd/no-isatty.patch | 58 + abs/core/klibc-module-init-tools/PKGBUILD | 31 + .../fix-modprobe-ignore-path.patch | 14 + abs/core/klibc-module-init-tools/makefile.patch | 54 + abs/core/klibc-udev/PKGBUILD | 58 + abs/core/klibc-udev/klibc-remove-revert.patch | 111 + abs/core/klibc-udev/load-modules.sh | 32 + abs/core/klibc-udev/post-107.patch | 176 + abs/core/klibc-udev/start_udev | 115 + abs/core/klibc-udev/udev.rules | 187 + abs/core/klibc-udev/udev_hook | 7 + abs/core/klibc-udev/udev_install | 31 + abs/core/klibc-udev/vol_id-suspend2.patch | 15 + abs/core/klibc/PKGBUILD | 62 + abs/core/klibc/klibc-2.6.24.patch | 44 + abs/core/klibc/klibc-Kbuild.patch | 41 + .../klibc/klibc-compile-shared-by-default.patch | 12 + abs/core/klibc/klibc-module-init-tools.patch | 63 + abs/core/klibc/multiple_raid_assembly_fix.patch | 20 + abs/core/lame/PKGBUILD | 23 + abs/core/lame/shared-frontend.patch | 23 + abs/core/lcms/PKGBUILD | 24 + abs/core/less/PKGBUILD | 23 + abs/core/less/zless | 9 + abs/core/libao/ChangeLog | 5 + abs/core/libao/PKGBUILD | 25 + abs/core/libao/libao.conf | 2 + abs/core/libarchive/PKGBUILD | 31 + abs/core/libart-lgpl/PKGBUILD | 20 + abs/core/libart-lgpl/art_misc.h-cplusplus.patch | 35 + abs/core/libcap/PKGBUILD | 20 + abs/core/libcap/libcap-1.10-debian.patch | 766 + abs/core/libcap/libcap-1.10-fixcflags.patch | 22 + abs/core/libcap/libcap-1.10-shared.patch | 17 + abs/core/libcdaudio/PKGBUILD | 23 + abs/core/libcroco/PKGBUILD | 21 + abs/core/libcups/PKGBUILD | 32 + abs/core/libdatrie/PKGBUILD | 22 + abs/core/libdmx/PKGBUILD | 22 + abs/core/libdownload/PKGBUILD | 21 + abs/core/libdownload/largefiles.patch | 12 + abs/core/libdrm/PKGBUILD | 20 + abs/core/libdvdread/PKGBUILD | 23 + abs/core/libdvdread/libdvdread.install | 11 + abs/core/libexif/PKGBUILD | 22 + abs/core/libfontenc/PKGBUILD | 24 + abs/core/libgcrypt/PKGBUILD | 23 + abs/core/libgl/PKGBUILD | 49 + abs/core/libglade/PKGBUILD | 26 + abs/core/libglade/glade.install | 30 + abs/core/libglade/libglade-2.0.1-nowarning.patch | 39 + abs/core/libgpg-error/PKGBUILD | 23 + abs/core/libgsf/PKGBUILD | 25 + abs/core/libice/PKGBUILD | 22 + abs/core/libid3tag/PKGBUILD | 21 + abs/core/libid3tag/id3tag.pc | 10 + abs/core/libidn/PKGBUILD | 22 + abs/core/libjpeg/PKGBUILD | 21 + abs/core/liblbxutil/PKGBUILD | 23 + abs/core/libldap/PKGBUILD | 62 + abs/core/libldap/ntlm.patch | 189 + abs/core/libldap/peercred.patch | 11 + abs/core/libmad/PKGBUILD | 27 + abs/core/libmad/libmad.patch | 117 + abs/core/libmad/libmad_gcc43.patch | 10 + abs/core/libmp4v2/PKGBUILD | 33 + abs/core/libmysqlclient/PKGBUILD | 55 + abs/core/libogg/PKGBUILD | 22 + abs/core/libpcap/PKGBUILD | 44 + abs/core/libpcap/libpcap-shared.patch | 51 + abs/core/libpng/ChangeLog | 51 + abs/core/libpng/PKGBUILD | 43 + abs/core/libpng/libpng-1.2.29-apng.patch | 1671 ++ abs/core/libpng/libpng-1.2.31-apng.patch | 1644 ++ abs/core/librsvg/PKGBUILD | 28 + abs/core/librsvg/librsvg.install | 14 + abs/core/libsasl/PKGBUILD | 43 + abs/core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch | 170 + abs/core/libsasl/db-4.7.patch | 20 + abs/core/libsasl/libsasl.install | 18 + abs/core/libsm/PKGBUILD | 24 + abs/core/libsmbios/PKGBUILD | 36 + abs/core/libsndfile/PKGBUILD | 28 + abs/core/libsndfile/flac-1.1.4.dpatch | 486 + .../libsndfile/lossy_comp_test-overflow.dpatch | 21 + abs/core/libsndfile/overflow.dpatch | 46 + abs/core/libstatgrab/PKGBUILD | 30 + abs/core/libtasn1/PKGBUILD | 21 + abs/core/libthai/PKGBUILD | 22 + abs/core/libtheora/PKGBUILD | 26 + abs/core/libtiff/CVE-2006-3459-3465.patch | 669 + abs/core/libtiff/PKGBUILD | 31 + abs/core/libtiff/tiff2pdf-compression.patch | 44 + abs/core/libtiff/tiff2pdf-octal-printf.patch | 11 + abs/core/libtiff/tiffsplit-fname-overflow.patch | 19 + abs/core/libtool/PKGBUILD | 21 + abs/core/libusb/PKGBUILD | 21 + abs/core/libvorbis/PKGBUILD | 24 + abs/core/libwmf/PKGBUILD | 31 + abs/core/libwmf/libwmf.install | 18 + abs/core/libx11/012_ru_RU_UTF-8_XLC_LOCALE.diff | 237 + abs/core/libx11/PKGBUILD | 44 + abs/core/libx11/xorg.sh | 19 + abs/core/libx86/PKGBUILD | 27 + abs/core/libx86/lrmi.patch | 16 + abs/core/libxau/PKGBUILD | 22 + abs/core/libxaw/PKGBUILD | 26 + abs/core/libxcb/PKGBUILD | 29 + abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch | 30 + abs/core/libxcomposite/PKGBUILD | 22 + abs/core/libxcursor/PKGBUILD | 22 + abs/core/libxdamage/PKGBUILD | 22 + abs/core/libxdmcp/PKGBUILD | 22 + abs/core/libxext/PKGBUILD | 21 + abs/core/libxfixes/PKGBUILD | 22 + abs/core/libxfixes/xfixes_coverity576.patch | 16 + abs/core/libxfont/PKGBUILD | 24 + abs/core/libxfontcache/PKGBUILD | 22 + abs/core/libxft/PKGBUILD | 25 + abs/core/libxi/PKGBUILD | 22 + abs/core/libxinerama/PKGBUILD | 22 + abs/core/libxkbfile/PKGBUILD | 25 + abs/core/libxkbui/PKGBUILD | 23 + abs/core/libxml2/PKGBUILD | 25 + abs/core/libxmu/PKGBUILD | 23 + abs/core/libxp/PKGBUILD | 24 + abs/core/libxpm/PKGBUILD | 26 + abs/core/libxrandr/PKGBUILD | 24 + abs/core/libxrender/PKGBUILD | 22 + abs/core/libxslt/ChangeLog | 9 + abs/core/libxslt/PKGBUILD | 25 + abs/core/libxss/PKGBUILD | 25 + abs/core/libxt/PKGBUILD | 23 + abs/core/libxtrap/PKGBUILD | 24 + abs/core/libxtst/PKGBUILD | 23 + abs/core/libxv/PKGBUILD | 25 + abs/core/libxvmc/PKGBUILD | 23 + abs/core/libxxf86dga/PKGBUILD | 23 + abs/core/libxxf86misc/PKGBUILD | 23 + abs/core/libxxf86vm/PKGBUILD | 24 + abs/core/licenses/LICENSE.ralink-firmware.txt | 39 + abs/core/licenses/PKGBUILD | 123 + abs/core/licenses/ZopePublicLicense.txt | 54 + abs/core/licenses/cc-by-3.0.txt | 60 + abs/core/licenses/cc-by-nc-3.0.txt | 61 + abs/core/licenses/cc-by-nc-nd-3.0.txt | 58 + abs/core/licenses/cc-by-nc-sa-3.0.txt | 63 + abs/core/licenses/cc-by-nd-3.0.txt | 57 + abs/core/licenses/cc-by-sa-3.0.txt | 63 + abs/core/licenses/cc-readme.txt | 12 + abs/core/licenses/cddl-1.0.txt | 377 + abs/core/licenses/cpl-1.0.txt | 217 + abs/core/licenses/eclipse-1.0.txt | 88 + abs/core/licenses/perlartistic.txt | 151 + abs/core/licenses/python-2.txt | 270 + abs/core/linhes-live/PKGBUILD | 30 + abs/core/linhes-live/bin/gen_fstab | 122 + abs/core/linhes-live/bin/km | 76 + abs/core/linhes-live/etc/live-shutdown | 50 + abs/core/linhes-live/etc/live-sysinit | 54 + abs/core/linhes-live/etc/loginroot | 3 + abs/core/linhes-live/etc/rc.shutdown-live | 167 + abs/core/linhes-live/etc/rc.sysinit-live | 466 + abs/core/linhes-live/etc/ulogin | 57 + abs/core/linhes-live/lib/initcpio/gen_larch_init | 12 + abs/core/linhes-live/lib/initcpio/hooks/larch1 | 120 + abs/core/linhes-live/lib/initcpio/hooks/larch2 | 33 + .../linhes-live/lib/initcpio/hooks/larch2_aufs | 33 + abs/core/linhes-live/lib/initcpio/hooks/larch3 | 192 + abs/core/linhes-live/lib/initcpio/install/larch1 | 15 + abs/core/linhes-live/lib/initcpio/install/larch2 | 15 + .../linhes-live/lib/initcpio/install/larch2_aufs | 15 + abs/core/linhes-live/lib/initcpio/install/larch3 | 18 + abs/core/linhes-live/lib/initcpio/kinit | 6 + abs/core/linhes-live/lib/initcpio/mkinitcpio.conf | 54 + abs/core/linuxtv-dvb-apps/ChangeLog | 2 + abs/core/linuxtv-dvb-apps/PKGBUILD | 38 + abs/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install | 12 + abs/core/lirc-utils/PKGBUILD | 66 + abs/core/lirc-utils/kernel-2.6.26.patch | 122 + abs/core/lirc-utils/lirc.logrotate | 5 + abs/core/lirc-utils/lircd | 43 + abs/core/lirc-utils/lircd.conf.d | 8 + abs/core/lirc-utils/lircmd | 36 + abs/core/lirc/PKGBUILD | 50 + abs/core/lirc/kernel-2.6.26.patch | 122 + abs/core/lirc/lirc.install | 50 + abs/core/live-installer/LinHES-release | 1 + abs/core/live-installer/MythVantage.sh | 3 + abs/core/live-installer/PKGBUILD | 66 + abs/core/live-installer/add_service.sh | 15 + abs/core/live-installer/autocard.py | 302 + abs/core/live-installer/bpopup-ui.xml | 164 + abs/core/live-installer/build_diskless.sh | 143 + abs/core/live-installer/copy-to-mythbase.sh | 12 + abs/core/live-installer/create_master.sh | 57 + abs/core/live-installer/file_time_offset.py | 39 + abs/core/live-installer/install-ui.xml | 175 + abs/core/live-installer/install_db_chroot.sh | 52 + abs/core/live-installer/install_functions.sh | 484 + abs/core/live-installer/install_proxy.sh | 481 + abs/core/live-installer/issue | 1 + abs/core/live-installer/live-install.sh | 28 + abs/core/live-installer/live.install | 78 + abs/core/live-installer/networkconfig.sh | 280 + abs/core/live-installer/remove_service.sh | 8 + .../live-installer/restore_default_settings.sh | 325 + abs/core/live-installer/soundconfig.sh | 248 + abs/core/live-installer/startx | 29 + abs/core/live-installer/systemconfig.sh | 1255 + .../templates/LCD/Shuttle-SG33/LCDd.conf | 869 + .../templates/LCD/Silverstone/LCDd.conf | 869 + .../templates/LCD/Silverstone/modules | 1 + .../templates/LCD/antec_fusion/LCDd.conf | 869 + .../templates/LCD/antec_fusion/lircd.conf | 38 + .../templates/LCD/antec_fusion/lircrc | 15 + .../templates/LCD/antec_fusion/modules | 1 + .../live-installer/templates/LCD/xosd/LCDd.conf | 957 + abs/core/live-installer/templates/cc.orig.sh | 35 + abs/core/live-installer/templates/cc.sh | 5 + abs/core/live-installer/templates/cc_vol.sh | 5 + abs/core/live-installer/templates/change_chan.sh | 19 + abs/core/live-installer/templates/cron.template | 4 + .../templates/etcnet/eth/ipv4address | 2 + .../live-installer/templates/etcnet/eth/ipv4route | 2 + .../live-installer/templates/etcnet/eth/iwconfig | 2 + .../live-installer/templates/etcnet/eth/options | 7 + .../templates/evrouter/MythVantage-4 | 0 .../templates/evrouter/MythVantage-8 | 0 .../templates/evrouter/MythVantage-Full | 0 .../templates/evrouter/MythVantage8-minipac | 3 + .../templates/evrouter/MythVantage8-uhid | 3 + abs/core/live-installer/templates/exports.template | 8 + .../live-installer/templates/fstab.conf.template | 16 + abs/core/live-installer/templates/mysql.service | 13 + abs/core/live-installer/templates/mysql.txt | 29 + .../live-installer/templates/ncid.conf.template | 51 + .../live-installer/templates/ncidd.conf.template | 143 + .../live-installer/templates/real_change_chan.sh | 19 + .../templates/remotes/ATI_wonder/lircd.ATI.conf | 357 + .../remotes/ATI_wonder/lircrc-atiwonder.txt | 922 + .../templates/remotes/ATI_wonder/preview.jpg | Bin 0 -> 63480 bytes .../remotes/MX-500-jams/lircd.conf.MX-500-JAMS | 115 + .../templates/remotes/MX-500-jams/lircrc | 832 + .../templates/remotes/MX-500-jams/preview.jpg | Bin 0 -> 10473 bytes .../templates/remotes/MythVantage-one/lircd.conf | 115 + .../templates/remotes/MythVantage-one/lircrc | 857 + .../templates/remotes/MythVantage-one/preview.jpg | Bin 0 -> 88727 bytes .../RadioShack_15-2116-Jarod_Wilson/lircd-rs.conf | 87 + .../RadioShack_15-2116-Jarod_Wilson/lircrc-rs | 539 + .../RadioShack_15-2116-Jarod_Wilson/preview.jpg | Bin 0 -> 7504 bytes .../templates/remotes/gr8zap/lircd.conf.streamzap | 69 + .../live-installer/templates/remotes/gr8zap/lircrc | 472 + .../templates/remotes/gr8zap/preview.jpg | Bin 0 -> 83195 bytes .../remotes/hauppauge/lircd.conf.hauppauge | 274 + .../remotes/hauppauge/lircmd.conf.hauppauge | 33 + .../templates/remotes/hauppauge/preview.jpg | Bin 0 -> 45763 bytes .../templates/remotes/imon-pad/lircd.conf | 88 + .../templates/remotes/imon-pad/lircrc | 240 + .../templates/remotes/imon-pad/preview.jpg | Bin 0 -> 33321 bytes .../templates/remotes/mceusb/lircd-mceusb.conf | 88 + .../templates/remotes/mceusb/lircrc-mceusb | 393 + .../templates/remotes/mceusb/preview.jpg | Bin 0 -> 12551 bytes .../templates/remotes/no_remote/preview.jpg | Bin 0 -> 3087 bytes .../templates/remotes/receiver_usb.id | 4 + .../remotes/snapstream_firefly/lircd.snapstrm.conf | 127 + .../remotes/snapstream_firefly/lircrc-snapstrm.txt | 590 + .../remotes/snapstream_firefly/preview.jpg | Bin 0 -> 63750 bytes .../remotes/streamzap/lircd.conf.streamzap | 69 + .../templates/remotes/streamzap/lircrc | 832 + .../templates/remotes/streamzap/preview.jpg | Bin 0 -> 83195 bytes .../live-installer/templates/samba/smb.conf.home | 10 + .../live-installer/templates/samba/smb.conf.media | 10 + .../templates/samba/smb.conf.template | 125 + .../templates/settings/default_1/keybindings.txt | 209 + .../templates/settings/default_1/settings.txt | 320 + .../templates/settings/default_2/keybindings.txt | 209 + .../templates/settings/default_2/settings.txt | 320 + abs/core/live-installer/templates/sources/mv-core | 2 + .../templates/sources/mv-core-testing | 2 + abs/core/live-installer/templates/sources/mv-extra | 2 + .../templates/sources/mv-extra-testing | 2 + abs/core/live-installer/templates/sources/svc_pkg | 3 + .../transmit/Time_Warner_SA3250/lircd.conf | 413 + .../live-installer/templates/xine.config.template | 754 + .../live-installer/templates/xorg/modeline.ATSC | 33 + .../live-installer/templates/xorg/modeline.DVD | 9 + .../live-installer/templates/xorg/modeline.NTSC | 10 + .../live-installer/templates/xorg/modeline.VESA | 163 + .../live-installer/templates/xorg/modeline.custom | 1 + .../live-installer/templates/xorg/xorg.conf.ati | 94 + .../live-installer/templates/xorg/xorg.conf.intel | 148 + .../live-installer/templates/xorg/xorg.conf.nvidia | 90 + .../live-installer/templates/xorg/xorg.conf.via | 77 + .../live-installer/templates/xorg/xorg.conf.vmware | 72 + abs/core/live-installer/timezip.py | 185 + abs/core/live-installer/xconfig.sh | 233 + abs/core/logrotate/PKGBUILD | 37 + abs/core/logrotate/logrotate.conf | 28 + abs/core/logrotate/logrotate.cron.daily | 3 + abs/core/lsof/PKGBUILD | 30 + abs/core/lsof/license.txt | 27 + abs/core/lvm2/PKGBUILD | 35 + abs/core/lvm2/lvm2_hook | 16 + abs/core/lvm2/lvm2_install | 19 + abs/core/lzo2/PKGBUILD | 22 + abs/core/lzop/PKGBUILD | 21 + abs/core/madwifi-utils/PKGBUILD | 35 + abs/core/madwifi/PKGBUILD | 38 + abs/core/madwifi/kernel-2.6.19.patch | 383 + abs/core/madwifi/kernel-2.6.20.patch | 73 + abs/core/madwifi/madwifi-ng.install | 23 + abs/core/mailx/PKGBUILD | 24 + abs/core/mailx/mailx-8.1.1.patch | 32 + abs/core/mailx/mailx-gcc4.patch | 12 + abs/core/man-pages/PKGBUILD | 41 + abs/core/man/PKGBUILD | 31 + abs/core/man/man-troff.patch | 16 + abs/core/man/whatis.cron.daily | 9 + abs/core/mcpp/PKGBUILD | 27 + abs/core/mcpp/mcpp-2.6.4-patch | 22 + abs/core/mdadm/PKGBUILD | 34 + abs/core/mdadm/mdadm | 37 + abs/core/mdadm/mdadm-2.2-segfault.patch | 12 + abs/core/mdadm/mdadm.conf | 64 + abs/core/mdadm/raid-partitions_hook | 21 + abs/core/mdadm/raid-partitions_install | 32 + abs/core/mesa/PKGBUILD | 63 + abs/core/mesa/mesa-6.5-apps-noglut.patch | 17 + abs/core/mkinitcpio/PKGBUILD | 27 + abs/core/mlocate/PKGBUILD | 47 + abs/core/mlocate/mlocate.db | 0 abs/core/mlocate/mlocate.install | 27 + abs/core/mlocate/updatedb.conf | 5 + abs/core/mlocate/updatedb.cron.daily | 10 + abs/core/module-init-tools/PKGBUILD | 33 + .../fix-modprobe-ignore-path.patch | 14 + abs/core/module-init-tools/makefile.patch | 22 + abs/core/module-init-tools/modprobe.conf | 3 + abs/core/module-init-tools/modutils-gcc4.patch | 280 + .../mplayer/MPlayer-1.0rc1-gnome-screensaver.patch | 286 + abs/core/mplayer/PKGBUILD | 67 + abs/core/mplayer/demux_audio_fix_20080129.diff | 11 + abs/core/mplayer/demux_mov_fix_20080129.diff | 45 + abs/core/mplayer/ivtv_2.6.24.patch | 33 + abs/core/mplayer/stream_cddb_fix_20080120.diff | 32 + abs/core/mplayer/url_fix_20080120.diff | 10 + abs/core/mtools/PKGBUILD | 23 + abs/core/mysql-clients/PKGBUILD | 36 + abs/core/mysql-python/PKGBUILD | 18 + abs/core/mysql/PKGBUILD | 54 + abs/core/mysql/my.cnf | 149 + abs/core/mysql/mysql-no-clients.patch | 65 + abs/core/mysql/mysqld | 87 + abs/core/mysql/mysqld.conf.d | 1 + abs/core/mythtv/stable/mytharchive/PKGBUILD | 35 + abs/core/mythtv/stable/mythbrowser/PKGBUILD | 33 + abs/core/mythtv/stable/mythcontrols/PKGBUILD | 32 + abs/core/mythtv/stable/mythdb-initial/PKGBUILD | 21 + abs/core/mythtv/stable/mythdb-initial/mc.sql | 2797 +++ .../mythtv/stable/mythdb-initial/mythdb.install | 31 + .../mythtv/stable/mythdb-initial/permissions.sql | 11 + abs/core/mythtv/stable/mythflix/PKGBUILD | 31 + abs/core/mythtv/stable/mythgallery/PKGBUILD | 32 + abs/core/mythtv/stable/mythgame/PKGBUILD | 31 + abs/core/mythtv/stable/mythmusic/PKGBUILD | 33 + abs/core/mythtv/stable/mythmusic/music_flac.patch | 293 + .../mythtv/stable/mythmusic/mythmusic-0.21.patch | 22 + abs/core/mythtv/stable/mythnews/PKGBUILD | 31 + abs/core/mythtv/stable/mythphone/PKGBUILD | 32 + abs/core/mythtv/stable/myththemes/PKGBUILD | 32 + abs/core/mythtv/stable/mythtv/PKGBUILD | 70 + abs/core/mythtv/stable/mythtv/QUICKSTART.archlinux | 69 + abs/core/mythtv/stable/mythtv/mythbackend | 38 + abs/core/mythtv/stable/mythtv/mythtv.install | 13 + abs/core/mythtv/stable/mythvideo/PKGBUILD | 36 + abs/core/mythtv/stable/mythvideo/mtd | 36 + abs/core/mythtv/stable/mythweather/PKGBUILD | 32 + abs/core/mythtv/stable/mythweb/PKGBUILD | 27 + abs/core/mythtv/stable/mythweb/mythweb.install | 10 + abs/core/nano/PKGBUILD | 25 + abs/core/nano/nano.install | 20 + abs/core/ncurses/PKGBUILD | 75 + abs/core/ncurses/ncurses.install | 9 + abs/core/ndiswrapper-utils/PKGBUILD | 22 + abs/core/ndiswrapper/PKGBUILD | 29 + abs/core/ndiswrapper/ndiswrapper.install | 28 + abs/core/net-tools/PKGBUILD | 36 + abs/core/net-tools/gcc340.patch | 46 + .../net-tools/net-tools-1.60-2.6-compilefix.patch | 23 + abs/core/net-tools/net-tools-1.60-miiioctl.patch | 17 + abs/core/net-tools/net-tools-1.60-nameif.patch | 58 + .../net-tools/net-tools-1.60-nameif_strncpy.patch | 13 + abs/core/net-tools/net-tools.patch | 52 + abs/core/net-tools/nisdomainname.conf.d | 3 + abs/core/netcfg/PKGBUILD | 25 + abs/core/ntfsprogs/PKGBUILD | 26 + abs/core/ntfsprogs/ntfsprogs.install | 24 + abs/core/nuvexport/PKGBUILD | 31 + abs/core/nuvexport/nuvexport-ipod-disable.patch | 12 + abs/core/openexr/PKGBUILD | 24 + abs/core/openexr/gcc43.patch | 21 + abs/core/openexr/openexr-gcc4.patch | 11 + abs/core/openssh/PKGBUILD | 61 + abs/core/openssh/sshd | 40 + abs/core/openssh/sshd.confd | 4 + abs/core/openssh/sshd.pam | 10 + abs/core/openssl/PKGBUILD | 28 + abs/core/pacman/PKGBUILD | 46 + abs/core/pacman/mirrorlist | 101 + abs/core/pacman/pacman.conf | 76 + abs/core/pacman/pacman.install | 56 + abs/core/pam/PKGBUILD | 50 + abs/core/pam/other | 5 + abs/core/pam/pam.install | 22 + abs/core/pango/PKGBUILD | 24 + abs/core/pango/pango.install | 26 + abs/core/parted/PKGBUILD | 24 + abs/core/parted/parted-1.7.1-fix-seg.patch | 13 + abs/core/pciutils/PKGBUILD | 29 + abs/core/pcmciautils/PKGBUILD | 34 + abs/core/pcre/ChangeLog | 10 + abs/core/pcre/PKGBUILD | 32 + abs/core/pcre/libpcre-7.7-buffer-overflow.patch | 16 + abs/core/perl/PKGBUILD | 102 + abs/core/perl/archlinux-cpan-installdir.patch | 17 + abs/core/perl/archlinux-inc-order.patch | 101 + .../perl-5.10.0-archlinux-cpan-installdir.patch | 11 + .../perl/perl-5.10.0-archlinux-inc-order.patch | 101 + abs/core/perl/perl-5.8.6-picdl.patch0 | 13 + abs/core/perl/perl-5.8.8-gcc-4.2.0.patch | 10 + abs/core/perl/perl-5.8.8-utf-regexes.patch | 59 + abs/core/perl/perl.install | 54 + abs/core/perl/perlbin.sh | 2 + abs/core/perl_modules/perl-archive-zip/PKGBUILD | 28 + .../perl_modules/perl-class-methodmaker/PKGBUILD | 23 + abs/core/perl_modules/perl-crypt-ssleay/PKGBUILD | 23 + abs/core/perl_modules/perl-date-manip/PKGBUILD | 28 + abs/core/perl_modules/perl-dbd-mysql/PKGBUILD | 29 + abs/core/perl_modules/perl-dbi/PKGBUILD | 28 + abs/core/perl_modules/perl-fcgi/PKGBUILD | 23 + abs/core/perl_modules/perl-file-slurp/PKGBUILD | 23 + abs/core/perl_modules/perl-html-parser/PKGBUILD | 31 + abs/core/perl_modules/perl-html-tagset/PKGBUILD | 31 + abs/core/perl_modules/perl-html-tree/PKGBUILD | 23 + .../perl-http-cache-transparent/PKGBUILD | 23 + abs/core/perl_modules/perl-io-socket-ssl/PKGBUILD | 31 + abs/core/perl_modules/perl-io-stringy/PKGBUILD | 23 + abs/core/perl_modules/perl-libwww/PKGBUILD | 32 + .../perl-lingua-en-numbers-ordinate/PKGBUILD | 23 + .../perl_modules/perl-lingua-en-numbers/PKGBUILD | 23 + .../perl_modules/perl-lingua-preferred/PKGBUILD | 23 + abs/core/perl_modules/perl-mailtools/PKGBUILD | 29 + abs/core/perl_modules/perl-mime-lite/PKGBUILD | 29 + abs/core/perl_modules/perl-mime-tools/ChangeLog | 4 + abs/core/perl_modules/perl-mime-tools/PKGBUILD | 23 + abs/core/perl_modules/perl-mime-types/PKGBUILD | 29 + abs/core/perl_modules/perl-net-ssleay/PKGBUILD | 33 + abs/core/perl_modules/perl-soap-lite/PKGBUILD | 24 + .../perl_modules/perl-term-progressbar/PKGBUILD | 23 + abs/core/perl_modules/perl-term-readkey/PKGBUILD | 28 + abs/core/perl_modules/perl-text-bidi/PKGBUILD | 23 + abs/core/perl_modules/perl-text-iconv/PKGBUILD | 25 + abs/core/perl_modules/perl-text-kakasi/PKGBUILD | 23 + abs/core/perl_modules/perl-timedate/PKGBUILD | 32 + abs/core/perl_modules/perl-tk-tablematrix/PKGBUILD | 25 + abs/core/perl_modules/perl-tk/PKGBUILD | 45 + abs/core/perl_modules/perl-unicode-string/PKGBUILD | 28 + .../perl_modules/perl-unicode-utf8simple/PKGBUILD | 23 + abs/core/perl_modules/perl-uri/PKGBUILD | 31 + abs/core/perl_modules/perl-www-mechanize/PKGBUILD | 24 + .../perl_modules/perl-xml-libxml-common/ChangeLog | 5 + .../perl_modules/perl-xml-libxml-common/PKGBUILD | 25 + abs/core/perl_modules/perl-xml-libxml/PKGBUILD | 26 + .../perl-xml-libxml/perl-xml-libxml.install | 19 + .../perl-xml-namespacesupport/PKGBUILD | 23 + abs/core/perl_modules/perl-xml-sax/PKGBUILD | 26 + .../perl_modules/perl-xml-sax/perl-xml-sax.install | 15 + .../perl_modules/perl-xml-sax/perl-xml-sax.patch | 45 + abs/core/perl_modules/perl-xml-simple/PKGBUILD | 26 + abs/core/perl_modules/perl-xml-twig/PKGBUILD | 26 + abs/core/perl_modules/perl-xml-writer/PKGBUILD | 23 + abs/core/perlxml/PKGBUILD | 29 + abs/core/php/PKGBUILD | 174 + abs/core/php/apache.conf | 9 + abs/core/php/db-configure.patch | 51 + abs/core/php/php.ini | 1304 + abs/core/php/php.install | 97 + abs/core/pil/PKGBUILD | 26 + abs/core/pixman/PKGBUILD | 20 + abs/core/pkgconfig/PKGBUILD | 22 + abs/core/plextor-convertX-driver/.svn/all-wcprops | 29 + abs/core/plextor-convertX-driver/.svn/entries | 95 + abs/core/plextor-convertX-driver/.svn/format | 1 + .../.svn/prop-base/PKGBUILD.svn-base | 5 + .../.svn/prop-base/convertX.install.svn-base | 5 + .../.svn/prop-base/download.php?id=9719.svn-base | 5 + .../prop-base/wis-go-0.9.8-2.6.17.patch.svn-base | 5 + .../.svn/text-base/PKGBUILD.svn-base | 31 + .../.svn/text-base/convertX.install.svn-base | 31 + .../.svn/text-base/download.php?id=9719.svn-base | 460 + .../text-base/wis-go-0.9.8-2.6.17.patch.svn-base | 76 + abs/core/plextor-convertX-driver/PKGBUILD | 30 + abs/core/plextor-convertX-driver/convertX.install | 31 + .../wis-go7007-2.6.26-nopage.diff | 26 + abs/core/pm-utils/11netcfg | 26 + abs/core/pm-utils/PKGBUILD | 29 + abs/core/pm-utils/pm-utils.install | 15 + abs/core/pm-utils/service.patch | 15 + abs/core/popt/PKGBUILD | 33 + abs/core/ppp/PKGBUILD | 47 + abs/core/ppp/ip-down | 4 + abs/core/ppp/ip-up | 4 + abs/core/ppp/options | 352 + abs/core/ppp/plog | 7 + abs/core/ppp/poff | 103 + abs/core/ppp/pon | 32 + abs/core/ppp/pon.1 | 121 + abs/core/ppp/ppp | 36 + abs/core/printproto/PKGBUILD | 22 + abs/core/procinfo/PKGBUILD | 22 + abs/core/procinfo/procinfo-19.2.patch | 325 + abs/core/procps/PKGBUILD | 24 + abs/core/procps/sysctl.conf | 13 + abs/core/psmisc/PKGBUILD | 25 + abs/core/pycairo/PKGBUILD | 21 + abs/core/pygobject/PKGBUILD | 21 + abs/core/pygtk/PKGBUILD | 24 + abs/core/python-numeric/PKGBUILD | 19 + abs/core/python-pexpect/PKGBUILD | 17 + abs/core/python/PKGBUILD | 69 + abs/core/python/Python-2.4.4-gdbm-1.patch | 17 + abs/core/python/Python-2.5.2-idlelib.patch | 17 + abs/core/python/db4.6-setup.py-detection.patch | 11 + abs/core/python/modulator-launcher | 2 + abs/core/python/pynche-launcher | 3 + .../python-2.5.CVE-2007-4965-int-overflow.patch | 217 + abs/core/python/python.install | 13 + abs/core/python/python2.6-set_wakeup_fd4.patch | 94 + abs/core/qt3/PKGBUILD | 101 + abs/core/qt3/mysql.patch | 47 + abs/core/qt3/qt-copy-kde-patches.tar.bz2 | Bin 0 -> 31498 bytes abs/core/qt3/qt-font-default-subst.diff | 77 + abs/core/qt3/qt-patches.tar.bz2 | Bin 0 -> 3627 bytes abs/core/qt3/qt.install | 24 + abs/core/qt3/qt.profile | 4 + abs/core/qt3/utf8-bug-qt3.diff | 101 + abs/core/randrproto/PKGBUILD | 21 + abs/core/readline/PKGBUILD | 59 + abs/core/readline/inputrc | 40 + abs/core/readline/readline.install | 9 + abs/core/recordproto/PKGBUILD | 19 + abs/core/reiserfsprogs/PKGBUILD | 26 + abs/core/renderproto/PKGBUILD | 18 + abs/core/rp-pppoe/PKGBUILD | 25 + abs/core/rp-pppoe/adsl | 35 + abs/core/rt2500/PKGBUILD | 29 + abs/core/rt2500/kernel-2.6.22.patch | 24125 +++++++++++++++++++ abs/core/rt2500/kernel-2.6.24.patch | 20 + abs/core/rt2500/rt2500.install | 26 + abs/core/rt2x00-rt61-fw/PKGBUILD | 18 + abs/core/rt2x00-rt71w-fw/PKGBUILD | 17 + abs/core/run-parts/PKGBUILD | 22 + abs/core/runit/PKGBUILD | 69 + abs/core/runit/add_service.sh | 15 + abs/core/runit/halt.script | 16 + abs/core/runit/poweroff.script | 11 + abs/core/runit/reboot.script | 11 + abs/core/runit/remove_service.sh | 8 + abs/core/runit/runit.install | 57 + abs/core/runit/runitscripts/1 | 14 + abs/core/runit/runitscripts/2 | 8 + abs/core/runit/runitscripts/3 | 4 + abs/core/runit/runitscripts/ctrlaltdel | 9 + abs/core/runit/runitscripts/halt-runit | 2 + abs/core/runit/runitscripts/logger | 11 + abs/core/runit/runitscripts/reboot-runit | 2 + abs/core/runit/runitscripts/services/Xvfb/finish | 12 + abs/core/runit/runitscripts/services/Xvfb/run | 5 + abs/core/runit/runitscripts/services/acpid/run | 3 + .../runit/runitscripts/services/alsa-utils/finish | 3 + .../runit/runitscripts/services/alsa-utils/run | 3 + abs/core/runit/runitscripts/services/apache/run | 2 + abs/core/runit/runitscripts/services/avahi/run | 4 + abs/core/runit/runitscripts/services/cron/run | 3 + abs/core/runit/runitscripts/services/dbus/run | 3 + abs/core/runit/runitscripts/services/dnsmasq/run | 4 + .../runit/runitscripts/services/evrouter/finish | 4 + abs/core/runit/runitscripts/services/evrouter/run | 5 + .../runit/runitscripts/services/frontend/finish | 30 + .../runit/runitscripts/services/frontend/log/run | 5 + abs/core/runit/runitscripts/services/frontend/run | 10 + abs/core/runit/runitscripts/services/gpm/run | 4 + abs/core/runit/runitscripts/services/hal/run | 4 + .../runit/runitscripts/services/hobbit-client/run | 68 + abs/core/runit/runitscripts/services/hobbit/run | 3 + abs/core/runit/runitscripts/services/lcdd/run | 9 + abs/core/runit/runitscripts/services/lighttpd/run | 2 + abs/core/runit/runitscripts/services/lircd/finish | 12 + abs/core/runit/runitscripts/services/lircd/run | 39 + abs/core/runit/runitscripts/services/mysql/run | 29 + .../runitscripts/services/mythbackend/log/run | 4 + .../runit/runitscripts/services/mythbackend/run | 25 + abs/core/runit/runitscripts/services/ncid/run | 5 + abs/core/runit/runitscripts/services/ncidd/run | 3 + abs/core/runit/runitscripts/services/netfs/finish | 3 + abs/core/runit/runitscripts/services/netfs/run | 5 + abs/core/runit/runitscripts/services/nfsd/run | 22 + abs/core/runit/runitscripts/services/nfslock/run | 4 + abs/core/runit/runitscripts/services/nmbd/run | 3 + abs/core/runit/runitscripts/services/ntpd/run | 3 + abs/core/runit/runitscripts/services/oss/finish | 4 + abs/core/runit/runitscripts/services/oss/run | 6 + abs/core/runit/runitscripts/services/portmap/run | 3 + abs/core/runit/runitscripts/services/smbd/run | 3 + abs/core/runit/runitscripts/services/sshd/run | 8 + abs/core/runit/runitscripts/services/syslog-ng/run | 3 + abs/core/runit/runitscripts/services/tty2/run | 2 + abs/core/runit/runitscripts/services/tty3/run | 2 + abs/core/scrnsaverproto/PKGBUILD | 21 + abs/core/sdl/PKGBUILD | 21 + abs/core/sdparm/PKGBUILD | 22 + abs/core/sed/PKGBUILD | 21 + abs/core/sg3_utils/PKGBUILD | 18 + abs/core/shadow/PKGBUILD | 88 + abs/core/shadow/adduser | 399 + abs/core/shadow/chage | 6 + abs/core/shadow/chsh | 6 + abs/core/shadow/login | 18 + abs/core/shadow/login.defs | 212 + abs/core/shadow/passwd | 4 + abs/core/shadow/shadow | 6 + .../shadow/shadow-4.0.18.2-useradd-fix-1.patch | 26 + abs/core/shadow/shadow-UID_GID.patch | 34 + abs/core/shadow/shadow.cron.daily | 6 + abs/core/shadow/shadow.install | 11 + abs/core/shadow/useradd | 6 + abs/core/shadow/useradd-default.patch | 14 + abs/core/shadow/xstrdup.patch | 9 + abs/core/smbclient/PKGBUILD | 58 + abs/core/smbclient/heimdal.patch | 33 + abs/core/squashfs-tools/PKGBUILD | 24 + abs/core/sudo/PKGBUILD | 33 + abs/core/sudo/sudo.pam | 3 + abs/core/sysfsutils/PKGBUILD | 31 + abs/core/syslinux/PKGBUILD | 25 + abs/core/syslog-ng/PKGBUILD | 31 + abs/core/syslog-ng/syslog-ng | 39 + abs/core/syslog-ng/syslog-ng.conf | 91 + abs/core/syslog-ng/syslog-ng.logrotate | 7 + abs/core/sysvinit/PKGBUILD | 26 + abs/core/sysvinit/halt-init.patch | 17 + abs/core/taglib/PKGBUILD | 29 + abs/core/tar/PKGBUILD | 22 + abs/core/tar/tar.1 | 376 + abs/core/tcl/ChangeLog | 10 + abs/core/tcl/PKGBUILD | 41 + abs/core/tcp_wrappers/PKGBUILD | 35 + abs/core/tcp_wrappers/gcc340.patch | 11 + abs/core/tcp_wrappers/hosts.allow | 5 + abs/core/tcp_wrappers/hosts.deny | 7 + abs/core/tcp_wrappers/safe_finger.8 | 34 + abs/core/tcp_wrappers/shared_lib_plus_plus-1.patch | 1025 + abs/core/tcp_wrappers/try-from.8 | 28 + abs/core/tiacx-firmware/PKGBUILD | 20 + abs/core/tiacx-firmware/tiacx-firmware.install | 22 + abs/core/tiacx/PKGBUILD | 23 + abs/core/tiacx/acx.install | 23 + abs/core/tk/ChangeLog | 16 + abs/core/tk/PKGBUILD | 37 + abs/core/trapproto/PKGBUILD | 19 + abs/core/ttf-dejavu/ChangeLog | 9 + abs/core/ttf-dejavu/PKGBUILD | 25 + abs/core/ttf-dejavu/ttf-dejavu.install | 13 + abs/core/tzdata/Makefile.patch | 140 + abs/core/tzdata/PKGBUILD | 36 + abs/core/tzdata/chile.patch | 65 + abs/core/udev/00-load-blacklist.rules | 1 + abs/core/udev/51-arch.rules | 191 + abs/core/udev/PKGBUILD | 82 + abs/core/udev/arch-udev-rules.patch | 151 + abs/core/udev/cdrom-rules.patch | 8 + abs/core/udev/cdsymlinks.sh | 45 + abs/core/udev/load-modules.sh | 60 + abs/core/udev/migrate-udev | 29 + abs/core/udev/mod-blacklist.sh | 47 + abs/core/udev/readme-udev-arch.txt | 264 + abs/core/udev/root-link.sh | 7 + abs/core/udev/start_udev | 137 + abs/core/udev/udev.install | 22 + abs/core/udev/udev.rules | 456 + abs/core/udev/usb_id-fix.patch | 107 + abs/core/unichrome-dri/PKGBUILD | 40 + abs/core/unison/PKGBUILD | 28 + abs/core/unison/ocaml-3.08-extnames.patch | 14 + abs/core/unison/unison.desktop | 13 + abs/core/unison/unison.install | 32 + abs/core/usbutils/PKGBUILD | 25 + abs/core/util-linux-ng/PKGBUILD | 38 + .../util-linux-ng/util-linux-ng-2.14-20080624.diff | 6826 ++++++ abs/core/v4l-dvb/PKGBUILD | 24 + abs/core/v4l-dvb/v4l-dvb.install | 23 + abs/core/vbetool/PKGBUILD | 32 + abs/core/vi/PKGBUILD | 62 + abs/core/vi/fetch_patches.sh | 63 + abs/core/vi/fetch_runtime.sh | 117 + abs/core/vi/vi.install | 37 + abs/core/videoproto/PKGBUILD | 19 + abs/core/wget/PKGBUILD | 21 + abs/core/which/PKGBUILD | 20 + abs/core/wlan-ng26-utils/PKGBUILD | 32 + abs/core/wlan-ng26-utils/kernel-2.6.22-r1832.patch | 120 + abs/core/wlan-ng26-utils/kernel-2.6.26.patch | 14 + abs/core/wlan-ng26-utils/wlan | 68 + abs/core/wlan-ng26-utils/wlan-ng.patch | 14 + abs/core/wlan-ng26/PKGBUILD | 35 + abs/core/wlan-ng26/kernel-2.6.26.patch | 14 + abs/core/wlan-ng26/wlan-ng26.install | 30 + abs/core/wpa_supplicant/PKGBUILD | 36 + abs/core/wpa_supplicant/config | 308 + abs/core/wpa_supplicant/wpa_supplicant.install | 15 + abs/core/x264/PKGBUILD | 35 + abs/core/xbitmaps/PKGBUILD | 22 + abs/core/xcb-proto/PKGBUILD | 21 + abs/core/xcursor-themes/PKGBUILD | 20 + abs/core/xextproto/PKGBUILD | 22 + abs/core/xf86-input-acecad/PKGBUILD | 22 + abs/core/xf86-input-aiptek/PKGBUILD | 23 + abs/core/xf86-input-calcomp/PKGBUILD | 23 + abs/core/xf86-input-citron/PKGBUILD | 24 + abs/core/xf86-input-digitaledge/PKGBUILD | 23 + abs/core/xf86-input-dmc/PKGBUILD | 23 + abs/core/xf86-input-dynapro/PKGBUILD | 23 + abs/core/xf86-input-elo2300/PKGBUILD | 22 + abs/core/xf86-input-elographics/PKGBUILD | 26 + abs/core/xf86-input-evdev/PKGBUILD | 22 + abs/core/xf86-input-fpit/PKGBUILD | 23 + abs/core/xf86-input-hyperpen/PKGBUILD | 23 + abs/core/xf86-input-jamstudio/PKGBUILD | 23 + abs/core/xf86-input-joystick/PKGBUILD | 23 + abs/core/xf86-input-keyboard/PKGBUILD | 25 + abs/core/xf86-input-keyboard/new-server.patch | 5087 ++++ abs/core/xf86-input-magellan/PKGBUILD | 23 + abs/core/xf86-input-magictouch/PKGBUILD | 23 + abs/core/xf86-input-microtouch/PKGBUILD | 23 + abs/core/xf86-input-mouse/PKGBUILD | 25 + abs/core/xf86-input-mutouch/PKGBUILD | 23 + abs/core/xf86-input-palmax/PKGBUILD | 23 + abs/core/xf86-input-penmount/PKGBUILD | 23 + abs/core/xf86-input-spaceorb/PKGBUILD | 23 + abs/core/xf86-input-summa/PKGBUILD | 23 + abs/core/xf86-input-tek4957/PKGBUILD | 23 + abs/core/xf86-input-ur98/PKGBUILD | 23 + abs/core/xf86-input-vmmouse/PKGBUILD | 23 + abs/core/xf86-input-void/PKGBUILD | 23 + abs/core/xf86-video-amd/PKGBUILD | 27 + abs/core/xf86-video-apm/PKGBUILD | 22 + abs/core/xf86-video-ark/PKGBUILD | 22 + abs/core/xf86-video-ati/PKGBUILD | 51 + abs/core/xf86-video-chips/PKGBUILD | 22 + abs/core/xf86-video-cirrus/PKGBUILD | 22 + abs/core/xf86-video-dummy/PKGBUILD | 23 + abs/core/xf86-video-fbdev/PKGBUILD | 23 + abs/core/xf86-video-glint/PKGBUILD | 23 + abs/core/xf86-video-i128/PKGBUILD | 23 + abs/core/xf86-video-i740/PKGBUILD | 23 + abs/core/xf86-video-imstt/PKGBUILD | 23 + abs/core/xf86-video-intel/PKGBUILD | 25 + abs/core/xf86-video-mga/PKGBUILD | 49 + abs/core/xf86-video-neomagic/PKGBUILD | 22 + abs/core/xf86-video-nv/PKGBUILD | 26 + abs/core/xf86-video-radeonhd/PKGBUILD | 26 + abs/core/xf86-video-rendition/PKGBUILD | 23 + abs/core/xf86-video-s3/PKGBUILD | 23 + abs/core/xf86-video-s3virge/PKGBUILD | 49 + abs/core/xf86-video-savage/PKGBUILD | 49 + abs/core/xf86-video-siliconmotion/PKGBUILD | 23 + abs/core/xf86-video-sis/PKGBUILD | 48 + abs/core/xf86-video-sisusb/PKGBUILD | 23 + abs/core/xf86-video-tdfx/PKGBUILD | 49 + abs/core/xf86-video-trident/PKGBUILD | 49 + abs/core/xf86-video-tseng/PKGBUILD | 23 + abs/core/xf86-video-unichrome/PKGBUILD | 26 + abs/core/xf86-video-unichrome/fix-defines.patch | 68 + abs/core/xf86-video-v4l/PKGBUILD | 23 + abs/core/xf86-video-vesa/COPYING | 24 + abs/core/xf86-video-vesa/PKGBUILD | 27 + abs/core/xf86-video-vga/PKGBUILD | 23 + abs/core/xf86-video-vmware/PKGBUILD | 22 + abs/core/xf86-video-voodoo/PKGBUILD | 23 + abs/core/xf86dgaproto/PKGBUILD | 18 + abs/core/xf86miscproto/PKGBUILD | 19 + abs/core/xf86vidmodeproto/PKGBUILD | 19 + abs/core/xfsprogs/PKGBUILD | 28 + abs/core/xineramaproto/PKGBUILD | 19 + abs/core/xkeyboard-config/PKGBUILD | 30 + abs/core/xmltv/PKGBUILD | 29 + abs/core/xorg-apps/PKGBUILD | 78 + abs/core/xorg-font-utils/PKGBUILD | 54 + abs/core/xorg-font-utils/ttmkfdir.patch | 86 + abs/core/xorg-font-utils/ttmkfdir_gcc43.patch | 8 + abs/core/xorg-font-utils/xorg-font-utils.install | 8 + abs/core/xorg-fonts-100dpi/PKGBUILD | 35 + abs/core/xorg-fonts-100dpi/xfonts.install | 20 + abs/core/xorg-fonts-75dpi/PKGBUILD | 35 + abs/core/xorg-fonts-75dpi/xfonts.install | 20 + abs/core/xorg-fonts-alias/PKGBUILD | 22 + abs/core/xorg-fonts-encodings/PKGBUILD | 21 + .../xorg-fonts-encodings.install | 16 + abs/core/xorg-fonts-misc/PKGBUILD | 45 + abs/core/xorg-fonts-misc/xfonts.install | 20 + abs/core/xorg-res-utils/PKGBUILD | 31 + abs/core/xorg-server-utils/PKGBUILD | 75 + abs/core/xorg-server/PKGBUILD | 92 + abs/core/xorg-server/xorg-server.install | 12 + abs/core/xorg-utils/PKGBUILD | 47 + abs/core/xorg-xauth/PKGBUILD | 23 + abs/core/xorg-xinit/PKGBUILD | 39 + abs/core/xorg-xinit/xinitrc | 18 + abs/core/xorg-xinit/xserverrc | 1 + abs/core/xorg-xinit/xsession | 10 + abs/core/xorg-xkb-utils/PKGBUILD | 34 + abs/core/xproto/PKGBUILD | 22 + abs/core/xterm/PKGBUILD | 43 + abs/core/xtrans/PKGBUILD | 21 + abs/core/xvidcore/PKGBUILD | 28 + abs/core/zd1211-firmware/PKGBUILD | 22 + abs/core/zlib/PKGBUILD | 25 + abs/extra-testing/README | 0 abs/extra/README | 0 2361 files changed, 277408 insertions(+) create mode 100644 .gitignore create mode 100644 abs/chroot-devel-testing/README create mode 100644 abs/chroot-devel/README create mode 100644 abs/core-testing/a52dec/PKGBUILD create mode 100644 abs/core-testing/a52dec/a52dec-0.7.4-build.patch create mode 100644 abs/core-testing/aalib/PKGBUILD create mode 100644 abs/core-testing/aalib/aclocal-fixes.patch create mode 100644 abs/core-testing/acl/PKGBUILD create mode 100644 abs/core-testing/alsa-lib/PKGBUILD create mode 100644 abs/core-testing/alsa-lib/python2.5.patch create mode 100644 abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch create mode 100644 abs/core-testing/alsa-oss/PKGBUILD create mode 100644 abs/core-testing/alsa-utils/PKGBUILD create mode 100755 abs/core-testing/alsa-utils/alsa create mode 100644 abs/core-testing/alsa-utils/alsa.conf.d create mode 100644 abs/core-testing/alsa-utils/alsaconf.patch create mode 100644 abs/core-testing/apache/PKGBUILD create mode 100644 abs/core-testing/apache/arch.layout create mode 100755 abs/core-testing/apache/httpd create mode 100644 abs/core-testing/apache/httpd.install create mode 100644 abs/core-testing/apache/httpd.logrotate create mode 100644 abs/core-testing/apr-util/PKGBUILD create mode 100644 abs/core-testing/apr/PKGBUILD create mode 100644 abs/core-testing/aspell/PKGBUILD create mode 100644 abs/core-testing/aspell/aspell.install create mode 100644 abs/core-testing/atk/PKGBUILD create mode 100644 abs/core-testing/attr/PKGBUILD create mode 100644 abs/core-testing/aufs-utils/PKGBUILD create mode 100644 abs/core-testing/aufs/PKGBUILD create mode 100644 abs/core-testing/aufs/aufs.install create mode 100644 abs/core-testing/b43-fwcutter/PKGBUILD create mode 100755 abs/core-testing/base.list create mode 100644 abs/core-testing/bash/PKGBUILD create mode 100644 abs/core-testing/bash/bash-noinfo.patch create mode 100644 abs/core-testing/bash/bashrc create mode 100644 abs/core-testing/bash/profile create mode 100644 abs/core-testing/bash/profile.bash create mode 100644 abs/core-testing/bc/PKGBUILD create mode 100644 abs/core-testing/bc/build-fix.patch create mode 100644 abs/core-testing/bigreqsproto/PKGBUILD create mode 100644 abs/core-testing/binutils/PKGBUILD create mode 100644 abs/core-testing/bzip2/PKGBUILD create mode 100644 abs/core-testing/ca-certificates/PKGBUILD create mode 100644 abs/core-testing/ca-certificates/ca-certificates.install create mode 100644 abs/core-testing/cairo/PKGBUILD create mode 100644 abs/core-testing/cdparanoia/ChangeLog create mode 100644 abs/core-testing/cdparanoia/PKGBUILD create mode 100644 abs/core-testing/cdrdao/PKGBUILD create mode 100644 abs/core-testing/cdrdao/cdrdao-1.2.2-gcc43.patch create mode 100644 abs/core-testing/cdrdao/gcc4.patch create mode 100644 abs/core-testing/cdrkit/ChangeLog create mode 100644 abs/core-testing/cdrkit/PKGBUILD create mode 100644 abs/core-testing/compositeproto/PKGBUILD create mode 100644 abs/core-testing/coreutils/PKGBUILD create mode 100644 abs/core-testing/coreutils/coreutils-6.10-configuration.patch create mode 100644 abs/core-testing/coreutils/coreutils-i18n.patch create mode 100644 abs/core-testing/coreutils/coreutils-pam.patch create mode 100644 abs/core-testing/coreutils/coreutils-uname.patch create mode 100644 abs/core-testing/coreutils/futimes.patch create mode 100644 abs/core-testing/coreutils/su create mode 100644 abs/core-testing/cpio/PKGBUILD create mode 100644 abs/core-testing/cpio/cpio-2.9-gcc43.patch create mode 100644 abs/core-testing/cracklib/PKGBUILD create mode 100644 abs/core-testing/cryptsetup/PKGBUILD create mode 100644 abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch create mode 100644 abs/core-testing/cryptsetup/encrypt_hook create mode 100644 abs/core-testing/cryptsetup/encrypt_install create mode 100644 abs/core-testing/cryptsetup/luksOpen-status.patch create mode 100644 abs/core-testing/curl/ChangeLog create mode 100644 abs/core-testing/curl/PKGBUILD create mode 100644 abs/core-testing/damageproto/PKGBUILD create mode 100644 abs/core-testing/dash/PKGBUILD create mode 100644 abs/core-testing/db/PKGBUILD create mode 100644 abs/core-testing/db/db.install create mode 100644 abs/core-testing/db4.5/PKGBUILD create mode 100644 abs/core-testing/dbus-glib/PKGBUILD create mode 100644 abs/core-testing/dbus/PKGBUILD create mode 100644 abs/core-testing/dbus/dbus create mode 100644 abs/core-testing/dbus/dbus.install create mode 100644 abs/core-testing/dcron/PKGBUILD create mode 100755 abs/core-testing/dcron/crond create mode 100644 abs/core-testing/dcron/crond.logrotate create mode 100644 abs/core-testing/dcron/dcron-3.1.patch create mode 100644 abs/core-testing/dcron/root.crontab create mode 100755 abs/core-testing/dcron/run-cron create mode 100644 abs/core-testing/device-mapper/PKGBUILD create mode 100644 abs/core-testing/device-mapper/device-mapper.rules create mode 100644 abs/core-testing/dhcpcd/PKGBUILD create mode 100644 abs/core-testing/dhcpcd/dhcpcd.conf.d create mode 100644 abs/core-testing/dialog/PKGBUILD create mode 100644 abs/core-testing/dialog/timeout.patch create mode 100644 abs/core-testing/diffutils/PKGBUILD create mode 100644 abs/core-testing/dmapi/PKGBUILD create mode 100644 abs/core-testing/dmidecode/PKGBUILD create mode 100644 abs/core-testing/dmxproto/PKGBUILD create mode 100644 abs/core-testing/dnsutils/PKGBUILD create mode 100644 abs/core-testing/dnsutils/bind.so_bsdcompat.diff create mode 100644 abs/core-testing/dnsutils/tools-only.patch create mode 100644 abs/core-testing/dosfstools/PKGBUILD create mode 100644 abs/core-testing/dosfstools/linux-2.6.patch create mode 100644 abs/core-testing/dvd+rw-tools/PKGBUILD create mode 100644 abs/core-testing/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch create mode 100644 abs/core-testing/dvdauthor/PKGBUILD create mode 100644 abs/core-testing/e2fsprogs/Makefile-fsck.static.patch create mode 100644 abs/core-testing/e2fsprogs/PKGBUILD create mode 100644 abs/core-testing/e2fsprogs/mke2fs.conf create mode 100644 abs/core-testing/eject/PKGBUILD create mode 100644 abs/core-testing/eject/eject-2.1.5-handle-spaces.patch create mode 100644 abs/core-testing/etcnet/10-defaults create mode 100755 abs/core-testing/etcnet/PKGBUILD create mode 100755 abs/core-testing/etcnet/adddhcp.patch create mode 100755 abs/core-testing/etcnet/etcnet.install create mode 100644 abs/core-testing/etcnet/functions.patch create mode 100755 abs/core-testing/etcnet/ipv4address create mode 100755 abs/core-testing/etcnet/ipv4route create mode 100644 abs/core-testing/etcnet/network create mode 100755 abs/core-testing/etcnet/options create mode 100644 abs/core-testing/expat/PKGBUILD create mode 100644 abs/core-testing/expect/PKGBUILD create mode 100644 abs/core-testing/faac/PKGBUILD create mode 100644 abs/core-testing/faac/libmp4v2.patch create mode 100644 abs/core-testing/faac/pipe-output.patch create mode 100644 abs/core-testing/faad2/ChangeLog create mode 100644 abs/core-testing/faad2/LICENSE create mode 100644 abs/core-testing/faad2/PKGBUILD create mode 100644 abs/core-testing/faad2/faad2-2.6.1-abi_has_changed.patch create mode 100644 abs/core-testing/faad2/faad2-2.6.1-broken-pipe.patch create mode 100644 abs/core-testing/faad2/faad2-2.6.1-implicitdeclar.patch create mode 100644 abs/core-testing/faad2/faad2-2.6.1-libtool22.patch create mode 100644 abs/core-testing/feh/PKGBUILD create mode 100644 abs/core-testing/ffmpeg/PKGBUILD create mode 100644 abs/core-testing/fftw2/PKGBUILD create mode 100644 abs/core-testing/file/PKGBUILD create mode 100644 abs/core-testing/filesystem/PKGBUILD create mode 100644 abs/core-testing/filesystem/crypttab create mode 100644 abs/core-testing/filesystem/filesystem.install create mode 100644 abs/core-testing/filesystem/fstab create mode 100644 abs/core-testing/filesystem/group create mode 100644 abs/core-testing/filesystem/gshadow create mode 100644 abs/core-testing/filesystem/host.conf create mode 100644 abs/core-testing/filesystem/hosts create mode 100644 abs/core-testing/filesystem/issue create mode 100644 abs/core-testing/filesystem/ld.so.conf create mode 100644 abs/core-testing/filesystem/motd create mode 100644 abs/core-testing/filesystem/nsswitch.conf create mode 100644 abs/core-testing/filesystem/passwd create mode 100644 abs/core-testing/filesystem/profile create mode 100644 abs/core-testing/filesystem/protocols create mode 100644 abs/core-testing/filesystem/resolv.conf create mode 100644 abs/core-testing/filesystem/securetty create mode 100644 abs/core-testing/filesystem/services create mode 100644 abs/core-testing/filesystem/shadow create mode 100644 abs/core-testing/filesystem/shells create mode 100644 abs/core-testing/findutils/PKGBUILD create mode 100644 abs/core-testing/fixesproto/PKGBUILD create mode 100644 abs/core-testing/flac/PKGBUILD create mode 100644 abs/core-testing/flac/flac-1.2.1-gcc43.patch create mode 100644 abs/core-testing/flac/flac-linking.diff create mode 100644 abs/core-testing/flac/xmms-plugin.patch create mode 100644 abs/core-testing/fltk/PKGBUILD create mode 100644 abs/core-testing/fluxbox/PKGBUILD create mode 100644 abs/core-testing/fluxbox/fluxbox-1.0.0-gcc43.patch create mode 100644 abs/core-testing/fluxbox/fluxbox.desktop create mode 100644 abs/core-testing/fontcacheproto/PKGBUILD create mode 100644 abs/core-testing/fontconfig/29-replace-bitmap-fonts.conf create mode 100644 abs/core-testing/fontconfig/PKGBUILD create mode 100644 abs/core-testing/fontconfig/fontconfig.install create mode 100644 abs/core-testing/fontsproto/PKGBUILD create mode 100644 abs/core-testing/freeglut/PKGBUILD create mode 100644 abs/core-testing/freeglut/glut-cursor-inherit.patch create mode 100644 abs/core-testing/freetype2/PKGBUILD create mode 100644 abs/core-testing/freetype2/bytecode.patch create mode 100644 abs/core-testing/freetype2/freetype-2.2.1-enable-valid.patch create mode 100644 abs/core-testing/freetype2/freetype-2.2.1-memcpy-fix.patch create mode 100644 abs/core-testing/freetype2/freetype-2.3.0-enable-spr.patch create mode 100644 abs/core-testing/freetype2/freetype-2.3.3-ftbitmap.patch create mode 100644 abs/core-testing/freetype2/freetype2.install create mode 100644 abs/core-testing/fribidi/ChangeLog create mode 100644 abs/core-testing/fribidi/PKGBUILD create mode 100644 abs/core-testing/fuse/PKGBUILD create mode 100644 abs/core-testing/fuse/fuse.install create mode 100755 abs/core-testing/fuse/fuse.rc.d create mode 100644 abs/core-testing/fxload/PKGBUILD create mode 100644 abs/core-testing/gawk/PKGBUILD create mode 100644 abs/core-testing/gawk/gawk-3.1.5-segfault_fix-1.patch create mode 100644 abs/core-testing/gcc-libs/PKGBUILD create mode 100644 abs/core-testing/gcc-libs/gcc-hash-style-both.patch create mode 100644 abs/core-testing/gcc-libs/gcc_pure64.patch create mode 100644 abs/core-testing/gdbm/PKGBUILD create mode 100644 abs/core-testing/gen-init-cpio/Makefile create mode 100644 abs/core-testing/gen-init-cpio/PKGBUILD create mode 100644 abs/core-testing/gen-init-cpio/gen_init_cpio.c create mode 100644 abs/core-testing/gettext/PKGBUILD create mode 100644 abs/core-testing/ghostscript/PKGBUILD create mode 100644 abs/core-testing/ghostscript/ghostscript-fPIC.patch create mode 100644 abs/core-testing/ghostscript/ghostscript.install create mode 100644 abs/core-testing/giblib/PKGBUILD create mode 100644 abs/core-testing/giflib/PKGBUILD create mode 100644 abs/core-testing/glib2/PKGBUILD create mode 100644 abs/core-testing/glib2/gkeyfile-bool-nocase.patch create mode 100644 abs/core-testing/glib2/glib2.csh create mode 100644 abs/core-testing/glib2/glib2.sh create mode 100644 abs/core-testing/glibc/ChangeLog create mode 100644 abs/core-testing/glibc/PKGBUILD create mode 100644 abs/core-testing/glibc/fix-makecontext.patch create mode 100644 abs/core-testing/glibc/glibc.install create mode 100755 abs/core-testing/glibc/locale-gen create mode 100644 abs/core-testing/glibc/locale.gen create mode 100644 abs/core-testing/glibc/locale.gen.txt create mode 100755 abs/core-testing/glibc/nscd create mode 100644 abs/core-testing/glproto/PKGBUILD create mode 100644 abs/core-testing/gnutls/PKGBUILD create mode 100644 abs/core-testing/gpm/ChangeLog create mode 100644 abs/core-testing/gpm/PKGBUILD create mode 100755 abs/core-testing/gpm/gpm create mode 100644 abs/core-testing/gpm/gpm.conf.d create mode 100644 abs/core-testing/grep/01-fgrep.patch create mode 100644 abs/core-testing/grep/02-bracket.patch create mode 100644 abs/core-testing/grep/03-i18n.patch create mode 100644 abs/core-testing/grep/04-oi.patch create mode 100644 abs/core-testing/grep/05-manpage.patch create mode 100644 abs/core-testing/grep/06-color.patch create mode 100644 abs/core-testing/grep/07-icolor.patch create mode 100644 abs/core-testing/grep/08-skip.patch create mode 100644 abs/core-testing/grep/09-egf-speedup.patch create mode 100644 abs/core-testing/grep/10-dfa-optional.patch create mode 100644 abs/core-testing/grep/11-tests.patch create mode 100644 abs/core-testing/grep/12-w.patch create mode 100644 abs/core-testing/grep/13-P.patch create mode 100644 abs/core-testing/grep/14-mem-exhausted.patch create mode 100644 abs/core-testing/grep/15-empty-pattern.patch create mode 100644 abs/core-testing/grep/64-egf-speedup.patch create mode 100644 abs/core-testing/grep/PKGBUILD create mode 100644 abs/core-testing/groff/PKGBUILD create mode 100644 abs/core-testing/groff/man-utf8.tmac create mode 100644 abs/core-testing/grub/040_all_grub-0.96-nxstack.patch create mode 100644 abs/core-testing/grub/05-grub-0.97-initrdaddr.diff create mode 100644 abs/core-testing/grub/PKGBUILD create mode 100644 abs/core-testing/grub/grub-0.97-gpt.patch create mode 100644 abs/core-testing/grub/grub-inode-size.patch create mode 100644 abs/core-testing/grub/i2o.patch create mode 100755 abs/core-testing/grub/install-grub create mode 100644 abs/core-testing/grub/intelmac.patch create mode 100644 abs/core-testing/grub/menu.lst create mode 100644 abs/core-testing/grub/more-raid.patch create mode 100644 abs/core-testing/grub/special-devices.patch create mode 100644 abs/core-testing/gsfonts/PKGBUILD create mode 100644 abs/core-testing/gsfonts/xfonts.install create mode 100644 abs/core-testing/gtk2/PKGBUILD create mode 100644 abs/core-testing/gtk2/gtk2.install create mode 100644 abs/core-testing/gtk2/gtkclipboard-check.patch create mode 100644 abs/core-testing/gzip/PKGBUILD create mode 100644 abs/core-testing/gzip/gzip-fixpaths.patch create mode 100644 abs/core-testing/gzip/gzip-fixutimens.patch create mode 100644 abs/core-testing/gzip/gzip-security-update.patch create mode 100644 abs/core-testing/hal-info/PKGBUILD create mode 100644 abs/core-testing/hal/PKGBUILD create mode 100644 abs/core-testing/hal/cryptsetup_location.patch create mode 100644 abs/core-testing/hal/hal create mode 100644 abs/core-testing/hal/hal-0.5.9-hide-diagnostic.patch create mode 100644 abs/core-testing/hal/hal-policy.patch create mode 100644 abs/core-testing/hal/hal.install create mode 100644 abs/core-testing/hal/ntfs3g-valid-options.patch create mode 100644 abs/core-testing/hdparm/PKGBUILD create mode 100644 abs/core-testing/heimdal/002_all_heimdal-no_libedit.patch create mode 100644 abs/core-testing/heimdal/003_all_heimdal-fPIC.patch create mode 100644 abs/core-testing/heimdal/004_all_heimdal-rxapps.patch create mode 100644 abs/core-testing/heimdal/006_all_heimdal-suid_fix.patch create mode 100644 abs/core-testing/heimdal/010_all_heimdal-system-libss.patch create mode 100644 abs/core-testing/heimdal/PKGBUILD create mode 100644 abs/core-testing/heimdal/heimdal-kdc.rc create mode 100644 abs/core-testing/heimdal/kadmind.rc create mode 100644 abs/core-testing/heimdal/kpasswd.rc create mode 100644 abs/core-testing/hwdetect/PKGBUILD create mode 100755 abs/core-testing/hwdetect/hwdetect create mode 100644 abs/core-testing/imagemagick/ChangeLog create mode 100644 abs/core-testing/imagemagick/PKGBUILD create mode 100644 abs/core-testing/imagemagick/add_delegate.patch create mode 100644 abs/core-testing/imagemagick/libpng_mmx_patch_x86_64.patch create mode 100644 abs/core-testing/imlib2/PKGBUILD create mode 100644 abs/core-testing/initscripts/ChangeLog create mode 100644 abs/core-testing/initscripts/PKGBUILD create mode 100644 abs/core-testing/initscripts/initscripts.install create mode 100644 abs/core-testing/inputproto/PKGBUILD create mode 100644 abs/core-testing/intel-dri/PKGBUILD create mode 100644 abs/core-testing/iproute/PKGBUILD create mode 100644 abs/core-testing/iproute/iproute2-2.4.7-now-ss020116.patch create mode 100644 abs/core-testing/iptables/PKGBUILD create mode 100644 abs/core-testing/iptables/PKGBUILD.orig create mode 100644 abs/core-testing/iptables/empty.rules create mode 100755 abs/core-testing/iptables/ip6tables create mode 100755 abs/core-testing/iptables/iptables create mode 100644 abs/core-testing/iptables/iptables.conf.d create mode 100644 abs/core-testing/iptables/simple_firewall.rules create mode 100644 abs/core-testing/iputils/PKGBUILD create mode 100644 abs/core-testing/iputils/iputils-20070202-no-open-max.patch create mode 100644 abs/core-testing/iputils/iputils-big-patches.patch create mode 100644 abs/core-testing/iputils/iputils-ss021109-try.patch create mode 100644 abs/core-testing/iputils/iputils.patch create mode 100644 abs/core-testing/iputils/protocols create mode 100644 abs/core-testing/iputils/services create mode 100644 abs/core-testing/ipw2100-fw/PKGBUILD create mode 100644 abs/core-testing/ipw2100-fw/ipw2100-fw.install create mode 100644 abs/core-testing/ipw2200-fw/PKGBUILD create mode 100644 abs/core-testing/ipw2200-fw/ipw2200-fw.install create mode 100644 abs/core-testing/ipw3945-ucode/PKGBUILD create mode 100644 abs/core-testing/ipw3945-ucode/ipw3945-ucode.install create mode 100644 abs/core-testing/ipw3945/2.6.18-compile.patch create mode 100644 abs/core-testing/ipw3945/PKGBUILD create mode 100644 abs/core-testing/ipw3945/compile-2.6.24.patch create mode 100644 abs/core-testing/ipw3945/ipw3945.install create mode 100644 abs/core-testing/ipw3945/kernel-2.6.19.patch create mode 100644 abs/core-testing/ipw3945/lockup.patch create mode 100644 abs/core-testing/ipw3945d/PKGBUILD create mode 100644 abs/core-testing/ipw3945d/ipw3945d.install create mode 100644 abs/core-testing/ipw3945d/ipw3945d.rc create mode 100644 abs/core-testing/ivtv-utils/PKGBUILD create mode 100644 abs/core-testing/ivtv-utils/ivtv-utils.install create mode 100644 abs/core-testing/iwlwifi-3945-ucode/PKGBUILD create mode 100644 abs/core-testing/iwlwifi-4965-ucode/PKGBUILD create mode 100644 abs/core-testing/jack-audio-connection-kit/PKGBUILD create mode 100644 abs/core-testing/jack-audio-connection-kit/jack-audio-connection-kit.conf.d create mode 100644 abs/core-testing/jack-audio-connection-kit/jack-audio-connection-kit.install create mode 100644 abs/core-testing/jack-audio-connection-kit/jack-audio-connection-kit.rc.d create mode 100644 abs/core-testing/jasper/PKGBUILD create mode 100644 abs/core-testing/jfsutils/PKGBUILD create mode 100644 abs/core-testing/kakasi/PKGBUILD create mode 100644 abs/core-testing/kbd/PKGBUILD create mode 100644 abs/core-testing/kbd/kbd-1.12-alias.patch create mode 100644 abs/core-testing/kbd/kbd-1.12-find_map_fix.patch create mode 100644 abs/core-testing/kbd/kbd-1.12-no-user-map.patch create mode 100644 abs/core-testing/kbd/keymap_hook create mode 100644 abs/core-testing/kbd/keymap_install create mode 100644 abs/core-testing/kbd/rename-duplicates.patch create mode 100644 abs/core-testing/kbproto/PKGBUILD create mode 100644 abs/core-testing/kdelibs3/PKGBUILD create mode 100755 abs/core-testing/kdelibs3/kde3.profile create mode 100644 abs/core-testing/kdelibs3/kdelibs3.install create mode 100644 abs/core-testing/kernel-headers/PKGBUILD create mode 100644 abs/core-testing/kernel-headers/netfilter-includes.patch create mode 100644 abs/core-testing/kernel26/PKGBUILD create mode 100644 abs/core-testing/kernel26/config create mode 100644 abs/core-testing/kernel26/config.x86_64 create mode 100644 abs/core-testing/kernel26/kernel26.install create mode 100644 abs/core-testing/kernel26/kernel26.preset create mode 100644 abs/core-testing/kernel26/logo_linux_clut224.ppm create mode 100644 abs/core-testing/kernel26/logo_linux_mono.pbm create mode 100644 abs/core-testing/kernel26/logo_linux_vga16.ppm create mode 100644 abs/core-testing/klibc-extras/PKGBUILD create mode 100644 abs/core-testing/klibc-kbd/PKGBUILD create mode 100644 abs/core-testing/klibc-kbd/keymap_hook create mode 100644 abs/core-testing/klibc-kbd/keymap_install create mode 100644 abs/core-testing/klibc-kbd/no-exit.patch create mode 100644 abs/core-testing/klibc-kbd/no-isatty.patch create mode 100644 abs/core-testing/klibc-module-init-tools/PKGBUILD create mode 100644 abs/core-testing/klibc-module-init-tools/fix-modprobe-ignore-path.patch create mode 100644 abs/core-testing/klibc-module-init-tools/makefile.patch create mode 100644 abs/core-testing/klibc-udev/PKGBUILD create mode 100644 abs/core-testing/klibc-udev/klibc-remove-revert.patch create mode 100755 abs/core-testing/klibc-udev/load-modules.sh create mode 100644 abs/core-testing/klibc-udev/post-107.patch create mode 100755 abs/core-testing/klibc-udev/start_udev create mode 100644 abs/core-testing/klibc-udev/udev.rules create mode 100644 abs/core-testing/klibc-udev/udev_hook create mode 100644 abs/core-testing/klibc-udev/udev_install create mode 100644 abs/core-testing/klibc-udev/vol_id-suspend2.patch create mode 100644 abs/core-testing/klibc/PKGBUILD create mode 100644 abs/core-testing/klibc/klibc-2.6.24.patch create mode 100644 abs/core-testing/klibc/klibc-Kbuild.patch create mode 100644 abs/core-testing/klibc/klibc-compile-shared-by-default.patch create mode 100644 abs/core-testing/klibc/klibc-module-init-tools.patch create mode 100644 abs/core-testing/klibc/multiple_raid_assembly_fix.patch create mode 100644 abs/core-testing/lame/PKGBUILD create mode 100644 abs/core-testing/lame/shared-frontend.patch create mode 100644 abs/core-testing/lcms/PKGBUILD create mode 100644 abs/core-testing/less/PKGBUILD create mode 100644 abs/core-testing/less/zless create mode 100644 abs/core-testing/libao/ChangeLog create mode 100644 abs/core-testing/libao/PKGBUILD create mode 100644 abs/core-testing/libao/libao.conf create mode 100644 abs/core-testing/libarchive/PKGBUILD create mode 100644 abs/core-testing/libart-lgpl/PKGBUILD create mode 100644 abs/core-testing/libart-lgpl/art_misc.h-cplusplus.patch create mode 100644 abs/core-testing/libcap/PKGBUILD create mode 100644 abs/core-testing/libcap/libcap-1.10-debian.patch create mode 100644 abs/core-testing/libcap/libcap-1.10-fixcflags.patch create mode 100644 abs/core-testing/libcap/libcap-1.10-shared.patch create mode 100644 abs/core-testing/libcdaudio/PKGBUILD create mode 100644 abs/core-testing/libcroco/PKGBUILD create mode 100644 abs/core-testing/libcups/PKGBUILD create mode 100644 abs/core-testing/libdatrie/PKGBUILD create mode 100644 abs/core-testing/libdmx/PKGBUILD create mode 100644 abs/core-testing/libdownload/PKGBUILD create mode 100644 abs/core-testing/libdownload/largefiles.patch create mode 100644 abs/core-testing/libdrm/PKGBUILD create mode 100644 abs/core-testing/libdvdread/PKGBUILD create mode 100644 abs/core-testing/libdvdread/libdvdread.install create mode 100644 abs/core-testing/libexif/PKGBUILD create mode 100644 abs/core-testing/libfontenc/PKGBUILD create mode 100644 abs/core-testing/libgcrypt/PKGBUILD create mode 100644 abs/core-testing/libgl/PKGBUILD create mode 100644 abs/core-testing/libglade/PKGBUILD create mode 100644 abs/core-testing/libglade/glade.install create mode 100644 abs/core-testing/libglade/libglade-2.0.1-nowarning.patch create mode 100644 abs/core-testing/libgpg-error/PKGBUILD create mode 100644 abs/core-testing/libgsf/PKGBUILD create mode 100644 abs/core-testing/libice/PKGBUILD create mode 100644 abs/core-testing/libid3tag/PKGBUILD create mode 100644 abs/core-testing/libid3tag/id3tag.pc create mode 100644 abs/core-testing/libidn/PKGBUILD create mode 100644 abs/core-testing/libjpeg/PKGBUILD create mode 100644 abs/core-testing/liblbxutil/PKGBUILD create mode 100644 abs/core-testing/libldap/PKGBUILD create mode 100644 abs/core-testing/libldap/ntlm.patch create mode 100644 abs/core-testing/libldap/peercred.patch create mode 100644 abs/core-testing/libmad/PKGBUILD create mode 100644 abs/core-testing/libmad/libmad.patch create mode 100644 abs/core-testing/libmad/libmad_gcc43.patch create mode 100644 abs/core-testing/libmp4v2/PKGBUILD create mode 100644 abs/core-testing/libmysqlclient/PKGBUILD create mode 100644 abs/core-testing/libogg/PKGBUILD create mode 100644 abs/core-testing/libpcap/PKGBUILD create mode 100644 abs/core-testing/libpcap/libpcap-shared.patch create mode 100644 abs/core-testing/libpng/ChangeLog create mode 100644 abs/core-testing/libpng/PKGBUILD create mode 100644 abs/core-testing/libpng/libpng-1.2.29-apng.patch create mode 100644 abs/core-testing/libpng/libpng-1.2.31-apng.patch create mode 100644 abs/core-testing/librsvg/PKGBUILD create mode 100644 abs/core-testing/librsvg/librsvg.install create mode 100644 abs/core-testing/libsasl/PKGBUILD create mode 100644 abs/core-testing/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch create mode 100644 abs/core-testing/libsasl/db-4.7.patch create mode 100644 abs/core-testing/libsasl/libsasl.install create mode 100644 abs/core-testing/libsm/PKGBUILD create mode 100644 abs/core-testing/libsmbios/PKGBUILD create mode 100644 abs/core-testing/libsndfile/PKGBUILD create mode 100644 abs/core-testing/libsndfile/flac-1.1.4.dpatch create mode 100644 abs/core-testing/libsndfile/lossy_comp_test-overflow.dpatch create mode 100644 abs/core-testing/libsndfile/overflow.dpatch create mode 100644 abs/core-testing/libstatgrab/PKGBUILD create mode 100644 abs/core-testing/libtasn1/PKGBUILD create mode 100644 abs/core-testing/libthai/PKGBUILD create mode 100644 abs/core-testing/libtheora/PKGBUILD create mode 100644 abs/core-testing/libtiff/CVE-2006-3459-3465.patch create mode 100644 abs/core-testing/libtiff/PKGBUILD create mode 100644 abs/core-testing/libtiff/tiff2pdf-compression.patch create mode 100644 abs/core-testing/libtiff/tiff2pdf-octal-printf.patch create mode 100644 abs/core-testing/libtiff/tiffsplit-fname-overflow.patch create mode 100644 abs/core-testing/libtool/PKGBUILD create mode 100644 abs/core-testing/libusb/PKGBUILD create mode 100644 abs/core-testing/libvorbis/PKGBUILD create mode 100644 abs/core-testing/libwmf/PKGBUILD create mode 100644 abs/core-testing/libwmf/libwmf.install create mode 100644 abs/core-testing/libx11/012_ru_RU_UTF-8_XLC_LOCALE.diff create mode 100644 abs/core-testing/libx11/PKGBUILD create mode 100644 abs/core-testing/libx11/xorg.sh create mode 100644 abs/core-testing/libx86/PKGBUILD create mode 100644 abs/core-testing/libx86/lrmi.patch create mode 100644 abs/core-testing/libxau/PKGBUILD create mode 100644 abs/core-testing/libxaw/PKGBUILD create mode 100644 abs/core-testing/libxcb/PKGBUILD create mode 100644 abs/core-testing/libxcb/xcb_xlib-no-assert-on-lock.patch create mode 100644 abs/core-testing/libxcomposite/PKGBUILD create mode 100644 abs/core-testing/libxcursor/PKGBUILD create mode 100644 abs/core-testing/libxdamage/PKGBUILD create mode 100644 abs/core-testing/libxdmcp/PKGBUILD create mode 100644 abs/core-testing/libxext/PKGBUILD create mode 100644 abs/core-testing/libxfixes/PKGBUILD create mode 100644 abs/core-testing/libxfixes/xfixes_coverity576.patch create mode 100644 abs/core-testing/libxfont/PKGBUILD create mode 100644 abs/core-testing/libxfontcache/PKGBUILD create mode 100644 abs/core-testing/libxft/PKGBUILD create mode 100644 abs/core-testing/libxi/PKGBUILD create mode 100644 abs/core-testing/libxinerama/PKGBUILD create mode 100644 abs/core-testing/libxkbfile/PKGBUILD create mode 100644 abs/core-testing/libxkbui/PKGBUILD create mode 100644 abs/core-testing/libxml2/PKGBUILD create mode 100644 abs/core-testing/libxmu/PKGBUILD create mode 100644 abs/core-testing/libxp/PKGBUILD create mode 100644 abs/core-testing/libxpm/PKGBUILD create mode 100644 abs/core-testing/libxrandr/PKGBUILD create mode 100644 abs/core-testing/libxrender/PKGBUILD create mode 100644 abs/core-testing/libxslt/ChangeLog create mode 100644 abs/core-testing/libxslt/PKGBUILD create mode 100644 abs/core-testing/libxss/PKGBUILD create mode 100644 abs/core-testing/libxt/PKGBUILD create mode 100644 abs/core-testing/libxtrap/PKGBUILD create mode 100644 abs/core-testing/libxtst/PKGBUILD create mode 100644 abs/core-testing/libxv/PKGBUILD create mode 100644 abs/core-testing/libxvmc/PKGBUILD create mode 100644 abs/core-testing/libxxf86dga/PKGBUILD create mode 100644 abs/core-testing/libxxf86misc/PKGBUILD create mode 100644 abs/core-testing/libxxf86vm/PKGBUILD create mode 100644 abs/core-testing/licenses/LICENSE.ralink-firmware.txt create mode 100644 abs/core-testing/licenses/PKGBUILD create mode 100644 abs/core-testing/licenses/ZopePublicLicense.txt create mode 100644 abs/core-testing/licenses/cc-by-3.0.txt create mode 100644 abs/core-testing/licenses/cc-by-nc-3.0.txt create mode 100644 abs/core-testing/licenses/cc-by-nc-nd-3.0.txt create mode 100644 abs/core-testing/licenses/cc-by-nc-sa-3.0.txt create mode 100644 abs/core-testing/licenses/cc-by-nd-3.0.txt create mode 100644 abs/core-testing/licenses/cc-by-sa-3.0.txt create mode 100644 abs/core-testing/licenses/cc-readme.txt create mode 100644 abs/core-testing/licenses/cddl-1.0.txt create mode 100644 abs/core-testing/licenses/cpl-1.0.txt create mode 100644 abs/core-testing/licenses/eclipse-1.0.txt create mode 100644 abs/core-testing/licenses/perlartistic.txt create mode 100644 abs/core-testing/licenses/python-2.txt create mode 100644 abs/core-testing/linhes-live/PKGBUILD create mode 100755 abs/core-testing/linhes-live/bin/gen_fstab create mode 100755 abs/core-testing/linhes-live/bin/km create mode 100644 abs/core-testing/linhes-live/etc/live-shutdown create mode 100644 abs/core-testing/linhes-live/etc/live-sysinit create mode 100755 abs/core-testing/linhes-live/etc/loginroot create mode 100755 abs/core-testing/linhes-live/etc/rc.shutdown-live create mode 100755 abs/core-testing/linhes-live/etc/rc.sysinit-live create mode 100755 abs/core-testing/linhes-live/etc/ulogin create mode 100755 abs/core-testing/linhes-live/lib/initcpio/gen_larch_init create mode 100644 abs/core-testing/linhes-live/lib/initcpio/hooks/larch1 create mode 100644 abs/core-testing/linhes-live/lib/initcpio/hooks/larch2 create mode 100644 abs/core-testing/linhes-live/lib/initcpio/hooks/larch2_aufs create mode 100644 abs/core-testing/linhes-live/lib/initcpio/hooks/larch3 create mode 100644 abs/core-testing/linhes-live/lib/initcpio/install/larch1 create mode 100644 abs/core-testing/linhes-live/lib/initcpio/install/larch2 create mode 100644 abs/core-testing/linhes-live/lib/initcpio/install/larch2_aufs create mode 100644 abs/core-testing/linhes-live/lib/initcpio/install/larch3 create mode 100755 abs/core-testing/linhes-live/lib/initcpio/kinit create mode 100644 abs/core-testing/linhes-live/lib/initcpio/mkinitcpio.conf create mode 100644 abs/core-testing/linuxtv-dvb-apps/ChangeLog create mode 100644 abs/core-testing/linuxtv-dvb-apps/PKGBUILD create mode 100644 abs/core-testing/linuxtv-dvb-apps/linuxtv-dvb-apps.install create mode 100644 abs/core-testing/lirc-utils/PKGBUILD create mode 100644 abs/core-testing/lirc-utils/kernel-2.6.26.patch create mode 100644 abs/core-testing/lirc-utils/lirc.logrotate create mode 100755 abs/core-testing/lirc-utils/lircd create mode 100644 abs/core-testing/lirc-utils/lircd.conf.d create mode 100755 abs/core-testing/lirc-utils/lircmd create mode 100644 abs/core-testing/lirc/PKGBUILD create mode 100644 abs/core-testing/lirc/kernel-2.6.26.patch create mode 100644 abs/core-testing/lirc/lirc.install create mode 100644 abs/core-testing/live-installer/LinHES-release create mode 100755 abs/core-testing/live-installer/MythVantage.sh create mode 100755 abs/core-testing/live-installer/PKGBUILD create mode 100755 abs/core-testing/live-installer/add_service.sh create mode 100755 abs/core-testing/live-installer/autocard.py create mode 100755 abs/core-testing/live-installer/bpopup-ui.xml create mode 100755 abs/core-testing/live-installer/build_diskless.sh create mode 100755 abs/core-testing/live-installer/copy-to-mythbase.sh create mode 100755 abs/core-testing/live-installer/create_master.sh create mode 100755 abs/core-testing/live-installer/file_time_offset.py create mode 100755 abs/core-testing/live-installer/install-ui.xml create mode 100755 abs/core-testing/live-installer/install_db_chroot.sh create mode 100755 abs/core-testing/live-installer/install_functions.sh create mode 100755 abs/core-testing/live-installer/install_proxy.sh create mode 100644 abs/core-testing/live-installer/issue create mode 100755 abs/core-testing/live-installer/live-install.sh create mode 100644 abs/core-testing/live-installer/live.install create mode 100644 abs/core-testing/live-installer/networkconfig.sh create mode 100755 abs/core-testing/live-installer/remove_service.sh create mode 100755 abs/core-testing/live-installer/restore_default_settings.sh create mode 100755 abs/core-testing/live-installer/soundconfig.sh create mode 100755 abs/core-testing/live-installer/startx create mode 100755 abs/core-testing/live-installer/systemconfig.sh create mode 100644 abs/core-testing/live-installer/templates/LCD/Shuttle-SG33/LCDd.conf create mode 100644 abs/core-testing/live-installer/templates/LCD/Silverstone/LCDd.conf create mode 100644 abs/core-testing/live-installer/templates/LCD/Silverstone/modules create mode 100644 abs/core-testing/live-installer/templates/LCD/antec_fusion/LCDd.conf create mode 100644 abs/core-testing/live-installer/templates/LCD/antec_fusion/lircd.conf create mode 100644 abs/core-testing/live-installer/templates/LCD/antec_fusion/lircrc create mode 100644 abs/core-testing/live-installer/templates/LCD/antec_fusion/modules create mode 100644 abs/core-testing/live-installer/templates/LCD/xosd/LCDd.conf create mode 100755 abs/core-testing/live-installer/templates/cc.orig.sh create mode 100755 abs/core-testing/live-installer/templates/cc.sh create mode 100755 abs/core-testing/live-installer/templates/cc_vol.sh create mode 100755 abs/core-testing/live-installer/templates/change_chan.sh create mode 100644 abs/core-testing/live-installer/templates/cron.template create mode 100644 abs/core-testing/live-installer/templates/etcnet/eth/ipv4address create mode 100644 abs/core-testing/live-installer/templates/etcnet/eth/ipv4route create mode 100644 abs/core-testing/live-installer/templates/etcnet/eth/iwconfig create mode 100644 abs/core-testing/live-installer/templates/etcnet/eth/options create mode 100644 abs/core-testing/live-installer/templates/evrouter/MythVantage-4 create mode 100644 abs/core-testing/live-installer/templates/evrouter/MythVantage-8 create mode 100644 abs/core-testing/live-installer/templates/evrouter/MythVantage-Full create mode 100644 abs/core-testing/live-installer/templates/evrouter/MythVantage8-minipac create mode 100644 abs/core-testing/live-installer/templates/evrouter/MythVantage8-uhid create mode 100644 abs/core-testing/live-installer/templates/exports.template create mode 100755 abs/core-testing/live-installer/templates/fstab.conf.template create mode 100644 abs/core-testing/live-installer/templates/mysql.service create mode 100755 abs/core-testing/live-installer/templates/mysql.txt create mode 100755 abs/core-testing/live-installer/templates/ncid.conf.template create mode 100644 abs/core-testing/live-installer/templates/ncidd.conf.template create mode 100755 abs/core-testing/live-installer/templates/real_change_chan.sh create mode 100644 abs/core-testing/live-installer/templates/remotes/ATI_wonder/lircd.ATI.conf create mode 100644 abs/core-testing/live-installer/templates/remotes/ATI_wonder/lircrc-atiwonder.txt create mode 100644 abs/core-testing/live-installer/templates/remotes/ATI_wonder/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/MX-500-jams/lircd.conf.MX-500-JAMS create mode 100644 abs/core-testing/live-installer/templates/remotes/MX-500-jams/lircrc create mode 100644 abs/core-testing/live-installer/templates/remotes/MX-500-jams/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/MythVantage-one/lircd.conf create mode 100755 abs/core-testing/live-installer/templates/remotes/MythVantage-one/lircrc create mode 100644 abs/core-testing/live-installer/templates/remotes/MythVantage-one/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/RadioShack_15-2116-Jarod_Wilson/lircd-rs.conf create mode 100644 abs/core-testing/live-installer/templates/remotes/RadioShack_15-2116-Jarod_Wilson/lircrc-rs create mode 100644 abs/core-testing/live-installer/templates/remotes/RadioShack_15-2116-Jarod_Wilson/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/gr8zap/lircd.conf.streamzap create mode 100644 abs/core-testing/live-installer/templates/remotes/gr8zap/lircrc create mode 100644 abs/core-testing/live-installer/templates/remotes/gr8zap/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/hauppauge/lircd.conf.hauppauge create mode 100644 abs/core-testing/live-installer/templates/remotes/hauppauge/lircmd.conf.hauppauge create mode 100644 abs/core-testing/live-installer/templates/remotes/hauppauge/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/imon-pad/lircd.conf create mode 100644 abs/core-testing/live-installer/templates/remotes/imon-pad/lircrc create mode 100644 abs/core-testing/live-installer/templates/remotes/imon-pad/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/mceusb/lircd-mceusb.conf create mode 100644 abs/core-testing/live-installer/templates/remotes/mceusb/lircrc-mceusb create mode 100644 abs/core-testing/live-installer/templates/remotes/mceusb/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/no_remote/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/receiver_usb.id create mode 100644 abs/core-testing/live-installer/templates/remotes/snapstream_firefly/lircd.snapstrm.conf create mode 100644 abs/core-testing/live-installer/templates/remotes/snapstream_firefly/lircrc-snapstrm.txt create mode 100644 abs/core-testing/live-installer/templates/remotes/snapstream_firefly/preview.jpg create mode 100644 abs/core-testing/live-installer/templates/remotes/streamzap/lircd.conf.streamzap create mode 100755 abs/core-testing/live-installer/templates/remotes/streamzap/lircrc create mode 100644 abs/core-testing/live-installer/templates/remotes/streamzap/preview.jpg create mode 100755 abs/core-testing/live-installer/templates/samba/smb.conf.home create mode 100755 abs/core-testing/live-installer/templates/samba/smb.conf.media create mode 100644 abs/core-testing/live-installer/templates/samba/smb.conf.template create mode 100644 abs/core-testing/live-installer/templates/settings/default_1/keybindings.txt create mode 100644 abs/core-testing/live-installer/templates/settings/default_1/settings.txt create mode 100644 abs/core-testing/live-installer/templates/settings/default_2/keybindings.txt create mode 100644 abs/core-testing/live-installer/templates/settings/default_2/settings.txt create mode 100644 abs/core-testing/live-installer/templates/sources/mv-core create mode 100644 abs/core-testing/live-installer/templates/sources/mv-core-testing create mode 100644 abs/core-testing/live-installer/templates/sources/mv-extra create mode 100644 abs/core-testing/live-installer/templates/sources/mv-extra-testing create mode 100644 abs/core-testing/live-installer/templates/sources/svc_pkg create mode 100755 abs/core-testing/live-installer/templates/transmit/Time_Warner_SA3250/lircd.conf create mode 100644 abs/core-testing/live-installer/templates/xine.config.template create mode 100644 abs/core-testing/live-installer/templates/xorg/modeline.ATSC create mode 100644 abs/core-testing/live-installer/templates/xorg/modeline.DVD create mode 100644 abs/core-testing/live-installer/templates/xorg/modeline.NTSC create mode 100644 abs/core-testing/live-installer/templates/xorg/modeline.VESA create mode 100644 abs/core-testing/live-installer/templates/xorg/modeline.custom create mode 100644 abs/core-testing/live-installer/templates/xorg/xorg.conf.ati create mode 100644 abs/core-testing/live-installer/templates/xorg/xorg.conf.intel create mode 100755 abs/core-testing/live-installer/templates/xorg/xorg.conf.nvidia create mode 100644 abs/core-testing/live-installer/templates/xorg/xorg.conf.via create mode 100755 abs/core-testing/live-installer/templates/xorg/xorg.conf.vmware create mode 100755 abs/core-testing/live-installer/timezip.py create mode 100755 abs/core-testing/live-installer/xconfig.sh create mode 100644 abs/core-testing/logrotate/PKGBUILD create mode 100644 abs/core-testing/logrotate/logrotate.conf create mode 100755 abs/core-testing/logrotate/logrotate.cron.daily create mode 100644 abs/core-testing/lsof/PKGBUILD create mode 100644 abs/core-testing/lsof/license.txt create mode 100644 abs/core-testing/lvm2/PKGBUILD create mode 100644 abs/core-testing/lvm2/lvm2_hook create mode 100644 abs/core-testing/lvm2/lvm2_install create mode 100644 abs/core-testing/lzo2/PKGBUILD create mode 100644 abs/core-testing/lzop/PKGBUILD create mode 100644 abs/core-testing/madwifi-utils/PKGBUILD create mode 100644 abs/core-testing/madwifi/PKGBUILD create mode 100644 abs/core-testing/madwifi/kernel-2.6.19.patch create mode 100644 abs/core-testing/madwifi/kernel-2.6.20.patch create mode 100644 abs/core-testing/madwifi/madwifi-ng.install create mode 100644 abs/core-testing/mailx/PKGBUILD create mode 100644 abs/core-testing/mailx/mailx-8.1.1.patch create mode 100644 abs/core-testing/mailx/mailx-gcc4.patch create mode 100644 abs/core-testing/man-pages/PKGBUILD create mode 100644 abs/core-testing/man/PKGBUILD create mode 100644 abs/core-testing/man/man-troff.patch create mode 100755 abs/core-testing/man/whatis.cron.daily create mode 100644 abs/core-testing/mcpp/PKGBUILD create mode 100644 abs/core-testing/mcpp/mcpp-2.6.4-patch create mode 100644 abs/core-testing/mdadm/PKGBUILD create mode 100755 abs/core-testing/mdadm/mdadm create mode 100644 abs/core-testing/mdadm/mdadm-2.2-segfault.patch create mode 100644 abs/core-testing/mdadm/mdadm.conf create mode 100644 abs/core-testing/mdadm/raid-partitions_hook create mode 100644 abs/core-testing/mdadm/raid-partitions_install create mode 100644 abs/core-testing/mesa/PKGBUILD create mode 100644 abs/core-testing/mesa/mesa-6.5-apps-noglut.patch create mode 100644 abs/core-testing/mkinitcpio/PKGBUILD create mode 100644 abs/core-testing/mlocate/PKGBUILD create mode 100644 abs/core-testing/mlocate/mlocate.db create mode 100644 abs/core-testing/mlocate/mlocate.install create mode 100644 abs/core-testing/mlocate/updatedb.conf create mode 100755 abs/core-testing/mlocate/updatedb.cron.daily create mode 100644 abs/core-testing/module-init-tools/PKGBUILD create mode 100644 abs/core-testing/module-init-tools/fix-modprobe-ignore-path.patch create mode 100644 abs/core-testing/module-init-tools/makefile.patch create mode 100644 abs/core-testing/module-init-tools/modprobe.conf create mode 100644 abs/core-testing/module-init-tools/modutils-gcc4.patch create mode 100644 abs/core-testing/mplayer/MPlayer-1.0rc1-gnome-screensaver.patch create mode 100644 abs/core-testing/mplayer/PKGBUILD create mode 100644 abs/core-testing/mplayer/demux_audio_fix_20080129.diff create mode 100644 abs/core-testing/mplayer/demux_mov_fix_20080129.diff create mode 100644 abs/core-testing/mplayer/ivtv_2.6.24.patch create mode 100644 abs/core-testing/mplayer/stream_cddb_fix_20080120.diff create mode 100644 abs/core-testing/mplayer/url_fix_20080120.diff create mode 100644 abs/core-testing/mtools/PKGBUILD create mode 100644 abs/core-testing/mysql-clients/PKGBUILD create mode 100644 abs/core-testing/mysql-python/PKGBUILD create mode 100644 abs/core-testing/mysql/PKGBUILD create mode 100644 abs/core-testing/mysql/my.cnf create mode 100644 abs/core-testing/mysql/mysql-no-clients.patch create mode 100755 abs/core-testing/mysql/mysqld create mode 100644 abs/core-testing/mysql/mysqld.conf.d create mode 100644 abs/core-testing/mythtv/stable/mytharchive/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD create mode 100755 abs/core-testing/mythtv/stable/mythdb-initial/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythdb-initial/mc.sql create mode 100755 abs/core-testing/mythtv/stable/mythdb-initial/mythdb.install create mode 100755 abs/core-testing/mythtv/stable/mythdb-initial/permissions.sql create mode 100644 abs/core-testing/mythtv/stable/mythflix/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythgallery/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythgame/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythmusic/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythmusic/music_flac.patch create mode 100644 abs/core-testing/mythtv/stable/mythmusic/mythmusic-0.21.patch create mode 100644 abs/core-testing/mythtv/stable/mythnews/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythphone/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/myththemes/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythtv/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythtv/QUICKSTART.archlinux create mode 100755 abs/core-testing/mythtv/stable/mythtv/mythbackend create mode 100644 abs/core-testing/mythtv/stable/mythtv/mythtv.install create mode 100644 abs/core-testing/mythtv/stable/mythvideo/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythvideo/mtd create mode 100644 abs/core-testing/mythtv/stable/mythweather/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythweb/PKGBUILD create mode 100644 abs/core-testing/mythtv/stable/mythweb/mythweb.install create mode 100644 abs/core-testing/nano/PKGBUILD create mode 100644 abs/core-testing/nano/nano.install create mode 100644 abs/core-testing/ncurses/PKGBUILD create mode 100644 abs/core-testing/ncurses/ncurses.install create mode 100644 abs/core-testing/ndiswrapper-utils/PKGBUILD create mode 100644 abs/core-testing/ndiswrapper/PKGBUILD create mode 100644 abs/core-testing/ndiswrapper/ndiswrapper.install create mode 100644 abs/core-testing/net-tools/PKGBUILD create mode 100644 abs/core-testing/net-tools/gcc340.patch create mode 100644 abs/core-testing/net-tools/net-tools-1.60-2.6-compilefix.patch create mode 100644 abs/core-testing/net-tools/net-tools-1.60-miiioctl.patch create mode 100644 abs/core-testing/net-tools/net-tools-1.60-nameif.patch create mode 100644 abs/core-testing/net-tools/net-tools-1.60-nameif_strncpy.patch create mode 100644 abs/core-testing/net-tools/net-tools.patch create mode 100644 abs/core-testing/net-tools/nisdomainname.conf.d create mode 100644 abs/core-testing/netcfg/PKGBUILD create mode 100644 abs/core-testing/ntfsprogs/PKGBUILD create mode 100644 abs/core-testing/ntfsprogs/ntfsprogs.install create mode 100644 abs/core-testing/nuvexport/PKGBUILD create mode 100644 abs/core-testing/nuvexport/nuvexport-ipod-disable.patch create mode 100644 abs/core-testing/openexr/PKGBUILD create mode 100644 abs/core-testing/openexr/gcc43.patch create mode 100644 abs/core-testing/openexr/openexr-gcc4.patch create mode 100644 abs/core-testing/openssh/PKGBUILD create mode 100755 abs/core-testing/openssh/sshd create mode 100644 abs/core-testing/openssh/sshd.confd create mode 100644 abs/core-testing/openssh/sshd.pam create mode 100644 abs/core-testing/openssl/PKGBUILD create mode 100644 abs/core-testing/pacman/PKGBUILD create mode 100644 abs/core-testing/pacman/mirrorlist create mode 100644 abs/core-testing/pacman/pacman.conf create mode 100644 abs/core-testing/pacman/pacman.install create mode 100644 abs/core-testing/pam/PKGBUILD create mode 100644 abs/core-testing/pam/other create mode 100644 abs/core-testing/pam/pam.install create mode 100644 abs/core-testing/pango/PKGBUILD create mode 100644 abs/core-testing/pango/pango.install create mode 100644 abs/core-testing/parted/PKGBUILD create mode 100644 abs/core-testing/parted/parted-1.7.1-fix-seg.patch create mode 100644 abs/core-testing/pciutils/PKGBUILD create mode 100644 abs/core-testing/pcmciautils/PKGBUILD create mode 100644 abs/core-testing/pcre/ChangeLog create mode 100644 abs/core-testing/pcre/PKGBUILD create mode 100644 abs/core-testing/pcre/libpcre-7.7-buffer-overflow.patch create mode 100644 abs/core-testing/perl/PKGBUILD create mode 100644 abs/core-testing/perl/archlinux-cpan-installdir.patch create mode 100644 abs/core-testing/perl/archlinux-inc-order.patch create mode 100644 abs/core-testing/perl/perl-5.10.0-archlinux-cpan-installdir.patch create mode 100644 abs/core-testing/perl/perl-5.10.0-archlinux-inc-order.patch create mode 100644 abs/core-testing/perl/perl-5.8.6-picdl.patch0 create mode 100644 abs/core-testing/perl/perl-5.8.8-gcc-4.2.0.patch create mode 100644 abs/core-testing/perl/perl-5.8.8-utf-regexes.patch create mode 100644 abs/core-testing/perl/perl.install create mode 100755 abs/core-testing/perl/perlbin.sh create mode 100644 abs/core-testing/perl_modules/perl-archive-zip/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-class-methodmaker/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-crypt-ssleay/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-date-manip/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-dbd-mysql/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-dbi/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-fcgi/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-file-slurp/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-html-parser/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-html-tagset/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-html-tree/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-http-cache-transparent/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-io-socket-ssl/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-io-stringy/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-libwww/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-lingua-en-numbers-ordinate/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-lingua-en-numbers/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-lingua-preferred/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-mailtools/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-mime-lite/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-mime-tools/ChangeLog create mode 100644 abs/core-testing/perl_modules/perl-mime-tools/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-mime-types/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-net-ssleay/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-soap-lite/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-term-progressbar/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-term-readkey/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-text-bidi/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-text-iconv/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-text-kakasi/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-timedate/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-tk-tablematrix/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-tk/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-unicode-string/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-unicode-utf8simple/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-uri/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-www-mechanize/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-libxml-common/ChangeLog create mode 100644 abs/core-testing/perl_modules/perl-xml-libxml-common/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-libxml/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-libxml/perl-xml-libxml.install create mode 100644 abs/core-testing/perl_modules/perl-xml-namespacesupport/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-sax/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-sax/perl-xml-sax.install create mode 100644 abs/core-testing/perl_modules/perl-xml-sax/perl-xml-sax.patch create mode 100644 abs/core-testing/perl_modules/perl-xml-simple/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-twig/PKGBUILD create mode 100644 abs/core-testing/perl_modules/perl-xml-writer/PKGBUILD create mode 100644 abs/core-testing/perlxml/PKGBUILD create mode 100644 abs/core-testing/php/PKGBUILD create mode 100644 abs/core-testing/php/apache.conf create mode 100644 abs/core-testing/php/db-configure.patch create mode 100644 abs/core-testing/php/php.ini create mode 100644 abs/core-testing/php/php.install create mode 100644 abs/core-testing/pil/PKGBUILD create mode 100644 abs/core-testing/pixman/PKGBUILD create mode 100644 abs/core-testing/pkgconfig/PKGBUILD create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/all-wcprops create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/entries create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/format create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base create mode 100644 abs/core-testing/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base create mode 100755 abs/core-testing/plextor-convertX-driver/PKGBUILD create mode 100755 abs/core-testing/plextor-convertX-driver/convertX.install create mode 100644 abs/core-testing/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff create mode 100644 abs/core-testing/pm-utils/11netcfg create mode 100644 abs/core-testing/pm-utils/PKGBUILD create mode 100644 abs/core-testing/pm-utils/pm-utils.install create mode 100644 abs/core-testing/pm-utils/service.patch create mode 100644 abs/core-testing/popt/PKGBUILD create mode 100644 abs/core-testing/ppp/PKGBUILD create mode 100644 abs/core-testing/ppp/ip-down create mode 100644 abs/core-testing/ppp/ip-up create mode 100644 abs/core-testing/ppp/options create mode 100644 abs/core-testing/ppp/plog create mode 100644 abs/core-testing/ppp/poff create mode 100644 abs/core-testing/ppp/pon create mode 100644 abs/core-testing/ppp/pon.1 create mode 100644 abs/core-testing/ppp/ppp create mode 100644 abs/core-testing/printproto/PKGBUILD create mode 100644 abs/core-testing/procinfo/PKGBUILD create mode 100644 abs/core-testing/procinfo/procinfo-19.2.patch create mode 100644 abs/core-testing/procps/PKGBUILD create mode 100644 abs/core-testing/procps/sysctl.conf create mode 100644 abs/core-testing/psmisc/PKGBUILD create mode 100644 abs/core-testing/pycairo/PKGBUILD create mode 100644 abs/core-testing/pygobject/PKGBUILD create mode 100644 abs/core-testing/pygtk/PKGBUILD create mode 100644 abs/core-testing/python-numeric/PKGBUILD create mode 100644 abs/core-testing/python-pexpect/PKGBUILD create mode 100644 abs/core-testing/python/PKGBUILD create mode 100644 abs/core-testing/python/Python-2.4.4-gdbm-1.patch create mode 100644 abs/core-testing/python/Python-2.5.2-idlelib.patch create mode 100644 abs/core-testing/python/db4.6-setup.py-detection.patch create mode 100644 abs/core-testing/python/modulator-launcher create mode 100644 abs/core-testing/python/pynche-launcher create mode 100644 abs/core-testing/python/python-2.5.CVE-2007-4965-int-overflow.patch create mode 100644 abs/core-testing/python/python.install create mode 100644 abs/core-testing/python/python2.6-set_wakeup_fd4.patch create mode 100644 abs/core-testing/qt3/PKGBUILD create mode 100644 abs/core-testing/qt3/mysql.patch create mode 100644 abs/core-testing/qt3/qt-copy-kde-patches.tar.bz2 create mode 100644 abs/core-testing/qt3/qt-font-default-subst.diff create mode 100644 abs/core-testing/qt3/qt-patches.tar.bz2 create mode 100644 abs/core-testing/qt3/qt.install create mode 100644 abs/core-testing/qt3/qt.profile create mode 100644 abs/core-testing/qt3/utf8-bug-qt3.diff create mode 100644 abs/core-testing/randrproto/PKGBUILD create mode 100644 abs/core-testing/readline/PKGBUILD create mode 100644 abs/core-testing/readline/inputrc create mode 100644 abs/core-testing/readline/readline.install create mode 100644 abs/core-testing/recordproto/PKGBUILD create mode 100644 abs/core-testing/reiserfsprogs/PKGBUILD create mode 100644 abs/core-testing/renderproto/PKGBUILD create mode 100644 abs/core-testing/rp-pppoe/PKGBUILD create mode 100755 abs/core-testing/rp-pppoe/adsl create mode 100644 abs/core-testing/rt2500/PKGBUILD create mode 100644 abs/core-testing/rt2500/kernel-2.6.22.patch create mode 100644 abs/core-testing/rt2500/kernel-2.6.24.patch create mode 100644 abs/core-testing/rt2500/rt2500.install create mode 100644 abs/core-testing/rt2x00-rt61-fw/PKGBUILD create mode 100644 abs/core-testing/rt2x00-rt71w-fw/PKGBUILD create mode 100644 abs/core-testing/run-parts/PKGBUILD create mode 100755 abs/core-testing/runit/PKGBUILD create mode 100755 abs/core-testing/runit/add_service.sh create mode 100755 abs/core-testing/runit/halt.script create mode 100755 abs/core-testing/runit/poweroff.script create mode 100755 abs/core-testing/runit/reboot.script create mode 100755 abs/core-testing/runit/remove_service.sh create mode 100755 abs/core-testing/runit/runit.install create mode 100755 abs/core-testing/runit/runitscripts/1 create mode 100755 abs/core-testing/runit/runitscripts/2 create mode 100755 abs/core-testing/runit/runitscripts/3 create mode 100755 abs/core-testing/runit/runitscripts/ctrlaltdel create mode 100755 abs/core-testing/runit/runitscripts/halt-runit create mode 100755 abs/core-testing/runit/runitscripts/logger create mode 100755 abs/core-testing/runit/runitscripts/reboot-runit create mode 100755 abs/core-testing/runit/runitscripts/services/Xvfb/finish create mode 100755 abs/core-testing/runit/runitscripts/services/Xvfb/run create mode 100755 abs/core-testing/runit/runitscripts/services/acpid/run create mode 100755 abs/core-testing/runit/runitscripts/services/alsa-utils/finish create mode 100755 abs/core-testing/runit/runitscripts/services/alsa-utils/run create mode 100755 abs/core-testing/runit/runitscripts/services/apache/run create mode 100755 abs/core-testing/runit/runitscripts/services/avahi/run create mode 100755 abs/core-testing/runit/runitscripts/services/cron/run create mode 100755 abs/core-testing/runit/runitscripts/services/dbus/run create mode 100755 abs/core-testing/runit/runitscripts/services/dnsmasq/run create mode 100755 abs/core-testing/runit/runitscripts/services/evrouter/finish create mode 100755 abs/core-testing/runit/runitscripts/services/evrouter/run create mode 100755 abs/core-testing/runit/runitscripts/services/frontend/finish create mode 100755 abs/core-testing/runit/runitscripts/services/frontend/log/run create mode 100755 abs/core-testing/runit/runitscripts/services/frontend/run create mode 100755 abs/core-testing/runit/runitscripts/services/gpm/run create mode 100755 abs/core-testing/runit/runitscripts/services/hal/run create mode 100755 abs/core-testing/runit/runitscripts/services/hobbit-client/run create mode 100755 abs/core-testing/runit/runitscripts/services/hobbit/run create mode 100755 abs/core-testing/runit/runitscripts/services/lcdd/run create mode 100755 abs/core-testing/runit/runitscripts/services/lighttpd/run create mode 100755 abs/core-testing/runit/runitscripts/services/lircd/finish create mode 100755 abs/core-testing/runit/runitscripts/services/lircd/run create mode 100755 abs/core-testing/runit/runitscripts/services/mysql/run create mode 100755 abs/core-testing/runit/runitscripts/services/mythbackend/log/run create mode 100755 abs/core-testing/runit/runitscripts/services/mythbackend/run create mode 100755 abs/core-testing/runit/runitscripts/services/ncid/run create mode 100755 abs/core-testing/runit/runitscripts/services/ncidd/run create mode 100755 abs/core-testing/runit/runitscripts/services/netfs/finish create mode 100755 abs/core-testing/runit/runitscripts/services/netfs/run create mode 100755 abs/core-testing/runit/runitscripts/services/nfsd/run create mode 100755 abs/core-testing/runit/runitscripts/services/nfslock/run create mode 100755 abs/core-testing/runit/runitscripts/services/nmbd/run create mode 100755 abs/core-testing/runit/runitscripts/services/ntpd/run create mode 100755 abs/core-testing/runit/runitscripts/services/oss/finish create mode 100755 abs/core-testing/runit/runitscripts/services/oss/run create mode 100755 abs/core-testing/runit/runitscripts/services/portmap/run create mode 100755 abs/core-testing/runit/runitscripts/services/smbd/run create mode 100755 abs/core-testing/runit/runitscripts/services/sshd/run create mode 100755 abs/core-testing/runit/runitscripts/services/syslog-ng/run create mode 100755 abs/core-testing/runit/runitscripts/services/tty2/run create mode 100755 abs/core-testing/runit/runitscripts/services/tty3/run create mode 100644 abs/core-testing/scrnsaverproto/PKGBUILD create mode 100644 abs/core-testing/sdl/PKGBUILD create mode 100644 abs/core-testing/sdparm/PKGBUILD create mode 100644 abs/core-testing/sed/PKGBUILD create mode 100644 abs/core-testing/sg3_utils/PKGBUILD create mode 100644 abs/core-testing/shadow/PKGBUILD create mode 100644 abs/core-testing/shadow/adduser create mode 100644 abs/core-testing/shadow/chage create mode 100644 abs/core-testing/shadow/chsh create mode 100644 abs/core-testing/shadow/login create mode 100644 abs/core-testing/shadow/login.defs create mode 100644 abs/core-testing/shadow/passwd create mode 100644 abs/core-testing/shadow/shadow create mode 100644 abs/core-testing/shadow/shadow-4.0.18.2-useradd-fix-1.patch create mode 100644 abs/core-testing/shadow/shadow-UID_GID.patch create mode 100755 abs/core-testing/shadow/shadow.cron.daily create mode 100644 abs/core-testing/shadow/shadow.install create mode 100644 abs/core-testing/shadow/useradd create mode 100644 abs/core-testing/shadow/useradd-default.patch create mode 100644 abs/core-testing/shadow/xstrdup.patch create mode 100644 abs/core-testing/smbclient/PKGBUILD create mode 100644 abs/core-testing/smbclient/heimdal.patch create mode 100644 abs/core-testing/squashfs-tools/PKGBUILD create mode 100644 abs/core-testing/sudo/PKGBUILD create mode 100644 abs/core-testing/sudo/sudo.pam create mode 100644 abs/core-testing/sysfsutils/PKGBUILD create mode 100644 abs/core-testing/syslinux/PKGBUILD create mode 100644 abs/core-testing/syslog-ng/PKGBUILD create mode 100755 abs/core-testing/syslog-ng/syslog-ng create mode 100644 abs/core-testing/syslog-ng/syslog-ng.conf create mode 100644 abs/core-testing/syslog-ng/syslog-ng.logrotate create mode 100644 abs/core-testing/sysvinit/PKGBUILD create mode 100644 abs/core-testing/sysvinit/halt-init.patch create mode 100644 abs/core-testing/taglib/PKGBUILD create mode 100644 abs/core-testing/tar/PKGBUILD create mode 100644 abs/core-testing/tar/tar.1 create mode 100644 abs/core-testing/tcl/ChangeLog create mode 100644 abs/core-testing/tcl/PKGBUILD create mode 100644 abs/core-testing/tcp_wrappers/PKGBUILD create mode 100644 abs/core-testing/tcp_wrappers/gcc340.patch create mode 100644 abs/core-testing/tcp_wrappers/hosts.allow create mode 100644 abs/core-testing/tcp_wrappers/hosts.deny create mode 100644 abs/core-testing/tcp_wrappers/safe_finger.8 create mode 100644 abs/core-testing/tcp_wrappers/shared_lib_plus_plus-1.patch create mode 100644 abs/core-testing/tcp_wrappers/try-from.8 create mode 100644 abs/core-testing/tiacx-firmware/PKGBUILD create mode 100644 abs/core-testing/tiacx-firmware/tiacx-firmware.install create mode 100644 abs/core-testing/tiacx/PKGBUILD create mode 100644 abs/core-testing/tiacx/acx.install create mode 100644 abs/core-testing/tk/ChangeLog create mode 100644 abs/core-testing/tk/PKGBUILD create mode 100644 abs/core-testing/trapproto/PKGBUILD create mode 100644 abs/core-testing/ttf-dejavu/ChangeLog create mode 100644 abs/core-testing/ttf-dejavu/PKGBUILD create mode 100644 abs/core-testing/ttf-dejavu/ttf-dejavu.install create mode 100644 abs/core-testing/tzdata/Makefile.patch create mode 100644 abs/core-testing/tzdata/PKGBUILD create mode 100644 abs/core-testing/tzdata/chile.patch create mode 100644 abs/core-testing/udev/00-load-blacklist.rules create mode 100644 abs/core-testing/udev/51-arch.rules create mode 100644 abs/core-testing/udev/PKGBUILD create mode 100644 abs/core-testing/udev/arch-udev-rules.patch create mode 100644 abs/core-testing/udev/cdrom-rules.patch create mode 100755 abs/core-testing/udev/cdsymlinks.sh create mode 100755 abs/core-testing/udev/load-modules.sh create mode 100644 abs/core-testing/udev/migrate-udev create mode 100755 abs/core-testing/udev/mod-blacklist.sh create mode 100644 abs/core-testing/udev/readme-udev-arch.txt create mode 100755 abs/core-testing/udev/root-link.sh create mode 100755 abs/core-testing/udev/start_udev create mode 100644 abs/core-testing/udev/udev.install create mode 100644 abs/core-testing/udev/udev.rules create mode 100644 abs/core-testing/udev/usb_id-fix.patch create mode 100644 abs/core-testing/unichrome-dri/PKGBUILD create mode 100644 abs/core-testing/unison/PKGBUILD create mode 100644 abs/core-testing/unison/ocaml-3.08-extnames.patch create mode 100644 abs/core-testing/unison/unison.desktop create mode 100644 abs/core-testing/unison/unison.install create mode 100644 abs/core-testing/usbutils/PKGBUILD create mode 100644 abs/core-testing/util-linux-ng/PKGBUILD create mode 100644 abs/core-testing/util-linux-ng/util-linux-ng-2.14-20080624.diff create mode 100644 abs/core-testing/v4l-dvb/PKGBUILD create mode 100644 abs/core-testing/v4l-dvb/v4l-dvb.install create mode 100644 abs/core-testing/vbetool/PKGBUILD create mode 100644 abs/core-testing/vi/PKGBUILD create mode 100644 abs/core-testing/vi/fetch_patches.sh create mode 100644 abs/core-testing/vi/fetch_runtime.sh create mode 100644 abs/core-testing/vi/vi.install create mode 100644 abs/core-testing/videoproto/PKGBUILD create mode 100644 abs/core-testing/wget/PKGBUILD create mode 100644 abs/core-testing/which/PKGBUILD create mode 100644 abs/core-testing/wlan-ng26-utils/PKGBUILD create mode 100644 abs/core-testing/wlan-ng26-utils/kernel-2.6.22-r1832.patch create mode 100644 abs/core-testing/wlan-ng26-utils/kernel-2.6.26.patch create mode 100644 abs/core-testing/wlan-ng26-utils/wlan create mode 100644 abs/core-testing/wlan-ng26-utils/wlan-ng.patch create mode 100644 abs/core-testing/wlan-ng26/PKGBUILD create mode 100644 abs/core-testing/wlan-ng26/kernel-2.6.26.patch create mode 100644 abs/core-testing/wlan-ng26/wlan-ng26.install create mode 100644 abs/core-testing/wpa_supplicant/PKGBUILD create mode 100644 abs/core-testing/wpa_supplicant/config create mode 100644 abs/core-testing/wpa_supplicant/wpa_supplicant.install create mode 100644 abs/core-testing/x264/PKGBUILD create mode 100644 abs/core-testing/xbitmaps/PKGBUILD create mode 100644 abs/core-testing/xcb-proto/PKGBUILD create mode 100644 abs/core-testing/xcursor-themes/PKGBUILD create mode 100644 abs/core-testing/xextproto/PKGBUILD create mode 100644 abs/core-testing/xf86-input-acecad/PKGBUILD create mode 100644 abs/core-testing/xf86-input-aiptek/PKGBUILD create mode 100644 abs/core-testing/xf86-input-calcomp/PKGBUILD create mode 100644 abs/core-testing/xf86-input-citron/PKGBUILD create mode 100644 abs/core-testing/xf86-input-digitaledge/PKGBUILD create mode 100644 abs/core-testing/xf86-input-dmc/PKGBUILD create mode 100644 abs/core-testing/xf86-input-dynapro/PKGBUILD create mode 100644 abs/core-testing/xf86-input-elo2300/PKGBUILD create mode 100644 abs/core-testing/xf86-input-elographics/PKGBUILD create mode 100644 abs/core-testing/xf86-input-evdev/PKGBUILD create mode 100644 abs/core-testing/xf86-input-fpit/PKGBUILD create mode 100644 abs/core-testing/xf86-input-hyperpen/PKGBUILD create mode 100644 abs/core-testing/xf86-input-jamstudio/PKGBUILD create mode 100644 abs/core-testing/xf86-input-joystick/PKGBUILD create mode 100644 abs/core-testing/xf86-input-keyboard/PKGBUILD create mode 100644 abs/core-testing/xf86-input-keyboard/new-server.patch create mode 100644 abs/core-testing/xf86-input-magellan/PKGBUILD create mode 100644 abs/core-testing/xf86-input-magictouch/PKGBUILD create mode 100644 abs/core-testing/xf86-input-microtouch/PKGBUILD create mode 100644 abs/core-testing/xf86-input-mouse/PKGBUILD create mode 100644 abs/core-testing/xf86-input-mutouch/PKGBUILD create mode 100644 abs/core-testing/xf86-input-palmax/PKGBUILD create mode 100644 abs/core-testing/xf86-input-penmount/PKGBUILD create mode 100644 abs/core-testing/xf86-input-spaceorb/PKGBUILD create mode 100644 abs/core-testing/xf86-input-summa/PKGBUILD create mode 100644 abs/core-testing/xf86-input-tek4957/PKGBUILD create mode 100644 abs/core-testing/xf86-input-ur98/PKGBUILD create mode 100644 abs/core-testing/xf86-input-vmmouse/PKGBUILD create mode 100644 abs/core-testing/xf86-input-void/PKGBUILD create mode 100644 abs/core-testing/xf86-video-amd/PKGBUILD create mode 100644 abs/core-testing/xf86-video-apm/PKGBUILD create mode 100644 abs/core-testing/xf86-video-ark/PKGBUILD create mode 100644 abs/core-testing/xf86-video-ati/PKGBUILD create mode 100644 abs/core-testing/xf86-video-chips/PKGBUILD create mode 100644 abs/core-testing/xf86-video-cirrus/PKGBUILD create mode 100644 abs/core-testing/xf86-video-dummy/PKGBUILD create mode 100644 abs/core-testing/xf86-video-fbdev/PKGBUILD create mode 100644 abs/core-testing/xf86-video-glint/PKGBUILD create mode 100644 abs/core-testing/xf86-video-i128/PKGBUILD create mode 100644 abs/core-testing/xf86-video-i740/PKGBUILD create mode 100644 abs/core-testing/xf86-video-imstt/PKGBUILD create mode 100644 abs/core-testing/xf86-video-intel/PKGBUILD create mode 100644 abs/core-testing/xf86-video-mga/PKGBUILD create mode 100644 abs/core-testing/xf86-video-neomagic/PKGBUILD create mode 100644 abs/core-testing/xf86-video-nv/PKGBUILD create mode 100644 abs/core-testing/xf86-video-radeonhd/PKGBUILD create mode 100644 abs/core-testing/xf86-video-rendition/PKGBUILD create mode 100644 abs/core-testing/xf86-video-s3/PKGBUILD create mode 100644 abs/core-testing/xf86-video-s3virge/PKGBUILD create mode 100644 abs/core-testing/xf86-video-savage/PKGBUILD create mode 100644 abs/core-testing/xf86-video-siliconmotion/PKGBUILD create mode 100644 abs/core-testing/xf86-video-sis/PKGBUILD create mode 100644 abs/core-testing/xf86-video-sisusb/PKGBUILD create mode 100644 abs/core-testing/xf86-video-tdfx/PKGBUILD create mode 100644 abs/core-testing/xf86-video-trident/PKGBUILD create mode 100644 abs/core-testing/xf86-video-tseng/PKGBUILD create mode 100644 abs/core-testing/xf86-video-unichrome/PKGBUILD create mode 100644 abs/core-testing/xf86-video-unichrome/fix-defines.patch create mode 100644 abs/core-testing/xf86-video-v4l/PKGBUILD create mode 100644 abs/core-testing/xf86-video-vesa/COPYING create mode 100644 abs/core-testing/xf86-video-vesa/PKGBUILD create mode 100644 abs/core-testing/xf86-video-vga/PKGBUILD create mode 100644 abs/core-testing/xf86-video-vmware/PKGBUILD create mode 100644 abs/core-testing/xf86-video-voodoo/PKGBUILD create mode 100644 abs/core-testing/xf86dgaproto/PKGBUILD create mode 100644 abs/core-testing/xf86miscproto/PKGBUILD create mode 100644 abs/core-testing/xf86vidmodeproto/PKGBUILD create mode 100644 abs/core-testing/xfsprogs/PKGBUILD create mode 100644 abs/core-testing/xineramaproto/PKGBUILD create mode 100644 abs/core-testing/xkeyboard-config/PKGBUILD create mode 100755 abs/core-testing/xmltv/PKGBUILD create mode 100644 abs/core-testing/xorg-apps/PKGBUILD create mode 100644 abs/core-testing/xorg-font-utils/PKGBUILD create mode 100644 abs/core-testing/xorg-font-utils/ttmkfdir.patch create mode 100644 abs/core-testing/xorg-font-utils/ttmkfdir_gcc43.patch create mode 100644 abs/core-testing/xorg-font-utils/xorg-font-utils.install create mode 100644 abs/core-testing/xorg-fonts-100dpi/PKGBUILD create mode 100644 abs/core-testing/xorg-fonts-100dpi/xfonts.install create mode 100644 abs/core-testing/xorg-fonts-75dpi/PKGBUILD create mode 100644 abs/core-testing/xorg-fonts-75dpi/xfonts.install create mode 100644 abs/core-testing/xorg-fonts-alias/PKGBUILD create mode 100644 abs/core-testing/xorg-fonts-encodings/PKGBUILD create mode 100644 abs/core-testing/xorg-fonts-encodings/xorg-fonts-encodings.install create mode 100644 abs/core-testing/xorg-fonts-misc/PKGBUILD create mode 100644 abs/core-testing/xorg-fonts-misc/xfonts.install create mode 100644 abs/core-testing/xorg-res-utils/PKGBUILD create mode 100644 abs/core-testing/xorg-server-utils/PKGBUILD create mode 100644 abs/core-testing/xorg-server/PKGBUILD create mode 100644 abs/core-testing/xorg-server/xorg-server.install create mode 100644 abs/core-testing/xorg-utils/PKGBUILD create mode 100644 abs/core-testing/xorg-xauth/PKGBUILD create mode 100644 abs/core-testing/xorg-xinit/PKGBUILD create mode 100644 abs/core-testing/xorg-xinit/xinitrc create mode 100644 abs/core-testing/xorg-xinit/xserverrc create mode 100644 abs/core-testing/xorg-xinit/xsession create mode 100644 abs/core-testing/xorg-xkb-utils/PKGBUILD create mode 100644 abs/core-testing/xproto/PKGBUILD create mode 100644 abs/core-testing/xterm/PKGBUILD create mode 100644 abs/core-testing/xtrans/PKGBUILD create mode 100644 abs/core-testing/xvidcore/PKGBUILD create mode 100644 abs/core-testing/zd1211-firmware/PKGBUILD create mode 100644 abs/core-testing/zlib/PKGBUILD create mode 100644 abs/core/a52dec/PKGBUILD create mode 100644 abs/core/a52dec/a52dec-0.7.4-build.patch create mode 100644 abs/core/aalib/PKGBUILD create mode 100644 abs/core/aalib/aclocal-fixes.patch create mode 100644 abs/core/acl/PKGBUILD create mode 100644 abs/core/alsa-lib/PKGBUILD create mode 100644 abs/core/alsa-lib/python2.5.patch create mode 100644 abs/core/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch create mode 100644 abs/core/alsa-oss/PKGBUILD create mode 100644 abs/core/alsa-utils/PKGBUILD create mode 100755 abs/core/alsa-utils/alsa create mode 100644 abs/core/alsa-utils/alsa.conf.d create mode 100644 abs/core/alsa-utils/alsaconf.patch create mode 100644 abs/core/apache/PKGBUILD create mode 100644 abs/core/apache/arch.layout create mode 100755 abs/core/apache/httpd create mode 100644 abs/core/apache/httpd.install create mode 100644 abs/core/apache/httpd.logrotate create mode 100644 abs/core/apr-util/PKGBUILD create mode 100644 abs/core/apr/PKGBUILD create mode 100644 abs/core/aspell/PKGBUILD create mode 100644 abs/core/aspell/aspell.install create mode 100644 abs/core/atk/PKGBUILD create mode 100644 abs/core/attr/PKGBUILD create mode 100644 abs/core/aufs-utils/PKGBUILD create mode 100644 abs/core/aufs/PKGBUILD create mode 100644 abs/core/aufs/aufs.install create mode 100644 abs/core/b43-fwcutter/PKGBUILD create mode 100755 abs/core/base.list create mode 100644 abs/core/bash/PKGBUILD create mode 100644 abs/core/bash/bash-noinfo.patch create mode 100644 abs/core/bash/bashrc create mode 100644 abs/core/bash/profile create mode 100644 abs/core/bash/profile.bash create mode 100644 abs/core/bc/PKGBUILD create mode 100644 abs/core/bc/build-fix.patch create mode 100644 abs/core/bigreqsproto/PKGBUILD create mode 100644 abs/core/binutils/PKGBUILD create mode 100644 abs/core/bzip2/PKGBUILD create mode 100644 abs/core/ca-certificates/PKGBUILD create mode 100644 abs/core/ca-certificates/ca-certificates.install create mode 100644 abs/core/cairo/PKGBUILD create mode 100644 abs/core/cdparanoia/ChangeLog create mode 100644 abs/core/cdparanoia/PKGBUILD create mode 100644 abs/core/cdrdao/PKGBUILD create mode 100644 abs/core/cdrdao/cdrdao-1.2.2-gcc43.patch create mode 100644 abs/core/cdrdao/gcc4.patch create mode 100644 abs/core/cdrkit/ChangeLog create mode 100644 abs/core/cdrkit/PKGBUILD create mode 100644 abs/core/compositeproto/PKGBUILD create mode 100644 abs/core/coreutils/PKGBUILD create mode 100644 abs/core/coreutils/coreutils-6.10-configuration.patch create mode 100644 abs/core/coreutils/coreutils-i18n.patch create mode 100644 abs/core/coreutils/coreutils-pam.patch create mode 100644 abs/core/coreutils/coreutils-uname.patch create mode 100644 abs/core/coreutils/futimes.patch create mode 100644 abs/core/coreutils/su create mode 100644 abs/core/cpio/PKGBUILD create mode 100644 abs/core/cpio/cpio-2.9-gcc43.patch create mode 100644 abs/core/cracklib/PKGBUILD create mode 100644 abs/core/cryptsetup/PKGBUILD create mode 100644 abs/core/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch create mode 100644 abs/core/cryptsetup/encrypt_hook create mode 100644 abs/core/cryptsetup/encrypt_install create mode 100644 abs/core/cryptsetup/luksOpen-status.patch create mode 100644 abs/core/curl/ChangeLog create mode 100644 abs/core/curl/PKGBUILD create mode 100644 abs/core/damageproto/PKGBUILD create mode 100644 abs/core/dash/PKGBUILD create mode 100644 abs/core/db/PKGBUILD create mode 100644 abs/core/db/db.install create mode 100644 abs/core/db4.5/PKGBUILD create mode 100644 abs/core/dbus-glib/PKGBUILD create mode 100644 abs/core/dbus/PKGBUILD create mode 100644 abs/core/dbus/dbus create mode 100644 abs/core/dbus/dbus.install create mode 100644 abs/core/dcron/PKGBUILD create mode 100755 abs/core/dcron/crond create mode 100644 abs/core/dcron/crond.logrotate create mode 100644 abs/core/dcron/dcron-3.1.patch create mode 100644 abs/core/dcron/root.crontab create mode 100755 abs/core/dcron/run-cron create mode 100644 abs/core/device-mapper/PKGBUILD create mode 100644 abs/core/device-mapper/device-mapper.rules create mode 100644 abs/core/dhcpcd/PKGBUILD create mode 100644 abs/core/dhcpcd/dhcpcd.conf.d create mode 100644 abs/core/dialog/PKGBUILD create mode 100644 abs/core/dialog/timeout.patch create mode 100644 abs/core/diffutils/PKGBUILD create mode 100644 abs/core/dmapi/PKGBUILD create mode 100644 abs/core/dmidecode/PKGBUILD create mode 100644 abs/core/dmxproto/PKGBUILD create mode 100644 abs/core/dnsutils/PKGBUILD create mode 100644 abs/core/dnsutils/bind.so_bsdcompat.diff create mode 100644 abs/core/dnsutils/tools-only.patch create mode 100644 abs/core/dosfstools/PKGBUILD create mode 100644 abs/core/dosfstools/linux-2.6.patch create mode 100644 abs/core/dvd+rw-tools/PKGBUILD create mode 100644 abs/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch create mode 100644 abs/core/dvdauthor/PKGBUILD create mode 100644 abs/core/e2fsprogs/Makefile-fsck.static.patch create mode 100644 abs/core/e2fsprogs/PKGBUILD create mode 100644 abs/core/e2fsprogs/mke2fs.conf create mode 100644 abs/core/eject/PKGBUILD create mode 100644 abs/core/eject/eject-2.1.5-handle-spaces.patch create mode 100644 abs/core/etcnet/10-defaults create mode 100755 abs/core/etcnet/PKGBUILD create mode 100755 abs/core/etcnet/adddhcp.patch create mode 100755 abs/core/etcnet/etcnet.install create mode 100644 abs/core/etcnet/functions.patch create mode 100755 abs/core/etcnet/ipv4address create mode 100755 abs/core/etcnet/ipv4route create mode 100644 abs/core/etcnet/network create mode 100755 abs/core/etcnet/options create mode 100644 abs/core/expat/PKGBUILD create mode 100644 abs/core/expect/PKGBUILD create mode 100644 abs/core/faac/PKGBUILD create mode 100644 abs/core/faac/libmp4v2.patch create mode 100644 abs/core/faac/pipe-output.patch create mode 100644 abs/core/faad2/ChangeLog create mode 100644 abs/core/faad2/LICENSE create mode 100644 abs/core/faad2/PKGBUILD create mode 100644 abs/core/faad2/faad2-2.6.1-abi_has_changed.patch create mode 100644 abs/core/faad2/faad2-2.6.1-broken-pipe.patch create mode 100644 abs/core/faad2/faad2-2.6.1-implicitdeclar.patch create mode 100644 abs/core/faad2/faad2-2.6.1-libtool22.patch create mode 100644 abs/core/feh/PKGBUILD create mode 100644 abs/core/ffmpeg/PKGBUILD create mode 100644 abs/core/fftw2/PKGBUILD create mode 100644 abs/core/file/PKGBUILD create mode 100644 abs/core/filesystem/PKGBUILD create mode 100644 abs/core/filesystem/crypttab create mode 100644 abs/core/filesystem/filesystem.install create mode 100644 abs/core/filesystem/fstab create mode 100644 abs/core/filesystem/group create mode 100644 abs/core/filesystem/gshadow create mode 100644 abs/core/filesystem/host.conf create mode 100644 abs/core/filesystem/hosts create mode 100644 abs/core/filesystem/issue create mode 100644 abs/core/filesystem/ld.so.conf create mode 100644 abs/core/filesystem/motd create mode 100644 abs/core/filesystem/nsswitch.conf create mode 100644 abs/core/filesystem/passwd create mode 100644 abs/core/filesystem/profile create mode 100644 abs/core/filesystem/protocols create mode 100644 abs/core/filesystem/resolv.conf create mode 100644 abs/core/filesystem/securetty create mode 100644 abs/core/filesystem/services create mode 100644 abs/core/filesystem/shadow create mode 100644 abs/core/filesystem/shells create mode 100644 abs/core/findutils/PKGBUILD create mode 100644 abs/core/fixesproto/PKGBUILD create mode 100644 abs/core/flac/PKGBUILD create mode 100644 abs/core/flac/flac-1.2.1-gcc43.patch create mode 100644 abs/core/flac/flac-linking.diff create mode 100644 abs/core/flac/xmms-plugin.patch create mode 100644 abs/core/fltk/PKGBUILD create mode 100644 abs/core/fluxbox/PKGBUILD create mode 100644 abs/core/fluxbox/fluxbox-1.0.0-gcc43.patch create mode 100644 abs/core/fluxbox/fluxbox.desktop create mode 100644 abs/core/fontcacheproto/PKGBUILD create mode 100644 abs/core/fontconfig/29-replace-bitmap-fonts.conf create mode 100644 abs/core/fontconfig/PKGBUILD create mode 100644 abs/core/fontconfig/fontconfig.install create mode 100644 abs/core/fontsproto/PKGBUILD create mode 100644 abs/core/freeglut/PKGBUILD create mode 100644 abs/core/freeglut/glut-cursor-inherit.patch create mode 100644 abs/core/freetype2/PKGBUILD create mode 100644 abs/core/freetype2/bytecode.patch create mode 100644 abs/core/freetype2/freetype-2.2.1-enable-valid.patch create mode 100644 abs/core/freetype2/freetype-2.2.1-memcpy-fix.patch create mode 100644 abs/core/freetype2/freetype-2.3.0-enable-spr.patch create mode 100644 abs/core/freetype2/freetype-2.3.3-ftbitmap.patch create mode 100644 abs/core/freetype2/freetype2.install create mode 100644 abs/core/fribidi/ChangeLog create mode 100644 abs/core/fribidi/PKGBUILD create mode 100644 abs/core/fuse/PKGBUILD create mode 100644 abs/core/fuse/fuse.install create mode 100755 abs/core/fuse/fuse.rc.d create mode 100644 abs/core/fxload/PKGBUILD create mode 100644 abs/core/gawk/PKGBUILD create mode 100644 abs/core/gawk/gawk-3.1.5-segfault_fix-1.patch create mode 100644 abs/core/gcc-libs/PKGBUILD create mode 100644 abs/core/gcc-libs/gcc-hash-style-both.patch create mode 100644 abs/core/gcc-libs/gcc_pure64.patch create mode 100644 abs/core/gdbm/PKGBUILD create mode 100644 abs/core/gen-init-cpio/Makefile create mode 100644 abs/core/gen-init-cpio/PKGBUILD create mode 100644 abs/core/gen-init-cpio/gen_init_cpio.c create mode 100644 abs/core/gettext/PKGBUILD create mode 100644 abs/core/ghostscript/PKGBUILD create mode 100644 abs/core/ghostscript/ghostscript-fPIC.patch create mode 100644 abs/core/ghostscript/ghostscript.install create mode 100644 abs/core/giblib/PKGBUILD create mode 100644 abs/core/giflib/PKGBUILD create mode 100644 abs/core/glib2/PKGBUILD create mode 100644 abs/core/glib2/gkeyfile-bool-nocase.patch create mode 100644 abs/core/glib2/glib2.csh create mode 100644 abs/core/glib2/glib2.sh create mode 100644 abs/core/glibc/ChangeLog create mode 100644 abs/core/glibc/PKGBUILD create mode 100644 abs/core/glibc/fix-makecontext.patch create mode 100644 abs/core/glibc/glibc.install create mode 100755 abs/core/glibc/locale-gen create mode 100644 abs/core/glibc/locale.gen create mode 100644 abs/core/glibc/locale.gen.txt create mode 100755 abs/core/glibc/nscd create mode 100644 abs/core/glproto/PKGBUILD create mode 100644 abs/core/gnutls/PKGBUILD create mode 100644 abs/core/gpm/ChangeLog create mode 100644 abs/core/gpm/PKGBUILD create mode 100755 abs/core/gpm/gpm create mode 100644 abs/core/gpm/gpm.conf.d create mode 100644 abs/core/grep/01-fgrep.patch create mode 100644 abs/core/grep/02-bracket.patch create mode 100644 abs/core/grep/03-i18n.patch create mode 100644 abs/core/grep/04-oi.patch create mode 100644 abs/core/grep/05-manpage.patch create mode 100644 abs/core/grep/06-color.patch create mode 100644 abs/core/grep/07-icolor.patch create mode 100644 abs/core/grep/08-skip.patch create mode 100644 abs/core/grep/09-egf-speedup.patch create mode 100644 abs/core/grep/10-dfa-optional.patch create mode 100644 abs/core/grep/11-tests.patch create mode 100644 abs/core/grep/12-w.patch create mode 100644 abs/core/grep/13-P.patch create mode 100644 abs/core/grep/14-mem-exhausted.patch create mode 100644 abs/core/grep/15-empty-pattern.patch create mode 100644 abs/core/grep/64-egf-speedup.patch create mode 100644 abs/core/grep/PKGBUILD create mode 100644 abs/core/groff/PKGBUILD create mode 100644 abs/core/groff/man-utf8.tmac create mode 100644 abs/core/grub/040_all_grub-0.96-nxstack.patch create mode 100644 abs/core/grub/05-grub-0.97-initrdaddr.diff create mode 100644 abs/core/grub/PKGBUILD create mode 100644 abs/core/grub/grub-0.97-gpt.patch create mode 100644 abs/core/grub/grub-inode-size.patch create mode 100644 abs/core/grub/i2o.patch create mode 100755 abs/core/grub/install-grub create mode 100644 abs/core/grub/intelmac.patch create mode 100644 abs/core/grub/menu.lst create mode 100644 abs/core/grub/more-raid.patch create mode 100644 abs/core/grub/special-devices.patch create mode 100644 abs/core/gsfonts/PKGBUILD create mode 100644 abs/core/gsfonts/xfonts.install create mode 100644 abs/core/gtk2/PKGBUILD create mode 100644 abs/core/gtk2/gtk2.install create mode 100644 abs/core/gtk2/gtkclipboard-check.patch create mode 100644 abs/core/gzip/PKGBUILD create mode 100644 abs/core/gzip/gzip-fixpaths.patch create mode 100644 abs/core/gzip/gzip-fixutimens.patch create mode 100644 abs/core/gzip/gzip-security-update.patch create mode 100644 abs/core/hal-info/PKGBUILD create mode 100644 abs/core/hal/PKGBUILD create mode 100644 abs/core/hal/cryptsetup_location.patch create mode 100644 abs/core/hal/hal create mode 100644 abs/core/hal/hal-0.5.9-hide-diagnostic.patch create mode 100644 abs/core/hal/hal-policy.patch create mode 100644 abs/core/hal/hal.install create mode 100644 abs/core/hal/ntfs3g-valid-options.patch create mode 100644 abs/core/hdparm/PKGBUILD create mode 100644 abs/core/heimdal/002_all_heimdal-no_libedit.patch create mode 100644 abs/core/heimdal/003_all_heimdal-fPIC.patch create mode 100644 abs/core/heimdal/004_all_heimdal-rxapps.patch create mode 100644 abs/core/heimdal/006_all_heimdal-suid_fix.patch create mode 100644 abs/core/heimdal/010_all_heimdal-system-libss.patch create mode 100644 abs/core/heimdal/PKGBUILD create mode 100644 abs/core/heimdal/heimdal-kdc.rc create mode 100644 abs/core/heimdal/kadmind.rc create mode 100644 abs/core/heimdal/kpasswd.rc create mode 100644 abs/core/hwdetect/PKGBUILD create mode 100755 abs/core/hwdetect/hwdetect create mode 100644 abs/core/imagemagick/ChangeLog create mode 100644 abs/core/imagemagick/PKGBUILD create mode 100644 abs/core/imagemagick/add_delegate.patch create mode 100644 abs/core/imagemagick/libpng_mmx_patch_x86_64.patch create mode 100644 abs/core/imlib2/PKGBUILD create mode 100644 abs/core/initscripts/ChangeLog create mode 100644 abs/core/initscripts/PKGBUILD create mode 100644 abs/core/initscripts/initscripts.install create mode 100644 abs/core/inputproto/PKGBUILD create mode 100644 abs/core/intel-dri/PKGBUILD create mode 100644 abs/core/iproute/PKGBUILD create mode 100644 abs/core/iproute/iproute2-2.4.7-now-ss020116.patch create mode 100644 abs/core/iptables/PKGBUILD create mode 100644 abs/core/iptables/PKGBUILD.orig create mode 100644 abs/core/iptables/empty.rules create mode 100755 abs/core/iptables/ip6tables create mode 100755 abs/core/iptables/iptables create mode 100644 abs/core/iptables/iptables.conf.d create mode 100644 abs/core/iptables/simple_firewall.rules create mode 100644 abs/core/iputils/PKGBUILD create mode 100644 abs/core/iputils/iputils-20070202-no-open-max.patch create mode 100644 abs/core/iputils/iputils-big-patches.patch create mode 100644 abs/core/iputils/iputils-ss021109-try.patch create mode 100644 abs/core/iputils/iputils.patch create mode 100644 abs/core/iputils/protocols create mode 100644 abs/core/iputils/services create mode 100644 abs/core/ipw2100-fw/PKGBUILD create mode 100644 abs/core/ipw2100-fw/ipw2100-fw.install create mode 100644 abs/core/ipw2200-fw/PKGBUILD create mode 100644 abs/core/ipw2200-fw/ipw2200-fw.install create mode 100644 abs/core/ipw3945-ucode/PKGBUILD create mode 100644 abs/core/ipw3945-ucode/ipw3945-ucode.install create mode 100644 abs/core/ipw3945/2.6.18-compile.patch create mode 100644 abs/core/ipw3945/PKGBUILD create mode 100644 abs/core/ipw3945/compile-2.6.24.patch create mode 100644 abs/core/ipw3945/ipw3945.install create mode 100644 abs/core/ipw3945/kernel-2.6.19.patch create mode 100644 abs/core/ipw3945/lockup.patch create mode 100644 abs/core/ipw3945d/PKGBUILD create mode 100644 abs/core/ipw3945d/ipw3945d.install create mode 100644 abs/core/ipw3945d/ipw3945d.rc create mode 100644 abs/core/ivtv-utils/PKGBUILD create mode 100644 abs/core/ivtv-utils/ivtv-utils.install create mode 100644 abs/core/iwlwifi-3945-ucode/PKGBUILD create mode 100644 abs/core/iwlwifi-4965-ucode/PKGBUILD create mode 100644 abs/core/jack-audio-connection-kit/PKGBUILD create mode 100644 abs/core/jack-audio-connection-kit/jack-audio-connection-kit.conf.d create mode 100644 abs/core/jack-audio-connection-kit/jack-audio-connection-kit.install create mode 100644 abs/core/jack-audio-connection-kit/jack-audio-connection-kit.rc.d create mode 100644 abs/core/jasper/PKGBUILD create mode 100644 abs/core/jfsutils/PKGBUILD create mode 100644 abs/core/kakasi/PKGBUILD create mode 100644 abs/core/kbd/PKGBUILD create mode 100644 abs/core/kbd/kbd-1.12-alias.patch create mode 100644 abs/core/kbd/kbd-1.12-find_map_fix.patch create mode 100644 abs/core/kbd/kbd-1.12-no-user-map.patch create mode 100644 abs/core/kbd/keymap_hook create mode 100644 abs/core/kbd/keymap_install create mode 100644 abs/core/kbd/rename-duplicates.patch create mode 100644 abs/core/kbproto/PKGBUILD create mode 100644 abs/core/kdelibs3/PKGBUILD create mode 100755 abs/core/kdelibs3/kde3.profile create mode 100644 abs/core/kdelibs3/kdelibs3.install create mode 100644 abs/core/kernel-headers/PKGBUILD create mode 100644 abs/core/kernel-headers/netfilter-includes.patch create mode 100644 abs/core/kernel26/PKGBUILD create mode 100644 abs/core/kernel26/config create mode 100644 abs/core/kernel26/config.x86_64 create mode 100644 abs/core/kernel26/kernel26.install create mode 100644 abs/core/kernel26/kernel26.preset create mode 100644 abs/core/kernel26/logo_linux_clut224.ppm create mode 100644 abs/core/kernel26/logo_linux_mono.pbm create mode 100644 abs/core/kernel26/logo_linux_vga16.ppm create mode 100644 abs/core/klibc-extras/PKGBUILD create mode 100644 abs/core/klibc-kbd/PKGBUILD create mode 100644 abs/core/klibc-kbd/keymap_hook create mode 100644 abs/core/klibc-kbd/keymap_install create mode 100644 abs/core/klibc-kbd/no-exit.patch create mode 100644 abs/core/klibc-kbd/no-isatty.patch create mode 100644 abs/core/klibc-module-init-tools/PKGBUILD create mode 100644 abs/core/klibc-module-init-tools/fix-modprobe-ignore-path.patch create mode 100644 abs/core/klibc-module-init-tools/makefile.patch create mode 100644 abs/core/klibc-udev/PKGBUILD create mode 100644 abs/core/klibc-udev/klibc-remove-revert.patch create mode 100755 abs/core/klibc-udev/load-modules.sh create mode 100644 abs/core/klibc-udev/post-107.patch create mode 100755 abs/core/klibc-udev/start_udev create mode 100644 abs/core/klibc-udev/udev.rules create mode 100644 abs/core/klibc-udev/udev_hook create mode 100644 abs/core/klibc-udev/udev_install create mode 100644 abs/core/klibc-udev/vol_id-suspend2.patch create mode 100644 abs/core/klibc/PKGBUILD create mode 100644 abs/core/klibc/klibc-2.6.24.patch create mode 100644 abs/core/klibc/klibc-Kbuild.patch create mode 100644 abs/core/klibc/klibc-compile-shared-by-default.patch create mode 100644 abs/core/klibc/klibc-module-init-tools.patch create mode 100644 abs/core/klibc/multiple_raid_assembly_fix.patch create mode 100644 abs/core/lame/PKGBUILD create mode 100644 abs/core/lame/shared-frontend.patch create mode 100644 abs/core/lcms/PKGBUILD create mode 100644 abs/core/less/PKGBUILD create mode 100644 abs/core/less/zless create mode 100644 abs/core/libao/ChangeLog create mode 100644 abs/core/libao/PKGBUILD create mode 100644 abs/core/libao/libao.conf create mode 100644 abs/core/libarchive/PKGBUILD create mode 100644 abs/core/libart-lgpl/PKGBUILD create mode 100644 abs/core/libart-lgpl/art_misc.h-cplusplus.patch create mode 100644 abs/core/libcap/PKGBUILD create mode 100644 abs/core/libcap/libcap-1.10-debian.patch create mode 100644 abs/core/libcap/libcap-1.10-fixcflags.patch create mode 100644 abs/core/libcap/libcap-1.10-shared.patch create mode 100644 abs/core/libcdaudio/PKGBUILD create mode 100644 abs/core/libcroco/PKGBUILD create mode 100644 abs/core/libcups/PKGBUILD create mode 100644 abs/core/libdatrie/PKGBUILD create mode 100644 abs/core/libdmx/PKGBUILD create mode 100644 abs/core/libdownload/PKGBUILD create mode 100644 abs/core/libdownload/largefiles.patch create mode 100644 abs/core/libdrm/PKGBUILD create mode 100644 abs/core/libdvdread/PKGBUILD create mode 100644 abs/core/libdvdread/libdvdread.install create mode 100644 abs/core/libexif/PKGBUILD create mode 100644 abs/core/libfontenc/PKGBUILD create mode 100644 abs/core/libgcrypt/PKGBUILD create mode 100644 abs/core/libgl/PKGBUILD create mode 100644 abs/core/libglade/PKGBUILD create mode 100644 abs/core/libglade/glade.install create mode 100644 abs/core/libglade/libglade-2.0.1-nowarning.patch create mode 100644 abs/core/libgpg-error/PKGBUILD create mode 100644 abs/core/libgsf/PKGBUILD create mode 100644 abs/core/libice/PKGBUILD create mode 100644 abs/core/libid3tag/PKGBUILD create mode 100644 abs/core/libid3tag/id3tag.pc create mode 100644 abs/core/libidn/PKGBUILD create mode 100644 abs/core/libjpeg/PKGBUILD create mode 100644 abs/core/liblbxutil/PKGBUILD create mode 100644 abs/core/libldap/PKGBUILD create mode 100644 abs/core/libldap/ntlm.patch create mode 100644 abs/core/libldap/peercred.patch create mode 100644 abs/core/libmad/PKGBUILD create mode 100644 abs/core/libmad/libmad.patch create mode 100644 abs/core/libmad/libmad_gcc43.patch create mode 100644 abs/core/libmp4v2/PKGBUILD create mode 100644 abs/core/libmysqlclient/PKGBUILD create mode 100644 abs/core/libogg/PKGBUILD create mode 100644 abs/core/libpcap/PKGBUILD create mode 100644 abs/core/libpcap/libpcap-shared.patch create mode 100644 abs/core/libpng/ChangeLog create mode 100644 abs/core/libpng/PKGBUILD create mode 100644 abs/core/libpng/libpng-1.2.29-apng.patch create mode 100644 abs/core/libpng/libpng-1.2.31-apng.patch create mode 100644 abs/core/librsvg/PKGBUILD create mode 100644 abs/core/librsvg/librsvg.install create mode 100644 abs/core/libsasl/PKGBUILD create mode 100644 abs/core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch create mode 100644 abs/core/libsasl/db-4.7.patch create mode 100644 abs/core/libsasl/libsasl.install create mode 100644 abs/core/libsm/PKGBUILD create mode 100644 abs/core/libsmbios/PKGBUILD create mode 100644 abs/core/libsndfile/PKGBUILD create mode 100644 abs/core/libsndfile/flac-1.1.4.dpatch create mode 100644 abs/core/libsndfile/lossy_comp_test-overflow.dpatch create mode 100644 abs/core/libsndfile/overflow.dpatch create mode 100644 abs/core/libstatgrab/PKGBUILD create mode 100644 abs/core/libtasn1/PKGBUILD create mode 100644 abs/core/libthai/PKGBUILD create mode 100644 abs/core/libtheora/PKGBUILD create mode 100644 abs/core/libtiff/CVE-2006-3459-3465.patch create mode 100644 abs/core/libtiff/PKGBUILD create mode 100644 abs/core/libtiff/tiff2pdf-compression.patch create mode 100644 abs/core/libtiff/tiff2pdf-octal-printf.patch create mode 100644 abs/core/libtiff/tiffsplit-fname-overflow.patch create mode 100644 abs/core/libtool/PKGBUILD create mode 100644 abs/core/libusb/PKGBUILD create mode 100644 abs/core/libvorbis/PKGBUILD create mode 100644 abs/core/libwmf/PKGBUILD create mode 100644 abs/core/libwmf/libwmf.install create mode 100644 abs/core/libx11/012_ru_RU_UTF-8_XLC_LOCALE.diff create mode 100644 abs/core/libx11/PKGBUILD create mode 100644 abs/core/libx11/xorg.sh create mode 100644 abs/core/libx86/PKGBUILD create mode 100644 abs/core/libx86/lrmi.patch create mode 100644 abs/core/libxau/PKGBUILD create mode 100644 abs/core/libxaw/PKGBUILD create mode 100644 abs/core/libxcb/PKGBUILD create mode 100644 abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch create mode 100644 abs/core/libxcomposite/PKGBUILD create mode 100644 abs/core/libxcursor/PKGBUILD create mode 100644 abs/core/libxdamage/PKGBUILD create mode 100644 abs/core/libxdmcp/PKGBUILD create mode 100644 abs/core/libxext/PKGBUILD create mode 100644 abs/core/libxfixes/PKGBUILD create mode 100644 abs/core/libxfixes/xfixes_coverity576.patch create mode 100644 abs/core/libxfont/PKGBUILD create mode 100644 abs/core/libxfontcache/PKGBUILD create mode 100644 abs/core/libxft/PKGBUILD create mode 100644 abs/core/libxi/PKGBUILD create mode 100644 abs/core/libxinerama/PKGBUILD create mode 100644 abs/core/libxkbfile/PKGBUILD create mode 100644 abs/core/libxkbui/PKGBUILD create mode 100644 abs/core/libxml2/PKGBUILD create mode 100644 abs/core/libxmu/PKGBUILD create mode 100644 abs/core/libxp/PKGBUILD create mode 100644 abs/core/libxpm/PKGBUILD create mode 100644 abs/core/libxrandr/PKGBUILD create mode 100644 abs/core/libxrender/PKGBUILD create mode 100644 abs/core/libxslt/ChangeLog create mode 100644 abs/core/libxslt/PKGBUILD create mode 100644 abs/core/libxss/PKGBUILD create mode 100644 abs/core/libxt/PKGBUILD create mode 100644 abs/core/libxtrap/PKGBUILD create mode 100644 abs/core/libxtst/PKGBUILD create mode 100644 abs/core/libxv/PKGBUILD create mode 100644 abs/core/libxvmc/PKGBUILD create mode 100644 abs/core/libxxf86dga/PKGBUILD create mode 100644 abs/core/libxxf86misc/PKGBUILD create mode 100644 abs/core/libxxf86vm/PKGBUILD create mode 100644 abs/core/licenses/LICENSE.ralink-firmware.txt create mode 100644 abs/core/licenses/PKGBUILD create mode 100644 abs/core/licenses/ZopePublicLicense.txt create mode 100644 abs/core/licenses/cc-by-3.0.txt create mode 100644 abs/core/licenses/cc-by-nc-3.0.txt create mode 100644 abs/core/licenses/cc-by-nc-nd-3.0.txt create mode 100644 abs/core/licenses/cc-by-nc-sa-3.0.txt create mode 100644 abs/core/licenses/cc-by-nd-3.0.txt create mode 100644 abs/core/licenses/cc-by-sa-3.0.txt create mode 100644 abs/core/licenses/cc-readme.txt create mode 100644 abs/core/licenses/cddl-1.0.txt create mode 100644 abs/core/licenses/cpl-1.0.txt create mode 100644 abs/core/licenses/eclipse-1.0.txt create mode 100644 abs/core/licenses/perlartistic.txt create mode 100644 abs/core/licenses/python-2.txt create mode 100644 abs/core/linhes-live/PKGBUILD create mode 100755 abs/core/linhes-live/bin/gen_fstab create mode 100755 abs/core/linhes-live/bin/km create mode 100644 abs/core/linhes-live/etc/live-shutdown create mode 100644 abs/core/linhes-live/etc/live-sysinit create mode 100755 abs/core/linhes-live/etc/loginroot create mode 100755 abs/core/linhes-live/etc/rc.shutdown-live create mode 100755 abs/core/linhes-live/etc/rc.sysinit-live create mode 100755 abs/core/linhes-live/etc/ulogin create mode 100755 abs/core/linhes-live/lib/initcpio/gen_larch_init create mode 100644 abs/core/linhes-live/lib/initcpio/hooks/larch1 create mode 100644 abs/core/linhes-live/lib/initcpio/hooks/larch2 create mode 100644 abs/core/linhes-live/lib/initcpio/hooks/larch2_aufs create mode 100644 abs/core/linhes-live/lib/initcpio/hooks/larch3 create mode 100644 abs/core/linhes-live/lib/initcpio/install/larch1 create mode 100644 abs/core/linhes-live/lib/initcpio/install/larch2 create mode 100644 abs/core/linhes-live/lib/initcpio/install/larch2_aufs create mode 100644 abs/core/linhes-live/lib/initcpio/install/larch3 create mode 100755 abs/core/linhes-live/lib/initcpio/kinit create mode 100644 abs/core/linhes-live/lib/initcpio/mkinitcpio.conf create mode 100644 abs/core/linuxtv-dvb-apps/ChangeLog create mode 100644 abs/core/linuxtv-dvb-apps/PKGBUILD create mode 100644 abs/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install create mode 100644 abs/core/lirc-utils/PKGBUILD create mode 100644 abs/core/lirc-utils/kernel-2.6.26.patch create mode 100644 abs/core/lirc-utils/lirc.logrotate create mode 100755 abs/core/lirc-utils/lircd create mode 100644 abs/core/lirc-utils/lircd.conf.d create mode 100755 abs/core/lirc-utils/lircmd create mode 100644 abs/core/lirc/PKGBUILD create mode 100644 abs/core/lirc/kernel-2.6.26.patch create mode 100644 abs/core/lirc/lirc.install create mode 100644 abs/core/live-installer/LinHES-release create mode 100755 abs/core/live-installer/MythVantage.sh create mode 100755 abs/core/live-installer/PKGBUILD create mode 100755 abs/core/live-installer/add_service.sh create mode 100755 abs/core/live-installer/autocard.py create mode 100755 abs/core/live-installer/bpopup-ui.xml create mode 100755 abs/core/live-installer/build_diskless.sh create mode 100755 abs/core/live-installer/copy-to-mythbase.sh create mode 100755 abs/core/live-installer/create_master.sh create mode 100755 abs/core/live-installer/file_time_offset.py create mode 100755 abs/core/live-installer/install-ui.xml create mode 100755 abs/core/live-installer/install_db_chroot.sh create mode 100755 abs/core/live-installer/install_functions.sh create mode 100755 abs/core/live-installer/install_proxy.sh create mode 100644 abs/core/live-installer/issue create mode 100755 abs/core/live-installer/live-install.sh create mode 100644 abs/core/live-installer/live.install create mode 100644 abs/core/live-installer/networkconfig.sh create mode 100755 abs/core/live-installer/remove_service.sh create mode 100755 abs/core/live-installer/restore_default_settings.sh create mode 100755 abs/core/live-installer/soundconfig.sh create mode 100755 abs/core/live-installer/startx create mode 100755 abs/core/live-installer/systemconfig.sh create mode 100644 abs/core/live-installer/templates/LCD/Shuttle-SG33/LCDd.conf create mode 100644 abs/core/live-installer/templates/LCD/Silverstone/LCDd.conf create mode 100644 abs/core/live-installer/templates/LCD/Silverstone/modules create mode 100644 abs/core/live-installer/templates/LCD/antec_fusion/LCDd.conf create mode 100644 abs/core/live-installer/templates/LCD/antec_fusion/lircd.conf create mode 100644 abs/core/live-installer/templates/LCD/antec_fusion/lircrc create mode 100644 abs/core/live-installer/templates/LCD/antec_fusion/modules create mode 100644 abs/core/live-installer/templates/LCD/xosd/LCDd.conf create mode 100755 abs/core/live-installer/templates/cc.orig.sh create mode 100755 abs/core/live-installer/templates/cc.sh create mode 100755 abs/core/live-installer/templates/cc_vol.sh create mode 100755 abs/core/live-installer/templates/change_chan.sh create mode 100644 abs/core/live-installer/templates/cron.template create mode 100644 abs/core/live-installer/templates/etcnet/eth/ipv4address create mode 100644 abs/core/live-installer/templates/etcnet/eth/ipv4route create mode 100644 abs/core/live-installer/templates/etcnet/eth/iwconfig create mode 100644 abs/core/live-installer/templates/etcnet/eth/options create mode 100644 abs/core/live-installer/templates/evrouter/MythVantage-4 create mode 100644 abs/core/live-installer/templates/evrouter/MythVantage-8 create mode 100644 abs/core/live-installer/templates/evrouter/MythVantage-Full create mode 100644 abs/core/live-installer/templates/evrouter/MythVantage8-minipac create mode 100644 abs/core/live-installer/templates/evrouter/MythVantage8-uhid create mode 100644 abs/core/live-installer/templates/exports.template create mode 100755 abs/core/live-installer/templates/fstab.conf.template create mode 100644 abs/core/live-installer/templates/mysql.service create mode 100755 abs/core/live-installer/templates/mysql.txt create mode 100755 abs/core/live-installer/templates/ncid.conf.template create mode 100644 abs/core/live-installer/templates/ncidd.conf.template create mode 100755 abs/core/live-installer/templates/real_change_chan.sh create mode 100644 abs/core/live-installer/templates/remotes/ATI_wonder/lircd.ATI.conf create mode 100644 abs/core/live-installer/templates/remotes/ATI_wonder/lircrc-atiwonder.txt create mode 100644 abs/core/live-installer/templates/remotes/ATI_wonder/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/MX-500-jams/lircd.conf.MX-500-JAMS create mode 100644 abs/core/live-installer/templates/remotes/MX-500-jams/lircrc create mode 100644 abs/core/live-installer/templates/remotes/MX-500-jams/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/MythVantage-one/lircd.conf create mode 100755 abs/core/live-installer/templates/remotes/MythVantage-one/lircrc create mode 100644 abs/core/live-installer/templates/remotes/MythVantage-one/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/RadioShack_15-2116-Jarod_Wilson/lircd-rs.conf create mode 100644 abs/core/live-installer/templates/remotes/RadioShack_15-2116-Jarod_Wilson/lircrc-rs create mode 100644 abs/core/live-installer/templates/remotes/RadioShack_15-2116-Jarod_Wilson/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/gr8zap/lircd.conf.streamzap create mode 100644 abs/core/live-installer/templates/remotes/gr8zap/lircrc create mode 100644 abs/core/live-installer/templates/remotes/gr8zap/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/hauppauge/lircd.conf.hauppauge create mode 100644 abs/core/live-installer/templates/remotes/hauppauge/lircmd.conf.hauppauge create mode 100644 abs/core/live-installer/templates/remotes/hauppauge/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/imon-pad/lircd.conf create mode 100644 abs/core/live-installer/templates/remotes/imon-pad/lircrc create mode 100644 abs/core/live-installer/templates/remotes/imon-pad/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/mceusb/lircd-mceusb.conf create mode 100644 abs/core/live-installer/templates/remotes/mceusb/lircrc-mceusb create mode 100644 abs/core/live-installer/templates/remotes/mceusb/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/no_remote/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/receiver_usb.id create mode 100644 abs/core/live-installer/templates/remotes/snapstream_firefly/lircd.snapstrm.conf create mode 100644 abs/core/live-installer/templates/remotes/snapstream_firefly/lircrc-snapstrm.txt create mode 100644 abs/core/live-installer/templates/remotes/snapstream_firefly/preview.jpg create mode 100644 abs/core/live-installer/templates/remotes/streamzap/lircd.conf.streamzap create mode 100755 abs/core/live-installer/templates/remotes/streamzap/lircrc create mode 100644 abs/core/live-installer/templates/remotes/streamzap/preview.jpg create mode 100755 abs/core/live-installer/templates/samba/smb.conf.home create mode 100755 abs/core/live-installer/templates/samba/smb.conf.media create mode 100644 abs/core/live-installer/templates/samba/smb.conf.template create mode 100644 abs/core/live-installer/templates/settings/default_1/keybindings.txt create mode 100644 abs/core/live-installer/templates/settings/default_1/settings.txt create mode 100644 abs/core/live-installer/templates/settings/default_2/keybindings.txt create mode 100644 abs/core/live-installer/templates/settings/default_2/settings.txt create mode 100644 abs/core/live-installer/templates/sources/mv-core create mode 100644 abs/core/live-installer/templates/sources/mv-core-testing create mode 100644 abs/core/live-installer/templates/sources/mv-extra create mode 100644 abs/core/live-installer/templates/sources/mv-extra-testing create mode 100644 abs/core/live-installer/templates/sources/svc_pkg create mode 100755 abs/core/live-installer/templates/transmit/Time_Warner_SA3250/lircd.conf create mode 100644 abs/core/live-installer/templates/xine.config.template create mode 100644 abs/core/live-installer/templates/xorg/modeline.ATSC create mode 100644 abs/core/live-installer/templates/xorg/modeline.DVD create mode 100644 abs/core/live-installer/templates/xorg/modeline.NTSC create mode 100644 abs/core/live-installer/templates/xorg/modeline.VESA create mode 100644 abs/core/live-installer/templates/xorg/modeline.custom create mode 100644 abs/core/live-installer/templates/xorg/xorg.conf.ati create mode 100644 abs/core/live-installer/templates/xorg/xorg.conf.intel create mode 100755 abs/core/live-installer/templates/xorg/xorg.conf.nvidia create mode 100644 abs/core/live-installer/templates/xorg/xorg.conf.via create mode 100755 abs/core/live-installer/templates/xorg/xorg.conf.vmware create mode 100755 abs/core/live-installer/timezip.py create mode 100755 abs/core/live-installer/xconfig.sh create mode 100644 abs/core/logrotate/PKGBUILD create mode 100644 abs/core/logrotate/logrotate.conf create mode 100755 abs/core/logrotate/logrotate.cron.daily create mode 100644 abs/core/lsof/PKGBUILD create mode 100644 abs/core/lsof/license.txt create mode 100644 abs/core/lvm2/PKGBUILD create mode 100644 abs/core/lvm2/lvm2_hook create mode 100644 abs/core/lvm2/lvm2_install create mode 100644 abs/core/lzo2/PKGBUILD create mode 100644 abs/core/lzop/PKGBUILD create mode 100644 abs/core/madwifi-utils/PKGBUILD create mode 100644 abs/core/madwifi/PKGBUILD create mode 100644 abs/core/madwifi/kernel-2.6.19.patch create mode 100644 abs/core/madwifi/kernel-2.6.20.patch create mode 100644 abs/core/madwifi/madwifi-ng.install create mode 100644 abs/core/mailx/PKGBUILD create mode 100644 abs/core/mailx/mailx-8.1.1.patch create mode 100644 abs/core/mailx/mailx-gcc4.patch create mode 100644 abs/core/man-pages/PKGBUILD create mode 100644 abs/core/man/PKGBUILD create mode 100644 abs/core/man/man-troff.patch create mode 100755 abs/core/man/whatis.cron.daily create mode 100644 abs/core/mcpp/PKGBUILD create mode 100644 abs/core/mcpp/mcpp-2.6.4-patch create mode 100644 abs/core/mdadm/PKGBUILD create mode 100755 abs/core/mdadm/mdadm create mode 100644 abs/core/mdadm/mdadm-2.2-segfault.patch create mode 100644 abs/core/mdadm/mdadm.conf create mode 100644 abs/core/mdadm/raid-partitions_hook create mode 100644 abs/core/mdadm/raid-partitions_install create mode 100644 abs/core/mesa/PKGBUILD create mode 100644 abs/core/mesa/mesa-6.5-apps-noglut.patch create mode 100644 abs/core/mkinitcpio/PKGBUILD create mode 100644 abs/core/mlocate/PKGBUILD create mode 100644 abs/core/mlocate/mlocate.db create mode 100644 abs/core/mlocate/mlocate.install create mode 100644 abs/core/mlocate/updatedb.conf create mode 100755 abs/core/mlocate/updatedb.cron.daily create mode 100644 abs/core/module-init-tools/PKGBUILD create mode 100644 abs/core/module-init-tools/fix-modprobe-ignore-path.patch create mode 100644 abs/core/module-init-tools/makefile.patch create mode 100644 abs/core/module-init-tools/modprobe.conf create mode 100644 abs/core/module-init-tools/modutils-gcc4.patch create mode 100644 abs/core/mplayer/MPlayer-1.0rc1-gnome-screensaver.patch create mode 100644 abs/core/mplayer/PKGBUILD create mode 100644 abs/core/mplayer/demux_audio_fix_20080129.diff create mode 100644 abs/core/mplayer/demux_mov_fix_20080129.diff create mode 100644 abs/core/mplayer/ivtv_2.6.24.patch create mode 100644 abs/core/mplayer/stream_cddb_fix_20080120.diff create mode 100644 abs/core/mplayer/url_fix_20080120.diff create mode 100644 abs/core/mtools/PKGBUILD create mode 100644 abs/core/mysql-clients/PKGBUILD create mode 100644 abs/core/mysql-python/PKGBUILD create mode 100644 abs/core/mysql/PKGBUILD create mode 100644 abs/core/mysql/my.cnf create mode 100644 abs/core/mysql/mysql-no-clients.patch create mode 100755 abs/core/mysql/mysqld create mode 100644 abs/core/mysql/mysqld.conf.d create mode 100644 abs/core/mythtv/stable/mytharchive/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythbrowser/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythcontrols/PKGBUILD create mode 100755 abs/core/mythtv/stable/mythdb-initial/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythdb-initial/mc.sql create mode 100755 abs/core/mythtv/stable/mythdb-initial/mythdb.install create mode 100755 abs/core/mythtv/stable/mythdb-initial/permissions.sql create mode 100644 abs/core/mythtv/stable/mythflix/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythgallery/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythgame/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythmusic/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythmusic/music_flac.patch create mode 100644 abs/core/mythtv/stable/mythmusic/mythmusic-0.21.patch create mode 100644 abs/core/mythtv/stable/mythnews/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythphone/PKGBUILD create mode 100644 abs/core/mythtv/stable/myththemes/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythtv/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythtv/QUICKSTART.archlinux create mode 100755 abs/core/mythtv/stable/mythtv/mythbackend create mode 100644 abs/core/mythtv/stable/mythtv/mythtv.install create mode 100644 abs/core/mythtv/stable/mythvideo/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythvideo/mtd create mode 100644 abs/core/mythtv/stable/mythweather/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythweb/PKGBUILD create mode 100644 abs/core/mythtv/stable/mythweb/mythweb.install create mode 100644 abs/core/nano/PKGBUILD create mode 100644 abs/core/nano/nano.install create mode 100644 abs/core/ncurses/PKGBUILD create mode 100644 abs/core/ncurses/ncurses.install create mode 100644 abs/core/ndiswrapper-utils/PKGBUILD create mode 100644 abs/core/ndiswrapper/PKGBUILD create mode 100644 abs/core/ndiswrapper/ndiswrapper.install create mode 100644 abs/core/net-tools/PKGBUILD create mode 100644 abs/core/net-tools/gcc340.patch create mode 100644 abs/core/net-tools/net-tools-1.60-2.6-compilefix.patch create mode 100644 abs/core/net-tools/net-tools-1.60-miiioctl.patch create mode 100644 abs/core/net-tools/net-tools-1.60-nameif.patch create mode 100644 abs/core/net-tools/net-tools-1.60-nameif_strncpy.patch create mode 100644 abs/core/net-tools/net-tools.patch create mode 100644 abs/core/net-tools/nisdomainname.conf.d create mode 100644 abs/core/netcfg/PKGBUILD create mode 100644 abs/core/ntfsprogs/PKGBUILD create mode 100644 abs/core/ntfsprogs/ntfsprogs.install create mode 100644 abs/core/nuvexport/PKGBUILD create mode 100644 abs/core/nuvexport/nuvexport-ipod-disable.patch create mode 100644 abs/core/openexr/PKGBUILD create mode 100644 abs/core/openexr/gcc43.patch create mode 100644 abs/core/openexr/openexr-gcc4.patch create mode 100644 abs/core/openssh/PKGBUILD create mode 100755 abs/core/openssh/sshd create mode 100644 abs/core/openssh/sshd.confd create mode 100644 abs/core/openssh/sshd.pam create mode 100644 abs/core/openssl/PKGBUILD create mode 100644 abs/core/pacman/PKGBUILD create mode 100644 abs/core/pacman/mirrorlist create mode 100644 abs/core/pacman/pacman.conf create mode 100644 abs/core/pacman/pacman.install create mode 100644 abs/core/pam/PKGBUILD create mode 100644 abs/core/pam/other create mode 100644 abs/core/pam/pam.install create mode 100644 abs/core/pango/PKGBUILD create mode 100644 abs/core/pango/pango.install create mode 100644 abs/core/parted/PKGBUILD create mode 100644 abs/core/parted/parted-1.7.1-fix-seg.patch create mode 100644 abs/core/pciutils/PKGBUILD create mode 100644 abs/core/pcmciautils/PKGBUILD create mode 100644 abs/core/pcre/ChangeLog create mode 100644 abs/core/pcre/PKGBUILD create mode 100644 abs/core/pcre/libpcre-7.7-buffer-overflow.patch create mode 100644 abs/core/perl/PKGBUILD create mode 100644 abs/core/perl/archlinux-cpan-installdir.patch create mode 100644 abs/core/perl/archlinux-inc-order.patch create mode 100644 abs/core/perl/perl-5.10.0-archlinux-cpan-installdir.patch create mode 100644 abs/core/perl/perl-5.10.0-archlinux-inc-order.patch create mode 100644 abs/core/perl/perl-5.8.6-picdl.patch0 create mode 100644 abs/core/perl/perl-5.8.8-gcc-4.2.0.patch create mode 100644 abs/core/perl/perl-5.8.8-utf-regexes.patch create mode 100644 abs/core/perl/perl.install create mode 100755 abs/core/perl/perlbin.sh create mode 100644 abs/core/perl_modules/perl-archive-zip/PKGBUILD create mode 100644 abs/core/perl_modules/perl-class-methodmaker/PKGBUILD create mode 100644 abs/core/perl_modules/perl-crypt-ssleay/PKGBUILD create mode 100644 abs/core/perl_modules/perl-date-manip/PKGBUILD create mode 100644 abs/core/perl_modules/perl-dbd-mysql/PKGBUILD create mode 100644 abs/core/perl_modules/perl-dbi/PKGBUILD create mode 100644 abs/core/perl_modules/perl-fcgi/PKGBUILD create mode 100644 abs/core/perl_modules/perl-file-slurp/PKGBUILD create mode 100644 abs/core/perl_modules/perl-html-parser/PKGBUILD create mode 100644 abs/core/perl_modules/perl-html-tagset/PKGBUILD create mode 100644 abs/core/perl_modules/perl-html-tree/PKGBUILD create mode 100644 abs/core/perl_modules/perl-http-cache-transparent/PKGBUILD create mode 100644 abs/core/perl_modules/perl-io-socket-ssl/PKGBUILD create mode 100644 abs/core/perl_modules/perl-io-stringy/PKGBUILD create mode 100644 abs/core/perl_modules/perl-libwww/PKGBUILD create mode 100644 abs/core/perl_modules/perl-lingua-en-numbers-ordinate/PKGBUILD create mode 100644 abs/core/perl_modules/perl-lingua-en-numbers/PKGBUILD create mode 100644 abs/core/perl_modules/perl-lingua-preferred/PKGBUILD create mode 100644 abs/core/perl_modules/perl-mailtools/PKGBUILD create mode 100644 abs/core/perl_modules/perl-mime-lite/PKGBUILD create mode 100644 abs/core/perl_modules/perl-mime-tools/ChangeLog create mode 100644 abs/core/perl_modules/perl-mime-tools/PKGBUILD create mode 100644 abs/core/perl_modules/perl-mime-types/PKGBUILD create mode 100644 abs/core/perl_modules/perl-net-ssleay/PKGBUILD create mode 100644 abs/core/perl_modules/perl-soap-lite/PKGBUILD create mode 100644 abs/core/perl_modules/perl-term-progressbar/PKGBUILD create mode 100644 abs/core/perl_modules/perl-term-readkey/PKGBUILD create mode 100644 abs/core/perl_modules/perl-text-bidi/PKGBUILD create mode 100644 abs/core/perl_modules/perl-text-iconv/PKGBUILD create mode 100644 abs/core/perl_modules/perl-text-kakasi/PKGBUILD create mode 100644 abs/core/perl_modules/perl-timedate/PKGBUILD create mode 100644 abs/core/perl_modules/perl-tk-tablematrix/PKGBUILD create mode 100644 abs/core/perl_modules/perl-tk/PKGBUILD create mode 100644 abs/core/perl_modules/perl-unicode-string/PKGBUILD create mode 100644 abs/core/perl_modules/perl-unicode-utf8simple/PKGBUILD create mode 100644 abs/core/perl_modules/perl-uri/PKGBUILD create mode 100644 abs/core/perl_modules/perl-www-mechanize/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-libxml-common/ChangeLog create mode 100644 abs/core/perl_modules/perl-xml-libxml-common/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-libxml/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-libxml/perl-xml-libxml.install create mode 100644 abs/core/perl_modules/perl-xml-namespacesupport/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-sax/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-sax/perl-xml-sax.install create mode 100644 abs/core/perl_modules/perl-xml-sax/perl-xml-sax.patch create mode 100644 abs/core/perl_modules/perl-xml-simple/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-twig/PKGBUILD create mode 100644 abs/core/perl_modules/perl-xml-writer/PKGBUILD create mode 100644 abs/core/perlxml/PKGBUILD create mode 100644 abs/core/php/PKGBUILD create mode 100644 abs/core/php/apache.conf create mode 100644 abs/core/php/db-configure.patch create mode 100644 abs/core/php/php.ini create mode 100644 abs/core/php/php.install create mode 100644 abs/core/pil/PKGBUILD create mode 100644 abs/core/pixman/PKGBUILD create mode 100644 abs/core/pkgconfig/PKGBUILD create mode 100644 abs/core/plextor-convertX-driver/.svn/all-wcprops create mode 100644 abs/core/plextor-convertX-driver/.svn/entries create mode 100644 abs/core/plextor-convertX-driver/.svn/format create mode 100644 abs/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base create mode 100644 abs/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base create mode 100755 abs/core/plextor-convertX-driver/PKGBUILD create mode 100755 abs/core/plextor-convertX-driver/convertX.install create mode 100644 abs/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff create mode 100644 abs/core/pm-utils/11netcfg create mode 100644 abs/core/pm-utils/PKGBUILD create mode 100644 abs/core/pm-utils/pm-utils.install create mode 100644 abs/core/pm-utils/service.patch create mode 100644 abs/core/popt/PKGBUILD create mode 100644 abs/core/ppp/PKGBUILD create mode 100644 abs/core/ppp/ip-down create mode 100644 abs/core/ppp/ip-up create mode 100644 abs/core/ppp/options create mode 100644 abs/core/ppp/plog create mode 100644 abs/core/ppp/poff create mode 100644 abs/core/ppp/pon create mode 100644 abs/core/ppp/pon.1 create mode 100644 abs/core/ppp/ppp create mode 100644 abs/core/printproto/PKGBUILD create mode 100644 abs/core/procinfo/PKGBUILD create mode 100644 abs/core/procinfo/procinfo-19.2.patch create mode 100644 abs/core/procps/PKGBUILD create mode 100644 abs/core/procps/sysctl.conf create mode 100644 abs/core/psmisc/PKGBUILD create mode 100644 abs/core/pycairo/PKGBUILD create mode 100644 abs/core/pygobject/PKGBUILD create mode 100644 abs/core/pygtk/PKGBUILD create mode 100644 abs/core/python-numeric/PKGBUILD create mode 100644 abs/core/python-pexpect/PKGBUILD create mode 100644 abs/core/python/PKGBUILD create mode 100644 abs/core/python/Python-2.4.4-gdbm-1.patch create mode 100644 abs/core/python/Python-2.5.2-idlelib.patch create mode 100644 abs/core/python/db4.6-setup.py-detection.patch create mode 100644 abs/core/python/modulator-launcher create mode 100644 abs/core/python/pynche-launcher create mode 100644 abs/core/python/python-2.5.CVE-2007-4965-int-overflow.patch create mode 100644 abs/core/python/python.install create mode 100644 abs/core/python/python2.6-set_wakeup_fd4.patch create mode 100644 abs/core/qt3/PKGBUILD create mode 100644 abs/core/qt3/mysql.patch create mode 100644 abs/core/qt3/qt-copy-kde-patches.tar.bz2 create mode 100644 abs/core/qt3/qt-font-default-subst.diff create mode 100644 abs/core/qt3/qt-patches.tar.bz2 create mode 100644 abs/core/qt3/qt.install create mode 100644 abs/core/qt3/qt.profile create mode 100644 abs/core/qt3/utf8-bug-qt3.diff create mode 100644 abs/core/randrproto/PKGBUILD create mode 100644 abs/core/readline/PKGBUILD create mode 100644 abs/core/readline/inputrc create mode 100644 abs/core/readline/readline.install create mode 100644 abs/core/recordproto/PKGBUILD create mode 100644 abs/core/reiserfsprogs/PKGBUILD create mode 100644 abs/core/renderproto/PKGBUILD create mode 100644 abs/core/rp-pppoe/PKGBUILD create mode 100755 abs/core/rp-pppoe/adsl create mode 100644 abs/core/rt2500/PKGBUILD create mode 100644 abs/core/rt2500/kernel-2.6.22.patch create mode 100644 abs/core/rt2500/kernel-2.6.24.patch create mode 100644 abs/core/rt2500/rt2500.install create mode 100644 abs/core/rt2x00-rt61-fw/PKGBUILD create mode 100644 abs/core/rt2x00-rt71w-fw/PKGBUILD create mode 100644 abs/core/run-parts/PKGBUILD create mode 100755 abs/core/runit/PKGBUILD create mode 100755 abs/core/runit/add_service.sh create mode 100755 abs/core/runit/halt.script create mode 100755 abs/core/runit/poweroff.script create mode 100755 abs/core/runit/reboot.script create mode 100755 abs/core/runit/remove_service.sh create mode 100755 abs/core/runit/runit.install create mode 100755 abs/core/runit/runitscripts/1 create mode 100755 abs/core/runit/runitscripts/2 create mode 100755 abs/core/runit/runitscripts/3 create mode 100755 abs/core/runit/runitscripts/ctrlaltdel create mode 100755 abs/core/runit/runitscripts/halt-runit create mode 100755 abs/core/runit/runitscripts/logger create mode 100755 abs/core/runit/runitscripts/reboot-runit create mode 100755 abs/core/runit/runitscripts/services/Xvfb/finish create mode 100755 abs/core/runit/runitscripts/services/Xvfb/run create mode 100755 abs/core/runit/runitscripts/services/acpid/run create mode 100755 abs/core/runit/runitscripts/services/alsa-utils/finish create mode 100755 abs/core/runit/runitscripts/services/alsa-utils/run create mode 100755 abs/core/runit/runitscripts/services/apache/run create mode 100755 abs/core/runit/runitscripts/services/avahi/run create mode 100755 abs/core/runit/runitscripts/services/cron/run create mode 100755 abs/core/runit/runitscripts/services/dbus/run create mode 100755 abs/core/runit/runitscripts/services/dnsmasq/run create mode 100755 abs/core/runit/runitscripts/services/evrouter/finish create mode 100755 abs/core/runit/runitscripts/services/evrouter/run create mode 100755 abs/core/runit/runitscripts/services/frontend/finish create mode 100755 abs/core/runit/runitscripts/services/frontend/log/run create mode 100755 abs/core/runit/runitscripts/services/frontend/run create mode 100755 abs/core/runit/runitscripts/services/gpm/run create mode 100755 abs/core/runit/runitscripts/services/hal/run create mode 100755 abs/core/runit/runitscripts/services/hobbit-client/run create mode 100755 abs/core/runit/runitscripts/services/hobbit/run create mode 100755 abs/core/runit/runitscripts/services/lcdd/run create mode 100755 abs/core/runit/runitscripts/services/lighttpd/run create mode 100755 abs/core/runit/runitscripts/services/lircd/finish create mode 100755 abs/core/runit/runitscripts/services/lircd/run create mode 100755 abs/core/runit/runitscripts/services/mysql/run create mode 100755 abs/core/runit/runitscripts/services/mythbackend/log/run create mode 100755 abs/core/runit/runitscripts/services/mythbackend/run create mode 100755 abs/core/runit/runitscripts/services/ncid/run create mode 100755 abs/core/runit/runitscripts/services/ncidd/run create mode 100755 abs/core/runit/runitscripts/services/netfs/finish create mode 100755 abs/core/runit/runitscripts/services/netfs/run create mode 100755 abs/core/runit/runitscripts/services/nfsd/run create mode 100755 abs/core/runit/runitscripts/services/nfslock/run create mode 100755 abs/core/runit/runitscripts/services/nmbd/run create mode 100755 abs/core/runit/runitscripts/services/ntpd/run create mode 100755 abs/core/runit/runitscripts/services/oss/finish create mode 100755 abs/core/runit/runitscripts/services/oss/run create mode 100755 abs/core/runit/runitscripts/services/portmap/run create mode 100755 abs/core/runit/runitscripts/services/smbd/run create mode 100755 abs/core/runit/runitscripts/services/sshd/run create mode 100755 abs/core/runit/runitscripts/services/syslog-ng/run create mode 100755 abs/core/runit/runitscripts/services/tty2/run create mode 100755 abs/core/runit/runitscripts/services/tty3/run create mode 100644 abs/core/scrnsaverproto/PKGBUILD create mode 100644 abs/core/sdl/PKGBUILD create mode 100644 abs/core/sdparm/PKGBUILD create mode 100644 abs/core/sed/PKGBUILD create mode 100644 abs/core/sg3_utils/PKGBUILD create mode 100644 abs/core/shadow/PKGBUILD create mode 100644 abs/core/shadow/adduser create mode 100644 abs/core/shadow/chage create mode 100644 abs/core/shadow/chsh create mode 100644 abs/core/shadow/login create mode 100644 abs/core/shadow/login.defs create mode 100644 abs/core/shadow/passwd create mode 100644 abs/core/shadow/shadow create mode 100644 abs/core/shadow/shadow-4.0.18.2-useradd-fix-1.patch create mode 100644 abs/core/shadow/shadow-UID_GID.patch create mode 100755 abs/core/shadow/shadow.cron.daily create mode 100644 abs/core/shadow/shadow.install create mode 100644 abs/core/shadow/useradd create mode 100644 abs/core/shadow/useradd-default.patch create mode 100644 abs/core/shadow/xstrdup.patch create mode 100644 abs/core/smbclient/PKGBUILD create mode 100644 abs/core/smbclient/heimdal.patch create mode 100644 abs/core/squashfs-tools/PKGBUILD create mode 100644 abs/core/sudo/PKGBUILD create mode 100644 abs/core/sudo/sudo.pam create mode 100644 abs/core/sysfsutils/PKGBUILD create mode 100644 abs/core/syslinux/PKGBUILD create mode 100644 abs/core/syslog-ng/PKGBUILD create mode 100755 abs/core/syslog-ng/syslog-ng create mode 100644 abs/core/syslog-ng/syslog-ng.conf create mode 100644 abs/core/syslog-ng/syslog-ng.logrotate create mode 100644 abs/core/sysvinit/PKGBUILD create mode 100644 abs/core/sysvinit/halt-init.patch create mode 100644 abs/core/taglib/PKGBUILD create mode 100644 abs/core/tar/PKGBUILD create mode 100644 abs/core/tar/tar.1 create mode 100644 abs/core/tcl/ChangeLog create mode 100644 abs/core/tcl/PKGBUILD create mode 100644 abs/core/tcp_wrappers/PKGBUILD create mode 100644 abs/core/tcp_wrappers/gcc340.patch create mode 100644 abs/core/tcp_wrappers/hosts.allow create mode 100644 abs/core/tcp_wrappers/hosts.deny create mode 100644 abs/core/tcp_wrappers/safe_finger.8 create mode 100644 abs/core/tcp_wrappers/shared_lib_plus_plus-1.patch create mode 100644 abs/core/tcp_wrappers/try-from.8 create mode 100644 abs/core/tiacx-firmware/PKGBUILD create mode 100644 abs/core/tiacx-firmware/tiacx-firmware.install create mode 100644 abs/core/tiacx/PKGBUILD create mode 100644 abs/core/tiacx/acx.install create mode 100644 abs/core/tk/ChangeLog create mode 100644 abs/core/tk/PKGBUILD create mode 100644 abs/core/trapproto/PKGBUILD create mode 100644 abs/core/ttf-dejavu/ChangeLog create mode 100644 abs/core/ttf-dejavu/PKGBUILD create mode 100644 abs/core/ttf-dejavu/ttf-dejavu.install create mode 100644 abs/core/tzdata/Makefile.patch create mode 100644 abs/core/tzdata/PKGBUILD create mode 100644 abs/core/tzdata/chile.patch create mode 100644 abs/core/udev/00-load-blacklist.rules create mode 100644 abs/core/udev/51-arch.rules create mode 100644 abs/core/udev/PKGBUILD create mode 100644 abs/core/udev/arch-udev-rules.patch create mode 100644 abs/core/udev/cdrom-rules.patch create mode 100755 abs/core/udev/cdsymlinks.sh create mode 100755 abs/core/udev/load-modules.sh create mode 100644 abs/core/udev/migrate-udev create mode 100755 abs/core/udev/mod-blacklist.sh create mode 100644 abs/core/udev/readme-udev-arch.txt create mode 100755 abs/core/udev/root-link.sh create mode 100755 abs/core/udev/start_udev create mode 100644 abs/core/udev/udev.install create mode 100644 abs/core/udev/udev.rules create mode 100644 abs/core/udev/usb_id-fix.patch create mode 100644 abs/core/unichrome-dri/PKGBUILD create mode 100644 abs/core/unison/PKGBUILD create mode 100644 abs/core/unison/ocaml-3.08-extnames.patch create mode 100644 abs/core/unison/unison.desktop create mode 100644 abs/core/unison/unison.install create mode 100644 abs/core/usbutils/PKGBUILD create mode 100644 abs/core/util-linux-ng/PKGBUILD create mode 100644 abs/core/util-linux-ng/util-linux-ng-2.14-20080624.diff create mode 100644 abs/core/v4l-dvb/PKGBUILD create mode 100644 abs/core/v4l-dvb/v4l-dvb.install create mode 100644 abs/core/vbetool/PKGBUILD create mode 100644 abs/core/vi/PKGBUILD create mode 100644 abs/core/vi/fetch_patches.sh create mode 100644 abs/core/vi/fetch_runtime.sh create mode 100644 abs/core/vi/vi.install create mode 100644 abs/core/videoproto/PKGBUILD create mode 100644 abs/core/wget/PKGBUILD create mode 100644 abs/core/which/PKGBUILD create mode 100644 abs/core/wlan-ng26-utils/PKGBUILD create mode 100644 abs/core/wlan-ng26-utils/kernel-2.6.22-r1832.patch create mode 100644 abs/core/wlan-ng26-utils/kernel-2.6.26.patch create mode 100644 abs/core/wlan-ng26-utils/wlan create mode 100644 abs/core/wlan-ng26-utils/wlan-ng.patch create mode 100644 abs/core/wlan-ng26/PKGBUILD create mode 100644 abs/core/wlan-ng26/kernel-2.6.26.patch create mode 100644 abs/core/wlan-ng26/wlan-ng26.install create mode 100644 abs/core/wpa_supplicant/PKGBUILD create mode 100644 abs/core/wpa_supplicant/config create mode 100644 abs/core/wpa_supplicant/wpa_supplicant.install create mode 100644 abs/core/x264/PKGBUILD create mode 100644 abs/core/xbitmaps/PKGBUILD create mode 100644 abs/core/xcb-proto/PKGBUILD create mode 100644 abs/core/xcursor-themes/PKGBUILD create mode 100644 abs/core/xextproto/PKGBUILD create mode 100644 abs/core/xf86-input-acecad/PKGBUILD create mode 100644 abs/core/xf86-input-aiptek/PKGBUILD create mode 100644 abs/core/xf86-input-calcomp/PKGBUILD create mode 100644 abs/core/xf86-input-citron/PKGBUILD create mode 100644 abs/core/xf86-input-digitaledge/PKGBUILD create mode 100644 abs/core/xf86-input-dmc/PKGBUILD create mode 100644 abs/core/xf86-input-dynapro/PKGBUILD create mode 100644 abs/core/xf86-input-elo2300/PKGBUILD create mode 100644 abs/core/xf86-input-elographics/PKGBUILD create mode 100644 abs/core/xf86-input-evdev/PKGBUILD create mode 100644 abs/core/xf86-input-fpit/PKGBUILD create mode 100644 abs/core/xf86-input-hyperpen/PKGBUILD create mode 100644 abs/core/xf86-input-jamstudio/PKGBUILD create mode 100644 abs/core/xf86-input-joystick/PKGBUILD create mode 100644 abs/core/xf86-input-keyboard/PKGBUILD create mode 100644 abs/core/xf86-input-keyboard/new-server.patch create mode 100644 abs/core/xf86-input-magellan/PKGBUILD create mode 100644 abs/core/xf86-input-magictouch/PKGBUILD create mode 100644 abs/core/xf86-input-microtouch/PKGBUILD create mode 100644 abs/core/xf86-input-mouse/PKGBUILD create mode 100644 abs/core/xf86-input-mutouch/PKGBUILD create mode 100644 abs/core/xf86-input-palmax/PKGBUILD create mode 100644 abs/core/xf86-input-penmount/PKGBUILD create mode 100644 abs/core/xf86-input-spaceorb/PKGBUILD create mode 100644 abs/core/xf86-input-summa/PKGBUILD create mode 100644 abs/core/xf86-input-tek4957/PKGBUILD create mode 100644 abs/core/xf86-input-ur98/PKGBUILD create mode 100644 abs/core/xf86-input-vmmouse/PKGBUILD create mode 100644 abs/core/xf86-input-void/PKGBUILD create mode 100644 abs/core/xf86-video-amd/PKGBUILD create mode 100644 abs/core/xf86-video-apm/PKGBUILD create mode 100644 abs/core/xf86-video-ark/PKGBUILD create mode 100644 abs/core/xf86-video-ati/PKGBUILD create mode 100644 abs/core/xf86-video-chips/PKGBUILD create mode 100644 abs/core/xf86-video-cirrus/PKGBUILD create mode 100644 abs/core/xf86-video-dummy/PKGBUILD create mode 100644 abs/core/xf86-video-fbdev/PKGBUILD create mode 100644 abs/core/xf86-video-glint/PKGBUILD create mode 100644 abs/core/xf86-video-i128/PKGBUILD create mode 100644 abs/core/xf86-video-i740/PKGBUILD create mode 100644 abs/core/xf86-video-imstt/PKGBUILD create mode 100644 abs/core/xf86-video-intel/PKGBUILD create mode 100644 abs/core/xf86-video-mga/PKGBUILD create mode 100644 abs/core/xf86-video-neomagic/PKGBUILD create mode 100644 abs/core/xf86-video-nv/PKGBUILD create mode 100644 abs/core/xf86-video-radeonhd/PKGBUILD create mode 100644 abs/core/xf86-video-rendition/PKGBUILD create mode 100644 abs/core/xf86-video-s3/PKGBUILD create mode 100644 abs/core/xf86-video-s3virge/PKGBUILD create mode 100644 abs/core/xf86-video-savage/PKGBUILD create mode 100644 abs/core/xf86-video-siliconmotion/PKGBUILD create mode 100644 abs/core/xf86-video-sis/PKGBUILD create mode 100644 abs/core/xf86-video-sisusb/PKGBUILD create mode 100644 abs/core/xf86-video-tdfx/PKGBUILD create mode 100644 abs/core/xf86-video-trident/PKGBUILD create mode 100644 abs/core/xf86-video-tseng/PKGBUILD create mode 100644 abs/core/xf86-video-unichrome/PKGBUILD create mode 100644 abs/core/xf86-video-unichrome/fix-defines.patch create mode 100644 abs/core/xf86-video-v4l/PKGBUILD create mode 100644 abs/core/xf86-video-vesa/COPYING create mode 100644 abs/core/xf86-video-vesa/PKGBUILD create mode 100644 abs/core/xf86-video-vga/PKGBUILD create mode 100644 abs/core/xf86-video-vmware/PKGBUILD create mode 100644 abs/core/xf86-video-voodoo/PKGBUILD create mode 100644 abs/core/xf86dgaproto/PKGBUILD create mode 100644 abs/core/xf86miscproto/PKGBUILD create mode 100644 abs/core/xf86vidmodeproto/PKGBUILD create mode 100644 abs/core/xfsprogs/PKGBUILD create mode 100644 abs/core/xineramaproto/PKGBUILD create mode 100644 abs/core/xkeyboard-config/PKGBUILD create mode 100755 abs/core/xmltv/PKGBUILD create mode 100644 abs/core/xorg-apps/PKGBUILD create mode 100644 abs/core/xorg-font-utils/PKGBUILD create mode 100644 abs/core/xorg-font-utils/ttmkfdir.patch create mode 100644 abs/core/xorg-font-utils/ttmkfdir_gcc43.patch create mode 100644 abs/core/xorg-font-utils/xorg-font-utils.install create mode 100644 abs/core/xorg-fonts-100dpi/PKGBUILD create mode 100644 abs/core/xorg-fonts-100dpi/xfonts.install create mode 100644 abs/core/xorg-fonts-75dpi/PKGBUILD create mode 100644 abs/core/xorg-fonts-75dpi/xfonts.install create mode 100644 abs/core/xorg-fonts-alias/PKGBUILD create mode 100644 abs/core/xorg-fonts-encodings/PKGBUILD create mode 100644 abs/core/xorg-fonts-encodings/xorg-fonts-encodings.install create mode 100644 abs/core/xorg-fonts-misc/PKGBUILD create mode 100644 abs/core/xorg-fonts-misc/xfonts.install create mode 100644 abs/core/xorg-res-utils/PKGBUILD create mode 100644 abs/core/xorg-server-utils/PKGBUILD create mode 100644 abs/core/xorg-server/PKGBUILD create mode 100644 abs/core/xorg-server/xorg-server.install create mode 100644 abs/core/xorg-utils/PKGBUILD create mode 100644 abs/core/xorg-xauth/PKGBUILD create mode 100644 abs/core/xorg-xinit/PKGBUILD create mode 100644 abs/core/xorg-xinit/xinitrc create mode 100644 abs/core/xorg-xinit/xserverrc create mode 100644 abs/core/xorg-xinit/xsession create mode 100644 abs/core/xorg-xkb-utils/PKGBUILD create mode 100644 abs/core/xproto/PKGBUILD create mode 100644 abs/core/xterm/PKGBUILD create mode 100644 abs/core/xtrans/PKGBUILD create mode 100644 abs/core/xvidcore/PKGBUILD create mode 100644 abs/core/zd1211-firmware/PKGBUILD create mode 100644 abs/core/zlib/PKGBUILD create mode 100644 abs/extra-testing/README create mode 100644 abs/extra/README diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e14b095 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# git-ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +*.[oa] +*~ +*.*~ +src +pkg +*.old +*.bak +*.swp +.directory +.viminfo diff --git a/abs/chroot-devel-testing/README b/abs/chroot-devel-testing/README new file mode 100644 index 0000000..e69de29 diff --git a/abs/chroot-devel/README b/abs/chroot-devel/README new file mode 100644 index 0000000..e69de29 diff --git a/abs/core-testing/a52dec/PKGBUILD b/abs/core-testing/a52dec/PKGBUILD new file mode 100644 index 0000000..cba41ae --- /dev/null +++ b/abs/core-testing/a52dec/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 5601 2008-07-18 22:06:17Z jgc $ +# Maintainer: Thomas Baechler +# contributor: Sarah Hay + +pkgname=a52dec +pkgver=0.7.4 +pkgrel=4 +pkgdesc="liba52 is a free library for decoding ATSC A/52 streams." +arch=('i686' 'x86_64') +license=('GPL2') +depends=('glibc') +options=(!libtool) +source=(http://liba52.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz + a52dec-0.7.4-build.patch) +url="http://liba52.sourceforge.net/" +md5sums=('caa9f5bc44232dc8aeea773fea56be80' 'fa16f224a7dceb7613824380abef0052') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + patch -Np1 -i ${srcdir}/a52dec-0.7.4-build.patch || return 1 + ./bootstrap || return 1 + ./configure --prefix=/usr --enable-shared || return 1 + make || return 1 + make DESTDIR=${pkgdir} install || return 1 + install -m644 liba52/a52_internal.h $startdir/pkg/usr/include/a52dec/ || return 1 +} diff --git a/abs/core-testing/a52dec/a52dec-0.7.4-build.patch b/abs/core-testing/a52dec/a52dec-0.7.4-build.patch new file mode 100644 index 0000000..f3a29f3 --- /dev/null +++ b/abs/core-testing/a52dec/a52dec-0.7.4-build.patch @@ -0,0 +1,27 @@ +diff -Naur a52dec-0.7.4.orig/liba52/Makefile.am a52dec-0.7.4/liba52/Makefile.am +--- a52dec-0.7.4.orig/liba52/Makefile.am 2002-01-27 20:36:48.000000000 -0800 ++++ a52dec-0.7.4/liba52/Makefile.am 2004-11-05 01:10:21.317401872 -0800 +@@ -1,4 +1,3 @@ +-CFLAGS = @CFLAGS@ @LIBA52_CFLAGS@ + + lib_LTLIBRARIES = liba52.la + +diff -Naur a52dec-0.7.4.orig/liba52/configure.incl a52dec-0.7.4/liba52/configure.incl +--- a52dec-0.7.4.orig/liba52/configure.incl 2002-01-27 20:36:48.000000000 -0800 ++++ a52dec-0.7.4/liba52/configure.incl 2004-11-05 01:11:38.172672216 -0800 +@@ -2,7 +2,6 @@ + AC_SUBST([LIBA52_LIBS]) + + dnl avoid -fPIC when possible +-LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic" + + AC_ARG_ENABLE([double], + [ --enable-double use double-precision samples]) +diff -Naur a52dec-0.7.4.orig/src/Makefile.am a52dec-0.7.4/src/Makefile.am +--- a52dec-0.7.4.orig/src/Makefile.am 2002-06-22 18:51:57.000000000 -0700 ++++ a52dec-0.7.4/src/Makefile.am 2004-11-05 01:10:21.320401375 -0800 +@@ -1,4 +1,3 @@ +-CFLAGS = @A52DEC_CFLAGS@ + + bin_PROGRAMS = a52dec extract_a52 + a52dec_SOURCES = a52dec.c getopt.c gettimeofday.c diff --git a/abs/core-testing/aalib/PKGBUILD b/abs/core-testing/aalib/PKGBUILD new file mode 100644 index 0000000..ee23967 --- /dev/null +++ b/abs/core-testing/aalib/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 2990 2008-06-18 01:46:24Z eric $ +# Maintainer: arjan +# Contributor: Tom Newsom +# +pkgname=aalib +pkgver=1.4rc5 +pkgrel=5 +pkgdesc="AAlib is a portable ASCII art GFX library" +arch=('i686' 'x86_64') +url="http://aa-project.sourceforge.net/aalib/" +license=('LGPL') +depends=('glibc' 'ncurses' 'gpm>=1.20.4' 'libx11') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/aa-project/$pkgname-$pkgver.tar.gz + aclocal-fixes.patch) +md5sums=('9801095c42bba12edebd1902bcf0a990' '863a96a6689aa7ee073ca448bc2f133d') + +build() { + cd $startdir/src/$pkgname-1.4.0 + patch -Np0 -i ${startdir}/src/aclocal-fixes.patch || return 1 + ./configure --prefix=/usr --mandir=/usr/share/man + make || return 1 + make DESTDIR=$startdir/pkg install +} diff --git a/abs/core-testing/aalib/aclocal-fixes.patch b/abs/core-testing/aalib/aclocal-fixes.patch new file mode 100644 index 0000000..3f1919a --- /dev/null +++ b/abs/core-testing/aalib/aclocal-fixes.patch @@ -0,0 +1,11 @@ +--- aalib.m4.orig 2006-03-05 13:58:21.000000000 +0000 ++++ aalib.m4 2006-03-05 13:58:32.000000000 +0000 +@@ -9,7 +9,7 @@ + dnl AM_PATH_AALIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) + dnl Test for AALIB, and define AALIB_CFLAGS and AALIB_LIBS + dnl +-AC_DEFUN(AM_PATH_AALIB, ++AC_DEFUN([AM_PATH_AALIB], + [dnl + dnl Get the cflags and libraries from the aalib-config script + dnl diff --git a/abs/core-testing/acl/PKGBUILD b/abs/core-testing/acl/PKGBUILD new file mode 100644 index 0000000..099eb04 --- /dev/null +++ b/abs/core-testing/acl/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski +pkgname=acl +pkgver=2.2.47 +pkgrel=10 +pkgdesc="Library for filesystem ACL support" +arch=(i686 x86_64) +url="http://oss.sgi.com/projects/xfs/" +license=('LGPL') +groups=('base') +depends=('attr>=2.4.41') +replaces=('xfsacl') +provides=('xfsacl') +conflicts=('xfsacl') +options=('!libtool') +source=(ftp://oss.sgi.com/projects/xfs/cmd_tars/acl_${pkgver}-1.tar.gz) +md5sums=('a11e4571a54a0b1ae83010d1e68a64c2') + +build() { + cd $startdir/src/acl-$pkgver + autoconf + ./configure --prefix=$startdir/pkg/usr + make || return 1 + make prefix=$startdir/pkg/usr/ install install-lib install-dev + + # tidy up + cd $startdir/pkg + + mkdir -v lib + mv -v usr/lib/libacl.so* lib/ + ln -sv ../../lib/libacl.so.1 usr/lib/libacl.so + + mv -v usr/libexec/libacl.{a,la} usr/lib/ + rm -rf $startdir/pkg/usr/libexec +} diff --git a/abs/core-testing/alsa-lib/PKGBUILD b/abs/core-testing/alsa-lib/PKGBUILD new file mode 100644 index 0000000..785f6b2 --- /dev/null +++ b/abs/core-testing/alsa-lib/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd + +pkgname=alsa-lib +pkgver=1.0.16 +pkgrel=1 +pkgdesc="An alternative implementation of Linux sound support" +arch=(i686 x86_64) +url="http://www.alsa-project.org" +depends=('glibc') +optdepends=('python') +makedepends=('python') +license=('GPL') +options=(!libtool) +source=(ftp://ftp.alsa-project.org/pub/lib/$pkgname-$pkgver.tar.bz2) +md5sums=('73b0986758bb762648a5fafc93e287c1') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$startdir/pkg install +} diff --git a/abs/core-testing/alsa-lib/python2.5.patch b/abs/core-testing/alsa-lib/python2.5.patch new file mode 100644 index 0000000..cd0032b --- /dev/null +++ b/abs/core-testing/alsa-lib/python2.5.patch @@ -0,0 +1,11 @@ +--- modules/mixer/simple/python.c~ 2007-08-21 17:21:28.000000000 +0200 ++++ modules/mixer/simple/python.c 2007-08-21 17:26:39.000000000 +0200 +@@ -23,7 +23,7 @@ + #include "config.h" + #include "asoundlib.h" + #include "mixer_abst.h" +-#include ++#include + + struct python_priv { + int py_initialized; diff --git a/abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch b/abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch new file mode 100644 index 0000000..588272f --- /dev/null +++ b/abs/core-testing/alsa-lib/revert-patch-to-fix-converting-32bit-audio-to-16bit.patch @@ -0,0 +1,242 @@ + +--- a/src/pcm/plugin_ops.h Mon Jan 09 14:40:08 2006 +0000 ++++ b/src/pcm/plugin_ops.h Fri Mar 09 17:06:23 2007 +0100 +@@ -85,6 +85,8 @@ static inline u_int32_t sx24s(u_int32_t + #define _put_triple(ptr,val) _put_triple_be(ptr,val) + #define _put_triple_s(ptr,val) _put_triple_le(ptr,val) + #endif ++ ++#define shift_down(val, bits) (((val) + (1 << ((bits) - 1))) >> (bits)) + + #ifdef COPY_LABELS + static void *copy_labels[5] = { +@@ -256,14 +258,14 @@ conv_xxx1_009x: as_u32(dst) = sx24s((u_i + conv_xxx1_009x: as_u32(dst) = sx24s((u_int32_t)(as_u8c(src) ^ 0x80) << 8); goto CONV_END; + conv_xxx1_9000: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 24; goto CONV_END; + conv_xxx1_0009: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80); goto CONV_END; +-conv_xx12_xxx1: as_u8(dst) = as_u16c(src) >> 8; goto CONV_END; ++conv_xx12_xxx1: as_u8(dst) = shift_down(as_u16c(src), 8); goto CONV_END; + conv_xx12_xx12: as_u16(dst) = as_u16c(src); goto CONV_END; + conv_xx12_xx21: as_u16(dst) = bswap_16(as_u16c(src)); goto CONV_END; + conv_xx12_x120: as_u32(dst) = sx24((u_int32_t)as_u16c(src) << 8); goto CONV_END; + conv_xx12_021x: as_u32(dst) = sx24s((u_int32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END; + conv_xx12_1200: as_u32(dst) = (u_int32_t)as_u16c(src) << 16; goto CONV_END; + conv_xx12_0021: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)); goto CONV_END; +-conv_xx12_xxx9: as_u8(dst) = (as_u16c(src) >> 8) ^ 0x80; goto CONV_END; ++conv_xx12_xxx9: as_u8(dst) = shift_down(as_u16c(src), 8) ^ 0x80; goto CONV_END; + conv_xx12_xx92: as_u16(dst) = as_u16c(src) ^ 0x8000; goto CONV_END; + conv_xx12_xx29: as_u16(dst) = bswap_16(as_u16c(src)) ^ 0x80; goto CONV_END; + conv_xx12_x920: as_u32(dst) = sx24((u_int32_t)(as_u16c(src) ^ 0x8000) << 8); goto CONV_END; +@@ -282,57 +284,57 @@ conv_xx12_01Ax: as_u32(dst) = sx24s((u_i + conv_xx12_01Ax: as_u32(dst) = sx24s((u_int32_t)(as_u16c(src) ^ 0x80) << 8); goto CONV_END; + conv_xx12_A100: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto CONV_END; + conv_xx12_001A: as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x80); goto CONV_END; +-conv_x123_xxx1: as_u8(dst) = as_u32c(src) >> 16; goto CONV_END; +-conv_x123_xx12: as_u16(dst) = as_u32c(src) >> 8; goto CONV_END; +-conv_x123_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END; ++conv_x123_xxx1: as_u8(dst) = shift_down(as_u32c(src), 16); goto CONV_END; ++conv_x123_xx12: as_u16(dst) = shift_down(as_u32c(src), 8); goto CONV_END; ++conv_x123_xx21: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)); goto CONV_END; + conv_x123_x123: as_u32(dst) = sx24(as_u32c(src)); goto CONV_END; + conv_x123_321x: as_u32(dst) = sx24s(bswap_32(as_u32c(src))); goto CONV_END; + conv_x123_1230: as_u32(dst) = as_u32c(src) << 8; goto CONV_END; +-conv_x123_0321: as_u32(dst) = bswap_32(as_u32c(src)) >> 8; goto CONV_END; +-conv_x123_xxx9: as_u8(dst) = (as_u32c(src) >> 16) ^ 0x80; goto CONV_END; +-conv_x123_xx92: as_u16(dst) = (as_u32c(src) >> 8) ^ 0x8000; goto CONV_END; +-conv_x123_xx29: as_u16(dst) = bswap_16(as_u32c(src) >> 8) ^ 0x80; goto CONV_END; ++conv_x123_0321: as_u32(dst) = shift_down(bswap_32(as_u32c(src)), 8); goto CONV_END; ++ conv_x123_xxx9: as_u8(dst) = shift_down(as_u32c(src), 16) ^ 0x80; goto CONV_END; ++conv_x123_xx92: as_u16(dst) = shift_down(as_u32c(src), 8) ^ 0x8000; goto CONV_END; ++conv_x123_xx29: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)) ^ 0x80; goto CONV_END; + conv_x123_x923: as_u32(dst) = sx24(as_u32c(src) ^ 0x800000); goto CONV_END; + conv_x123_329x: as_u32(dst) = sx24s(bswap_32(as_u32c(src)) ^ 0x8000); goto CONV_END; + conv_x123_9230: as_u32(dst) = (as_u32c(src) ^ 0x800000) << 8; goto CONV_END; +-conv_x123_0329: as_u32(dst) = (bswap_32(as_u32c(src)) >> 8) ^ 0x80; goto CONV_END; +-conv_123x_xxx3: as_u8(dst) = (as_u32c(src) >> 8) & 0xff; goto CONV_END; +-conv_123x_xx32: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END; +-conv_123x_xx23: as_u16(dst) = (as_u32c(src) >> 8) & 0xffff; goto CONV_END; ++conv_x123_0329: as_u32(dst) = shift_down(bswap_32(as_u32c(src)), 8) ^ 0x80; goto CONV_END; ++conv_123x_xxx3: as_u8(dst) = shift_down(as_u32c(src), 8) & 0xff; goto CONV_END; ++conv_123x_xx32: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)); goto CONV_END; ++conv_123x_xx23: as_u16(dst) = shift_down(as_u32c(src), 8) & 0xffff; goto CONV_END; + conv_123x_x321: as_u32(dst) = sx24(bswap_32(as_u32c(src))); goto CONV_END; + conv_123x_123x: as_u32(dst) = sx24s(as_u32c(src)); goto CONV_END; + conv_123x_3210: as_u32(dst) = bswap_32(as_u32c(src)) << 8; goto CONV_END; +-conv_123x_0123: as_u32(dst) = as_u32c(src) >> 8; goto CONV_END; +-conv_123x_xxxB: as_u8(dst) = ((as_u32c(src) >> 8) & 0xff) ^ 0x80; goto CONV_END; +-conv_123x_xxB2: as_u16(dst) = bswap_16((as_u32c(src) >> 8) ^ 0x80); goto CONV_END; +-conv_123x_xx2B: as_u16(dst) = ((as_u32c(src) >> 8) & 0xffff) ^ 0x80; goto CONV_END; ++conv_123x_0123: as_u32(dst) = shift_down(as_u32c(src), 8); goto CONV_END; ++conv_123x_xxxB: as_u8(dst) = (shift_down(as_u32c(src), 8) & 0xff) ^ 0x80; goto CONV_END; ++conv_123x_xxB2: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8) ^ 0x80); goto CONV_END; ++conv_123x_xx2B: as_u16(dst) = (shift_down(as_u32c(src), 8) & 0xffff) ^ 0x80; goto CONV_END; + conv_123x_xB21: as_u32(dst) = sx24(bswap_32(as_u32c(src)) ^ 0x800000); goto CONV_END; + conv_123x_12Bx: as_u32(dst) = sx24s(as_u32c(src) ^ 0x8000); goto CONV_END; + conv_123x_B210: as_u32(dst) = bswap_32(as_u32c(src) ^ 0x8000) << 8; goto CONV_END; +-conv_123x_012B: as_u32(dst) = (as_u32c(src) >> 8) ^ 0x80; goto CONV_END; +-conv_1234_xxx1: as_u8(dst) = as_u32c(src) >> 24; goto CONV_END; +-conv_1234_xx12: as_u16(dst) = as_u32c(src) >> 16; goto CONV_END; +-conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto CONV_END; +-conv_1234_x123: as_u32(dst) = sx24(as_u32c(src) >> 8); goto CONV_END; ++conv_123x_012B: as_u32(dst) = shift_down(as_u32c(src), 8) ^ 0x80; goto CONV_END; ++conv_1234_xxx1: as_u8(dst) = shift_down(as_u32c(src), 24); goto CONV_END; ++conv_1234_xx12: as_u16(dst) = shift_down(as_u32c(src), 16); goto CONV_END; ++conv_1234_xx21: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 16)); goto CONV_END; ++conv_1234_x123: as_u32(dst) = sx24(shift_down(as_u32c(src), 8)); goto CONV_END; + conv_1234_321x: as_u32(dst) = sx24s(bswap_32(as_u32c(src)) << 8); goto CONV_END; + conv_1234_1234: as_u32(dst) = as_u32c(src); goto CONV_END; + conv_1234_4321: as_u32(dst) = bswap_32(as_u32c(src)); goto CONV_END; +-conv_1234_xxx9: as_u8(dst) = (as_u32c(src) >> 24) ^ 0x80; goto CONV_END; +-conv_1234_xx92: as_u16(dst) = (as_u32c(src) >> 16) ^ 0x8000; goto CONV_END; +-conv_1234_xx29: as_u16(dst) = bswap_16(as_u32c(src) >> 16) ^ 0x80; goto CONV_END; +-conv_1234_x923: as_u32(dst) = sx24((as_u32c(src) >> 8) ^ 0x800000); goto CONV_END; ++conv_1234_xxx9: as_u8(dst) = shift_down(as_u32c(src), 24) ^ 0x80; goto CONV_END; ++conv_1234_xx92: as_u16(dst) = shift_down(as_u32c(src), 16) ^ 0x8000; goto CONV_END; ++conv_1234_xx29: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 16)) ^ 0x80; goto CONV_END; ++conv_1234_x923: as_u32(dst) = sx24(shift_down(as_u32c(src), 8) ^ 0x800000); goto CONV_END; + conv_1234_329x: as_u32(dst) = sx24s((bswap_32(as_u32c(src)) ^ 0x80) << 8); goto CONV_END; + conv_1234_9234: as_u32(dst) = as_u32c(src) ^ 0x80000000; goto CONV_END; + conv_1234_4329: as_u32(dst) = bswap_32(as_u32c(src)) ^ 0x80; goto CONV_END; + conv_1234_xxx4: as_u8(dst) = as_u32c(src) & 0xff; goto CONV_END; + conv_1234_xx43: as_u16(dst) = bswap_16(as_u32c(src)); goto CONV_END; + conv_1234_xx34: as_u16(dst) = as_u32c(src) & 0xffff; goto CONV_END; +-conv_1234_x432: as_u32(dst) = sx24(bswap_32(as_u32c(src)) >> 8); goto CONV_END; ++conv_1234_x432: as_u32(dst) = sx24(shift_down(bswap_32(as_u32c(src)), 8)); goto CONV_END; + conv_1234_234x: as_u32(dst) = sx24s(as_u32c(src) << 8); goto CONV_END; + conv_1234_xxxC: as_u8(dst) = (as_u32c(src) & 0xff) ^ 0x80; goto CONV_END; + conv_1234_xxC3: as_u16(dst) = bswap_16(as_u32c(src) ^ 0x80); goto CONV_END; + conv_1234_xx3C: as_u16(dst) = (as_u32c(src) & 0xffff) ^ 0x80; goto CONV_END; +-conv_1234_xC32: as_u32(dst) = sx24((bswap_32(as_u32c(src)) >> 8) ^ 0x800000); goto CONV_END; ++conv_1234_xC32: as_u32(dst) = sx24(shift_down(bswap_32(as_u32c(src)), 8) ^ 0x800000); goto CONV_END; + conv_1234_23Cx: as_u32(dst) = sx24s((as_u32c(src) ^ 0x80) << 8); goto CONV_END; + conv_1234_C321: as_u32(dst) = bswap_32(as_u32c(src) ^ 0x80); goto CONV_END; + conv_1234_123C: as_u32(dst) = as_u32c(src) ^ 0x80; goto CONV_END; +@@ -382,26 +384,26 @@ get16_12_92: sample = as_u16c(src) ^ 0x8 + get16_12_92: sample = as_u16c(src) ^ 0x8000; goto GET16_END; + get16_12_21: sample = bswap_16(as_u16c(src)); goto GET16_END; + get16_12_A1: sample = bswap_16(as_u16c(src) ^ 0x80); goto GET16_END; +-get16_0123_12: sample = as_u32c(src) >> 8; goto GET16_END; +-get16_0123_92: sample = (as_u32c(src) >> 8) ^ 0x8000; goto GET16_END; +-get16_1230_32: sample = bswap_16(as_u32c(src) >> 8); goto GET16_END; +-get16_1230_B2: sample = bswap_16((as_u32c(src) >> 8) ^ 0x80); goto GET16_END; +-get16_1234_12: sample = as_u32c(src) >> 16; goto GET16_END; +-get16_1234_92: sample = (as_u32c(src) >> 16) ^ 0x8000; goto GET16_END; ++get16_0123_12: sample = shift_down(as_u32c(src), 8); goto GET16_END; ++get16_0123_92: sample = shift_down(as_u32c(src), 8) ^ 0x8000; goto GET16_END; ++get16_1230_32: sample = bswap_16(shift_down(as_u32c(src), 8)); goto GET16_END; ++get16_1230_B2: sample = bswap_16(shift_down(as_u32c(src), 8) ^ 0x80); goto GET16_END; ++get16_1234_12: sample = shift_down(as_u32c(src), 16); goto GET16_END; ++get16_1234_92: sample = shift_down(as_u32c(src), 16) ^ 0x8000; goto GET16_END; + get16_1234_43: sample = bswap_16(as_u32c(src)); goto GET16_END; + get16_1234_C3: sample = bswap_16(as_u32c(src) ^ 0x80); goto GET16_END; +-get16_123_12: sample = _get_triple(src) >> 8; goto GET16_END; +-get16_123_92: sample = (_get_triple(src) >> 8) ^ 0x8000; goto GET16_END; +-get16_123_32: sample = _get_triple_s(src) >> 8; goto GET16_END; +-get16_123_B2: sample = (_get_triple_s(src) >> 8) ^ 0x8000; goto GET16_END; +-get16_123_12_20: sample = _get_triple(src) >> 4; goto GET16_END; +-get16_123_92_20: sample = (_get_triple(src) >> 4) ^ 0x8000; goto GET16_END; +-get16_123_32_20: sample = _get_triple_s(src) >> 4; goto GET16_END; +-get16_123_B2_20: sample = (_get_triple_s(src) >> 4) ^ 0x8000; goto GET16_END; +-get16_123_12_18: sample = _get_triple(src) >> 2; goto GET16_END; +-get16_123_92_18: sample = (_get_triple(src) >> 2) ^ 0x8000; goto GET16_END; +-get16_123_32_18: sample = _get_triple_s(src) >> 2; goto GET16_END; +-get16_123_B2_18: sample = (_get_triple_s(src) >> 2) ^ 0x8000; goto GET16_END; ++get16_123_12: sample = shift_down(_get_triple(src), 8); goto GET16_END; ++get16_123_92: sample = shift_down(_get_triple(src), 8) ^ 0x8000; goto GET16_END; ++get16_123_32: sample = shift_down(_get_triple_s(src), 8); goto GET16_END; ++get16_123_B2: sample = shift_down(_get_triple_s(src), 8) ^ 0x8000; goto GET16_END; ++get16_123_12_20: sample = shift_down(_get_triple(src), 4); goto GET16_END; ++get16_123_92_20: sample = shift_down(_get_triple(src), 4) ^ 0x8000; goto GET16_END; ++get16_123_32_20: sample = shift_down(_get_triple_s(src), 4); goto GET16_END; ++get16_123_B2_20: sample = shift_down(_get_triple_s(src), 4) ^ 0x8000; goto GET16_END; ++get16_123_12_18: sample = shift_down(_get_triple(src), 2); goto GET16_END; ++get16_123_92_18: sample = shift_down(_get_triple(src), 2) ^ 0x8000; goto GET16_END; ++get16_123_32_18: sample = shift_down(_get_triple_s(src), 2); goto GET16_END; ++get16_123_B2_18: sample = shift_down(_get_triple_s(src), 2) ^ 0x8000; goto GET16_END; + } + #endif + +@@ -429,8 +431,8 @@ static void *put16_labels[4 * 2 * 2] = { + + #ifdef PUT16_END + while (0) { +-put16_12_1: as_u8(dst) = sample >> 8; goto PUT16_END; +-put16_12_9: as_u8(dst) = (sample >> 8) ^ 0x80; goto PUT16_END; ++put16_12_1: as_u8(dst) = shift_down(sample, 8); goto PUT16_END; ++put16_12_9: as_u8(dst) = shift_down(sample, 8) ^ 0x80; goto PUT16_END; + put16_12_12: as_u16(dst) = sample; goto PUT16_END; + put16_12_92: as_u16(dst) = sample ^ 0x8000; goto PUT16_END; + put16_12_21: as_u16(dst) = bswap_16(sample); goto PUT16_END; +@@ -500,8 +502,8 @@ get32_12_A100: sample = (u_int32_t)bswap + get32_12_A100: sample = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto GET32_END; + get32_0123_1230: sample = as_u32c(src) << 8; goto GET32_END; + get32_0123_9230: sample = (as_u32c(src) << 8) ^ 0x80000000; goto GET32_END; +-get32_1230_3210: sample = bswap_32(as_u32c(src) >> 8); goto GET32_END; +-get32_1230_B210: sample = bswap_32((as_u32c(src) >> 8) ^ 0x80); goto GET32_END; ++get32_1230_3210: sample = bswap_32(shift_down(as_u32c(src), 8)); goto GET32_END; ++get32_1230_B210: sample = bswap_32(shift_down(as_u32c(src), 8) ^ 0x80); goto GET32_END; + get32_1234_1234: sample = as_u32c(src); goto GET32_END; + get32_1234_9234: sample = as_u32c(src) ^ 0x80000000; goto GET32_END; + get32_1234_4321: sample = bswap_32(as_u32c(src)); goto GET32_END; +@@ -568,32 +570,32 @@ static void *put32_labels[4 * 2 * 2 + 4 + + #ifdef PUT32_END + while (0) { +-put32_1234_1: as_u8(dst) = sample >> 24; goto PUT32_END; +-put32_1234_9: as_u8(dst) = (sample >> 24) ^ 0x80; goto PUT32_END; +-put32_1234_12: as_u16(dst) = sample >> 16; goto PUT32_END; +-put32_1234_92: as_u16(dst) = (sample >> 16) ^ 0x8000; goto PUT32_END; +-put32_1234_21: as_u16(dst) = bswap_16(sample >> 16); goto PUT32_END; +-put32_1234_29: as_u16(dst) = bswap_16(sample >> 16) ^ 0x80; goto PUT32_END; +-put32_1234_0123: as_u32(dst) = sx24(sample >> 8); goto PUT32_END; +-put32_1234_0923: as_u32(dst) = sx24((sample >> 8) ^ 0x800000); goto PUT32_END; ++put32_1234_1: as_u8(dst) = shift_down(sample, 24); goto PUT32_END; ++put32_1234_9: as_u8(dst) = shift_down(sample, 24) ^ 0x80; goto PUT32_END; ++put32_1234_12: as_u16(dst) = shift_down(sample, 16); goto PUT32_END; ++put32_1234_92: as_u16(dst) = shift_down(sample, 16) ^ 0x8000; goto PUT32_END; ++put32_1234_21: as_u16(dst) = bswap_16(shift_down(sample, 16)); goto PUT32_END; ++put32_1234_29: as_u16(dst) = bswap_16(shift_down(sample, 16)) ^ 0x80; goto PUT32_END; ++put32_1234_0123: as_u32(dst) = sx24(shift_down(sample, 8)); goto PUT32_END; ++put32_1234_0923: as_u32(dst) = sx24(shift_down(sample, 8) ^ 0x800000); goto PUT32_END; + put32_1234_3210: as_u32(dst) = sx24s(bswap_32(sample) << 8); goto PUT32_END; + put32_1234_3290: as_u32(dst) = sx24s((bswap_32(sample) ^ 0x80) << 8); goto PUT32_END; + put32_1234_1234: as_u32(dst) = sample; goto PUT32_END; + put32_1234_9234: as_u32(dst) = sample ^ 0x80000000; goto PUT32_END; + put32_1234_4321: as_u32(dst) = bswap_32(sample); goto PUT32_END; + put32_1234_4329: as_u32(dst) = bswap_32(sample) ^ 0x80; goto PUT32_END; +-put32_1234_123: _put_triple(dst, sample >> 8); goto PUT32_END; +-put32_1234_923: _put_triple(dst, (sample ^ 0x80000000) >> 8); goto PUT32_END; +-put32_1234_321: _put_triple_s(dst, sample >> 8); goto PUT32_END; +-put32_1234_329: _put_triple_s(dst, (sample ^ 0x80000000) >> 8); goto PUT32_END; +-put32_1234_123_20: _put_triple(dst, sample >> 12); goto PUT32_END; +-put32_1234_923_20: _put_triple(dst, (sample ^ 0x80000000) >> 12); goto PUT32_END; +-put32_1234_321_20: _put_triple_s(dst, sample >> 12); goto PUT32_END; +-put32_1234_329_20: _put_triple_s(dst, (sample ^ 0x80000000) >> 12); goto PUT32_END; +-put32_1234_123_18: _put_triple(dst, sample >> 14); goto PUT32_END; +-put32_1234_923_18: _put_triple(dst, (sample ^ 0x80000000) >> 14); goto PUT32_END; +-put32_1234_321_18: _put_triple_s(dst, sample >> 14); goto PUT32_END; +-put32_1234_329_18: _put_triple_s(dst, (sample ^ 0x80000000) >> 14); goto PUT32_END; ++put32_1234_123: _put_triple(dst, shift_down(sample, 8)); goto PUT32_END; ++put32_1234_923: _put_triple(dst, shift_down(sample ^ 0x80000000, 8)); goto PUT32_END; ++put32_1234_321: _put_triple_s(dst, shift_down(sample, 8)); goto PUT32_END; ++put32_1234_329: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 8)); goto PUT32_END; ++put32_1234_123_20: _put_triple(dst, shift_down(sample, 12)); goto PUT32_END; ++put32_1234_923_20: _put_triple(dst, shift_down(sample ^ 0x80000000, 12)); goto PUT32_END; ++put32_1234_321_20: _put_triple_s(dst, shift_down(sample, 12)); goto PUT32_END; ++put32_1234_329_20: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 12)); goto PUT32_END; ++put32_1234_123_18: _put_triple(dst, shift_down(sample, 14)); goto PUT32_END; ++put32_1234_923_18: _put_triple(dst, shift_down(sample ^ 0x80000000, 14)); goto PUT32_END; ++put32_1234_321_18: _put_triple_s(dst, shift_down(sample, 14)); goto PUT32_END; ++put32_1234_329_18: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 14)); goto PUT32_END; + } + #endif + +@@ -1079,3 +1081,4 @@ norms_32_s32s: _norms(src, dst, 32, 1, + #undef _put_triple_le + #undef _put_triple_be + ++#undef shift_down + + + + diff --git a/abs/core-testing/alsa-oss/PKGBUILD b/abs/core-testing/alsa-oss/PKGBUILD new file mode 100644 index 0000000..d70a9e9 --- /dev/null +++ b/abs/core-testing/alsa-oss/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=alsa-oss +pkgver=1.0.15 +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.15') +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=('49fb5fbae8bf955b248e46ff9c9a2aa1') diff --git a/abs/core-testing/alsa-utils/PKGBUILD b/abs/core-testing/alsa-utils/PKGBUILD new file mode 100644 index 0000000..a14e0ad --- /dev/null +++ b/abs/core-testing/alsa-utils/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=alsa-utils +pkgver=1.0.16 +pkgrel=1 +pkgdesc="An alternative implementation of Linux sound support" +arch=(i686 x86_64) +url="http://www.alsa-project.org" +depends=('alsa-lib>=1.0.16' 'dialog' 'pciutils' 'ncurses') +license=('GPL') +source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2 \ + alsa alsaconf.patch alsa.conf.d) +backup=(etc/conf.d/alsa) +md5sums=('b9f803f45e6988bb27a6bed521a949fc' + 'cce0969b0203a2bb35540fdf4f7e96ae' + '538f82650d08e901efea86c5395520df' + '366d370f874a45e67b63ce4a8b048202') + +build() { + cd $startdir/src/$pkgname-${pkgver} + patch -Np1 -i ../alsaconf.patch || return 1 + ./configure --prefix=/usr --with-curses=ncursesw + make || return 1 + make DESTDIR=$startdir/pkg install + install -D -m755 ../alsa $startdir/pkg/etc/rc.d/alsa + install -D -m644 ../alsa.conf.d $startdir/pkg/etc/conf.d/alsa +} diff --git a/abs/core-testing/alsa-utils/alsa b/abs/core-testing/alsa-utils/alsa new file mode 100755 index 0000000..2581a9a --- /dev/null +++ b/abs/core-testing/alsa-utils/alsa @@ -0,0 +1,48 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/conf.d/alsa +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Restoring ALSA Levels" + /usr/sbin/alsactl restore + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + add_daemon alsa + fi + + POWERSAVE=${POWERSAVE:-0} + if [ -e /sys/module/snd_ac97_codec/parameters/power_save \ + -a $POWERSAVE -ne 0 ]; then + echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save + echo 1 > /dev/dsp + fi + + if [ -e /sys/module/snd_hda_intel/parameters/power_save \ + -a $POWERSAVE -ne 0 ]; then + echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save + echo 1 > /dev/dsp + fi + ;; + stop) + stat_busy "Saving ALSA Levels" + /usr/sbin/alsactl store + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + rm_daemon alsa + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac diff --git a/abs/core-testing/alsa-utils/alsa.conf.d b/abs/core-testing/alsa-utils/alsa.conf.d new file mode 100644 index 0000000..1fa3d38 --- /dev/null +++ b/abs/core-testing/alsa-utils/alsa.conf.d @@ -0,0 +1,4 @@ +# Enables powersaving mode for AC97 and hda_intel audio chips. +# Set to 1 to enable powersaving. +# Set to 0 to disable powersaving (default). +POWERSAVE=0 diff --git a/abs/core-testing/alsa-utils/alsaconf.patch b/abs/core-testing/alsa-utils/alsaconf.patch new file mode 100644 index 0000000..c1d2eb2 --- /dev/null +++ b/abs/core-testing/alsa-utils/alsaconf.patch @@ -0,0 +1,21 @@ +diff -Naur alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in alsa-utils-1.0.9a/alsaconf/alsaconf.in +--- alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2005-03-24 00:24:52.000000000 -0800 ++++ alsa-utils-1.0.9a/alsaconf/alsaconf.in 2005-07-18 09:25:02.000000000 -0700 +@@ -58,6 +58,8 @@ + distribution="redhat" + elif test -f /etc/fedora-release && grep -q "Fedora" /etc/fedora-release; then + distribution="fedora" ++elif test -f /etc/arch-release && grep -q "Arch" /etc/arch-release; then ++ distribution="arch" + else + distribution="unknown" + fi +@@ -382,6 +384,8 @@ + rcalsasound=/etc/rc.d/init.d/alsasound + elif [ -x /etc/init.d/alsa ]; then + rcalsasound=/etc/init.d/alsa ++elif [ -x /etc/rc.d/alsa ]; then ++ rcalsasound=/etc/rc.d/alsa + else + rcalsasound=rcalsasound + fi diff --git a/abs/core-testing/apache/PKGBUILD b/abs/core-testing/apache/PKGBUILD new file mode 100644 index 0000000..0bd3936 --- /dev/null +++ b/abs/core-testing/apache/PKGBUILD @@ -0,0 +1,81 @@ +# $Id: PKGBUILD 4776 2008-07-09 21:51:30Z pierre $ +# Maintainer: Pierre Schmitz + +pkgname=apache +pkgver=2.2.9 +pkgrel=4 +pkgdesc="A high performance Unix-based HTTP server" +arch=('i686' 'x86_64') +options=('!libtool') +url='http://www.apache.org/dist/httpd' +license=('APACHE') +backup=(etc/httpd/conf/httpd.conf + etc/httpd/conf/extra/httpd-{autoindex,dav,default,info,languages}.conf + etc/httpd/conf/extra/httpd-{manual,mpm,multilang-errordoc}.conf + etc/httpd/conf/extra/httpd-{ssl,userdir,vhosts}.conf) +depends=('openssl>=0.9.8b' 'zlib' 'apr-util>=1.3.2-2' 'db>=4.7' 'pcre') +install='httpd.install' +source=("http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2" + 'httpd.logrotate' 'httpd' 'arch.layout') +md5sums=('3afa8137dc1999be695a20b62fdf032b' + 'f4d627c64024c1b7b95efb5ffbaa625e' + 'fb6baeced65b7cf5b80083f278adebba' + '3d659d41276ba3bfcb20c231eb254e0c') + +build() { + cd ${srcdir}/httpd-${pkgver} + + # set default user + sed -e 's#User daemon#User http#' \ + -e 's#Group daemon#Group http#' \ + -i docs/conf/httpd.conf.in || return 1 + + cat ${srcdir}/arch.layout >> config.layout + ./configure --enable-layout=Arch \ + --enable-modules=all \ + --enable-mods-shared=all \ + --enable-so \ + --enable-suexec \ + --with-suexec-caller=http \ + --with-suexec-docroot=/srv/http \ + --with-suexec-logfile=/var/log/httpd/suexec.log \ + --with-suexec-bin=/usr/sbin/suexec \ + --with-suexec-uidmin=99 --with-suexec-gidmin=99 \ + --enable-ldap --enable-authnz-ldap \ + --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \ + --enable-ssl --with-ssl \ + --enable-deflate --enable-cgid \ + --enable-proxy --enable-proxy-connect \ + --enable-proxy-http --enable-proxy-ftp \ + --enable-dbd \ + --with-apr=/usr/bin/apr-1-config \ + --with-apr-util=/usr/bin/apu-1-config \ + --with-pcre=/usr || return 1 + + make || return 1 + + make DESTDIR=${pkgdir} install || return 1 + install -D -m755 ${srcdir}/httpd ${pkgdir}/etc/rc.d/httpd + install -D -m644 ${srcdir}/httpd.logrotate ${pkgdir}/etc/logrotate.d/httpd + + # symlinks for /etc/httpd + ln -fs /var/log/httpd ${pkgdir}/etc/httpd/logs + ln -fs /var/run/httpd ${pkgdir}/etc/httpd/run + ln -fs /usr/lib/httpd/modules ${pkgdir}/etc/httpd/modules + ln -fs /usr/lib/httpd/build ${pkgdir}/etc/httpd/build + + # set sane defaults + sed -e 's#/usr/lib/httpd/modules/#modules/#' \ + -e 's|#\(Include conf/extra/httpd-multilang-errordoc.conf\)|\1|' \ + -e 's|#\(Include conf/extra/httpd-autoindex.conf\)|\1|' \ + -e 's|#\(Include conf/extra/httpd-languages.conf\)|\1|' \ + -e 's|#\(Include conf/extra/httpd-userdir.conf\)|\1|' \ + -e 's|#\(Include conf/extra/httpd-default.conf\)|\1|' \ + -i ${pkgdir}/etc/httpd/conf/httpd.conf || return 1 + + # cleanup + rm -rf ${pkgdir}/usr/share/httpd/manual + rm -rf ${pkgdir}/etc/httpd/conf/original + rm -rf ${pkgdir}/srv/http/* + rmdir ${pkgdir}/usr/bin +} diff --git a/abs/core-testing/apache/arch.layout b/abs/core-testing/apache/arch.layout new file mode 100644 index 0000000..ab59db8 --- /dev/null +++ b/abs/core-testing/apache/arch.layout @@ -0,0 +1,22 @@ + + prefix: /etc/httpd + exec_prefix: /usr + bindir: /usr/bin + sbindir: /usr/sbin + libdir: /usr/lib/httpd + libexecdir: /usr/lib/httpd/modules + mandir: /usr/share/man + sysconfdir: /etc/httpd/conf + datadir: /usr/share/httpd + installbuilddir: /usr/lib/httpd/build + errordir: /usr/share/httpd/error + iconsdir: /usr/share/httpd/icons + htdocsdir: /srv/http + manualdir: /usr/share/httpd/manual + cgidir: /srv/http/cgi-bin + includedir: /usr/include/httpd + localstatedir: /var + runtimedir: /var/run/httpd + logfiledir: /var/log/httpd + proxycachedir: /var/cache/httpd + \ No newline at end of file diff --git a/abs/core-testing/apache/httpd b/abs/core-testing/apache/httpd new file mode 100755 index 0000000..da4de25 --- /dev/null +++ b/abs/core-testing/apache/httpd @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting HTTP Daemon" + /usr/sbin/apachectl start &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon httpd + stat_done + fi + ;; + stop) + stat_busy "Stopping HTTP Daemon" + /usr/sbin/apachectl stop &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon httpd + stat_done + fi + ;; + restart) + $0 stop + sleep 3 + $0 start + ;; + reload) + if [ -f /var/run/httpd/httpd.pid ]; then + status "Reloading HTTP Configuration" kill -HUP `cat /var/run/httpd/httpd.pid` + fi + ;; + *) + echo "usage: $0 {start|stop|restart|reload}" +esac diff --git a/abs/core-testing/apache/httpd.install b/abs/core-testing/apache/httpd.install new file mode 100644 index 0000000..f72141a --- /dev/null +++ b/abs/core-testing/apache/httpd.install @@ -0,0 +1,16 @@ +post_upgrade() { + if [ $(vercmp '2.2.8' $2) -ge 0 ]; then + echo ' + ==> New default DocumentRoot + + Apache httpd uses /srv/http as default DocumentRoot. + You can still use your current DocumentRoot + + ==> New default user and group + + Instead of "nobody" apache runs as user/group "http" by default now. You might + want to adjust your httpd.conf according to this change. But you can still + run httpd as nobody. + ' + fi +} \ No newline at end of file diff --git a/abs/core-testing/apache/httpd.logrotate b/abs/core-testing/apache/httpd.logrotate new file mode 100644 index 0000000..3f9298c --- /dev/null +++ b/abs/core-testing/apache/httpd.logrotate @@ -0,0 +1,5 @@ +/var/log/httpd/*log { + postrotate + /bin/kill -HUP `cat /var/run/httpd/httpd.pid 2>/dev/null` 2> /dev/null || true + endscript +} diff --git a/abs/core-testing/apr-util/PKGBUILD b/abs/core-testing/apr-util/PKGBUILD new file mode 100644 index 0000000..cce5804 --- /dev/null +++ b/abs/core-testing/apr-util/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 4551 2008-07-08 03:25:33Z allan $ +# Maintainer: Pierre Schmitz + +pkgname=apr-util +pkgver=1.3.2 +pkgrel=2 +pkgdesc="The Apache Portable Runtime" +arch=('i686' 'x86_64') +url="http://apr.apache.org/" +depends=('apr>=1.3.2' 'gdbm' 'expat>=2.0' 'db>=4.7' 'libldap') +options=('!libtool') +license=('APACHE') +source=("http://www.apache.org/dist/apr/apr-util-${pkgver}.tar.bz2") +md5sums=('aa782fb9ced8b59c8e99419d8cdd1981') + +build() { + cd ${srcdir}/apr-util-${pkgver} + + ./configure --prefix=/usr --with-apr=/usr \ + --without-pgsql --without-mysql --without-sqlite2 --without-sqlite3 \ + --with-berkeley-db=/usr --with-gdbm=/usr --with-ldap + make || return 1 + make DESTDIR=${pkgdir} install +} diff --git a/abs/core-testing/apr/PKGBUILD b/abs/core-testing/apr/PKGBUILD new file mode 100644 index 0000000..561e8e3 --- /dev/null +++ b/abs/core-testing/apr/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 8457 2008-08-11 22:13:07Z pierre $ +# Maintainer: Pierre Schmitz + +pkgname=apr +pkgver=1.3.2 +pkgrel=2 +pkgdesc="The Apache Portable Runtime" +arch=('i686' 'x86_64') +url="http://apr.apache.org/" +depends=('e2fsprogs') +options=('!libtool') +license=('APACHE') +source=("http://www.apache.org/dist/apr/apr-${pkgver}.tar.bz2") +md5sums=('a0631c63640176371dd4a5bf13beeee8') + +build() { + cd ${srcdir}/apr-${pkgver} + + ./configure --prefix=/usr --includedir=/usr/include/apr-1 \ + --with-installbuilddir=/usr/share/apr-1/build \ + --enable-nonportable-atomics \ + --with-devrandom=/dev/urandom + make || return 1 + make DESTDIR=${pkgdir} install +} diff --git a/abs/core-testing/aspell/PKGBUILD b/abs/core-testing/aspell/PKGBUILD new file mode 100644 index 0000000..0b8a590 --- /dev/null +++ b/abs/core-testing/aspell/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 521 2008-04-20 13:00:37Z andyrtr $ +# Maintainer: dorphell +# Contributor: Jochem Kossen +pkgname=aspell +pkgver=0.60.6 +_pkgmajorver=0.60 +pkgrel=1 +pkgdesc="A Free and Open Source spell checker designed to eventually replace Ispell" +arch=(i686 x86_64) +license=('LGPL') +depends=('gcc-libs' 'ncurses') +options=(!libtool) +source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz) +install=aspell.install +url="http://aspell.net/" +md5sums=('bc80f0198773d5c05086522be67334eb') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install + ln -s ${pkgname}-${_pkgmajorver} ${startdir}/pkg/usr/lib/${pkgname} +} diff --git a/abs/core-testing/aspell/aspell.install b/abs/core-testing/aspell/aspell.install new file mode 100644 index 0000000..b635a4a --- /dev/null +++ b/abs/core-testing/aspell/aspell.install @@ -0,0 +1,8 @@ +post_install() { + echo "NOTE: aspell comes with no default dictionary" +} + +op=$1 +shift + +[ "$(type -t "$op")" = "function" ] && $op "$@" diff --git a/abs/core-testing/atk/PKGBUILD b/abs/core-testing/atk/PKGBUILD new file mode 100644 index 0000000..90ba910 --- /dev/null +++ b/abs/core-testing/atk/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Jan de Groot +pkgname=atk +pkgver=1.22.0 +pkgrel=1 +pkgdesc="A library providing a set of interfaces for accessibility" +arch=(i686 x86_64) +license=('LGPL') +depends=('glib2>=2.16.0') +makedepends=('pkgconfig') +options=('!libtool') +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.22/${pkgname}-${pkgver}.tar.bz2) +url='http://www.gtk.org/' +md5sums=('06a2b39a22d5ca35c47435da6b9643ac') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/attr/PKGBUILD b/abs/core-testing/attr/PKGBUILD new file mode 100644 index 0000000..3100b24 --- /dev/null +++ b/abs/core-testing/attr/PKGBUILD @@ -0,0 +1,37 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski +pkgname=attr +pkgver=2.4.41 +pkgrel=10 +pkgdesc="Extended attribute support library for ACL support" +arch=(i686 x86_64) +url="http://oss.sgi.com/projects/xfs/" +license=('LGPL') +groups=('base') +depends=('glibc') +makedepends=('gettext') +replaces=('xfsattr') +provides=('xfsattr') +conflicts=('xfsattr') +options=('!libtool') +source=(ftp://oss.sgi.com/projects/xfs/cmd_tars/attr_${pkgver}-1.tar.gz) +md5sums=('867eb6e8863e39900382d77e2b538696') + +build() { + cd $startdir/src/attr-$pkgver + autoconf + ./configure --prefix=/usr + sed -i -e 's/man2//g' man/Makefile + make || return 1 + make prefix=${startdir}/pkg/usr install install-lib install-dev + + # tidy up + cd "${startdir}/pkg" + + mkdir -v lib + mv -v usr/lib/libattr.so* lib/ + ln -sv ../../lib/libattr.so.1 usr/lib/libattr.so + + mv -v usr/libexec/libattr.{a,la} usr/lib/ + rm -rvf usr/libexec +} diff --git a/abs/core-testing/aufs-utils/PKGBUILD b/abs/core-testing/aufs-utils/PKGBUILD new file mode 100644 index 0000000..b845405 --- /dev/null +++ b/abs/core-testing/aufs-utils/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 2265 2008-05-30 12:12:12Z paul $ +# Contributor: Paul Mattal +# Maintainer: Paul Mattal +pkgname=aufs-utils +pkgver=20080527 +pkgrel=1 +_kernver='2.6.26-ARCH' +pkgdesc="Another Unionfs Implementation that supports NFS branches" +arch=('i686' 'x86_64') +url="http://aufs.sourceforge.net/" +license=('GPL2') +depends=('glibc') +source=(ftp://ftp.archlinux.org/other/aufs/aufs-$pkgver.tar.gz) +md5sums=('4378221aa5763d1f4408a0bbb0e80f0a') + +build() { + cd $startdir/src/aufs || return 1 + + # configure for NFS by: + # 1) configure local.mk to use FILP and LHASH + sed -i 's|CONFIG_AUFS_PUT_FILP_PATCH =|CONFIG_AUFS_PUT_FILP_PATCH = y|' \ + local.mk || return 1 + sed -i 's|CONFIG_AUFS_LHASH_PATCH =|CONFIG_AUFS_LHASH_PATCH = y|' \ + local.mk || return 1 + # 2) configure local.mk NOT to use FAKE_DM + sed -i 's|CONFIG_AUFS_FAKE_DM = y|CONFIG_AUFS_FAKE_DM = |' \ + local.mk || return 1 + + # build + make KDIR=/usr/src/linux-$_kernver/ -f local.mk || return 1 + + # install + install -D -m755 util/aufind.sh $startdir/pkg/usr/bin/aufind.sh || return 1 + install -D -m755 util/aulchown $startdir/pkg/usr/bin/aulchown || return 1 + install -D -m755 util/auplink $startdir/pkg/usr/bin/auplink || return 1 + install -D -m755 util/mount.aufs $startdir/pkg/sbin/mount.aufs || return 1 + install -D -m755 util/umount.aufs $startdir/pkg/sbin/umount.aufs || return 1 +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/aufs/PKGBUILD b/abs/core-testing/aufs/PKGBUILD new file mode 100644 index 0000000..57b6e24 --- /dev/null +++ b/abs/core-testing/aufs/PKGBUILD @@ -0,0 +1,57 @@ +# $Id: PKGBUILD 5885 2008-07-21 19:28:11Z thomas $ +# Contributor: Paul Mattal +# Maintainer: Paul Mattal +pkgname=aufs +pkgver=20080527 +pkgrel=2 +_kernver='2.6.26-ARCH' +pkgdesc="Another Unionfs Implementation that supports NFS branches" +arch=('i686' 'x86_64') +url="http://aufs.sourceforge.net/" +license=('GPL2') +depends=('kernel26>=2.6.26-1' 'kernel26<=2.6.27' 'glibc' 'aufs-utils') +install=$pkgname.install +source=(ftp://ftp.archlinux.org/other/aufs/$pkgname-$pkgver.tar.gz) +options=(!libtool !makeflags) +md5sums=('4378221aa5763d1f4408a0bbb0e80f0a') + +build() { + cd $startdir/src/$pkgname || return 1 + + # use splice functions exported by unionfs kernel patch + # - important for loopback fs mounts + sed s'|#if.*KERNEL_VERSION(2, 6, 26).*|#if 0|' -i fs/aufs25/vfsub.h \ + || return 1 + sed -i 's|CONFIG_AUFS_SPLICE_PATCH =|CONFIG_AUFS_SPLICE_PATCH = y|' \ + local.mk || return 1 + + # patch for spin_lock conflict with the new unionfs patch + sed s'|#if.*KERNEL_VERSION(2, 6, 26).*|#if 0|' -i fs/aufs25/cpup.c \ + || return 1 + + sed -i 's|.*CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \ + local.mk || return 1 + + # configure for NFS by: + # 1) configure local.mk to use FILP and LHASH + sed -i 's|CONFIG_AUFS_PUT_FILP_PATCH =|CONFIG_AUFS_PUT_FILP_PATCH = y|' \ + local.mk || return 1 + sed -i 's|CONFIG_AUFS_LHASH_PATCH =|CONFIG_AUFS_LHASH_PATCH = y|' \ + local.mk || return 1 + # 2) configure local.mk NOT to use FAKE_DM + sed -i 's|CONFIG_AUFS_FAKE_DM = y|CONFIG_AUFS_FAKE_DM = |' \ + local.mk || return 1 + + # build + make KDIR=/usr/src/linux-$_kernver/ -f local.mk || return 1 + + # install + install -D -m644 fs/aufs25/aufs.ko \ + $startdir/pkg/lib/modules/$_kernver/fs/aufs25/aufs.ko || return 1 + + # tweak the install script for the right kernel version + sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \ + $startdir/$pkgname.install || return 1 +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/aufs/aufs.install b/abs/core-testing/aufs/aufs.install new file mode 100644 index 0000000..42d039a --- /dev/null +++ b/abs/core-testing/aufs/aufs.install @@ -0,0 +1,31 @@ +pre_install() { + /bin/true +} + +post_install() { + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + KERNEL_VERSION=2.6.26-ARCH + 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.26-ARCH + 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.26-ARCH + depmod -v $KERNEL_VERSION > /dev/null 2>&1 + /bin/true +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/b43-fwcutter/PKGBUILD b/abs/core-testing/b43-fwcutter/PKGBUILD new file mode 100644 index 0000000..a1f73b8 --- /dev/null +++ b/abs/core-testing/b43-fwcutter/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Thomas Baechler + +pkgname=b43-fwcutter +pkgver=011 +pkgrel=1 +pkgdesc="firmware extractor for the bcm43xx kernel module" +url="http://linuxwireless.org/en/users/Drivers/b43" +depends=('glibc') +license=('GPL') +arch=('i686' 'x86_64') +source=(http://bu3sch.de/b43/fwcutter/${pkgname}-${pkgver}.tar.bz2) +md5sums=('3db2f4de85a459451f5b391cf67a8d44') + +build() +{ + cd $startdir/src/$pkgname-$pkgver + make || return 1 + install -D -m755 b43-fwcutter $startdir/pkg/usr/bin/b43-fwcutter || return 1 + install -D -m644 b43-fwcutter.1 $startdir/pkg/usr/share/man/man1/b43-fwcutter.1 || return 1 +} diff --git a/abs/core-testing/base.list b/abs/core-testing/base.list new file mode 100755 index 0000000..004186f --- /dev/null +++ b/abs/core-testing/base.list @@ -0,0 +1,98 @@ +base acl +base attr +base bash +base binutils +base bzip2 +base ca-certificates +base coreutils +base cpio +base cracklib +base cryptsetup +base dash +base db +base dcron +base device-mapper +base dhcpcd +base dialog +base dmapi +base e2fsprogs +base file +base filesystem +base findutils +base gawk +base gcc-libs +base gdbm +base gen-init-cpio +base gettext +base glibc +base grep +base groff +base grub +base gzip +base hdparm +base hwdetect +base initscripts +base iputils +base jfsutils +base kbd +base kernel-headers +base kernel26 +base klibc +base klibc-extras +base klibc-kbd +base klibc-module-init-tools +base klibc-udev +base less +base libarchive +base libdownload +base libgcrypt +base libgpg-error +base libpcap +base libusb +base licenses +base logrotate +base lvm2 +base lzo2 +base mailx +base man +base man-pages +base mdadm +base mkinitcpio +base mlocate +base module-init-tools +base nano +base ncurses +base net-tools +base openssl +base pacman +base pam +base pciutils +base pcmciautils +base pcre +base perl +base popt +base ppp +base procinfo +base procps +base psmisc +base readline +base reiserfsprogs +base rp-pppoe +base sdparm +base sed +base shadow +base sysfsutils +base syslog-ng +base sysvinit +base tar +base tcp_wrappers +base tzdata +base udev +base usbutils +base util-linux-ng +base vi +base wget +base which +base wpa_supplicant +base xfsprogs +base zlib diff --git a/abs/core-testing/bash/PKGBUILD b/abs/core-testing/bash/PKGBUILD new file mode 100644 index 0000000..24f80ef --- /dev/null +++ b/abs/core-testing/bash/PKGBUILD @@ -0,0 +1,87 @@ +# $Id: PKGBUILD 5542 2008-07-18 15:21:56Z aaron $ +# Maintainer: Aaron Griffin + +pkgname=bash +_patchlevel=039 +pkgver=3.2.$_patchlevel +pkgrel=11 +pkgdesc="The GNU Bourne Again shell" +arch=(i686 x86_64) +license=('GPL') +url="http://www.gnu.org/software/bash/bash.html" +groups=('base') +backup=(etc/profile.bash etc/skel/.bashrc etc/skel/.bash_profile) +depends=('readline>=5.2' 'glibc') +provides=('sh') +source=(http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz + bash-noinfo.patch profile.bash bashrc) +for p in $(seq -w 001 $_patchlevel); do + source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$p) +done +md5sums=('00bfa16d58e034e3c2aa27f390390d30' + 'f2a3cf51e58f9b82af50b861191d96fd' + 'c2fae355facefcac8a732cce877da194' + '9451109f3fe09d6381cbf36de9fbf06f' + 'd8e10c754f477e3f3a581af566b89301' + 'd38a5288b2f0ea6c9ac76b66cc74ef7d' + '0b90d37911827d8cb95f3b4353cc225e' + '8062f3a59631f58d78b180d83759b68a' + '585b5943fadf0875ced243b245adde58' + '1d5732e01ea938aeed42f3def131fa4d' + 'dcd0cc5d801607827f7c851e72b0eabc' + 'bb3c7dd11198c0ab93d0e960bebf6256' + '434a6f29b0ca5f1ab784b2437ae8eaed' + '2efff04dd246fcf63bd4b99f77c9a081' + '1dd104342f6920dfaf5efb3131e922e0' + '4f24b696ab78bdfae4f9cb7eb59b835d' + '7c40addbf1187a26ae1c8373ed383442' + '28e88c9f8679e99ac590d4a4a8227c56' + '7c17d29675bd0d49470f162774385f80' + 'a1edaa98b4449fe2205fa75448b7b105' + '889ed119bbf9d363660b9a0127f35efa' + 'a7d3f85fa687d2c1b5a134839f6d395d' + 'f0399da4007e46fc5820ce25d07425b9' + 'b76602281c3104d904fd064510fe0c21' + '923374ae4403c92820f711e62e1d01a5' + 'c82d3bd14e373878b2a680dce18d1596' + '987c949a77b4b0ffe4a2597141e77635' + '5a2b976e761ab83f0fc7daae11451b86' + '08668dc2825f65eced9cac6b09ce1b45' + 'f35b2b217f088ff009f956894550d41d' + 'b5ff2b9610c61290f773c4b02cc1a37d' + '016f5b56c93404d32aea09385f0fc13e' + 'a81420626d4d88d0dce2ffac0ac56341' + '11f91baf970c132949f9072ee93f2ea6' + 'f6bbc1e8ec0246740731c728ef476191' + '8180ec936770579bce69f0816c2dd878' + '3cec33c3711860c4c6b7614afeec7870' + '7bc6c5b5f38b7027152f8db0458a2e14' + 'a2db61fe90e39371d0e6cd2285ec9208' + '95c70c7ae9de5bd3659c86284be7fb76' + '62b876a3d7cd192cc8db2476fbb6b7b9' + 'aca3afc341bd3e5a0d8a3b4ca40dbb3f' + 'e240c34f979b64bcb83c5f6567110bb1') + +build() { + cd ${startdir}/src/${pkgname}-3.2 + for p in ../bash32-*; do + msg "applying patch ${p}" + patch -Np0 -i ${p} || return 1 + done + patch -Np1 -i ../bash-noinfo.patch || return 1 + ./configure --prefix=/usr --with-curses --enable-readline \ + --without-bash-malloc --with-installed-readline \ + --bindir=/bin --mandir=/usr/share/man + make || return 1 + make DESTDIR=${startdir}/pkg install + + install -D -m644 ${startdir}/src/profile.bash ${startdir}/pkg/etc/profile.bash + + # for now, bash is our default /bin/sh + cd ${startdir}/pkg/bin + ln -s bash sh + + mkdir -p $startdir/pkg/etc/skel/ + install -D -m644 $startdir/src/bashrc $startdir/pkg/etc/skel/.bashrc + echo ". \$HOME/.bashrc" >$startdir/pkg/etc/skel/.bash_profile +} diff --git a/abs/core-testing/bash/bash-noinfo.patch b/abs/core-testing/bash/bash-noinfo.patch new file mode 100644 index 0000000..856ec80 --- /dev/null +++ b/abs/core-testing/bash/bash-noinfo.patch @@ -0,0 +1,12 @@ +diff -Naur bash-3.0-orig/doc/Makefile.in bash-3.0/doc/Makefile.in +--- bash-3.0-orig/doc/Makefile.in 2004-07-27 05:57:48.000000000 -0700 ++++ bash-3.0/doc/Makefile.in 2005-02-11 22:44:49.000000000 -0800 +@@ -220,7 +220,7 @@ + $(SHELL) $(SUPPORT_SRCDIR)/mkinstalldirs $(DESTDIR)$(htmldir) ; \ + fi + +-install: info installdirs bash.info ++install: installdirs + -$(INSTALL_DATA) $(srcdir)/bash.1 $(DESTDIR)$(man1dir)/bash${man1ext} + -$(INSTALL_DATA) $(srcdir)/bashbug.1 $(DESTDIR)$(man1dir)/bashbug${man1ext} + # uncomment the next line to install the builtins man page diff --git a/abs/core-testing/bash/bashrc b/abs/core-testing/bash/bashrc new file mode 100644 index 0000000..fcabce0 --- /dev/null +++ b/abs/core-testing/bash/bashrc @@ -0,0 +1,3 @@ +alias ls='ls --color=auto' +PS1='[\u@\h \W]\$ ' + diff --git a/abs/core-testing/bash/profile b/abs/core-testing/bash/profile new file mode 100644 index 0000000..ca1d402 --- /dev/null +++ b/abs/core-testing/bash/profile @@ -0,0 +1,35 @@ +# +# /etc/profile +# + +export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin" + +export MANPATH="/usr/man:/usr/X11R6/man" +export LESSCHARSET="latin1" +export INPUTRC="/etc/inputrc" +export LESS="-R" + +export LC_COLLATE="C" + +export COLUMNS LINES + +export PS1='[\u@\h \W]\$ ' +export PS2='> ' + +umask 022 + +if [ "$TERM" = "xterm" -o "$TERM" = "xterm-color" -o "$TERM" = "rxvt" -o "$TERM" = "xterm-xfree86" ]; then + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"' +fi + +# load profiles from /etc/profile.d +# (to disable a profile, just remove execute permission on it) +if [ `ls -A1 /etc/profile.d/ | wc -l` -gt 0 ]; then + for profile in /etc/profile.d/*.sh; do + if [ -x $profile ]; then + . $profile + fi + done + unset profile +fi +# End of file diff --git a/abs/core-testing/bash/profile.bash b/abs/core-testing/bash/profile.bash new file mode 100644 index 0000000..8a7e1aa --- /dev/null +++ b/abs/core-testing/bash/profile.bash @@ -0,0 +1,25 @@ +# +# /etc/profile.bash +# Global settings for bash shells +# + +PS1='[\u@\h \W]\$ ' +PS2='> ' +PS3='> ' +PS4='+ ' + +export PS1 PS2 PS3 PS4 + +#In the future we may want to add more ulimit entries here, +# in the offchance that /etc/security/limits.conf is skipped +ulimit -Sc 0 #Don't create core files + +if test "$TERM" = "xterm" -o \ + "$TERM" = "xterm-color" -o \ + "$TERM" = "xterm-256color" -o \ + "$TERM" = "rxvt" -o \ + "$TERM" = "rxvt-unicode" -o \ + "$TERM" = "xterm-xfree86"; then + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"' + export PROMPT_COMMAND +fi diff --git a/abs/core-testing/bc/PKGBUILD b/abs/core-testing/bc/PKGBUILD new file mode 100644 index 0000000..88a85df --- /dev/null +++ b/abs/core-testing/bc/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell + +pkgname=bc +pkgver=1.06 +pkgrel=4 +pkgdesc="An arbitrary precision calculator language" +arch=(i686 x86_64) +license=('GPL') +depends=('readline') +replaces=(bc-readline) +conflicts=(bc-readline) +source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz + build-fix.patch) +md5sums=('d44b5dddebd8a7a7309aea6c36fda117' 'fc7ecbd9e55ef04c6d3a495692626116') + +build() { + CFLAGS="$CFLAGS -O3" + cd ${startdir}/src/${pkgname}-${pkgver} + patch -Np1 -i ${startdir}/src/build-fix.patch || return 1 + ./configure --prefix=/usr --with-readline + make LEX="flex -I" || return 1 + make DESTDIR=${startdir}/pkg install +} diff --git a/abs/core-testing/bc/build-fix.patch b/abs/core-testing/bc/build-fix.patch new file mode 100644 index 0000000..98a4082 --- /dev/null +++ b/abs/core-testing/bc/build-fix.patch @@ -0,0 +1,13 @@ +diff -wbBur bc-1.06/bc/scan.l bc-1.06.my/bc/scan.l +--- bc-1.06/bc/scan.l 2000-09-13 22:25:47 +0400 ++++ bc-1.06.my/bc/scan.l 2006-12-25 12:39:34 +0300 +@@ -143,7 +143,9 @@ + + /* Definitions for readline access. */ + extern FILE *rl_instream; ++#if 0 + _PROTOTYPE(char *readline, (char *)); ++#endif + + /* rl_input puts upto MAX characters into BUF with the number put in + BUF placed in *RESULT. If the yy input file is the same as diff --git a/abs/core-testing/bigreqsproto/PKGBUILD b/abs/core-testing/bigreqsproto/PKGBUILD new file mode 100644 index 0000000..2b2bc95 --- /dev/null +++ b/abs/core-testing/bigreqsproto/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot + +pkgname=bigreqsproto +pkgver=1.0.2 +pkgrel=1 +pkgdesc="X11 Big Requests extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +md5sums=('95c29d9d10bf2868996c0c47a3b9a8dc') +sha1sums=('8f6c112f607a137dce5d8958753c770ac3f06c14') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} + diff --git a/abs/core-testing/binutils/PKGBUILD b/abs/core-testing/binutils/PKGBUILD new file mode 100644 index 0000000..f958da6 --- /dev/null +++ b/abs/core-testing/binutils/PKGBUILD @@ -0,0 +1,67 @@ +# $Id: PKGBUILD 2707 2008-06-12 14:03:09Z andyrtr $ +# Maintainer: judd + +# compile always twice: first binutils, then gcc, then binutils again + +pkgname=binutils +pkgver=2.18 +pkgrel=17 +_date=20080610 +pkgdesc="A set of programs to assemble and manipulate binary and object files" +arch=('i686' 'x86_64') +url="http://sources.redhat.com/binutils" +license=('GPL') +groups=('base') +options=('!libtool' '!distcc' '!ccache') +depends=('glibc>=2.8-1') +makedepends=('texinfo>=4.12-2') +source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2) +md5sums=('9847b4141a1c99558cfd88dd65182566') + +build() { + # for cvs checkout +# mkdir ${startdir}/src/${pkgname}-${_date} +# cd ${startdir}/src/${pkgname}-${_date} +# export _TAG=binutils-2_18-branch +# export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src' +# cvs -z9 co -r $_TAG binutils || return 1 +# cd src && tar -cvjf ../binutils-2.18_${_date}.tar.bz2 * +# return 1 + + cd ${startdir}/src + autoconf + + mkdir build + cd build + + CC="gcc -L`pwd`/bfd/.libs/" + if [ "${CARCH}" = "x86_64" ]; then + ../configure --prefix=/usr --enable-shared --enable-64-bit-bfd --disable-multilib + else + ../configure --prefix=/usr --enable-shared + fi + + # This checks the host environment and makes sure all the necessary tools are available to compile Binutils. + make configure-host || return 1 + + make tooldir=${startdir}/pkg/usr || return 1 + make prefix=${startdir}/pkg/usr tooldir=${startdir}/pkg/usr install + install -m 644 ../include/libiberty.h ${startdir}/pkg/usr/include + + if [ "${CARCH}" = "x86_64" ]; then + # Rebuild libiberty.a with -fPIC + make -C libiberty clean + make CFLAGS="$CFLAGS -fPIC" -C libiberty + install -m 644 libiberty/libiberty.a ${startdir}/pkg/usr/lib + # Rebuild libbfd.a with -fPIC + make -C bfd clean + make CFLAGS="$CFLAGS -fPIC" -C bfd + install -m 644 bfd/libbfd.a ${startdir}/pkg/usr/lib + fi + + rm -f ${startdir}/pkg/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + + # Remove these symlinks, with binutils prereleases they are not ABI stable. + # Programs should compile static to the .a file. + rm -f ${startdir}/pkg/usr/lib/lib{bfd,opcodes}.so +} diff --git a/abs/core-testing/bzip2/PKGBUILD b/abs/core-testing/bzip2/PKGBUILD new file mode 100644 index 0000000..bd3b1c2 --- /dev/null +++ b/abs/core-testing/bzip2/PKGBUILD @@ -0,0 +1,47 @@ +# $Id: PKGBUILD 7561 2008-08-02 22:14:50Z jgc $ +# Maintainer: Judd + +pkgname=bzip2 +pkgver=1.0.5 +pkgrel=12 +pkgdesc="A high-quality data compression program" +arch=(i686 x86_64) +license=('custom') +url="http://sources.redhat.com/bzip2" +groups=('base') +depends=('glibc') +source=(http://www.bzip.org/$pkgver/bzip2-$pkgver.tar.gz) + +build() { + cd $startdir/src/$pkgname-$pkgver + mkdir -p $startdir/pkg/bin $startdir/pkg/usr/share/man/man1 + mkdir -p $startdir/pkg/usr/include $startdir/pkg/usr/lib + mkdir -p $startdir/pkg/lib + # add large-file support + sed -e 's/^CFLAGS=\(.*\)$/CFLAGS=\1 \$(BIGFILES)/' -i ./Makefile-libbz2_so + make -f Makefile-libbz2_so || return 1 + make bzip2recover libbz2.a || return 1 + ln -s libbz2.so.1.0.4 libbz2.so + ln -s libbz2.so.1.0.4 libbz2.so.1 + cp bzip2-shared $startdir/pkg/bin/bzip2 + cp bzip2recover $startdir/pkg/bin + cp bzip2.1 $startdir/pkg/usr/share/man/man1 + mkdir -p $startdir/pkg/usr/include + cp bzlib.h $startdir/pkg/usr/include + cp -a libbz2.so* $startdir/pkg/lib + rm -f $startdir/pkg/usr/lib/libbz2.a + cp libbz2.a $startdir/pkg/usr/lib + cd $startdir/pkg/usr/lib + ln -sf ../../lib/libbz2.so + cd $startdir/pkg/bin + ln -sf bzip2 bunzip2 + ln -sf bzip2 bzcat + cd $startdir/pkg/usr/share/man/man1 + ln -sf bzip2.1 bunzip2.1 + ln -sf bzip2.1 bzcat.1 + ln -sf bzip2.1 bzip2recover.1 + + mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname} + install -m644 ${startdir}/src/${pkgname}-${pkgver}/LICENSE ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE +} +md5sums=('3c15a0c8d1d3ee1c46a1634d00617b1a') diff --git a/abs/core-testing/ca-certificates/PKGBUILD b/abs/core-testing/ca-certificates/PKGBUILD new file mode 100644 index 0000000..03871c6 --- /dev/null +++ b/abs/core-testing/ca-certificates/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 9715 2008-08-18 10:20:37Z pierre $ +# Maintainer: Pierre Schmitz + +pkgname=ca-certificates +pkgver=20080809 +pkgrel=13 +pkgdesc='Common CA certificates' +arch=('i686' 'x86_64') +url='http://packages.qa.debian.org/c/ca-certificates.html' +license=('MPL' 'GPL') +source=("http://ftp.debian.org/debian/pool/main/c/${pkgname}/${pkgname}_${pkgver}.tar.gz") +depends=('bash' 'run-parts' 'openssl' 'findutils' 'coreutils' 'sed') +makedepends=('ruby') +groups=('base') +install=ca-certificates.install +backup=('etc/ca-certificates.conf') +md5sums=('c155f5059006b94ad0aea7018161ab37') + +build() { + cd $srcdir/$pkgname + + install -d -m755 $pkgdir/{etc/ca-certificates/update.d,usr/{sbin,share/ca-certificates}} + install -D -m644 sbin/update-ca-certificates.8 $pkgdir/usr/share/man/man8/update-ca-certificates.8 + make + make install DESTDIR=$pkgdir + + ( + echo "# Automatically generated by ${pkgname}-${pkgver}-${pkgrel}" + echo "# " + cd $pkgdir/usr/share/ca-certificates + find . -name '*.crt' | sort | cut -b3- + ) > $pkgdir/etc/ca-certificates.conf +} diff --git a/abs/core-testing/ca-certificates/ca-certificates.install b/abs/core-testing/ca-certificates/ca-certificates.install new file mode 100644 index 0000000..3a7ac28 --- /dev/null +++ b/abs/core-testing/ca-certificates/ca-certificates.install @@ -0,0 +1,7 @@ +post_install() { + usr/sbin/update-ca-certificates --fresh +} + +post_upgrade() { + post_install +} diff --git a/abs/core-testing/cairo/PKGBUILD b/abs/core-testing/cairo/PKGBUILD new file mode 100644 index 0000000..16f38b3 --- /dev/null +++ b/abs/core-testing/cairo/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 491 2008-04-20 11:39:47Z jgc $ +# Maintainer: Jan de Groot +# Contributor: Brice Carpentier + +pkgname=cairo +pkgver=1.6.4 +pkgrel=1 +pkgdesc="Cairo vector graphics library" +arch=(i686 x86_64) +license=('LGPL' 'MPL') +url="http://cairographics.org/" +depends=('libpng>=1.2.25' 'libxrender' 'fontconfig>=2.5.0' 'pixman>=0.10.0') +makedepends=('pkgconfig') +options=('!libtool') +source=(http://cairographics.org/releases/${pkgname}-${pkgver}.tar.gz) +md5sums=('a198d509f9e3a35b78de8bb02174ebb9') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/cdparanoia/ChangeLog b/abs/core-testing/cdparanoia/ChangeLog new file mode 100644 index 0000000..f1873ff --- /dev/null +++ b/abs/core-testing/cdparanoia/ChangeLog @@ -0,0 +1,18 @@ +2008-08-07 Alexander Fehr + + * cdparanoia-10.1-1: + New upstream release. + Changed license to GPL. + Added !makeflags option. + +2008-07-07 Alexander Fehr + + * cdparanoia-10.0-1: + New upstream release. + New maintainer. + Added arch variable. + Changed license to GPL3. + Fixed man page location. + Removed cdparanoia.patch. + Removed gcc34.patch. + Added ChangeLog. diff --git a/abs/core-testing/cdparanoia/PKGBUILD b/abs/core-testing/cdparanoia/PKGBUILD new file mode 100644 index 0000000..a29bac7 --- /dev/null +++ b/abs/core-testing/cdparanoia/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 8181 2008-08-08 15:48:07Z alexanderf $ +# Maintainer: Alexander Fehr + +pkgname=cdparanoia +pkgver=10.1 +pkgrel=1 +pkgdesc="Compact Disc Digital Audio extraction tool" +arch=('i686' 'x86_64') +url="http://www.xiph.org/paranoia/" +license=('GPL') +depends=('glibc') +options=('!makeflags') +source=(http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-$pkgver.src.tgz) +md5sums=('abf410217c4ba42f927bfd9d7b86e163') + +build() { + cd "$srcdir/cdparanoia-III-$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 +} diff --git a/abs/core-testing/cdrdao/PKGBUILD b/abs/core-testing/cdrdao/PKGBUILD new file mode 100644 index 0000000..ff79afd --- /dev/null +++ b/abs/core-testing/cdrdao/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell +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/core-testing/cdrdao/cdrdao-1.2.2-gcc43.patch b/abs/core-testing/cdrdao/cdrdao-1.2.2-gcc43.patch new file mode 100644 index 0000000..f6707a9 --- /dev/null +++ b/abs/core-testing/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 +## +## 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 + #endif + #include ++#include + + #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 ++#include + + #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 + #include + #include ++#include + #include + #include + #include +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 + #include + #include ++#include + + #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 ++#include + #include + #include + +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 + #include ++#include + + TextEdit::TextEdit(const char *sample) : Gtk::Entry() + { diff --git a/abs/core-testing/cdrdao/gcc4.patch b/abs/core-testing/cdrdao/gcc4.patch new file mode 100644 index 0000000..8fc84b7 --- /dev/null +++ b/abs/core-testing/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/core-testing/cdrkit/ChangeLog b/abs/core-testing/cdrkit/ChangeLog new file mode 100644 index 0000000..b09c057 --- /dev/null +++ b/abs/core-testing/cdrkit/ChangeLog @@ -0,0 +1,10 @@ +2008-07-14 Alexander Fehr + + * cdrkit-1.1.8-1: + New upstream release. + New maintainer. + Changed license to GPL2. + Added dependency on bzip2. + Removed replaces cdrtools. + Cleaned up cdrtools compatibility symlinks. + Added ChangeLog. diff --git a/abs/core-testing/cdrkit/PKGBUILD b/abs/core-testing/cdrkit/PKGBUILD new file mode 100644 index 0000000..1f8bfa8 --- /dev/null +++ b/abs/core-testing/cdrkit/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 5822 2008-07-21 11:34:04Z alexanderf $ +# Maintainer: Alexander Fehr + +pkgname=cdrkit +pkgver=1.1.8 +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=('libcap' 'file' 'bzip2') +makedepends=('cmake') +provides=('cdrtools') +conflicts=('cdrtools') +source=(http://cdrkit.org/releases/cdrkit-$pkgver.tar.gz) +md5sums=('97a9ea4e1bf59beb12aca649958d8c6c') + +build() { + cd "$srcdir/cdrkit-$pkgver" + + make || return 1 + 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/core-testing/compositeproto/PKGBUILD b/abs/core-testing/compositeproto/PKGBUILD new file mode 100644 index 0000000..5ccaa8f --- /dev/null +++ b/abs/core-testing/compositeproto/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Alexander Baldeck +# Contributor: Jan de Groot +pkgname=compositeproto +pkgver=0.4 +pkgrel=1 +pkgdesc="X11 Composite extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=(fixesproto) +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} + +md5sums=('6281344d656d4e0c8e9db4918efe3d1d') diff --git a/abs/core-testing/coreutils/PKGBUILD b/abs/core-testing/coreutils/PKGBUILD new file mode 100644 index 0000000..bb35755 --- /dev/null +++ b/abs/core-testing/coreutils/PKGBUILD @@ -0,0 +1,62 @@ +# $Id: PKGBUILD 2936 2008-06-16 06:21:37Z andyrtr $ +# Maintainer: judd +pkgname=coreutils +pkgver=6.12 +pkgrel=10 +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>=2.7-9' 'shadow>=4.0.18.2-2' 'pam>=1.0.1-1' 'acl>=2.2.47-1') +provides=('mktemp') +conflicts=('mktemp') +replaces=('sh-utils' 'fileutils' 'textutils' 'mktemp') +backup=('etc/pam.d/su') +options=('!emptydirs') +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz + coreutils-i18n.patch + coreutils-uname.patch + coreutils-pam.patch + coreutils-6.10-configuration.patch + su) +md5sums=('2ca9ac69823dbd567b905a9e9f53c4f6' + '64991a860ddb98a9b7a2a5a0221a399a' + '18d3ba178e2691242287b59bd81aedb9' + '8810a22cdc05d502a69b59511e9abf79' + 'e0f3edab474a4c96591c4f94a7962c9b' + 'fa85e5cce5d723275b14365ba71a8aad') + +build() { + cd $startdir/src/$pkgname-$pkgver + + # only needed if new autoconf 2.62 is used + autoreconf + + # added pam patch and i18n patch from fedora cvs + patch -Np1 -i ../coreutils-pam.patch || return 1 + patch -Np1 -i ../coreutils-i18n.patch || return 1 + patch -Np1 -i ../coreutils-6.10-configuration.patch || return 1 + # from gentoo portage + patch -Np1 -i ../coreutils-uname.patch || return 1 + # make head and tail recognize the old syntax (eg, tail -10) + export DEFAULT_POSIX2_VERSION=199209 + + autoconf + ./configure --prefix=/usr ac_cv_func_openat=no --enable-install-program=su --enable-pam + make || return 1 + make DESTDIR=$startdir/pkg install + rm -f $startdir/pkg/usr/bin/hostname $startdir/pkg/usr/share/man/man1/hostname.1 || return 1 + rm -f $startdir/pkg/usr/bin/uptime $startdir/pkg/usr/share/man/man1/uptime.1 || return 1 + rm -f $startdir/pkg/usr/bin/groups $startdir/pkg/usr/share/man/man1/groups.1 || return 1 + rm -f $startdir/pkg/usr/bin/kill $startdir/pkg/usr/share/man/man1/kill.1|| return 1 + cd $startdir/pkg/usr/bin + mkdir -p $startdir/pkg/bin $startdir/pkg/sbin $startdir/pkg/usr/sbin + mv su date echo false pwd stty true uname cat tr cut readlink ../../bin + mv dd cp df du ln ls mv rm dir sync vdir chgrp chmod chown ../../bin + mv mkdir mknod rmdir shred touch mkfifo dircolors install sleep ../../bin + mv chroot ../sbin + ln -sf test [ + ln -sf /bin/sleep $startdir/pkg/usr/bin/sleep + install -D -m644 $startdir/src/su $startdir/pkg/etc/pam.d/su +} diff --git a/abs/core-testing/coreutils/coreutils-6.10-configuration.patch b/abs/core-testing/coreutils/coreutils-6.10-configuration.patch new file mode 100644 index 0000000..f80ab84 --- /dev/null +++ b/abs/core-testing/coreutils/coreutils-6.10-configuration.patch @@ -0,0 +1,62 @@ +diff -urN coreutils-6.12-orig/tests/misc/cut coreutils-6.12/tests/misc/cut +--- coreutils-6.12-orig/tests/misc/cut 2008-05-17 08:41:11.000000000 +0200 ++++ coreutils-6.12/tests/misc/cut 2008-06-02 11:13:08.000000000 +0200 +@@ -26,7 +26,7 @@ + my $prog = 'cut'; + my $try = "Try \`$prog --help' for more information.\n"; + my $from_1 = "$prog: fields and positions are numbered from 1\n$try"; +-my $inval = "$prog: invalid byte or field list\n$try"; ++my $inval = "$prog: invalid byte, character or field list\n$try"; + my $no_endpoint = "$prog: invalid range with no endpoint: -\n$try"; + + my @Tests = +@@ -140,8 +140,8 @@ + ['od-overlap5', '-b1-3,1-4', '--output-d=:', {IN=>"abcde\n"}, {OUT=>"abcd\n"}], + + # None of the following invalid ranges provoked an error up to coreutils-6.9. +- ['inval1', qw(-f 2-0), {IN=>''}, {OUT=>''}, {EXIT=>1}, +- {ERR=>"$prog: invalid decreasing range\n$try"}], ++ ['inval1', qw(-f 2-0), {IN=>''}, {OUT=>''}, {EXIT=>1}, ++ {ERR=>"$prog: invalid byte, character or field list\n$try"}], + ['inval2', qw(-f -), {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}], + ['inval3', '-f', '4,-', {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}], + ['inval4', '-f', '1-2,-', {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}], +diff -urN coreutils-6.11-orig/tests/mkdir/selinux coreutils-6.11/tests/mkdir/selinux +--- coreutils-6.11-orig/tests/mkdir/selinux 2008-04-19 23:34:23.000000000 +0200 ++++ coreutils-6.11/tests/mkdir/selinux 2008-04-22 13:23:50.000000000 +0200 +@@ -38,6 +28,7 @@ + # successfully, in spite of the invalid context string. + + . $srcdir/test-lib.sh ++require_selinux_ + + c=invalid-selinux-context + msg="failed to set default file creation context to \`$c':" +diff -urNp coreutils-6.11-orig/tests/test-lib.sh coreutils-6.11/tests/test-lib.sh +--- coreutils-6.11-orig/tests/test-lib.sh 2008-04-19 23:34:23.000000000 +0200 ++++ coreutils-6.11/tests/test-lib.sh 2008-04-24 14:18:59.000000000 +0200 +@@ -97,8 +97,8 @@ skip_if_() + + require_selinux_() + { +- case `ls -Zd .` in +- '? .'|'unlabeled .') ++ case `ls --scontext -d . | cut -f1 -d" "` in ++ '?'|'unlabeled') + skip_test_ "this system (or maybe just" \ + "the current file system) lacks SELinux support" + ;; +diff -urp coreutils-6.11-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.11/gnulib-tests/test-getaddrinfo.c +--- coreutils-6.11-orig/gnulib-tests/test-getaddrinfo.c ++++ coreutils-6.11/gnulib-tests/test-getaddrinfo.c +@@ -70,6 +70,10 @@ int simple (char *host, char *service) + if (res == EAI_NODATA) + return 0; + ++ /* Do not fail this test for temporary name resolution errors. */ ++ if (res == EAI_AGAIN) ++ return 0; ++ + return 1; + } + diff --git a/abs/core-testing/coreutils/coreutils-i18n.patch b/abs/core-testing/coreutils/coreutils-i18n.patch new file mode 100644 index 0000000..1230c23 --- /dev/null +++ b/abs/core-testing/coreutils/coreutils-i18n.patch @@ -0,0 +1,4045 @@ +--- /dev/null 2007-03-01 09:16:39.219409909 +0000 ++++ coreutils-6.8+/tests/misc/sort-mb-tests 2007-03-01 15:08:24.000000000 +0000 +@@ -0,0 +1,58 @@ ++#! /bin/sh ++case $# in ++ 0) xx='../src/sort';; ++ *) xx="$1";; ++esac ++test "$VERBOSE" && echo=echo || echo=: ++$echo testing program: $xx ++errors=0 ++test "$srcdir" || srcdir=. ++test "$VERBOSE" && $xx --version 2> /dev/null ++ ++export LC_ALL=en_US.UTF-8 ++locale -k LC_CTYPE 2>&1 | grep -q charmap.*UTF-8 || exit 77 ++errors=0 ++ ++$xx -t ï¼  -k2 -n misc/mb1.I > misc/mb1.O ++code=$? ++if test $code != 0; then ++ $echo "Test mb1 failed: $xx return code $code differs from expected value 0" 1>&2 ++ errors=`expr $errors + 1` ++else ++ cmp misc/mb1.O $srcdir/misc/mb1.X > /dev/null 2>&1 ++ case $? in ++ 0) if test "$VERBOSE"; then $echo "passed mb1"; fi;; ++ 1) $echo "Test mb1 failed: files misc/mb1.O and $srcdir/misc/mb1.X differ" 1>&2 ++ (diff -c misc/mb1.O $srcdir/misc/mb1.X) 2> /dev/null ++ errors=`expr $errors + 1`;; ++ 2) $echo "Test mb1 may have failed." 1>&2 ++ $echo The command "cmp misc/mb1.O $srcdir/misc/mb1.X" failed. 1>&2 ++ errors=`expr $errors + 1`;; ++ esac ++fi ++ ++$xx -t ï¼  -k4 -n misc/mb2.I > misc/mb2.O ++code=$? ++if test $code != 0; then ++ $echo "Test mb2 failed: $xx return code $code differs from expected value 0" 1>&2 ++ errors=`expr $errors + 1` ++else ++ cmp misc/mb2.O $srcdir/misc/mb2.X > /dev/null 2>&1 ++ case $? in ++ 0) if test "$VERBOSE"; then $echo "passed mb2"; fi;; ++ 1) $echo "Test mb2 failed: files misc/mb2.O and $srcdir/misc/mb2.X differ" 1>&2 ++ (diff -c misc/mb2.O $srcdir/misc/mb2.X) 2> /dev/null ++ errors=`expr $errors + 1`;; ++ 2) $echo "Test mb2 may have failed." 1>&2 ++ $echo The command "cmp misc/mb2.O $srcdir/misc/mb2.X" failed. 1>&2 ++ errors=`expr $errors + 1`;; ++ esac ++fi ++ ++if test $errors = 0; then ++ $echo Passed all 113 tests. 1>&2 ++else ++ $echo Failed $errors tests. 1>&2 ++fi ++test $errors = 0 || errors=1 ++exit $errors +--- /dev/null 2007-03-01 09:16:39.219409909 +0000 ++++ coreutils-6.8+/tests/misc/mb2.I 2007-03-01 15:08:24.000000000 +0000 +@@ -0,0 +1,4 @@ ++Apple@AA10ï¼ ï¼ 20 ++Banana@AA5ï¼ ï¼ 30 ++Citrus@AA20ï¼ ï¼ 5 ++Cherry@AA30ï¼ ï¼ 10 +--- /dev/null 2007-03-01 09:16:39.219409909 +0000 ++++ coreutils-6.8+/tests/misc/mb2.X 2007-03-01 15:08:24.000000000 +0000 +@@ -0,0 +1,4 @@ ++Citrus@AA20ï¼ ï¼ 5 ++Cherry@AA30ï¼ ï¼ 10 ++Apple@AA10ï¼ ï¼ 20 ++Banana@AA5ï¼ ï¼ 30 +--- /dev/null 2007-03-01 09:16:39.219409909 +0000 ++++ coreutils-6.8+/tests/misc/mb1.I 2007-03-01 15:08:24.000000000 +0000 +@@ -0,0 +1,4 @@ ++Appleï¼ 10 ++Bananaï¼ 5 ++Citrusï¼ 20 ++Cherryï¼ 30 +--- /dev/null 2007-03-01 09:16:39.219409909 +0000 ++++ coreutils-6.8+/tests/misc/mb1.X 2007-03-01 15:08:24.000000000 +0000 +@@ -0,0 +1,4 @@ ++Bananaï¼ 5 ++Appleï¼ 10 ++Citrusï¼ 20 ++Cherryï¼ 30 +diff -urN coreutils-6.12-orig/tests/Makefile.am coreutils-6.12/tests/Makefile.am +--- coreutils-6.12-orig/tests/Makefile.am 2008-05-27 13:47:53.000000000 +0200 ++++ coreutils-6.12/tests/Makefile.am 2008-06-02 10:06:03.000000000 +0200 +@@ -191,6 +191,7 @@ + misc/shuf \ + misc/sort \ + misc/sort-compress \ ++ misc/sort-mb-tests \ + misc/sort-merge \ + misc/sort-rand \ + misc/split-a \ +@@ -391,6 +392,10 @@ + $(root_tests) + + pr_data = \ ++ misc/mb1.X \ ++ misc/mb1.I \ ++ misc/mb2.X \ ++ misc/mb2.I \ + pr/0F \ + pr/0FF \ + pr/0FFnt \ +--- coreutils-6.8+/lib/linebuffer.h.i18n 2005-05-14 07:44:24.000000000 +0100 ++++ coreutils-6.8+/lib/linebuffer.h 2007-03-01 15:08:24.000000000 +0000 +@@ -22,6 +22,11 @@ + + # include + ++/* Get mbstate_t. */ ++# if HAVE_WCHAR_H ++# include ++# endif ++ + /* A `struct linebuffer' holds a line of text. */ + + struct linebuffer +@@ -29,6 +34,9 @@ + size_t size; /* Allocated. */ + size_t length; /* Used. */ + char *buffer; ++# if HAVE_WCHAR_H ++ mbstate_t state; ++# endif + }; + + /* Initialize linebuffer LINEBUFFER for use. */ +--- coreutils-6.8+/src/expand.c.i18n 2007-01-14 15:41:28.000000000 +0000 ++++ coreutils-6.8+/src/expand.c 2007-03-01 15:08:24.000000000 +0000 +@@ -38,11 +38,28 @@ + #include + #include + #include ++ ++/* Get mbstate_t, mbrtowc(), wcwidth(). */ ++#if HAVE_WCHAR_H ++# include ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" + #include "xstrndup.h" + ++/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC ++ installation; work around this configuration error. */ ++#if !defined MB_LEN_MAX || MB_LEN_MAX < 2 ++# define MB_LEN_MAX 16 ++#endif ++ ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ + /* The official name of this program (e.g., no `g' prefix). */ + #define PROGRAM_NAME "expand" + +@@ -183,6 +200,7 @@ + stops = num_start + len - 1; + } + } ++ + else + { + error (0, 0, _("tab size contains invalid character(s): %s"), +@@ -365,6 +383,142 @@ + } + } + ++#if HAVE_MBRTOWC ++static void ++expand_multibyte (void) ++{ ++ FILE *fp; /* Input strem. */ ++ mbstate_t i_state; /* Current shift state of the input stream. */ ++ mbstate_t i_state_bak; /* Back up the I_STATE. */ ++ mbstate_t o_state; /* Current shift state of the output stream. */ ++ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */ ++ char *bufpos; /* Next read position of BUF. */ ++ size_t buflen = 0; /* The length of the byte sequence in buf. */ ++ wchar_t wc; /* A gotten wide character. */ ++ size_t mblength; /* The byte size of a multibyte character ++ which shows as same character as WC. */ ++ int tab_index = 0; /* Index in `tab_list' of next tabstop. */ ++ int column = 0; /* Column on screen of the next char. */ ++ int next_tab_column; /* Column the next tab stop is on. */ ++ int convert = 1; /* If nonzero, perform translations. */ ++ ++ fp = next_file ((FILE *) NULL); ++ if (fp == NULL) ++ return; ++ ++ memset (&o_state, '\0', sizeof(mbstate_t)); ++ memset (&i_state, '\0', sizeof(mbstate_t)); ++ ++ for (;;) ++ { ++ /* Refill the buffer BUF. */ ++ if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp)) ++ { ++ memmove (buf, bufpos, buflen); ++ buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp); ++ bufpos = buf; ++ } ++ ++ /* No character is left in BUF. */ ++ if (buflen < 1) ++ { ++ fp = next_file (fp); ++ ++ if (fp == NULL) ++ break; /* No more files. */ ++ else ++ { ++ memset (&i_state, '\0', sizeof(mbstate_t)); ++ continue; ++ } ++ } ++ ++ /* Get a wide character. */ ++ i_state_bak = i_state; ++ mblength = mbrtowc (&wc, bufpos, buflen, &i_state); ++ ++ switch (mblength) ++ { ++ case (size_t)-1: /* illegal byte sequence. */ ++ case (size_t)-2: ++ mblength = 1; ++ i_state = i_state_bak; ++ if (convert) ++ { ++ ++column; ++ if (convert_entire_line == 0) ++ convert = 0; ++ } ++ putchar (*bufpos); ++ break; ++ ++ case 0: /* null. */ ++ mblength = 1; ++ if (convert && convert_entire_line == 0) ++ convert = 0; ++ putchar ('\0'); ++ break; ++ ++ default: ++ if (wc == L'\n') /* LF. */ ++ { ++ tab_index = 0; ++ column = 0; ++ convert = 1; ++ putchar ('\n'); ++ } ++ else if (wc == L'\t' && convert) /* Tab. */ ++ { ++ if (tab_size == 0) ++ { ++ /* Do not let tab_index == first_free_tab; ++ stop when it is 1 less. */ ++ while (tab_index < first_free_tab - 1 ++ && column >= tab_list[tab_index]) ++ tab_index++; ++ next_tab_column = tab_list[tab_index]; ++ if (tab_index < first_free_tab - 1) ++ tab_index++; ++ if (column >= next_tab_column) ++ next_tab_column = column + 1; ++ } ++ else ++ next_tab_column = column + tab_size - column % tab_size; ++ ++ while (column < next_tab_column) ++ { ++ putchar (' '); ++ ++column; ++ } ++ } ++ else /* Others. */ ++ { ++ if (convert) ++ { ++ if (wc == L'\b') ++ { ++ if (column > 0) ++ --column; ++ } ++ else ++ { ++ int width; /* The width of WC. */ ++ ++ width = wcwidth (wc); ++ column += (width > 0) ? width : 0; ++ if (convert_entire_line == 0) ++ convert = 0; ++ } ++ } ++ fwrite (bufpos, sizeof(char), mblength, stdout); ++ } ++ } ++ buflen -= mblength; ++ bufpos += mblength; ++ } ++} ++#endif ++ + int + main (int argc, char **argv) + { +@@ -429,7 +583,12 @@ + + file_list = (optind < argc ? &argv[optind] : stdin_argv); + +- expand (); ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ expand_multibyte (); ++ else ++#endif ++ expand (); + + if (have_read_stdin && fclose (stdin) != 0) + error (EXIT_FAILURE, errno, "-"); +--- coreutils-6.8+/src/join.c.i18n 2007-01-14 15:41:28.000000000 +0000 ++++ coreutils-6.8+/src/join.c 2007-03-01 15:08:24.000000000 +0000 +@@ -23,17 +23,31 @@ + #include + #include + ++/* Get mbstate_t, mbrtowc(), mbrtowc(), wcwidth(). */ ++#if HAVE_WCHAR_H ++# include ++#endif ++ ++/* Get iswblank(), towupper. */ ++#if HAVE_WCTYPE_H ++# include ++#endif ++ + #include "system.h" + #include "error.h" + #include "hard-locale.h" + #include "linebuffer.h" +-#include "memcasecmp.h" + #include "quote.h" + #include "stdio--.h" + #include "xmemcoll.h" + #include "xstrtol.h" + #include "argmatch.h" + ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ + /* The official name of this program (e.g., no `g' prefix). */ + #define PROGRAM_NAME "join" + +@@ -104,10 +118,12 @@ + /* Last element in `outlist', where a new element can be added. */ + static struct outlist *outlist_end = &outlist_head; + +-/* Tab character separating fields. If negative, fields are separated +- by any nonempty string of blanks, otherwise by exactly one +- tab character whose value (when cast to unsigned char) equals TAB. */ +-static int tab = -1; ++/* Tab character separating fields. If NULL, fields are separated ++ by any nonempty string of blanks. */ ++static char *tab = NULL; ++ ++/* The number of bytes used for tab. */ ++static size_t tablen = 0; + + static struct option const longopts[] = + { +@@ -190,6 +206,8 @@ + + /* Fill in the `fields' structure in LINE. */ + ++/* Fill in the `fields' structure in LINE. */ ++ + static void + xfields (struct line *line) + { +@@ -199,10 +217,11 @@ + if (ptr == lim) + return; + +- if (0 <= tab) ++ if (tab != NULL) + { ++ unsigned char t = tab[0]; + char *sep; +- for (; (sep = memchr (ptr, tab, lim - ptr)) != NULL; ptr = sep + 1) ++ for (; (sep = memchr (ptr, t, lim - ptr)) != NULL; ptr = sep + 1) + extract_field (line, ptr, sep - ptr); + } + else +@@ -229,6 +248,148 @@ + extract_field (line, ptr, lim - ptr); + } + ++#if HAVE_MBRTOWC ++static void ++xfields_multibyte (struct line *line) ++{ ++ char *ptr = line->buf.buffer; ++ char const *lim = ptr + line->buf.length - 1; ++ wchar_t wc = 0; ++ size_t mblength = 1; ++ mbstate_t state, state_bak; ++ ++ memset (&state, 0, sizeof (mbstate_t)); ++ ++ if (ptr == lim) ++ return; ++ ++ if (tab != NULL) ++ { ++ unsigned char t = tab[0]; ++ char *sep = ptr; ++ for (; ptr < lim; ptr = sep + mblength) ++ { ++ sep = ptr; ++ while (sep < lim) ++ { ++ state_bak = state; ++ mblength = mbrtowc (&wc, sep, lim - sep + 1, &state); ++ ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ mblength = 1; ++ state = state_bak; ++ } ++ mblength = (mblength < 1) ? 1 : mblength; ++ ++ if (mblength == tablen && !memcmp (sep, tab, mblength)) ++ break; ++ else ++ { ++ sep += mblength; ++ continue; ++ } ++ } ++ ++ if (sep == lim) ++ break; ++ ++ extract_field (line, ptr, sep - ptr); ++ } ++ } ++ else ++ { ++ /* Skip leading blanks before the first field. */ ++ while(ptr < lim) ++ { ++ state_bak = state; ++ mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state); ++ ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ mblength = 1; ++ state = state_bak; ++ break; ++ } ++ mblength = (mblength < 1) ? 1 : mblength; ++ ++ if (!iswblank(wc)) ++ break; ++ ptr += mblength; ++ } ++ ++ do ++ { ++ char *sep; ++ state_bak = state; ++ mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state); ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ mblength = 1; ++ state = state_bak; ++ break; ++ } ++ mblength = (mblength < 1) ? 1 : mblength; ++ ++ sep = ptr + mblength; ++ while (sep != lim) ++ { ++ state_bak = state; ++ mblength = mbrtowc (&wc, sep, lim - sep + 1, &state); ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ mblength = 1; ++ state = state_bak; ++ break; ++ } ++ mblength = (mblength < 1) ? 1 : mblength; ++ ++ if (iswblank (wc)) ++ break; ++ ++ sep += mblength; ++ } ++ ++ extract_field (line, ptr, sep - ptr); ++ if (sep == lim) ++ return; ++ ++ state_bak = state; ++ mblength = mbrtowc (&wc, sep, lim - sep + 1, &state); ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ mblength = 1; ++ state = state_bak; ++ break; ++ } ++ mblength = (mblength < 1) ? 1 : mblength; ++ ++ ptr = sep + mblength; ++ while (ptr != lim) ++ { ++ state_bak = state; ++ mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state); ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ mblength = 1; ++ state = state_bak; ++ break; ++ } ++ mblength = (mblength < 1) ? 1 : mblength; ++ ++ if (!iswblank (wc)) ++ break; ++ ++ ptr += mblength; ++ } ++ } ++ while (ptr != lim); ++ } ++ ++ extract_field (line, ptr, lim - ptr); ++} ++#endif ++ + /* Read a line from FP into LINE and split it into fields. + Return true if successful. */ + +@@ -249,6 +410,11 @@ + line->nfields_allocated = 0; + line->nfields = 0; + line->fields = NULL; ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ xfields_multibyte (line); ++ else ++#endif + xfields (line); + return true; + } +@@ -377,11 +601,18 @@ + + /* Print the join of LINE1 and LINE2. */ + ++#define PUT_TAB_CHAR \ ++ do \ ++ { \ ++ (tab != NULL) ? \ ++ fwrite(tab, sizeof(char), tablen, stdout) : putchar (' '); \ ++ } \ ++ while (0) ++ + static void + prjoin (struct line const *line1, struct line const *line2) + { + const struct outlist *outlist; +- char output_separator = tab < 0 ? ' ' : tab; + + outlist = outlist_head.next; + if (outlist) +@@ -397,12 +628,12 @@ + if (o->file == 0) + { + if (line1 == &uni_blank) +- { ++ { + line = line2; + field = join_field_2; + } + else +- { ++ { + line = line1; + field = join_field_1; + } +@@ -416,7 +647,7 @@ + o = o->next; + if (o == NULL) + break; +- putchar (output_separator); ++ PUT_TAB_CHAR; + } + putchar ('\n'); + } +@@ -434,23 +665,23 @@ + prfield (join_field_1, line1); + for (i = 0; i < join_field_1 && i < line1->nfields; ++i) + { +- putchar (output_separator); ++ PUT_TAB_CHAR; + prfield (i, line1); + } + for (i = join_field_1 + 1; i < line1->nfields; ++i) + { +- putchar (output_separator); ++ PUT_TAB_CHAR; + prfield (i, line1); + } + + for (i = 0; i < join_field_2 && i < line2->nfields; ++i) + { +- putchar (output_separator); ++ PUT_TAB_CHAR; + prfield (i, line2); + } + for (i = join_field_2 + 1; i < line2->nfields; ++i) + { +- putchar (output_separator); ++ PUT_TAB_CHAR; + prfield (i, line2); + } + putchar ('\n'); +@@ -859,20 +1090,41 @@ + + case 't': + { +- unsigned char newtab = optarg[0]; +- if (! newtab) ++ char *newtab; ++ size_t newtablen; ++ if (! optarg[0]) + error (EXIT_FAILURE, 0, _("empty tab")); +- if (optarg[1]) ++ newtab = xstrdup (optarg); ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ mbstate_t state; ++ ++ memset (&state, 0, sizeof (mbstate_t)); ++ newtablen = mbrtowc (NULL, newtab, ++ strnlen (newtab, MB_LEN_MAX), ++ &state); ++ if (newtablen == (size_t) 0 ++ || newtablen == (size_t) -1 ++ || newtablen == (size_t) -2) ++ newtablen = 1; ++ } ++ else ++#endif ++ newtablen = 1; ++ ++ if (newtablen == 1 && newtab[1]) ++ { ++ if (STREQ (newtab, "\\0")) ++ newtab[0] = '\0'; ++ } ++ if (tab != NULL && strcmp (tab, newtab)) + { +- if (STREQ (optarg, "\\0")) +- newtab = '\0'; +- else +- error (EXIT_FAILURE, 0, _("multi-character tab %s"), +- quote (optarg)); ++ free (newtab); ++ error (EXIT_FAILURE, 0, _("incompatible tabs")); + } +- if (0 <= tab && tab != newtab) +- error (EXIT_FAILURE, 0, _("incompatible tabs")); + tab = newtab; ++ tablen = newtablen; + } + break; + +diff -urNp coreutils-6.11-orig/src/join.c coreutils-6.11/src/join.c +--- coreutils-6.11-orig/src/join.c 2008-04-21 13:44:32.000000000 +0200 ++++ coreutils-6.11/src/join.c 2008-04-21 14:03:22.000000000 +0200 +@@ -324,56 +324,115 @@ keycmp (struct line const *line1, struct + size_t jf_1, size_t jf_2) + { + /* Start of field to compare in each file. */ +- char *beg1; +- char *beg2; +- +- size_t len1; +- size_t len2; /* Length of fields to compare. */ ++ char *beg[2]; ++ char *copy[2]; ++ size_t len[2]; /* Length of fields to compare. */ + int diff; ++ int i, j; + + if (jf_1 < line1->nfields) + { +- beg1 = line1->fields[jf_1].beg; +- len1 = line1->fields[jf_1].len; ++ beg[0] = line1->fields[jf_1].beg; ++ len[0] = line1->fields[jf_1].len; + } + else + { +- beg1 = NULL; +- len1 = 0; ++ beg[0] = NULL; ++ len[0] = 0; + } + + if (jf_2 < line2->nfields) + { +- beg2 = line2->fields[jf_2].beg; +- len2 = line2->fields[jf_2].len; ++ beg[1] = line2->fields[jf_2].beg; ++ len[1] = line2->fields[jf_2].len; + } + else + { +- beg2 = NULL; +- len2 = 0; ++ beg[1] = NULL; ++ len[1] = 0; + } + +- if (len1 == 0) +- return len2 == 0 ? 0 : -1; +- if (len2 == 0) ++ if (len[0] == 0) ++ return len[1] == 0 ? 0 : -1; ++ if (len[1] == 0) + return 1; + + if (ignore_case) + { +- /* FIXME: ignore_case does not work with NLS (in particular, +- with multibyte chars). */ +- diff = memcasecmp (beg1, beg2, MIN (len1, len2)); ++#ifdef HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ size_t mblength; ++ wchar_t wc, uwc; ++ mbstate_t state, state_bak; ++ ++ memset (&state, '\0', sizeof (mbstate_t)); ++ ++ for (i = 0; i < 2; i++) ++ { ++ copy[i] = alloca (len[i] + 1); ++ ++ for (j = 0; j < MIN (len[0], len[1]);) ++ { ++ state_bak = state; ++ mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state); ++ ++ switch (mblength) ++ { ++ case (size_t) -1: ++ case (size_t) -2: ++ state = state_bak; ++ /* Fall through */ ++ case 0: ++ mblength = 1; ++ break; ++ ++ default: ++ uwc = towupper (wc); ++ ++ if (uwc != wc) ++ { ++ mbstate_t state_wc; ++ ++ memset (&state_wc, '\0', sizeof (mbstate_t)); ++ wcrtomb (copy[i] + j, uwc, &state_wc); ++ } ++ else ++ memcpy (copy[i] + j, beg[i] + j, mblength); ++ } ++ j += mblength; ++ } ++ copy[i][j] = '\0'; ++ } ++ } ++ else ++#endif ++ { ++ for (i = 0; i < 2; i++) ++ { ++ copy[i] = alloca (len[i] + 1); ++ ++ for (j = 0; j < MIN (len[0], len[1]); j++) ++ copy[i][j] = toupper (beg[i][j]); ++ ++ copy[i][j] = '\0'; ++ } ++ } + } + else + { +- if (hard_LC_COLLATE) +- return xmemcoll (beg1, len1, beg2, len2); +- diff = memcmp (beg1, beg2, MIN (len1, len2)); ++ copy[0] = (unsigned char *) beg[0]; ++ copy[1] = (unsigned char *) beg[1]; + } + ++ if (hard_LC_COLLATE) ++ return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]); ++ diff = memcmp (copy[0], copy[1], MIN (len[0], len[1])); ++ ++ + if (diff) + return diff; +- return len1 < len2 ? -1 : len1 != len2; ++ return len[0] - len[1]; + } + + /* Check that successive input lines PREV and CURRENT from input file +--- coreutils-6.8+/src/uniq.c.i18n 2007-01-14 15:41:28.000000000 +0000 ++++ coreutils-6.8+/src/uniq.c 2007-03-01 15:08:24.000000000 +0000 +@@ -23,6 +23,16 @@ + #include + #include + ++/* Get mbstate_t, mbrtowc(). */ ++#if HAVE_WCHAR_H ++# include ++#endif ++ ++/* Get isw* functions. */ ++#if HAVE_WCTYPE_H ++# include ++#endif ++ + #include "system.h" + #include "argmatch.h" + #include "linebuffer.h" +@@ -32,7 +42,19 @@ + #include "quote.h" + #include "xmemcoll.h" + #include "xstrtol.h" +-#include "memcasecmp.h" ++#include "xmemcoll.h" ++ ++/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC ++ installation; work around this configuration error. */ ++#if !defined MB_LEN_MAX || MB_LEN_MAX < 2 ++# define MB_LEN_MAX 16 ++#endif ++ ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ + + /* The official name of this program (e.g., no `g' prefix). */ + #define PROGRAM_NAME "uniq" +@@ -109,6 +131,10 @@ + /* Select whether/how to delimit groups of duplicate lines. */ + static enum delimit_method delimit_groups; + ++/* Function pointers. */ ++static char * ++(*find_field) (struct linebuffer *line); ++ + static struct option const longopts[] = + { + {"count", no_argument, NULL, 'c'}, +@@ -198,7 +224,7 @@ + return a pointer to the beginning of the line's field to be compared. */ + + static char * +-find_field (const struct linebuffer *line) ++find_field_uni (struct linebuffer *line) + { + size_t count; + char *lp = line->buffer; +@@ -219,6 +245,83 @@ + return lp + i; + } + ++#if HAVE_MBRTOWC ++ ++# define MBCHAR_TO_WCHAR(WC, MBLENGTH, LP, POS, SIZE, STATEP, CONVFAIL) \ ++ do \ ++ { \ ++ mbstate_t state_bak; \ ++ \ ++ CONVFAIL = 0; \ ++ state_bak = *STATEP; \ ++ \ ++ MBLENGTH = mbrtowc (&WC, LP + POS, SIZE - POS, STATEP); \ ++ \ ++ switch (MBLENGTH) \ ++ { \ ++ case (size_t)-2: \ ++ case (size_t)-1: \ ++ *STATEP = state_bak; \ ++ CONVFAIL++; \ ++ /* Fall through */ \ ++ case 0: \ ++ MBLENGTH = 1; \ ++ } \ ++ } \ ++ while (0) ++ ++static char * ++find_field_multi (struct linebuffer *line) ++{ ++ size_t count; ++ char *lp = line->buffer; ++ size_t size = line->length - 1; ++ size_t pos; ++ size_t mblength; ++ wchar_t wc; ++ mbstate_t *statep; ++ int convfail; ++ ++ pos = 0; ++ statep = &(line->state); ++ ++ /* skip fields. */ ++ for (count = 0; count < skip_fields && pos < size; count++) ++ { ++ while (pos < size) ++ { ++ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail); ++ ++ if (convfail || !iswblank (wc)) ++ { ++ pos += mblength; ++ break; ++ } ++ pos += mblength; ++ } ++ ++ while (pos < size) ++ { ++ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail); ++ ++ if (!convfail && iswblank (wc)) ++ break; ++ ++ pos += mblength; ++ } ++ } ++ ++ /* skip fields. */ ++ for (count = 0; count < skip_chars && pos < size; count++) ++ { ++ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail); ++ pos += mblength; ++ } ++ ++ return lp + pos; ++} ++#endif ++ + /* Return false if two strings OLD and NEW match, true if not. + OLD and NEW point not to the beginnings of the lines + but rather to the beginnings of the fields to compare. +@@ -227,6 +330,8 @@ + static bool + different (char *old, char *new, size_t oldlen, size_t newlen) + { ++ char *copy_old, *copy_new; ++ + if (check_chars < oldlen) + oldlen = check_chars; + if (check_chars < newlen) +@@ -234,14 +339,92 @@ + + if (ignore_case) + { +- /* FIXME: This should invoke strcoll somehow. */ +- return oldlen != newlen || memcasecmp (old, new, oldlen); ++ size_t i; ++ ++ copy_old = alloca (oldlen + 1); ++ copy_new = alloca (oldlen + 1); ++ ++ for (i = 0; i < oldlen; i++) ++ { ++ copy_old[i] = toupper (old[i]); ++ copy_new[i] = toupper (new[i]); ++ } + } +- else if (hard_LC_COLLATE) +- return xmemcoll (old, oldlen, new, newlen) != 0; + else +- return oldlen != newlen || memcmp (old, new, oldlen); ++ { ++ copy_old = (char *)old; ++ copy_new = (char *)new; ++ } ++ ++ return xmemcoll (copy_old, oldlen, copy_new, newlen); ++} ++ ++#if HAVE_MBRTOWC ++static int ++different_multi (const char *old, const char *new, size_t oldlen, size_t newlen, mbstate_t oldstate, mbstate_t newstate) ++{ ++ size_t i, j, chars; ++ const char *str[2]; ++ char *copy[2]; ++ size_t len[2]; ++ mbstate_t state[2]; ++ size_t mblength; ++ wchar_t wc, uwc; ++ mbstate_t state_bak; ++ ++ str[0] = old; ++ str[1] = new; ++ len[0] = oldlen; ++ len[1] = newlen; ++ state[0] = oldstate; ++ state[1] = newstate; ++ ++ for (i = 0; i < 2; i++) ++ { ++ copy[i] = alloca (len[i] + 1); ++ ++ for (j = 0, chars = 0; j < len[i] && chars < check_chars; chars++) ++ { ++ state_bak = state[i]; ++ mblength = mbrtowc (&wc, str[i] + j, len[i] - j, &(state[i])); ++ ++ switch (mblength) ++ { ++ case (size_t)-1: ++ case (size_t)-2: ++ state[i] = state_bak; ++ /* Fall through */ ++ case 0: ++ mblength = 1; ++ break; ++ ++ default: ++ if (ignore_case) ++ { ++ uwc = towupper (wc); ++ ++ if (uwc != wc) ++ { ++ mbstate_t state_wc; ++ ++ memset (&state_wc, '\0', sizeof(mbstate_t)); ++ wcrtomb (copy[i] + j, uwc, &state_wc); ++ } ++ else ++ memcpy (copy[i] + j, str[i] + j, mblength); ++ } ++ else ++ memcpy (copy[i] + j, str[i] + j, mblength); ++ } ++ j += mblength; ++ } ++ copy[i][j] = '\0'; ++ len[i] = j; ++ } ++ ++ return xmemcoll (copy[0], len[0], copy[1], len[1]); + } ++#endif + + /* Output the line in linebuffer LINE to standard output + provided that the switches say it should be output. +@@ -295,15 +478,43 @@ + { + char *prevfield IF_LINT (= NULL); + size_t prevlen IF_LINT (= 0); ++#if HAVE_MBRTOWC ++ mbstate_t prevstate; ++ ++ memset (&prevstate, '\0', sizeof (mbstate_t)); ++#endif + + while (!feof (stdin)) + { + char *thisfield; + size_t thislen; ++#if HAVE_MBRTOWC ++ mbstate_t thisstate; ++#endif ++ + if (readlinebuffer_delim (thisline, stdin, delimiter) == 0) + break; + thisfield = find_field (thisline); + thislen = thisline->length - 1 - (thisfield - thisline->buffer); ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ thisstate = thisline->state; ++ ++ if (prevline->length == 0 || different_multi ++ (thisfield, prevfield, thislen, prevlen, thisstate, prevstate)) ++ { ++ fwrite (thisline->buffer, sizeof (char), ++ thisline->length, stdout); ++ ++ SWAP_LINES (prevline, thisline); ++ prevfield = thisfield; ++ prevlen = thislen; ++ prevstate = thisstate; ++ } ++ } ++ else ++#endif + if (prevline->length == 0 + || different (thisfield, prevfield, thislen, prevlen)) + { +@@ -322,17 +533,26 @@ + size_t prevlen; + uintmax_t match_count = 0; + bool first_delimiter = true; ++#if HAVE_MBRTOWC ++ mbstate_t prevstate; ++#endif + + if (readlinebuffer_delim (prevline, stdin, delimiter) == 0) + goto closefiles; + prevfield = find_field (prevline); + prevlen = prevline->length - 1 - (prevfield - prevline->buffer); ++#if HAVE_MBRTOWC ++ prevstate = prevline->state; ++#endif + + while (!feof (stdin)) + { + bool match; + char *thisfield; + size_t thislen; ++#if HAVE_MBRTOWC ++ mbstate_t thisstate; ++#endif + if (readlinebuffer_delim (thisline, stdin, delimiter) == 0) + { + if (ferror (stdin)) +@@ -341,6 +561,15 @@ + } + thisfield = find_field (thisline); + thislen = thisline->length - 1 - (thisfield - thisline->buffer); ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ thisstate = thisline->state; ++ match = !different_multi (thisfield, prevfield, ++ thislen, prevlen, thisstate, prevstate); ++ } ++ else ++#endif + match = !different (thisfield, prevfield, thislen, prevlen); + match_count += match; + +@@ -373,6 +602,9 @@ + SWAP_LINES (prevline, thisline); + prevfield = thisfield; + prevlen = thislen; ++#if HAVE_MBRTOWC ++ prevstate = thisstate; ++#endif + if (!match) + match_count = 0; + } +@@ -417,6 +649,19 @@ + + atexit (close_stdout); + ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ find_field = find_field_multi; ++ } ++ else ++#endif ++ { ++ find_field = find_field_uni; ++ } ++ ++ ++ + skip_chars = 0; + skip_fields = 0; + check_chars = SIZE_MAX; +--- coreutils-6.8+/src/fold.c.i18n 2007-02-23 12:01:47.000000000 +0000 ++++ coreutils-6.8+/src/fold.c 2007-03-01 15:08:24.000000000 +0000 +@@ -23,11 +23,33 @@ + #include + #include + ++/* Get mbstate_t, mbrtowc(), wcwidth(). */ ++#if HAVE_WCHAR_H ++# include ++#endif ++ ++/* Get iswprint(), iswblank(), wcwidth(). */ ++#if HAVE_WCTYPE_H ++# include ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" + #include "xstrtol.h" + ++/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC ++ installation; work around this configuration error. */ ++#if !defined MB_LEN_MAX || MB_LEN_MAX < 2 ++# undef MB_LEN_MAX ++# define MB_LEN_MAX 16 ++#endif ++ ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ + #define TAB_WIDTH 8 + + /* The official name of this program (e.g., no `g' prefix). */ +@@ -35,23 +57,44 @@ + + #define AUTHORS "David MacKenzie" + ++#define FATAL_ERROR(Message) \ ++ do \ ++ { \ ++ error (0, 0, (Message)); \ ++ usage (2); \ ++ } \ ++ while (0) ++ ++enum operating_mode ++{ ++ /* Fold texts by columns that are at the given positions. */ ++ column_mode, ++ ++ /* Fold texts by bytes that are at the given positions. */ ++ byte_mode, ++ ++ /* Fold texts by characters that are at the given positions. */ ++ character_mode, ++}; ++ + /* The name this program was run with. */ + char *program_name; + ++/* The argument shows current mode. (Default: column_mode) */ ++static enum operating_mode operating_mode; ++ + /* If nonzero, try to break on whitespace. */ + static bool break_spaces; + +-/* If nonzero, count bytes, not column positions. */ +-static bool count_bytes; +- + /* If nonzero, at least one of the files we read was standard input. */ + static bool have_read_stdin; + +-static char const shortopts[] = "bsw:0::1::2::3::4::5::6::7::8::9::"; ++static char const shortopts[] = "bcsw:0::1::2::3::4::5::6::7::8::9::"; + + static struct option const longopts[] = + { + {"bytes", no_argument, NULL, 'b'}, ++ {"characters", no_argument, NULL, 'c'}, + {"spaces", no_argument, NULL, 's'}, + {"width", required_argument, NULL, 'w'}, + {GETOPT_HELP_OPTION_DECL}, +@@ -81,6 +124,7 @@ + "), stdout); + fputs (_("\ + -b, --bytes count bytes rather than columns\n\ ++ -c, --characters count characters rather than columns\n\ + -s, --spaces break at spaces\n\ + -w, --width=WIDTH use WIDTH columns instead of 80\n\ + "), stdout); +@@ -98,7 +142,7 @@ + static size_t + adjust_column (size_t column, char c) + { +- if (!count_bytes) ++ if (operating_mode != byte_mode) + { + if (c == '\b') + { +@@ -121,30 +165,14 @@ + to stdout, with maximum line length WIDTH. + Return true if successful. */ + +-static bool +-fold_file (char const *filename, size_t width) ++static void ++fold_text (FILE *istream, size_t width, int *saved_errno) + { +- FILE *istream; + int c; + size_t column = 0; /* Screen column where next char will go. */ + size_t offset_out = 0; /* Index in `line_out' for next char. */ + static char *line_out = NULL; + static size_t allocated_out = 0; +- int saved_errno; +- +- if (STREQ (filename, "-")) +- { +- istream = stdin; +- have_read_stdin = true; +- } +- else +- istream = fopen (filename, "r"); +- +- if (istream == NULL) +- { +- error (0, errno, "%s", filename); +- return false; +- } + + while ((c = getc (istream)) != EOF) + { +@@ -172,6 +200,15 @@ + bool found_blank = false; + size_t logical_end = offset_out; + ++ /* If LINE_OUT has no wide character, ++ put a new wide character in LINE_OUT ++ if column is bigger than width. */ ++ if (offset_out == 0) ++ { ++ line_out[offset_out++] = c; ++ continue; ++ } ++ + /* Look for the last blank. */ + while (logical_end) + { +@@ -218,11 +255,225 @@ + line_out[offset_out++] = c; + } + +- saved_errno = errno; ++ *saved_errno = errno; ++ ++ if (offset_out) ++ fwrite (line_out, sizeof (char), (size_t) offset_out, stdout); ++ ++ free(line_out); ++} ++ ++#if HAVE_MBRTOWC ++static void ++fold_multibyte_text (FILE *istream, size_t width, int *saved_errno) ++{ ++ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */ ++ size_t buflen = 0; /* The length of the byte sequence in buf. */ ++ char *bufpos; /* Next read position of BUF. */ ++ wint_t wc; /* A gotten wide character. */ ++ size_t mblength; /* The byte size of a multibyte character which shows ++ as same character as WC. */ ++ mbstate_t state, state_bak; /* State of the stream. */ ++ int convfail; /* 1, when conversion is failed. Otherwise 0. */ ++ ++ char *line_out = NULL; ++ size_t offset_out = 0; /* Index in `line_out' for next char. */ ++ size_t allocated_out = 0; ++ ++ int increment; ++ size_t column = 0; ++ ++ size_t last_blank_pos; ++ size_t last_blank_column; ++ int is_blank_seen; ++ int last_blank_increment; ++ int is_bs_following_last_blank; ++ size_t bs_following_last_blank_num; ++ int is_cr_after_last_blank; ++ ++#define CLEAR_FLAGS \ ++ do \ ++ { \ ++ last_blank_pos = 0; \ ++ last_blank_column = 0; \ ++ is_blank_seen = 0; \ ++ is_bs_following_last_blank = 0; \ ++ bs_following_last_blank_num = 0; \ ++ is_cr_after_last_blank = 0; \ ++ } \ ++ while (0) ++ ++#define START_NEW_LINE \ ++ do \ ++ { \ ++ putchar ('\n'); \ ++ column = 0; \ ++ offset_out = 0; \ ++ CLEAR_FLAGS; \ ++ } \ ++ while (0) ++ ++ CLEAR_FLAGS; ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ for (;; bufpos += mblength, buflen -= mblength) ++ { ++ if (buflen < MB_LEN_MAX && !feof (istream) && !ferror (istream)) ++ { ++ memmove (buf, bufpos, buflen); ++ buflen += fread (buf + buflen, sizeof(char), BUFSIZ, istream); ++ bufpos = buf; ++ } ++ ++ if (buflen < 1) ++ break; ++ ++ /* Get a wide character. */ ++ convfail = 0; ++ state_bak = state; ++ mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &state); ++ ++ switch (mblength) ++ { ++ case (size_t)-1: ++ case (size_t)-2: ++ convfail++; ++ state = state_bak; ++ /* Fall through. */ ++ ++ case 0: ++ mblength = 1; ++ break; ++ } ++ ++rescan: ++ if (operating_mode == byte_mode) /* byte mode */ ++ increment = mblength; ++ else if (operating_mode == character_mode) /* character mode */ ++ increment = 1; ++ else /* column mode */ ++ { ++ if (convfail) ++ increment = 1; ++ else ++ { ++ switch (wc) ++ { ++ case L'\n': ++ fwrite (line_out, sizeof(char), offset_out, stdout); ++ START_NEW_LINE; ++ continue; ++ ++ case L'\b': ++ increment = (column > 0) ? -1 : 0; ++ break; ++ ++ case L'\r': ++ increment = -1 * column; ++ break; ++ ++ case L'\t': ++ increment = 8 - column % 8; ++ break; ++ ++ default: ++ increment = wcwidth (wc); ++ increment = (increment < 0) ? 0 : increment; ++ } ++ } ++ } ++ ++ if (column + increment > width && break_spaces && last_blank_pos) ++ { ++ fwrite (line_out, sizeof(char), last_blank_pos, stdout); ++ putchar ('\n'); ++ ++ offset_out = offset_out - last_blank_pos; ++ column = column - last_blank_column + ((is_cr_after_last_blank) ++ ? last_blank_increment : bs_following_last_blank_num); ++ memmove (line_out, line_out + last_blank_pos, offset_out); ++ CLEAR_FLAGS; ++ goto rescan; ++ } ++ ++ if (column + increment > width && column != 0) ++ { ++ fwrite (line_out, sizeof(char), offset_out, stdout); ++ START_NEW_LINE; ++ goto rescan; ++ } ++ ++ if (allocated_out < offset_out + mblength) ++ { ++ allocated_out += 1024; ++ line_out = xrealloc (line_out, allocated_out); ++ } ++ ++ memcpy (line_out + offset_out, bufpos, mblength); ++ offset_out += mblength; ++ column += increment; ++ ++ if (is_blank_seen && !convfail && wc == L'\r') ++ is_cr_after_last_blank = 1; ++ ++ if (is_bs_following_last_blank && !convfail && wc == L'\b') ++ ++bs_following_last_blank_num; ++ else ++ is_bs_following_last_blank = 0; ++ ++ if (break_spaces && !convfail && iswblank (wc)) ++ { ++ last_blank_pos = offset_out; ++ last_blank_column = column; ++ is_blank_seen = 1; ++ last_blank_increment = increment; ++ is_bs_following_last_blank = 1; ++ bs_following_last_blank_num = 0; ++ is_cr_after_last_blank = 0; ++ } ++ } ++ ++ *saved_errno = errno; + + if (offset_out) + fwrite (line_out, sizeof (char), (size_t) offset_out, stdout); + ++ free(line_out); ++} ++#endif ++ ++/* Fold file FILENAME, or standard input if FILENAME is "-", ++ to stdout, with maximum line length WIDTH. ++ Return 0 if successful, 1 if an error occurs. */ ++ ++static bool ++fold_file (char *filename, size_t width) ++{ ++ FILE *istream; ++ int saved_errno; ++ ++ if (STREQ (filename, "-")) ++ { ++ istream = stdin; ++ have_read_stdin = 1; ++ } ++ else ++ istream = fopen (filename, "r"); ++ ++ if (istream == NULL) ++ { ++ error (0, errno, "%s", filename); ++ return 1; ++ } ++ ++ /* Define how ISTREAM is being folded. */ ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ fold_multibyte_text (istream, width, &saved_errno); ++ else ++#endif ++ fold_text (istream, width, &saved_errno); ++ + if (ferror (istream)) + { + error (0, saved_errno, "%s", filename); +@@ -255,7 +506,8 @@ + + atexit (close_stdout); + +- break_spaces = count_bytes = have_read_stdin = false; ++ operating_mode = column_mode; ++ break_spaces = have_read_stdin = false; + + while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1) + { +@@ -264,7 +516,15 @@ + switch (optc) + { + case 'b': /* Count bytes rather than columns. */ +- count_bytes = true; ++ if (operating_mode != column_mode) ++ FATAL_ERROR (_("only one way of folding may be specified")); ++ operating_mode = byte_mode; ++ break; ++ ++ case 'c': ++ if (operating_mode != column_mode) ++ FATAL_ERROR (_("only one way of folding may be specified")); ++ operating_mode = character_mode; + break; + + case 's': /* Break at word boundaries. */ +--- coreutils-6.8+/src/sort.c.i18n 2007-02-24 11:23:23.000000000 +0000 ++++ coreutils-6.8+/src/sort.c 2007-03-01 15:10:57.000000000 +0000 +@@ -23,10 +23,19 @@ + + #include + ++#include + #include + #include + #include + #include ++#if HAVE_WCHAR_H ++# include ++#endif ++/* Get isw* functions. */ ++#if HAVE_WCTYPE_H ++# include ++#endif ++ + #include "system.h" + #include "argmatch.h" + #include "error.h" +@@ -116,14 +125,38 @@ + /* Thousands separator; if -1, then there isn't one. */ + static int thousands_sep; + ++static int force_general_numcompare = 0; ++ + /* Nonzero if the corresponding locales are hard. */ + static bool hard_LC_COLLATE; +-#if HAVE_NL_LANGINFO ++#if HAVE_LANGINFO_CODESET + static bool hard_LC_TIME; + #endif + + #define NONZERO(x) ((x) != 0) + ++/* get a multibyte character's byte length. */ ++#define GET_BYTELEN_OF_CHAR(LIM, PTR, MBLENGTH, STATE) \ ++ do \ ++ { \ ++ wchar_t wc; \ ++ mbstate_t state_bak; \ ++ \ ++ state_bak = STATE; \ ++ mblength = mbrtowc (&wc, PTR, LIM - PTR, &STATE); \ ++ \ ++ switch (MBLENGTH) \ ++ { \ ++ case (size_t)-1: \ ++ case (size_t)-2: \ ++ STATE = state_bak; \ ++ /* Fall through. */ \ ++ case 0: \ ++ MBLENGTH = 1; \ ++ } \ ++ } \ ++ while (0) ++ + /* The kind of blanks for '-b' to skip in various options. */ + enum blanktype { bl_start, bl_end, bl_both }; + +@@ -261,13 +294,11 @@ + they were read if all keys compare equal. */ + static bool stable; + +-/* If TAB has this value, blanks separate fields. */ +-enum { TAB_DEFAULT = CHAR_MAX + 1 }; +- +-/* Tab character separating fields. If TAB_DEFAULT, then fields are ++/* Tab character separating fields. If tab_length is 0, then fields are + separated by the empty string between a non-blank character and a blank + character. */ +-static int tab = TAB_DEFAULT; ++static char tab[MB_LEN_MAX + 1]; ++static size_t tab_length = 0; + + /* Flag to remove consecutive duplicate lines from the output. + Only the last of a sequence of equal lines will be output. */ +@@ -639,6 +670,44 @@ + update_proc (pid); + } + ++/* Function pointers. */ ++static void ++(*inittables) (void); ++static char * ++(*begfield) (const struct line*, const struct keyfield *); ++static char * ++(*limfield) (const struct line*, const struct keyfield *); ++static int ++(*getmonth) (char const *, size_t); ++static int ++(*keycompare) (const struct line *, const struct line *); ++static int ++(*numcompare) (const char *, const char *); ++ ++/* Test for white space multibyte character. ++ Set LENGTH the byte length of investigated multibyte character. */ ++#if HAVE_MBRTOWC ++static int ++ismbblank (const char *str, size_t len, size_t *length) ++{ ++ size_t mblength; ++ wchar_t wc; ++ mbstate_t state; ++ ++ memset (&state, '\0', sizeof(mbstate_t)); ++ mblength = mbrtowc (&wc, str, len, &state); ++ ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ *length = 1; ++ return 0; ++ } ++ ++ *length = (mblength < 1) ? 1 : mblength; ++ return iswblank (wc); ++} ++#endif ++ + /* Clean up any remaining temporary files. */ + + static void +@@ -978,7 +1047,7 @@ + free (node); + } + +-#if HAVE_NL_LANGINFO ++#if HAVE_LANGINFO_CODESET + + static int + struct_month_cmp (const void *m1, const void *m2) +@@ -993,7 +1062,7 @@ + /* Initialize the character class tables. */ + + static void +-inittables (void) ++inittables_uni (void) + { + size_t i; + +@@ -1005,7 +1074,7 @@ + fold_toupper[i] = toupper (i); + } + +-#if HAVE_NL_LANGINFO ++#if HAVE_LANGINFO_CODESET + /* If we're not in the "C" locale, read different names for months. */ + if (hard_LC_TIME) + { +@@ -1031,6 +1100,64 @@ + #endif + } + ++#if HAVE_MBRTOWC ++static void ++inittables_mb (void) ++{ ++ int i, j, k, l; ++ char *name, *s; ++ size_t s_len, mblength; ++ char mbc[MB_LEN_MAX]; ++ wchar_t wc, pwc; ++ mbstate_t state_mb, state_wc; ++ ++ for (i = 0; i < MONTHS_PER_YEAR; i++) ++ { ++ s = (char *) nl_langinfo (ABMON_1 + i); ++ s_len = strlen (s); ++ monthtab[i].name = name = (char *) xmalloc (s_len + 1); ++ monthtab[i].val = i + 1; ++ ++ memset (&state_mb, '\0', sizeof (mbstate_t)); ++ memset (&state_wc, '\0', sizeof (mbstate_t)); ++ ++ for (j = 0; j < s_len;) ++ { ++ if (!ismbblank (s + j, s_len - j, &mblength)) ++ break; ++ j += mblength; ++ } ++ ++ for (k = 0; j < s_len;) ++ { ++ mblength = mbrtowc (&wc, (s + j), (s_len - j), &state_mb); ++ assert (mblength != (size_t)-1 && mblength != (size_t)-2); ++ if (mblength == 0) ++ break; ++ ++ pwc = towupper (wc); ++ if (pwc == wc) ++ { ++ memcpy (mbc, s + j, mblength); ++ j += mblength; ++ } ++ else ++ { ++ j += mblength; ++ mblength = wcrtomb (mbc, pwc, &state_wc); ++ assert (mblength != (size_t)0 && mblength != (size_t)-1); ++ } ++ ++ for (l = 0; l < mblength; l++) ++ name[k++] = mbc[l]; ++ } ++ name[k] = '\0'; ++ } ++ qsort ((void *) monthtab, MONTHS_PER_YEAR, ++ sizeof (struct month), struct_month_cmp); ++} ++#endif ++ + /* Specify the amount of main memory to use when sorting. */ + static void + specify_sort_size (char const *s) +@@ -1241,7 +1368,7 @@ + by KEY in LINE. */ + + static char * +-begfield (const struct line *line, const struct keyfield *key) ++begfield_uni (const struct line *line, const struct keyfield *key) + { + char *ptr = line->text, *lim = ptr + line->length - 1; + size_t sword = key->sword; +@@ -1251,10 +1378,10 @@ + /* The leading field separator itself is included in a field when -t + is absent. */ + +- if (tab != TAB_DEFAULT) ++ if (tab_length) + while (ptr < lim && sword--) + { +- while (ptr < lim && *ptr != tab) ++ while (ptr < lim && *ptr != tab[0]) + ++ptr; + if (ptr < lim) + ++ptr; +@@ -1282,11 +1409,70 @@ + return ptr; + } + ++#if HAVE_MBRTOWC ++static char * ++begfield_mb (const struct line *line, const struct keyfield *key) ++{ ++ int i; ++ char *ptr = line->text, *lim = ptr + line->length - 1; ++ size_t sword = key->sword; ++ size_t schar = key->schar; ++ size_t mblength; ++ mbstate_t state; ++ ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ if (tab_length) ++ while (ptr < lim && sword--) ++ { ++ while (ptr < lim && memcmp (ptr, tab, tab_length) != 0) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ if (ptr < lim) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ } ++ else ++ while (ptr < lim && sword--) ++ { ++ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength)) ++ ptr += mblength; ++ if (ptr < lim) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ while (ptr < lim && !ismbblank (ptr, lim - ptr, &mblength)) ++ ptr += mblength; ++ } ++ ++ if (key->skipsblanks) ++ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength)) ++ ptr += mblength; ++ ++ for (i = 0; i < schar; i++) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ++ if (ptr + mblength > lim) ++ break; ++ else ++ ptr += mblength; ++ } ++ ++ return ptr; ++} ++#endif ++ + /* Return the limit of (a pointer to the first character after) the field + in LINE specified by KEY. */ + + static char * +-limfield (const struct line *line, const struct keyfield *key) ++limfield_uni (const struct line *line, const struct keyfield *key) + { + char *ptr = line->text, *lim = ptr + line->length - 1; + size_t eword = key->eword, echar = key->echar; +@@ -1299,10 +1485,10 @@ + `beginning' is the first character following the delimiting TAB. + Otherwise, leave PTR pointing at the first `blank' character after + the preceding field. */ +- if (tab != TAB_DEFAULT) ++ if (tab_length) + while (ptr < lim && eword--) + { +- while (ptr < lim && *ptr != tab) ++ while (ptr < lim && *ptr != tab[0]) + ++ptr; + if (ptr < lim && (eword | echar)) + ++ptr; +@@ -1348,10 +1534,10 @@ + */ + + /* Make LIM point to the end of (one byte past) the current field. */ +- if (tab != TAB_DEFAULT) ++ if (tab_length) + { + char *newlim; +- newlim = memchr (ptr, tab, lim - ptr); ++ newlim = memchr (ptr, tab[0], lim - ptr); + if (newlim) + lim = newlim; + } +@@ -1384,6 +1570,107 @@ + return ptr; + } + ++#if HAVE_MBRTOWC ++static char * ++limfield_mb (const struct line *line, const struct keyfield *key) ++{ ++ char *ptr = line->text, *lim = ptr + line->length - 1; ++ size_t eword = key->eword, echar = key->echar; ++ int i; ++ size_t mblength; ++ mbstate_t state; ++ ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ if (tab_length) ++ while (ptr < lim && eword--) ++ { ++ while (ptr < lim && memcmp (ptr, tab, tab_length) != 0) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ if (ptr < lim && (eword | echar)) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ } ++ else ++ while (ptr < lim && eword--) ++ { ++ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength)) ++ ptr += mblength; ++ if (ptr < lim) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ while (ptr < lim && !ismbblank (ptr, lim - ptr, &mblength)) ++ ptr += mblength; ++ } ++ ++ ++# ifdef POSIX_UNSPECIFIED ++ /* Make LIM point to the end of (one byte past) the current field. */ ++ if (tab_length) ++ { ++ char *newlim, *p; ++ ++ newlim = NULL; ++ for (p = ptr; p < lim;) ++ { ++ if (memcmp (p, tab, tab_length) == 0) ++ { ++ newlim = p; ++ break; ++ } ++ ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ p += mblength; ++ } ++ } ++ else ++ { ++ char *newlim; ++ newlim = ptr; ++ ++ while (newlim < lim && ismbblank (newlim, lim - newlim, &mblength)) ++ newlim += mblength; ++ if (ptr < lim) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ptr += mblength; ++ } ++ while (newlim < lim && !ismbblank (newlim, lim - newlim, &mblength)) ++ newlim += mblength; ++ lim = newlim; ++ } ++# endif ++ ++ /* If we're skipping leading blanks, don't start counting characters ++ * until after skipping past any leading blanks. */ ++ if (key->skipsblanks) ++ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength)) ++ ptr += mblength; ++ ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ /* Advance PTR by ECHAR (if possible), but no further than LIM. */ ++ for (i = 0; i < echar; i++) ++ { ++ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state); ++ ++ if (ptr + mblength > lim) ++ break; ++ else ++ ptr += mblength; ++ } ++ ++ return ptr; ++} ++#endif ++ + /* Fill BUF reading from FP, moving buf->left bytes from the end + of buf->buf to the beginning first. If EOF is reached and the + file wasn't terminated by a newline, supply one. Set up BUF's line +@@ -1466,8 +1753,24 @@ + else + { + if (key->skipsblanks) +- while (blanks[to_uchar (*line_start)]) +- line_start++; ++ { ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ size_t mblength; ++ mbstate_t state; ++ memset (&state, '\0', sizeof(mbstate_t)); ++ while (line_start < line->keylim && ++ ismbblank (line_start, ++ line->keylim - line_start, ++ &mblength)) ++ line_start += mblength; ++ } ++ else ++#endif ++ while (blanks[to_uchar (*line_start)]) ++ line_start++; ++ } + line->keybeg = line_start; + } + } +@@ -1500,7 +1803,7 @@ + hideously fast. */ + + static int +-numcompare (const char *a, const char *b) ++numcompare_uni (const char *a, const char *b) + { + while (blanks[to_uchar (*a)]) + a++; +@@ -1510,6 +1813,25 @@ + return strnumcmp (a, b, decimal_point, thousands_sep); + } + ++#if HAVE_MBRTOWC ++static int ++numcompare_mb (const char *a, const char *b) ++{ ++ size_t mblength, len; ++ len = strlen (a); /* okay for UTF-8 */ ++ while (*a && ismbblank (a, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength)) ++ { ++ a += mblength; ++ len -= mblength; ++ } ++ len = strlen (b); /* okay for UTF-8 */ ++ while (*b && ismbblank (b, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength)) ++ b += mblength; ++ ++ return strnumcmp (a, b, decimal_point, thousands_sep); ++} ++#endif /* HAV_EMBRTOWC */ ++ + static int + general_numcompare (const char *sa, const char *sb) + { +@@ -1543,7 +1865,7 @@ + Return 0 if the name in S is not recognized. */ + + static int +-getmonth (char const *month, size_t len) ++getmonth_uni (char const *month, size_t len) + { + size_t lo = 0; + size_t hi = MONTHS_PER_YEAR; +@@ -1698,11 +2020,79 @@ + return diff; + } + ++#if HAVE_MBRTOWC ++static int ++getmonth_mb (const char *s, size_t len) ++{ ++ char *month; ++ register size_t i; ++ register int lo = 0, hi = MONTHS_PER_YEAR, result; ++ char *tmp; ++ size_t wclength, mblength; ++ const char **pp; ++ const wchar_t **wpp; ++ wchar_t *month_wcs; ++ mbstate_t state; ++ ++ while (len > 0 && ismbblank (s, len, &mblength)) ++ { ++ s += mblength; ++ len -= mblength; ++ } ++ ++ if (len == 0) ++ return 0; ++ ++ month = (char *) alloca (len + 1); ++ ++ tmp = (char *) alloca (len + 1); ++ memcpy (tmp, s, len); ++ tmp[len] = '\0'; ++ pp = (const char **)&tmp; ++ month_wcs = (wchar_t *) alloca ((len + 1) * sizeof (wchar_t)); ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ wclength = mbsrtowcs (month_wcs, pp, len + 1, &state); ++ assert (wclength != (size_t)-1 && *pp == NULL); ++ ++ for (i = 0; i < wclength; i++) ++ { ++ month_wcs[i] = towupper(month_wcs[i]); ++ if (iswblank (month_wcs[i])) ++ { ++ month_wcs[i] = L'\0'; ++ break; ++ } ++ } ++ ++ wpp = (const wchar_t **)&month_wcs; ++ ++ mblength = wcsrtombs (month, wpp, len + 1, &state); ++ assert (mblength != (-1) && *wpp == NULL); ++ ++ do ++ { ++ int ix = (lo + hi) / 2; ++ ++ if (strncmp (month, monthtab[ix].name, strlen (monthtab[ix].name)) < 0) ++ hi = ix; ++ else ++ lo = ix; ++ } ++ while (hi - lo > 1); ++ ++ result = (!strncmp (month, monthtab[lo].name, strlen (monthtab[lo].name)) ++ ? monthtab[lo].val : 0); ++ ++ return result; ++} ++#endif ++ + /* Compare two lines A and B trying every key in sequence until there + are no more keys or a difference is found. */ + + static int +-keycompare (const struct line *a, const struct line *b) ++keycompare_uni (const struct line *a, const struct line *b) + { + struct keyfield const *key = keylist; + +@@ -1875,6 +2265,179 @@ + return key->reverse ? -diff : diff; + } + ++#if HAVE_MBRTOWC ++static int ++keycompare_mb (const struct line *a, const struct line *b) ++{ ++ struct keyfield *key = keylist; ++ ++ /* For the first iteration only, the key positions have been ++ precomputed for us. */ ++ char *texta = a->keybeg; ++ char *textb = b->keybeg; ++ char *lima = a->keylim; ++ char *limb = b->keylim; ++ ++ size_t mblength_a, mblength_b; ++ wchar_t wc_a, wc_b; ++ mbstate_t state_a, state_b; ++ ++ int diff; ++ ++ memset (&state_a, '\0', sizeof(mbstate_t)); ++ memset (&state_b, '\0', sizeof(mbstate_t)); ++ ++ for (;;) ++ { ++ unsigned char *translate = (unsigned char *) key->translate; ++ bool const *ignore = key->ignore; ++ ++ /* Find the lengths. */ ++ size_t lena = lima <= texta ? 0 : lima - texta; ++ size_t lenb = limb <= textb ? 0 : limb - textb; ++ ++ /* Actually compare the fields. */ ++ if (key->random) ++ diff = compare_random (texta, lena, textb, lenb); ++ else if (key->numeric | key->general_numeric) ++ { ++ char savea = *lima, saveb = *limb; ++ ++ *lima = *limb = '\0'; ++ if (force_general_numcompare) ++ diff = general_numcompare (texta, textb); ++ else ++ diff = ((key->numeric ? numcompare : general_numcompare) ++ (texta, textb)); ++ *lima = savea, *limb = saveb; ++ } ++ else if (key->month) ++ diff = getmonth (texta, lena) - getmonth (textb, lenb); ++ else ++ { ++ if (ignore || translate) ++ { ++ char *copy_a = (char *) alloca (lena + 1 + lenb + 1); ++ char *copy_b = copy_a + lena + 1; ++ size_t new_len_a, new_len_b; ++ size_t i, j; ++ ++ /* Ignore and/or translate chars before comparing. */ ++# define IGNORE_CHARS(NEW_LEN, LEN, TEXT, COPY, WC, MBLENGTH, STATE) \ ++ do \ ++ { \ ++ wchar_t uwc; \ ++ char mbc[MB_LEN_MAX]; \ ++ mbstate_t state_wc; \ ++ \ ++ for (NEW_LEN = i = 0; i < LEN;) \ ++ { \ ++ mbstate_t state_bak; \ ++ \ ++ state_bak = STATE; \ ++ MBLENGTH = mbrtowc (&WC, TEXT + i, LEN - i, &STATE); \ ++ \ ++ if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1 \ ++ || MBLENGTH == 0) \ ++ { \ ++ if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1) \ ++ STATE = state_bak; \ ++ if (!ignore) \ ++ COPY[NEW_LEN++] = TEXT[i++]; \ ++ continue; \ ++ } \ ++ \ ++ if (ignore) \ ++ { \ ++ if ((ignore == nonprinting && !iswprint (WC)) \ ++ || (ignore == nondictionary \ ++ && !iswalnum (WC) && !iswblank (WC))) \ ++ { \ ++ i += MBLENGTH; \ ++ continue; \ ++ } \ ++ } \ ++ \ ++ if (translate) \ ++ { \ ++ \ ++ uwc = towupper(WC); \ ++ if (WC == uwc) \ ++ { \ ++ memcpy (mbc, TEXT + i, MBLENGTH); \ ++ i += MBLENGTH; \ ++ } \ ++ else \ ++ { \ ++ i += MBLENGTH; \ ++ WC = uwc; \ ++ memset (&state_wc, '\0', sizeof (mbstate_t)); \ ++ \ ++ MBLENGTH = wcrtomb (mbc, WC, &state_wc); \ ++ assert (MBLENGTH != (size_t)-1 && MBLENGTH != 0); \ ++ } \ ++ \ ++ for (j = 0; j < MBLENGTH; j++) \ ++ COPY[NEW_LEN++] = mbc[j]; \ ++ } \ ++ else \ ++ for (j = 0; j < MBLENGTH; j++) \ ++ COPY[NEW_LEN++] = TEXT[i++]; \ ++ } \ ++ COPY[NEW_LEN] = '\0'; \ ++ } \ ++ while (0) ++ IGNORE_CHARS (new_len_a, lena, texta, copy_a, ++ wc_a, mblength_a, state_a); ++ IGNORE_CHARS (new_len_b, lenb, textb, copy_b, ++ wc_b, mblength_b, state_b); ++ diff = xmemcoll (copy_a, new_len_a, copy_b, new_len_b); ++ } ++ else if (lena == 0) ++ diff = - NONZERO (lenb); ++ else if (lenb == 0) ++ goto greater; ++ else ++ diff = xmemcoll (texta, lena, textb, lenb); ++ } ++ ++ if (diff) ++ goto not_equal; ++ ++ key = key->next; ++ if (! key) ++ break; ++ ++ /* Find the beginning and limit of the next field. */ ++ if (key->eword != -1) ++ lima = limfield (a, key), limb = limfield (b, key); ++ else ++ lima = a->text + a->length - 1, limb = b->text + b->length - 1; ++ ++ if (key->sword != -1) ++ texta = begfield (a, key), textb = begfield (b, key); ++ else ++ { ++ texta = a->text, textb = b->text; ++ if (key->skipsblanks) ++ { ++ while (texta < lima && ismbblank (texta, lima - texta, &mblength_a)) ++ texta += mblength_a; ++ while (textb < limb && ismbblank (textb, limb - textb, &mblength_b)) ++ textb += mblength_b; ++ } ++ } ++ } ++ ++ return 0; ++ ++greater: ++ diff = 1; ++not_equal: ++ return key->reverse ? -diff : diff; ++} ++#endif ++ + /* Compare two lines A and B, returning negative, zero, or positive + depending on whether A compares less than, equal to, or greater than B. */ + +@@ -2744,7 +3305,7 @@ + initialize_exit_failure (SORT_FAILURE); + + hard_LC_COLLATE = hard_locale (LC_COLLATE); +-#if HAVE_NL_LANGINFO ++#if HAVE_LANGINFO_CODESET + hard_LC_TIME = hard_locale (LC_TIME); + #endif + +@@ -2765,6 +3326,27 @@ + thousands_sep = -1; + } + ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ inittables = inittables_mb; ++ begfield = begfield_mb; ++ limfield = limfield_mb; ++ getmonth = getmonth_mb; ++ keycompare = keycompare_mb; ++ numcompare = numcompare_mb; ++ } ++ else ++#endif ++ { ++ inittables = inittables_uni; ++ begfield = begfield_uni; ++ limfield = limfield_uni; ++ getmonth = getmonth_uni; ++ keycompare = keycompare_uni; ++ numcompare = numcompare_uni; ++ } ++ + have_read_stdin = false; + inittables (); + +@@ -3015,13 +3597,35 @@ + + case 't': + { +- char newtab = optarg[0]; +- if (! newtab) ++ char newtab[MB_LEN_MAX + 1]; ++ size_t newtab_length = 1; ++ strncpy (newtab, optarg, MB_LEN_MAX); ++ if (! newtab[0]) + error (SORT_FAILURE, 0, _("empty tab")); +- if (optarg[1]) ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ wchar_t wc; ++ mbstate_t state; ++ size_t i; ++ ++ memset (&state, '\0', sizeof (mbstate_t)); ++ newtab_length = mbrtowc (&wc, newtab, strnlen (newtab, ++ MB_LEN_MAX), ++ &state); ++ switch (newtab_length) ++ { ++ case (size_t) -1: ++ case (size_t) -2: ++ case 0: ++ newtab_length = 1; ++ } ++ } ++#endif ++ if (newtab_length == 1 && optarg[1]) + { + if (STREQ (optarg, "\\0")) +- newtab = '\0'; ++ newtab[0] = '\0'; + else + { + /* Provoke with `sort -txx'. Complain about +@@ -3032,9 +3636,12 @@ + quote (optarg)); + } + } +- if (tab != TAB_DEFAULT && tab != newtab) ++ if (tab_length ++ && (tab_length != newtab_length ++ || memcmp (tab, newtab, tab_length) != 0)) + error (SORT_FAILURE, 0, _("incompatible tabs")); +- tab = newtab; ++ memcpy (tab, newtab, newtab_length); ++ tab_length = newtab_length; + } + break; + +--- coreutils-6.8+/src/unexpand.c.i18n 2007-01-14 15:41:28.000000000 +0000 ++++ coreutils-6.8+/src/unexpand.c 2007-03-01 15:08:24.000000000 +0000 +@@ -39,11 +39,28 @@ + #include + #include + #include ++ ++/* Get mbstate_t, mbrtowc(), wcwidth(). */ ++#if HAVE_WCHAR_H ++# include ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" + #include "xstrndup.h" + ++/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC ++ installation; work around this configuration error. */ ++#if !defined MB_LEN_MAX || MB_LEN_MAX < 2 ++# define MB_LEN_MAX 16 ++#endif ++ ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ + /* The official name of this program (e.g., no `g' prefix). */ + #define PROGRAM_NAME "unexpand" + +@@ -110,6 +127,208 @@ + {NULL, 0, NULL, 0} + }; + ++static FILE *next_file (FILE *fp); ++ ++#if HAVE_MBRTOWC ++static void ++unexpand_multibyte (void) ++{ ++ FILE *fp; /* Input stream. */ ++ mbstate_t i_state; /* Current shift state of the input stream. */ ++ mbstate_t i_state_bak; /* Back up the I_STATE. */ ++ mbstate_t o_state; /* Current shift state of the output stream. */ ++ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */ ++ char *bufpos; /* Next read position of BUF. */ ++ size_t buflen = 0; /* The length of the byte sequence in buf. */ ++ wint_t wc; /* A gotten wide character. */ ++ size_t mblength; /* The byte size of a multibyte character ++ which shows as same character as WC. */ ++ ++ /* Index in `tab_list' of next tabstop: */ ++ int tab_index = 0; /* For calculating width of pending tabs. */ ++ int print_tab_index = 0; /* For printing as many tabs as possible. */ ++ unsigned int column = 0; /* Column on screen of next char. */ ++ int next_tab_column; /* Column the next tab stop is on. */ ++ int convert = 1; /* If nonzero, perform translations. */ ++ unsigned int pending = 0; /* Pending columns of blanks. */ ++ ++ fp = next_file ((FILE *) NULL); ++ if (fp == NULL) ++ return; ++ ++ memset (&o_state, '\0', sizeof(mbstate_t)); ++ memset (&i_state, '\0', sizeof(mbstate_t)); ++ ++ for (;;) ++ { ++ if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp)) ++ { ++ memmove (buf, bufpos, buflen); ++ buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp); ++ bufpos = buf; ++ } ++ ++ /* Get a wide character. */ ++ if (buflen < 1) ++ { ++ mblength = 1; ++ wc = WEOF; ++ } ++ else ++ { ++ i_state_bak = i_state; ++ mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &i_state); ++ } ++ ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ i_state = i_state_bak; ++ wc = L'\0'; ++ } ++ ++ if (wc == L' ' && convert && column < INT_MAX) ++ { ++ ++pending; ++ ++column; ++ } ++ else if (wc == L'\t' && convert) ++ { ++ if (tab_size == 0) ++ { ++ /* Do not let tab_index == first_free_tab; ++ stop when it is 1 less. */ ++ while (tab_index < first_free_tab - 1 ++ && column >= tab_list[tab_index]) ++ tab_index++; ++ next_tab_column = tab_list[tab_index]; ++ if (tab_index < first_free_tab - 1) ++ tab_index++; ++ if (column >= next_tab_column) ++ { ++ convert = 0; /* Ran out of tab stops. */ ++ goto flush_pend_mb; ++ } ++ } ++ else ++ { ++ next_tab_column = column + tab_size - column % tab_size; ++ } ++ pending += next_tab_column - column; ++ column = next_tab_column; ++ } ++ else ++ { ++flush_pend_mb: ++ /* Flush pending spaces. Print as many tabs as possible, ++ then print the rest as spaces. */ ++ if (pending == 1) ++ { ++ putchar (' '); ++ pending = 0; ++ } ++ column -= pending; ++ while (pending > 0) ++ { ++ if (tab_size == 0) ++ { ++ /* Do not let print_tab_index == first_free_tab; ++ stop when it is 1 less. */ ++ while (print_tab_index < first_free_tab - 1 ++ && column >= tab_list[print_tab_index]) ++ print_tab_index++; ++ next_tab_column = tab_list[print_tab_index]; ++ if (print_tab_index < first_free_tab - 1) ++ print_tab_index++; ++ } ++ else ++ { ++ next_tab_column = ++ column + tab_size - column % tab_size; ++ } ++ if (next_tab_column - column <= pending) ++ { ++ putchar ('\t'); ++ pending -= next_tab_column - column; ++ column = next_tab_column; ++ } ++ else ++ { ++ --print_tab_index; ++ column += pending; ++ while (pending != 0) ++ { ++ putchar (' '); ++ pending--; ++ } ++ } ++ } ++ ++ if (wc == WEOF) ++ { ++ fp = next_file (fp); ++ if (fp == NULL) ++ break; /* No more files. */ ++ else ++ { ++ memset (&i_state, '\0', sizeof(mbstate_t)); ++ continue; ++ } ++ } ++ ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ if (convert) ++ { ++ ++column; ++ if (convert_entire_line == 0) ++ convert = 0; ++ } ++ mblength = 1; ++ putchar (buf[0]); ++ } ++ else if (mblength == 0) ++ { ++ if (convert && convert_entire_line == 0) ++ convert = 0; ++ mblength = 1; ++ putchar ('\0'); ++ } ++ else ++ { ++ if (convert) ++ { ++ if (wc == L'\b') ++ { ++ if (column > 0) ++ --column; ++ } ++ else ++ { ++ int width; /* The width of WC. */ ++ ++ width = wcwidth (wc); ++ column += (width > 0) ? width : 0; ++ if (convert_entire_line == 0) ++ convert = 0; ++ } ++ } ++ ++ if (wc == L'\n') ++ { ++ tab_index = print_tab_index = 0; ++ column = pending = 0; ++ convert = 1; ++ } ++ fwrite (bufpos, sizeof(char), mblength, stdout); ++ } ++ } ++ buflen -= mblength; ++ bufpos += mblength; ++ } ++} ++#endif ++ ++ + void + usage (int status) + { +@@ -531,7 +750,12 @@ + + file_list = (optind < argc ? &argv[optind] : stdin_argv); + +- unexpand (); ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ unexpand_multibyte (); ++ else ++#endif ++ unexpand (); + + if (have_read_stdin && fclose (stdin) != 0) + error (EXIT_FAILURE, errno, "-"); +--- coreutils-6.8+/src/pr.c.i18n 2007-01-14 15:41:28.000000000 +0000 ++++ coreutils-6.8+/src/pr.c 2007-03-01 15:08:24.000000000 +0000 +@@ -313,6 +313,32 @@ + + #include + #include ++ ++/* Get MB_LEN_MAX. */ ++#include ++/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC ++ installation; work around this configuration error. */ ++#if !defined MB_LEN_MAX || MB_LEN_MAX == 1 ++# define MB_LEN_MAX 16 ++#endif ++ ++/* Get MB_CUR_MAX. */ ++#include ++ ++/* Solaris 2.5 has a bug: must be included before . */ ++/* Get mbstate_t, mbrtowc(), wcwidth(). */ ++#if HAVE_WCHAR_H ++# include ++#endif ++ ++/* Get iswprint(). -- for wcwidth(). */ ++#if HAVE_WCTYPE_H ++# include ++#endif ++#if !defined iswprint && !HAVE_ISWPRINT ++# define iswprint(wc) 1 ++#endif ++ + #include "system.h" + #include "error.h" + #include "hard-locale.h" +@@ -324,6 +350,18 @@ + #include "strftime.h" + #include "xstrtol.h" + ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ ++#ifndef HAVE_DECL_WCWIDTH ++"this configure-time declaration test was not run" ++#endif ++#if !HAVE_DECL_WCWIDTH ++extern int wcwidth (); ++#endif ++ + /* The official name of this program (e.g., no `g' prefix). */ + #define PROGRAM_NAME "pr" + +@@ -416,7 +454,20 @@ + + #define NULLCOL (COLUMN *)0 + +-static int char_to_clump (char c); ++/* Funtion pointers to switch functions for single byte locale or for ++ multibyte locale. If multibyte functions do not exist in your sysytem, ++ these pointers always point the function for single byte locale. */ ++static void (*print_char) (char c); ++static int (*char_to_clump) (char c); ++ ++/* Functions for single byte locale. */ ++static void print_char_single (char c); ++static int char_to_clump_single (char c); ++ ++/* Functions for multibyte locale. */ ++static void print_char_multi (char c); ++static int char_to_clump_multi (char c); ++ + static bool read_line (COLUMN *p); + static bool print_page (void); + static bool print_stored (COLUMN *p); +@@ -426,6 +477,7 @@ + static void pad_across_to (int position); + static void add_line_number (COLUMN *p); + static void getoptarg (char *arg, char switch_char, char *character, ++ int *character_length, int *character_width, + int *number); + void usage (int status); + static void print_files (int number_of_files, char **av); +@@ -440,7 +492,6 @@ + static void pad_down (int lines); + static void read_rest_of_line (COLUMN *p); + static void skip_read (COLUMN *p, int column_number); +-static void print_char (char c); + static void cleanup (void); + static void print_sep_string (void); + static void separator_string (const char *optarg_S); +@@ -455,7 +506,7 @@ + we store the leftmost columns contiguously in buff. + To print a line from buff, get the index of the first character + from line_vector[i], and print up to line_vector[i + 1]. */ +-static char *buff; ++static unsigned char *buff; + + /* Index of the position in buff where the next character + will be stored. */ +@@ -559,7 +610,7 @@ + static bool untabify_input = false; + + /* (-e) The input tab character. */ +-static char input_tab_char = '\t'; ++static char input_tab_char[MB_LEN_MAX] = "\t"; + + /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ... + where the leftmost column is 1. */ +@@ -569,7 +620,10 @@ + static bool tabify_output = false; + + /* (-i) The output tab character. */ +-static char output_tab_char = '\t'; ++static char output_tab_char[MB_LEN_MAX] = "\t"; ++ ++/* (-i) The byte length of output tab character. */ ++static int output_tab_char_length = 1; + + /* (-i) The width of the output tab. */ + static int chars_per_output_tab = 8; +@@ -643,7 +697,13 @@ + static bool numbered_lines = false; + + /* (-n) Character which follows each line number. */ +-static char number_separator = '\t'; ++static char number_separator[MB_LEN_MAX] = "\t"; ++ ++/* (-n) The byte length of the character which follows each line number. */ ++static int number_separator_length = 1; ++ ++/* (-n) The character width of the character which follows each line number. */ ++static int number_separator_width = 0; + + /* (-n) line counting starts with 1st line of input file (not with 1st + line of 1st page printed). */ +@@ -696,6 +756,7 @@ + -a|COLUMN|-m is a `space' and with the -J option a `tab'. */ + static char *col_sep_string = ""; + static int col_sep_length = 0; ++static int col_sep_width = 0; + static char *column_separator = " "; + static char *line_separator = "\t"; + +@@ -852,6 +913,13 @@ + col_sep_length = (int) strlen (optarg_S); + col_sep_string = xmalloc (col_sep_length + 1); + strcpy (col_sep_string, optarg_S); ++ ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ col_sep_width = mbswidth (col_sep_string, 0); ++ else ++#endif ++ col_sep_width = col_sep_length; + } + + int +@@ -877,6 +945,21 @@ + + atexit (close_stdout); + ++/* Define which functions are used, the ones for single byte locale or the ones ++ for multibyte locale. */ ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ print_char = print_char_multi; ++ char_to_clump = char_to_clump_multi; ++ } ++ else ++#endif ++ { ++ print_char = print_char_single; ++ char_to_clump = char_to_clump_single; ++ } ++ + n_files = 0; + file_names = (argc > 1 + ? xmalloc ((argc - 1) * sizeof (char *)) +@@ -949,8 +1032,12 @@ + break; + case 'e': + if (optarg) +- getoptarg (optarg, 'e', &input_tab_char, +- &chars_per_input_tab); ++ { ++ int dummy_length, dummy_width; ++ ++ getoptarg (optarg, 'e', input_tab_char, &dummy_length, ++ &dummy_width, &chars_per_input_tab); ++ } + /* Could check tab width > 0. */ + untabify_input = true; + break; +@@ -963,8 +1050,12 @@ + break; + case 'i': + if (optarg) +- getoptarg (optarg, 'i', &output_tab_char, +- &chars_per_output_tab); ++ { ++ int dummy_width; ++ ++ getoptarg (optarg, 'i', output_tab_char, &output_tab_char_length, ++ &dummy_width, &chars_per_output_tab); ++ } + /* Could check tab width > 0. */ + tabify_output = true; + break; +@@ -991,8 +1082,8 @@ + case 'n': + numbered_lines = true; + if (optarg) +- getoptarg (optarg, 'n', &number_separator, +- &chars_per_number); ++ getoptarg (optarg, 'n', number_separator, &number_separator_length, ++ &number_separator_width, &chars_per_number); + break; + case 'N': + skip_count = false; +@@ -1031,7 +1122,7 @@ + old_s = false; + /* Reset an additional input of -s, -S dominates -s */ + col_sep_string = ""; +- col_sep_length = 0; ++ col_sep_length = col_sep_width = 0; + use_col_separator = true; + if (optarg) + separator_string (optarg); +@@ -1188,10 +1279,45 @@ + a number. */ + + static void +-getoptarg (char *arg, char switch_char, char *character, int *number) ++getoptarg (char *arg, char switch_char, char *character, int *character_length, ++ int *character_width, int *number) + { + if (!ISDIGIT (*arg)) +- *character = *arg++; ++ { ++#ifdef HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) /* for multibyte locale. */ ++ { ++ wchar_t wc; ++ size_t mblength; ++ int width; ++ mbstate_t state = {'\0'}; ++ ++ mblength = mbrtowc (&wc, arg, strnlen(arg, MB_LEN_MAX), &state); ++ ++ if (mblength == (size_t)-1 || mblength == (size_t)-2) ++ { ++ *character_length = 1; ++ *character_width = 1; ++ } ++ else ++ { ++ *character_length = (mblength < 1) ? 1 : mblength; ++ width = wcwidth (wc); ++ *character_width = (width < 0) ? 0 : width; ++ } ++ ++ strncpy (character, arg, *character_length); ++ arg += *character_length; ++ } ++ else /* for single byte locale. */ ++#endif ++ { ++ *character = *arg++; ++ *character_length = 1; ++ *character_width = 1; ++ } ++ } ++ + if (*arg) + { + long int tmp_long; +@@ -1256,7 +1382,7 @@ + else + col_sep_string = column_separator; + +- col_sep_length = 1; ++ col_sep_length = col_sep_width = 1; + use_col_separator = true; + } + /* It's rather pointless to define a TAB separator with column +@@ -1288,11 +1414,11 @@ + TAB_WIDTH (chars_per_input_tab, chars_per_number); */ + + /* Estimate chars_per_text without any margin and keep it constant. */ +- if (number_separator == '\t') ++ if (number_separator[0] == '\t') + number_width = chars_per_number + + TAB_WIDTH (chars_per_default_tab, chars_per_number); + else +- number_width = chars_per_number + 1; ++ number_width = chars_per_number + number_separator_width; + + /* The number is part of the column width unless we are + printing files in parallel. */ +@@ -1307,7 +1433,7 @@ + } + + chars_per_column = (chars_per_line - chars_used_by_number - +- (columns - 1) * col_sep_length) / columns; ++ (columns - 1) * col_sep_width) / columns; + + if (chars_per_column < 1) + error (EXIT_FAILURE, 0, _("page width too narrow")); +@@ -1432,7 +1558,7 @@ + + /* Enlarge p->start_position of first column to use the same form of + padding_not_printed with all columns. */ +- h = h + col_sep_length; ++ h = h + col_sep_width; + + /* This loop takes care of all but the rightmost column. */ + +@@ -1466,7 +1592,7 @@ + } + else + { +- h = h_next + col_sep_length; ++ h = h_next + col_sep_width; + h_next = h + chars_per_column; + } + } +@@ -1756,9 +1882,9 @@ + align_column (COLUMN *p) + { + padding_not_printed = p->start_position; +- if (padding_not_printed - col_sep_length > 0) ++ if (padding_not_printed - col_sep_width > 0) + { +- pad_across_to (padding_not_printed - col_sep_length); ++ pad_across_to (padding_not_printed - col_sep_width); + padding_not_printed = ANYWHERE; + } + +@@ -2029,13 +2155,13 @@ + /* May be too generous. */ + buff = X2REALLOC (buff, &buff_allocated); + } +- buff[buff_current++] = c; ++ buff[buff_current++] = (unsigned char) c; + } + + static void + add_line_number (COLUMN *p) + { +- int i; ++ int i, j; + char *s; + int left_cut; + +@@ -2058,22 +2184,24 @@ + /* Tabification is assumed for multiple columns, also for n-separators, + but `default n-separator = TAB' hasn't been given priority over + equal column_width also specified by POSIX. */ +- if (number_separator == '\t') ++ if (number_separator[0] == '\t') + { + i = number_width - chars_per_number; + while (i-- > 0) + (p->char_func) (' '); + } + else +- (p->char_func) (number_separator); ++ for (j = 0; j < number_separator_length; j++) ++ (p->char_func) (number_separator[j]); + } + else + /* To comply with POSIX, we avoid any expansion of default TAB + separator with a single column output. No column_width requirement + has to be considered. */ + { +- (p->char_func) (number_separator); +- if (number_separator == '\t') ++ for (j = 0; j < number_separator_length; j++) ++ (p->char_func) (number_separator[j]); ++ if (number_separator[0] == '\t') + output_position = POS_AFTER_TAB (chars_per_output_tab, + output_position); + } +@@ -2234,7 +2362,7 @@ + while (goal - h_old > 1 + && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal) + { +- putchar (output_tab_char); ++ fwrite (output_tab_char, sizeof(char), output_tab_char_length, stdout); + h_old = h_new; + } + while (++h_old <= goal) +@@ -2254,6 +2382,7 @@ + { + char *s; + int l = col_sep_length; ++ int not_space_flag; + + s = col_sep_string; + +@@ -2267,6 +2396,7 @@ + { + for (; separators_not_printed > 0; --separators_not_printed) + { ++ not_space_flag = 0; + while (l-- > 0) + { + /* 3 types of sep_strings: spaces only, spaces and chars, +@@ -2280,12 +2410,15 @@ + } + else + { ++ not_space_flag = 1; + if (spaces_not_printed > 0) + print_white_space (); + putchar (*s++); +- ++output_position; + } + } ++ if (not_space_flag) ++ output_position += col_sep_width; ++ + /* sep_string ends with some spaces */ + if (spaces_not_printed > 0) + print_white_space (); +@@ -2313,7 +2446,7 @@ + required number of tabs and spaces. */ + + static void +-print_char (char c) ++print_char_single (char c) + { + if (tabify_output) + { +@@ -2337,6 +2470,74 @@ + putchar (c); + } + ++#ifdef HAVE_MBRTOWC ++static void ++print_char_multi (char c) ++{ ++ static size_t mbc_pos = 0; ++ static char mbc[MB_LEN_MAX] = {'\0'}; ++ static mbstate_t state = {'\0'}; ++ mbstate_t state_bak; ++ wchar_t wc; ++ size_t mblength; ++ int width; ++ ++ if (tabify_output) ++ { ++ state_bak = state; ++ mbc[mbc_pos++] = c; ++ mblength = mbrtowc (&wc, mbc, mbc_pos, &state); ++ ++ while (mbc_pos > 0) ++ { ++ switch (mblength) ++ { ++ case (size_t)-2: ++ state = state_bak; ++ return; ++ ++ case (size_t)-1: ++ state = state_bak; ++ ++output_position; ++ putchar (mbc[0]); ++ memmove (mbc, mbc + 1, MB_CUR_MAX - 1); ++ --mbc_pos; ++ break; ++ ++ case 0: ++ mblength = 1; ++ ++ default: ++ if (wc == L' ') ++ { ++ memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength); ++ --mbc_pos; ++ ++spaces_not_printed; ++ return; ++ } ++ else if (spaces_not_printed > 0) ++ print_white_space (); ++ ++ /* Nonprintables are assumed to have width 0, except L'\b'. */ ++ if ((width = wcwidth (wc)) < 1) ++ { ++ if (wc == L'\b') ++ --output_position; ++ } ++ else ++ output_position += width; ++ ++ fwrite (mbc, sizeof(char), mblength, stdout); ++ memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength); ++ mbc_pos -= mblength; ++ } ++ } ++ return; ++ } ++ putchar (c); ++} ++#endif ++ + /* Skip to page PAGE before printing. + PAGE may be larger than total number of pages. */ + +@@ -2517,9 +2718,9 @@ + align_empty_cols = false; + } + +- if (padding_not_printed - col_sep_length > 0) ++ if (padding_not_printed - col_sep_width > 0) + { +- pad_across_to (padding_not_printed - col_sep_length); ++ pad_across_to (padding_not_printed - col_sep_width); + padding_not_printed = ANYWHERE; + } + +@@ -2620,9 +2821,9 @@ + } + } + +- if (padding_not_printed - col_sep_length > 0) ++ if (padding_not_printed - col_sep_width > 0) + { +- pad_across_to (padding_not_printed - col_sep_length); ++ pad_across_to (padding_not_printed - col_sep_width); + padding_not_printed = ANYWHERE; + } + +@@ -2635,8 +2836,8 @@ + if (spaces_not_printed == 0) + { + output_position = p->start_position + end_vector[line]; +- if (p->start_position - col_sep_length == chars_per_margin) +- output_position -= col_sep_length; ++ if (p->start_position - col_sep_width == chars_per_margin) ++ output_position -= col_sep_width; + } + + return true; +@@ -2655,7 +2856,7 @@ + number of characters is 1.) */ + + static int +-char_to_clump (char c) ++char_to_clump_single (char c) + { + unsigned char uc = c; + char *s = clump_buff; +@@ -2665,10 +2866,10 @@ + int chars; + int chars_per_c = 8; + +- if (c == input_tab_char) ++ if (c == input_tab_char[0]) + chars_per_c = chars_per_input_tab; + +- if (c == input_tab_char || c == '\t') ++ if (c == input_tab_char[0] || c == '\t') + { + width = TAB_WIDTH (chars_per_c, input_position); + +@@ -2739,6 +2940,154 @@ + return chars; + } + ++#ifdef HAVE_MBRTOWC ++static int ++char_to_clump_multi (char c) ++{ ++ static size_t mbc_pos = 0; ++ static char mbc[MB_LEN_MAX] = {'\0'}; ++ static mbstate_t state = {'\0'}; ++ mbstate_t state_bak; ++ wchar_t wc; ++ size_t mblength; ++ int wc_width; ++ register char *s = clump_buff; ++ register int i, j; ++ char esc_buff[4]; ++ int width; ++ int chars; ++ int chars_per_c = 8; ++ ++ state_bak = state; ++ mbc[mbc_pos++] = c; ++ mblength = mbrtowc (&wc, mbc, mbc_pos, &state); ++ ++ width = 0; ++ chars = 0; ++ while (mbc_pos > 0) ++ { ++ switch (mblength) ++ { ++ case (size_t)-2: ++ state = state_bak; ++ return 0; ++ ++ case (size_t)-1: ++ state = state_bak; ++ mblength = 1; ++ ++ if (use_esc_sequence || use_cntrl_prefix) ++ { ++ width = +4; ++ chars = +4; ++ *s++ = '\\'; ++ sprintf (esc_buff, "%03o", mbc[0]); ++ for (i = 0; i <= 2; ++i) ++ *s++ = (int) esc_buff[i]; ++ } ++ else ++ { ++ width += 1; ++ chars += 1; ++ *s++ = mbc[0]; ++ } ++ break; ++ ++ case 0: ++ mblength = 1; ++ /* Fall through */ ++ ++ default: ++ if (memcmp (mbc, input_tab_char, mblength) == 0) ++ chars_per_c = chars_per_input_tab; ++ ++ if (memcmp (mbc, input_tab_char, mblength) == 0 || c == '\t') ++ { ++ int width_inc; ++ ++ width_inc = TAB_WIDTH (chars_per_c, input_position); ++ width += width_inc; ++ ++ if (untabify_input) ++ { ++ for (i = width_inc; i; --i) ++ *s++ = ' '; ++ chars += width_inc; ++ } ++ else ++ { ++ for (i = 0; i < mblength; i++) ++ *s++ = mbc[i]; ++ chars += mblength; ++ } ++ } ++ else if ((wc_width = wcwidth (wc)) < 1) ++ { ++ if (use_esc_sequence) ++ { ++ for (i = 0; i < mblength; i++) ++ { ++ width += 4; ++ chars += 4; ++ *s++ = '\\'; ++ sprintf (esc_buff, "%03o", c); ++ for (j = 0; j <= 2; ++j) ++ *s++ = (int) esc_buff[j]; ++ } ++ } ++ else if (use_cntrl_prefix) ++ { ++ if (wc < 0200) ++ { ++ width += 2; ++ chars += 2; ++ *s++ = '^'; ++ *s++ = wc ^ 0100; ++ } ++ else ++ { ++ for (i = 0; i < mblength; i++) ++ { ++ width += 4; ++ chars += 4; ++ *s++ = '\\'; ++ sprintf (esc_buff, "%03o", c); ++ for (j = 0; j <= 2; ++j) ++ *s++ = (int) esc_buff[j]; ++ } ++ } ++ } ++ else if (wc == L'\b') ++ { ++ width += -1; ++ chars += 1; ++ *s++ = c; ++ } ++ else ++ { ++ width += 0; ++ chars += mblength; ++ for (i = 0; i < mblength; i++) ++ *s++ = mbc[i]; ++ } ++ } ++ else ++ { ++ width += wc_width; ++ chars += mblength; ++ for (i = 0; i < mblength; i++) ++ *s++ = mbc[i]; ++ } ++ } ++ memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength); ++ mbc_pos -= mblength; ++ } ++ ++ input_position += width; ++ return chars; ++} ++#endif ++ + /* We've just printed some files and need to clean up things before + looking for more options and printing the next batch of files. + +--- coreutils-6.8+/src/cut.c.i18n 2007-01-14 15:41:28.000000000 +0000 ++++ coreutils-6.8+/src/cut.c 2007-03-01 15:08:24.000000000 +0000 +@@ -29,6 +29,11 @@ + #include + #include + #include ++ ++/* Get mbstate_t, mbrtowc(). */ ++#if HAVE_WCHAR_H ++# include ++#endif + #include "system.h" + + #include "error.h" +@@ -37,6 +42,18 @@ + #include "quote.h" + #include "xstrndup.h" + ++/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC ++ installation; work around this configuration error. */ ++#if !defined MB_LEN_MAX || MB_LEN_MAX < 2 ++# undef MB_LEN_MAX ++# define MB_LEN_MAX 16 ++#endif ++ ++/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ ++#if HAVE_MBRTOWC && defined mbstate_t ++# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) ++#endif ++ + /* The official name of this program (e.g., no `g' prefix). */ + #define PROGRAM_NAME "cut" + +@@ -67,6 +84,52 @@ + } \ + while (0) + ++/* Refill the buffer BUF to get a multibyte character. */ ++#define REFILL_BUFFER(BUF, BUFPOS, BUFLEN, STREAM) \ ++ do \ ++ { \ ++ if (BUFLEN < MB_LEN_MAX && !feof (STREAM) && !ferror (STREAM)) \ ++ { \ ++ memmove (BUF, BUFPOS, BUFLEN); \ ++ BUFLEN += fread (BUF + BUFLEN, sizeof(char), BUFSIZ, STREAM); \ ++ BUFPOS = BUF; \ ++ } \ ++ } \ ++ while (0) ++ ++/* Get wide character on BUFPOS. BUFPOS is not included after that. ++ If byte sequence is not valid as a character, CONVFAIL is 1. Otherwise 0. */ ++#define GET_NEXT_WC_FROM_BUFFER(WC, BUFPOS, BUFLEN, MBLENGTH, STATE, CONVFAIL) \ ++ do \ ++ { \ ++ mbstate_t state_bak; \ ++ \ ++ if (BUFLEN < 1) \ ++ { \ ++ WC = WEOF; \ ++ break; \ ++ } \ ++ \ ++ /* Get a wide character. */ \ ++ CONVFAIL = 0; \ ++ state_bak = STATE; \ ++ MBLENGTH = mbrtowc ((wchar_t *)&WC, BUFPOS, BUFLEN, &STATE); \ ++ \ ++ switch (MBLENGTH) \ ++ { \ ++ case (size_t)-1: \ ++ case (size_t)-2: \ ++ CONVFAIL++; \ ++ STATE = state_bak; \ ++ /* Fall througn. */ \ ++ \ ++ case 0: \ ++ MBLENGTH = 1; \ ++ break; \ ++ } \ ++ } \ ++ while (0) ++ + struct range_pair + { + size_t lo; +@@ -85,7 +148,7 @@ + /* The number of bytes allocated for FIELD_1_BUFFER. */ + static size_t field_1_bufsize; + +-/* The largest field or byte index used as an endpoint of a closed ++/* The largest byte, character or field index used as an endpoint of a closed + or degenerate range specification; this doesn't include the starting + index of right-open-ended ranges. For example, with either range spec + `2-5,9-', `2-3,5,9-' this variable would be set to 5. */ +@@ -97,10 +160,11 @@ + + /* This is a bit vector. + In byte mode, which bytes to output. ++ In character mode, which characters to output. + In field mode, which DELIM-separated fields to output. +- Both bytes and fields are numbered starting with 1, ++ Bytes, characters and fields are numbered starting with 1, + so the zeroth bit of this array is unused. +- A field or byte K has been selected if ++ A byte, character or field K has been selected if + (K <= MAX_RANGE_ENDPOINT and is_printable_field(K)) + || (EOL_RANGE_START > 0 && K >= EOL_RANGE_START). */ + static unsigned char *printable_field; +@@ -109,9 +173,12 @@ + { + undefined_mode, + +- /* Output characters that are in the given bytes. */ ++ /* Output bytes that are at the given positions. */ + byte_mode, + ++ /* Output characters that are at the given positions. */ ++ character_mode, ++ + /* Output the given delimeter-separated fields. */ + field_mode + }; +@@ -121,6 +188,13 @@ + + static enum operating_mode operating_mode; + ++/* If nonzero, when in byte mode, don't split multibyte characters. */ ++static int byte_mode_character_aware; ++ ++/* If nonzero, the function for single byte locale is work ++ if this program runs on multibyte locale. */ ++static int force_singlebyte_mode; ++ + /* If true do not output lines containing no delimeter characters. + Otherwise, all such lines are printed. This option is valid only + with field mode. */ +@@ -132,6 +206,9 @@ + + /* The delimeter character for field mode. */ + static unsigned char delim; ++#if HAVE_WCHAR_H ++static wchar_t wcdelim; ++#endif + + /* True if the --output-delimiter=STRING option was specified. */ + static bool output_delimiter_specified; +@@ -205,7 +282,7 @@ + -f, --fields=LIST select only these fields; also print any line\n\ + that contains no delimiter character, unless\n\ + the -s option is specified\n\ +- -n (ignored)\n\ ++ -n with -b: don't split multibyte characters\n\ + "), stdout); + fputs (_("\ + --complement complement the set of selected bytes, characters\n\ +@@ -362,7 +439,7 @@ + in_digits = false; + /* Starting a range. */ + if (dash_found) +- FATAL_ERROR (_("invalid byte or field list")); ++ FATAL_ERROR (_("invalid byte, character or field list")); + dash_found = true; + fieldstr++; + +@@ -387,14 +464,16 @@ + if (!rhs_specified) + { + /* `n-'. From `initial' to end of line. */ +- eol_range_start = initial; ++ if (eol_range_start == 0 || ++ (eol_range_start != 0 && eol_range_start > initial)) ++ eol_range_start = initial; + field_found = true; + } + else + { + /* `m-n' or `-n' (1-n). */ + if (value < initial) +- FATAL_ERROR (_("invalid decreasing range")); ++ FATAL_ERROR (_("invalid byte, character or field list")); + + /* Is there already a range going to end of line? */ + if (eol_range_start != 0) +@@ -467,6 +546,9 @@ + if (operating_mode == byte_mode) + error (0, 0, + _("byte offset %s is too large"), quote (bad_num)); ++ else if (operating_mode == character_mode) ++ error (0, 0, ++ _("character offset %s is too large"), quote (bad_num)); + else + error (0, 0, + _("field number %s is too large"), quote (bad_num)); +@@ -477,7 +559,7 @@ + fieldstr++; + } + else +- FATAL_ERROR (_("invalid byte or field list")); ++ FATAL_ERROR (_("invalid byte, character or field list")); + } + + max_range_endpoint = 0; +@@ -570,6 +652,63 @@ + } + } + ++#if HAVE_MBRTOWC ++/* This function is in use for the following case. ++ ++ 1. Read from the stream STREAM, printing to standard output any selected ++ characters. ++ ++ 2. Read from stream STREAM, printing to standard output any selected bytes, ++ without splitting multibyte characters. */ ++ ++static void ++cut_characters_or_cut_bytes_no_split (FILE *stream) ++{ ++ int idx; /* number of bytes or characters in the line so far. */ ++ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */ ++ char *bufpos; /* Next read position of BUF. */ ++ size_t buflen; /* The length of the byte sequence in buf. */ ++ wint_t wc; /* A gotten wide character. */ ++ size_t mblength; /* The byte size of a multibyte character which shows ++ as same character as WC. */ ++ mbstate_t state; /* State of the stream. */ ++ int convfail; /* 1, when conversion is failed. Otherwise 0. */ ++ ++ idx = 0; ++ buflen = 0; ++ bufpos = buf; ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ while (1) ++ { ++ REFILL_BUFFER (buf, bufpos, buflen, stream); ++ ++ GET_NEXT_WC_FROM_BUFFER (wc, bufpos, buflen, mblength, state, convfail); ++ ++ if (wc == WEOF) ++ { ++ if (idx > 0) ++ putchar ('\n'); ++ break; ++ } ++ else if (wc == L'\n') ++ { ++ putchar ('\n'); ++ idx = 0; ++ } ++ else ++ { ++ idx += (operating_mode == byte_mode) ? mblength : 1; ++ if (print_kth (idx, NULL)) ++ fwrite (bufpos, mblength, sizeof(char), stdout); ++ } ++ ++ buflen -= mblength; ++ bufpos += mblength; ++ } ++} ++#endif ++ + /* Read from stream STREAM, printing to standard output any selected fields. */ + + static void +@@ -692,13 +831,192 @@ + } + } + ++#if HAVE_MBRTOWC ++static void ++cut_fields_mb (FILE *stream) ++{ ++ int c; ++ unsigned int field_idx; ++ int found_any_selected_field; ++ int buffer_first_field; ++ int empty_input; ++ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */ ++ char *bufpos; /* Next read position of BUF. */ ++ size_t buflen; /* The length of the byte sequence in buf. */ ++ wint_t wc = 0; /* A gotten wide character. */ ++ size_t mblength; /* The byte size of a multibyte character which shows ++ as same character as WC. */ ++ mbstate_t state; /* State of the stream. */ ++ int convfail; /* 1, when conversion is failed. Otherwise 0. */ ++ ++ found_any_selected_field = 0; ++ field_idx = 1; ++ bufpos = buf; ++ buflen = 0; ++ memset (&state, '\0', sizeof(mbstate_t)); ++ ++ c = getc (stream); ++ empty_input = (c == EOF); ++ if (c != EOF) ++ ungetc (c, stream); ++ else ++ wc = WEOF; ++ ++ /* To support the semantics of the -s flag, we may have to buffer ++ all of the first field to determine whether it is `delimited.' ++ But that is unnecessary if all non-delimited lines must be printed ++ and the first field has been selected, or if non-delimited lines ++ must be suppressed and the first field has *not* been selected. ++ That is because a non-delimited line has exactly one field. */ ++ buffer_first_field = (suppress_non_delimited ^ !print_kth (1, NULL)); ++ ++ while (1) ++ { ++ if (field_idx == 1 && buffer_first_field) ++ { ++ int len = 0; ++ ++ while (1) ++ { ++ REFILL_BUFFER (buf, bufpos, buflen, stream); ++ ++ GET_NEXT_WC_FROM_BUFFER ++ (wc, bufpos, buflen, mblength, state, convfail); ++ ++ if (wc == WEOF) ++ break; ++ ++ field_1_buffer = xrealloc (field_1_buffer, len + mblength); ++ memcpy (field_1_buffer + len, bufpos, mblength); ++ len += mblength; ++ buflen -= mblength; ++ bufpos += mblength; ++ ++ if (!convfail && (wc == L'\n' || wc == wcdelim)) ++ break; ++ } ++ ++ if (wc == WEOF) ++ break; ++ ++ /* If the first field extends to the end of line (it is not ++ delimited) and we are printing all non-delimited lines, ++ print this one. */ ++ if (convfail || (!convfail && wc != wcdelim)) ++ { ++ if (suppress_non_delimited) ++ { ++ /* Empty. */ ++ } ++ else ++ { ++ fwrite (field_1_buffer, sizeof (char), len, stdout); ++ /* Make sure the output line is newline terminated. */ ++ if (convfail || (!convfail && wc != L'\n')) ++ putchar ('\n'); ++ } ++ continue; ++ } ++ ++ if (print_kth (1, NULL)) ++ { ++ /* Print the field, but not the trailing delimiter. */ ++ fwrite (field_1_buffer, sizeof (char), len - 1, stdout); ++ found_any_selected_field = 1; ++ } ++ ++field_idx; ++ } ++ ++ if (wc != WEOF) ++ { ++ if (print_kth (field_idx, NULL)) ++ { ++ if (found_any_selected_field) ++ { ++ fwrite (output_delimiter_string, sizeof (char), ++ output_delimiter_length, stdout); ++ } ++ found_any_selected_field = 1; ++ } ++ ++ while (1) ++ { ++ REFILL_BUFFER (buf, bufpos, buflen, stream); ++ ++ GET_NEXT_WC_FROM_BUFFER ++ (wc, bufpos, buflen, mblength, state, convfail); ++ ++ if (wc == WEOF) ++ break; ++ else if (!convfail && (wc == wcdelim || wc == L'\n')) ++ { ++ buflen -= mblength; ++ bufpos += mblength; ++ break; ++ } ++ ++ if (print_kth (field_idx, NULL)) ++ fwrite (bufpos, mblength, sizeof(char), stdout); ++ ++ buflen -= mblength; ++ bufpos += mblength; ++ } ++ } ++ ++ if ((!convfail || wc == L'\n') && buflen < 1) ++ wc = WEOF; ++ ++ if (!convfail && wc == wcdelim) ++ ++field_idx; ++ else if (wc == WEOF || (!convfail && wc == L'\n')) ++ { ++ if (found_any_selected_field ++ || (!empty_input && !(suppress_non_delimited && field_idx == 1))) ++ putchar ('\n'); ++ if (wc == WEOF) ++ break; ++ field_idx = 1; ++ found_any_selected_field = 0; ++ } ++ } ++} ++#endif ++ + static void + cut_stream (FILE *stream) + { +- if (operating_mode == byte_mode) +- cut_bytes (stream); ++#if HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1 && !force_singlebyte_mode) ++ { ++ switch (operating_mode) ++ { ++ case byte_mode: ++ if (byte_mode_character_aware) ++ cut_characters_or_cut_bytes_no_split (stream); ++ else ++ cut_bytes (stream); ++ break; ++ ++ case character_mode: ++ cut_characters_or_cut_bytes_no_split (stream); ++ break; ++ ++ case field_mode: ++ cut_fields_mb (stream); ++ break; ++ ++ default: ++ abort (); ++ } ++ } + else +- cut_fields (stream); ++#endif ++ { ++ if (operating_mode == field_mode) ++ cut_fields (stream); ++ else ++ cut_bytes (stream); ++ } + } + + /* Process file FILE to standard output. +@@ -748,6 +1066,8 @@ + bool ok; + bool delim_specified = false; + char *spec_list_string IF_LINT(= NULL); ++ char mbdelim[MB_LEN_MAX + 1]; ++ size_t delimlen = 0; + + initialize_main (&argc, &argv); + program_name = argv[0]; +@@ -770,7 +1090,6 @@ + switch (optc) + { + case 'b': +- case 'c': + /* Build the byte list. */ + if (operating_mode != undefined_mode) + FATAL_ERROR (_("only one type of list may be specified")); +@@ -778,6 +1097,14 @@ + spec_list_string = optarg; + break; + ++ case 'c': ++ /* Build the character list. */ ++ if (operating_mode != undefined_mode) ++ FATAL_ERROR (_("only one type of list may be specified")); ++ operating_mode = character_mode; ++ spec_list_string = optarg; ++ break; ++ + case 'f': + /* Build the field list. */ + if (operating_mode != undefined_mode) +@@ -789,10 +1116,35 @@ + case 'd': + /* New delimiter. */ + /* Interpret -d '' to mean `use the NUL byte as the delimiter.' */ +- if (optarg[0] != '\0' && optarg[1] != '\0') +- FATAL_ERROR (_("the delimiter must be a single character")); +- delim = optarg[0]; +- delim_specified = true; ++ { ++#if HAVE_MBRTOWC ++ if(MB_CUR_MAX > 1) ++ { ++ mbstate_t state; ++ ++ memset (&state, '\0', sizeof(mbstate_t)); ++ delimlen = mbrtowc (&wcdelim, optarg, strnlen(optarg, MB_LEN_MAX), &state); ++ ++ if (delimlen == (size_t)-1 || delimlen == (size_t)-2) ++ ++force_singlebyte_mode; ++ else ++ { ++ delimlen = (delimlen < 1) ? 1 : delimlen; ++ if (wcdelim != L'\0' && *(optarg + delimlen) != '\0') ++ FATAL_ERROR (_("the delimiter must be a single character")); ++ memcpy (mbdelim, optarg, delimlen); ++ } ++ } ++ ++ if (MB_CUR_MAX <= 1 || force_singlebyte_mode) ++#endif ++ { ++ if (optarg[0] != '\0' && optarg[1] != '\0') ++ FATAL_ERROR (_("the delimiter must be a single character")); ++ delim = (unsigned char) optarg[0]; ++ } ++ delim_specified = true; ++ } + break; + + case OUTPUT_DELIMITER_OPTION: +@@ -805,6 +1157,7 @@ + break; + + case 'n': ++ byte_mode_character_aware = 1; + break; + + case 's': +@@ -827,7 +1180,7 @@ + if (operating_mode == undefined_mode) + FATAL_ERROR (_("you must specify a list of bytes, characters, or fields")); + +- if (delim != '\0' && operating_mode != field_mode) ++ if (delim_specified && operating_mode != field_mode) + FATAL_ERROR (_("an input delimiter may be specified only\ + when operating on fields")); + +@@ -854,15 +1207,34 @@ + } + + if (!delim_specified) +- delim = '\t'; ++ { ++ delim = '\t'; ++#ifdef HAVE_MBRTOWC ++ wcdelim = L'\t'; ++ mbdelim[0] = '\t'; ++ mbdelim[1] = '\0'; ++ delimlen = 1; ++#endif ++ } + + if (output_delimiter_string == NULL) + { +- static char dummy[2]; +- dummy[0] = delim; +- dummy[1] = '\0'; +- output_delimiter_string = dummy; +- output_delimiter_length = 1; ++#ifdef HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1 && !force_singlebyte_mode) ++ { ++ output_delimiter_string = xstrdup(mbdelim); ++ output_delimiter_length = delimlen; ++ } ++ ++ if (MB_CUR_MAX <= 1 || force_singlebyte_mode) ++#endif ++ { ++ static char dummy[2]; ++ dummy[0] = delim; ++ dummy[1] = '\0'; ++ output_delimiter_string = dummy; ++ output_delimiter_length = 1; ++ } + } + + if (optind == argc) diff --git a/abs/core-testing/coreutils/coreutils-pam.patch b/abs/core-testing/coreutils/coreutils-pam.patch new file mode 100644 index 0000000..8593ecc --- /dev/null +++ b/abs/core-testing/coreutils/coreutils-pam.patch @@ -0,0 +1,413 @@ +--- coreutils-6.7/src/Makefile.am.pam 2006-11-24 21:28:10.000000000 +0000 ++++ coreutils-6.7/src/Makefile.am 2007-01-09 17:00:01.000000000 +0000 +@@ -103,7 +103,7 @@ + # If necessary, add -lm to resolve use of pow in lib/strtod.c. + uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS) + +-su_LDADD = $(LDADD) $(LIB_CRYPT) ++su_LDADD = $(LDADD) $(LIB_CRYPT) @LIB_PAM@ + + dir_LDADD += $(LIB_ACL) + ls_LDADD += $(LIB_ACL) +--- coreutils-6.7/src/su.c.pam 2007-01-09 17:00:01.000000000 +0000 ++++ coreutils-6.7/src/su.c 2007-01-09 17:16:43.000000000 +0000 +@@ -38,6 +38,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. +@@ -59,6 +69,15 @@ + prototype (returning `int') in . */ + #define getusershell _getusershell_sys_proto_ + ++#ifdef USE_PAM ++# include ++# include ++# include ++# include ++# include ++# include ++#endif /* USE_PAM */ ++ + #include "system.h" + #include "getpass.h" + +@@ -128,15 +147,22 @@ + /* The user to become if none is specified. */ + #define DEFAULT_USER "root" + ++#ifndef USE_PAM + char *crypt (); ++#endif + char *getusershell (); + void endusershell (); + void setusershell (); + + extern char **environ; + +-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 + + /* The name this program was run with. */ + char *program_name; +@@ -225,7 +251,26 @@ + } + #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. */ +@@ -233,6 +278,44 @@ + 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. */ +@@ -257,6 +340,7 @@ + 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 +@@ -270,12 +354,18 @@ + /* 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); +@@ -308,8 +398,13 @@ + { + #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_FAILURE, errno, _("cannot set groups")); ++ } + endgrent (); + #endif + if (setgid (pw->pw_gid)) +@@ -318,6 +413,31 @@ + error (EXIT_FAILURE, 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 +@@ -325,17 +445,49 @@ + + 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] = '-'; +@@ -360,6 +512,66 @@ + 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 (WIFSTOPPED(status)) { ++ kill(getpid(), SIGSTOP); ++ /* once we get here, we must have resumed */ ++ kill(pid, SIGCONT); ++ } ++ } while (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 (WEXITSTATUS(status)); ++#endif /* USE_PAM */ + } + + /* Return true if SHELL is a restricted shell (one not returned by +@@ -527,9 +739,9 @@ + 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 + +- run_shell (shell, command, argv + optind, MAX (0, argc - optind)); ++ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw); + } +--- coreutils-6.7/doc/coreutils.texi.pam 2006-10-27 15:30:48.000000000 +0100 ++++ coreutils-6.7/doc/coreutils.texi 2007-01-09 17:00:01.000000000 +0000 +@@ -13395,8 +13395,11 @@ + @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}. + +@@ -13477,33 +13480,6 @@ + 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 Process control + @chapter Process control + +--- coreutils-6.7/configure.ac.pam 2006-12-07 21:30:24.000000000 +0000 ++++ coreutils-6.7/configure.ac 2007-01-09 17:18:04.000000000 +0000 +@@ -44,6 +44,13 @@ + gl_INIT + coreutils_MACROS + ++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 --git a/abs/core-testing/coreutils/coreutils-uname.patch b/abs/core-testing/coreutils/coreutils-uname.patch new file mode 100644 index 0000000..93cb134 --- /dev/null +++ b/abs/core-testing/coreutils/coreutils-uname.patch @@ -0,0 +1,173 @@ +On linux platforms, grok /proc/cpuinfo for the CPU/vendor info. + +Prob not suitable for upstream seeing as how it's 100% linux-specific +http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html + +Patch originally by Carlos E. Gorges , but +heavily reworked to suck less. + +To add support for additional platforms, check out the show_cpuinfo() +func in the linux/arch// source tree of the kernel. + +--- coreutils/src/uname.c ++++ coreutils/src/uname.c +@@ -51,6 +51,11 @@ + # include + #endif + ++#if defined (__linux__) ++# define USE_PROCINFO ++# define UNAME_HARDWARE_PLATFORM ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" +@@ -138,6 +143,117 @@ + exit (status); + } + ++#if defined(USE_PROCINFO) ++ ++# if defined(__s390__) || defined(__s390x__) ++# define CPUINFO_FILE "/proc/sysinfo" ++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c" ++# else ++# define CPUINFO_FILE "/proc/cpuinfo" ++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c" ++# endif ++ ++# define PROCINFO_PROCESSOR 0 ++# define PROCINFO_HARDWARE_PLATFORM 1 ++ ++static void __eat_cpuinfo_space(char *buf) ++{ ++ /* first eat trailing space */ ++ char *tmp = buf + strlen(buf) - 1; ++ while (tmp > buf && isspace(*tmp)) ++ *tmp-- = '\0'; ++ /* then eat leading space */ ++ tmp = buf; ++ while (*tmp && isspace(*tmp)) ++ tmp++; ++ if (tmp != buf) ++ memmove(buf, tmp, strlen(tmp)+1); ++ /* finally collapse whitespace */ ++ tmp = buf; ++ while (tmp[0] && tmp[1]) { ++ if (isspace(tmp[0]) && isspace(tmp[1])) { ++ memmove(tmp, tmp+1, strlen(tmp)); ++ continue; ++ } ++ ++tmp; ++ } ++} ++ ++static int __linux_procinfo (int x, char *fstr, size_t s) ++{ ++ FILE *fp; ++ ++ char *procinfo_keys[] = { ++ /* --processor --hardware-platform */ ++ #if defined(__alpha__) ++ "cpu model", "system type" ++ #elif defined(__arm__) ++ "Processor", "Hardware" ++ #elif defined(__avr32__) ++ "processor", "cpu family" ++ #elif defined(__bfin__) ++ "CPU", "BOARD Name" ++ #elif defined(__cris__) ++ "cpu", "cpu model" ++ #elif defined(__frv__) ++ "CPU-Core", "System" ++ #elif defined(__i386__) || defined(__x86_64__) ++ "model name", "vendor_id" ++ #elif defined(__ia64__) ++ "family", "vendor" ++ #elif defined(__hppa__) ++ "cpu", "model" ++ #elif defined(__m68k__) ++ "CPU", "MMU" ++ #elif defined(__mips__) ++ "cpu model", "system type" ++ #elif defined(__powerpc__) || defined(__powerpc64__) ++ "cpu", "machine" ++ #elif defined(__s390__) || defined(__s390x__) ++ "Type", "Manufacturer" ++ #elif defined(__sh__) ++ "cpu type", "machine" ++ #elif defined(sparc) || defined(__sparc__) ++ "type", "cpu" ++ #elif defined(__vax__) ++ "cpu type", "cpu" ++ #else ++ "unknown", "unknown" ++ #endif ++ }; ++ ++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) { ++ char key[65], value[257], eol, *ret = NULL; ++ ++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) { ++ __eat_cpuinfo_space(key); ++ if (!strcmp(key, procinfo_keys[x])) { ++ __eat_cpuinfo_space(value); ++ ret = value; ++ break; ++ } ++ if (eol != '\n') { ++ /* we need two fscanf's here in case the previous ++ * length limit caused us to read right up to the ++ * newline ... doing "%*[^\n]\n" wont eat the newline ++ */ ++ fscanf(fp, "%*[^\n]"); ++ fscanf(fp, "\n"); ++ } ++ } ++ fclose(fp); ++ ++ if (ret) { ++ strncpy(fstr, ret, s); ++ return 0; ++ } ++ } ++ ++ return -1; ++} ++ ++#endif ++ + /* Print ELEMENT, preceded by a space if something has already been + printed. */ + +@@ -250,10 +344,14 @@ main (int argc, char **argv) + if (toprint & PRINT_PROCESSOR) + { + char const *element = unknown; +-#if HAVE_SYSINFO && defined SI_ARCHITECTURE ++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO) + { + static char processor[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor)) ++#else + if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) ++#endif + element = processor; + } + #endif +@@ -306,9 +404,13 @@ main (int argc, char **argv) + if (element == unknown) + { + static char hardware_platform[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform)) ++#else + size_t s = sizeof hardware_platform; + static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM }; + if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0) ++#endif + element = hardware_platform; + } + #endif diff --git a/abs/core-testing/coreutils/futimes.patch b/abs/core-testing/coreutils/futimes.patch new file mode 100644 index 0000000..bb08384 --- /dev/null +++ b/abs/core-testing/coreutils/futimes.patch @@ -0,0 +1,47 @@ +--- coreutils-6.9/lib/utimens.h.futimens 2007-02-23 18:25:21.000000000 +0000 ++++ coreutils-6.9/lib/utimens.h 2007-06-13 11:40:37.000000000 +0100 +@@ -1,3 +1,3 @@ + #include +-int futimens (int, char const *, struct timespec const [2]); ++int gl_futimens (int, char const *, struct timespec const [2]); + int utimens (char const *, struct timespec const [2]); +--- coreutils-6.9/lib/utimens.c.futimens 2007-01-18 08:33:34.000000000 +0000 ++++ coreutils-6.9/lib/utimens.c 2007-06-13 11:40:37.000000000 +0100 +@@ -75,7 +75,7 @@ struct utimbuf + Return 0 on success, -1 (setting errno) on failure. */ + + int +-futimens (int fd ATTRIBUTE_UNUSED, ++gl_futimens (int fd ATTRIBUTE_UNUSED, + char const *file, struct timespec const timespec[2]) + { + /* Some Linux-based NFS clients are buggy, and mishandle time stamps +@@ -185,5 +185,5 @@ futimens (int fd ATTRIBUTE_UNUSED, + int + utimens (char const *file, struct timespec const timespec[2]) + { +- return futimens (-1, file, timespec); ++ return gl_futimens (-1, file, timespec); + } +--- coreutils-6.9/src/copy.c.futimens 2007-06-13 11:56:44.000000000 +0100 ++++ coreutils-6.9/src/copy.c 2007-06-13 11:57:00.000000000 +0100 +@@ -547,7 +547,7 @@ copy_reg (char const *src_name, char con + timespec[0] = get_stat_atime (src_sb); + timespec[1] = get_stat_mtime (src_sb); + +- if (futimens (dest_desc, dst_name, timespec) != 0) ++ if (gl_futimens (dest_desc, dst_name, timespec) != 0) + { + error (0, errno, _("preserving times for %s"), quote (dst_name)); + if (x->require_preserve) +--- coreutils-6.9/src/touch.c.futimens 2007-06-13 11:58:00.000000000 +0100 ++++ coreutils-6.9/src/touch.c 2007-06-13 11:58:06.000000000 +0100 +@@ -182,7 +182,7 @@ touch (const char *file) + t = timespec; + } + +- ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); ++ ok = (gl_futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); + + if (fd == STDIN_FILENO) + { diff --git a/abs/core-testing/coreutils/su b/abs/core-testing/coreutils/su new file mode 100644 index 0000000..cf15f40 --- /dev/null +++ b/abs/core-testing/coreutils/su @@ -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/core-testing/cpio/PKGBUILD b/abs/core-testing/cpio/PKGBUILD new file mode 100644 index 0000000..9d1bbff --- /dev/null +++ b/abs/core-testing/cpio/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=cpio +pkgver=2.9 +pkgrel=12 +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" +groups=('base') +depends=('glibc') +source=(ftp://ftp.gnu.org/gnu/cpio/cpio-${pkgver}.tar.gz \ + cpio-2.9-gcc43.patch) +md5sums=('2bb997a33555d4dc79d45d0cdf02cedd' '214864365e72328f5a4fd822bba55d74') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + patch -Np1 -i $startdir/src/cpio-2.9-gcc43.patch + ./configure --prefix=/usr --mandir=/usr/man + make || return 1 + make DESTDIR=${startdir}/pkg install + rm -f ${startdir}/pkg/usr/bin/mt ${startdir}/pkg/usr/man/man1/mt.1 + mv ${startdir}/pkg/usr/bin ${startdir}/pkg/bin + rm -rf ${startdir}/pkg/usr/libexec +} diff --git a/abs/core-testing/cpio/cpio-2.9-gcc43.patch b/abs/core-testing/cpio/cpio-2.9-gcc43.patch new file mode 100644 index 0000000..da9004a --- /dev/null +++ b/abs/core-testing/cpio/cpio-2.9-gcc43.patch @@ -0,0 +1,31 @@ +--- tar-1.19/lib/argp-fmtstream.h.gcc43 2007-09-28 15:11:36.000000000 +0200 ++++ tar-1.19/lib/argp-fmtstream.h 2008-02-13 16:56:58.000000000 +0100 +@@ -198,7 +198,11 @@ extern int __argp_fmtstream_ensure (argp + #endif + + #ifndef ARGP_FS_EI +-#define ARGP_FS_EI extern inline ++# ifdef __GNUC_STDC_INLINE__ ++# define ARGP_FS_EI extern inline __attribute__((__gnu_inline__)) ++# else ++# define ARGP_FS_EI extern inline ++# endif + #endif + + ARGP_FS_EI size_t +diff -up tar-1.19/lib/argp.h.gcc43 tar-1.19/lib/argp.h +--- tar-1.19/lib/argp.h.gcc43 2007-09-28 15:11:36.000000000 +0200 ++++ tar-1.19/lib/argp.h 2008-02-13 16:55:36.000000000 +0100 +@@ -580,7 +580,11 @@ extern void *__argp_input (const struct + # endif + + # ifndef ARGP_EI +-# define ARGP_EI extern __inline__ ++# if defined __GNUC_STDC_INLINE__ ++# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__)) ++# else ++# define ARGP_EI extern __inline__ ++# endif + # endif + + ARGP_EI void diff --git a/abs/core-testing/cracklib/PKGBUILD b/abs/core-testing/cracklib/PKGBUILD new file mode 100644 index 0000000..597e160 --- /dev/null +++ b/abs/core-testing/cracklib/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Judd Vinet +# Contributor: Federico Quagliata (quaqo) +pkgname=cracklib +pkgver=2.8.10 +pkgrel=14 +pkgdesc="Password Checking Library" +arch=(i686 x86_64) +license=('GPL') +url="http://sourceforge.net/projects/cracklib" +groups=('base') +depends=('glibc') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('555f7832b63ebc7fb70b0373500c2358') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + mkdir -p $startdir/pkg/usr/share/dict + make DESTDIR=$startdir/pkg install + cp dicts/cracklib-small $startdir/pkg/usr/share/dict + sh ./util/cracklib-format dicts/cracklib-small \ + | sh ./util/cracklib-packer $startdir/pkg/usr/share/cracklib/pw_dict +} diff --git a/abs/core-testing/cryptsetup/PKGBUILD b/abs/core-testing/cryptsetup/PKGBUILD new file mode 100644 index 0000000..ff5f83f --- /dev/null +++ b/abs/core-testing/cryptsetup/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Judd Vinet +pkgname=cryptsetup +pkgver=1.0.6 +pkgrel=10 +pkgdesc="Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi" +arch=(i686 x86_64) +license=('GPL') +url="http://luks.endorphin.org/dm-crypt" +groups=('base') +depends=('device-mapper' 'libgcrypt' 'popt' 'e2fsprogs') +options=('!libtool' '!emptydirs') +source=(http://luks.endorphin.org/source/cryptsetup-$pkgver.tar.bz2 + encrypt_hook + encrypt_install + luksOpen-status.patch) +md5sums=('00d452eb7a76e39f5749545d48934a10' + '40fee2419cd444cfb283c311f9555d2d' + '24b76e9cb938bc3c8dcff396cbab28c7' + 'd4be8d2059d5427c057be4de4e948887') + +build() { + cd $startdir/src/$pkgname-$pkgver + # suppress "Command successful" message on luksOpen + patch -p1 -i $startdir/src/luksOpen-status.patch + ./configure --prefix=/usr --disable-static + make || return 1 + make DESTDIR=$startdir/pkg install + # include a static cryptsetup binary for initrd setups + make clean + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr --enable-static + make || return 1 + # include a static cryptsetup binary for initrd setups + install -D -m755 src/cryptsetup $startdir/pkg/sbin/cryptsetup.static || return 1 + # install hook + install -D -m644 $startdir/src/encrypt_hook $startdir/pkg/lib/initcpio/hooks/encrypt + install -D -m644 $startdir/src/encrypt_install $startdir/pkg/lib/initcpio/install/encrypt +} diff --git a/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch b/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch new file mode 100644 index 0000000..28f85e6 --- /dev/null +++ b/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch @@ -0,0 +1,29 @@ +Index: cryptsetup-1.0.5/lib/libdevmapper.c +=================================================================== +--- cryptsetup-1.0.5.orig/lib/libdevmapper.c ++++ cryptsetup-1.0.5/lib/libdevmapper.c +@@ -18,6 +18,13 @@ + + #define CRYPT_TARGET "crypt" + ++#define UDEVSETTLE "/sbin/udevsettle" ++ ++static void run_udevsettle(void) ++{ ++ system(UDEVSETTLE); ++} ++ + static void set_dm_error(int level, const char *file, int line, + const char *f, ...) + { +@@ -184,6 +191,9 @@ static int dm_create_device(int reload, + if (dmi.read_only) + options->flags |= CRYPT_FLAG_READONLY; + ++ /* run udevsettle to avoid problems with busy dm devices */ ++ run_udevsettle(); ++ + r = 0; + + out: + diff --git a/abs/core-testing/cryptsetup/encrypt_hook b/abs/core-testing/cryptsetup/encrypt_hook new file mode 100644 index 0000000..248f1f2 --- /dev/null +++ b/abs/core-testing/cryptsetup/encrypt_hook @@ -0,0 +1,122 @@ +# vim: set ft=sh: +# TODO this one needs some work to work with lots of different +# encryption schemes +run_hook () +{ + /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1 + if [ -e "/sys/class/misc/device-mapper" ]; then + if [ ! -c "/dev/mapper/control" ]; then + read dev_t < /sys/class/misc/device-mapper/dev + /bin/mknod "/dev/mapper/control" c $(/bin/replace "${dev_t}" ':') + fi + [ "${quiet}" = "y" ] && CSQUIET=">/dev/null" + + # Get keyfile if specified + ckeyfile="/crypto_keyfile.bin" + if [ "x${cryptkey}" != "x" ]; then + set -- $(/bin/replace "${cryptkey}" ':'); ckdev=$1; ckarg1=$2; ckarg2=$3 + try=10 + echo "Waiting for ${ckdev} ..." + while [ ! -b ${ckdev} -a ${try} -gt 0 ]; do + sleep 1 + try=$((${try}-1)) + done + if [ -b ${ckdev} ]; then + case ${ckarg1} in + *[!0-9]*) + # Use a file on the device + # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path + mkdir /ckey + mount -r -t ${ckarg1} ${ckdev} /ckey + dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1 + umount /ckey + ;; + *) + # Read raw data from the block device + # ckarg1 is numeric: ckarg1=offset, ckarg2=length + dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1 + ;; + esac + fi + [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase." + fi + + if [ -n "${cryptdevice}" ]; then + set -- $(/bin/replace "${cryptdevice}" ':'); cryptdev="$1"; cryptname="$2"; + else + cryptdev="${root}" + cryptname="root" + fi + + if /bin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then + dopassphrase=1 + # If keyfile exists, try to use that + if [ -f ${ckeyfile} ]; then + if eval /bin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then + dopassphrase=0 + else + echo "Invalid keyfile. Reverting to passphrase." + fi + fi + # Ask for a passphrase + if [ ${dopassphrase} -gt 0 ]; then + echo "" + echo "A password is required to access the ${cryptname} volume:" + + #loop until we get a real password + while ! eval /bin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do + sleep 2; + done + fi + if [ -e "/dev/mapper/${cryptname}" ]; then + if [ "${cryptname}" = "root" ]; then + export root="/dev/mapper/root" + fi + else + err "Password succeeded, but ${cryptname} creation failed, aborting..." + exit 1 + fi + elif [ "x${crypto}" != "x" ]; then + do_oldcrypto () + { + if [ $# -ne 5 ]; then + err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip" + err "Non-LUKS decryption not attempted..." + return 1 + fi + exe="/bin/cryptsetup create ${cryptname} ${cryptdev}" + [ "x$(eval echo ${1})" != "x" ] && exe="${exe} --hash \"$(eval echo ${1})\"" + [ "x$(eval echo ${2})" != "x" ] && exe="${exe} --cipher \"$(eval echo ${2})\"" + [ "x$(eval echo ${3})" != "x" ] && exe="${exe} --key-size \"$(eval echo ${3})\"" + [ "x$(eval echo ${4})" != "x" ] && exe="${exe} --offset \"$(eval echo ${4})\"" + [ "x$(eval echo ${5})" != "x" ] && exe="${exe} --skip \"$(eval echo ${5})\"" + if [ -f ${ckeyfile} ]; then + exe="${exe} --key-file ${ckeyfile}" + else + exe="${exe} --verify-passphrase" + echo "" + echo "A password is required to access the ${cryptname} volume:" + fi + eval "${exe} ${CSQUIET}" + } + + msg "Non-LUKS encrypted device found..." + do_oldcrypto $(/bin/replace -q "${crypto}" ':') + + if [ $? -ne 0 ]; then + err "Non-LUKS device decryption failed. verify format: " + err " crypto=hash:cipher:keysize:offset:skip" + exit 1 + fi + if [ -e "/dev/mapper/${cryptname}" ]; then + if [ "${cryptname}" = "root" ]; then + export root="/dev/mapper/root" + fi + else + err "Password succeeded, but ${cryptname} creation failed, aborting..." + exit 1 + fi + fi + nuke ${ckeyfile} + fi +} diff --git a/abs/core-testing/cryptsetup/encrypt_install b/abs/core-testing/cryptsetup/encrypt_install new file mode 100644 index 0000000..28cfa3f --- /dev/null +++ b/abs/core-testing/cryptsetup/encrypt_install @@ -0,0 +1,22 @@ +# vim: set ft=sh: + +install () +{ + if [ -z "${CRYPTO_MODULES}" ]; then + MODULES=" dm-crypt $(all_modules "/crypto/") " + else + MODULES=" dm-crypt ${CRYPTO_MODULES} " + fi + BINARIES="" + add_dir "/dev/mapper" + add_file "/sbin/cryptsetup.static" "/bin/cryptsetup" + FILES="" + SCRIPT="encrypt" +} + +help () +{ +cat< + + * curl 7.18.2-1 + * Upstream update + * Switched to the CA Root Certificates provided by the ca-certificates package (close FS#10569) + * Removed bundled certificates + * Removed perl-libwww makedepends + +2008-04-30 Eric Belanger + + * curl 7.18.1-2 + * Added CA Root Certificates (close FS#10129) + * Added perl-libwww makedepends + +2008-03-31 Eric Belanger + + * curl 7.18.1-1 + * Upstream update + * Added ChangeLog diff --git a/abs/core-testing/curl/PKGBUILD b/abs/core-testing/curl/PKGBUILD new file mode 100644 index 0000000..cfac1fe --- /dev/null +++ b/abs/core-testing/curl/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 2514 2008-06-05 23:10:19Z eric $ +# Maintainer: Eric Belanger +# Contributor: Lucien Immink + +pkgname=curl +pkgver=7.18.2 +pkgrel=1 +pkgdesc="An URL retrival utility and library" +arch=('i686' 'x86_64') +url="http://curl.haxx.se" +license=('MIT') +depends=('zlib' 'openssl>=0.9.8b' 'bash' 'ca-certificates') +options=('!libtool') +source=(http://curl.haxx.se/download/${pkgname}-${pkgver}.tar.bz2) +md5sums=('c389be5b0525276e58865956b7465562') +sha1sums=('0a4d6878d6be22bb2d701a6cf9bf665f66fc8b87') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr --without-libidn --disable-ldap \ + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + install -D -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING || return 1 +} diff --git a/abs/core-testing/damageproto/PKGBUILD b/abs/core-testing/damageproto/PKGBUILD new file mode 100644 index 0000000..af6087a --- /dev/null +++ b/abs/core-testing/damageproto/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot + +pkgname=damageproto +pkgver=1.1.0 +pkgrel=1 +pkgdesc="X11 Damage extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=('xproto' 'fixesproto') +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +md5sums=('33ee591e0b1ca5ad7902934541db7d24') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/dash/PKGBUILD b/abs/core-testing/dash/PKGBUILD new file mode 100644 index 0000000..eccfe5c --- /dev/null +++ b/abs/core-testing/dash/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Dan McGee + +pkgname=dash +pkgver=0.5.4 +pkgrel=13 +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') +makedepends=('klibc>=1.5') +#provides=('sh') +source=("http://gondor.apana.org.au/~herbert/dash/files/dash-$pkgver.tar.gz") +md5sums=('bc457e490a589d2f87f2333616b67931') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr --mandir=/usr/share/man --exec-prefix="" CC=klcc LD=klcc LDFLAGS="-static" + make || return 1 + make DESTDIR=$startdir/pkg install || return 1 + + # license + install -m644 -D COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING + + #static dash is our default /bin/sh + #cd ${startdir}/pkg/bin + #ln -s dash sh +} diff --git a/abs/core-testing/db/PKGBUILD b/abs/core-testing/db/PKGBUILD new file mode 100644 index 0000000..e41aeac --- /dev/null +++ b/abs/core-testing/db/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 3741 2008-06-30 20:07:01Z andyrtr $ +# Maintainer: Andreas Radke + +pkgname=db +pkgver=4.7.25 +pkgrel=10 +pkgdesc="The Berkeley DB embedded database system" +arch=(i686 x86_64) +license=('custom') +url="http://www.oracle.com/technology/software/products/berkeley-db/index.html" +groups=('base') +depends=('gcc-libs' 'coreutils') +options=('!libtool') +source=(http://download-uk.oracle.com/berkeley-db/db-$pkgver.tar.gz) +install=(db.install) +md5sums=('ec2b87e833779681a0c3a814aa71359e') + +build() { + cd ${srcdir}/$pkgname-$pkgver/build_unix + ../dist/configure --prefix=/usr --enable-compat185 \ + --enable-shared --enable-static --enable-cxx + make LIBSO_LIBS=-lpthread || return 1 + make DESTDIR=${pkgdir} install + rm -rf ${pkgdir}/usr/docs + mkdir -p ${pkgdir}/usr/share/licenses/${pkgname} + install -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} diff --git a/abs/core-testing/db/db.install b/abs/core-testing/db/db.install new file mode 100644 index 0000000..7c97ea0 --- /dev/null +++ b/abs/core-testing/db/db.install @@ -0,0 +1,29 @@ +# 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 +# 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 "ATTENTION DB PACKAGE:" + echo "Please consider to run db_upgrade on Berkeley DB databases with a major db version number update." +} + +# arg 1: the old package version +pre_remove() { + /bin/true +} + +# arg 1: the old package version +post_remove() { + /bin/true +} + +op=$1 +shift +$op $* \ No newline at end of file diff --git a/abs/core-testing/db4.5/PKGBUILD b/abs/core-testing/db4.5/PKGBUILD new file mode 100644 index 0000000..db87a0d --- /dev/null +++ b/abs/core-testing/db4.5/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Jan de Groot +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/core-testing/dbus-glib/PKGBUILD b/abs/core-testing/dbus-glib/PKGBUILD new file mode 100644 index 0000000..4eb8838 --- /dev/null +++ b/abs/core-testing/dbus-glib/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 3474 2008-06-22 20:19:25Z jgc $ +# Maintainer: Jan de Groot + +pkgname=dbus-glib +pkgver=0.76 +pkgrel=1 +pkgdesc="GLib bindings for DBUS" +arch=(i686 x86_64) +license=('GPL') +url="http://www.freedesktop.org/wiki/Software/DBusBindings" +depends=('dbus>=1.2.1' 'glib2>=2.16.3') +makedepends=('pkgconfig') +options=('!libtool') +source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz) +md5sums=('d3b716a7e798faa1c6a867675f00306a') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static=no || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/dbus/PKGBUILD b/abs/core-testing/dbus/PKGBUILD new file mode 100644 index 0000000..dc747bc --- /dev/null +++ b/abs/core-testing/dbus/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 9899 2008-08-20 20:01:17Z jgc $ +# Maintainer: Jan de Groot +# Contributor: Link Dupont +# +pkgname=dbus +pkgver=1.2.3 +pkgrel=1 +pkgdesc="Freedesktop.org message bus system" +url="http://www.freedesktop.org/Software/dbus" +arch=(i686 x86_64) +license=('GPL' 'custom') +depends=('expat>=2.0' 'libx11' 'libsm') +options=(!libtool) +install=dbus.install +source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz + dbus) +md5sums=('f71641385768e99361bd298568207cee' + 'f3fd196cc278bd7b45a4ca01fb8f7894') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \ + --with-system-pid-file=/var/run/dbus.pid \ + --disable-verbose-mode --disable-static \ + --disable-tests --disable-asserts || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + chown 81:81 ${startdir}/pkg/var/run/dbus || return 1 + + install -m755 -d ${startdir}/pkg/etc/rc.d || return 1 + install -m 755 ${startdir}/dbus ${startdir}/pkg/etc/rc.d/ || return 1 + + #Fix configuration file + sed -i -e 's|81|dbus|' ${startdir}/pkg/etc/dbus-1/system.conf || return 1 + + #install .keep files so pacman doesn't delete empty dirs + touch ${startdir}/pkg/usr/share/dbus-1/services/.keep || return 1 + touch ${startdir}/pkg/usr/share/dbus-1/system-services/.keep || return 1 + touch ${startdir}/pkg/etc/dbus-1/session.d/.keep || return 1 + touch ${startdir}/pkg/etc/dbus-1/system.d/.keep || return 1 + + rmdir ${startdir}/pkg/usr/lib/dbus-1.0/dbus-1 || return 1 + + install -d -m755 ${startdir}/pkg/usr/share/licenses/dbus + install -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \ + ${startdir}/pkg/usr/share/licenses/dbus/ || return 1 +} diff --git a/abs/core-testing/dbus/dbus b/abs/core-testing/dbus/dbus new file mode 100644 index 0000000..cd26db8 --- /dev/null +++ b/abs/core-testing/dbus/dbus @@ -0,0 +1,57 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting D-BUS system messagebus" + if [ ! -x /var/run/dbus ] ; then + install -m755 -g 81 -o 81 -d /var/run/dbus + fi + if [ -x /usr/bin/dbus-uuidgen ] ; then + /usr/bin/dbus-uuidgen --ensure + fi + + /usr/bin/dbus-daemon --system + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon dbus + stat_done + fi + ;; + stop) + stat_busy "Stopping D-BUS system messagebus" + [ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid` + if [ $? -gt 0 ]; then + stat_fail + else + rm -f /var/run/dbus.pid + rm_daemon dbus + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + reload) + stat_busy "Reloading D-BUS configuration" + [ -f /var/run/dbus.pid ] && /usr/bin/dbus-send \ + --system --type=method_call \ + --dest=org.freedesktop.DBus \ + / org.freedesktop.DBus.ReloadConfig + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + ;; + *) + echo "usage: $0 {start|stop|restart|reload}" + ;; +esac +exit 0 diff --git a/abs/core-testing/dbus/dbus.install b/abs/core-testing/dbus/dbus.install new file mode 100644 index 0000000..85dd9a7 --- /dev/null +++ b/abs/core-testing/dbus/dbus.install @@ -0,0 +1,21 @@ +post_install() { + getent group dbus >/dev/null || usr/sbin/groupadd -g 81 dbus + getent passwd dbus >/dev/null || usr/sbin/useradd -c 'System message bus' -u 81 -g dbus -d '/' -s /bin/false dbus + usr/bin/passwd -l dbus &>/dev/null + dbus-uuidgen --ensure +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 + + #Make sure new rc script can shutdown running dbus + [ -f var/run/dbus/pid ] && mv var/run/dbus/pid var/run/dbus.pid +} + +# arg 1: the old package version +pre_remove() { + usr/sbin/userdel dbus &>/dev/null + usr/sbin/groupdel dbus &>/dev/null +} diff --git a/abs/core-testing/dcron/PKGBUILD b/abs/core-testing/dcron/PKGBUILD new file mode 100644 index 0000000..e5a46d8 --- /dev/null +++ b/abs/core-testing/dcron/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=dcron +pkgver=3.2 +pkgrel=12 +pkgdesc="Dillon's Cron Daemon" +arch=(i686 x86_64) +license=('GPL') +groups=('base') +url="http://apollo.backplane.com/FreeSrc/" +backup=(var/spool/cron/root) +depends=('glibc') +provides=('cron') +source=(http://apollo.backplane.com/FreeSrc/dcron32.tgz + dcron-3.1.patch + root.crontab + crond + crond.logrotate + run-cron) +md5sums=('c2c816deb389b4bfb00761f26afe3efd' '2f0c3f7497a12c8826c9be3f87843fcd'\ + '7fcc06b13708ebd667711b1fbf62ee6e' 'd7edac165ef19ebb9d0089bdc218b53a'\ + 'aeabcd5e4924d1a7593c8782d1068c86' '5ff0cdcb9ec99778938ac6ef26800327') + +build() { + cd $startdir/src/dcron + patch -Np1 -i ../dcron-3.1.patch || return 1 + make || return 1 + install -D -m4755 crontab $startdir/pkg/usr/bin/crontab + install -D -m755 crond $startdir/pkg/usr/sbin/crond + install -D -m644 crontab.1 $startdir/pkg/usr/man/man1/crontab.1 + install -D -m644 crond.8 $startdir/pkg/usr/man/man8/crond.8 + mkdir -p $startdir/pkg/var/spool/cron $startdir/pkg/etc/cron.d + mkdir -p $startdir/pkg/etc/{rc.d,cron.hourly,cron.daily,cron.weekly,cron.monthly} + install -D -m0600 ../root.crontab $startdir/pkg/var/spool/cron/root + install -D -m755 ../crond $startdir/pkg/etc/rc.d/crond + install -D -m644 ../crond.logrotate $startdir/pkg/etc/logrotate.d/crond + install -D -m755 ../run-cron $startdir/pkg/usr/sbin/run-cron +} diff --git a/abs/core-testing/dcron/crond b/abs/core-testing/dcron/crond new file mode 100755 index 0000000..ef80db3 --- /dev/null +++ b/abs/core-testing/dcron/crond @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/crond` +case "$1" in + start) + stat_busy "Starting Cron Daemon" + [ -z "$PID" ] && /usr/sbin/crond >>/var/log/crond 2>&1 + if [ $? -gt 0 ]; then + stat_fail + else + PID=`pidof -o %PPID /usr/sbin/crond` + echo $PID >/var/run/crond.pid + add_daemon crond + stat_done + fi + ;; + stop) + stat_busy "Stopping Cron Daemon" + [ ! -z "$PID" ] && kill $PID &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon crond + stat_done + fi + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core-testing/dcron/crond.logrotate b/abs/core-testing/dcron/crond.logrotate new file mode 100644 index 0000000..38299d6 --- /dev/null +++ b/abs/core-testing/dcron/crond.logrotate @@ -0,0 +1,5 @@ +/var/log/crond { + sharedscripts + copytruncate + missingok +} diff --git a/abs/core-testing/dcron/dcron-3.1.patch b/abs/core-testing/dcron/dcron-3.1.patch new file mode 100644 index 0000000..975d51c --- /dev/null +++ b/abs/core-testing/dcron/dcron-3.1.patch @@ -0,0 +1,33 @@ +diff -Naur dcron-orig/defs.h dcron/defs.h +--- dcron-orig/defs.h 2006-04-29 10:20:58.000000000 -0700 ++++ dcron/defs.h 2006-05-04 18:40:05.000000000 -0700 +@@ -28,7 +28,7 @@ + #define arysize(ary) (sizeof(ary)/sizeof((ary)[0])) + + #ifndef CRONTABS +-#define CRONTABS "/var/spool/cron/crontabs" ++#define CRONTABS "/var/spool/cron" + #endif + #ifndef SCRONTABS + #define SCRONTABS "/etc/cron.d" +@@ -44,7 +44,7 @@ + #if defined(__DragonFly__) + #define SENDMAIL "/usr/sbin/sendmail" + #else +-#define SENDMAIL "/usr/lib/sendmail" ++#define SENDMAIL "/usr/sbin/sendmail" + #endif + #endif + +diff -Naur dcron-orig/subs.c dcron/subs.c +--- dcron-orig/subs.c 2006-04-27 10:29:56.000000000 -0700 ++++ dcron/subs.c 2006-05-04 18:40:19.000000000 -0700 +@@ -79,7 +79,7 @@ + + buf[0] = 0; + if (useDate) +- strftime(buf, 128, "%d-%b-%y %H:%M ", tp); ++ strftime(buf, 128, "%d-%b-%Y %H:%M ", tp); + vsnprintf(buf + strlen(buf), nmax, ctl, va); + return(strlen(buf)); + } diff --git a/abs/core-testing/dcron/root.crontab b/abs/core-testing/dcron/root.crontab new file mode 100644 index 0000000..726558f --- /dev/null +++ b/abs/core-testing/dcron/root.crontab @@ -0,0 +1,12 @@ +# +# DO NOT EDIT THIS FILE MANUALLY!! USE crontab -e INSTEAD. +# + +# + + +01 * * * * /usr/sbin/run-cron /etc/cron.hourly +02 00 * * * /usr/sbin/run-cron /etc/cron.daily +22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly +42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly + diff --git a/abs/core-testing/dcron/run-cron b/abs/core-testing/dcron/run-cron new file mode 100755 index 0000000..51007a1 --- /dev/null +++ b/abs/core-testing/dcron/run-cron @@ -0,0 +1,14 @@ +#!/bin/sh + + +if [ -z $1 ]; then + echo "Usage: $0 crondir" + exit 1 +fi + +for cron in $1/* ; do + if [ -x $cron ]; then + $cron + fi +done +unset cron diff --git a/abs/core-testing/device-mapper/PKGBUILD b/abs/core-testing/device-mapper/PKGBUILD new file mode 100644 index 0000000..7c2cd46 --- /dev/null +++ b/abs/core-testing/device-mapper/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Thomas Baechler +pkgname=device-mapper +pkgver=1.02.27 +pkgrel=10 +pkgdesc="Device mapper userspace library and tools." +arch=('i686' 'x86_64') +license=('GPL') +url="http://sourceware.org/dm/" +groups=('base') +depends=('glibc') +source=(ftp://sources.redhat.com/pub/dm/device-mapper.$pkgver.tgz + device-mapper.rules) +md5sums=('6074f2c2035c2a526422e691c7457277' + '065f32a36947e6183722ed9aef13dc0c') + +build() { + cd $startdir/src/$pkgname.$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$startdir/pkg sbindir=$startdir/pkg/sbin \ + libdir=$startdir/pkg/lib install + + # install the static library as well + install -D -m644 lib/ioctl/libdevmapper.a $startdir/pkg/usr/lib/libdevmapper.a + # install udev rule + install -D -m644 $startdir/src/device-mapper.rules $startdir/pkg/etc/udev/rules.d/device-mapper.rules + # fix device-mapper link bug + ln -sf /lib/libdevmapper.so $startdir/pkg/usr/lib/libdevmapper.so +} diff --git a/abs/core-testing/device-mapper/device-mapper.rules b/abs/core-testing/device-mapper/device-mapper.rules new file mode 100644 index 0000000..66204d4 --- /dev/null +++ b/abs/core-testing/device-mapper/device-mapper.rules @@ -0,0 +1 @@ +ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", PROGRAM="/sbin/dmsetup info -c --noopencount --noheadings -o name -j %M -m %m", NAME="mapper/%c", MODE="0600", SYMLINK+="disk/by-name/%c" diff --git a/abs/core-testing/dhcpcd/PKGBUILD b/abs/core-testing/dhcpcd/PKGBUILD new file mode 100644 index 0000000..dfc1914 --- /dev/null +++ b/abs/core-testing/dhcpcd/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=dhcpcd +pkgver=3.2.1 +pkgrel=10 +pkgdesc="A DHCP client daemon" +arch=(i686 x86_64) +license=('BSD') +url="http://roy.marples.name/dhcpcd" +groups=('base') +depends=('glibc') +backup=('etc/conf.d/dhcpcd') +source=(http://roy.marples.name/dhcpcd/$pkgname-$pkgver.tar.bz2 + dhcpcd.conf.d) +md5sums=('5a437882b6b9eb29bde323dc411be4a4' + '12d866a78d9f5fa5f31ca18b3940d847') + +build() { + cd $startdir/src/$pkgname-$pkgver + #disable DUID usage + echo "#undef ENABLE_DUID" >> config.h + make || return 1 + make DESTDIR=$startdir/pkg install + mkdir -p $startdir/pkg/usr/sbin + ln -sf /sbin/dhcpcd $startdir/pkg/usr/sbin/dhcpcd + install -D -m644 ../dhcpcd.conf.d $startdir/pkg/etc/conf.d/dhcpcd +} diff --git a/abs/core-testing/dhcpcd/dhcpcd.conf.d b/abs/core-testing/dhcpcd/dhcpcd.conf.d new file mode 100644 index 0000000..9f5a80b --- /dev/null +++ b/abs/core-testing/dhcpcd/dhcpcd.conf.d @@ -0,0 +1,6 @@ +# +# Arguments to be passed to the DHCP client daemon +# + +DHCPCD_ARGS="-t 30 -h $HOSTNAME" + diff --git a/abs/core-testing/dialog/PKGBUILD b/abs/core-testing/dialog/PKGBUILD new file mode 100644 index 0000000..0299f6d --- /dev/null +++ b/abs/core-testing/dialog/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 1369 2008-05-06 16:13:12Z andyrtr $ +# Maintainer: dorphell +pkgname=dialog +pkgver=1.1_20080316 +_pkgver=1.1-20080316 +pkgrel=12 +pkgdesc="A tool to display dialog boxes from shell scripts" +arch=('i686' 'x86_64') +license=('GPL') +groups=('base') +depends=('ncurses>=5.6-6') +url="http://packages.debian.org/dialog" +source=(ftp://ftp.debian.org/debian/pool/main/d/${pkgname}/${pkgname}_$_pkgver.orig.tar.gz) +md5sums=('3d262cbc41e4db23251e7be924c4a28b') + +build() { + cd $startdir/src/$pkgname-$_pkgver + ./configure --prefix=/usr --with-ncursesw --mandir=/usr/share/man + make || return 1 + make DESTDIR=$startdir/pkg install +} diff --git a/abs/core-testing/dialog/timeout.patch b/abs/core-testing/dialog/timeout.patch new file mode 100644 index 0000000..257f275 --- /dev/null +++ b/abs/core-testing/dialog/timeout.patch @@ -0,0 +1,11 @@ +--- dialog-1.1-20070514/ui_getc.c 2007-05-15 00:24:00.000000000 +0200 ++++ dialog-1.1-20070514_fixed/ui_getc.c 2007-05-29 20:20:27.000000000 +0200 +@@ -252,6 +252,8 @@ + ch = wgetch(win); + /* if error from resizing, wait and try again */ + if (ch == ERR) { ++ current = time((time_t *) 0); ++ if (interval > 0 && current >= expired) dlg_exiterr("timeout"); + napms(50); + continue; + } diff --git a/abs/core-testing/diffutils/PKGBUILD b/abs/core-testing/diffutils/PKGBUILD new file mode 100644 index 0000000..8b075bc --- /dev/null +++ b/abs/core-testing/diffutils/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=diffutils +pkgver=2.8.1 +pkgrel=5 +pkgdesc="Utility programs used for creating patch files" +arch=(i686 x86_64) +license=('GPL') +groups=('base-devel') +url="http://www.gnu.org/software/diffutils" +depends=('glibc') +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('71f9c5ae19b60608f6c7f162da86a428') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install +} diff --git a/abs/core-testing/dmapi/PKGBUILD b/abs/core-testing/dmapi/PKGBUILD new file mode 100644 index 0000000..0f5d015 --- /dev/null +++ b/abs/core-testing/dmapi/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski +pkgname=dmapi +pkgver=2.2.8 +pkgrel=12 +pkgdesc="Data migration API" +arch=(i686 x86_64) +url="http://oss.sgi.com/projects/xfs/" +license=('GPL') +groups=('base') +depends=('glibc') +makedepends=('xfsprogs') +provides=('xfsdmapi') +conflicts=('xfsdmapi') +replaces=('xfsdmapi') +options=('!libtool') +source=(ftp://oss.sgi.com/projects/xfs/cmd_tars/dmapi_$pkgver-1.tar.gz) +md5sums=('1265828fabc6e3ec4b70696db331fb8a') + +build() { + cd $startdir/src/dmapi-$pkgver + [ "$CARCH" = "x86_64" ] && export CFLAGS="$CLFAGS -fPIC" + autoconf + ./configure --prefix=$startdir/pkg/usr + make || return 1 + make prefix=$startdir/pkg/usr/ install install-lib install-dev + # the static lib + install -D -m644 libdm/.libs/libdm.a $startdir/pkg/usr/lib/libdm.a + # and the header file, please + install -D -m644 include/dmapi.h $startdir/pkg/usr/include/xfs/dmapi.h +} diff --git a/abs/core-testing/dmidecode/PKGBUILD b/abs/core-testing/dmidecode/PKGBUILD new file mode 100644 index 0000000..c29957a --- /dev/null +++ b/abs/core-testing/dmidecode/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Jan de Groot +# Contributor: Giovanni Scafora + +pkgname=dmidecode +pkgver=2.9 +pkgrel=2 +pkgdesc="Desktop Management Interface table related utilities" +arch=('i686') +url="http://www.nongnu.org/dmidecode" +license=('GPL') +depends=('glibc') +source=(http://download.savannah.nongnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2) +md5sums=('3dac4b1817012ffebd78671473d8f56c') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + make prefix=/usr || return 1 + make prefix=/usr DESTDIR=${startdir}/pkg install +} diff --git a/abs/core-testing/dmxproto/PKGBUILD b/abs/core-testing/dmxproto/PKGBUILD new file mode 100644 index 0000000..1ccffd6 --- /dev/null +++ b/abs/core-testing/dmxproto/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot + +pkgname=dmxproto +pkgver=2.2.2 +pkgrel=1 +pkgdesc="X11 Distributed Multihead X extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +md5sums=('d80acad88411e7944b9b085463d53302') +sha1sums=('80c573166ec3b9f17893e2fff84ce0107045faac') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/dnsutils/PKGBUILD b/abs/core-testing/dnsutils/PKGBUILD new file mode 100644 index 0000000..672613e --- /dev/null +++ b/abs/core-testing/dnsutils/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 5888 2008-07-21 19:29:16Z kevin $ +# Maintainer: Jan de Groot +# Contributor: mario +pkgname=dnsutils +pkgver=9.5.0 +_pkgver=9.5.0-P1 +pkgrel=4 +pkgdesc="Various DNS utilities - dig host nslookup nsupdate" +arch=(i686 x86_64) +url="http://www.isc.org/index.pl?/sw/bind/" +license=('custom:ISC') +depends=('openssl>=0.9.8e') +replaces=('bind-tools') +source=(ftp://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz + bind.so_bsdcompat.diff tools-only.patch) +md5sums=('a4f9dd6d205d24ec89fa4e44d8188197' '447d58721cfee0e1e377b46f7d50b327' + '329f7e15b8c45d3efefdf5b559bb878a') + +build() { + export MAKEFLAGS="-j1" + + cd ${startdir}/src/bind-${_pkgver} + patch -Np0 -i ${startdir}/src/bind.so_bsdcompat.diff || return 1 + patch -Np1 -i ${startdir}/src/tools-only.patch || return 1 + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --with-openssl=yes --disable-linux-caps --without-libxml2 + make || return 1 + cd bin + make DESTDIR=${startdir}/pkg install || return 1 + install -D -m644 ../COPYRIGHT $startdir/pkg/usr/share/licenses/$pkgname/LICENSE +} diff --git a/abs/core-testing/dnsutils/bind.so_bsdcompat.diff b/abs/core-testing/dnsutils/bind.so_bsdcompat.diff new file mode 100644 index 0000000..5d78031 --- /dev/null +++ b/abs/core-testing/dnsutils/bind.so_bsdcompat.diff @@ -0,0 +1,11 @@ +--- ./lib/isc/unix/socket.c.orig 2005-11-03 17:08:42.000000000 -0600 ++++ ./lib/isc/unix/socket.c 2006-02-18 13:09:15.000000000 -0600 +@@ -245,6 +245,8 @@ + + #define SOCK_DEAD(s) ((s)->references == 0) + ++#undef SO_BSDCOMPAT ++ + static void + manager_log(isc_socketmgr_t *sockmgr, + isc_logcategory_t *category, isc_logmodule_t *module, int level, diff --git a/abs/core-testing/dnsutils/tools-only.patch b/abs/core-testing/dnsutils/tools-only.patch new file mode 100644 index 0000000..f777282 --- /dev/null +++ b/abs/core-testing/dnsutils/tools-only.patch @@ -0,0 +1,22 @@ +--- bind-9.3.1/bin/Makefile.in.orig 2005-05-06 01:52:36.000000000 -0400 ++++ bind-9.3.1/bin/Makefile.in 2005-05-06 01:53:24.000000000 -0400 +@@ -19,7 +19,7 @@ + VPATH = @srcdir@ + top_srcdir = @top_srcdir@ + +-SUBDIRS = named rndc dig dnssec tests nsupdate check ++SUBDIRS = dig nsupdate + TARGETS = + + @BIND9_MAKE_RULES@ +--- bind-9.3.1/lib/Makefile.in.orig 2005-05-06 02:05:12.000000000 -0400 ++++ bind-9.3.1/lib/Makefile.in 2005-05-06 02:05:35.000000000 -0400 +@@ -23,7 +23,7 @@ + # Attempt to disable parallel processing. + .NOTPARALLEL: + .NO_PARALLEL: +-SUBDIRS = isc isccc dns isccfg bind9 lwres tests ++SUBDIRS = isc dns isccfg bind9 lwres + TARGETS = + + @BIND9_MAKE_RULES@ diff --git a/abs/core-testing/dosfstools/PKGBUILD b/abs/core-testing/dosfstools/PKGBUILD new file mode 100644 index 0000000..488cab5 --- /dev/null +++ b/abs/core-testing/dosfstools/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 9911 2008-08-21 00:29:06Z eric $ +# Maintainer: dorphell +# Committer: Judd Vinet +pkgname=dosfstools +pkgver=2.11 +pkgrel=2 +pkgdesc="DOS filesystem utilities" +arch=(i686 x86_64) +depends=('glibc') +source=(ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/$pkgname/$pkgname-$pkgver.src.tar.gz linux-2.6.patch) +md5sums=('407d405ade410f7597d364ab5dc8c9f6' '6689fb7693ed213e6c3289b533b4f66d') +url="ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/" + +build() { + cd $startdir/src/$pkgname-$pkgver + patch -p1 -i $startdir/src/linux-2.6.patch + patch -Np0 -i $startdir/src/dosfstools_$pkgver-1.diff + make || return 1 + make PREFIX=$startdir/pkg install +} diff --git a/abs/core-testing/dosfstools/linux-2.6.patch b/abs/core-testing/dosfstools/linux-2.6.patch new file mode 100644 index 0000000..e21e94c --- /dev/null +++ b/abs/core-testing/dosfstools/linux-2.6.patch @@ -0,0 +1,64 @@ +diff -Nur dosfstools-2.10/dosfsck/boot.c dosfstools-2.10-fixed/dosfsck/boot.c +--- dosfstools-2.10/dosfsck/boot.c 2003-06-14 22:03:20.000000000 +0200 ++++ dosfstools-2.10-fixed/dosfsck/boot.c 2004-02-11 21:15:48.000000000 +0100 +@@ -14,6 +14,9 @@ + #include "io.h" + #include "boot.h" + ++#ifndef MSDOS_FAT12 ++# define MSDOS_FAT12 4084 /* taken from 2.4 linux/msdos_fs.h */ ++#endif + + #define ROUND_TO_MULTIPLE(n,m) ((n) && (m) ? (n)+(m)-1-((n)-1)%(m) : 0) + /* don't divide by zero */ +diff -Nur dosfstools-2.10/dosfsck/common.h dosfstools-2.10-fixed/dosfsck/common.h +--- dosfstools-2.10/dosfsck/common.h 1998-04-28 13:14:25.000000000 +0200 ++++ dosfstools-2.10-fixed/dosfsck/common.h 2004-02-11 21:15:01.000000000 +0100 +@@ -6,6 +6,9 @@ + #ifndef _COMMON_H + #define _COMMON_H + ++#include ++#include ++ + void die(char *msg,...) __attribute((noreturn)); + + /* Displays a prinf-style message and terminates the program. */ +diff -Nur dosfstools-2.10/dosfsck/file.c dosfstools-2.10-fixed/dosfsck/file.c +--- dosfstools-2.10/dosfsck/file.c 2003-06-14 22:03:20.000000000 +0200 ++++ dosfstools-2.10-fixed/dosfsck/file.c 2004-02-11 21:13:53.000000000 +0100 +@@ -15,9 +15,9 @@ + #define _LINUX_STAT_H /* hack to avoid inclusion of */ + #define _LINUX_STRING_H_ /* hack to avoid inclusion of */ + #define _LINUX_FS_H /* hack to avoid inclusion of */ ++#include "common.h" + #include + +-#include "common.h" + #include "file.h" + + +diff -Nur dosfstools-2.10/dosfsck/io.c dosfstools-2.10-fixed/dosfsck/io.c +--- dosfstools-2.10/dosfsck/io.c 2003-06-14 22:03:20.000000000 +0200 ++++ dosfstools-2.10-fixed/dosfsck/io.c 2004-02-11 21:14:24.000000000 +0100 +@@ -21,8 +21,8 @@ + #include + #include + +-#include "dosfsck.h" + #include "common.h" ++#include "dosfsck.h" + #include "io.h" + + +diff -Nur dosfstools-2.10/mkdosfs/mkdosfs.c dosfstools-2.10-fixed/mkdosfs/mkdosfs.c +--- dosfstools-2.10/mkdosfs/mkdosfs.c 2003-06-14 22:07:08.000000000 +0200 ++++ dosfstools-2.10-fixed/mkdosfs/mkdosfs.c 2004-02-11 21:13:09.000000000 +0100 +@@ -62,6 +62,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/abs/core-testing/dvd+rw-tools/PKGBUILD b/abs/core-testing/dvd+rw-tools/PKGBUILD new file mode 100644 index 0000000..7f7597b --- /dev/null +++ b/abs/core-testing/dvd+rw-tools/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: damir + +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/core-testing/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch b/abs/core-testing/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch new file mode 100644 index 0000000..0b7951f --- /dev/null +++ b/abs/core-testing/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 + #include + #include ++#include + #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 + #include + #include ++#include + #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/core-testing/dvdauthor/PKGBUILD b/abs/core-testing/dvdauthor/PKGBUILD new file mode 100644 index 0000000..6066d7f --- /dev/null +++ b/abs/core-testing/dvdauthor/PKGBUILD @@ -0,0 +1,21 @@ +# Maintainer: Travis Willard +# Contributor: Jaroslaw Swierczynski +# Contributor: Nicolai Lissner + +pkgname=dvdauthor +pkgver=0.6.14 +pkgrel=2 +pkgdesc="DVD authoring tools" +arch=('i686' 'x86_64') +url="http://dvdauthor.sourceforge.net/" +license=('GPL') +depends=('libdvdread' 'fribidi' 'imagemagick>=6.4.0.2') +source=(http://dl.sourceforge.net/sourceforge/dvdauthor/${pkgname}-${pkgver}.tar.gz) +md5sums=('bd646b47950c4091ffd781d43fd2c5e9') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make prefix=$startdir/pkg/usr install +} diff --git a/abs/core-testing/e2fsprogs/Makefile-fsck.static.patch b/abs/core-testing/e2fsprogs/Makefile-fsck.static.patch new file mode 100644 index 0000000..a006443 --- /dev/null +++ b/abs/core-testing/e2fsprogs/Makefile-fsck.static.patch @@ -0,0 +1,13 @@ +--- e2fsprogs-1.40.4/misc/Makefile 2008-01-16 14:52:53.000000000 +0000 ++++ e2fsprogs-1.40.4/misc/Makefile.neu 2008-01-16 14:53:43.000000000 +0000 +@@ -376,6 +376,10 @@ + @echo " LD $@" + @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBS_BLKID) $(LIBINTL) + ++fsck.static: $(FSCK_OBJS) $(DEPSTATIC_LIBBLKID) ++ @echo " LD $@" ++ @$(CC) $(ALL_LDFLAGS) -static -o fsck.static $(FSCK_OBJS) $(STATIC_LIBBLKID) $(DEPSTATIC_LIBUUID) $(LIBINTL) ++ + badblocks: $(BADBLOCKS_OBJS) $(DEPLIBS) + @echo " LD $@" + @$(CC) $(ALL_LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) $(LIBINTL) diff --git a/abs/core-testing/e2fsprogs/PKGBUILD b/abs/core-testing/e2fsprogs/PKGBUILD new file mode 100644 index 0000000..b85652b --- /dev/null +++ b/abs/core-testing/e2fsprogs/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd + +pkgname=e2fsprogs +pkgver=1.40.8 +pkgrel=10 +pkgdesc="Ext2 filesystem utilities" +arch=('i686' 'x86_64') +license=('GPL' 'LGPL' 'MIT') +url="http://e2fsprogs.sourceforge.net" +groups=('base') +depends=('glibc') +makedepends=('bc') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz + Makefile-fsck.static.patch + mke2fs.conf) +md5sums=('450e2fb2461b2296fec770ff8fc147ed' + 'ce2b0daf84e17e8c7880ba3d43020ea3' + '4ebb30bdb5951f1fc86c1470e4d81532') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + # Remove unnecessary init.d directory + sed -i '/init\.d/s|^|#|' misc/Makefile.in + ./configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs + # add fsck.static for mkinitrd use + patch -Np1 -i ../Makefile-fsck.static.patch || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install install-libs + make -C ${startdir}/src/${pkgname}-${pkgver}/misc fsck.static || return 1 + install -D -m755 ${startdir}/src/${pkgname}-${pkgver}/misc/fsck.static ${startdir}/pkg/sbin/fsck.static + sed -i -e 's/^AWK=.*/AWK=awk/' ${startdir}/pkg/usr/bin/compile_et || return 1 + install -m644 ${startdir}/src/mke2fs.conf ${startdir}/pkg/etc/ || return 1 +} diff --git a/abs/core-testing/e2fsprogs/mke2fs.conf b/abs/core-testing/e2fsprogs/mke2fs.conf new file mode 100644 index 0000000..92464e3 --- /dev/null +++ b/abs/core-testing/e2fsprogs/mke2fs.conf @@ -0,0 +1,26 @@ +[defaults] + base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr + blocksize = 4096 + inode_size = 128 + inode_ratio = 16384 + +[fs_types] + small = { + blocksize = 1024 + inode_size = 128 + inode_ratio = 4096 + } + floppy = { + blocksize = 1024 + inode_size = 128 + inode_ratio = 8192 + } + news = { + inode_ratio = 4096 + } + largefile = { + inode_ratio = 1048576 + } + largefile4 = { + inode_ratio = 4194304 + } diff --git a/abs/core-testing/eject/PKGBUILD b/abs/core-testing/eject/PKGBUILD new file mode 100644 index 0000000..b2ba852 --- /dev/null +++ b/abs/core-testing/eject/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell +# Contributor: Tom Newsom + +pkgname=eject +pkgver=2.1.5 +pkgrel=3 +pkgdesc="Eject is a program for ejecting removable media under software control" +arch=(i686 x86_64) +source=(http://www.pobox.com/~tranter/$pkgname-$pkgver.tar.gz eject-2.1.5-handle-spaces.patch) +url="http://ca.geocities.com/jefftranter@rogers.com/eject.html" +md5sums=('b96a6d4263122f1711db12701d79f738' '595b97c3bd56fd41e3b01b07885f81dc') + +build() { + cd $startdir/src/$pkgname + patch -Np0 -i ../eject-2.1.5-handle-spaces.patch || return 1 + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$startdir/pkg install +} diff --git a/abs/core-testing/eject/eject-2.1.5-handle-spaces.patch b/abs/core-testing/eject/eject-2.1.5-handle-spaces.patch new file mode 100644 index 0000000..692368f --- /dev/null +++ b/abs/core-testing/eject/eject-2.1.5-handle-spaces.patch @@ -0,0 +1,57 @@ +http://bugs.gentoo.org/151257 + +--- eject.c ++++ eject.c +@@ -370,6 +370,30 @@ static int FileExists(const char *name, + + + /* ++ * Linux mangles spaces in mount points by changing them to an octal string ++ * of '\040'. So lets scan the mount point and fix it up by replacing all ++ * occurrences off '\0##' with the ASCII value of 0##. Requires a writable ++ * string as input as we mangle in place. Some of this was taken from the ++ * util-linux package. ++ */ ++#define octalify(a) ((a) & 7) ++#define tooctal(s) (64*octalify(s[1]) + 8*octalify(s[2]) + octalify(s[3])) ++#define isoctal(a) (((a) & ~7) == '0') ++static char *DeMangleMount(char *s) ++{ ++ char *tmp = s; ++ while ((tmp = strchr(tmp, '\\')) != NULL) { ++ if (isoctal(tmp[1]) && isoctal(tmp[2]) && isoctal(tmp[3])) { ++ tmp[0] = tooctal(tmp); ++ memmove(tmp+1, tmp+4, strlen(tmp)-3); ++ } ++ ++tmp; ++ } ++ return s; ++} ++ ++ ++/* + * Given name, such as foo, see if any of the following exist: + * + * foo (if foo starts with '.' or '/') +@@ -884,8 +908,8 @@ static int MountedDevice(const char *nam + if (((strcmp(s1, name) == 0) || (strcmp(s2, name) == 0)) || + ((maj != -1) && (maj == mtabmaj) && (min == mtabmin))) { + FCLOSE(fp); +- *deviceName = strdup(s1); +- *mountName = strdup(s2); ++ *deviceName = DeMangleMount(strdup(s1)); ++ *mountName = DeMangleMount(strdup(s2)); + return 1; + } + } +@@ -928,8 +952,8 @@ static int MountableDevice(const char *n + rc = sscanf(line, "%1023s %1023s", s1, s2); + if (rc >= 2 && s1[0] != '#' && strcmp(s2, name) == 0) { + FCLOSE(fp); +- *deviceName = strdup(s1); +- *mountName = strdup(s2); ++ *deviceName = DeMangleMount(strdup(s1)); ++ *mountName = DeMangleMount(strdup(s2)); + return 1; + } + } diff --git a/abs/core-testing/etcnet/10-defaults b/abs/core-testing/etcnet/10-defaults new file mode 100644 index 0000000..42a7879 --- /dev/null +++ b/abs/core-testing/etcnet/10-defaults @@ -0,0 +1,6 @@ +DHCP_CLIENT=/sbin/dhcpcd +IP=/usr/sbin/ip +TC=/usr/sbin/tc +LSMOD=/bin/lsmod +IFGROUP[1]='eth wlan plip usb dvb bnep tuntap' + diff --git a/abs/core-testing/etcnet/PKGBUILD b/abs/core-testing/etcnet/PKGBUILD new file mode 100755 index 0000000..798213e --- /dev/null +++ b/abs/core-testing/etcnet/PKGBUILD @@ -0,0 +1,39 @@ +pkgname=etcnet +pkgver=0.9.7 +pkgrel=2 +pkgdesc="/etc/net network configuration subsystem" +url="http://etcnet.org/" +depends=('bash' 'grep' 'sed' 'iproute' 'wireless_tools' 'iptables' 'dhcpcd') +arch=i686 +install=etcnet.install +source=(http://etcnet.org/files/$pkgname-$pkgver.tar.gz 10-defaults network functions.patch options ipv4route ipv4address ) + +build() { + cd $startdir/src/$pkgname-$pkgver + mkdir -p $startdir/pkg/var/lib/etcnet + mkdir -p $startdir/pkg/etc/sysconfig + + + + + + #cp $startdir/src/functions.patch ./etc/net + cd etc/net + patch -p0 < $startdir/src/functions.patch + + + install -D -m 644 $startdir/src/10-defaults $startdir/pkg/etc/net/options.d/10-defaults + install -D -m 644 $startdir/src/network $startdir/pkg/etc/sysconfig/network +# install -D -m 644 ../options $startdir/pkg/etc/net/ifaces/default/options + +#setup default for eth0 + mkdir -p $startdir/pkg/etc/net/ifaces/eth0 + cp $startdir/src/options $startdir/pkg/etc/net/ifaces/eth0/options + cp $startdir/src/ipv4route $startdir/pkg/etc/net/ifaces/eth0/ipv4route + cp $startdir/src/ipv4address $startdir/pkg/etc/net/ifaces/eth0/ipv4address + + cd $startdir/src/$pkgname-$pkgver + rm -Rf etc/sysconfig etc/net/{README.ALT,TODO,ChangeLog,ifaces/unknown} + cp -Rf etc $startdir/pkg + +} diff --git a/abs/core-testing/etcnet/adddhcp.patch b/abs/core-testing/etcnet/adddhcp.patch new file mode 100755 index 0000000..ee7b782 --- /dev/null +++ b/abs/core-testing/etcnet/adddhcp.patch @@ -0,0 +1,51 @@ +diff -ruN etc/net/ifaces/default/options /etc/net/ifaces/default/options +--- etc/net/ifaces/default/options 2005-08-02 08:26:44.000000000 +0000 ++++ /etc/net/ifaces/default/options 2005-10-24 16:20:07.000000000 +0000 +@@ -24,7 +24,7 @@ + # /etc/net will try to configure interface at the first succeeding + # method. Note that etcnet will process routes and rules despite of + # BOOTPROTO. +-BOOTPROTO=static ++BOOTPROTO=dhcp + + # Defines if the interface will be automatically brought up during + # system startup or 'service network start' invocation. +diff -ruN etc/net/scripts/config-ipv4 /etc/net/scripts/config-ipv4 +--- etc/net/scripts/config-ipv4 2005-08-10 08:08:40.000000000 +0000 ++++ /etc/net/scripts/config-ipv4 2005-10-24 16:48:49.000000000 +0000 +@@ -1,5 +1,5 @@ + #!/bin/bash +- ++#set -x + . $SCRIPTDIR/functions + pickup_options + +diff -ruN etc/net/scripts/ifup /etc/net/scripts/ifup +--- etc/net/scripts/ifup 2005-09-16 18:38:01.000000000 +0000 ++++ /etc/net/scripts/ifup 2005-10-24 16:42:12.000000000 +0000 +@@ -1,5 +1,5 @@ + #!/bin/bash +- ++#set -x + # This script is intended to be run from command-line or etcnet + # initscript. It determines if the iface should be created, then + # creates the device and calls ifup-common to do the rest. +diff -ruN etc/net/scripts/ifup-common /etc/net/scripts/ifup-common +--- etc/net/scripts/ifup-common 2005-08-03 09:03:26.000000000 +0000 ++++ /etc/net/scripts/ifup-common 2005-10-24 16:42:51.000000000 +0000 +@@ -1,5 +1,5 @@ + #!/bin/bash +- ++#set -x + # This script continues configuration of an interface started by ifup, + # ifup-removable or ifup-ifplugd scripts. We assume that all necessary + # checks are done yet. +diff -ruN etc/net/scripts/network.init /etc/net/scripts/network.init +--- etc/net/scripts/network.init 2005-09-29 12:54:32.000000000 +0000 ++++ /etc/net/scripts/network.init 2005-10-24 16:41:17.000000000 +0000 +@@ -1,4 +1,5 @@ + #!/bin/bash ++#set -x + # + # network + # chkconfig: 2345 10 90 diff --git a/abs/core-testing/etcnet/etcnet.install b/abs/core-testing/etcnet/etcnet.install new file mode 100755 index 0000000..2605e95 --- /dev/null +++ b/abs/core-testing/etcnet/etcnet.install @@ -0,0 +1,42 @@ +# 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/cp -Rf /etc/net /etc/net.pacsave >/dev/null 2>&1 + /bin/true +} + +# arg 1: the new package version +post_install() { + /bin/true + touch /etc/net/ +} + +# arg 1: the new package version +# arg 2: the old package version +pre_upgrade() { + /bin/cp -Rf /etc/net /etc/net.pacsave >/dev/null 2>&1 + /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/core-testing/etcnet/functions.patch b/abs/core-testing/etcnet/functions.patch new file mode 100644 index 0000000..c2321b6 --- /dev/null +++ b/abs/core-testing/etcnet/functions.patch @@ -0,0 +1,12 @@ +--- scripts/functions.orig 2008-09-02 03:10:21.000000000 +0000 ++++ scripts/functions 2008-09-02 03:10:49.000000000 +0000 +@@ -16,7 +16,8 @@ + DEFAULT_IFPLUGSTATUS=/usr/sbin/ifplugstatus + DEFAULT_IFPLUGD=/usr/sbin/ifplugd + DEFAULT_IWPRIV=/sbin/iwpriv +-DEFAULT_IWCONFIG=/sbin/iwconfig ++#DEFAULT_IWCONFIG=/sbin/iwconfig ++DEFAULT_IWCONFIG=/usr/sbin/iwconfig + DEFAULT_WPA_SUPPLICANT=/usr/sbin/wpa_supplicant + DEFAULT_WPA_CLI=/usr/sbin/wpa_cli + DEFAULT_PLIPCONFIG=/sbin/plipconfig diff --git a/abs/core-testing/etcnet/ipv4address b/abs/core-testing/etcnet/ipv4address new file mode 100755 index 0000000..39a5dd4 --- /dev/null +++ b/abs/core-testing/etcnet/ipv4address @@ -0,0 +1 @@ +192.168.1.5/24 diff --git a/abs/core-testing/etcnet/ipv4route b/abs/core-testing/etcnet/ipv4route new file mode 100755 index 0000000..b0dbb61 --- /dev/null +++ b/abs/core-testing/etcnet/ipv4route @@ -0,0 +1 @@ +default via 192.168.1.1 diff --git a/abs/core-testing/etcnet/network b/abs/core-testing/etcnet/network new file mode 100644 index 0000000..a0a17ab --- /dev/null +++ b/abs/core-testing/etcnet/network @@ -0,0 +1,6 @@ +# When set to no, this may cause most daemons' initscripts skip starting. +NETWORKING=yes +# Used by hotplug/pcmcia/ifplugd scripts to detect current network config +# subsystem. +CONFMETHOD=etcnet + diff --git a/abs/core-testing/etcnet/options b/abs/core-testing/etcnet/options new file mode 100755 index 0000000..23bb8bf --- /dev/null +++ b/abs/core-testing/etcnet/options @@ -0,0 +1,62 @@ +# 0.4.0: now we don't have to specify TYPE for disabled interfaces +DISABLED=no + +# BOOTPROTO can be any of the following: static, dhcp, ipv4ll. +# * "static": use ipv4address/ipv6address +# 'static' has the same meaning as 'none' in initscripts/net-scripts sense. +# IF you don't want to assing any address to an interface, but still keep +# it up and running, you can just use 'static' and have no ipv4address file. +# * "dhcp": run DHCP client +# * "ipv4ll": run IPv4LL client (zcip) +# As far as I know, there are no working IPv6 DHCP +# implementations. IPv4LL is not required for IPv6 because of +# link-scope addresses. +# Additional feature is multi-method configurations (methods +# can be delimited by ' ', ',' or '-': +# * "dhcp-static": try DHCP, if it fails, configure static address(es) +# * "dhcp-ipv4ll": same, but fallback to IPv4LL +# * "dhcp-ipv4ll-static": try DHCP, fallback to IPv4LL (very unlikely to fail), +# fallback to static +# /etc/net will try to configure interface at the first succeeding +# method. Note that etcnet will process routes and rules despite of +# BOOTPROTO. +BOOTPROTO=dhcp-static + +# Defines if the interface will be automatically brought up during +# system startup or 'service network start' invocation. +ONBOOT=yes +USE_HOTPLUG=no +USE_PCMCIA=no +CONFIG_IPV4=yes +CONFIG_IPV6=no +CONFIG_IPX=no +CONFIG_QOS=yes +CONFIG_WIRELESS=no +CONFIG_FW=no + +# If set to yes, interface will not be set UP, but configured. +KEEP_DOWN=no +# IPv4/IPv6. Don't flush existing addresses from interface before assigning new. +DONT_FLUSH=no + +# ****************** Interface dependencies ****************** +# If interface A has REQUIRES=B in it's options file, A is the child, B is the parent. +# I don't recommend changing defaults here. See also: README/3.5 + +# If set to yes, this variable will cause ifup call for all child (having current +# interface in their REQUIRES list) after the current interface is set up. +IFUP_CHILDREN=no + +# If set to yes, this variable will cause ifup call for all parent (listed in current +# REQUIRES list) before the current interface is set up. +# Note: this will not work for ifplugd-controlled interfaces. +IFUP_PARENTS=yes + +# If set to yes, this variable will cause ifdown call for all child (having current +# interface in their REQUIRES list) before the current interface is shut down. +IFDOWN_CHILDREN=yes + +# If set to yes, this variable will cause ifdown call for all parent (listed in current +# REQUIRES list) after the current interface is shut down. +# Note: this will not work for ifplugd-controlled interfaces. +IFDOWN_PARENTS=no diff --git a/abs/core-testing/expat/PKGBUILD b/abs/core-testing/expat/PKGBUILD new file mode 100644 index 0000000..0d63ac7 --- /dev/null +++ b/abs/core-testing/expat/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell +# Committer: Judd Vinet + +pkgname=expat +pkgver=2.0.1 +pkgrel=1 +pkgdesc="An XML Parser library written in C" +arch=(i686 x86_64) +license=('custom') +depends=('glibc') +options=('!libtool') +source=(http://heanet.dl.sourceforge.net/sourceforge/expat/${pkgname}-${pkgver}.tar.gz) +url="http://expat.sourceforge.net/" +md5sums=('ee8b492592568805593f81f8cdf2a04c') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install + install -m644 -D COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING +} diff --git a/abs/core-testing/expect/PKGBUILD b/abs/core-testing/expect/PKGBUILD new file mode 100644 index 0000000..c8705c6 --- /dev/null +++ b/abs/core-testing/expect/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Kevin Piche + +pkgname=expect +pkgver=5.44.1.4 +pkgrel=1 +pkgdesc="A tool for automating interactive applications" +arch=(i686 x86_64) +depends=('tcl>=8.5.0') +makedepends=('tk>=8.5.0') +tcltkver=8.5.0 +source=(ftp://ftp.archlinux.org/other/expect/expect-$pkgver.tar.bz2 +#http://expect.nist.gov/src/expect-$pkgver.tar.bz2 +http://heanet.dl.sourceforge.net/sourceforge/tcl/tk$tcltkver-src.tar.gz +http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl$tcltkver-src.tar.gz) +url="http://expect.nist.gov/" + +build() { + cd $startdir/src/expect-5.44.1.4 + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --with-tcl=/usr/lib --with-tk=/usr/lib --without-x \ + --with-tclinclude=$startdir/src/tcl$tcltkver/generic \ + --with-tkinclude=$startdir/src/tk$tcltkver/generic + # Keep $startdir/pkg out of library search paths. + sed -e 's/-rpath,${LIB_RUNTIME_DIR}:/-rpath,/' -i Makefile + make || return 1 + make prefix=$startdir/pkg/usr exec_prefix=$startdir/pkg/usr sysconfdir=$startdir/pkg/etc \ + localstatedir=$startdir/pkg/var install + # Remove X related stuff. + rm -f $startdir/pkg/usr/bin/{multixterm,tknewsbiff,tkpasswd,xpstat} + rm -f $startdir/pkg/usr/man/man1/{multixterm.1,tknewsbiff.1} +} +md5sums=('bbfd5ef50f3c1df4fe79e5a20a947d41' + 'bc217c45ed6b2f5b8d3120df63fa13bd' + 'd890c505465411b25050b6cd95971d2c') diff --git a/abs/core-testing/faac/PKGBUILD b/abs/core-testing/faac/PKGBUILD new file mode 100644 index 0000000..3d7ce11 --- /dev/null +++ b/abs/core-testing/faac/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Alexander Baldeck +# Contributor: Sarah Hay +# Contributor: dorphell +pkgname=faac +pkgver=1.26 +pkgrel=1 +pkgdesc="FAAC is an AAC audio encoder." +arch=(i686 x86_64) +url="http://www.audiocoding.com/" +license=('GPL' 'custom') +depends=('libmp4v2' 'glibc') +makedepends=('automake' 'autoconf' 'libtool') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz) + +build() { + cd ${startdir}/src/${pkgname} + find . -type f -print0 | xargs -0 sed -i 's/\r//g' + ./bootstrap + ./configure --prefix=/usr --with-mp4v2 + make || return 1 + make DESTDIR=${startdir}/pkg install + + install -D -m644 ${startdir}/src/${pkgname}/libfaac/kiss_fft/COPYING \ + ${startdir}/pkg/usr/share/licenses/faac/COPYING.kiss_fft +} +md5sums=('1d7c019bd2dbb4f3101b8937ebc59cf6') diff --git a/abs/core-testing/faac/libmp4v2.patch b/abs/core-testing/faac/libmp4v2.patch new file mode 100644 index 0000000..b2c0165 --- /dev/null +++ b/abs/core-testing/faac/libmp4v2.patch @@ -0,0 +1,11 @@ +--- faac/configure.in 2006-08-13 14:17:26.000000000 +0000 ++++ faac-patched/configure.in 2007-01-29 19:18:45.000000000 +0000 +@@ -35,6 +35,8 @@ + + if test x$external_mp4v2 = xyes; then + AC_MSG_NOTICE([*** Building with external mp4v2 ***]) ++ MY_DEFINE(HAVE_LIBMP4V2) ++ LIBS="-lmp4v2 $LIBS" + else + if test x$WITHMP4V2 = xyes; then + AC_MSG_NOTICE([*** Building with internal mp4v2 ***]) diff --git a/abs/core-testing/faac/pipe-output.patch b/abs/core-testing/faac/pipe-output.patch new file mode 100644 index 0000000..a8581f3 --- /dev/null +++ b/abs/core-testing/faac/pipe-output.patch @@ -0,0 +1,18 @@ +--- faac/frontend/main.c 2004-12-08 11:07:17.000000000 +0000 ++++ faac-patched/frontend/main.c 2007-01-29 19:17:26.000000000 +0000 +@@ -918,7 +918,14 @@ + { + #endif + /* open the aac output file */ +- outfile = fopen(aacFileName, "wb"); ++ if (aacFileName[0] == '-') ++ { ++ outfile = stdout; ++ } ++ else ++ { ++ outfile = fopen(aacFileName, "wb"); ++ } + if (!outfile) + { + fprintf(stderr, "Couldn't create output file %s\n", aacFileName); diff --git a/abs/core-testing/faad2/ChangeLog b/abs/core-testing/faad2/ChangeLog new file mode 100644 index 0000000..b4073ba --- /dev/null +++ b/abs/core-testing/faad2/ChangeLog @@ -0,0 +1,14 @@ +2008-07-19 Eric Belanger + + * faad2 2.6.1-1 + * Upstream update + * Patched to fix libtool build problem : + faad2-2.6.1-libtool22.patch + * Patched to make faad2 exit if output pipe breaks : + faad2-2.6.1-broken-pipe.patch + * Patched to fix include file implicit declaration : + faad2-2.6.1-implicitdeclar.patch + * Patched to bump soname (symbols have been changed) : + faad2-2.6.1-abi_has_changed.patch + * Updated license + * Added ChangeLog diff --git a/abs/core-testing/faad2/LICENSE b/abs/core-testing/faad2/LICENSE new file mode 100644 index 0000000..ecb2c75 --- /dev/null +++ b/abs/core-testing/faad2/LICENSE @@ -0,0 +1,28 @@ +/* +** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding +** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.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. +** +** Any non-GPL usage of this software or parts of this software is strictly +** forbidden. +** +** The "appropriate copyright message" mentioned in section 2c of the GPLv2 +** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" +** +** Commercial non-GPL licensing of this software is possible. +** For more info contact Nero AG through Mpeg4AAClicense@nero.com. +** +*/ diff --git a/abs/core-testing/faad2/PKGBUILD b/abs/core-testing/faad2/PKGBUILD new file mode 100644 index 0000000..227cc3b --- /dev/null +++ b/abs/core-testing/faad2/PKGBUILD @@ -0,0 +1,45 @@ +# $Id: PKGBUILD 5668 2008-07-20 05:06:05Z eric $ +# Maintainer: Eric Belanger +# Contributor: Sarah Hay + +pkgname=faad2 +pkgver=2.6.1 +pkgrel=1 +pkgdesc="ISO AAC audio decoder" +arch=('i686' 'x86_64') +url="http://www.audiocoding.com/" +license=('custom:GPL') +depends=('glibc') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/faac/${pkgname}-${pkgver}.tar.gz + faad2-2.6.1-libtool22.patch + faad2-2.6.1-broken-pipe.patch + faad2-2.6.1-implicitdeclar.patch + faad2-2.6.1-abi_has_changed.patch + LICENSE) +md5sums=('74e92df40c270f216a8305fc87603c8a' 'ca9515b6617d7fd060d0d172616eb192'\ + 'bb6a345dd2e6c4df6609e6a374134066' 'bc43fd3f8cd582a8bc092b9b5e611865'\ + '06e83633c609d20436794b62a382b3dc' 'b6a1c72534807b8a038b71e784f57e32') +sha1sums=('b4ad33d3c4dfa6dbf3011a3da34c631926cabfad' + 'ca4ee04aa1757b8f9deeef52b5bf35dc823da844' + '0b03728f40d00e552f738900e2f6215177af5417' + 'd4ab5d38c9b75ed6417529c4d1a7ca204293c224' + 'f7e9d89fc551e0b61a7b7555749ed7a3129a4ce8' + '6225fd997671206f5222c4a86d9e092359552c43') + +build() { + cd ${srcdir}/${pkgname} + patch -p1 < ../faad2-2.6.1-libtool22.patch || return 1 + patch -p1 < ../faad2-2.6.1-broken-pipe.patch || return 1 + patch -p1 < ../faad2-2.6.1-implicitdeclar.patch || return 1 + patch -p1 < ../faad2-2.6.1-abi_has_changed.patch || return 1 + + autoreconf -vif || return 1 + ./configure --prefix=/usr || return 1 + make || return 1 + make DESTDIR=${pkgdir} install || return 1 + install -m644 ${srcdir}/${pkgname}/common/mp4ff/mp4ff.h ${pkgdir}/usr/include/ || return 1 + install -m644 ${srcdir}/${pkgname}/common/mp4ff/mp4ff_int_types.h ${pkgdir}/usr/include/ || return 1 + install -m644 ${srcdir}/${pkgname}/common/mp4ff/.libs/*.a ${pkgdir}/usr/lib/ || return 1 + install -D -m644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1 +} diff --git a/abs/core-testing/faad2/faad2-2.6.1-abi_has_changed.patch b/abs/core-testing/faad2/faad2-2.6.1-abi_has_changed.patch new file mode 100644 index 0000000..7206e38 --- /dev/null +++ b/abs/core-testing/faad2/faad2-2.6.1-abi_has_changed.patch @@ -0,0 +1,14 @@ +Index: faad2/libfaad/Makefile.am +=================================================================== +--- faad2.orig/libfaad/Makefile.am ++++ faad2/libfaad/Makefile.am +@@ -3,7 +3,8 @@ lib_LTLIBRARIES = libfaad.la + include_HEADERS = $(top_srcdir)/include/faad.h \ + $(top_srcdir)/include/neaacdec.h + +-libfaad_la_LDFLAGS = -lm ++libfaad_la_LDFLAGS = -version-info 1:0:0 ++libfaad_la_LIBADD = -lm + + libfaad_la_SOURCES = bits.c cfft.c decoder.c drc.c \ + drm_dec.c error.c filtbank.c \ diff --git a/abs/core-testing/faad2/faad2-2.6.1-broken-pipe.patch b/abs/core-testing/faad2/faad2-2.6.1-broken-pipe.patch new file mode 100644 index 0000000..428d7dd --- /dev/null +++ b/abs/core-testing/faad2/faad2-2.6.1-broken-pipe.patch @@ -0,0 +1,22 @@ +--- faad2/frontend/main.c~ 2007-11-01 06:33:29.000000000 -0600 ++++ faad2/frontend/main.c 2008-01-03 18:05:10.000000000 -0700 +@@ -640,7 +640,8 @@ + + if ((frameInfo.error == 0) && (frameInfo.samples > 0) && (!adts_out)) + { +- write_audio_file(aufile, sample_buffer, frameInfo.samples, 0); ++ if (write_audio_file(aufile, sample_buffer, frameInfo.samples, 0) == 0) ++ break; + } + + /* fill buffer */ +@@ -976,7 +977,8 @@ + + if ((frameInfo.error == 0) && (sample_count > 0) && (!adts_out)) + { +- write_audio_file(aufile, sample_buffer, sample_count, delay); ++ if (write_audio_file(aufile, sample_buffer, sample_count, delay) == 0) ++ break; + } + + if (frameInfo.error > 0) diff --git a/abs/core-testing/faad2/faad2-2.6.1-implicitdeclar.patch b/abs/core-testing/faad2/faad2-2.6.1-implicitdeclar.patch new file mode 100644 index 0000000..9379329 --- /dev/null +++ b/abs/core-testing/faad2/faad2-2.6.1-implicitdeclar.patch @@ -0,0 +1,11 @@ +diff -aur faad2-orig/frontend/main.c faad2/frontend/main.c +--- faad2-orig/frontend/main.c 2007-11-01 08:33:29.000000000 -0400 ++++ faad2/frontend/main.c 2008-06-21 19:33:08.000000000 -0400 +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + + #include + #include diff --git a/abs/core-testing/faad2/faad2-2.6.1-libtool22.patch b/abs/core-testing/faad2/faad2-2.6.1-libtool22.patch new file mode 100644 index 0000000..4eab084 --- /dev/null +++ b/abs/core-testing/faad2/faad2-2.6.1-libtool22.patch @@ -0,0 +1,13 @@ +Index: faad2/configure.in +=================================================================== +--- faad2.orig/configure.in ++++ faad2/configure.in +@@ -18,7 +18,7 @@ dnl Checks for programs. + AC_PROG_CC + AC_PROG_CPP + dnl disable for mpeg4ip plugin +-dnl AC_PROG_CXX ++AC_PROG_CXX + AC_PROG_INSTALL + AC_PROG_LN_S + AC_PROG_MAKE_SET diff --git a/abs/core-testing/feh/PKGBUILD b/abs/core-testing/feh/PKGBUILD new file mode 100644 index 0000000..23a2627 --- /dev/null +++ b/abs/core-testing/feh/PKGBUILD @@ -0,0 +1,17 @@ + +pkgname=feh +pkgver=1.3.4 +pkgrel=3 +pkgdesc="feh is a fast, lightweight image viewer which uses imlib2" +depends=('libpng' 'libxinerama' 'giblib') +#source=(http://linuxbrit.co.uk/downloads/$pkgname-$pkgver.tar.gz) +source=(http://ftp.gva.es/mirror/debian/pool/main/f/feh/feh_1.3.4.orig.tar.gz) +url="http://www.linuxbrit.co.uk/feh/" +arch=('i686') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make prefix=$startdir/pkg/usr install +} diff --git a/abs/core-testing/ffmpeg/PKGBUILD b/abs/core-testing/ffmpeg/PKGBUILD new file mode 100644 index 0000000..463fa98 --- /dev/null +++ b/abs/core-testing/ffmpeg/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 5671 2008-07-20 05:09:25Z eric $ +# Contributor: Tom Newsom +# Maintainer: Paul Mattal + +pkgname=ffmpeg +pkgver=20080715 +pkgrel=3 +pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix" +arch=(i686 x86_64) +url="http://ffmpeg.mplayerhq.hu/" +license=('LGPL') +depends=('lame' 'sdl' 'libvorbis' 'a52dec' 'faad2>=2.6.1' 'faac' 'xvidcore' 'zlib' 'imlib2' 'x264>=20080625' 'libtheora') +#remake snapshot with: svn export svn://svn.mplayerhq.hu/ffmpeg/trunk@14236 +source=(ftp://ftp.archlinux.org/other/ffmpeg/ffmpeg-20080715-14236.tar.bz2) +md5sums=('899ee3dd56a779b1152e48a94fde69f0') + +build() { + cd "$srcdir/$pkgname" || return 1 + + ./configure \ + --prefix=/usr \ + --enable-gpl \ + --enable-libmp3lame \ + --enable-libvorbis \ + --enable-libfaac \ + --enable-libfaad \ + --enable-liba52 \ + --enable-libxvid \ + --enable-libx264 \ + --enable-libtheora \ + --enable-postproc \ + --enable-shared \ + --enable-pthreads \ + --enable-x11grab \ + --enable-swscale \ + || return 1 + + make -j 2 || return 1 + make doc/ff{mpeg,play,server}.1 || return 1 + + make DESTDIR="$pkgdir" install || return 1 + make DESTDIR="$pkgdir" install-man || return 1 + + # since makepkg currently declines to strip .a files, do this for now + strip --strip-debug $startdir/pkg/usr/lib/*.a || return 1 +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/core-testing/fftw2/PKGBUILD b/abs/core-testing/fftw2/PKGBUILD new file mode 100644 index 0000000..4198e96 --- /dev/null +++ b/abs/core-testing/fftw2/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: damir + +pkgname=fftw2 +pkgver=2.1.5 +pkgrel=4 +pkgdesc="FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size. This is package is offering backwards compatibility version 2.x.y. of fftw." +arch=(i686 x86_64) +url="http://www.fftw.org/" +license=('GPL2') +depends=('glibc') +options=(!libtool) +source=(http://www.fftw.org/fftw-${pkgver}.tar.gz) +md5sums=('8d16a84f3ca02a785ef9eb36249ba433') + +build() { + cd ${startdir}/src/fftw-${pkgver} + # build + install double precision + ./configure F77=gfortran --prefix=/usr \ + --enable-type-prefix --enable-shared \ + --enable-threads + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + + make clean + + # build + install single precision + ./configure F77=gfortran --prefix=/usr \ + --enable-float --enable-type-prefix --enable-shared \ + --enable-threads + make || return 1 + #make prefix=$startdir/pkg/usr install || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/file/PKGBUILD b/abs/core-testing/file/PKGBUILD new file mode 100644 index 0000000..63a224f --- /dev/null +++ b/abs/core-testing/file/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 4745 2008-07-09 19:17:02Z andyrtr $ +# Maintainer: Andreas Radke + +pkgname=file +pkgver=4.25 +pkgrel=10 +pkgdesc="File type identification utility" +arch=('i686' 'x86_64') +license=('custom') +groups=('base') +url="http://www.darwinsys.com/file/" +depends=('glibc' 'zlib') +options=('!libtool') +source=(ftp://ftp.astron.com/pub/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('cdf1f90d2704e71118353c16c19898ba') + +build() { + cd ${srcdir}/$pkgname-$pkgver + ./configure --prefix=/usr --datadir=/usr/share/misc + make || return 1 + make DESTDIR=${pkgdir} install + install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING +} diff --git a/abs/core-testing/filesystem/PKGBUILD b/abs/core-testing/filesystem/PKGBUILD new file mode 100644 index 0000000..4dee201 --- /dev/null +++ b/abs/core-testing/filesystem/PKGBUILD @@ -0,0 +1,90 @@ +# $Id: PKGBUILD 4675 2008-07-08 19:16:06Z pierre $ +# Maintainer: Aaron Griffin +# Contributor: judd + +pkgname=filesystem +pkgver=2008.07 +pkgrel=10 +pkgdesc="Base filesystem" +arch=(i686 x86_64) +license=('GPL') +url="http://www.archlinux.org" +groups=('base') +install=filesystem.install +#depends=('sh' 'coreutils') +backup=(etc/fstab etc/crypttab etc/group etc/hosts etc/ld.so.conf etc/passwd \ + etc/shadow etc/gshadow etc/resolv.conf etc/motd etc/nsswitch.conf \ + etc/shells etc/host.conf etc/securetty etc/profile etc/issue) +source=(group issue nsswitch.conf securetty host.conf ld.so.conf \ + passwd shadow fstab crypttab hosts motd resolv.conf shells \ + gshadow services protocols profile) + +build() +{ + cd $startdir/pkg + mkdir -p bin boot dev etc home lib mnt proc root sbin tmp usr var opt srv sys + chmod 555 proc + mkdir -p media/{fl,cd,dvd} + mkdir -p usr/{bin,include,lib,sbin,share/misc,src,man} + + mkdir -p usr/share/man/man{1,2,3,4,5,6,7,8} + ln -s man3 $startdir/pkg/usr/share/man/man3x + + # fhs compliance + mkdir -p usr/local/{bin,games,include,lib,man,sbin,share,src} + ln -s ../man $startdir/pkg/usr/local/share/man + mkdir -p var/{cache/man,local,lock,opt,run,spool/mail,tmp,games} + chmod 1777 var/lock + mkdir -p var/log/old + mkdir -p etc/{skel,profile.d} + mkdir -p lib/modules + (cd $startdir/pkg/usr; ln -s ../var var) + (cd $startdir/pkg/var; ln -s spool/mail mail) + + # vsftpd won't run with write perms on /srv/ftp + mkdir -p srv/ftp + chown root.ftp srv/ftp + chmod 555 srv/ftp + + install -d -o root -g root -m 755 srv/http + + chmod 1777 var/spool/mail tmp var/tmp + chmod 0750 root + + #Allow setgid games to write scores: + chmod 775 ${startdir}/pkg/var/games + chown root:50 ${startdir}/pkg/var/games + + cd $startdir/src + cp fstab crypttab group host.conf hosts issue ld.so.conf motd nsswitch.conf \ + passwd protocols resolv.conf securetty services shadow shells profile \ + $startdir/pkg/etc/ + install -m 600 $startdir/src/gshadow $startdir/pkg/etc/gshadow + chmod 600 $startdir/pkg/etc/shadow + chmod 600 $startdir/pkg/etc/crypttab + + # no version any more + #cat issue | sed "s/#VERSION#/$pkgver/" >$startdir/pkg/etc/issue + + # re-add /etc/arch-release, some software uses it + # to check whether arch is running + touch $startdir/pkg/etc/arch-release +} +md5sums=('f64f86c4a6356961b69ead0471294145' + '1bdc5dba66947d74866a5df8ce9ef3b1' + '775464ba7588b4976e0c2a02b83123f4' + '655071da46d2ac03e0fb8a071bf193ea' + 'f28150d4c0b22a017be51b9f7f9977ed' + '2c24792d97ef3cf0d73b60d4c429730b' + '8a9042a2cedf6b6b47eb8973f14289cb' + '019e5c24f9befef395a28e7ef2e4e5b9' + '4e2f238bae5cbf716ff73c9404404269' + 'e5d8323a4dbee7a6d0d2a19cbf4b819f' + '81b3cb42a6ddabc2ed2310511ee9c859' + 'd41d8cd98f00b204e9800998ecf8427e' + '6f48288b6fcaf0065fcb7b0e525413e0' + '40dac0de4c6b99c8ca97effbd7527c84' + 'ab9c2a40eba287b2918589ab8e0b2fbf' + 'f436d2e0ed02b7b73bd10c6693e95ac3' + '65d78e621ed69eed69f854c3ee2e5942' + 'f2a88eacb5c37201368c916d9e594440') diff --git a/abs/core-testing/filesystem/crypttab b/abs/core-testing/filesystem/crypttab new file mode 100644 index 0000000..dd6994b --- /dev/null +++ b/abs/core-testing/filesystem/crypttab @@ -0,0 +1,33 @@ +# crypttab: Mappings for encrypted partitions +# +# Each mapped device will be created in /dev/mapper, so your /etc/fstab +# should use the /dev/mapper/{NAME} paths for encrypted devices. +# +# Each PASSWORD field can be an absolute pathname to a key file (starting +# with a slash, recommended) or a literal string that will be used as +# a passphrase. To use special characters in the passphrase, surround it +# by quotes, the usual bash quoting rules apply. +# There are two special keywords that cannot be used as passphrases: +# - ASK ask for a passphrase on boot +# - SWAP use a random key and create a swapspace afterwards +# WARNING: use the SWAP keyword carefully, as it overwrites the data +# on the specified partition +# +# To create a key file: +# hashalot -n 32 ripemd160 >/etc/crytfs.key +# or +# dd if=/dev/urandom of=/etc/cryptfs.key bs=256 count=1 +# +# To pass additional options to cryptsetup for non-LUKS partitions, use the +# fourth column. +# +# NOTE: Do not list your root (/) partition here, it must be set up +# beforehand by the initramfs (/etc/mkinitcpio.conf). + + +# NAME SOURCE DEVICE PASSWORD OPTIONS +#home /dev/hda4 mypassword +#data1 /dev/hda3 "my \"password\"" +#data2 /dev/hda5 /etc/cryptfs.key +#swap /dev/hdx4 SWAP -c aes-cbc-essiv:sha256 -s 256 +#vol /dev/hdb7 ASK diff --git a/abs/core-testing/filesystem/filesystem.install b/abs/core-testing/filesystem/filesystem.install new file mode 100644 index 0000000..92b336f --- /dev/null +++ b/abs/core-testing/filesystem/filesystem.install @@ -0,0 +1,60 @@ +# arg 1: the new package version +post_install() { + [ -f var/log/lastlog ] || : >var/log/lastlog + [ -f var/log/wtmp ] || : >var/log/wtmp + [ -f var/run/utmp ] || : >var/run/utmp + [ -f var/log/btmp ] || (: >var/log/btmp && bin/chmod 600 var/log/btmp) + # workaround for bug #7194 + # readded due to bug #9465 + # please do not remove! + chmod 1777 var/spool/mail tmp var/tmp var/lock +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 + if [ ! "`grep ^optical: etc/group`" ]; then + echo "adding new groups: audio optical" + usr/sbin/groupadd -g 92 audio >/dev/null + usr/sbin/groupadd -g 93 optical >/dev/null + fi + if [ ! "`grep ^video: etc/group`" ]; then + echo "adding new groups: video floppy storage" + usr/sbin/groupadd -g 91 video >/dev/null + usr/sbin/groupadd -g 94 floppy >/dev/null + usr/sbin/groupadd -g 95 storage >/dev/null + fi + if [ ! "`grep ^log: etc/group`" ]; then + echo "adding new group: log" + usr/sbin/groupadd -g 19 log >/dev/null + fi + if [ ! "`grep ^power: etc/group`" ]; then + echo "adding new group: power" + usr/sbin/groupadd -g 98 power >/dev/null + fi + if [ ! "`grep ^network: etc/group`" ]; then + echo "adding new group: network" + usr/sbin/groupadd -g 90 network >/dev/null + fi + if [ ! "`grep ^games: etc/group`" ]; then + echo "adding new group: games" + usr/sbin/groupadd -g 50 games >/dev/null + fi + if [ ! "`grep ^uucp: etc/group`" ]; then + echo "adding new group: uucp" + usr/sbin/groupadd -g 14 uucp >/dev/null + fi + if [ ! "`grep ^http: etc/group`" ]; then + echo "adding new group: http" + usr/sbin/groupadd -g 33 http >/dev/null + fi + if [ ! "`grep ^http: etc/passwd`" ]; then + echo "adding new user http" + usr/sbin/useradd -u 33 -d /srv/http -g http -s /bin/false http >/dev/null + fi + if [ ! "`grep ^scanner: etc/group`" ]; then + echo "adding new group: scanner" + usr/sbin/groupadd -g 96 scanner >/dev/null + fi +} diff --git a/abs/core-testing/filesystem/fstab b/abs/core-testing/filesystem/fstab new file mode 100644 index 0000000..a609a32 --- /dev/null +++ b/abs/core-testing/filesystem/fstab @@ -0,0 +1,11 @@ +# +# /etc/fstab: static file system information +# +# +none /dev/pts devpts defaults 0 0 +none /dev/shm tmpfs defaults 0 0 + +/dev/cdrom /media/cd auto ro,user,noauto,unhide 0 0 +/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0 +/dev/fd0 /media/fl auto user,noauto 0 0 + diff --git a/abs/core-testing/filesystem/group b/abs/core-testing/filesystem/group new file mode 100644 index 0000000..f0d4712 --- /dev/null +++ b/abs/core-testing/filesystem/group @@ -0,0 +1,28 @@ +root::0:root +bin::1:root,bin,daemon +daemon::2:root,bin,daemon +sys::3:root,bin +adm::4:root,daemon +tty::5: +disk::6:root +lp::7:daemon +mem::8: +kmem::9: +wheel::10:root +ftp::11: +mail::12: +uucp::14: +log::19:root +smmsp::25: +http::33: +games::50: +network:x:90: +video:x:91: +audio::92: +optical::93: +floppy:x:94: +storage:x:95: +scanner:x:96: +power:x:98: +nobody::99: +users::100: diff --git a/abs/core-testing/filesystem/gshadow b/abs/core-testing/filesystem/gshadow new file mode 100644 index 0000000..30733e3 --- /dev/null +++ b/abs/core-testing/filesystem/gshadow @@ -0,0 +1,27 @@ +root:::root +bin:::root,bin,daemon +daemon:::root,bin,daemon +sys:::root,bin +adm:::root,daemon +tty::: +disk:::root +lp:::daemon +mem::: +kmem::: +wheel:::root +ftp::: +mail::: +log:::root +smmsp::: +http::: +games::: +network:x:: +video:x:: +audio::: +optical::: +floppy:x:: +storage:x:: +scanner:x:: +power:x:: +nobody::: +users::: diff --git a/abs/core-testing/filesystem/host.conf b/abs/core-testing/filesystem/host.conf new file mode 100644 index 0000000..cf52fe5 --- /dev/null +++ b/abs/core-testing/filesystem/host.conf @@ -0,0 +1,8 @@ +# +# /etc/host.conf +# + +order hosts,bind +multi on + +# End of file diff --git a/abs/core-testing/filesystem/hosts b/abs/core-testing/filesystem/hosts new file mode 100644 index 0000000..ec12849 --- /dev/null +++ b/abs/core-testing/filesystem/hosts @@ -0,0 +1,8 @@ +# +# /etc/hosts: static lookup table for host names +# + +# +127.0.0.1 localhost.localdomain localhost + +# End of file diff --git a/abs/core-testing/filesystem/issue b/abs/core-testing/filesystem/issue new file mode 100644 index 0000000..3db753d --- /dev/null +++ b/abs/core-testing/filesystem/issue @@ -0,0 +1,3 @@ + +Arch Linux \r (\n) (\l) + diff --git a/abs/core-testing/filesystem/ld.so.conf b/abs/core-testing/filesystem/ld.so.conf new file mode 100644 index 0000000..2227e1e --- /dev/null +++ b/abs/core-testing/filesystem/ld.so.conf @@ -0,0 +1,5 @@ +# +# /etc/ld.so.conf +# + +# End of file diff --git a/abs/core-testing/filesystem/motd b/abs/core-testing/filesystem/motd new file mode 100644 index 0000000..e69de29 diff --git a/abs/core-testing/filesystem/nsswitch.conf b/abs/core-testing/filesystem/nsswitch.conf new file mode 100644 index 0000000..7d86691 --- /dev/null +++ b/abs/core-testing/filesystem/nsswitch.conf @@ -0,0 +1,19 @@ +# Begin /etc/nsswitch.conf + +passwd: files +group: files +shadow: files + +publickey: files + +hosts: files dns +networks: files + +protocols: db files +services: db files +ethers: db files +rpc: db files + +netgroup: db files + +# End /etc/nsswitch.conf diff --git a/abs/core-testing/filesystem/passwd b/abs/core-testing/filesystem/passwd new file mode 100644 index 0000000..a4a24e3 --- /dev/null +++ b/abs/core-testing/filesystem/passwd @@ -0,0 +1,7 @@ +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/bin/false +daemon:x:2:2:daemon:/sbin:/bin/false +mail:x:8:12:mail:/var/spool/mail:/bin/false +ftp:x:14:11:ftp:/srv/ftp:/bin/false +http:x:33:33:http:/srv/http:/bin/false +nobody:x:99:99:nobody:/:/bin/false diff --git a/abs/core-testing/filesystem/profile b/abs/core-testing/filesystem/profile new file mode 100644 index 0000000..d18b99a --- /dev/null +++ b/abs/core-testing/filesystem/profile @@ -0,0 +1,57 @@ +# +# /etc/profile +# +# This file is intended to be used for ALL common +# Bourne-compatible shells. Shell specifics should be +# handled in /etc/profile.$SHELL where $SHELL is the name +# of the binary being run (discounting symlinks) +# +# Sections taken from SuSe's /etc/profile +# Note the explicit use of 'test' to cover all bases +# and potentially incompatible shells + +#Determine our shell without using $SHELL, which may lie +shell="sh" +if test -f /proc/mounts; then + case $(/bin/ls -l /proc/$$/exe) in + *bash) shell=bash ;; + *dash) shell=dash ;; + *ash) shell=ash ;; + *ksh) shell=ksh ;; + *zsh) shell=zsh ;; + esac +fi + +# Load shell specific profile settings +test -f "/etc/profile.$shell" && . "/etc/profile.$shell" + +#Set our umask +umask 022 + +# Set our default path +PATH="/bin:/usr/bin:/sbin:/usr/sbin" +export PATH + +# Some readline stuff that is fairly common +HISTSIZE=1000 +HISTCONTROL="erasedups" + +INPUTRC="/etc/inputrc" +LESS="-R" +LC_COLLATE="C" + +export HISTSIZE HISTCONTROL INPUTRC LESS LC_COLLATE + +# Load profiles from /etc/profile.d +if test -d /etc/profile.d/; then + for profile in /etc/profile.d/*.sh; do + test -x $profile && . $profile + done + unset profile +fi + +# Termcap is outdated, old, and crusty, kill it. +unset TERMCAP + +# Man is much better than us at figuring this out +unset MANPATH diff --git a/abs/core-testing/filesystem/protocols b/abs/core-testing/filesystem/protocols new file mode 100644 index 0000000..670728e --- /dev/null +++ b/abs/core-testing/filesystem/protocols @@ -0,0 +1,57 @@ +# Internet (IP) protocols +# +# Updated from http://www.iana.org/assignments/protocol-numbers and other +# sources. +# New protocols will be added on request if they have been officially +# assigned by IANA and are not historical. +# If you need a huge list of used numbers please install the nmap package. + +ip 0 IP # internet protocol, pseudo protocol number +#hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # Internet Group Management +ggp 3 GGP # gateway-gateway protocol +ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') +st 5 ST # ST datagram mode +tcp 6 TCP # transmission control protocol +egp 8 EGP # exterior gateway protocol +igp 9 IGP # any private interior gateway (Cisco) +pup 12 PUP # PARC universal packet protocol +udp 17 UDP # user datagram protocol +hmp 20 HMP # host monitoring protocol +xns-idp 22 XNS-IDP # Xerox NS IDP +rdp 27 RDP # "reliable datagram" protocol +iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] +xtp 36 XTP # Xpress Transfer Protocol +ddp 37 DDP # Datagram Delivery Protocol +idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport +ipv6 41 IPv6 # Internet Protocol, version 6 +ipv6-route 43 IPv6-Route # Routing Header for IPv6 +ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 +idrp 45 IDRP # Inter-Domain Routing Protocol +rsvp 46 RSVP # Reservation Protocol +gre 47 GRE # General Routing Encapsulation +esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] +ah 51 IPSEC-AH # Authentication Header [RFC2402] +skip 57 SKIP # SKIP +ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 +ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 +ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 +rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) +vmtp 81 VMTP # Versatile Message Transport +eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) +ospf 89 OSPFIGP # Open Shortest Path First IGP +ax.25 93 AX.25 # AX.25 frames +ipip 94 IPIP # IP-within-IP Encapsulation Protocol +etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] +encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] +# 99 # any private encryption scheme +pim 103 PIM # Protocol Independent Multicast +ipcomp 108 IPCOMP # IP Payload Compression Protocol +vrrp 112 VRRP # Virtual Router Redundancy Protocol +l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] +isis 124 ISIS # IS-IS over IPv4 +sctp 132 SCTP # Stream Control Transmission Protocol +fc 133 FC # Fibre Channel +udplite 136 UDPLite # UDP-Lite + diff --git a/abs/core-testing/filesystem/resolv.conf b/abs/core-testing/filesystem/resolv.conf new file mode 100644 index 0000000..cecafba --- /dev/null +++ b/abs/core-testing/filesystem/resolv.conf @@ -0,0 +1,8 @@ +# +# /etc/resolv.conf +# + +#search +#nameserver + +# End of file diff --git a/abs/core-testing/filesystem/securetty b/abs/core-testing/filesystem/securetty new file mode 100644 index 0000000..af01d2e --- /dev/null +++ b/abs/core-testing/filesystem/securetty @@ -0,0 +1,13 @@ +# +# /etc/securetty +# + +console +vc/1 +vc/2 +vc/3 +vc/4 +vc/5 +vc/6 + +# End of file diff --git a/abs/core-testing/filesystem/services b/abs/core-testing/filesystem/services new file mode 100644 index 0000000..2f1f99c --- /dev/null +++ b/abs/core-testing/filesystem/services @@ -0,0 +1,557 @@ +# Network services, Internet style +# +# Note that it is presently the policy of IANA to assign a single well-known +# port number for both TCP and UDP; hence, officially ports have two entries +# even if the protocol doesn't support UDP operations. +# +# Updated from http://www.iana.org/assignments/port-numbers and other +# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services . +# New ports will be added on request if they have been officially assigned +# by IANA and used in the real-world or are needed by a debian package. +# If you need a huge list of used numbers please install the nmap package. + +tcpmux 1/tcp # TCP port service multiplexer +echo 7/tcp +echo 7/udp +discard 9/tcp sink null +discard 9/udp sink null +systat 11/tcp users +daytime 13/tcp +daytime 13/udp +netstat 15/tcp +qotd 17/tcp quote +msp 18/tcp # message send protocol +msp 18/udp +chargen 19/tcp ttytst source +chargen 19/udp ttytst source +ftp-data 20/tcp +ftp 21/tcp +fsp 21/udp fspd +ssh 22/tcp # SSH Remote Login Protocol +ssh 22/udp +telnet 23/tcp +smtp 25/tcp mail +time 37/tcp timserver +time 37/udp timserver +rlp 39/udp resource # resource location +nameserver 42/tcp name # IEN 116 +whois 43/tcp nicname +tacacs 49/tcp # Login Host Protocol (TACACS) +tacacs 49/udp +re-mail-ck 50/tcp # Remote Mail Checking Protocol +re-mail-ck 50/udp +domain 53/tcp # name-domain server +domain 53/udp +mtp 57/tcp # deprecated +tacacs-ds 65/tcp # TACACS-Database Service +tacacs-ds 65/udp +bootps 67/tcp # BOOTP server +bootps 67/udp +bootpc 68/tcp # BOOTP client +bootpc 68/udp +tftp 69/udp +gopher 70/tcp # Internet Gopher +gopher 70/udp +rje 77/tcp netrjs +finger 79/tcp +www 80/tcp http # WorldWideWeb HTTP +www 80/udp # HyperText Transfer Protocol +link 87/tcp ttylink +kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5 +kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5 +supdup 95/tcp +hostnames 101/tcp hostname # usually from sri-nic +iso-tsap 102/tcp tsap # part of ISODE +acr-nema 104/tcp dicom # Digital Imag. & Comm. 300 +acr-nema 104/udp dicom # Digital Imag. & Comm. 300 +csnet-ns 105/tcp cso-ns # also used by CSO name server +csnet-ns 105/udp cso-ns +rtelnet 107/tcp # Remote Telnet +rtelnet 107/udp +pop2 109/tcp postoffice pop-2 # POP version 2 +pop2 109/udp pop-2 +pop3 110/tcp pop-3 # POP version 3 +pop3 110/udp pop-3 +sunrpc 111/tcp portmapper # RPC 4.0 portmapper +sunrpc 111/udp portmapper +auth 113/tcp authentication tap ident +sftp 115/tcp +uucp-path 117/tcp +nntp 119/tcp readnews untp # USENET News Transfer Protocol +ntp 123/tcp +ntp 123/udp # Network Time Protocol +pwdgen 129/tcp # PWDGEN service +pwdgen 129/udp # PWDGEN service +loc-srv 135/tcp epmap # Location Service +loc-srv 135/udp epmap +netbios-ns 137/tcp # NETBIOS Name Service +netbios-ns 137/udp +netbios-dgm 138/tcp # NETBIOS Datagram Service +netbios-dgm 138/udp +netbios-ssn 139/tcp # NETBIOS session service +netbios-ssn 139/udp +imap2 143/tcp imap # Interim Mail Access P 2 and 4 +imap2 143/udp imap +snmp 161/tcp # Simple Net Mgmt Protocol +snmp 161/udp # Simple Net Mgmt Protocol +snmp-trap 162/tcp snmptrap # Traps for SNMP +snmp-trap 162/udp snmptrap # Traps for SNMP +cmip-man 163/tcp # ISO mgmt over IP (CMOT) +cmip-man 163/udp +cmip-agent 164/tcp +cmip-agent 164/udp +mailq 174/tcp # Mailer transport queue for Zmailer +mailq 174/udp # Mailer transport queue for Zmailer +xdmcp 177/tcp # X Display Mgr. Control Proto +xdmcp 177/udp +nextstep 178/tcp NeXTStep NextStep # NeXTStep window +nextstep 178/udp NeXTStep NextStep # server +bgp 179/tcp # Border Gateway Protocol +bgp 179/udp +prospero 191/tcp # Cliff Neuman's Prospero +prospero 191/udp +irc 194/tcp # Internet Relay Chat +irc 194/udp +smux 199/tcp # SNMP Unix Multiplexer +smux 199/udp +at-rtmp 201/tcp # AppleTalk routing +at-rtmp 201/udp +at-nbp 202/tcp # AppleTalk name binding +at-nbp 202/udp +at-echo 204/tcp # AppleTalk echo +at-echo 204/udp +at-zis 206/tcp # AppleTalk zone information +at-zis 206/udp +qmtp 209/tcp # Quick Mail Transfer Protocol +qmtp 209/udp # Quick Mail Transfer Protocol +z3950 210/tcp wais # NISO Z39.50 database +z3950 210/udp wais +ipx 213/tcp # IPX +ipx 213/udp +imap3 220/tcp # Interactive Mail Access +imap3 220/udp # Protocol v3 +pawserv 345/tcp # Perf Analysis Workbench +pawserv 345/udp +zserv 346/tcp # Zebra server +zserv 346/udp +fatserv 347/tcp # Fatmen Server +fatserv 347/udp +rpc2portmap 369/tcp +rpc2portmap 369/udp # Coda portmapper +codaauth2 370/tcp +codaauth2 370/udp # Coda authentication server +clearcase 371/tcp Clearcase +clearcase 371/udp Clearcase +ulistserv 372/tcp # UNIX Listserv +ulistserv 372/udp +ldap 389/tcp # Lightweight Directory Access Protocol +ldap 389/udp +imsp 406/tcp # Interactive Mail Support Protocol +imsp 406/udp +https 443/tcp # http protocol over TLS/SSL +https 443/udp +snpp 444/tcp # Simple Network Paging Protocol +snpp 444/udp +microsoft-ds 445/tcp # Microsoft Naked CIFS +microsoft-ds 445/udp +kpasswd 464/tcp +kpasswd 464/udp +saft 487/tcp # Simple Asynchronous File Transfer +saft 487/udp +isakmp 500/tcp # IPsec - Internet Security Association +isakmp 500/udp # and Key Management Protocol +rtsp 554/tcp # Real Time Stream Control Protocol +rtsp 554/udp # Real Time Stream Control Protocol +nqs 607/tcp # Network Queuing system +nqs 607/udp +npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS +npmp-local 610/udp dqs313_qmaster +npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS +npmp-gui 611/udp dqs313_execd +hmmp-ind 612/tcp dqs313_intercell # HMMP Indication / DQS +hmmp-ind 612/udp dqs313_intercell +ipp 631/tcp # Internet Printing Protocol +ipp 631/udp +# +# UNIX specific services +# +exec 512/tcp +biff 512/udp comsat +login 513/tcp +who 513/udp whod +shell 514/tcp cmd # no passwords used +syslog 514/udp +printer 515/tcp spooler # line printer spooler +talk 517/udp +ntalk 518/udp +route 520/udp router routed # RIP +timed 525/udp timeserver +tempo 526/tcp newdate +courier 530/tcp rpc +conference 531/tcp chat +netnews 532/tcp readnews +netwall 533/udp # for emergency broadcasts +gdomap 538/tcp # GNUstep distributed objects +gdomap 538/udp +uucp 540/tcp uucpd # uucp daemon +klogin 543/tcp # Kerberized `rlogin' (v5) +kshell 544/tcp krcmd # Kerberized `rsh' (v5) +afpovertcp 548/tcp # AFP over TCP +afpovertcp 548/udp +remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem +nntps 563/tcp snntp # NNTP over SSL +nntps 563/udp snntp +submission 587/tcp # Submission [RFC2476] +submission 587/udp +ldaps 636/tcp # LDAP over SSL +ldaps 636/udp +tinc 655/tcp # tinc control port +tinc 655/udp +silc 706/tcp +silc 706/udp +kerberos-adm 749/tcp # Kerberos `kadmin' (v5) +# +webster 765/tcp # Network dictionary +webster 765/udp +rsync 873/tcp +rsync 873/udp +ftps-data 989/tcp # FTP over SSL (data) +ftps 990/tcp +telnets 992/tcp # Telnet over SSL +telnets 992/udp +imaps 993/tcp # IMAP over SSL +imaps 993/udp +ircs 994/tcp # IRC over SSL +ircs 994/udp +pop3s 995/tcp # POP-3 over SSL +pop3s 995/udp +# +# From ``Assigned Numbers'': +# +#> The Registered Ports are not controlled by the IANA and on most systems +#> can be used by ordinary user processes or programs executed by ordinary +#> users. +# +#> Ports are used in the TCP [45,106] to name the ends of logical +#> connections which carry long term conversations. For the purpose of +#> providing services to unknown callers, a service contact port is +#> defined. This list specifies the port used by the server process as its +#> contact port. While the IANA can not control uses of these ports it +#> does register or list uses of these ports as a convienence to the +#> community. +# +socks 1080/tcp # socks proxy server +socks 1080/udp +proofd 1093/tcp +proofd 1093/udp +rootd 1094/tcp +rootd 1094/udp +openvpn 1194/tcp +openvpn 1194/udp +rmiregistry 1099/tcp # Java RMI Registry +rmiregistry 1099/udp +kazaa 1214/tcp +kazaa 1214/udp +nessus 1241/tcp # Nessus vulnerability +nessus 1241/udp # assessment scanner +lotusnote 1352/tcp lotusnotes # Lotus Note +lotusnote 1352/udp lotusnotes +ms-sql-s 1433/tcp # Microsoft SQL Server +ms-sql-s 1433/udp +ms-sql-m 1434/tcp # Microsoft SQL Monitor +ms-sql-m 1434/udp +ingreslock 1524/tcp +ingreslock 1524/udp +prospero-np 1525/tcp # Prospero non-privileged +prospero-np 1525/udp +datametrics 1645/tcp old-radius +datametrics 1645/udp old-radius +sa-msg-port 1646/tcp old-radacct +sa-msg-port 1646/udp old-radacct +kermit 1649/tcp +kermit 1649/udp +l2f 1701/tcp l2tp +l2f 1701/udp l2tp +radius 1812/tcp +radius 1812/udp +radius-acct 1813/tcp radacct # Radius Accounting +radius-acct 1813/udp radacct +msnp 1863/tcp # MSN Messenger +msnp 1863/udp +unix-status 1957/tcp # remstats unix-status server +log-server 1958/tcp # remstats log server +remoteping 1959/tcp # remstats remoteping server +nfs 2049/tcp # Network File System +nfs 2049/udp # Network File System +rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99 +rtcm-sc104 2101/udp +cvspserver 2401/tcp # CVS client/server operations +cvspserver 2401/udp +venus 2430/tcp # codacon port +venus 2430/udp # Venus callback/wbc interface +venus-se 2431/tcp # tcp side effects +venus-se 2431/udp # udp sftp side effect +codasrv 2432/tcp # not used +codasrv 2432/udp # server port +codasrv-se 2433/tcp # tcp side effects +codasrv-se 2433/udp # udp sftp side effect +mon 2583/tcp # MON +mon 2583/udp +dict 2628/tcp # Dictionary server +dict 2628/udp +gpsd 2947/tcp +gpsd 2947/udp +gds_db 3050/tcp # InterBase server +gds_db 3050/udp +icpv2 3130/tcp icp # Internet Cache Protocol +icpv2 3130/udp icp +mysql 3306/tcp +mysql 3306/udp +nut 3493/tcp # Network UPS Tools +nut 3493/udp +distcc 3632/tcp # distributed compiler +distcc 3632/udp +daap 3689/tcp # Digital Audio Access Protocol +daap 3689/udp +svn 3690/tcp subversion # Subversion protocol +svn 3690/udp subversion +suucp 4013/tcp # UUCP over SSL +suucp 4013/udp # UUCP over SSL +sysrqd 4094/tcp # sysrq daemon +sysrqd 4094/udp # sysrq daemon +iax 4569/tcp # Inter-Asterisk eXchange +iax 4569/udp +radmin-port 4899/tcp # RAdmin Port +radmin-port 4899/udp +rfe 5002/udp # Radio Free Ethernet +rfe 5002/tcp +mmcc 5050/tcp # multimedia conference control tool (Yahoo IM) +mmcc 5050/udp +sip 5060/tcp # Session Initiation Protocol +sip 5060/udp +sip-tls 5061/tcp +sip-tls 5061/udp +aol 5190/tcp # AIM +aol 5190/udp +xmpp-client 5222/tcp jabber-client # Jabber Client Connection +xmpp-client 5222/udp jabber-client +xmpp-server 5269/tcp jabber-server # Jabber Server Connection +xmpp-server 5269/udp jabber-server +cfengine 5308/tcp +cfengine 5308/udp +mdns 5353/tcp # Multicast DNS +mdns 5353/udp # Multicast DNS +postgresql 5432/tcp postgres # PostgreSQL Database +postgresql 5432/udp postgres +ggz 5688/tcp # GGZ Gaming Zone +ggz 5688/udp # GGZ Gaming Zone +x11 6000/tcp x11-0 # X Window System +x11 6000/udp x11-0 +x11-1 6001/tcp +x11-1 6001/udp +x11-2 6002/tcp +x11-2 6002/udp +x11-3 6003/tcp +x11-3 6003/udp +x11-4 6004/tcp +x11-4 6004/udp +x11-5 6005/tcp +x11-5 6005/udp +x11-6 6006/tcp +x11-6 6006/udp +x11-7 6007/tcp +x11-7 6007/udp +gnutella-svc 6346/tcp # gnutella +gnutella-svc 6346/udp +gnutella-rtr 6347/tcp # gnutella +gnutella-rtr 6347/udp +sge_qmaster 6444/tcp # Grid Engine Qmaster Service +sge_qmaster 6444/udp # Grid Engine Qmaster Service +sge_execd 6445/tcp # Grid Engine Execution Service +sge_execd 6445/udp # Grid Engine Execution Service +afs3-fileserver 7000/tcp bbs # file server itself +afs3-fileserver 7000/udp bbs +afs3-callback 7001/tcp # callbacks to cache managers +afs3-callback 7001/udp +afs3-prserver 7002/tcp # users & groups database +afs3-prserver 7002/udp +afs3-vlserver 7003/tcp # volume location database +afs3-vlserver 7003/udp +afs3-kaserver 7004/tcp # AFS/Kerberos authentication +afs3-kaserver 7004/udp +afs3-volser 7005/tcp # volume managment server +afs3-volser 7005/udp +afs3-errors 7006/tcp # error interpretation service +afs3-errors 7006/udp +afs3-bos 7007/tcp # basic overseer process +afs3-bos 7007/udp +afs3-update 7008/tcp # server-to-server updater +afs3-update 7008/udp +afs3-rmtsys 7009/tcp # remote cache manager service +afs3-rmtsys 7009/udp +font-service 7100/tcp xfs # X Font Service +font-service 7100/udp xfs +bacula-dir 9101/tcp # Bacula Director +bacula-dir 9101/udp +bacula-fd 9102/tcp # Bacula File Daemon +bacula-fd 9102/udp +bacula-sd 9103/tcp # Bacula Storage Daemon +bacula-sd 9103/udp +amanda 10080/tcp # amanda backup services +amanda 10080/udp +hkp 11371/tcp # OpenPGP HTTP Keyserver +hkp 11371/udp # OpenPGP HTTP Keyserver +bprd 13720/tcp # VERITAS NetBackup +bprd 13720/udp +bpdbm 13721/tcp # VERITAS NetBackup +bpdbm 13721/udp +bpjava-msvc 13722/tcp # BP Java MSVC Protocol +bpjava-msvc 13722/udp +vnetd 13724/tcp # Veritas Network Utility +vnetd 13724/udp +bpcd 13782/tcp # VERITAS NetBackup +bpcd 13782/udp +vopied 13783/tcp # VERITAS NetBackup +vopied 13783/udp +wnn6 22273/tcp # wnn6 +wnn6 22273/udp + +# +# Datagram Delivery Protocol services +# +rtmp 1/ddp # Routing Table Maintenance Protocol +nbp 2/ddp # Name Binding Protocol +echo 4/ddp # AppleTalk Echo Protocol +zip 6/ddp # Zone Information Protocol + +#========================================================================= +# The remaining port numbers are not as allocated by IANA. +#========================================================================= + +# Kerberos (Project Athena/MIT) services +# Note that these are for Kerberos v4, and are unofficial. Sites running +# v4 should uncomment these and comment out the v5 entries above. +# +kerberos4 750/udp kerberos-iv kdc # Kerberos (server) +kerberos4 750/tcp kerberos-iv kdc +kerberos_master 751/udp # Kerberos authentication +kerberos_master 751/tcp +passwd_server 752/udp # Kerberos passwd server +krb_prop 754/tcp krb5_prop hprop # Kerberos slave propagation +krbupdate 760/tcp kreg # Kerberos registration +swat 901/tcp # swat +kpop 1109/tcp # Pop with Kerberos +knetd 2053/tcp # Kerberos de-multiplexor +zephyr-srv 2102/udp # Zephyr server +zephyr-clt 2103/udp # Zephyr serv-hm connection +zephyr-hm 2104/udp # Zephyr hostmanager +eklogin 2105/tcp # Kerberos encrypted rlogin +# Hmmm. Are we using Kv4 or Kv5 now? Worrying. +# The following is probably Kerberos v5 --- ajt@debian.org (11/02/2000) +kx 2111/tcp # X over Kerberos +iprop 2121/tcp # incremental propagation +# +# Unofficial but necessary (for NetBSD) services +# +supfilesrv 871/tcp # SUP server +supfiledbg 1127/tcp # SUP debugging + +# +# Services added for the Debian GNU/Linux distribution +# +linuxconf 98/tcp # LinuxConf +poppassd 106/tcp # Eudora +poppassd 106/udp +ssmtp 465/tcp smtps # SMTP over SSL +moira_db 775/tcp # Moira database +moira_update 777/tcp # Moira update protocol +moira_ureg 779/udp # Moira user registration +spamd 783/tcp # spamassassin daemon +omirr 808/tcp omirrd # online mirror +omirr 808/udp omirrd +customs 1001/tcp # pmake customs server +customs 1001/udp +skkserv 1178/tcp # skk jisho server port +predict 1210/udp # predict -- satellite tracking +rmtcfg 1236/tcp # Gracilis Packeten remote config server +wipld 1300/tcp # Wipl network monitor +xtel 1313/tcp # french minitel +xtelw 1314/tcp # french minitel +support 1529/tcp # GNATS +sieve 2000/tcp # Sieve mail filter daemon +cfinger 2003/tcp # GNU Finger +ndtp 2010/tcp # Network dictionary transfer protocol +frox 2121/tcp # frox: caching ftp proxy +ninstall 2150/tcp # ninstall service +ninstall 2150/udp +zebrasrv 2600/tcp # zebra service +zebra 2601/tcp # zebra vty +ripd 2602/tcp # ripd vty (zebra) +ripngd 2603/tcp # ripngd vty (zebra) +ospfd 2604/tcp # ospfd vty (zebra) +bgpd 2605/tcp # bgpd vty (zebra) +ospf6d 2606/tcp # ospf6d vty (zebra) +ospfapi 2607/tcp # OSPF-API +isisd 2608/tcp # ISISd vty (zebra) +afbackup 2988/tcp # Afbackup system +afbackup 2988/udp +afmbackup 2989/tcp # Afmbackup system +afmbackup 2989/udp +xtell 4224/tcp # xtell server +fax 4557/tcp # FAX transmission service (old) +hylafax 4559/tcp # HylaFAX client-server protocol (new) +distmp3 4600/tcp # distmp3host daemon +munin 4949/tcp lrrd # Munin +enbd-cstatd 5051/tcp # ENBD client statd +enbd-sstatd 5052/tcp # ENBD server statd +pcrd 5151/tcp # PCR-1000 Daemon +noclog 5354/tcp # noclogd with TCP (nocol) +noclog 5354/udp # noclogd with UDP (nocol) +hostmon 5355/tcp # hostmon uses TCP (nocol) +hostmon 5355/udp # hostmon uses UDP (nocol) +rplay 5555/udp # RPlay audio service +rplay 5555/tcp +rptp 5556/udp # Remote Play Transfer Protocol +rptp 5556/tcp +nsca 5667/tcp # Nagios Agent - NSCA +mrtd 5674/tcp # MRT Routing Daemon +bgpsim 5675/tcp # MRT Routing Simulator +canna 5680/tcp # cannaserver +sane-port 6566/tcp sane saned # SANE network scanner daemon +ircd 6667/tcp # Internet Relay Chat +zope-ftp 8021/tcp # zope management by ftp +webcache 8080/tcp # WWW caching service +tproxy 8081/tcp # Transparent Proxy +omniorb 8088/tcp # OmniORB +omniorb 8088/udp +clc-build-daemon 8990/tcp # Common lisp build daemon +xinetd 9098/tcp +mandelspawn 9359/udp mandelbrot # network mandelbrot +git 9418/tcp # Git Version Control System +zope 9673/tcp # zope server +webmin 10000/tcp +kamanda 10081/tcp # amanda backup services (Kerberos) +kamanda 10081/udp +amandaidx 10082/tcp # amanda backup services +amidxtape 10083/tcp # amanda backup services +smsqp 11201/tcp # Alamin SMS gateway +smsqp 11201/udp +xpilot 15345/tcp # XPilot Contact Port +xpilot 15345/udp +sgi-cmsd 17001/udp # Cluster membership services daemon +sgi-crsd 17002/udp +sgi-gcd 17003/udp # SGI Group membership daemon +sgi-cad 17004/tcp # Cluster Admin daemon +isdnlog 20011/tcp # isdn logging system +isdnlog 20011/udp +vboxd 20012/tcp # voice box system +vboxd 20012/udp +binkp 24554/tcp # binkp fidonet protocol +asp 27374/tcp # Address Search Protocol +asp 27374/udp +csync2 30865/tcp # cluster synchronization tool +dircproxy 57000/tcp # Detachable IRC Proxy +tfido 60177/tcp # fidonet EMSI over telnet +fido 60179/tcp # fidonet EMSI over TCP + +# Local services diff --git a/abs/core-testing/filesystem/shadow b/abs/core-testing/filesystem/shadow new file mode 100644 index 0000000..6d4a8be --- /dev/null +++ b/abs/core-testing/filesystem/shadow @@ -0,0 +1,7 @@ +root::99999:::::: +bin:x:0:::::: +daemon:x:0:::::: +mail:x:0:::::: +ftp:x:0:::::: +http:x:0:::::: +nobody:x:0:::::: diff --git a/abs/core-testing/filesystem/shells b/abs/core-testing/filesystem/shells new file mode 100644 index 0000000..ff9e383 --- /dev/null +++ b/abs/core-testing/filesystem/shells @@ -0,0 +1,9 @@ +# +# /etc/shells +# + +/bin/sh +/bin/bash +/bin/dash + +# End of file diff --git a/abs/core-testing/findutils/PKGBUILD b/abs/core-testing/findutils/PKGBUILD new file mode 100644 index 0000000..0027aca --- /dev/null +++ b/abs/core-testing/findutils/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 2673 2008-06-11 02:45:30Z eric $ +# Maintainer: judd +pkgname=findutils +pkgver=4.4.0 +pkgrel=10 +pkgdesc="GNU utilities to locate files" +arch=(i686 x86_64) +license=('GPL3') +groups=('base') +depends=('glibc>=2.8') +url="http://www.gnu.org/software/findutils" +source=(ftp://ftp.gnu.org/pub/gnu/findutils/findutils-$pkgver.tar.gz) +md5sums=('49e769ac4382fae6f104f99d54d0a112') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + # believe it or not, the Makefile really wants to remove /usr/var, so + # we let it... + mkdir -p $startdir/pkg/usr/var + make DESTDIR=$startdir/pkg install + rm -rf $startdir/pkg/usr/libexec + + # remove locate utils (we use slocate instead) + rm -f $startdir/pkg/usr/bin/{locate,updatedb} + rm -f $startdir/pkg/usr/share/man/man1/{updatedb.1,locate.1} + rm -f $startdir/pkg/usr/share/man/man5/locatedb.5 + rmdir $startdir/pkg/usr/var +} diff --git a/abs/core-testing/fixesproto/PKGBUILD b/abs/core-testing/fixesproto/PKGBUILD new file mode 100644 index 0000000..2f77d60 --- /dev/null +++ b/abs/core-testing/fixesproto/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot + +pkgname=fixesproto +pkgver=4.0 +pkgrel=2 +pkgdesc="X11 Fixes extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=(xproto xextproto) +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +md5sums=(8b298cc3424597f8138c7faf7763dce9) + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} + diff --git a/abs/core-testing/flac/PKGBUILD b/abs/core-testing/flac/PKGBUILD new file mode 100644 index 0000000..ce31e8b --- /dev/null +++ b/abs/core-testing/flac/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Paul Mattal +# Contributor: Tom Newsom +pkgname=flac +pkgver=1.2.1 +pkgrel=1 +pkgdesc="Free Lossless Audio Codec" +license=('custom:Xiph' 'LGPL' 'GPL' 'FDL') +url="http://flac.sourceforge.net/" +arch=(i686 x86_64) +options=('!libtool') +depends=('glibc' 'libogg') +makedepends=('nasm' 'xmms') +source=(http://downloads.sf.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \ + flac-1.2.1-gcc43.patch) +md5sums=('153c8b15a54da428d1f0fadc756c22c7' '4922379f33c86792630b624ddc83b236') + +build() { + # -j1 to get the xmms plugin working (from gentoo) + export MAKEFLAGS="-j1" + cd $startdir/src/$pkgname-$pkgver || return 1 + patch -Np1 -i $startdir/src/flac-1.2.1-gcc43.patch + ./configure --prefix=/usr --enable-shared --disable-sse \ + --disable-rpath --with-pic || return 1 + make || return 1 + make DESTDIR=$startdir/pkg install || return 1 + + # install license + install -Dm0644 $startdir/src/$pkgname-$pkgver/COPYING.Xiph \ + $startdir/pkg/usr/share/licenses/$pkgname/COPYING.Xiph +} + diff --git a/abs/core-testing/flac/flac-1.2.1-gcc43.patch b/abs/core-testing/flac/flac-1.2.1-gcc43.patch new file mode 100644 index 0000000..d8e8ab9 --- /dev/null +++ b/abs/core-testing/flac/flac-1.2.1-gcc43.patch @@ -0,0 +1,10 @@ +--- flac-1.2.1/examples/cpp/encode/file/main.cpp.gcc43 2007-09-13 17:58:03.000000000 +0200 ++++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2008-01-08 10:27:39.000000000 +0100 +@@ -29,6 +29,7 @@ + #endif + + #include ++#include + #include + #include "FLAC++/metadata.h" + #include "FLAC++/encoder.h" diff --git a/abs/core-testing/flac/flac-linking.diff b/abs/core-testing/flac/flac-linking.diff new file mode 100644 index 0000000..3f9f595 --- /dev/null +++ b/abs/core-testing/flac/flac-linking.diff @@ -0,0 +1,12 @@ +diff -ur flac-1.1.2-orig/configure flac-1.1.2/configure +--- flac-1.1.2-orig/configure 2005-07-24 17:58:19.180907080 +0100 ++++ flac-1.1.2/configure 2005-07-24 17:58:59.139832400 +0100 +@@ -3462,7 +3462,7 @@ + # This must be Linux ELF. + linux-gnu*) + case $host_cpu in +- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* ) ++ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* | x86_64* ) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM diff --git a/abs/core-testing/flac/xmms-plugin.patch b/abs/core-testing/flac/xmms-plugin.patch new file mode 100644 index 0000000..e5fcf2e --- /dev/null +++ b/abs/core-testing/flac/xmms-plugin.patch @@ -0,0 +1,11 @@ +--- src/plugin_xmms/configure.c.old 2005-04-08 12:16:17.000000000 +0200 ++++ src/plugin_xmms/configure.c 2005-04-08 12:16:41.000000000 +0200 +@@ -61,7 +61,7 @@ + "", /* proxy_user */ + "", /* proxy_pass */ + FALSE, /* save_http_stream */ +- "", /* save_http_path */ ++ FALSE, /* save_http_path */ + FALSE, /* cast_title_streaming */ + FALSE /* use_udp_channel */ + }, diff --git a/abs/core-testing/fltk/PKGBUILD b/abs/core-testing/fltk/PKGBUILD new file mode 100644 index 0000000..f1bbbb1 --- /dev/null +++ b/abs/core-testing/fltk/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 1248 2008-05-02 22:01:06Z tobias $ +# Maintainer: roberto +# Contributor: Tom Newsom +# Updated to produce shared libs: Andrew Rose + +pkgname=fltk +pkgver=1.1.9 +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=('e146fd264e1001b1313acfd41ef75552') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared + make || return 1 + make DESTDIR=$startdir/pkg install +} diff --git a/abs/core-testing/fluxbox/PKGBUILD b/abs/core-testing/fluxbox/PKGBUILD new file mode 100644 index 0000000..9d09c63 --- /dev/null +++ b/abs/core-testing/fluxbox/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 1350 2008-05-05 22:19:58Z eric $ +# Maintainer: Eric Belanger +# Contributor: John Proctor + +pkgname=fluxbox +pkgver=1.0.0 +pkgrel=1 +pkgdesc="A lightweight and highly-configurable window manager" +arch=('i686' 'x86_64') +url="http://www.fluxbox.org" +license=('MIT') +depends=('libxft' 'libxpm' 'libxinerama' 'libxrandr' 'gcc-libs' 'bash' 'imlib2') +makedepends=('pkgconfig') +options=('!makeflags') +source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \ + $pkgname.desktop fluxbox-1.0.0-gcc43.patch) +md5sums=('990e276ead0d04421dce4080f485caca' 'eeae9c88a2526ac0bd8afcd9ce97f9ed'\ + '9ddb3fcd5f080574a44f394282132b3c') +sha1sums=('7985e35fbb170fda24b9e04610690cd04c7a8748' + 'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8' + '51de3957bacfc4848529ba7df80bddca59b1a20b') + +build() { + cd $startdir/src/$pkgname-${pkgver} + patch -p1 < ../fluxbox-1.0.0-gcc43.patch || return 1 + ./configure --prefix=/usr \ + --enable-kde --enable-gnome \ + --enable-xft --enable-xinerama \ + --enable-imlib2 --enable-nls + make || return 1 + make DESTDIR=$startdir/pkg install + # this is a fix to allow fluxbox to shutdown, but this can be changed by the user :-( + sed -i 's|^.*slit\.autoHide.*$|session.screen0.slit.autoHide: True|' \ + $startdir/pkg/usr/share/fluxbox/init + install -D -m644 ../$pkgname.desktop \ + $startdir/pkg/etc/X11/sessions/$pkgname.desktop + install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING +} diff --git a/abs/core-testing/fluxbox/fluxbox-1.0.0-gcc43.patch b/abs/core-testing/fluxbox/fluxbox-1.0.0-gcc43.patch new file mode 100644 index 0000000..2e7db28 --- /dev/null +++ b/abs/core-testing/fluxbox/fluxbox-1.0.0-gcc43.patch @@ -0,0 +1,10 @@ +--- fluxbox-1.0.0-orig/src/main.cc 2007-08-11 14:22:20.000000000 -0400 ++++ fluxbox-1.0.0/src/main.cc 2008-05-05 15:14:59.000000000 -0400 +@@ -49,6 +49,7 @@ + #include + #include + #include ++#include + + using std::cout; + using std::cerr; diff --git a/abs/core-testing/fluxbox/fluxbox.desktop b/abs/core-testing/fluxbox/fluxbox.desktop new file mode 100644 index 0000000..418d29a --- /dev/null +++ b/abs/core-testing/fluxbox/fluxbox.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=XSession +Exec=/usr/bin/startfluxbox +TryExec=/usr/bin/startfluxbox +Name=fluxbox diff --git a/abs/core-testing/fontcacheproto/PKGBUILD b/abs/core-testing/fontcacheproto/PKGBUILD new file mode 100644 index 0000000..5bc123b --- /dev/null +++ b/abs/core-testing/fontcacheproto/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot + +pkgname=fontcacheproto +pkgver=0.1.2 +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) +md5sums=('60df6b625074a9790e28543dcea71651') +sha1sums=('6a531ef505ba2f7c1aa884bb4efdac3e32dfd99b') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/fontconfig/29-replace-bitmap-fonts.conf b/abs/core-testing/fontconfig/29-replace-bitmap-fonts.conf new file mode 100644 index 0000000..7ac4483 --- /dev/null +++ b/abs/core-testing/fontconfig/29-replace-bitmap-fonts.conf @@ -0,0 +1,37 @@ + + + + + + + Helvetica + + + Arial + Liberation Sans + sans-serif + + + + + Courier + + + Courier New + Liberation Mono + monospace + + + + + Times + + + Times New Roman + Liberation Serif + serif + + + diff --git a/abs/core-testing/fontconfig/PKGBUILD b/abs/core-testing/fontconfig/PKGBUILD new file mode 100644 index 0000000..7abdf6d --- /dev/null +++ b/abs/core-testing/fontconfig/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 4424 2008-07-06 22:09:03Z jgc $ +# Maintainer: Jan de Groot +pkgname=fontconfig +pkgver=2.6.0 +pkgrel=2 +pkgdesc="A library for configuring and customizing font access" +arch=(i686 x86_64) +url="http://www.fontconfig.org/release/" +license=('custom') +depends=('expat>=2.0' 'freetype2>=2.3.7') +options=('!libtool') +install=fontconfig.install +source=(http://www.fontconfig.org/release/${pkgname}-${pkgver}.tar.gz + 29-replace-bitmap-fonts.conf) +md5sums=('ab54ec1d4ddd836313fdbc0cd5299d6d' + 'f6b67e8cc79197ed6abd4701911e83da') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + # enable Position Independent Code for prelinking + export CFLAGS="${CFLAGS} -fPIC" + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + install -m644 ${startdir}/src/29-replace-bitmap-fonts.conf \ + ${startdir}/pkg/etc/fonts/conf.avail || return 1 + rm -f ${startdir}/pkg/etc/fonts/conf.d/*.conf + + #Install license + install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} + install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1 +} diff --git a/abs/core-testing/fontconfig/fontconfig.install b/abs/core-testing/fontconfig/fontconfig.install new file mode 100644 index 0000000..6608834 --- /dev/null +++ b/abs/core-testing/fontconfig/fontconfig.install @@ -0,0 +1,100 @@ +configs=('20-fix-globaladvance.conf' + '20-unhint-small-vera.conf' + '29-replace-bitmap-fonts.conf' + '30-metric-aliases.conf' + '30-urw-aliases.conf' + '40-nonlatin.conf' + '45-latin.conf' + '49-sansserif.conf' + '50-user.conf' + '51-local.conf' + '60-latin.conf' + '65-fonts-persian.conf' + '65-nonlatin.conf' + '69-unifont.conf' + '80-delicious.conf' + '90-synthetic.conf') + +post_install() { + echo -n "updating font cache... " + /sbin/ldconfig -r . + pushd /etc/fonts/conf.d > /dev/null + for config in "${configs[@]}"; do + ln -sf ../conf.avail/${config} . + done + popd > /dev/null + /usr/bin/fc-cache -f + echo "done." +} + +post_upgrade() { + rm -f /etc/fonts/conf.d/10-bitmaps.conf + cat << _EOF + +===> Important Fontconfig configuration change <=== + + The way fontconfig is configured has been changed. + Configuration is done via /etc/fonts/conf.avail and conf.d. + Read /etc/fonts/conf.avail/README for more information. + + Configuration via /etc/fonts/local.conf is still possible, + but is no longer recommended for options available in conf.avail. + +_EOF + + if [ `vercmp 2.4.1-1 $2` -gt 0 ]; then + # Upgrade from old version, place all symlinks. pre-symlink package version + echo -n "Linking configuration files... " + pushd /etc/fonts/conf.d > /dev/null + for config in "${configs[@]}"; do + ln -sf ../conf.avail/${config} . + done + popd > /dev/null + echo "done." + fi + + if [ `vercmp 2.6.0-1 $2` -gt 0 ]; then + # pre-2.6.0 versions have missing config + echo -n "Adding missing configuration files... " + pushd /etc/fonts/conf.d > /dev/null + ln -sf ../conf.avail/30-metric-aliases.conf . + ln -sf ../conf.avail/40-nonlatin.conf . + ln -sf ../conf.avail/45-latin.conf . + popd > /dev/null + echo "done." + fi + + # Remove dead links + echo -n "Removing outdated configuration files... " + for config in /etc/fonts/conf.d/*; do + if [ ! -f ${config} ]; then + rm -f ${config} + fi + done + echo "done." + + echo -n "updating font cache... " + /usr/bin/fc-cache -f + echo "done." +} + +pre_upgrade() { + # Link new config files not present on system yet + echo -n "Symlinking new configuration files... " + pushd /etc/fonts/conf.d > /dev/null + for config in "${configs[@]}"; do + if [ ! -f ../conf.avail/${config} ]; then + ln -sf ../conf.avail/${config} . + fi + done + popd > /dev/null + echo "done." +} + +post_remove() { + pushd /etc/fonts/conf.d > /dev/null + for config in "${configs[@]}"; do + rm -f ${config} + done + popd > /dev/null +} diff --git a/abs/core-testing/fontsproto/PKGBUILD b/abs/core-testing/fontsproto/PKGBUILD new file mode 100644 index 0000000..7847a5c --- /dev/null +++ b/abs/core-testing/fontsproto/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot + +pkgname=fontsproto +pkgver=2.0.2 +pkgrel=1 +pkgdesc="X11 font extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +md5sums=('c946f166107b016a21cc7a02e1132724') +sha1sums=('1244f63bd90668c7ddc88febbf4a220fd83ea492') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/freeglut/PKGBUILD b/abs/core-testing/freeglut/PKGBUILD new file mode 100644 index 0000000..402ef70 --- /dev/null +++ b/abs/core-testing/freeglut/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Eric Belanger +# Contributor: Tom Newsom + +pkgname=freeglut +pkgver=2.4.0 +pkgrel=3 +pkgdesc="Provides functionality for small OpenGL programs" +arch=('i686' 'x86_64') +url="http://freeglut.sourceforge.net/" +license=('custom') +depends=('libxxf86vm' 'mesa') +replaces=('glut') +provides=('glut') +conflicts=('glut') +options=('!libtool') +source=(http://downloads.sourceforge.net/freeglut/${pkgname}-${pkgver}.tar.gz \ + glut-cursor-inherit.patch) +md5sums=('6d16873bd876fbf4980a927cfbc496a1' 'd6ba7e22ebb0fd7904b8e18c97475ba6') +sha1sums=('91a528aa72758b7288a0d69a964b1b7e3f322a12' '9353d7b811fdfd6f0c5766f0e93924ca63e9d6a9') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + patch -Np1 -i ${startdir}/src/glut-cursor-inherit.patch || return 1 + sed -i 's/-Werror//' configure + ./configure --prefix=/usr + make all || return 1 + make DESTDIR=${startdir}/pkg install + install -D -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING +} diff --git a/abs/core-testing/freeglut/glut-cursor-inherit.patch b/abs/core-testing/freeglut/glut-cursor-inherit.patch new file mode 100644 index 0000000..b56a37c --- /dev/null +++ b/abs/core-testing/freeglut/glut-cursor-inherit.patch @@ -0,0 +1,23 @@ +--- freeglut-2.4.0.orig/src/freeglut_cursor.c ++++ freeglut-2.4.0/src/freeglut_cursor.c +@@ -130,7 +130,9 @@ + XCreateFontCursor( fgDisplay.Display, entry->cursorShape ); + } + cursor = entry->cachedCursor; +- } else { ++ if (cursor == None) ++ fgError( "Failed to create cursor" ); ++ } else { + switch( cursorIDToUse ) + { + case GLUT_CURSOR_NONE: +@@ -147,9 +149,6 @@ + } + } + +- if ( ( cursorIDToUse != GLUT_CURSOR_NONE ) && ( cursor == None ) ) { +- fgError( "Failed to create cursor" ); +- } + XDefineCursor( fgDisplay.Display, + window->Window.Handle, cursor ); + } diff --git a/abs/core-testing/freetype2/PKGBUILD b/abs/core-testing/freetype2/PKGBUILD new file mode 100644 index 0000000..177f421 --- /dev/null +++ b/abs/core-testing/freetype2/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 4337 2008-07-06 17:43:50Z jgc $ +# Maintainer: judd +pkgname=freetype2 +pkgver=2.3.7 +pkgrel=1 +pkgdesc="TrueType font rendering library" +arch=(i686 x86_64) +license=('GPL') +url="http://freetype.sourceforge.net" +depends=('zlib') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2 + bytecode.patch + freetype-2.3.0-enable-spr.patch + freetype-2.2.1-enable-valid.patch + freetype-2.2.1-memcpy-fix.patch) +md5sums=('83306194817ebdea554133b4232a34aa' + '9ff19e742968c29e3ba52b08d6bf0a50' + '816dc8619a6904a7385769433c0a8653' + '214119610444c9b02766ccee5e220680' + '6fb6606d28082ecb8e0c6d986b0b26aa') + +build() { + cd ${startdir}/src/freetype-${pkgver} + patch -Np0 -i ${startdir}/src/bytecode.patch || return 1 + patch -Np1 -i ${startdir}/src/freetype-2.3.0-enable-spr.patch || return 1 + patch -Np1 -i ${startdir}/src/freetype-2.2.1-enable-valid.patch || return 1 + patch -Np1 -i ${startdir}/src/freetype-2.2.1-memcpy-fix.patch || return 1 + + ./configure --prefix=/usr --disable-static || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/freetype2/bytecode.patch b/abs/core-testing/freetype2/bytecode.patch new file mode 100644 index 0000000..dd901ad --- /dev/null +++ b/abs/core-testing/freetype2/bytecode.patch @@ -0,0 +1,29 @@ +--- include/freetype/config/ftoption.h.old 2006-05-12 02:05:49.000000000 +0800 ++++ include/freetype/config/ftoption.h 2006-10-02 01:22:50.000000000 +0800 +@@ -436,7 +436,7 @@ + /* Do not #undef this macro here, since the build system might */ + /* define it for certain configurations only. */ + /* */ +-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ ++#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER + + + /*************************************************************************/ +@@ -448,7 +448,7 @@ + /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */ + /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally activated. */ + /* */ +-#define TT_CONFIG_OPTION_UNPATENTED_HINTING ++#undef TT_CONFIG_OPTION_UNPATENTED_HINTING + + + /*************************************************************************/ +@@ -480,7 +480,7 @@ + /* http://partners.adobe.com/asn/developer/opentype/glyf.html */ + /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ + /* */ +-#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED ++#define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED + + + /*************************************************************************/ diff --git a/abs/core-testing/freetype2/freetype-2.2.1-enable-valid.patch b/abs/core-testing/freetype2/freetype-2.2.1-enable-valid.patch new file mode 100644 index 0000000..c78b6b7 --- /dev/null +++ b/abs/core-testing/freetype2/freetype-2.2.1-enable-valid.patch @@ -0,0 +1,20 @@ +--- freetype-2.2.1/modules.cfg.orig 2006-07-07 21:01:09.000000000 -0400 ++++ freetype-2.2.1/modules.cfg 2006-07-07 21:01:54.000000000 -0400 +@@ -110,7 +110,7 @@ + AUX_MODULES += cache + + # TrueType GX/AAT table validation. Needs ftgxval.c below. +-# AUX_MODULES += gxvalid ++AUX_MODULES += gxvalid + + # Support for streams compressed with gzip (files with suffix .gz). + # +@@ -124,7 +124,7 @@ + + # OpenType table validation. Needs ftotval.c below. + # +-# AUX_MODULES += otvalid ++AUX_MODULES += otvalid + + # Auxiliary PostScript driver component to share common code. + # diff --git a/abs/core-testing/freetype2/freetype-2.2.1-memcpy-fix.patch b/abs/core-testing/freetype2/freetype-2.2.1-memcpy-fix.patch new file mode 100644 index 0000000..67a1c07 --- /dev/null +++ b/abs/core-testing/freetype2/freetype-2.2.1-memcpy-fix.patch @@ -0,0 +1,14 @@ +--- freetype-2.2.1/src/psaux/psobjs.c~ 2006-04-26 16:38:17.000000000 +0200 ++++ freetype-2.2.1/src/psaux/psobjs.c 2006-09-10 15:01:13.000000000 +0200 +@@ -165,6 +165,11 @@ + return PSaux_Err_Invalid_Argument; + } + ++ if ( length < 0 ) { ++ FT_ERROR(( "ps_table_add: invalid length\n" )); ++ return PSaux_Err_Invalid_Argument; ++ } ++ + /* grow the base block if needed */ + if ( table->cursor + length > table->capacity ) + { diff --git a/abs/core-testing/freetype2/freetype-2.3.0-enable-spr.patch b/abs/core-testing/freetype2/freetype-2.3.0-enable-spr.patch new file mode 100644 index 0000000..8432e28 --- /dev/null +++ b/abs/core-testing/freetype2/freetype-2.3.0-enable-spr.patch @@ -0,0 +1,11 @@ +--- freetype-2.3.0/include/freetype/config/ftoption.h.spf 2007-01-18 14:27:34.000000000 -0500 ++++ freetype-2.3.0/include/freetype/config/ftoption.h 2007-01-18 14:27:48.000000000 -0500 +@@ -92,7 +92,7 @@ + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /*************************************************************************/ diff --git a/abs/core-testing/freetype2/freetype-2.3.3-ftbitmap.patch b/abs/core-testing/freetype2/freetype-2.3.3-ftbitmap.patch new file mode 100644 index 0000000..bbb8b2b --- /dev/null +++ b/abs/core-testing/freetype2/freetype-2.3.3-ftbitmap.patch @@ -0,0 +1,25 @@ +=================================================================== +RCS file: /var/lib/cvs/sources/freetype/freetype2/src/base/ftbitmap.c,v +retrieving revision 1.17 +retrieving revision 1.18 +diff -u -r1.17 -r1.18 +--- freetype/freetype2/src/base/ftbitmap.c 2007/03/29 11:56:21 1.17 ++++ freetype/freetype2/src/base/ftbitmap.c 2007/04/06 08:19:04 1.18 +@@ -149,15 +149,15 @@ + if ( bit_last < bit_width ) + { + FT_Byte* line = bitmap->buffer + ( bit_last >> 3 ); ++ FT_Byte* end = bitmap->buffer + pitch; + FT_Int shift = bit_last & 7; + FT_UInt mask = 0xFF00U >> shift; + FT_Int count = height; + + +- for ( ; count > 0; count--, line += pitch ) ++ for ( ; count > 0; count--, line += pitch, end += pitch ) + { + FT_Byte* write = line; +- FT_Byte* end = line + pitch; + + + if ( shift > 0 ) diff --git a/abs/core-testing/freetype2/freetype2.install b/abs/core-testing/freetype2/freetype2.install new file mode 100644 index 0000000..704adac --- /dev/null +++ b/abs/core-testing/freetype2/freetype2.install @@ -0,0 +1,23 @@ +# arg 1: the new package version +post_install() { + echo -n "updating font cache... " + /sbin/ldconfig -r . + /usr/bin/fc-cache -f + echo "done." +} + +# 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() { + /bin/true +} + +op=$1 +shift + +$op $* diff --git a/abs/core-testing/fribidi/ChangeLog b/abs/core-testing/fribidi/ChangeLog new file mode 100644 index 0000000..43b17a5 --- /dev/null +++ b/abs/core-testing/fribidi/ChangeLog @@ -0,0 +1,5 @@ +2008-02-16 Travis Willard + + * 0.10.9 + Added ChangeLog + New upstream release. diff --git a/abs/core-testing/fribidi/PKGBUILD b/abs/core-testing/fribidi/PKGBUILD new file mode 100644 index 0000000..f8ecb19 --- /dev/null +++ b/abs/core-testing/fribidi/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Travis Willard +# Committer: Judd Vinet + +pkgname=fribidi +pkgver=0.10.9 +pkgrel=1 +pkgdesc="A Free Implementation of the Unicode Bidirectional Algorithm" +arch=(i686 x86_64) +license=('LGPL') +url="http://fribidi.org" +depends=('glibc') +options=('!libtool') +source=(http://fribidi.org/download/fribidi-${pkgver}.tar.gz) +md5sums=('647aee89079b056269ff0918dc1c6d28') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install +} + diff --git a/abs/core-testing/fuse/PKGBUILD b/abs/core-testing/fuse/PKGBUILD new file mode 100644 index 0000000..62d8f81 --- /dev/null +++ b/abs/core-testing/fuse/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Mark Rosenstand +pkgname=fuse +pkgver=2.7.3 +pkgrel=1 +pkgdesc="A library that makes it possible to implement a filesystem in a userspace program." +arch=(i686 x86_64) +url="http://fuse.sourceforge.net/" +license="GPL2" +depends=('glibc') +makedepends=('pkgconfig') +install=fuse.install +source=(http://mesh.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz) +options=(!libtool) +md5sums=('98563fc7b265b7479a3178181cbcf59a') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr --disable-kernel-module --enable-lib \ + --enable-util --bindir=/bin + make || return 1 + make DESTDIR=$startdir/pkg install || return 1 + + # static device nodes will cause collision. + rm -rf $startdir/pkg/dev + # Remove init script in wrong path + # Don't add our own for now, as fusectl fs oopses on 2.6.18 + rm -rf $startdir/pkg/etc/init.d + #install -D -m755 $startdir/src/fuse.rc.d $startdir/pkg/etc/rc.d/fuse + + mkdir -p $startdir/pkg/lib + mv $startdir/pkg/usr/lib/libfuse.so.${pkgver} $startdir/pkg/lib/ || return 1 + ln -s ../../lib/libfuse.so.${pkgver} $startdir/pkg/usr/lib/libfuse.so.${pkgver} || return 1 + ln -s libfuse.so.${pkgver} $startdir/pkg/lib/libfuse.so.2 || return 1 + mv $startdir/pkg/usr/lib/libulockmgr.so.1.0.1 $startdir/pkg/lib/ || return 1 + ln -s ../../lib/libulockmgr.so.1.0.1 $startdir/pkg/usr/lib/libulockmgr.so.1.0.1 || return 1 + ln -s libulockmgr.so.1.0.1 $startdir/pkg/lib/libulockmgr.so.1 || return 1 +} diff --git a/abs/core-testing/fuse/fuse.install b/abs/core-testing/fuse/fuse.install new file mode 100644 index 0000000..595ac7c --- /dev/null +++ b/abs/core-testing/fuse/fuse.install @@ -0,0 +1,14 @@ +post_install() { + cat << 'EOM' +==> You must load the fuse kernel module to use FUSE. + -> Run 'modprobe fuse' to load the module now. + -> Add fuse to $MODULES in /etc/rc.conf to load on every boot. +==> You will need a /dev/fuse device node to use FUSE. + -> If you use udev, nothing needs to be done + -> For a static /dev, run: mknod /dev/fuse -m 0666 c 10 229 +EOM +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/fuse/fuse.rc.d b/abs/core-testing/fuse/fuse.rc.d new file mode 100755 index 0000000..768da5b --- /dev/null +++ b/abs/core-testing/fuse/fuse.rc.d @@ -0,0 +1,49 @@ +#!/bin/bash +# +# fuse Init script for Filesystem in Userspace +# Based on the script by Miklos Szeredi + +. /etc/rc.conf +. /etc/rc.d/functions +FUSECTL=/sys/fs/fuse/connections + +case "$1" in + start) + stat_busy "Starting fuse" + if ! grep -qw fuse /proc/filesystems; then + modprobe fuse >/dev/null 2>&1 + if [ $? -gt 0 ]; then + stat_fail + exit 1 + fi + fi + if grep -qw fusectl /proc/filesystems && ! grep -qw $FUSECTL /proc/mounts; then + mount -t fusectl none $FUSECTL >/dev/null 2>&1 + if [ $? -gt 0 ]; then + stat_fail + exit 1 + fi + fi + add_daemon fuse + stat_done + ;; + stop) + stat_busy "Stopping fuse" + umount $FUSECTL >/dev/null 2>&1 + rmmod fuse >/dev/null 2>&1 + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon fuse + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core-testing/fxload/PKGBUILD b/abs/core-testing/fxload/PKGBUILD new file mode 100644 index 0000000..d27f525 --- /dev/null +++ b/abs/core-testing/fxload/PKGBUILD @@ -0,0 +1,20 @@ +# Contributor: Jochen Immend�fer +pkgname=fxload +pkgver=2002_04_11 +pkgrel=4 +pkgdesc="fxload firmware loader. Used with udev or devfs/hotplug." +url="http://linux-hotplug.sourceforge.net/" +depends=('glibc') +makedepends=('sed') +source=(http://easynews.dl.sourceforge.net/sourceforge/linux-hotplug/$pkgname-$pkgver.tar.gz) + arch=('i686') +build() { +C_INCLUDE_PATH=/usr/src/linux-2.6.24-STB + + cd $startdir/src/$pkgname-$pkgver + sed -i 's|CFLAGS =.*-O -Wall $(RPM_OPT_FLAGS)||' Makefile + sed -i 's/\linux\/usb.h/linux\/usb\/ch9.h/' ezusb.c ||return 1 + make || return 1 + sed -i 's|/usr/bin/install|/bin/install|' Makefile + make exec_prefix=$startdir/pkg/ prefix=$startdir/pkg/ install +} diff --git a/abs/core-testing/gawk/PKGBUILD b/abs/core-testing/gawk/PKGBUILD new file mode 100644 index 0000000..976a574 --- /dev/null +++ b/abs/core-testing/gawk/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell +# Contributor: Tom Newsom +pkgname=gawk +pkgver=3.1.6 +pkgrel=11 +pkgdesc="Gnu version of awk" +arch=(i686 x86_64) +url="http://www.gnu.org/directory/GNU/gawk.html" +license=('GPL') +groups=('base') +provides=('awk') +replaces=('mawk') +source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz) +depends=('bash' 'glibc') +md5sums=('b237751aef53c9ead9644e376bc53386') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$startdir/pkg install + mv $startdir/pkg/usr/libexec $startdir/pkg/usr/lib + mkdir $startdir/pkg/bin + mv $startdir/pkg/usr/bin/gawk* $startdir/pkg/bin/ + mv $startdir/pkg/usr/bin/awk $startdir/pkg/bin/ + # don't use hardlinks to manpages, it messes up our compression stuff + rm $startdir/pkg/usr/share/man/man1/pgawk.1 + ln -s gawk.1 $startdir/pkg/usr/share/man/man1/pgawk.1 + ln -s gawk.1 $startdir/pkg/usr/share/man/man1/awk.1 +} diff --git a/abs/core-testing/gawk/gawk-3.1.5-segfault_fix-1.patch b/abs/core-testing/gawk/gawk-3.1.5-segfault_fix-1.patch new file mode 100644 index 0000000..aa2f17b --- /dev/null +++ b/abs/core-testing/gawk/gawk-3.1.5-segfault_fix-1.patch @@ -0,0 +1,43 @@ +Submitted By: Matthew Burgess +Date: 2005-09-24 +Initial Package Version: 3.1.5 +Upstream Status: From Upstream +Origin: http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00047.html +Description: Fixes a bug which causes gawk to segfault when operating on a non-existent file. + +diff -Naur gawk-3.1.5.orig/io.c gawk-3.1.5/io.c +--- gawk-3.1.5.orig/io.c 2005-07-26 18:07:43.000000000 +0000 ++++ gawk-3.1.5/io.c 2005-09-24 14:43:13.771380264 +0000 +@@ -2480,9 +2480,12 @@ + { + struct stat sbuf; + struct open_hook *oh; ++ int iop_malloced = FALSE; + +- if (iop == NULL) ++ if (iop == NULL) { + emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc"); ++ iop_malloced = TRUE; ++ } + memset(iop, '\0', sizeof(IOBUF)); + iop->flag = 0; + iop->fd = fd; +@@ -2495,7 +2498,8 @@ + } + + if (iop->fd == INVALID_HANDLE) { +- free(iop); ++ if (iop_malloced) ++ free(iop); + return NULL; + } + if (isatty(iop->fd)) +@@ -2503,7 +2507,7 @@ + iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf); + iop->sbuf = sbuf; + if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0) +- lintwarn(_("data file `%s' is empty"), name); ++ lintwarn(_("data file `%s' is empty"), name); + errno = 0; + iop->count = iop->scanoff = 0; + emalloc(iop->buf, char *, iop->size += 2, "iop_alloc"); diff --git a/abs/core-testing/gcc-libs/PKGBUILD b/abs/core-testing/gcc-libs/PKGBUILD new file mode 100644 index 0000000..7bca5de --- /dev/null +++ b/abs/core-testing/gcc-libs/PKGBUILD @@ -0,0 +1,65 @@ +# $Id: PKGBUILD 6599 2008-07-25 17:11:14Z andyrtr $ +# Maintainer: Jan de Groot +pkgname=gcc-libs +pkgver=4.3.1 +pkgrel=12 +_snapshot=4.3-20080724 +pkgdesc="Runtime libraries shipped by GCC for C and C++ languages" +arch=(i686 x86_64) +license=('GPL' 'LGPL') +groups=('base') +url="http://gcc.gnu.org" +depends=('glibc>=2.8-2') +makedepends=('binutils>=2.18-8' 'gcc>=4.3.1' 'mpfr>=2.3.1' 'texinfo') +conflicts=('gcc-fortran' 'gcc-objc') +provides=("gcc-objc=${pkgver}") +options=('!libtool' '!emptydirs') +source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc}-${pkgver}.tar.bz2 + ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc}-${_snapshot}.tar.bz2 + gcc_pure64.patch + gcc-hash-style-both.patch) +md5sums=('99ce6170e379779fe9c0971f9e27c704' + 'e39db43584ec603b314348405c753bd5' + '76b9d6a71eb2cd778cd6ad3e9d576c64' + '2b2456702ca6362b01583160e888be14' + '4030ee1c08dd1e843c0225b772360e76' + 'bb420bc84b1104455b7230b1cd4b96c2') + +build() { + if ! locale -a | grep ^de_DE; then + echo "You need the de_DE locale to build gcc." + return 1 + fi + + #cd ${srcdir}/gcc-${pkgver} + cd ${srcdir}/gcc-${_snapshot} + # Don't install libiberty + sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in + + if [ "${CARCH}" = "x86_64" ]; then + patch -Np1 -i ../gcc_pure64.patch || return 1 + fi + patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch || return 1 + + # Don't run fixincludes + sed -i -e 's@\./fixinc\.sh@-c true@' gcc/Makefile.in + + echo ${pkgver} > gcc/BASE-VER + + mkdir build + cd build + ../configure --prefix=/usr --enable-shared \ + --enable-languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix \ + --enable-__cxa_atexit --disable-multilib --libdir=/usr/lib \ + --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch \ + --with-tune=generic + make || return 1 + make -j1 DESTDIR=${pkgdir} install-target-libstdc++-v3 install-target-libmudflap install-target-libgomp install-target-libssp install-target-libgfortran install-target-libobjc install-target-libgcc || return 1 + + # Cleanup, libgomp installs the whole compiler it seems... + rm -rf ${pkgdir}/usr/include + rm -rf ${pkgdir}/usr/lib/gcc + rm -rf ${pkgdir}/usr/bin + rm -rf ${pkgdir}/usr{,share}/man + find ${pkgdir} -name gcc.mo -delete +} diff --git a/abs/core-testing/gcc-libs/gcc-hash-style-both.patch b/abs/core-testing/gcc-libs/gcc-hash-style-both.patch new file mode 100644 index 0000000..8fea758 --- /dev/null +++ b/abs/core-testing/gcc-libs/gcc-hash-style-both.patch @@ -0,0 +1,163 @@ +#! /bin/sh -e + +# DP: Link using --hash-style=both (alpha, amd64, ia64, i386, powerpc, ppc64, s390, sparc) + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2006-07-11 Jakub Jelinek + + * config/i386/linux.h (LINK_SPEC): Add --hash-style=both. + * config/i386/linux64.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise. + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32, + LINK_OS_LINUX_SPEC64): Likewise. + * config/s390/linux.h (LINK_SPEC): Likewise. + * config/ia64/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC, + LINK_ARCH64_SPEC): Likewise. + * config/alpha/linux-elf.h (LINK_SPEC): Likewise. + +--- gcc/config/alpha/linux-elf.h.orig 2007-08-04 08:55:58.000000000 +0200 ++++ gcc/config/alpha/linux-elf.h 2007-09-01 15:47:26.605865578 +0200 +@@ -39,7 +39,7 @@ + + #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +--- gcc/config/s390/linux.h.orig 2007-08-04 08:55:59.000000000 +0200 ++++ gcc/config/s390/linux.h 2007-09-01 15:47:26.605865578 +0200 +@@ -77,7 +77,7 @@ + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +--- gcc/config/sparc/linux.h.orig 2007-08-04 08:56:01.000000000 +0200 ++++ gcc/config/sparc/linux.h 2007-09-01 15:47:26.605865578 +0200 +@@ -132,7 +132,7 @@ + + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!ibcs: \ +--- gcc/config/sparc/linux64.h.orig 2007-08-04 08:56:01.000000000 +0200 ++++ gcc/config/sparc/linux64.h 2007-09-01 15:47:26.605865578 +0200 +@@ -166,7 +166,7 @@ + { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ + { "link_arch", LINK_ARCH_SPEC }, + +-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ ++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +@@ -175,7 +175,7 @@ + %{static:-static}}} \ + " + +-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ ++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,/usr/lib64 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +@@ -256,7 +256,7 @@ + #else /* !SPARC_BI_ARCH */ + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ ++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,/usr/lib64 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +--- gcc/config/i386/linux.h.orig 2007-08-04 08:56:07.000000000 +0200 ++++ gcc/config/i386/linux.h 2007-09-01 15:47:26.605865578 +0200 +@@ -108,7 +108,7 @@ + { "dynamic_linker", LINUX_DYNAMIC_LINKER } + + #undef LINK_SPEC +-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +--- gcc/config/i386/linux64.h.orig 2007-08-04 08:56:07.000000000 +0200 ++++ gcc/config/i386/linux64.h 2007-09-01 15:48:27.336781690 +0200 +@@ -65,7 +65,7 @@ + #endif + + #undef LINK_SPEC +-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \ ++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +--- gcc/config/ia64/linux.h.orig 2006-12-12 18:59:53.000000000 +0100 ++++ gcc/config/ia64/linux.h 2007-09-01 15:47:26.605865578 +0200 +@@ -40,7 +40,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC "--hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +--- gcc/config/rs6000/sysv4.h.orig 2007-08-08 23:37:49.000000000 +0200 ++++ gcc/config/rs6000/sysv4.h 2007-09-01 15:47:26.615865729 +0200 +@@ -901,7 +901,7 @@ + #define LINUX_DYNAMIC_LINKER \ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + +--- gcc/config/rs6000/linux64.h.orig 2007-08-04 08:56:12.000000000 +0200 ++++ gcc/config/rs6000/linux64.h 2007-09-01 15:47:26.615865729 +0200 +@@ -354,11 +354,11 @@ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64) + + +-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}" + +-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}" + diff --git a/abs/core-testing/gcc-libs/gcc_pure64.patch b/abs/core-testing/gcc-libs/gcc_pure64.patch new file mode 100644 index 0000000..8c0baf8 --- /dev/null +++ b/abs/core-testing/gcc-libs/gcc_pure64.patch @@ -0,0 +1,26 @@ +diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h +--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400 ++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400 +@@ -49,8 +49,8 @@ + When the -shared link option is used a final link is not being + done. */ + +-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" ++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" + + #undef LINK_SPEC + #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ +diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64 +--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400 ++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400 +@@ -6,7 +6,7 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) ++MULTILIB_OSDIRNAMES = ../lib ../lib32 + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib diff --git a/abs/core-testing/gdbm/PKGBUILD b/abs/core-testing/gdbm/PKGBUILD new file mode 100644 index 0000000..1154818 --- /dev/null +++ b/abs/core-testing/gdbm/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=gdbm +pkgver=1.8.3 +pkgrel=14 +pkgdesc="GNU database library" +url="http://www.gnu.org/software/gdbm/gdbm.html" +license=('GPL') +arch=(i686 x86_64) +groups=('base') +depends=('glibc') +source=(ftp://ftp.gnu.org/gnu/gdbm/$pkgname-$pkgver.tar.gz) +md5sums=('1d1b1d5c0245b1c00aff92da751e9aa1') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make prefix=/usr || return 1 + make prefix=$startdir/pkg/usr install + make prefix=$startdir/pkg/usr install-compat + chown root.root $startdir/pkg/usr/include/{dbm.h,gdbm.h,ndbm.h} + chown root.root $startdir/pkg/usr/man/man3/gdbm.3 + find $startdir/pkg -name '*.la' -exec rm {} \; +} diff --git a/abs/core-testing/gen-init-cpio/Makefile b/abs/core-testing/gen-init-cpio/Makefile new file mode 100644 index 0000000..1ebe763 --- /dev/null +++ b/abs/core-testing/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/core-testing/gen-init-cpio/PKGBUILD b/abs/core-testing/gen-init-cpio/PKGBUILD new file mode 100644 index 0000000..ca1fa2e --- /dev/null +++ b/abs/core-testing/gen-init-cpio/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer : Tobias Powalowski + +pkgname=gen-init-cpio +pkgver=2.6.17 +pkgrel=12 +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' 'fe53a05f5fcfca9e4dd8d67d29190f6e') + +build() +{ + cd $startdir/src/ + make || return 1 + make DESTDIR=$startdir/pkg install +} diff --git a/abs/core-testing/gen-init-cpio/gen_init_cpio.c b/abs/core-testing/gen-init-cpio/gen_init_cpio.c new file mode 100644 index 0000000..83acd6c --- /dev/null +++ b/abs/core-testing/gen-init-cpio/gen_init_cpio.c @@ -0,0 +1,514 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Original work by Jeff Garzik + * + * External file lists, symlink, pipe and fifo support by Thayne Harbaugh + */ + +#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; +} + +/* Not marked static to keep the compiler quiet, as no one uses this yet... */ +static int cpio_mkfile(const char *name, const char *location, + unsigned int mode, uid_t uid, gid_t gid) +{ + char s[256]; + char *filebuf = NULL; + struct stat buf; + int file = -1; + int retval; + int rc = -1; + + 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; + } + + 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) buf.st_mtime, /* mtime */ + (int) buf.st_size, /* filesize */ + 3, /* major */ + 1, /* minor */ + 0, /* rmajor */ + 0, /* rminor */ + (unsigned)strlen(name) + 1,/* namesize */ + 0); /* chksum */ + push_hdr(s); + push_string(name); + push_pad(); + + fwrite(filebuf, buf.st_size, 1, stdout); + offset += buf.st_size; + push_pad(); + rc = 0; + +error: + if (filebuf) free(filebuf); + if (file >= 0) close(file); + return rc; +} + +static int cpio_mkfile_line(const char *line) +{ + char name[PATH_MAX + 1]; + char location[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, location, &mode, &uid, &gid)) { + fprintf(stderr, "Unrecognized file format '%s'", line); + goto fail; + } + rc = cpio_mkfile(name, location, mode, uid, gid); + fail: + return rc; +} + +void usage(const char *prog) +{ + fprintf(stderr, "Usage:\n" + "\t%s \n" + "\n" + " 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 \n" + "dir \n" + "nod \n" + "slink \n" + "pipe \n" + "sock \n" + "\n" + " name of the file/dir/nod/etc in the archive\n" + " location of the file in the current filesystem\n" + " link target\n" + " mode/permissions of the file\n" + " user id (0=root)\n" + " group id (0=root)\n" + " device type (b=block, c=character)\n" + " major number of nod\n" + " minor number of nod\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 (! (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/core-testing/gettext/PKGBUILD b/abs/core-testing/gettext/PKGBUILD new file mode 100644 index 0000000..fab83f2 --- /dev/null +++ b/abs/core-testing/gettext/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=gettext +pkgver=0.17 +pkgrel=10 +pkgdesc="GNU internationalization library" +arch=(i686 x86_64) +url="http://www.gnu.org/software/gettext" +license=('GPL') +groups=('base') +depends=('gcc-libs' 'acl') +options=(!libtool) +source=(ftp://ftp.gnu.org/pub/gnu/gettext/${pkgname}-${pkgver}.tar.gz) +md5sums=('58a2bc6d39c0ba57823034d55d65d606') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + sed -i -e 's/libexpat.so.0/libexpat.so.1/' gettext-tools/src/x-glade.c + ./configure --prefix=/usr --enable-csharp + make || return 1 + make DESTDIR=${startdir}/pkg install +} diff --git a/abs/core-testing/ghostscript/PKGBUILD b/abs/core-testing/ghostscript/PKGBUILD new file mode 100644 index 0000000..2cf5416 --- /dev/null +++ b/abs/core-testing/ghostscript/PKGBUILD @@ -0,0 +1,50 @@ +# $Id: PKGBUILD 7626 2008-08-03 15:52:01Z jgc $ +# Maintainer: AndyRTR + +pkgname=ghostscript +pkgver=8.63 +pkgrel=3 +pkgdesc="An interpreter for the PostScript language" +arch=(i686 x86_64) +license=('GPL' 'custom') +depends=('libxext' 'libxt' 'libcups>=1.3.8-2' 'fontconfig>=2.6.0' 'gtk2>=2.12.11' 'gnutls>=2.4.1') +makedepends=('automake' 'autoconf') +replaces=('ghostscript-lrpng') +provides=('ghostscript-lprng') +url="http://www.cs.wisc.edu/~ghost/" +#url="http://www.cups.org/espgs/" +install=ghostscript.install +source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs863/ghostscript-${pkgver}.tar.bz2 + ghostscript-fPIC.patch) +options=('!libtool' '!makeflags') +md5sums=('c770eedfdd846a53e211e3ba5339de21' + '29540cd88aad9a3a788d68193523080d') + +build() { + cd ${srcdir}/ghostscript-${pkgver} + if [ "$CARCH" = "x86_64" ]; then + patch -Np1 -i ${srcdir}/ghostscript-fPIC.patch || return 1 + fi + + # Build IJS + cd ${srcdir}/ghostscript-${pkgver}/ijs + ./autogen.sh + ./configure --prefix=/usr --enable-shared --disable-static + make || return 1 + make DESTDIR=${pkgdir} install || return 1 + + cd .. + ./configure --prefix=/usr --enable-dynamic --enable-threads --with-ijs \ + --with-jbig2dec --with-omni --with-x --with-drivers=ALL\ + --with-fontpath=/usr/share/fonts/Type1:/usr/share/fonts + make || return 1 + make DESTDIR=${pkgdir} \ + cups_serverroot=${pkgdir}/etc/cups \ + cups_serverbin=${pkgdir}/usr/lib/cups install soinstall + + mkdir -p ${pkgdir}/usr/share/licenses/${pkgname} + install -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/ + + # remove unwanted localized man-pages + rm -rf $pkgdir/usr/share/man/[^man1]* +} diff --git a/abs/core-testing/ghostscript/ghostscript-fPIC.patch b/abs/core-testing/ghostscript/ghostscript-fPIC.patch new file mode 100644 index 0000000..9b4deb2 --- /dev/null +++ b/abs/core-testing/ghostscript/ghostscript-fPIC.patch @@ -0,0 +1,31 @@ +--- ghostscript-8.60-r8112/src/lib.mak.fPIC 2007-07-10 17:03:11.000000000 +0100 ++++ ghostscript-8.60-r8112/src/lib.mak 2007-07-10 17:05:56.000000000 +0100 +@@ -874,7 +874,7 @@ + $(GLOBJ)gsparamx.$(OBJ) : $(GLSRC)gsparamx.c $(string__h)\ + $(gserror_h) $(gserrors_h) $(gsmemory_h) $(gsparam_h) $(gsparamx_h)\ + $(gstypes_h) +- $(GLCC) $(GLO_)gsparamx.$(OBJ) $(C_) $(GLSRC)gsparamx.c ++ $(GLCCSHARED) $(GLO_)gsparamx.$(OBJ) $(C_) $(GLSRC)gsparamx.c + + # Future replacement for gsparams.c + $(GLOBJ)gsparam2.$(OBJ) : $(GLSRC)gsparam2.c $(GXERR) $(memory__h)\ +@@ -1077,7 +1077,7 @@ + + # Provide a mapping between StandardEncoding and ISOLatin1Encoding. + $(GLOBJ)gdevemap.$(OBJ) : $(GLSRC)gdevemap.c $(AK) $(std_h) +- $(GLCC) $(GLO_)gdevemap.$(OBJ) $(C_) $(GLSRC)gdevemap.c ++ $(GLCCSHARED) $(GLO_)gdevemap.$(OBJ) $(C_) $(GLSRC)gdevemap.c + + ###### Create a pseudo-"feature" for the entire graphics library. + +--- ghostscript-8.60-r8112/src/devs.mak.fPIC 2007-07-10 17:05:00.000000000 +0100 ++++ ghostscript-8.60-r8112/src/devs.mak 2007-07-10 17:05:07.000000000 +0100 +@@ -464,7 +464,7 @@ + $(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevx.$(OBJ) $(C_) $(GLSRC)gdevx.c + + $(GLOBJ)gdevxcmp.$(OBJ) : $(GLSRC)gdevxcmp.c $(GDEVX) $(math__h) +- $(GLCC) $(XINCLUDE) $(GLO_)gdevxcmp.$(OBJ) $(C_) $(GLSRC)gdevxcmp.c ++ $(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxcmp.$(OBJ) $(C_) $(GLSRC)gdevxcmp.c + + $(GLOBJ)gdevxini.$(OBJ) : $(GLSRC)gdevxini.c $(GDEVX) $(memory__h)\ + $(gserrors_h) $(gsparamx_h) $(gxdevmem_h) $(gdevbbox_h) diff --git a/abs/core-testing/ghostscript/ghostscript.install b/abs/core-testing/ghostscript/ghostscript.install new file mode 100644 index 0000000..10d2d7a --- /dev/null +++ b/abs/core-testing/ghostscript/ghostscript.install @@ -0,0 +1,14 @@ +post_install() { +cat << EOF +==> To use dvipdf, you need to install tetex: +==> # pacman -S tetex +EOF +} + +post_upgrade() { + post_install $1 +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/giblib/PKGBUILD b/abs/core-testing/giblib/PKGBUILD new file mode 100644 index 0000000..413711c --- /dev/null +++ b/abs/core-testing/giblib/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: arjan +# Contributor: Tom Newsom + +pkgname=giblib +pkgver=1.2.4 +pkgrel=3 +pkgdesc="Giblib is a library that feh uses as a wrapper to imlib2" +depends=('imlib2' 'libxext' 'freetype2') +#source=(http://linuxbrit.co.uk/downloads/$pkgname-$pkgver.tar.gz) +source=(http://ftp.gva.es/mirror/debian/pool/main/g/giblib/giblib_1.2.4.orig.tar.gz) +url="http://linuxbrit.co.uk/giblib/" + arch=('i686') +build() { +cd $startdir/src/$pkgname-$pkgver.orig +./configure --prefix=/usr +make || return 1 +make prefix=$startdir/pkg/usr install +find $startdir/pkg -name '*.la' -exec rm {} \; +} diff --git a/abs/core-testing/giflib/PKGBUILD b/abs/core-testing/giflib/PKGBUILD new file mode 100644 index 0000000..6bc0de0 --- /dev/null +++ b/abs/core-testing/giflib/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: Jan de Groot +# Contributor: Baptiste Daroussin +# Contributor: Grigorios Bouzakis +# Contributor: mightyjaym + +pkgname=giflib +pkgver=4.1.6 +pkgrel=3 +pkgdesc="A library for reading and writing gif images" +url="http://sourceforge.net/projects/giflib/" +arch=('i686' 'x86_64') +license=('MIT') +depends=('libx11' 'libsm') +provides=("libungif=${pkgver}") +conflicts=('libungif') +replaces=('libungif') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/giflib/${pkgname}-${pkgver}.tar.bz2) +md5sums=('7125644155ae6ad33dbc9fc15a14735f') + +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 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1 + + # libungif compatibility - instructions taken from Redhat specfile + MAJOR=`echo ${pkgver} | sed 's/\([0-9]\+\)\..*/\1/'` + gcc -shared -Wl,-soname,libungif.so.${MAJOR} -Llib/.libs -lgif -o libungif.so.${pkgver} || return 1 + install -m755 libungif.so.${pkgver} ${pkgdir}/usr/lib/ || return 1 + ln -sf libungif.so.${pkgver} ${pkgdir}/usr/lib/libungif.so.4 || return 1 + ln -sf libungif.so.4 ${pkgdir}/usr/lib/libungif.so || return 1 +} diff --git a/abs/core-testing/glib2/PKGBUILD b/abs/core-testing/glib2/PKGBUILD new file mode 100644 index 0000000..3e4abd7 --- /dev/null +++ b/abs/core-testing/glib2/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 7524 2008-08-02 20:27:35Z jgc $ +# Maintainer: Jan de Groot + +pkgname=glib2 +pkgver=2.16.5 +pkgrel=1 +pkgdesc="Common C routines used by GTK+ 2.4 and other libs" +url="http://www.gtk.org/" +arch=(i686 x86_64) +license=('LGPL') +depends=('pcre>=7.7') +makedepends=('pkgconfig') +options=('!libtool') +source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.16/glib-${pkgver}.tar.bz2 + gkeyfile-bool-nocase.patch + glib2.sh + glib2.csh) +md5sums=('039f02d47d4071322a3f00abf031e5d9' + '5ca65611e824662146369e814d49ad06' + '803017b365bd35dc20b092ce43b8c8c5' + '90c7b830bef4baf225c2eb8b7ead0cab') + +build() { + cd ${startdir}/src/glib-${pkgver} + patch -Np0 -i ${startdir}/src/gkeyfile-bool-nocase.patch || return 1 + ./configure --prefix=/usr --enable-static --enable-shared --with-pcre=system --disable-fam || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + + install -d -m755 ${startdir}/pkg/etc/profile.d + install -m755 ${startdir}/src/glib2.{csh,sh} ${startdir}/pkg/etc/profile.d/ || return 1 +} diff --git a/abs/core-testing/glib2/gkeyfile-bool-nocase.patch b/abs/core-testing/glib2/gkeyfile-bool-nocase.patch new file mode 100644 index 0000000..133f135 --- /dev/null +++ b/abs/core-testing/glib2/gkeyfile-bool-nocase.patch @@ -0,0 +1,16 @@ +Index: glib/gkeyfile.c +=================================================================== +--- glib/gkeyfile.c (revision 5714) ++++ glib/gkeyfile.c (working copy) +@@ -3639,9 +3639,9 @@ + { + gchar *value_utf8; + +- if (strcmp (value, "true") == 0 || strcmp (value, "1") == 0) ++ if (g_ascii_strcasecmp (value, "true") == 0 || strcmp (value, "1") == 0) + return TRUE; +- else if (strcmp (value, "false") == 0 || strcmp (value, "0") == 0) ++ else if (g_ascii_strcasecmp (value, "false") == 0 || strcmp (value, "0") == 0) + return FALSE; + + value_utf8 = _g_utf8_make_valid (value); diff --git a/abs/core-testing/glib2/glib2.csh b/abs/core-testing/glib2/glib2.csh new file mode 100644 index 0000000..7aa3a2f --- /dev/null +++ b/abs/core-testing/glib2/glib2.csh @@ -0,0 +1 @@ +setenv G_BROKEN_FILENAMES 1 diff --git a/abs/core-testing/glib2/glib2.sh b/abs/core-testing/glib2/glib2.sh new file mode 100644 index 0000000..96a056e --- /dev/null +++ b/abs/core-testing/glib2/glib2.sh @@ -0,0 +1 @@ +export G_BROKEN_FILENAMES=1 diff --git a/abs/core-testing/glibc/ChangeLog b/abs/core-testing/glibc/ChangeLog new file mode 100644 index 0000000..79a44e7 --- /dev/null +++ b/abs/core-testing/glibc/ChangeLog @@ -0,0 +1,28 @@ +glibc 2.8-2 +- fix an old memory issue again + +glibc 2.8-1 +- no more tarballs +- we checkout the current release branch incl. libidn +- cleanup the patches + +glibc 2.7-6 +- fix broken locales with upstream changes +- disable the whole weekday patch, fixes #8530 + +glibc 2.7-5 +- fix a regression: http://sourceware.org/bugzilla/show_bug.cgi?id=4781 + mainly for x86_64 where using gcc-gcj eats all memory + +glibc 2.7-4 +- extract /etc/locale.gen from sources to have all new locales supported +- mask other broken locales / added a comment to post.install message +- apply changes from Debian 2.7-exp7 pkg + to fix some broken locales + +glibc 2.7-3 +- removed locale/check-unknown-symbols.diff + localedata/tailor-iso14651_t1.diff partly + to fix broken et_EE locale +- switch to compressed patches +- added ChangeLog \ No newline at end of file diff --git a/abs/core-testing/glibc/PKGBUILD b/abs/core-testing/glibc/PKGBUILD new file mode 100644 index 0000000..68df516 --- /dev/null +++ b/abs/core-testing/glibc/PKGBUILD @@ -0,0 +1,100 @@ +# $Id: PKGBUILD 2685 2008-06-11 13:30:43Z andyrtr $ +# Maintainer: Jan de Groot +pkgname=glibc +pkgver=2.8 +pkgrel=11 +_glibcdate=20080610 +install=glibc.install +backup=(etc/locale.gen) +pkgdesc="GNU C Library" +arch=(i686 x86_64) +license=('GPL' 'LGPL') +url="http://www.gnu.org/software/libc" +groups=('base') +depends=('sh' 'kernel-headers>=2.6.25.6' 'tzdata') +makedepends=('gcc>=4.3.1-1') +replaces=('glibc-xen') +source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-2.8_${_glibcdate}.tar.bz2 + ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.bz2 + nscd + locale.gen.txt + locale-gen) +md5sums=('63def58972f0e8429247916154c21323' + '3ec00d9aa3f2fec046bc3e615dfb723a' + 'b587ee3a70c9b3713099295609afde49' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf') + +build() { + + # for cvs checkout +# mkdir ${startdir}/src/glibc-${_glibcdate} +# cd ${startdir}/src/glibc-${_glibcdate} +# export _TAG=glibc-2_8-branch +# export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc' +# cvs -z9 co -r $_TAG libc || return 1 +# tar -cvjf glibc-2.8_${_glibcdate}.tar.bz2 libc +# return 1 + + cd ${startdir}/src/libc + + # patch from Debian + patch -Np1 -i ${startdir}/src/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed? + + # Upstream fixes. See sources.redhat.com bugzilla + patch -Np1 -i ${startdir}/src/glibc-patches/glibc-2.7-bz4781.patch || return 1 + + # Gentoo fixes + patch -Np1 -i ${startdir}/src/glibc-patches/glibc-dont-build-timezone.patch || return 1 + + install -m755 -d ${startdir}/pkg/etc + touch ${startdir}/pkg/etc/ld.so.conf + + mkdir glibc-build + cd glibc-build + + if [ "${CARCH}" = "i686" ]; then + # Hack to fix NPTL issues with Xen, only required on 32bit platforms + export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" + fi + + echo "slibdir=/lib" >> configparms + + ../configure --prefix=/usr \ + --enable-add-ons=nptl,libidn --without-cvs \ + --enable-kernel=2.6.16 --disable-profile \ + --with-headers=/usr/include --libexecdir=/usr/lib \ + --enable-bind-now --with-tls --with-__thread \ + --libdir=/usr/lib --without-gd + + make || return 1 + make install_root=${startdir}/pkg install || return 1 + + rm -f ${startdir}/pkg/etc/ld.so.cache ${startdir}/pkg/etc/ld.so.conf ${startdir}/pkg/etc/localtime + + install -m755 -d ${startdir}/pkg/etc/rc.d + install -m755 -d ${startdir}/pkg/usr/sbin + install -m755 -d ${startdir}/pkg/usr/lib/locale + install -m644 ${startdir}/src/libc/nscd/nscd.conf ${startdir}/pkg/etc/nscd.conf + install -m755 ${startdir}/src/nscd ${startdir}/pkg/etc/rc.d/nscd + install -m755 ${startdir}/src/locale-gen ${startdir}/pkg/usr/sbin + + sed -i -e 's/^\tserver-user/#\tserver-user/' ${startdir}/pkg/etc/nscd.conf || return 1 + + # create /etc/locale.gen + install -m644 ${startdir}/src/locale.gen.txt ${startdir}/pkg/etc/locale.gen + sed -i "s|/| |g" ${startdir}/src/libc/localedata/SUPPORTED + sed -i 's|\\| |g' ${startdir}/src/libc/localedata/SUPPORTED + sed -i "s|SUPPORTED-LOCALES=||" ${startdir}/src/libc/localedata/SUPPORTED + cat ${startdir}/src/libc/localedata/SUPPORTED >> ${startdir}/pkg/etc/locale.gen + sed -i "s|^|#|g" ${startdir}/pkg/etc/locale.gen + + if [ "${CARCH}" = "x86_64" ]; then + # fix for the linker + sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${startdir}/pkg/usr/bin/ldd + #Comply with multilib binaries, they look for the linker in /lib64 + mkdir ${startdir}/pkg/lib64 + cd ${startdir}/pkg/lib64 + ln -v -s ../lib/ld* . + fi +} diff --git a/abs/core-testing/glibc/fix-makecontext.patch b/abs/core-testing/glibc/fix-makecontext.patch new file mode 100644 index 0000000..f507b7a --- /dev/null +++ b/abs/core-testing/glibc/fix-makecontext.patch @@ -0,0 +1,33 @@ +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/makecontext.S,v +retrieving revision 1.8 +retrieving revision 1.9 +diff -u -r1.8 -r1.9 +--- libc/sysdeps/unix/sysv/linux/i386/makecontext.S 2007/12/03 04:56:56 1.8 ++++ libc/sysdeps/unix/sysv/linux/i386/makecontext.S 2008/01/09 19:35:15 1.9 +@@ -1,5 +1,5 @@ + /* Create new context. +- Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. ++ Copyright (C) 2001, 2002, 2005, 2007, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2001. + +@@ -41,13 +41,15 @@ + movl 12(%esp), %ecx + movl %ecx, oEBX(%eax) + +- /* Make room on the new stack for the parameters. */ ++ /* Make room on the new stack for the parameters. ++ Room for the arguments, return address (== L(exitcode)) and ++ oLINK pointer is needed. One of the pointer sizes is subtracted ++ after aligning the stack. */ + negl %ecx +- leal -8(%edx,%ecx,4), %edx ++ leal -4(%edx,%ecx,4), %edx + negl %ecx + + /* Align the stack. */ +- addl $16, %edx + andl $0xfffffff0, %edx + subl $4, %edx + diff --git a/abs/core-testing/glibc/glibc.install b/abs/core-testing/glibc/glibc.install new file mode 100644 index 0000000..2a35040 --- /dev/null +++ b/abs/core-testing/glibc/glibc.install @@ -0,0 +1,122 @@ +pre_upgrade() { +if [ "`uname -m`" = "x86_64" ]; then + if [ "`vercmp $2 2.4`" -lt 0 ]; then + cat << _EOF + ==> glibc oldpkgver < 2.4 detected! + ==> + ==> ATTENTION x86_64 USERS: + ==> + ==> We now switch from the former lib-linking to pure /lib support. To get rid + ==> of all lib64 directories we have removed the link /lib -> /lib64 and + ==> /usr/lib -> /usr/lib64. + ==> + ==> We have also rebuilt all packages we know that still used lib64 directories. + ==> Now all should go to /lib directories. + ==> + ==> Internally we have removed the link and then mv /lib64 /lib. Same to /usr/lib64. + ==> /lib64 and /usr/lib64 shouldn't exist anymore. If any package still installs to + ==> /lib64 or /usr/lib64 let us know. + ==> +_EOF + +# now the moving +rm -rf /lib/tls && echo "/lib/tls removed" +ldconfig -r . +rm -f /usr/lib +mv /usr/lib64 /usr/lib && echo "/usr/lib64 moved" +rm -f /lib +mv /lib64 /lib && echo "/lib64 moved" + + fi +fi +} + + +post_upgrade() { + echo -n "reloading init: " + ldconfig -r . + init u + echo "done." + cat << _EOF + ==> ATTENTION INTERNATIONAL USERS: + ==> + ==> Locales are no longer included in the glibc package. + ==> They are generated by /usr/sbin/locale-gen depending on the contents + ==> of /etc/locale.gen. + ==> glibc will try to autodetect the required locales now, if you need + ==> additional locales, please enable them in /etc/locale.gen and run + ==> /usr/sbin/locale-gen + ==> + ==> Check /etc/locale.gen.pacnew for new supported locales + ==> +_EOF + # Check active locales, enable the ones that are in use + loc=("$LANG" + "`grep '^LOCALE=' etc/rc.conf | awk -F '=' '{ print $2 }'`") + for l in "${loc[@]}"; do + if [ ! -z "${l}" ]; then + line="`grep -i "^#${l}[[:space:]]" etc/locale.gen`" + if [ ! -z "${line}" ]; then + sed -i -e "s|${line}|${line/\#/}|" etc/locale.gen + fi + fi + done + + usr/sbin/locale-gen + +# fix CHOST for arch64 +if [ "`uname -m`" = "x86_64" ]; then + if [ "`vercmp $2 2.4`" -lt 0 ]; then + sed -i s/'x86_64-pc-linux-gnu'/'x86_64-unknown-linux-gnu'/ /etc/makepkg.conf && \ + echo "in /etc/makepkg.conf CHOST has been changed to \"x86_64-unknown-linux-gnu\"" + + # we remove files from glibc 2.3.6 that are not removed automatically + rm -f /lib/ld-2.3.* && echo "removing unneeded old files" + rm -f /lib/libBrokenLocale-2.3.* + rm -f /lib/libNoVersion* + rm -f /lib/libanl-2.3.* + rm -f /lib/libc-2.3.* + rm -f /lib/libcidn-2.3.* + rm -f /lib/libcrypt-2.3.* + rm -f /lib/libdl-2.3.* + rm -f /lib/libm-2.3.* + rm -f /lib/libnsl-2.3.* + rm -f /lib/libnss1* + rm -f /lib/libnss_compat-2.3.* + rm -f /lib/libnss_dns-2.3.* + rm -f /lib/libnss_dns.so.1 + rm -f /lib/libnss_files-2.3.* + rm -f /lib/libnss_files.so.1 + rm -f /lib/libnss_hesiod-2.3.* + rm -f /lib/libnss_nis-2.3.* + rm -f /lib/libnss_nis.so.1 + rm -f /lib/libnss_nisplus-2.3.* + rm -f /lib/libpthread-0.10.so + rm -f /lib/libresolv-2.3.* + rm -f /lib/librt-2.3.* + rm -f /lib/libutil-2.3.* + rm -fR /lib/nosegneg + #rm -fR /usr/include/asm + #rm -fR /usr/include/linux + rm -fR /usr/include/ntpl + rm -f /usr/lib/libNoVersion* + rm -f /usr/lib/libc_stubs.a + rm -f /usr/lib/libnss1* + rm -f /usr/lib/libnss_compat.so.1 + rm -f /usr/lib/libnss_dns.so.1 + rm -f /usr/lib/libnss_files.so.1 + rm -f /usr/lib/libnss_nis.so.1 + rm -fR /usr/lib/nptl + rm -f /usr/sbin/nscd_nischeck + rm -fR /usr/share/zoneinfo/SystemV + rm -fR /usr/share/zoneinfo/posix/SystemV + rm -fR /usr/share/zoneinfo/right/SystemV + ldconfig -r . + fi +fi + +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/glibc/locale-gen b/abs/core-testing/glibc/locale-gen new file mode 100755 index 0000000..5aff344 --- /dev/null +++ b/abs/core-testing/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/core-testing/glibc/locale.gen b/abs/core-testing/glibc/locale.gen new file mode 100644 index 0000000..c739380 --- /dev/null +++ b/abs/core-testing/glibc/locale.gen @@ -0,0 +1,438 @@ +# Configuration file for locale-gen +# +# lists of locales that are to be generated by the locale-gen command. +# +# Each line is of the form: +# +# +# +# where is one of the locales given in /usr/share/i18n/locales +# and 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. +# +#aa_DJ.UTF-8 UTF-8 +#aa_DJ ISO-8859-1 +#aa_ER UTF-8 +#aa_ER@saaho UTF-8 +#aa_ET UTF-8 +#af_ZA.UTF-8 UTF-8 +#af_ZA ISO-8859-1 +#am_ET UTF-8 +#an_ES.UTF-8 UTF-8 +#an_ES ISO-8859-15 +#ar_AE.UTF-8 UTF-8 +#ar_AE ISO-8859-6 +#ar_BH.UTF-8 UTF-8 +#ar_BH ISO-8859-6 +#ar_DZ.UTF-8 UTF-8 +#ar_DZ ISO-8859-6 +#ar_EG.UTF-8 UTF-8 +#ar_EG ISO-8859-6 +#ar_IN UTF-8 +#ar_IQ.UTF-8 UTF-8 +#ar_IQ ISO-8859-6 +#ar_JO.UTF-8 UTF-8 +#ar_JO ISO-8859-6 +#ar_KW.UTF-8 UTF-8 +#ar_KW ISO-8859-6 +#ar_LB.UTF-8 UTF-8 +#ar_LB ISO-8859-6 +#ar_LY.UTF-8 UTF-8 +#ar_LY ISO-8859-6 +#ar_MA.UTF-8 UTF-8 +#ar_MA ISO-8859-6 +#ar_OM.UTF-8 UTF-8 +#ar_OM ISO-8859-6 +#ar_QA.UTF-8 UTF-8 +#ar_QA ISO-8859-6 +#ar_SA.UTF-8 UTF-8 +#ar_SA ISO-8859-6 +#ar_SD.UTF-8 UTF-8 +#ar_SD ISO-8859-6 +#ar_SY.UTF-8 UTF-8 +#ar_SY ISO-8859-6 +#ar_TN.UTF-8 UTF-8 +#ar_TN ISO-8859-6 +#ar_YE.UTF-8 UTF-8 +#ar_YE ISO-8859-6 +#az_AZ.UTF-8 UTF-8 +#as_IN.UTF-8 UTF-8 +#ast_ES.UTF-8 UTF-8 +#ast_ES ISO-8859-15 +#be_BY.UTF-8 UTF-8 +#be_BY CP1251 +#be_BY@latin UTF-8 +#ber_DZ UTF-8 +#ber_MA UTF-8 +#bg_BG.UTF-8 UTF-8 +#bg_BG CP1251 +#bn_BD UTF-8 +#bn_IN UTF-8 +#br_FR.UTF-8 UTF-8 +#br_FR ISO-8859-1 +#br_FR@euro ISO-8859-15 +#bs_BA.UTF-8 UTF-8 +#bs_BA ISO-8859-2 +#byn_ER UTF-8 +#ca_AD.UTF-8 UTF-8 +#ca_AD ISO-8859-15 +#ca_ES.UTF-8 UTF-8 +#ca_ES ISO-8859-1 +#ca_ES@euro ISO-8859-15 +#ca_ES.UTF-8@valencia UTF-8 +#ca_ES@valencia ISO-8859-15 +#ca_FR.UTF-8 UTF-8 +#ca_FR ISO-8859-15 +#ca_IT.UTF-8 UTF-8 +#ca_IT ISO-8859-15 +#crh_UA UTF-8 +#cs_CZ.UTF-8 UTF-8 +#cs_CZ ISO-8859-2 +#csb_PL UTF-8 +#cy_GB.UTF-8 UTF-8 +#cy_GB ISO-8859-14 +#da_DK.UTF-8 UTF-8 +#da_DK ISO-8859-1 +#da_DK.ISO-8859-15 ISO-8859-15 +#de_AT.UTF-8 UTF-8 +#de_AT ISO-8859-1 +#de_AT@euro ISO-8859-15 +#de_BE.UTF-8 UTF-8 +#de_BE ISO-8859-1 +#de_BE@euro ISO-8859-15 +#de_CH.UTF-8 UTF-8 +#de_CH ISO-8859-1 +#de_DE.UTF-8 UTF-8 +#de_DE ISO-8859-1 +#de_DE@euro ISO-8859-15 +#de_LU.UTF-8 UTF-8 +#de_LU ISO-8859-1 +#de_LU@euro ISO-8859-15 +#dz_BT UTF-8 +#el_GR.UTF-8 UTF-8 +#el_GR ISO-8859-7 +#el_CY.UTF-8 UTF-8 +#el_CY ISO-8859-7 +#en_AU.UTF-8 UTF-8 +#en_AU ISO-8859-1 +#en_BW.UTF-8 UTF-8 +#en_BW ISO-8859-1 +#en_CA.UTF-8 UTF-8 +#en_CA ISO-8859-1 +#en_DK.UTF-8 UTF-8 +#en_DK.ISO-8859-15 ISO-8859-15 +#en_DK ISO-8859-1 +#en_GB.UTF-8 UTF-8 +#en_GB ISO-8859-1 +#en_GB.ISO-8859-15 ISO-8859-15 +#en_HK.UTF-8 UTF-8 +#en_HK ISO-8859-1 +#en_IE.UTF-8 UTF-8 +#en_IE ISO-8859-1 +#en_IE@euro ISO-8859-15 +#en_IN UTF-8 +#en_NG UTF-8 +#en_NZ.UTF-8 UTF-8 +#en_NZ ISO-8859-1 +#en_PH.UTF-8 UTF-8 +#en_PH ISO-8859-1 +#en_SG.UTF-8 UTF-8 +#en_SG ISO-8859-1 +#en_US.UTF-8 UTF-8 +#en_US ISO-8859-1 +#en_US.ISO-8859-15 ISO-8859-15 +#en_ZA.UTF-8 UTF-8 +#en_ZA ISO-8859-1 +#en_ZW.UTF-8 UTF-8 +#en_ZW ISO-8859-1 +#eo.UTF-8 UTF-8 +#eo ISO-8859-3 +#es_AR.UTF-8 UTF-8 +#es_AR ISO-8859-1 +#es_BO.UTF-8 UTF-8 +#es_BO ISO-8859-1 +#es_CL.UTF-8 UTF-8 +#es_CL ISO-8859-1 +#es_CO.UTF-8 UTF-8 +#es_CO ISO-8859-1 +#es_CR.UTF-8 UTF-8 +#es_CR ISO-8859-1 +#es_DO.UTF-8 UTF-8 +#es_DO ISO-8859-1 +#es_EC.UTF-8 UTF-8 +#es_EC ISO-8859-1 +#es_ES.UTF-8 UTF-8 +#es_ES ISO-8859-1 +#es_ES@euro ISO-8859-15 +#es_GT.UTF-8 UTF-8 +#es_GT ISO-8859-1 +#es_HN.UTF-8 UTF-8 +#es_HN ISO-8859-1 +#es_MX.UTF-8 UTF-8 +#es_MX ISO-8859-1 +#es_NI.UTF-8 UTF-8 +#es_NI ISO-8859-1 +#es_PA.UTF-8 UTF-8 +#es_PA ISO-8859-1 +#es_PE.UTF-8 UTF-8 +#es_PE ISO-8859-1 +#es_PR.UTF-8 UTF-8 +#es_PR ISO-8859-1 +#es_PY.UTF-8 UTF-8 +#es_PY ISO-8859-1 +#es_SV.UTF-8 UTF-8 +#es_SV ISO-8859-1 +#es_US.UTF-8 UTF-8 +#es_US ISO-8859-1 +#es_UY.UTF-8 UTF-8 +#es_UY ISO-8859-1 +#es_VE.UTF-8 UTF-8 +#es_VE ISO-8859-1 +#et_EE.UTF-8 UTF-8 +#et_EE ISO-8859-1 +#et_EE.ISO-8859-15 ISO-8859-15 +#eu_ES.UTF-8 UTF-8 +#eu_ES ISO-8859-1 +#eu_ES@euro ISO-8859-15 +#eu_FR.UTF-8 UTF-8 +#eu_FR ISO-8859-1 +#eu_FR@euro ISO-8859-15 +#fa_IR UTF-8 +#fi_FI.UTF-8 UTF-8 +#fi_FI ISO-8859-1 +#fi_FI@euro ISO-8859-15 +#fil_PH UTF-8 +#fo_FO.UTF-8 UTF-8 +#fo_FO ISO-8859-1 +#fr_BE.UTF-8 UTF-8 +#fr_BE ISO-8859-1 +#fr_BE@euro ISO-8859-15 +#fr_CA.UTF-8 UTF-8 +#fr_CA ISO-8859-1 +#fr_CH.UTF-8 UTF-8 +#fr_CH ISO-8859-1 +#fr_FR.UTF-8 UTF-8 +#fr_FR ISO-8859-1 +#fr_FR@euro ISO-8859-15 +#fr_LU.UTF-8 UTF-8 +#fr_LU ISO-8859-1 +#fr_LU@euro ISO-8859-15 +#fur_IT UTF-8 +#fy_NL UTF-8 +#fy_DE UTF-8 +#ga_IE.UTF-8 UTF-8 +#ga_IE ISO-8859-1 +#ga_IE@euro ISO-8859-15 +#gd_GB.UTF-8 UTF-8 +#gd_GB ISO-8859-15 +#gez_ER UTF-8 +#gez_ER@abegede UTF-8 +#gez_ET UTF-8 +#gez_ET@abegede UTF-8 +#gl_ES.UTF-8 UTF-8 +#gl_ES ISO-8859-1 +#gl_ES@euro ISO-8859-15 +#gu_IN UTF-8 +#gv_GB.UTF-8 UTF-8 +#gv_GB ISO-8859-1 +#ha_NG UTF-8 +#he_IL.UTF-8 UTF-8 +#he_IL ISO-8859-8 +#hi_IN UTF-8 +#hr_HR.UTF-8 UTF-8 +#hr_HR ISO-8859-2 +#hsb_DE.UTF-8 UTF-8 +#hsb_DE ISO-8859-2 +#hu_HU.UTF-8 UTF-8 +#hu_HU ISO-8859-2 +#hy_AM UTF-8 +#hy_AM.ARMSCII-8 ARMSCII-8 +#ia UTF-8 +#id_ID.UTF-8 UTF-8 +#id_ID ISO-8859-1 +#ig_NG UTF-8 +#ik_CA UTF-8 +#is_IS.UTF-8 UTF-8 +#is_IS ISO-8859-1 +#it_CH.UTF-8 UTF-8 +#it_CH ISO-8859-1 +#it_IT.UTF-8 UTF-8 +#it_IT ISO-8859-1 +#it_IT@euro ISO-8859-15 +#iu_CA UTF-8 +#iw_IL.UTF-8 UTF-8 +#iw_IL ISO-8859-8 +#ja_JP.UTF-8 UTF-8 +#ja_JP.EUC-JP EUC-JP +#ka_GE.UTF-8 UTF-8 +#ka_GE GEORGIAN-PS +#kk_KZ.UTF-8 UTF-8 +#kk_KZ PT154 +#kl_GL.UTF-8 UTF-8 +#kl_GL ISO-8859-1 +#km_KH UTF-8 +#kn_IN UTF-8 +#ko_KR.UTF-8 UTF-8 +#ko_KR.EUC-KR EUC-KR +#ku_TR.UTF-8 UTF-8 +#ku_TR ISO-8859-9 +#kw_GB.UTF-8 UTF-8 +#kw_GB ISO-8859-1 +#ky_KG UTF-8 +#lg_UG.UTF-8 UTF-8 +#lg_UG ISO-8859-10 +#li_BE UTF-8 +#li_NL UTF-8 +#lo_LA UTF-8 +#lt_LT.UTF-8 UTF-8 +#lt_LT ISO-8859-13 +#lv_LV.UTF-8 UTF-8 +#lv_LV ISO-8859-13 +#mai_IN UTF-8 +#mg_MG.UTF-8 UTF-8 +#mg_MG ISO-8859-15 +#mi_NZ.UTF-8 UTF-8 +#mi_NZ ISO-8859-13 +#mk_MK.UTF-8 UTF-8 +#mk_MK ISO-8859-5 +#ml_IN UTF-8 +#mn_MN UTF-8 +#mr_IN UTF-8 +#ms_MY.UTF-8 UTF-8 +#ms_MY ISO-8859-1 +#mt_MT.UTF-8 UTF-8 +#mt_MT ISO-8859-3 +#nb_NO.UTF-8 UTF-8 +#nb_NO ISO-8859-1 +#nds_DE UTF-8 +#nds_NL UTF-8 +#ne_NP UTF-8 +#nl_BE.UTF-8 UTF-8 +#nl_BE ISO-8859-1 +#nl_BE@euro ISO-8859-15 +#nl_NL.UTF-8 UTF-8 +#nl_NL ISO-8859-1 +#nl_NL@euro ISO-8859-15 +#nn_NO.UTF-8 UTF-8 +#nn_NO ISO-8859-1 +#nr_ZA UTF-8 +#nso_ZA UTF-8 +#oc_FR.UTF-8 UTF-8 +#oc_FR ISO-8859-1 +#om_ET UTF-8 +#om_KE.UTF-8 UTF-8 +#om_KE ISO-8859-1 +#or_IN UTF-8 +#pa_IN UTF-8 +#pa_PK UTF-8 +#pap_AN UTF-8 +#pl_PL.UTF-8 UTF-8 +#pl_PL ISO-8859-2 +#pt_BR.UTF-8 UTF-8 +#pt_BR ISO-8859-1 +#pt_PT.UTF-8 UTF-8 +#pt_PT ISO-8859-1 +#pt_PT@euro ISO-8859-15 +#ro_RO.UTF-8 UTF-8 +#ro_RO ISO-8859-2 +#ru_RU.UTF-8 UTF-8 +#ru_RU.KOI8-R KOI8-R +#ru_RU ISO-8859-5 +#ru_RU.CP1251 CP1251 +#ru_UA.UTF-8 UTF-8 +#ru_UA KOI8-U +#rw_RW UTF-8 +#sa_IN UTF-8 +#sc_IT UTF-8 +#se_NO UTF-8 +#si_LK UTF-8 +#sid_ET UTF-8 +#sk_SK.UTF-8 UTF-8 +#sk_SK ISO-8859-2 +#sl_SI.UTF-8 UTF-8 +#sl_SI ISO-8859-2 +#so_DJ.UTF-8 UTF-8 +#so_DJ ISO-8859-1 +#so_ET UTF-8 +#so_KE.UTF-8 UTF-8 +#so_KE ISO-8859-1 +#so_SO.UTF-8 UTF-8 +#so_SO ISO-8859-1 +#sq_AL.UTF-8 UTF-8 +#sq_AL ISO-8859-1 +#sr_ME UTF-8 +#sr_RS UTF-8 +#sr_RS@latin UTF-8 +#ss_ZA UTF-8 +#st_ZA.UTF-8 UTF-8 +#st_ZA ISO-8859-1 +#sv_FI.UTF-8 UTF-8 +#sv_FI ISO-8859-1 +#sv_FI@euro ISO-8859-15 +#sv_SE.UTF-8 UTF-8 +#sv_SE ISO-8859-1 +#sv_SE.ISO-8859-15 ISO-8859-15 +#ta_IN UTF-8 +#te_IN UTF-8 +#tg_TJ.UTF-8 UTF-8 +#tg_TJ KOI8-T +#th_TH.UTF-8 UTF-8 +#th_TH TIS-620 +#ti_ER UTF-8 +#ti_ET UTF-8 +#tig_ER UTF-8 +#tk_TM UTF-8 +#tl_PH.UTF-8 UTF-8 +#tl_PH ISO-8859-1 +#tn_ZA UTF-8 +#tr_CY.UTF-8 UTF-8 +#tr_CY ISO-8859-9 +#tr_TR.UTF-8 UTF-8 +#tr_TR ISO-8859-9 +#ts_ZA UTF-8 +#tt_RU.UTF-8 UTF-8 +#tt_RU@iqtelif.UTF-8 UTF-8 +#ug_CN UTF-8 +#uk_UA.UTF-8 UTF-8 +#uk_UA KOI8-U +#ur_PK UTF-8 +#uz_UZ.UTF-8 UTF-8 +#uz_UZ ISO-8859-1 +#uz_UZ@cyrillic UTF-8 +#ve_ZA UTF-8 +#vi_VN UTF-8 +#vi_VN.TCVN TCVN5712-1 +#wa_BE.UTF-8 UTF-8 +#wa_BE ISO-8859-1 +#wa_BE@euro ISO-8859-15 +#wo_SN UTF-8 +#xh_ZA.UTF-8 UTF-8 +#xh_ZA ISO-8859-1 +#yi_US.UTF-8 UTF-8 +#yi_US CP1255 +#yo_NG UTF-8 +#zh_CN.UTF-8 UTF-8 +#zh_CN.GB18030 GB18030 +#zh_CN.GBK GBK +#zh_CN GB2312 +#zh_HK.UTF-8 UTF-8 +#zh_HK BIG5-HKSCS +#zh_SG.UTF-8 UTF-8 +#zh_SG.GBK GBK +#zh_SG GB2312 +#zh_TW.UTF-8 UTF-8 +#zh_TW BIG5 +#zh_TW.EUC-TW EUC-TW +#zu_ZA.UTF-8 UTF-8 +#zu_ZA ISO-8859-1 diff --git a/abs/core-testing/glibc/locale.gen.txt b/abs/core-testing/glibc/locale.gen.txt new file mode 100644 index 0000000..ccdd817 --- /dev/null +++ b/abs/core-testing/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: +# +# +# +# where is one of the locales given in /usr/share/i18n/locales +# and 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/core-testing/glibc/nscd b/abs/core-testing/glibc/nscd new file mode 100755 index 0000000..8b14f2a --- /dev/null +++ b/abs/core-testing/glibc/nscd @@ -0,0 +1,40 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/nscd` +case "$1" in + start) + stat_busy "Starting nscd" + # create necessary directories if they don't already exist + mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null + # remove stale files + rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null + [ -z "$PID" ] && /usr/sbin/nscd + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon nscd + stat_done + fi + ;; + stop) + stat_busy "Stopping nscd" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon nscd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core-testing/glproto/PKGBUILD b/abs/core-testing/glproto/PKGBUILD new file mode 100644 index 0000000..fe75df2 --- /dev/null +++ b/abs/core-testing/glproto/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Alexander Baldeck +# Contributor: Jan de Groot +pkgname=glproto +pkgver=1.4.9 +pkgrel=1 +pkgdesc="X11 OpenGL extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +source=(http://xorg.freedesktop.org/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} + +md5sums=('e60951628422663e60faeb400f27bac1') diff --git a/abs/core-testing/gnutls/PKGBUILD b/abs/core-testing/gnutls/PKGBUILD new file mode 100644 index 0000000..ec50f98 --- /dev/null +++ b/abs/core-testing/gnutls/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 8715 2008-08-16 04:25:59Z eric $ +# Maintainer: Jan de Groot + +# Notice: +# When building a new major version, build, install, build again. +# +pkgname=gnutls +pkgver=2.4.1 +pkgrel=1 +pkgdesc="A library which provides a secure layer over a reliable transport layer" +arch=(i686 x86_64) +license=('GPL3' 'LGPL') +url="http://www.gnu.org/software/gnutls/" +options=('libtool') +depends=('gcc-libs' 'libtasn1>=1.4' 'readline' 'zlib' 'libgcrypt>=1.4') +source=(ftp://ftp.gnutls.org/pub/gnutls/${pkgname}-${pkgver}.tar.bz2) +md5sums=('573db36cb3f8472b0293cfa1f52c607a') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr --with-zlib --disable-guile || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/gpm/ChangeLog b/abs/core-testing/gpm/ChangeLog new file mode 100644 index 0000000..c6c6a14 --- /dev/null +++ b/abs/core-testing/gpm/ChangeLog @@ -0,0 +1,11 @@ +2008-06-16 Eric Belanger + + * gpm 1.20.5-1 + * Upstream update + * Added sanity checks + +2008-04-17 Eric Belanger + + * gpm 1.20.3-1 + * Upstream update + * Added missing /usr/lib/libgpm.so.1 symlink (close FS#9949) diff --git a/abs/core-testing/gpm/PKGBUILD b/abs/core-testing/gpm/PKGBUILD new file mode 100644 index 0000000..7a7c571 --- /dev/null +++ b/abs/core-testing/gpm/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 3002 2008-06-18 01:56:59Z eric $ +# Maintainer: Eric Belanger +# Contributor: Tom Newsom + +pkgname=gpm +pkgver=1.20.5 +pkgrel=1 +pkgdesc="A mouse server for the console and xterm" +arch=('i686' 'x86_64') +url="http://unix.schottelius.org/gpm/" +license=('GPL') +depends=('ncurses') +backup=('etc/conf.d/gpm') +options=('!makeflags') +source=(http://unix.schottelius.org/gpm/archives/${pkgname}-${pkgver}.tar.bz2 \ + gpm gpm.conf.d) +md5sums=('e55473932e4052f3b74c730dfefe0d15' 'c4d42a4725503a5524cae060a959a3d3'\ + '5f109341a7d1bb18c59d7c3a395d848a') +sha1sums=('4a8c2109167da8e60055c25dadc383d02ba32538' + 'c13ad1422d24af320e2abb9786c7eacef39b293c' + '3bcb67027f0ad7dc393388fb02c261126671f9f5') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + ./configure --prefix=/usr --sysconfdir=/etc || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + install -D -m755 ../gpm ${startdir}/pkg/etc/rc.d/gpm || return 1 + install -D -m644 ../gpm.conf.d ${startdir}/pkg/etc/conf.d/gpm || return 1 + +# library fixes + cd ${startdir}/pkg/usr/lib/ + ln -s libgpm.so.2.* libgpm.so || return 1 + chmod 755 ${startdir}/pkg/usr/lib/libgpm.so.* || return 1 +} diff --git a/abs/core-testing/gpm/gpm b/abs/core-testing/gpm/gpm new file mode 100755 index 0000000..4acc908 --- /dev/null +++ b/abs/core-testing/gpm/gpm @@ -0,0 +1,40 @@ +#!/bin/bash + +# source application-specific settings +GPM_ARGS= +[ -f /etc/conf.d/gpm ] && . /etc/conf.d/gpm + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/gpm` +case "$1" in + start) + stat_busy "Starting GPM Daemon" + [ -z "$PID" ] && /usr/sbin/gpm ${GPM_ARGS} + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon gpm + stat_done + fi + ;; + stop) + stat_busy "Stopping GPM Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon gpm + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core-testing/gpm/gpm.conf.d b/abs/core-testing/gpm/gpm.conf.d new file mode 100644 index 0000000..ed84f91 --- /dev/null +++ b/abs/core-testing/gpm/gpm.conf.d @@ -0,0 +1,4 @@ +# +# Parameters to be passed to gpm +# +GPM_ARGS="-m /dev/misc/psaux" diff --git a/abs/core-testing/grep/01-fgrep.patch b/abs/core-testing/grep/01-fgrep.patch new file mode 100644 index 0000000..c7f8f96 --- /dev/null +++ b/abs/core-testing/grep/01-fgrep.patch @@ -0,0 +1,145 @@ +--- grep-2.5.1/src/search.c.fgrep 2001-04-19 04:42:14.000000000 +0100 ++++ grep-2.5.1/src/search.c 2004-02-26 13:09:32.000000000 +0000 +@@ -360,13 +360,7 @@ + /* Find a possible match using the KWset matcher. */ + size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); + if (offset == (size_t) -1) +- { +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- free(mb_properties); +-#endif +- return (size_t)-1; +- } ++ goto failure; + beg += offset; + /* Narrow down to the line containing the candidate, and + run it through DFA. */ +@@ -379,7 +373,7 @@ + while (beg > buf && beg[-1] != eol) + --beg; + if (kwsm.index < kwset_exact_matches) +- goto success; ++ goto success_in_beg_and_end; + if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) + continue; + } +@@ -398,7 +392,7 @@ + } + /* Successful, no backreferences encountered! */ + if (!backref) +- goto success; ++ goto success_in_beg_and_end; + } + else + end = beg + size; +@@ -413,14 +407,11 @@ + end - beg - 1, &(patterns[i].regs)))) + { + len = patterns[i].regs.end[0] - start; +- if (exact) +- { +- *match_size = len; +- return start; +- } ++ if (exact && !match_words) ++ goto success_in_start_and_len; + if ((!match_lines && !match_words) + || (match_lines && len == end - beg - 1)) +- goto success; ++ goto success_in_beg_and_end; + /* If -w, check if the match aligns with word boundaries. + We do this iteratively because: + (a) the line may contain more than one occurence of the +@@ -434,7 +425,7 @@ + if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) + && (len == end - beg - 1 + || !WCHAR ((unsigned char) beg[start + len]))) +- goto success; ++ goto success_in_beg_and_end; + if (len > 0) + { + /* Try a shorter length anchored at the same place. */ +@@ -461,19 +452,26 @@ + } + } /* for Regex patterns. */ + } /* for (beg = end ..) */ ++ ++ failure: + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1 && mb_properties) + free (mb_properties); + #endif /* MBS_SUPPORT */ + return (size_t) -1; + +- success: ++ success_in_beg_and_end: ++ len = end - beg; ++ start = beg - buf; ++ /* FALLTHROUGH */ ++ ++ success_in_start_and_len: + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1 && mb_properties) + free (mb_properties); + #endif /* MBS_SUPPORT */ +- *match_size = end - beg; +- return beg - buf; ++ *match_size = len; ++ return start; + } + + static void +@@ -516,28 +514,15 @@ + { + size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); + if (offset == (size_t) -1) +- { +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- free(mb_properties); +-#endif /* MBS_SUPPORT */ +- return offset; +- } ++ goto failure; + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) + continue; /* It is a part of multibyte character. */ + #endif /* MBS_SUPPORT */ + beg += offset; + len = kwsmatch.size[0]; +- if (exact) +- { +- *match_size = len; +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- free (mb_properties); +-#endif /* MBS_SUPPORT */ +- return beg - buf; +- } ++ if (exact && !match_words) ++ goto success_in_beg_and_len; + if (match_lines) + { + if (beg > buf && beg[-1] != eol) +@@ -551,6 +536,7 @@ + goto success; + } + ++ failure: + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1) + free (mb_properties); +@@ -583,7 +569,11 @@ + end++; + while (buf < beg && beg[-1] != eol) + --beg; +- *match_size = end - beg; ++ len = end - beg; ++ /* FALLTHROUGH */ ++ ++ success_in_beg_and_len: ++ *match_size = len; + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1) + free (mb_properties); diff --git a/abs/core-testing/grep/02-bracket.patch b/abs/core-testing/grep/02-bracket.patch new file mode 100644 index 0000000..f99571c --- /dev/null +++ b/abs/core-testing/grep/02-bracket.patch @@ -0,0 +1,11 @@ +--- grep-2.5.1/src/dfa.c.bracket 2003-10-30 16:21:14.000000000 +0000 ++++ grep-2.5.1/src/dfa.c 2003-10-30 16:22:38.000000000 +0000 +@@ -586,7 +586,7 @@ + work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem; + } + } +- wc = -1; ++ wc1 = wc = -1; + } + else + /* We treat '[' as a normal character here. */ diff --git a/abs/core-testing/grep/03-i18n.patch b/abs/core-testing/grep/03-i18n.patch new file mode 100644 index 0000000..8dc3dfe --- /dev/null +++ b/abs/core-testing/grep/03-i18n.patch @@ -0,0 +1,303 @@ +--- grep-2.5.1/src/dfa.c 2004-02-26 13:09:54.000000000 +0000 ++++ grep-2.5.1/src/dfa.c 2004-05-18 16:43:31.189200479 +0100 +@@ -414,7 +414,7 @@ + + /* This function fetch a wide character, and update cur_mb_len, + used only if the current locale is a multibyte environment. */ +-static wchar_t ++static wint_t + fetch_wc (char const *eoferr) + { + wchar_t wc; +@@ -423,7 +423,7 @@ + if (eoferr != 0) + dfaerror (eoferr); + else +- return -1; ++ return WEOF; + } + + cur_mb_len = mbrtowc(&wc, lexptr, lexleft, &mbs); +@@ -459,7 +459,7 @@ + static void + parse_bracket_exp_mb () + { +- wchar_t wc, wc1, wc2; ++ wint_t wc, wc1, wc2; + + /* Work area to build a mb_char_classes. */ + struct mb_char_classes *work_mbc; +@@ -496,7 +496,7 @@ + work_mbc->invert = 0; + do + { +- wc1 = -1; /* mark wc1 is not initialized". */ ++ wc1 = WEOF; /* mark wc1 is not initialized". */ + + /* Note that if we're looking at some other [:...:] construct, + we just treat it as a bunch of ordinary characters. We can do +@@ -586,7 +586,7 @@ + work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem; + } + } +- wc1 = wc = -1; ++ wc1 = wc = WEOF; + } + else + /* We treat '[' as a normal character here. */ +@@ -600,7 +600,7 @@ + wc = fetch_wc(("Unbalanced [")); + } + +- if (wc1 == -1) ++ if (wc1 == WEOF) + wc1 = fetch_wc(_("Unbalanced [")); + + if (wc1 == L'-') +@@ -630,17 +630,17 @@ + } + REALLOC_IF_NECESSARY(work_mbc->range_sts, wchar_t, + range_sts_al, work_mbc->nranges + 1); +- work_mbc->range_sts[work_mbc->nranges] = wc; ++ work_mbc->range_sts[work_mbc->nranges] = (wchar_t)wc; + REALLOC_IF_NECESSARY(work_mbc->range_ends, wchar_t, + range_ends_al, work_mbc->nranges + 1); +- work_mbc->range_ends[work_mbc->nranges++] = wc2; ++ work_mbc->range_ends[work_mbc->nranges++] = (wchar_t)wc2; + } +- else if (wc != -1) ++ else if (wc != WEOF) + /* build normal characters. */ + { + REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al, + work_mbc->nchars + 1); +- work_mbc->chars[work_mbc->nchars++] = wc; ++ work_mbc->chars[work_mbc->nchars++] = (wchar_t)wc; + } + } + while ((wc = wc1) != L']'); +@@ -2552,6 +2552,8 @@ + } + + /* match with a character? */ ++ if (case_fold) ++ wc = towlower (wc); + for (i = 0; inchars; i++) + { + if (wc == work_mbc->chars[i]) +--- grep-2.5.1/src/grep.c.i18n 2002-03-26 15:54:12.000000000 +0000 ++++ grep-2.5.1/src/grep.c 2004-02-26 13:09:54.000000000 +0000 +@@ -30,6 +30,12 @@ + # include + # include + #endif ++#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC ++/* We can handle multibyte string. */ ++# define MBS_SUPPORT ++# include ++# include ++#endif + #include + #include "system.h" + #include "getopt.h" +@@ -1697,6 +1703,37 @@ + if (!install_matcher (matcher) && !install_matcher ("default")) + abort (); + ++#ifdef MBS_SUPPORT ++ if (MB_CUR_MAX != 1 && match_icase) ++ { ++ wchar_t wc; ++ mbstate_t cur_state, prev_state; ++ int i, len = strlen(keys); ++ ++ memset(&cur_state, 0, sizeof(mbstate_t)); ++ for (i = 0; i <= len ;) ++ { ++ size_t mbclen; ++ mbclen = mbrtowc(&wc, keys + i, len - i, &cur_state); ++ if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) ++ { ++ /* An invalid sequence, or a truncated multibyte character. ++ We treat it as a singlebyte character. */ ++ mbclen = 1; ++ } ++ else ++ { ++ if (iswupper((wint_t)wc)) ++ { ++ wc = towlower((wint_t)wc); ++ wcrtomb(keys + i, wc, &cur_state); ++ } ++ } ++ i += mbclen; ++ } ++ } ++#endif /* MBS_SUPPORT */ ++ + (*compile)(keys, keycc); + + if ((argc - optind > 1 && !no_filenames) || with_filenames) +--- grep-2.5.1/src/search.c.i18n 2004-02-26 13:09:54.000000000 +0000 ++++ grep-2.5.1/src/search.c 2004-02-26 13:17:12.000000000 +0000 +@@ -149,15 +149,16 @@ + static char* + check_multibyte_string(char const *buf, size_t size) + { +- char *mb_properties = malloc(size); ++ char *mb_properties = xmalloc(size); + mbstate_t cur_state; ++ wchar_t wc; + int i; + memset(&cur_state, 0, sizeof(mbstate_t)); + memset(mb_properties, 0, sizeof(char)*size); + for (i = 0; i < size ;) + { + size_t mbclen; +- mbclen = mbrlen(buf + i, size - i, &cur_state); ++ mbclen = mbrtowc(&wc, buf + i, size - i, &cur_state); + + if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) + { +@@ -165,6 +166,14 @@ + We treat it as a singlebyte character. */ + mbclen = 1; + } ++ else if (match_icase) ++ { ++ if (iswupper((wint_t)wc)) ++ { ++ wc = towlower((wint_t)wc); ++ wcrtomb(buf + i, wc, &cur_state); ++ } ++ } + mb_properties[i] = mbclen; + i += mbclen; + } +@@ -233,7 +242,7 @@ + static char const line_end[] = "\\)$"; + static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\("; + static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)"; +- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); ++ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end); + size_t i; + strcpy (n, match_lines ? line_beg : word_beg); + i = strlen (n); +@@ -316,7 +325,7 @@ + static char const line_end[] = ")$"; + static char const word_beg[] = "(^|[^[:alnum:]_])("; + static char const word_end[] = ")([^[:alnum:]_]|$)"; +- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); ++ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end); + size_t i; + strcpy (n, match_lines ? line_beg : word_beg); + i = strlen(n); +@@ -339,14 +348,20 @@ + char eol = eolbyte; + int backref, start, len; + struct kwsmatch kwsm; +- size_t i; ++ size_t i, ret_val; + #ifdef MBS_SUPPORT + char *mb_properties = NULL; +-#endif /* MBS_SUPPORT */ +- +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && kwset) +- mb_properties = check_multibyte_string(buf, size); ++ if (MB_CUR_MAX > 1) ++ { ++ if (match_icase) ++ { ++ char *case_buf = xmalloc(size); ++ memcpy(case_buf, buf, size); ++ buf = case_buf; ++ } ++ if (kwset) ++ mb_properties = check_multibyte_string(buf, size); ++ } + #endif /* MBS_SUPPORT */ + + buflim = buf + size; +@@ -455,8 +470,13 @@ + + failure: + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && mb_properties) +- free (mb_properties); ++ if (MB_CUR_MAX > 1) ++ { ++ if (mb_properties) ++ free (mb_properties); ++ if (match_icase) ++ free ((char *) buf); ++ } + #endif /* MBS_SUPPORT */ + return (size_t) -1; + +@@ -467,8 +487,13 @@ + + success_in_start_and_len: + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && mb_properties) +- free (mb_properties); ++ if (MB_CUR_MAX > 1) ++ { ++ if (mb_properties) ++ free (mb_properties); ++ if (match_icase) ++ free ((char *) buf); ++ } + #endif /* MBS_SUPPORT */ + *match_size = len; + return start; +@@ -504,10 +529,19 @@ + register size_t len; + char eol = eolbyte; + struct kwsmatch kwsmatch; ++ size_t ret_val; + #ifdef MBS_SUPPORT +- char *mb_properties; ++ char *mb_properties = NULL; + if (MB_CUR_MAX > 1) +- mb_properties = check_multibyte_string (buf, size); ++ { ++ if (match_icase) ++ { ++ char *case_buf = xmalloc(size); ++ memcpy(case_buf, buf, size); ++ buf = case_buf; ++ } ++ mb_properties = check_multibyte_string(buf, size); ++ } + #endif /* MBS_SUPPORT */ + + for (beg = buf; beg <= buf + size; ++beg) +@@ -565,7 +599,12 @@ + failure: + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1) +- free (mb_properties); ++ { ++ if (match_icase) ++ free((char *) buf); ++ if (mb_properties) ++ free(mb_properties); ++ } + #endif /* MBS_SUPPORT */ + return -1; + +@@ -581,7 +620,12 @@ + *match_size = len; + #ifdef MBS_SUPPORT + if (MB_CUR_MAX > 1) +- free (mb_properties); ++ { ++ if (mb_properties) ++ free (mb_properties); ++ if (match_icase) ++ free ((char *) buf); ++ } + #endif /* MBS_SUPPORT */ + return beg - buf; + } diff --git a/abs/core-testing/grep/04-oi.patch b/abs/core-testing/grep/04-oi.patch new file mode 100644 index 0000000..eb997ad --- /dev/null +++ b/abs/core-testing/grep/04-oi.patch @@ -0,0 +1,48 @@ +--- grep-2.5.1/lib/posix/regex.h.oi 2004-01-05 12:09:12.984391131 +0000 ++++ grep-2.5.1/lib/posix/regex.h 2004-01-05 12:09:24.717990622 +0000 +@@ -109,6 +109,10 @@ + If not set, \{, \}, {, and } are literals. */ + #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) + ++/* If this bit is set, then ignore case when matching. ++ If not set, then case is significant. */ ++#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) ++ + /* If this bit is set, +, ? and | aren't recognized as operators. + If not set, they are. */ + #define RE_LIMITED_OPS (RE_INTERVALS << 1) +--- grep-2.5.1/src/search.c.oi 2004-01-05 12:07:00.550199415 +0000 ++++ grep-2.5.1/src/search.c 2004-01-05 12:07:00.566197505 +0000 +@@ -31,7 +31,7 @@ + + #include "system.h" + #include "grep.h" +-#include "regex.h" ++#include + #include "dfa.h" + #include "kwset.h" + #include "error.h" +@@ -190,7 +190,7 @@ + size_t total = size; + char const *motif = pattern; + +- re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE); ++ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); + + /* For GNU regex compiler we have to pass the patterns separately to detect +@@ -268,12 +268,12 @@ + + if (strcmp (matcher, "awk") == 0) + { +- re_set_syntax (RE_SYNTAX_AWK); ++ re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte); + } + else + { +- re_set_syntax (RE_SYNTAX_POSIX_EGREP); ++ re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte); + } + diff --git a/abs/core-testing/grep/05-manpage.patch b/abs/core-testing/grep/05-manpage.patch new file mode 100644 index 0000000..284f0c4 --- /dev/null +++ b/abs/core-testing/grep/05-manpage.patch @@ -0,0 +1,19 @@ +--- grep-2.5.1/doc/grep.1.manpage 2002-01-22 13:20:04.000000000 +0000 ++++ grep-2.5.1/doc/grep.1 2003-10-08 09:37:32.000000000 +0100 +@@ -191,6 +191,7 @@ + .I PATTERN + as a list of fixed strings, separated by newlines, + any of which is to be matched. ++.TP + .BR \-P ", " \-\^\-perl-regexp + Interpret + .I PATTERN +@@ -302,7 +303,7 @@ + This is especially useful for tools like zgrep, e.g. + .B "gzip -cd foo.gz |grep --label=foo something" + .TP +-.BR \-\^\-line-buffering ++.BR \-\^\-line-buffered + Use line buffering, it can be a performance penality. + .TP + .BR \-q ", " \-\^\-quiet ", " \-\^\-silent diff --git a/abs/core-testing/grep/06-color.patch b/abs/core-testing/grep/06-color.patch new file mode 100644 index 0000000..f54c258 --- /dev/null +++ b/abs/core-testing/grep/06-color.patch @@ -0,0 +1,10 @@ +--- grep-2.5.1/src/grep.c.color 2004-11-16 16:46:22.845505847 +0000 ++++ grep-2.5.1/src/grep.c 2004-11-16 16:46:27.961530537 +0000 +@@ -607,6 +607,7 @@ + fputs ("\33[00m", stdout); + beg = b + match_size; + } ++ fputs ("\33[K", stdout); + } + fwrite (beg, 1, lim - beg, stdout); + if (ferror (stdout)) diff --git a/abs/core-testing/grep/07-icolor.patch b/abs/core-testing/grep/07-icolor.patch new file mode 100644 index 0000000..14b2617 --- /dev/null +++ b/abs/core-testing/grep/07-icolor.patch @@ -0,0 +1,36 @@ +--- grep-2.5.1a/src/grep.c.icolor 2005-01-07 12:05:20.877785250 +0000 ++++ grep-2.5.1a/src/grep.c 2005-01-07 12:05:44.690194388 +0000 +@@ -564,33 +564,6 @@ + { + size_t match_size; + size_t match_offset; +- if(match_icase) +- { +- /* Yuck, this is tricky */ +- char *buf = (char*) xmalloc (lim - beg); +- char *ibeg = buf; +- char *ilim = ibeg + (lim - beg); +- int i; +- for (i = 0; i < lim - beg; i++) +- ibeg[i] = tolower (beg[i]); +- while ((match_offset = (*execute) (ibeg, ilim-ibeg, &match_size, 1)) +- != (size_t) -1) +- { +- char const *b = beg + match_offset; +- if (b == lim) +- break; +- fwrite (beg, sizeof (char), match_offset, stdout); +- printf ("\33[%sm", grep_color); +- fwrite (b, sizeof (char), match_size, stdout); +- fputs ("\33[00m", stdout); +- beg = b + match_size; +- ibeg = ibeg + match_offset + match_size; +- } +- fwrite (beg, 1, lim - beg, stdout); +- free (buf); +- lastout = lim; +- return; +- } + while (lim-beg && (match_offset = (*execute) (beg, lim - beg, &match_size, 1)) + != (size_t) -1) + { diff --git a/abs/core-testing/grep/08-skip.patch b/abs/core-testing/grep/08-skip.patch new file mode 100644 index 0000000..fb6645f --- /dev/null +++ b/abs/core-testing/grep/08-skip.patch @@ -0,0 +1,42 @@ +--- grep-2.5.1a/src/grep.c.skip 2006-05-31 09:26:58.000000000 +0100 ++++ grep-2.5.1a/src/grep.c 2006-05-31 09:28:24.000000000 +0100 +@@ -261,19 +261,6 @@ + bufbeg[-1] = eolbyte; + bufdesc = fd; + +- if (fstat (fd, &stats->stat) != 0) +- { +- error (0, errno, "fstat"); +- return 0; +- } +- if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode)) +- return 0; +-#ifndef DJGPP +- if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode))) +-#else +- if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode))) +-#endif +- return 0; + if (S_ISREG (stats->stat.st_mode)) + { + if (file) +@@ -875,6 +862,19 @@ + } + else + { ++ if (stat (file, &stats->stat) != 0) ++ { ++ suppressible_error (file, errno); ++ return 1; ++ } ++ if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode)) ++ return 1; ++#ifndef DJGPP ++ if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode))) ++#else ++ if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode))) ++#endif ++ return 1; + while ((desc = open (file, O_RDONLY)) < 0 && errno == EINTR) + continue; + diff --git a/abs/core-testing/grep/09-egf-speedup.patch b/abs/core-testing/grep/09-egf-speedup.patch new file mode 100644 index 0000000..08e92c7 --- /dev/null +++ b/abs/core-testing/grep/09-egf-speedup.patch @@ -0,0 +1,823 @@ +--- grep-2.5.1/src/search.c 2004-12-31 15:28:35.720391036 +0000 ++++ grep-2.5.1a/src/search.c 2005-01-07 14:53:10.308860193 +0000 +@@ -18,9 +18,13 @@ + + /* Written August 1992 by Mike Haertel. */ + ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++#endif + #ifdef HAVE_CONFIG_H + # include + #endif ++#include + #include + #if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC + /* We can handle multibyte string. */ +@@ -39,6 +43,9 @@ + #ifdef HAVE_LIBPCRE + # include + #endif ++#ifdef HAVE_LANGINFO_CODESET ++# include ++#endif + + #define NCHAR (UCHAR_MAX + 1) + +@@ -70,9 +77,10 @@ + call the regexp matcher at all. */ + static int kwset_exact_matches; + +-#if defined(MBS_SUPPORT) +-static char* check_multibyte_string PARAMS ((char const *buf, size_t size)); +-#endif ++/* UTF-8 encoding allows some optimizations that we can't otherwise ++ assume in a multibyte encoding. */ ++static int using_utf8; ++ + static void kwsinit PARAMS ((void)); + static void kwsmusts PARAMS ((void)); + static void Gcompile PARAMS ((char const *, size_t)); +@@ -84,6 +92,15 @@ + static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int)); + + void ++check_utf8 (void) ++{ ++#ifdef HAVE_LANGINFO_CODESET ++ if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0) ++ using_utf8 = 1; ++#endif ++} ++ ++void + dfaerror (char const *mesg) + { + error (2, 0, mesg); +@@ -141,47 +158,6 @@ + } + } + +-#ifdef MBS_SUPPORT +-/* This function allocate the array which correspond to "buf". +- Then this check multibyte string and mark on the positions which +- are not singlebyte character nor the first byte of a multibyte +- character. Caller must free the array. */ +-static char* +-check_multibyte_string(char const *buf, size_t size) +-{ +- char *mb_properties = xmalloc(size); +- mbstate_t cur_state; +- wchar_t wc; +- int i; +- memset(&cur_state, 0, sizeof(mbstate_t)); +- memset(mb_properties, 0, sizeof(char)*size); +- for (i = 0; i < size ;) +- { +- size_t mbclen; +- mbclen = mbrtowc(&wc, buf + i, size - i, &cur_state); +- +- if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) +- { +- /* An invalid sequence, or a truncated multibyte character. +- We treat it as a singlebyte character. */ +- mbclen = 1; +- } +- else if (match_icase) +- { +- if (iswupper((wint_t)wc)) +- { +- wc = towlower((wint_t)wc); +- wcrtomb(buf + i, wc, &cur_state); +- } +- } +- mb_properties[i] = mbclen; +- i += mbclen; +- } +- +- return mb_properties; +-} +-#endif +- + static void + Gcompile (char const *pattern, size_t size) + { +@@ -190,6 +166,7 @@ + size_t total = size; + char const *motif = pattern; + ++ check_utf8 (); + re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0)); + dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); + +@@ -266,6 +243,7 @@ + size_t total = size; + char const *motif = pattern; + ++ check_utf8 (); + if (strcmp (matcher, "awk") == 0) + { + re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0)); +@@ -350,18 +328,9 @@ + struct kwsmatch kwsm; + size_t i, ret_val; + #ifdef MBS_SUPPORT +- char *mb_properties = NULL; +- if (MB_CUR_MAX > 1) +- { +- if (match_icase) +- { +- char *case_buf = xmalloc(size); +- memcpy(case_buf, buf, size); +- buf = case_buf; +- } +- if (kwset) +- mb_properties = check_multibyte_string(buf, size); +- } ++ int mb_cur_max = MB_CUR_MAX; ++ mbstate_t mbs; ++ memset (&mbs, '\0', sizeof (mbstate_t)); + #endif /* MBS_SUPPORT */ + + buflim = buf + size; +@@ -373,21 +342,63 @@ + if (kwset) + { + /* Find a possible match using the KWset matcher. */ +- size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); ++#ifdef MBS_SUPPORT ++ size_t bytes_left = 0; ++#endif /* MBS_SUPPORT */ ++ size_t offset; ++#ifdef MBS_SUPPORT ++ /* kwsexec doesn't work with match_icase and multibyte input. */ ++ if (match_icase && mb_cur_max > 1) ++ /* Avoid kwset */ ++ offset = 0; ++ else ++#endif /* MBS_SUPPORT */ ++ offset = kwsexec (kwset, beg, buflim - beg, &kwsm); + if (offset == (size_t) -1) + goto failure; ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ /* Offset points inside multibyte character: ++ * no good. */ ++ break; ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ } ++ else ++#endif /* MBS_SUPPORT */ + beg += offset; + /* Narrow down to the line containing the candidate, and + run it through DFA. */ + end = memchr(beg, eol, buflim - beg); + end++; + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) ++ if (mb_cur_max > 1 && bytes_left) + continue; +-#endif ++#endif /* MBS_SUPPORT */ + while (beg > buf && beg[-1] != eol) + --beg; +- if (kwsm.index < kwset_exact_matches) ++ if ( ++#ifdef MBS_SUPPORT ++ !(match_icase && mb_cur_max > 1) && ++#endif /* MBS_SUPPORT */ ++ (kwsm.index < kwset_exact_matches)) + goto success_in_beg_and_end; + if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) + continue; +@@ -395,13 +406,47 @@ + else + { + /* No good fixed strings; start with DFA. */ ++#ifdef MBS_SUPPORT ++ size_t bytes_left = 0; ++#endif /* MBS_SUPPORT */ + size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); + if (offset == (size_t) -1) + break; + /* Narrow down to the line we've found. */ ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ /* Offset points inside multibyte character: ++ * no good. */ ++ break; ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ } ++ else ++#endif /* MBS_SUPPORT */ + beg += offset; + end = memchr (beg, eol, buflim - beg); + end++; ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && bytes_left) ++ continue; ++#endif /* MBS_SUPPORT */ + while (beg > buf && beg[-1] != eol) + --beg; + } +@@ -469,15 +514,6 @@ + } /* for (beg = end ..) */ + + failure: +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- { +- if (mb_properties) +- free (mb_properties); +- if (match_icase) +- free ((char *) buf); +- } +-#endif /* MBS_SUPPORT */ + return (size_t) -1; + + success_in_beg_and_end: +@@ -486,24 +522,144 @@ + /* FALLTHROUGH */ + + success_in_start_and_len: +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- { +- if (mb_properties) +- free (mb_properties); +- if (match_icase) +- free ((char *) buf); +- } +-#endif /* MBS_SUPPORT */ + *match_size = len; + return start; + } + ++#ifdef MBS_SUPPORT ++static int f_i_multibyte; /* whether we're using the new -Fi MB method */ ++static struct ++{ ++ wchar_t **patterns; ++ size_t count, maxlen; ++ unsigned char *match; ++} Fimb; ++#endif ++ + static void + Fcompile (char const *pattern, size_t size) + { ++ int mb_cur_max = MB_CUR_MAX; + char const *beg, *lim, *err; + ++ check_utf8 (); ++#ifdef MBS_SUPPORT ++ /* Support -F -i for UTF-8 input. */ ++ if (match_icase && mb_cur_max > 1) ++ { ++ mbstate_t mbs; ++ wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t)); ++ const char *patternend = pattern; ++ size_t wcsize; ++ kwset_t fimb_kwset = NULL; ++ char *starts = NULL; ++ wchar_t *wcbeg, *wclim; ++ size_t allocated = 0; ++ ++ memset (&mbs, '\0', sizeof (mbs)); ++# ifdef __GNU_LIBRARY__ ++ wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs); ++ if (patternend != pattern + size) ++ wcsize = (size_t) -1; ++# else ++ { ++ char *patterncopy = xmalloc (size + 1); ++ ++ memcpy (patterncopy, pattern, size); ++ patterncopy[size] = '\0'; ++ patternend = patterncopy; ++ wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs); ++ if (patternend != patterncopy + size) ++ wcsize = (size_t) -1; ++ free (patterncopy); ++ } ++# endif ++ if (wcsize + 2 <= 2) ++ { ++fimb_fail: ++ free (wcpattern); ++ free (starts); ++ if (fimb_kwset) ++ kwsfree (fimb_kwset); ++ free (Fimb.patterns); ++ Fimb.patterns = NULL; ++ } ++ else ++ { ++ if (!(fimb_kwset = kwsalloc (NULL))) ++ error (2, 0, _("memory exhausted")); ++ ++ starts = xmalloc (mb_cur_max * 3); ++ wcbeg = wcpattern; ++ do ++ { ++ int i; ++ size_t wclen; ++ ++ if (Fimb.count >= allocated) ++ { ++ if (allocated == 0) ++ allocated = 128; ++ else ++ allocated *= 2; ++ Fimb.patterns = xrealloc (Fimb.patterns, ++ sizeof (wchar_t *) * allocated); ++ } ++ Fimb.patterns[Fimb.count++] = wcbeg; ++ for (wclim = wcbeg; ++ wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim) ++ *wclim = towlower (*wclim); ++ *wclim = L'\0'; ++ wclen = wclim - wcbeg; ++ if (wclen > Fimb.maxlen) ++ Fimb.maxlen = wclen; ++ if (wclen > 3) ++ wclen = 3; ++ if (wclen == 0) ++ { ++ if ((err = kwsincr (fimb_kwset, "", 0)) != 0) ++ error (2, 0, err); ++ } ++ else ++ for (i = 0; i < (1 << wclen); i++) ++ { ++ char *p = starts; ++ int j, k; ++ ++ for (j = 0; j < wclen; ++j) ++ { ++ wchar_t wc = wcbeg[j]; ++ if (i & (1 << j)) ++ { ++ wc = towupper (wc); ++ if (wc == wcbeg[j]) ++ continue; ++ } ++ k = wctomb (p, wc); ++ if (k <= 0) ++ goto fimb_fail; ++ p += k; ++ } ++ if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0) ++ error (2, 0, err); ++ } ++ if (wclim < wcpattern + wcsize) ++ ++wclim; ++ wcbeg = wclim; ++ } ++ while (wcbeg < wcpattern + wcsize); ++ f_i_multibyte = 1; ++ kwset = fimb_kwset; ++ free (starts); ++ Fimb.match = xmalloc (Fimb.count); ++ if ((err = kwsprep (kwset)) != 0) ++ error (2, 0, err); ++ return; ++ } ++ } ++#endif /* MBS_SUPPORT */ ++ ++ + kwsinit (); + beg = pattern; + do +@@ -522,6 +678,76 @@ + error (2, 0, err); + } + ++#ifdef MBS_SUPPORT ++static int ++Fimbexec (const char *buf, size_t size, size_t *plen, int exact) ++{ ++ size_t len, letter, i; ++ int ret = -1; ++ mbstate_t mbs; ++ wchar_t wc; ++ int patterns_left; ++ ++ assert (match_icase && f_i_multibyte == 1); ++ assert (MB_CUR_MAX > 1); ++ ++ memset (&mbs, '\0', sizeof (mbs)); ++ memset (Fimb.match, '\1', Fimb.count); ++ letter = len = 0; ++ patterns_left = 1; ++ while (patterns_left && len <= size) ++ { ++ size_t c; ++ ++ patterns_left = 0; ++ if (len < size) ++ { ++ c = mbrtowc (&wc, buf + len, size - len, &mbs); ++ if (c + 2 <= 2) ++ return ret; ++ ++ wc = towlower (wc); ++ } ++ else ++ { ++ c = 1; ++ wc = L'\0'; ++ } ++ ++ for (i = 0; i < Fimb.count; i++) ++ { ++ if (Fimb.match[i]) ++ { ++ if (Fimb.patterns[i][letter] == L'\0') ++ { ++ /* Found a match. */ ++ *plen = len; ++ if (!exact && !match_words) ++ return 0; ++ else ++ { ++ /* For -w or exact look for longest match. */ ++ ret = 0; ++ Fimb.match[i] = '\0'; ++ continue; ++ } ++ } ++ ++ if (Fimb.patterns[i][letter] == wc) ++ patterns_left = 1; ++ else ++ Fimb.match[i] = '\0'; ++ } ++ } ++ ++ len += c; ++ letter++; ++ } ++ ++ return ret; ++} ++#endif /* MBS_SUPPORT */ ++ + static size_t + Fexecute (char const *buf, size_t size, size_t *match_size, int exact) + { +@@ -531,80 +757,258 @@ + struct kwsmatch kwsmatch; + size_t ret_val; + #ifdef MBS_SUPPORT +- char *mb_properties = NULL; +- if (MB_CUR_MAX > 1) +- { +- if (match_icase) +- { +- char *case_buf = xmalloc(size); +- memcpy(case_buf, buf, size); +- buf = case_buf; +- } +- mb_properties = check_multibyte_string(buf, size); +- } ++ int mb_cur_max = MB_CUR_MAX; ++ mbstate_t mbs; ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ const char *last_char = NULL; + #endif /* MBS_SUPPORT */ + + for (beg = buf; beg <= buf + size; ++beg) + { +- size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); ++ size_t offset; ++ offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); ++ + if (offset == (size_t) -1) + goto failure; + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) +- continue; /* It is a part of multibyte character. */ ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ size_t bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ ++ last_char = beg; ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ /* Offset points inside multibyte character: no good. */ ++ break; ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ ++ if (bytes_left) ++ continue; ++ } ++ else + #endif /* MBS_SUPPORT */ + beg += offset; ++#ifdef MBS_SUPPORT ++ /* For f_i_multibyte, the string at beg now matches first 3 chars of ++ one of the search strings (less if there are shorter search strings). ++ See if this is a real match. */ ++ if (f_i_multibyte ++ && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], exact)) ++ goto next_char; ++#endif /* MBS_SUPPORT */ + len = kwsmatch.size[0]; + if (exact && !match_words) + goto success_in_beg_and_len; + if (match_lines) + { + if (beg > buf && beg[-1] != eol) +- continue; ++ goto next_char; + if (beg + len < buf + size && beg[len] != eol) +- continue; ++ goto next_char; + goto success; + } + else if (match_words) +- for (try = beg; len; ) +- { +- if (try > buf && WCHAR((unsigned char) try[-1])) +- break; +- if (try + len < buf + size && WCHAR((unsigned char) try[len])) +- { +- offset = kwsexec (kwset, beg, --len, &kwsmatch); +- if (offset == (size_t) -1) +- { ++ { ++ while (len) ++ { ++ int word_match = 0; ++ if (beg > buf) ++ { + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- free (mb_properties); ++ if (mb_cur_max > 1) ++ { ++ const char *s; ++ int mr; ++ wchar_t pwc; ++ ++ if (using_utf8) ++ { ++ s = beg - 1; ++ while (s > buf ++ && (unsigned char) *s >= 0x80 ++ && (unsigned char) *s <= 0xbf) ++ --s; ++ } ++ else ++ s = last_char; ++ mr = mbtowc (&pwc, s, beg - s); ++ if (mr <= 0) ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ else if ((iswalnum (pwc) || pwc == L'_') ++ && mr == (int) (beg - s)) ++ goto next_char; ++ } ++ else + #endif /* MBS_SUPPORT */ +- return offset; +- } +- try = beg + offset; +- len = kwsmatch.size[0]; +- } +- else +- goto success; +- } ++ if (WCHAR ((unsigned char) beg[-1])) ++ goto next_char; ++ } ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1) ++ { ++ wchar_t nwc; ++ int mr; ++ ++ mr = mbtowc (&nwc, beg + len, buf + size - beg - len); ++ if (mr <= 0) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ word_match = 1; ++ } ++ else if (!iswalnum (nwc) && nwc != L'_') ++ word_match = 1; ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len])) ++ word_match = 1; ++ if (word_match) ++ { ++ if (!exact) ++ /* Returns the whole line now we know there's a word match. */ ++ goto success; ++ else ++ /* Returns just this word match. */ ++ goto success_in_beg_and_len; ++ } ++ if (len > 0) ++ { ++ /* Try a shorter length anchored at the same place. */ ++ --len; ++ offset = kwsexec (kwset, beg, len, &kwsmatch); ++ ++ if (offset == -1) ++ goto next_char; /* Try a different anchor. */ ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ size_t bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ ++ last_char = beg; ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ { ++ /* Offset points inside multibyte character: ++ * no good. */ ++ break; ++ } ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ ++ if (bytes_left) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ goto next_char; /* Try a different anchor. */ ++ } ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ beg += offset; ++#ifdef MBS_SUPPORT ++ /* The string at beg now matches first 3 chars of one of ++ the search strings (less if there are shorter search ++ strings). See if this is a real match. */ ++ if (f_i_multibyte ++ && Fimbexec (beg, len - offset, &kwsmatch.size[0], ++ exact)) ++ goto next_char; ++#endif /* MBS_SUPPORT */ ++ len = kwsmatch.size[0]; ++ } ++ } ++ } + else + goto success; ++next_char:; ++#ifdef MBS_SUPPORT ++ /* Advance to next character. For MB_CUR_MAX == 1 case this is handled ++ by ++beg above. */ ++ if (mb_cur_max > 1) ++ { ++ if (using_utf8) ++ { ++ unsigned char c = *beg; ++ if (c >= 0xc2) ++ { ++ if (c < 0xe0) ++ ++beg; ++ else if (c < 0xf0) ++ beg += 2; ++ else if (c < 0xf8) ++ beg += 3; ++ else if (c < 0xfc) ++ beg += 4; ++ else if (c < 0xfe) ++ beg += 5; ++ } ++ } ++ else ++ { ++ size_t l = mbrlen (beg, buf + size - beg, &mbs); ++ ++ last_char = beg; ++ if (l + 2 >= 2) ++ beg += l - 1; ++ else ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ } ++ } ++#endif /* MBS_SUPPORT */ + } + + failure: ++ return -1; ++ ++ success: + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) ++ if (mb_cur_max > 1 && !using_utf8) + { +- if (match_icase) +- free((char *) buf); +- if (mb_properties) +- free(mb_properties); ++ end = beg + len; ++ while (end < buf + size) ++ { ++ size_t mlen = mbrlen (end, buf + size - end, &mbs); ++ if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ mlen = 1; ++ } ++ if (mlen == 1 && *end == eol) ++ break; ++ ++ end += mlen; ++ } + } ++ else + #endif /* MBS_SUPPORT */ +- return -1; +- +- success: + end = memchr (beg + len, eol, (buf + size) - (beg + len)); ++ + end++; + while (buf < beg && beg[-1] != eol) + --beg; +@@ -613,15 +1017,6 @@ + + success_in_beg_and_len: + *match_size = len; +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- { +- if (mb_properties) +- free (mb_properties); +- if (match_icase) +- free ((char *) buf); +- } +-#endif /* MBS_SUPPORT */ + return beg - buf; + } + diff --git a/abs/core-testing/grep/10-dfa-optional.patch b/abs/core-testing/grep/10-dfa-optional.patch new file mode 100644 index 0000000..784eba9 --- /dev/null +++ b/abs/core-testing/grep/10-dfa-optional.patch @@ -0,0 +1,67 @@ +--- grep-2.5.1a/src/search.c.dfa-optional 2005-01-07 14:58:45.714869815 +0000 ++++ grep-2.5.1a/src/search.c 2005-01-07 14:58:45.725867716 +0000 +@@ -327,12 +327,34 @@ + int backref, start, len; + struct kwsmatch kwsm; + size_t i, ret_val; ++ static int use_dfa; ++ static int use_dfa_checked = 0; + #ifdef MBS_SUPPORT + int mb_cur_max = MB_CUR_MAX; + mbstate_t mbs; + memset (&mbs, '\0', sizeof (mbstate_t)); + #endif /* MBS_SUPPORT */ + ++ if (!use_dfa_checked) ++ { ++ char *grep_use_dfa = getenv ("GREP_USE_DFA"); ++ if (!grep_use_dfa) ++ { ++#ifdef MBS_SUPPORT ++ /* Turn off DFA when processing multibyte input. */ ++ use_dfa = (MB_CUR_MAX == 1); ++#else ++ use_dfa = 1; ++#endif /* MBS_SUPPORT */ ++ } ++ else ++ { ++ use_dfa = atoi (grep_use_dfa); ++ } ++ ++ use_dfa_checked = 1; ++ } ++ + buflim = buf + size; + + for (beg = end = buf; end < buflim; beg = end) +@@ -400,7 +422,8 @@ + #endif /* MBS_SUPPORT */ + (kwsm.index < kwset_exact_matches)) + goto success_in_beg_and_end; +- if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) ++ if (use_dfa && ++ dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) + continue; + } + else +@@ -409,7 +432,9 @@ + #ifdef MBS_SUPPORT + size_t bytes_left = 0; + #endif /* MBS_SUPPORT */ +- size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); ++ size_t offset = 0; ++ if (use_dfa) ++ offset = dfaexec (&dfa, beg, buflim - beg, &backref); + if (offset == (size_t) -1) + break; + /* Narrow down to the line we've found. */ +@@ -451,7 +476,7 @@ + --beg; + } + /* Successful, no backreferences encountered! */ +- if (!backref) ++ if (use_dfa && !backref) + goto success_in_beg_and_end; + } + else diff --git a/abs/core-testing/grep/11-tests.patch b/abs/core-testing/grep/11-tests.patch new file mode 100644 index 0000000..2934a21 --- /dev/null +++ b/abs/core-testing/grep/11-tests.patch @@ -0,0 +1,138 @@ +--- grep-2.5.1/tests/Makefile.am.jj 2001-03-07 05:11:27.000000000 +0100 ++++ grep-2.5.1/tests/Makefile.am 2004-12-31 11:42:41.595492300 +0100 +@@ -3,7 +3,8 @@ + AWK=@AWK@ + + TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \ +- status.sh empty.sh options.sh backref.sh file.sh ++ status.sh empty.sh options.sh backref.sh file.sh \ ++ fmbtest.sh + EXTRA_DIST = $(TESTS) \ + khadafy.lines khadafy.regexp \ + spencer1.awk spencer1.tests \ +--- grep-2.5.1/tests/fmbtest.sh 2004-12-31 13:30:23.942871250 +0100 ++++ grep-2.5.1/tests/fmbtest.sh 2004-12-31 14:09:13.219463855 +0100 +@@ -0,0 +1,111 @@ ++#!/bin/sh ++ ++: ${srcdir=.} ++ ++# If cs_CZ.UTF-8 locale doesn't work, skip this test silently ++LC_ALL=cs_CZ.UTF-8 locale -k LC_CTYPE 2>/dev/null | ${GREP} -q charmap.*UTF-8 \ ++ || exit 77 ++ ++failures=0 ++ ++cat > csinput < cspatfile <= 0) + { +- if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) +- && (len == end - beg - 1 +- || !WCHAR ((unsigned char) beg[start + len]))) +- goto success_in_beg_and_end; ++ int lword_match = 0; ++ if (start == 0) ++ lword_match = 1; ++ else ++ { ++ assert (start > 0); ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1) ++ { ++ const char *s; ++ size_t mr; ++ wchar_t pwc; ++ ++ /* Locate the start of the multibyte character ++ before the match position (== beg + start). */ ++ if (using_utf8) ++ { ++ /* UTF-8 is a special case: scan backwards ++ until we find a 7-bit character or a ++ lead byte. */ ++ s = beg + start - 1; ++ while (s > buf ++ && (unsigned char) *s >= 0x80 ++ && (unsigned char) *s <= 0xbf) ++ --s; ++ } ++ else ++ { ++ /* Scan forwards to find the start of the ++ last complete character before the ++ match position. */ ++ size_t bytes_left = start - 1; ++ s = beg; ++ while (bytes_left > 0) ++ { ++ mr = mbrlen (s, bytes_left, &mbs); ++ if (mr == (size_t) -1 || mr == 0) ++ { ++ memset (&mbs, '\0', sizeof (mbs)); ++ s++; ++ bytes_left--; ++ continue; ++ } ++ if (mr == (size_t) -2) ++ { ++ memset (&mbs, '\0', sizeof (mbs)); ++ break; ++ } ++ s += mr; ++ bytes_left -= mr; ++ } ++ } ++ mr = mbrtowc (&pwc, s, beg + start - s, &mbs); ++ if (mr == (size_t) -2 || mr == (size_t) -1 || ++ mr == 0) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ lword_match = 1; ++ } ++ else if (!(iswalnum (pwc) || pwc == L'_') ++ && mr == beg + start - s) ++ lword_match = 1; ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ if (!WCHAR ((unsigned char) beg[start - 1])) ++ lword_match = 1; ++ } ++ ++ if (lword_match) ++ { ++ int rword_match = 0; ++ if (start + len == end - beg - 1) ++ rword_match = 1; ++ else ++ { ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1) ++ { ++ wchar_t nwc; ++ int mr; ++ ++ mr = mbtowc (&nwc, beg + start + len, ++ end - beg - start - len - 1); ++ if (mr <= 0) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ rword_match = 1; ++ } ++ else if (!iswalnum (nwc) && nwc != L'_') ++ rword_match = 1; ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ if (!WCHAR ((unsigned char) beg[start + len])) ++ rword_match = 1; ++ } ++ ++ if (rword_match) ++ { ++ if (!exact) ++ /* Returns the whole line. */ ++ goto success_in_beg_and_end; ++ else ++ /* Returns just this word match. */ ++ goto success_in_start_and_len; ++ } ++ } + if (len > 0) + { + /* Try a shorter length anchored at the same place. */ diff --git a/abs/core-testing/grep/13-P.patch b/abs/core-testing/grep/13-P.patch new file mode 100644 index 0000000..9dca4ad --- /dev/null +++ b/abs/core-testing/grep/13-P.patch @@ -0,0 +1,14 @@ +--- grep-2.5.1a/src/search.c.P 2006-02-03 14:08:00.000000000 +0000 ++++ grep-2.5.1a/src/search.c 2006-02-03 14:11:20.000000000 +0000 +@@ -1234,8 +1234,9 @@ + char eol = eolbyte; + if (!exact) + { +- end = memchr (end, eol, buflim - end); +- end++; ++ while (end < buflim) ++ if (*end++ == eol) ++ break; + while (buf < beg && beg[-1] != eol) + --beg; + } diff --git a/abs/core-testing/grep/14-mem-exhausted.patch b/abs/core-testing/grep/14-mem-exhausted.patch new file mode 100644 index 0000000..d6a996d --- /dev/null +++ b/abs/core-testing/grep/14-mem-exhausted.patch @@ -0,0 +1,15 @@ +--- grep-2.5.1a/src/grep.c.mem-exhausted 2006-11-22 14:49:35.000000000 +0000 ++++ grep-2.5.1a/src/grep.c 2006-11-22 14:53:12.000000000 +0000 +@@ -299,6 +299,12 @@ + int cc = 1; + char *readbuf; + size_t readsize; ++ const size_t max_save = 200 * 1024 * 1024; ++ ++ /* Limit the amount of saved data to 200Mb so we don't fail on ++ * large files. */ ++ if (save > max_save) ++ save = max_save; + + /* Offset from start of buffer to start of old stuff + that we want to save. */ diff --git a/abs/core-testing/grep/15-empty-pattern.patch b/abs/core-testing/grep/15-empty-pattern.patch new file mode 100644 index 0000000..acb702a --- /dev/null +++ b/abs/core-testing/grep/15-empty-pattern.patch @@ -0,0 +1,36 @@ +--- grep-2.5.1a/src/grep.c.empty-pattern 2006-11-22 19:05:43.000000000 +0000 ++++ grep-2.5.1a/src/grep.c 2006-11-22 19:22:04.000000000 +0000 +@@ -1667,9 +1667,6 @@ + out_invert ^= 1; + match_lines = match_words = 0; + } +- else +- /* Strip trailing newline. */ +- --keycc; + } + else + if (optind < argc) +--- grep-2.5.1a/src/search.c.empty-pattern 2006-11-22 19:21:11.000000000 +0000 ++++ grep-2.5.1a/src/search.c 2006-11-22 19:35:06.000000000 +0000 +@@ -204,6 +204,10 @@ + motif = sep; + } while (sep && total != 0); + ++ /* Strip trailing newline. */ ++ if (size && pattern[size - 1] == '\n') ++ size--; ++ + /* In the match_words and match_lines cases, we use a different pattern + for the DFA matcher that will quickly throw out cases that won't work. + Then if DFA succeeds we do some hairy stuff using the regex matcher +@@ -288,6 +292,10 @@ + motif = sep; + } while (sep && total != 0); + ++ /* Strip trailing newline. */ ++ if (size && pattern[size - 1] == '\n') ++ size--; ++ + /* In the match_words and match_lines cases, we use a different pattern + for the DFA matcher that will quickly throw out cases that won't work. + Then if DFA succeeds we do some hairy stuff using the regex matcher diff --git a/abs/core-testing/grep/64-egf-speedup.patch b/abs/core-testing/grep/64-egf-speedup.patch new file mode 100644 index 0000000..a1fa024 --- /dev/null +++ b/abs/core-testing/grep/64-egf-speedup.patch @@ -0,0 +1,791 @@ +--- a/src/search.c.orig ++++ b/src/search.c +@@ -18,10 +18,15 @@ + + /* Written August 1992 by Mike Haertel. */ + ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++#endif + #ifdef HAVE_CONFIG_H + # include + #endif + ++#include ++ + #include + + #include "mbsupport.h" +@@ -43,6 +48,9 @@ + #ifdef HAVE_LIBPCRE + # include + #endif ++#ifdef HAVE_LANGINFO_CODESET ++# include ++#endif + + #define NCHAR (UCHAR_MAX + 1) + +@@ -68,6 +76,19 @@ + error (2, 0, _("memory exhausted")); + } + ++/* UTF-8 encoding allows some optimizations that we can't otherwise ++ assume in a multibyte encoding. */ ++static int using_utf8; ++ ++void ++check_utf8 (void) ++{ ++#ifdef HAVE_LANGINFO_CODESET ++ if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0) ++ using_utf8 = 1; ++#endif ++} ++ + #ifndef FGREP_PROGRAM + /* DFA compiled regexp. */ + static struct dfa dfa; +@@ -134,49 +155,6 @@ + } + #endif /* !FGREP_PROGRAM */ + +-#ifdef MBS_SUPPORT +-/* This function allocate the array which correspond to "buf". +- Then this check multibyte string and mark on the positions which +- are not single byte character nor the first byte of a multibyte +- character. Caller must free the array. */ +-static char* +-check_multibyte_string(char const *buf, size_t size) +-{ +- char *mb_properties = xmalloc(size); +- mbstate_t cur_state; +- wchar_t wc; +- int i; +- +- memset(&cur_state, 0, sizeof(mbstate_t)); +- memset(mb_properties, 0, sizeof(char)*size); +- +- for (i = 0; i < size ;) +- { +- size_t mbclen; +- mbclen = mbrtowc(&wc, buf + i, size - i, &cur_state); +- +- if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) +- { +- /* An invalid sequence, or a truncated multibyte character. +- We treat it as a single byte character. */ +- mbclen = 1; +- } +- else if (match_icase) +- { +- if (iswupper((wint_t)wc)) +- { +- wc = towlower((wint_t)wc); +- wcrtomb(buf + i, wc, &cur_state); +- } +- } +- mb_properties[i] = mbclen; +- i += mbclen; +- } +- +- return mb_properties; +-} +-#endif /* MBS_SUPPORT */ +- + #if defined(GREP_PROGRAM) || defined(EGREP_PROGRAM) + #ifdef EGREP_PROGRAM + COMPILE_FCT(Ecompile) +@@ -193,6 +171,7 @@ + size_t total = size; + char const *motif = pattern; + ++ check_utf8 (); + #if 0 + if (match_icase) + syntax_bits |= RE_ICASE; +@@ -303,20 +282,9 @@ hunk6 + struct kwsmatch kwsm; + size_t i, ret_val; + #ifdef MBS_SUPPORT +- char *mb_properties = NULL; +- if (MB_CUR_MAX > 1) +- { +- if (match_icase) +- { +- char *case_buf = xmalloc(size); +- memcpy(case_buf, buf, size); +- if (start_ptr) +- start_ptr = case_buf + (start_ptr - buf); +- buf = case_buf; +- } +- if (kwset) +- mb_properties = check_multibyte_string(buf, size); +- } ++ int mb_cur_max = MB_CUR_MAX; ++ mbstate_t mbs; ++ memset (&mbs, '\0', sizeof (mbstate_t)); + #endif /* MBS_SUPPORT */ + + buflim = buf + size; +@@ -329,21 +282,63 @@ hunk6 + if (kwset) + { + /* Find a possible match using the KWset matcher. */ +- size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); ++#ifdef MBS_SUPPORT ++ size_t bytes_left = 0; ++#endif /* MBS_SUPPORT */ ++ size_t offset; ++#ifdef MBS_SUPPORT ++ /* kwsexec doesn't work with match_icase and multibyte input. */ ++ if (match_icase && mb_cur_max > 1) ++ /* Avoid kwset */ ++ offset = 0; ++ else ++#endif /* MBS_SUPPORT */ ++ offset = kwsexec (kwset, beg, buflim - beg, &kwsm); + if (offset == (size_t) -1) +- goto failure; ++ return (size_t)-1; ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ /* Offset points inside multibyte character: ++ * no good. */ ++ break; ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ } ++ else ++#endif /* MBS_SUPPORT */ + beg += offset; + /* Narrow down to the line containing the candidate, and + run it through DFA. */ + end = memchr(beg, eol, buflim - beg); + end++; + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) ++ if (mb_cur_max > 1 && bytes_left) + continue; + #endif + while (beg > buf && beg[-1] != eol) + --beg; +- if (kwsm.index < kwset_exact_matches) ++ if ( ++#ifdef MBS_SUPPORT ++ !(match_icase && mb_cur_max > 1) && ++#endif /* MBS_SUPPORT */ ++ (kwsm.index < kwset_exact_matches)) + goto success; + if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) + continue; +@@ -351,13 +363,47 @@ + else + { + /* No good fixed strings; start with DFA. */ ++#ifdef MBS_SUPPORT ++ size_t bytes_left = 0; ++#endif /* MBS_SUPPORT */ + size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); + if (offset == (size_t) -1) + break; + /* Narrow down to the line we've found. */ ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ /* Offset points inside multibyte character: ++ * no good. */ ++ break; ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ } ++ else ++#endif /* MBS_SUPPORT */ + beg += offset; + end = memchr (beg, eol, buflim - beg); + end++; ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && bytes_left) ++ continue; ++#endif /* MBS_SUPPORT */ + while (beg > buf && beg[-1] != eol) + --beg; + } +@@ -475,24 +521,144 @@ + *match_size = len; + ret_val = beg - buf; + out: +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- { +- if (match_icase) +- free((char*)buf); +- if (mb_properties) +- free(mb_properties); +- } +-#endif /* MBS_SUPPORT */ + return ret_val; + } + #endif /* defined(GREP_PROGRAM) || defined(EGREP_PROGRAM) */ + ++#ifdef MBS_SUPPORT ++static int f_i_multibyte; /* whether we're using the new -Fi MB method */ ++static struct ++{ ++ wchar_t **patterns; ++ size_t count, maxlen; ++ unsigned char *match; ++} Fimb; ++#endif ++ + #if defined(GREP_PROGRAM) || defined(FGREP_PROGRAM) + COMPILE_FCT(Fcompile) + { ++ int mb_cur_max = MB_CUR_MAX; + char const *beg, *lim, *err; + ++ check_utf8 (); ++#ifdef MBS_SUPPORT ++ /* Support -F -i for UTF-8 input. */ ++ if (match_icase && mb_cur_max > 1) ++ { ++ mbstate_t mbs; ++ wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t)); ++ const char *patternend = pattern; ++ size_t wcsize; ++ kwset_t fimb_kwset = NULL; ++ char *starts = NULL; ++ wchar_t *wcbeg, *wclim; ++ size_t allocated = 0; ++ ++ memset (&mbs, '\0', sizeof (mbs)); ++# ifdef __GNU_LIBRARY__ ++ wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs); ++ if (patternend != pattern + size) ++ wcsize = (size_t) -1; ++# else ++ { ++ char *patterncopy = xmalloc (size + 1); ++ ++ memcpy (patterncopy, pattern, size); ++ patterncopy[size] = '\0'; ++ patternend = patterncopy; ++ wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs); ++ if (patternend != patterncopy + size) ++ wcsize = (size_t) -1; ++ free (patterncopy); ++ } ++# endif ++ if (wcsize + 2 <= 2) ++ { ++fimb_fail: ++ free (wcpattern); ++ free (starts); ++ if (fimb_kwset) ++ kwsfree (fimb_kwset); ++ free (Fimb.patterns); ++ Fimb.patterns = NULL; ++ } ++ else ++ { ++ if (!(fimb_kwset = kwsalloc (NULL))) ++ error (2, 0, _("memory exhausted")); ++ ++ starts = xmalloc (mb_cur_max * 3); ++ wcbeg = wcpattern; ++ do ++ { ++ int i; ++ size_t wclen; ++ ++ if (Fimb.count >= allocated) ++ { ++ if (allocated == 0) ++ allocated = 128; ++ else ++ allocated *= 2; ++ Fimb.patterns = xrealloc (Fimb.patterns, ++ sizeof (wchar_t *) * allocated); ++ } ++ Fimb.patterns[Fimb.count++] = wcbeg; ++ for (wclim = wcbeg; ++ wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim) ++ *wclim = towlower (*wclim); ++ *wclim = L'\0'; ++ wclen = wclim - wcbeg; ++ if (wclen > Fimb.maxlen) ++ Fimb.maxlen = wclen; ++ if (wclen > 3) ++ wclen = 3; ++ if (wclen == 0) ++ { ++ if ((err = kwsincr (fimb_kwset, "", 0)) != 0) ++ error (2, 0, err); ++ } ++ else ++ for (i = 0; i < (1 << wclen); i++) ++ { ++ char *p = starts; ++ int j, k; ++ ++ for (j = 0; j < wclen; ++j) ++ { ++ wchar_t wc = wcbeg[j]; ++ if (i & (1 << j)) ++ { ++ wc = towupper (wc); ++ if (wc == wcbeg[j]) ++ continue; ++ } ++ k = wctomb (p, wc); ++ if (k <= 0) ++ goto fimb_fail; ++ p += k; ++ } ++ if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0) ++ error (2, 0, err); ++ } ++ if (wclim < wcpattern + wcsize) ++ ++wclim; ++ wcbeg = wclim; ++ } ++ while (wcbeg < wcpattern + wcsize); ++ f_i_multibyte = 1; ++ kwset = fimb_kwset; ++ free (starts); ++ Fimb.match = xmalloc (Fimb.count); ++ if ((err = kwsprep (kwset)) != 0) ++ error (2, 0, err); ++ return; ++ } ++ } ++#endif /* MBS_SUPPORT */ ++ ++ + kwsinit (); + beg = pattern; + do +@@ -511,6 +677,76 @@ + error (2, 0, err); + } + ++#ifdef MBS_SUPPORT ++static int ++Fimbexec (const char *buf, size_t size, size_t *plen, int exact) ++{ ++ size_t len, letter, i; ++ int ret = -1; ++ mbstate_t mbs; ++ wchar_t wc; ++ int patterns_left; ++ ++ assert (match_icase && f_i_multibyte == 1); ++ assert (MB_CUR_MAX > 1); ++ ++ memset (&mbs, '\0', sizeof (mbs)); ++ memset (Fimb.match, '\1', Fimb.count); ++ letter = len = 0; ++ patterns_left = 1; ++ while (patterns_left && len <= size) ++ { ++ size_t c; ++ ++ patterns_left = 0; ++ if (len < size) ++ { ++ c = mbrtowc (&wc, buf + len, size - len, &mbs); ++ if (c + 2 <= 2) ++ return ret; ++ ++ wc = towlower (wc); ++ } ++ else ++ { ++ c = 1; ++ wc = L'\0'; ++ } ++ ++ for (i = 0; i < Fimb.count; i++) ++ { ++ if (Fimb.match[i]) ++ { ++ if (Fimb.patterns[i][letter] == L'\0') ++ { ++ /* Found a match. */ ++ *plen = len; ++ if (!exact && !match_words) ++ return 0; ++ else ++ { ++ /* For -w or exact look for longest match. */ ++ ret = 0; ++ Fimb.match[i] = '\0'; ++ continue; ++ } ++ } ++ ++ if (Fimb.patterns[i][letter] == wc) ++ patterns_left = 1; ++ else ++ Fimb.match[i] = '\0'; ++ } ++ } ++ ++ len += c; ++ letter++; ++ } ++ ++ return ret; ++} ++#endif /* MBS_SUPPORT */ ++ + EXECUTE_FCT(Fexecute) + { + register char const *beg, *try, *end; +@@ -519,69 +755,256 @@ + struct kwsmatch kwsmatch; + size_t ret_val; + #ifdef MBS_SUPPORT +- char *mb_properties = NULL; +- if (MB_CUR_MAX > 1) +- { +- if (match_icase) +- { +- char *case_buf = xmalloc(size); +- memcpy(case_buf, buf, size); +- if (start_ptr) +- start_ptr = case_buf + (start_ptr - buf); +- buf = case_buf; +- } +- mb_properties = check_multibyte_string(buf, size); +- } ++ int mb_cur_max = MB_CUR_MAX; ++ mbstate_t mbs; ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ const char *last_char = NULL; + #endif /* MBS_SUPPORT */ + + for (beg = start_ptr ? start_ptr : buf; beg <= buf + size; beg++) + { + size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); + if (offset == (size_t) -1) +- goto failure; ++ return offset; + #ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) +- continue; /* It is a part of multibyte character. */ ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ size_t bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ ++ last_char = beg; ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ /* Offset points inside multibyte character: no good. */ ++ break; ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ ++ if (bytes_left) ++ continue; ++ } ++ else + #endif /* MBS_SUPPORT */ + beg += offset; ++#ifdef MBS_SUPPORT ++ /* For f_i_multibyte, the string at beg now matches first 3 chars of ++ one of the search strings (less if there are shorter search strings). ++ See if this is a real match. */ ++ if (f_i_multibyte ++ && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], start_ptr == NULL)) ++ goto next_char; ++#endif /* MBS_SUPPORT */ + len = kwsmatch.size[0]; + if (start_ptr && !match_words) + goto success_in_beg_and_len; + if (match_lines) + { + if (beg > buf && beg[-1] != eol) +- continue; ++ goto next_char; + if (beg + len < buf + size && beg[len] != eol) +- continue; ++ goto next_char; + goto success; + } + else if (match_words) +- for (try = beg; len; ) +- { +- if (try > buf && WCHAR((unsigned char) try[-1])) +- break; +- if (try + len < buf + size && WCHAR((unsigned char) try[len])) +- { +- offset = kwsexec (kwset, beg, --len, &kwsmatch); +- if (offset == (size_t) -1) +- break; +- try = beg + offset; +- len = kwsmatch.size[0]; +- } +- else if (!start_ptr) +- goto success; +- else +- goto success_in_beg_and_len; +- } /* for (try) */ +- else +- goto success; +- } /* for (beg in buf) */ ++ { ++ while (len) ++ { ++ int word_match = 0; ++ if (beg > buf) ++ { ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1) ++ { ++ const char *s; ++ int mr; ++ wchar_t pwc; ++ ++ if (using_utf8) ++ { ++ s = beg - 1; ++ while (s > buf ++ && (unsigned char) *s >= 0x80 ++ && (unsigned char) *s <= 0xbf) ++ --s; ++ } ++ else ++ s = last_char; ++ mr = mbtowc (&pwc, s, beg - s); ++ if (mr <= 0) ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ else if ((iswalnum (pwc) || pwc == L'_') ++ && mr == (int) (beg - s)) ++ goto next_char; ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ if (WCHAR ((unsigned char) beg[-1])) ++ goto next_char; ++ } ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1) ++ { ++ wchar_t nwc; ++ int mr; + +- failure: +- ret_val = -1; +- goto out; ++ mr = mbtowc (&nwc, beg + len, buf + size - beg - len); ++ if (mr <= 0) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ word_match = 1; ++ } ++ else if (!iswalnum (nwc) && nwc != L'_') ++ word_match = 1; ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len])) ++ word_match = 1; ++ if (word_match) ++ { ++ if (start_ptr == NULL) ++ /* Returns the whole line now we know there's a word match. */ ++ goto success; ++ else { ++ /* Returns just this word match. */ ++ *match_size = len; ++ return beg - buf; ++ } ++ } ++ if (len > 0) ++ { ++ /* Try a shorter length anchored at the same place. */ ++ --len; ++ offset = kwsexec (kwset, beg, len, &kwsmatch); ++ ++ if (offset == -1) ++ goto next_char; /* Try a different anchor. */ ++#ifdef MBS_SUPPORT ++ ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ size_t bytes_left = offset; ++ while (bytes_left) ++ { ++ size_t mlen = mbrlen (beg, bytes_left, &mbs); ++ ++ last_char = beg; ++ if (mlen == (size_t) -1 || mlen == 0) ++ { ++ /* Incomplete character: treat as single-byte. */ ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ beg++; ++ bytes_left--; ++ continue; ++ } ++ ++ if (mlen == (size_t) -2) ++ { ++ /* Offset points inside multibyte character: ++ * no good. */ ++ break; ++ } ++ ++ beg += mlen; ++ bytes_left -= mlen; ++ } ++ ++ if (bytes_left) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ goto next_char; /* Try a different anchor. */ ++ } ++ } ++ else ++#endif /* MBS_SUPPORT */ ++ beg += offset; ++#ifdef MBS_SUPPORT ++ /* The string at beg now matches first 3 chars of one of ++ the search strings (less if there are shorter search ++ strings). See if this is a real match. */ ++ if (f_i_multibyte ++ && Fimbexec (beg, len - offset, &kwsmatch.size[0], ++ start_ptr == NULL)) ++ goto next_char; ++#endif /* MBS_SUPPORT */ ++ len = kwsmatch.size[0]; ++ } ++ } ++ } ++ else ++ goto success; ++next_char:; ++#ifdef MBS_SUPPORT ++ /* Advance to next character. For MB_CUR_MAX == 1 case this is handled ++ by ++beg above. */ ++ if (mb_cur_max > 1) ++ { ++ if (using_utf8) ++ { ++ unsigned char c = *beg; ++ if (c >= 0xc2) ++ { ++ if (c < 0xe0) ++ ++beg; ++ else if (c < 0xf0) ++ beg += 2; ++ else if (c < 0xf8) ++ beg += 3; ++ else if (c < 0xfc) ++ beg += 4; ++ else if (c < 0xfe) ++ beg += 5; ++ } ++ } ++ else ++ { ++ size_t l = mbrlen (beg, buf + size - beg, &mbs); ++ ++ last_char = beg; ++ if (l + 2 >= 2) ++ beg += l - 1; ++ else ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ } ++ } ++#endif /* MBS_SUPPORT */ ++ } ++ ++ return -1; + + success: ++#ifdef MBS_SUPPORT ++ if (mb_cur_max > 1 && !using_utf8) ++ { ++ end = beg + len; ++ while (end < buf + size) ++ { ++ size_t mlen = mbrlen (end, buf + size - end, &mbs); ++ if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0) ++ { ++ memset (&mbs, '\0', sizeof (mbstate_t)); ++ mlen = 1; ++ } ++ if (mlen == 1 && *end == eol) ++ break; ++ ++ end += mlen; ++ } ++ } ++ else ++ #endif /* MBS_SUPPORT */ + end = memchr (beg + len, eol, (buf + size) - (beg + len)); + end++; + while (buf < beg && beg[-1] != eol) +@@ -591,15 +1016,6 @@ + *match_size = len; + ret_val = beg - buf; + out: +-#ifdef MBS_SUPPORT +- if (MB_CUR_MAX > 1) +- { +- if (match_icase) +- free((char*)buf); +- if (mb_properties) +- free(mb_properties); +- } +-#endif /* MBS_SUPPORT */ + return ret_val; + } + #endif /* defined(GREP_PROGRAM) || defined(FGREP_PROGRAM) */ diff --git a/abs/core-testing/grep/PKGBUILD b/abs/core-testing/grep/PKGBUILD new file mode 100644 index 0000000..168d2d3 --- /dev/null +++ b/abs/core-testing/grep/PKGBUILD @@ -0,0 +1,50 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=grep +pkgver=2.5.3 +pkgrel=12 +pkgdesc="A string search utility" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.gnu.org/software/grep/grep.html" +groups=('base') +depends=('glibc' 'pcre') +makedepends=('texinfo>=4.8a') +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz + # patches from fedora cvs + #01-fgrep.patch + #02-bracket.patch + #03-i18n.patch + #04-oi.patch + #05-manpage.patch + #06-color.patch + #07-icolor.patch + #08-skip.patch + #09-egf-speedup.patch + #10-dfa-optional.patch + #11-tests.patch + #12-w.patch + #13-P.patch + 14-mem-exhausted.patch + 15-empty-pattern.patch + 64-egf-speedup.patch +) +md5sums=('4f371f25f413f700fb1984b878421f9d' + 'bc937da562d468f32c1fef2894610283' + 'f421415b679ebcc9152797caaa0b1d51' + 'efbe9d49d71a74092db6b86224b09fdd') + + + +build() { + cd $startdir/src/$pkgname-$pkgver + for i in ../*.patch; do + patch -Np1 -i ../$i + done + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$startdir/pkg install + mkdir $startdir/pkg/bin + mv $startdir/pkg/usr/bin/*grep $startdir/pkg/bin/ + rmdir $startdir/pkg/usr/bin +} diff --git a/abs/core-testing/groff/PKGBUILD b/abs/core-testing/groff/PKGBUILD new file mode 100644 index 0000000..5183acc --- /dev/null +++ b/abs/core-testing/groff/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=groff +pkgver=1.19.2 +pkgrel=13 +pkgdesc="GNU troff text-formatting system" +arch=(i686 x86_64) +url="http://www.gnu.org/software/groff/groff.html" +license=('GPL') +groups=('base') +depends=('perl' 'gcc-libs') +source=(ftp://ftp.gnu.org/gnu/groff/groff-$pkgver.tar.gz + man-utf8.tmac) +md5sums=('f7c9cf2e4b9967d3af167d7c9fadaae4' + 'faefbef2b05ee5438b632464607c6cc4') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr --without-x + mkdir -p $startdir/pkg/usr + make -j1 || return 1 + make prefix=$startdir/pkg/usr install + cd $startdir/pkg/usr/bin + # needed for xman + ln -s eqn geqn + ln -s tbl gtbl + ln -s soelim zsoelim + rm -rf $startdir/pkg/usr/lib + + # Fix some issues when encoding to utf8 man pages + # The output chars don't match keyboard chars... + cat $startdir/src/man-utf8.tmac >> \ + $startdir/pkg/usr/share/groff/site-tmac/man.local +} diff --git a/abs/core-testing/groff/man-utf8.tmac b/abs/core-testing/groff/man-utf8.tmac new file mode 100644 index 0000000..17c0983 --- /dev/null +++ b/abs/core-testing/groff/man-utf8.tmac @@ -0,0 +1,9 @@ +.\" This file is loaded after an-old.tmac. +.\" Put any local modifications to an-old.tmac here. + +.if '\*[.T]'utf8' \ +. char \- \N'45' +. char - \N'45' +. char ' \N'39' +.. + diff --git a/abs/core-testing/grub/040_all_grub-0.96-nxstack.patch b/abs/core-testing/grub/040_all_grub-0.96-nxstack.patch new file mode 100644 index 0000000..121941c --- /dev/null +++ b/abs/core-testing/grub/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 + #include + #include ++#include + + #ifdef __linux__ + # include /* 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/core-testing/grub/05-grub-0.97-initrdaddr.diff b/abs/core-testing/grub/05-grub-0.97-initrdaddr.diff new file mode 100644 index 0000000..ccf5f3e --- /dev/null +++ b/abs/core-testing/grub/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/core-testing/grub/PKGBUILD b/abs/core-testing/grub/PKGBUILD new file mode 100644 index 0000000..398d782 --- /dev/null +++ b/abs/core-testing/grub/PKGBUILD @@ -0,0 +1,81 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd + +pkgname=grub +pkgver=0.97 +pkgrel=21 +pkgdesc="A GNU multiboot boot loader" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.gnu.org/software/grub/" +groups=('base') +depends=('ncurses' 'diffutils' 'sed') +source=(ftp://alpha.gnu.org/gnu/grub/grub-$pkgver.tar.gz + menu.lst + install-grub + 040_all_grub-0.96-nxstack.patch + 05-grub-0.97-initrdaddr.diff + i2o.patch + special-devices.patch + more-raid.patch + intelmac.patch + grub-inode-size.patch + grub-0.97-gpt.patch) +backup=('boot/grub/menu.lst') +md5sums=('cd3f3eb54446be6003156158d51f4884' + 'cce52ae9ee1f8686cd700b3c967e78f9' + '3182c4ae4963a16930bc772bba89dacf' + 'eb9d69c46af3a0667c1f651817d7f075' + 'ccd2d757e79e3a03dc19ede7391ed328' + '826fdbf446067f9861baf9f6a69a4583' + '49f6d4bcced0bc8bbcff273f3254bbfa' + 'f41f702014a064918d7afc6fc23baa6e' + '175dc6b9f4ab94e8056c3afb3e34460a' + 'ada26cbc681907823cc4ff2a55b97866' + '52cd09a6966f12961d11f7b3b7e76bd2') + +build() { + cd $startdir/src/$pkgname-$pkgver + + #set destination architecture here + DESTARCH="i686" + #DESTARCH="x86_64" + + # 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 + # Add support for bigger inode size to e2fs_stage1_5 + patch -Np1 -i ../grub-inode-size.patch || return 1 + # Add gpt support + # http://bugs.archlinux.org/task/9864 + patch -Np1 -i ../grub-0.97-gpt.patch || return 1 + + #arch64 fixes for static build + if [ "$CARCH" = "x86_64" ]; then + echo "this package has to be built 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 + + if [ "$DESTARCH" = "x86_64" ]; then + # fool makepkg into building a x86_64 package + export CARCH="x86_64" + fi +} diff --git a/abs/core-testing/grub/grub-0.97-gpt.patch b/abs/core-testing/grub/grub-0.97-gpt.patch new file mode 100644 index 0000000..7b1a55c --- /dev/null +++ b/abs/core-testing/grub/grub-0.97-gpt.patch @@ -0,0 +1,315 @@ +diff -ruBbd --unidirectional-new-file grub-0.96/stage2/builtins.c grub-0.96-patched/stage2/builtins.c +--- grub-0.96/stage2/builtins.c 2004-06-20 09:33:04.000000000 -0400 ++++ grub-0.96-patched/stage2/builtins.c 2007-01-04 13:56:06.000000000 -0500 +@@ -1229,14 +1229,15 @@ + for (drive = 0x80; drive < 0x88; drive++) + { + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int type, entry; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int type, entry, gpt_count, gpt_size; + char buf[SECTOR_SIZE]; + + current_drive = drive; + while (next_partition (drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, buf)) ++ &ext_offset, &gpt_offset, ++ &gpt_count, &gpt_size, buf)) + { + if (type != PC_SLICE_TYPE_NONE + && ! IS_PC_SLICE_TYPE_BSD (type) +@@ -2806,8 +2807,8 @@ + { + int new_type; + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int entry, type; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int entry, type, gpt_count, gpt_size; + char mbr[512]; + + /* Get the drive and the partition. */ +@@ -2844,7 +2845,14 @@ + /* Look for the partition. */ + while (next_partition (current_drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, mbr)) ++ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) ++ /* The partition may not be a GPT partition. */ ++ if (gpt_offset != 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ + { + if (part == current_partition) + { +diff -ruBbd --unidirectional-new-file grub-0.96/stage2/disk_io.c grub-0.96-patched/stage2/disk_io.c +--- grub-0.96/stage2/disk_io.c 2004-05-23 12:35:24.000000000 -0400 ++++ grub-0.96-patched/stage2/disk_io.c 2007-01-04 14:01:08.000000000 -0500 +@@ -21,6 +21,7 @@ + + #include + #include ++#include + + #ifdef SUPPORT_NETBOOT + # define GRUB 1 +@@ -502,8 +503,8 @@ + set_partition_hidden_flag (int hidden) + { + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int entry, type; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int entry, type, gpt_count, gpt_size; + char mbr[512]; + + /* The drive must be a hard disk. */ +@@ -524,7 +525,14 @@ + /* Look for the partition. */ + while (next_partition (current_drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, mbr)) ++ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) ++ /* The partition may not be a GPT partition. */ ++ if (gpt_offset != 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ + { + if (part == current_partition) + { +@@ -577,11 +585,14 @@ + unsigned long *partition, int *type, + unsigned long *start, unsigned long *len, + unsigned long *offset, int *entry, +- unsigned long *ext_offset, char *buf) ++ unsigned long *ext_offset, ++ unsigned long *gpt_offset, int *gpt_count, ++ int *gpt_size, char *buf) + { + /* Forward declarations. */ + auto int next_bsd_partition (void); + auto int next_pc_slice (void); ++ auto int next_gpt_slice(void); + + /* Get next BSD partition in current PC slice. */ + int next_bsd_partition (void) +@@ -666,6 +677,40 @@ + return 0; + } + ++ /* If this is a GPT partition table, read it as such. */ ++ if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT) ++ { ++ struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf; ++ ++ /* Read in the GPT Partition table header. */ ++ if (! rawread (drive, 1, 0, SECTOR_SIZE, buf)) ++ return 0; ++ ++ if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000) ++ { ++ /* Let gpt_offset point to the first entry in the GPT ++ partition table. This can also be used by callers of ++ next_partition to determine if a entry comes from a ++ GPT partition table or not. */ ++ *gpt_offset = hdr->partitions; ++ *gpt_count = hdr->maxpart; ++ *gpt_size = hdr->partentry_size; ++ ++ return next_gpt_slice(); ++ } ++ else ++ { ++ /* This is not a valid header for a GPT partition table. ++ Re-read the MBR or the boot sector of the extended ++ partition. */ ++ if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf)) ++ return 0; ++ } ++ } ++ ++ /* Not a GPT partition. */ ++ *gpt_offset = 0; ++ + /* Increase the entry number. */ + (*entry)++; + +@@ -710,6 +755,43 @@ + return 1; + } + ++ /* Get the next GPT slice. */ ++ int next_gpt_slice (void) ++ { ++ struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf; ++ /* Make GPT partitions show up as PC slices. */ ++ int pc_slice_no = (*partition & 0xFF0000) >> 16; ++ ++ /* If this is the first time... */ ++ if (pc_slice_no == 0xFF) ++ { ++ pc_slice_no = -1; ++ *entry = -1; ++ } ++ ++ do { ++ (*entry)++; ++ ++ if (*entry >= *gpt_count) ++ { ++ errnum = ERR_NO_PART; ++ return 0; ++ } ++ /* Read in the GPT Partition table entry. */ ++ if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (*gpt_size, *entry), GPT_ENTRY_INDEX (*gpt_size, *entry), *gpt_size, buf)) ++ return 0; ++ } while (! (gptentry->type1 && gptentry->type2)); ++ ++ pc_slice_no++; ++ *start = gptentry->start; ++ *len = gptentry->end - gptentry->start + 1; ++ *type = PC_SLICE_TYPE_EXT2FS; ++ *entry = pc_slice_no; ++ *partition = (*entry << 16) | 0xFFFF; ++ ++ return 1; ++ } ++ + /* Start the body of this function. */ + + #ifndef STAGE1_5 +@@ -717,6 +799,9 @@ + return 0; + #endif + ++ if (*partition != 0xFFFFFF && *gpt_offset != 0) ++ return next_gpt_slice (); ++ + /* If previous partition is a BSD partition or a PC slice which + contains BSD partitions... */ + if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff)) +@@ -755,6 +840,9 @@ + unsigned long dest_partition = current_partition; + unsigned long part_offset; + unsigned long ext_offset; ++ unsigned long gpt_offset; ++ int gpt_count; ++ int gpt_size; + int entry; + char buf[SECTOR_SIZE]; + int bsd_part, pc_slice; +@@ -766,7 +854,8 @@ + int ret = next_partition (current_drive, dest_partition, + ¤t_partition, ¤t_slice, + &part_start, &part_length, +- &part_offset, &entry, &ext_offset, buf); ++ &part_offset, &entry, &ext_offset, ++ &gpt_offset, &gpt_count, &gpt_size, buf); + bsd_part = (current_partition >> 8) & 0xFF; + pc_slice = current_partition >> 16; + return ret; +diff -ruBbd --unidirectional-new-file grub-0.96/stage2/gpt.h grub-0.96-patched/stage2/gpt.h +--- grub-0.96/stage2/gpt.h 1969-12-31 19:00:00.000000000 -0500 ++++ grub-0.96-patched/stage2/gpt.h 2007-01-04 13:52:14.000000000 -0500 +@@ -0,0 +1,68 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006 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 _GPT_H ++#define _GPT_H ++ ++typedef signed char grub_int8_t; ++typedef signed short grub_int16_t; ++typedef signed int grub_int32_t; ++typedef signed long long int grub_int64_t; ++typedef unsigned char grub_uint8_t; ++typedef unsigned short grub_uint16_t; ++typedef unsigned int grub_uint32_t; ++typedef unsigned long long int grub_uint64_t; ++ ++struct grub_gpt_header ++{ ++ grub_uint64_t magic; ++ grub_uint32_t version; ++ grub_uint32_t headersize; ++ grub_uint32_t crc32; ++ grub_uint32_t unused1; ++ grub_uint64_t primary; ++ grub_uint64_t backup; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_uint8_t guid[16]; ++ grub_uint64_t partitions; ++ grub_uint32_t maxpart; ++ grub_uint32_t partentry_size; ++ grub_uint32_t partentry_crc32; ++} __attribute__ ((packed)); ++ ++struct grub_gpt_partentry ++{ ++ grub_uint64_t type1; ++ grub_uint64_t type2; ++ grub_uint8_t guid[16]; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_uint8_t attrib; ++ char name[72]; ++} __attribute__ ((packed)); ++ ++#define GPT_HEADER_MAGIC 0x5452415020494645UL ++ ++#define GPT_ENTRY_SECTOR(size,entry) \ ++ ((((entry) * (size) + 1) & ~(SECTOR_SIZE - 1)) >> SECTOR_BITS) ++#define GPT_ENTRY_INDEX(size,entry) \ ++ ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1) ++ ++#endif /* _GPT_H */ +diff -ruBbd --unidirectional-new-file grub-0.96/stage2/pc_slice.h grub-0.96-patched/stage2/pc_slice.h +--- grub-0.96/stage2/pc_slice.h 2003-07-09 07:45:53.000000000 -0400 ++++ grub-0.96-patched/stage2/pc_slice.h 2007-01-04 13:52:14.000000000 -0500 +@@ -115,6 +115,7 @@ + #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85 + #define PC_SLICE_TYPE_VSTAFS 0x9e + #define PC_SLICE_TYPE_DELL_UTIL 0xde ++#define PC_SLICE_TYPE_GPT 0xee + #define PC_SLICE_TYPE_LINUX_RAID 0xfd + + +diff -ruBbd --unidirectional-new-file grub-0.96/stage2/shared.h grub-0.96-patched/stage2/shared.h +--- grub-0.96/stage2/shared.h 2004-06-19 12:40:09.000000000 -0400 ++++ grub-0.96-patched/stage2/shared.h 2007-01-04 13:52:15.000000000 -0500 +@@ -934,7 +934,9 @@ + unsigned long *partition, int *type, + unsigned long *start, unsigned long *len, + unsigned long *offset, int *entry, +- unsigned long *ext_offset, char *buf); ++ unsigned long *ext_offset, ++ unsigned long *gpt_offset, int *gpt_count, ++ int *gpt_size, char *buf); + + /* Sets device to the one represented by the SAVED_* parameters. */ + int make_saved_active (void); diff --git a/abs/core-testing/grub/grub-inode-size.patch b/abs/core-testing/grub/grub-inode-size.patch new file mode 100644 index 0000000..bef3bc1 --- /dev/null +++ b/abs/core-testing/grub/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/core-testing/grub/i2o.patch b/abs/core-testing/grub/i2o.patch new file mode 100644 index 0000000..2af846c --- /dev/null +++ b/abs/core-testing/grub/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/core-testing/grub/install-grub b/abs/core-testing/grub/install-grub new file mode 100755 index 0000000..3eb7ce5 --- /dev/null +++ b/abs/core-testing/grub/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 [boot_device]" + echo + echo "where 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 </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 < /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/core-testing/grub/intelmac.patch b/abs/core-testing/grub/intelmac.patch new file mode 100644 index 0000000..a3fabc7 --- /dev/null +++ b/abs/core-testing/grub/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/core-testing/grub/menu.lst b/abs/core-testing/grub/menu.lst new file mode 100644 index 0000000..57fcf0d --- /dev/null +++ b/abs/core-testing/grub/menu.lst @@ -0,0 +1,46 @@ +# 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 + +# 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/core-testing/grub/more-raid.patch b/abs/core-testing/grub/more-raid.patch new file mode 100644 index 0000000..39db234 --- /dev/null +++ b/abs/core-testing/grub/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/cdp. ++ ++ 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/cdp. ++ ++ 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/core-testing/grub/special-devices.patch b/abs/core-testing/grub/special-devices.patch new file mode 100644 index 0000000..894f3e8 --- /dev/null +++ b/abs/core-testing/grub/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/core-testing/gsfonts/PKGBUILD b/abs/core-testing/gsfonts/PKGBUILD new file mode 100644 index 0000000..5294731 --- /dev/null +++ b/abs/core-testing/gsfonts/PKGBUILD @@ -0,0 +1,18 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell +pkgname=gsfonts +pkgver=8.11 +pkgrel=4 +pkgdesc="Ghostscript standard Type1 fonts" +arch=(i686 x86_64) +depends=('xorg-font-utils' 'fontconfig') +install=xfonts.install +url="http://sourceforge.net/projects/ghostscript" +source=(http://switch.dl.sourceforge.net/ghostscript/ghostscript-fonts-std-8.11.tar.gz) +md5sums=('6865682b095f8c4500c54b285ff05ef6') + +build() { + mkdir -p ${startdir}/pkg/usr/share/fonts/Type1 + install -m644 ${startdir}/src/fonts/*.{pfb,pfm,afm} \ + ${startdir}/pkg/usr/share/fonts/Type1/ || return 1 +} diff --git a/abs/core-testing/gsfonts/xfonts.install b/abs/core-testing/gsfonts/xfonts.install new file mode 100644 index 0000000..3eb0455 --- /dev/null +++ b/abs/core-testing/gsfonts/xfonts.install @@ -0,0 +1,20 @@ +post_install() { + echo -n "Updating font cache... " + fc-cache -f > /dev/null + mkfontscale /usr/share/fonts/Type1 + mkfontdir /usr/share/fonts/Type1 + echo "done." +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} + +op=$1 +shift + +$op $* diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD new file mode 100644 index 0000000..7cab655 --- /dev/null +++ b/abs/core-testing/gtk2/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 7635 2008-08-03 15:54:30Z jgc $ +# Maintainer: Jan de Groot + +pkgname=gtk2 +pkgver=2.12.11 +pkgrel=3 +pkgdesc="The GTK+ Toolkit (v2)" +arch=(i686 x86_64) +url="http://www.gtk.org/" +install=gtk2.install +depends=('atk>=1.22.0' 'pango>=1.20.5' 'libxcursor' 'libxinerama' 'libxrandr>=1.2.1' 'libxi' 'libcups>=1.3.8-2' 'libxcomposite' 'libxdamage' 'heimdal>=1.2' 'gnutls>=2.4.1') +makedepends=('pkgconfig') +replaces=('gtkprint-cups') +conflicts=('gtkprint-cups') +options=('!libtool') +backup=(etc/gtk-2.0/gtkrc) +license=('LGPL') +source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.12/gtk+-${pkgver}.tar.bz2 + gtkclipboard-check.patch) +md5sums=('f7aab88e856a813386f797aade5867ad' + '4025d3c15d6c6f73a032f403ffd4ff1c') + +build() { + cd ${startdir}/src/gtk+-${pkgver} + # Workaround patch for flash + patch -Np1 -i ${startdir}/src/gtkclipboard-check.patch || return 1 + + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --with-xinput=xfree \ + --with-included-loaders=png || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + + echo 'gtk-fallback-icon-theme = "gnome"' > ${startdir}/pkg/etc/gtk-2.0/gtkrc || return 1 +} diff --git a/abs/core-testing/gtk2/gtk2.install b/abs/core-testing/gtk2/gtk2.install new file mode 100644 index 0000000..3b4a881 --- /dev/null +++ b/abs/core-testing/gtk2/gtk2.install @@ -0,0 +1,27 @@ +# arg 1: the new package version +post_install() { + # we need to ldconfig first, in case xfree86's libs aren't + # in ld.so.cache yet + sbin/ldconfig -r . + mkdir -p etc/gtk-2.0 &>/dev/null + usr/bin/gtk-query-immodules-2.0 >etc/gtk-2.0/gtk.immodules + usr/bin/gdk-pixbuf-query-loaders >etc/gtk-2.0/gdk-pixbuf.loaders +} + +# 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() { + rm -f etc/gtk-2.0/gtk.immodules &>/dev/null + rm -f etc/gtk-2.0/gdk-pixbuf.loaders &>/dev/null + rmdir etc/gtk-2.0 &>/dev/null +} + +op=$1 +shift + +$op $* diff --git a/abs/core-testing/gtk2/gtkclipboard-check.patch b/abs/core-testing/gtk2/gtkclipboard-check.patch new file mode 100644 index 0000000..48894fb --- /dev/null +++ b/abs/core-testing/gtk2/gtkclipboard-check.patch @@ -0,0 +1,11 @@ +--- gtk+-2.11.6/gtk/gtkclipboard.c.orig 2007-08-18 13:48:22.000000000 +0000 ++++ gtk+-2.11.6/gtk/gtkclipboard.c 2007-08-18 13:49:08.000000000 +0000 +@@ -287,6 +287,8 @@ + gtk_clipboard_get_for_display (GdkDisplay *display, + GdkAtom selection) + { ++ if (display == NULL) ++ return NULL; + g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); + g_return_val_if_fail (!display->closed, NULL); + diff --git a/abs/core-testing/gzip/PKGBUILD b/abs/core-testing/gzip/PKGBUILD new file mode 100644 index 0000000..dea881c --- /dev/null +++ b/abs/core-testing/gzip/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd +pkgname=gzip +pkgver=1.3.12 +pkgrel=13 +pkgdesc="GNU compression utility" +arch=(i686 x86_64) +url="http://www.gzip.org" +license=('GPL') +groups=('base') +depends=('glibc' 'bash') +makedepends=('patch') +source=(ftp://ftp.gnu.org/pub/gnu/gzip/gzip-$pkgver.tar.gz + gzip-fixutimens.patch) + +build() { + cd $startdir/src/$pkgname-$pkgver + patch -Np1 -i ${startdir}/src/gzip-fixutimens.patch || return 1 + + ./configure --prefix=/usr + make || return 1 + mkdir -p $startdir/pkg/bin $startdir/pkg/usr/bin + make prefix=$startdir/pkg/usr install + cd $startdir/pkg/usr/bin + mv $pkgname $startdir/pkg/bin + mv gunzip zcat uncompress $startdir/pkg/bin + cd $startdir/pkg/bin + ln -sf $pkgname compress +} +md5sums=('b5bac2d21840ae077e0217bc5e4845b1' + 'cb592761476921018386031d91625153') diff --git a/abs/core-testing/gzip/gzip-fixpaths.patch b/abs/core-testing/gzip/gzip-fixpaths.patch new file mode 100644 index 0000000..c95dc67 --- /dev/null +++ b/abs/core-testing/gzip/gzip-fixpaths.patch @@ -0,0 +1,37 @@ +diff -Naur gzip-1.2.4a-orig/Makefile.in gzip-1.2.4a/Makefile.in +--- gzip-1.2.4a-orig/Makefile.in 1993-08-17 10:12:40.000000000 -0700 ++++ gzip-1.2.4a/Makefile.in 2005-04-21 11:45:27.000000000 -0700 +@@ -348,27 +348,27 @@ + rm -f _match.s + + $(G)zdiff: zdiff.in +- sed -e "$(SEDCMD)" -e "s|BINDIR|$(bindir)|" $(srcdir)/zdiff.in > $@ ++ sed -e "$(SEDCMD)" -e "s|BINDIR|/bin|" $(srcdir)/zdiff.in > $@ + chmod 755 $@ + + $(G)zgrep: zgrep.in +- sed -e "$(SEDCMD)" -e "s|BINDIR|$(bindir)|" $(srcdir)/zgrep.in > $@ ++ sed -e "$(SEDCMD)" -e "s|BINDIR|/bin|" $(srcdir)/zgrep.in > $@ + chmod 755 $@ + + $(G)zmore: zmore.in +- sed -e "$(SEDCMD)" -e "s|BINDIR|$(bindir)|" $(srcdir)/zmore.in > $@ ++ sed -e "$(SEDCMD)" -e "s|BINDIR|/bin|" $(srcdir)/zmore.in > $@ + chmod 755 $@ + + $(G)znew: znew.in +- sed -e "$(SEDCMD)" -e "s|BINDIR|$(bindir)|" $(srcdir)/znew.in > $@ ++ sed -e "$(SEDCMD)" -e "s|BINDIR|/bin|" $(srcdir)/znew.in > $@ + chmod 755 $@ + + $(G)zforce: zforce.in +- sed -e "$(SEDCMD)" -e "s|BINDIR|$(bindir)|" $(srcdir)/zforce.in > $@ ++ sed -e "$(SEDCMD)" -e "s|BINDIR|/bin|" $(srcdir)/zforce.in > $@ + chmod 755 $@ + + gzexe: gzexe.in +- sed -e "$(SEDCMD)" -e "s|BINDIR|$(bindir)|" $(srcdir)/gzexe.in > $@ ++ sed -e "$(SEDCMD)" -e "s|BINDIR|/bin|" $(srcdir)/gzexe.in > $@ + chmod 755 $@ + + gzip.info: gzip.texi diff --git a/abs/core-testing/gzip/gzip-fixutimens.patch b/abs/core-testing/gzip/gzip-fixutimens.patch new file mode 100644 index 0000000..a78aa79 --- /dev/null +++ b/abs/core-testing/gzip/gzip-fixutimens.patch @@ -0,0 +1,36 @@ +--- gzip-1.3.12.orig/gzip.c ++++ gzip-1.3.12/gzip.c +@@ -1637,7 +1642,7 @@ + } + } + +- if (futimens (ofd, ofname, timespec) != 0) ++ if (gz_futimens (ofd, ofname, timespec) != 0) + { + int e = errno; + WARN ((stderr, "%s: ", program_name)); +--- gzip-1.3.12.orig/lib/utimens.h ++++ gzip-1.3.12/lib/utimens.h +@@ -1,3 +1,3 @@ + #include +-int futimens (int, char const *, struct timespec const [2]); ++int gz_futimens (int, char const *, struct timespec const [2]); + int utimens (char const *, struct timespec const [2]); +--- gzip-1.3.12.orig/lib/utimens.c ++++ gzip-1.3.12/lib/utimens.c +@@ -75,7 +75,7 @@ + Return 0 on success, -1 (setting errno) on failure. */ + + int +-futimens (int fd ATTRIBUTE_UNUSED, ++gz_futimens (int fd ATTRIBUTE_UNUSED, + char const *file, struct timespec const timespec[2]) + { + /* Some Linux-based NFS clients are buggy, and mishandle time stamps +@@ -185,5 +185,5 @@ + int + utimens (char const *file, struct timespec const timespec[2]) + { +- return futimens (-1, file, timespec); ++ return gz_futimens (-1, file, timespec); + } diff --git a/abs/core-testing/gzip/gzip-security-update.patch b/abs/core-testing/gzip/gzip-security-update.patch new file mode 100644 index 0000000..2fff599 --- /dev/null +++ b/abs/core-testing/gzip/gzip-security-update.patch @@ -0,0 +1,186 @@ +Only in gzip-1.3.5: cscope.out +diff -ru gzip-1.3.5.orig/gzip.h gzip-1.3.5/gzip.h +--- gzip-1.3.5.orig/gzip.h 2001-10-01 07:53:41.000000000 +0100 ++++ gzip-1.3.5/gzip.h 2006-08-18 22:44:38.755598000 +0100 +@@ -198,6 +198,8 @@ + extern int to_stdout; /* output to stdout (-c) */ + extern int save_orig_name; /* set if original name must be saved */ + ++#define MIN(a,b) ((a) <= (b) ? (a) : (b)) ++ + #define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0)) + #define try_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(1)) + +diff -ru gzip-1.3.5.orig/inflate.c gzip-1.3.5/inflate.c +--- gzip-1.3.5.orig/inflate.c 2002-09-25 22:20:13.000000000 +0100 ++++ gzip-1.3.5/inflate.c 2006-07-21 09:10:43.350376000 +0100 +@@ -337,7 +337,7 @@ + { + *t = (struct huft *)NULL; + *m = 0; +- return 0; ++ return 2; + } + + +Only in gzip-1.3.5: testcases +diff -ru gzip-1.3.5.orig/unlzh.c gzip-1.3.5/unlzh.c +--- gzip-1.3.5.orig/unlzh.c 1999-10-06 06:00:00.000000000 +0100 ++++ gzip-1.3.5/unlzh.c 2006-08-18 22:56:19.446997000 +0100 +@@ -149,13 +149,17 @@ + unsigned i, k, len, ch, jutbits, avail, nextcode, mask; + + for (i = 1; i <= 16; i++) count[i] = 0; +- for (i = 0; i < (unsigned)nchar; i++) count[bitlen[i]]++; ++ for (i = 0; i < (unsigned)nchar; i++) { ++ if (bitlen[i] > 16) ++ error("Bad table (case a)\n"); ++ else count[bitlen[i]]++; ++ } + + start[1] = 0; + for (i = 1; i <= 16; i++) + start[i + 1] = start[i] + (count[i] << (16 - i)); +- if ((start[17] & 0xffff) != 0) +- error("Bad table\n"); ++ if ((start[17] & 0xffff) != 0 || tablebits > 16) /* 16 for weight below */ ++ error("Bad table (case b)\n"); + + jutbits = 16 - tablebits; + for (i = 1; i <= (unsigned)tablebits; i++) { +@@ -169,15 +173,15 @@ + + i = start[tablebits + 1] >> jutbits; + if (i != 0) { +- k = 1 << tablebits; +- while (i != k) table[i++] = 0; ++ k = MIN(1 << tablebits, DIST_BUFSIZE); ++ while (i < k) table[i++] = 0; + } + + avail = nchar; + mask = (unsigned) 1 << (15 - tablebits); + for (ch = 0; ch < (unsigned)nchar; ch++) { + if ((len = bitlen[ch]) == 0) continue; +- nextcode = start[len] + weight[len]; ++ nextcode = MIN(start[len] + weight[len], DIST_BUFSIZE); + if (len <= (unsigned)tablebits) { + for (i = start[len]; i < nextcode; i++) table[i] = ch; + } else { +@@ -218,7 +222,7 @@ + for (i = 0; i < 256; i++) pt_table[i] = c; + } else { + i = 0; +- while (i < n) { ++ while (i < MIN(n,NPT)) { + c = bitbuf >> (BITBUFSIZ - 3); + if (c == 7) { + mask = (unsigned) 1 << (BITBUFSIZ - 1 - 3); +@@ -228,7 +232,7 @@ + pt_len[i++] = c; + if (i == i_special) { + c = getbits(2); +- while (--c >= 0) pt_len[i++] = 0; ++ while (--c >= 0 && i < NPT) pt_len[i++] = 0; + } + } + while (i < nn) pt_len[i++] = 0; +@@ -248,7 +252,7 @@ + for (i = 0; i < 4096; i++) c_table[i] = c; + } else { + i = 0; +- while (i < n) { ++ while (i < MIN(n,NC)) { + c = pt_table[bitbuf >> (BITBUFSIZ - 8)]; + if (c >= NT) { + mask = (unsigned) 1 << (BITBUFSIZ - 1 - 8); +@@ -256,14 +260,14 @@ + if (bitbuf & mask) c = right[c]; + else c = left [c]; + mask >>= 1; +- } while (c >= NT); ++ } while (c >= NT && (mask || c != left[c])); + } + fillbuf((int) pt_len[c]); + if (c <= 2) { + if (c == 0) c = 1; + else if (c == 1) c = getbits(4) + 3; + else c = getbits(CBIT) + 20; +- while (--c >= 0) c_len[i++] = 0; ++ while (--c >= 0 && i < NC) c_len[i++] = 0; + } else c_len[i++] = c - 2; + } + while (i < NC) c_len[i++] = 0; +@@ -292,7 +296,7 @@ + if (bitbuf & mask) j = right[j]; + else j = left [j]; + mask >>= 1; +- } while (j >= NC); ++ } while (j >= NC && (mask || j != left[j])); + } + fillbuf((int) c_len[j]); + return j; +@@ -309,7 +313,7 @@ + if (bitbuf & mask) j = right[j]; + else j = left [j]; + mask >>= 1; +- } while (j >= NP); ++ } while (j >= NP && (mask || j != left[j])); + } + fillbuf((int) pt_len[j]); + if (j != 0) j = ((unsigned) 1 << (j - 1)) + getbits((int) (j - 1)); +@@ -356,7 +360,7 @@ + while (--j >= 0) { + buffer[r] = buffer[i]; + i = (i + 1) & (DICSIZ - 1); +- if (++r == count) return r; ++ if (++r >= count) return r; + } + for ( ; ; ) { + c = decode_c(); +@@ -366,14 +370,14 @@ + } + if (c <= UCHAR_MAX) { + buffer[r] = c; +- if (++r == count) return r; ++ if (++r >= count) return r; + } else { + j = c - (UCHAR_MAX + 1 - THRESHOLD); + i = (r - decode_p() - 1) & (DICSIZ - 1); + while (--j >= 0) { + buffer[r] = buffer[i]; + i = (i + 1) & (DICSIZ - 1); +- if (++r == count) return r; ++ if (++r >= count) return r; + } + } + } +diff -ru gzip-1.3.5.orig/unpack.c gzip-1.3.5/unpack.c +--- gzip-1.3.5.orig/unpack.c 1999-10-06 06:00:00.000000000 +0100 ++++ gzip-1.3.5/unpack.c 2006-07-21 15:49:48.615190000 +0100 +@@ -13,7 +13,6 @@ + #include "gzip.h" + #include "crypt.h" + +-#define MIN(a,b) ((a) <= (b) ? (a) : (b)) + /* The arguments must not have side effects. */ + + #define MAX_BITLEN 25 +@@ -133,7 +132,7 @@ + /* Remember where the literals of this length start in literal[] : */ + lit_base[len] = base; + /* And read the literals: */ +- for (n = leaves[len]; n > 0; n--) { ++ for (n = leaves[len]; n > 0 && base < LITERALS; n--) { + literal[base++] = (uch)get_byte(); + } + } +@@ -169,7 +168,7 @@ + prefixp = &prefix_len[1< prefix_len) *--prefixp = (uch)len; + } + /* The length of all other codes is unknown: */ + while (prefixp > prefix_len) *--prefixp = 0; diff --git a/abs/core-testing/hal-info/PKGBUILD b/abs/core-testing/hal-info/PKGBUILD new file mode 100644 index 0000000..7f697c8 --- /dev/null +++ b/abs/core-testing/hal-info/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 2153 2008-05-27 14:12:39Z jgc $ +# Maintainer: Jan de Groot + +pkgname=hal-info +_date=20080508 +pkgver=0.20080508 +pkgrel=1 +pkgdesc="Hardware Abstraction Layer information files" +arch=(i686 x86_64) +license=('GPL' 'custom') +url="http://www.freedesktop.org/wiki/Software/hal" +source=(http://hal.freedesktop.org/releases/hal-info-${_date}.tar.gz) +md5sums=('6fc99d15d38945c17a291ea93e664664') + +build() { + cd ${startdir}/src/${pkgname}-${_date} + ./configure --prefix=/usr --sysconfdir=/etc || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + + install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname} + install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1 +} diff --git a/abs/core-testing/hal/PKGBUILD b/abs/core-testing/hal/PKGBUILD new file mode 100644 index 0000000..f1a3b3f --- /dev/null +++ b/abs/core-testing/hal/PKGBUILD @@ -0,0 +1,49 @@ +# $Id: PKGBUILD 8861 2008-08-16 22:34:13Z eric $ +# Maintainer: Jan de Groot +# Contributor: Link Dupont + +pkgname=hal +pkgver=0.5.11 +pkgrel=1 +pkgdesc="Hardware Abstraction Layer" +arch=(i686 x86_64) +license=('GPL' 'custom') +url="http://www.freedesktop.org/wiki/Software/hal" +depends=('dbus-glib>=0.74' 'dbus>=1.2.1' 'libusb>=0.1.12' 'udev>=118' 'filesystem>=0.7.1-5' 'hal-info>=0.20080508' 'eject' 'libsmbios>=2.0.2' 'dmidecode' 'pciutils>=2.2.8-3' 'usbutils>=0.73-5' 'pm-utils>=1.1.2') +makedepends=('pkgconfig' 'gperf') +options=('!libtool') +install=hal.install +source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2 + hal + hal-policy.patch + cryptsetup_location.patch + hal-0.5.9-hide-diagnostic.patch + ntfs3g-valid-options.patch) +md5sums=('5e8935ab61bcb14afd2d4548084aace0' '277e96ac130d7bfce0b30f0b80db8782'\ + '18dcdaa79952e2057c2e4745fbc8ad52' 'c688a3c6574699365926f4fef7441545'\ + '4d4b6801a1cedca22b8bdd9db73b16fb' '4242a2c78885e396f639d0cd5e33218c') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + patch -Np1 -i ${startdir}/src/hal-policy.patch || return 1 + patch -Np1 -i ${startdir}/src/cryptsetup_location.patch || return 1 + patch -Np1 -i ${startdir}/src/hal-0.5.9-hide-diagnostic.patch || return 1 + patch -Np0 -i ${startdir}/src/ntfs3g-valid-options.patch || return 1 + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib/hal --enable-static=no \ + --enable-acpi-ibm --enable-acpi-toshiba \ + --disable-docbook-docs --disable-doxygen-docs \ + --with-hal-user=hal --with-hal-group=hal \ + --with-pid-file=/var/run/hald.pid \ + --enable-policy-kit=no || return 1 + sed -e 's/device-manager//' -i tools/Makefile || return 1 + make || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + install -m755 -d ${startdir}/pkg/etc/rc.d + install -m755 -d ${startdir}/pkg/media || return 1 + install -m 755 ${startdir}/src/hal ${startdir}/pkg/etc/rc.d/hal || return 1 + + install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname} + install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1 +} diff --git a/abs/core-testing/hal/cryptsetup_location.patch b/abs/core-testing/hal/cryptsetup_location.patch new file mode 100644 index 0000000..1e4f5ef --- /dev/null +++ b/abs/core-testing/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/core-testing/hal/hal b/abs/core-testing/hal/hal new file mode 100644 index 0000000..012d456 --- /dev/null +++ b/abs/core-testing/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/core-testing/hal/hal-0.5.9-hide-diagnostic.patch b/abs/core-testing/hal/hal-0.5.9-hide-diagnostic.patch new file mode 100644 index 0000000..58c882d --- /dev/null +++ b/abs/core-testing/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 @@ + + + ++ ++ ++ true ++ ++ + + + diff --git a/abs/core-testing/hal/hal-policy.patch b/abs/core-testing/hal/hal-policy.patch new file mode 100644 index 0000000..96528b5 --- /dev/null +++ b/abs/core-testing/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"/> + + +- ++ + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + diff --git a/abs/core-testing/hal/hal.install b/abs/core-testing/hal/hal.install new file mode 100644 index 0000000..d3f3686 --- /dev/null +++ b/abs/core-testing/hal/hal.install @@ -0,0 +1,25 @@ +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 +pre_remove() { + usr/sbin/userdel hal &>/dev/null + usr/sbin/groupdel hal &>/dev/null +} + +op=$1 +shift + +$op $* diff --git a/abs/core-testing/hal/ntfs3g-valid-options.patch b/abs/core-testing/hal/ntfs3g-valid-options.patch new file mode 100644 index 0000000..4731442 --- /dev/null +++ b/abs/core-testing/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 @@ + uid= + gid= + umask= ++ dmask= ++ fmask= + locale= + utf8 + diff --git a/abs/core-testing/hdparm/PKGBUILD b/abs/core-testing/hdparm/PKGBUILD new file mode 100644 index 0000000..de29521 --- /dev/null +++ b/abs/core-testing/hdparm/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 7862 2008-08-04 20:16:21Z tpowa $ +# Maintainer: Paul Mattal + +pkgname=hdparm +pkgver=8.9 +pkgrel=10 +pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters" +arch=(i686 x86_64) +depends=('glibc') +groups=('base') +source=(http://heanet.dl.sourceforge.net/sourceforge/hdparm/${pkgname}-${pkgver}.tar.gz) +license=('BSD') +url="http://sourceforge.net/projects/hdparm/" + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} || return 1 + + # build + make || return 1 + + # install + mkdir -p ${startdir}/pkg/{usr,sbin} || return 1 + make DESTDIR=${startdir}/pkg install || return 1 + install -m755 contrib/idectl ${startdir}/pkg/sbin || return 1 + install -m755 contrib/ultrabayd ${startdir}/pkg/sbin || return 1 + + #install license file + install -D -m 644 LICENSE.TXT $startdir/pkg/usr/share/licenses/hdparm/LICENSE.TXT + + # installs empty /usr/share, which we let it do since it causes + # no harm and it might put something there someday +} +md5sums=('19fa013956612581af7d00907990ac84') diff --git a/abs/core-testing/heimdal/002_all_heimdal-no_libedit.patch b/abs/core-testing/heimdal/002_all_heimdal-no_libedit.patch new file mode 100644 index 0000000..7806597 --- /dev/null +++ b/abs/core-testing/heimdal/002_all_heimdal-no_libedit.patch @@ -0,0 +1,10 @@ +--- cf/krb-readline.m4 2004-09-15 13:24:15.000000000 +0000 ++++ cf/krb-readline.m4 2004-09-17 16:11:39.610756024 +0000 +@@ -6,7 +6,6 @@ + dnl el_init + + AC_DEFUN([KRB_READLINE],[ +-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent]) + if test "$ac_cv_func_el_init" = yes ; then + AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[ + AC_TRY_COMPILE([#include diff --git a/abs/core-testing/heimdal/003_all_heimdal-fPIC.patch b/abs/core-testing/heimdal/003_all_heimdal-fPIC.patch new file mode 100644 index 0000000..ee01e34 --- /dev/null +++ b/abs/core-testing/heimdal/003_all_heimdal-fPIC.patch @@ -0,0 +1,12 @@ +--- lib/editline/Makefile.am 2004-05-10 09:27:21.442490749 +0000 ++++ lib/editline/Makefile.am 2004-05-10 09:27:38.876209101 +0000 +@@ -47,6 +47,9 @@ + + EXTRA_DIST = $(man_MANS) + ++$(libeditline_la_OBJECTS): %.lo: %.c ++ $(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< ++ + snprintf.c: + $(LN_S) $(srcdir)/../roken/snprintf.c . + strdup.c: diff --git a/abs/core-testing/heimdal/004_all_heimdal-rxapps.patch b/abs/core-testing/heimdal/004_all_heimdal-rxapps.patch new file mode 100644 index 0000000..d6142a7 --- /dev/null +++ b/abs/core-testing/heimdal/004_all_heimdal-rxapps.patch @@ -0,0 +1,19 @@ +--- appl/kx/rxterm.in 2004-02-21 21:49:23.893934354 +0000 ++++ appl/kx/rxterm.in 2004-02-21 21:49:34.617299076 +0000 +@@ -2,6 +2,6 @@ + # + usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host" +-binary=rsh ++binary=krsh + term=xterm + while true + do +--- appl/kx/rxtelnet.in 2005-06-16 16:29:10.000000000 +0000 ++++ appl/kx/rxtelnet.in 2005-07-11 20:33:10.000000000 +0000 +@@ -2,7 +2,7 @@ + # + usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]" +-binary=telnet ++binary=ktelnet + term= + kx_args=-P diff --git a/abs/core-testing/heimdal/006_all_heimdal-suid_fix.patch b/abs/core-testing/heimdal/006_all_heimdal-suid_fix.patch new file mode 100644 index 0000000..0f7d281 --- /dev/null +++ b/abs/core-testing/heimdal/006_all_heimdal-suid_fix.patch @@ -0,0 +1,20 @@ +--- appl/otp/Makefile.am 2004-09-17 22:22:54.046301075 +0000 ++++ appl/otp/Makefile.am 2004-09-17 22:23:15.293145945 +0000 +@@ -8,6 +8,7 @@ + bin_SUIDS = otp + otp_SOURCES = otp.c otp_locl.h + otpprint_SOURCES = otpprint.c otp_locl.h ++otp_LDFLAGS = -Wl,-z,now + + man_MANS = otp.1 otpprint.1 + +--- appl/su/Makefile.am 2005-06-16 16:27:46.000000000 +0000 ++++ appl/su/Makefile.am 2005-07-11 20:34:21.000000000 +0000 +@@ -7,6 +7,7 @@ + bin_PROGRAMS = su + bin_SUIDS = su + su_SOURCES = su.c ++su_LDFLAGS = -Wl,-z,now + man_MANS = su.1 + + LDADD = $(LIB_kafs) \ diff --git a/abs/core-testing/heimdal/010_all_heimdal-system-libss.patch b/abs/core-testing/heimdal/010_all_heimdal-system-libss.patch new file mode 100644 index 0000000..5cd4d9d --- /dev/null +++ b/abs/core-testing/heimdal/010_all_heimdal-system-libss.patch @@ -0,0 +1,40 @@ +--- lib/sl/Makefile.am~ 2007-06-01 09:48:09.000000000 +0200 ++++ lib/sl/Makefile.am 2007-06-01 09:49:30.000000000 +0200 +@@ -12,36 +12,24 @@ + + include_HEADERS = sl.h + +-lib_LTLIBRARIES = libsl.la libss.la ++lib_LTLIBRARIES = libsl.la + libsl_la_LDFLAGS = -version-info 2:0:2 +-libss_la_LDFLAGS = -version-info 1:5:1 + + libsl_la_LIBADD = @LIB_readline@ +-libss_la_LIBADD = @LIB_readline@ @LIB_com_err@ + + libsl_la_SOURCES = sl_locl.h sl.c $(ES) +-libss_la_SOURCES = $(libsl_la_SOURCES) ss.c ss.h + + TESTS = test_sl + check_PROGRAMS = $(TESTS) + + # install these? + +-bin_PROGRAMS = mk_cmds + noinst_PROGRAMS = slc + +-mk_cmds_SOURCES = make_cmds.c make_cmds.h parse.y lex.l +-mk_cmds_LDADD = libsl.la $(LDADD) +- + slc_SOURCES = slc-gram.y slc-lex.l slc.h + +-ssincludedir = $(includedir)/ss +-ssinclude_HEADERS = ss.h +- + CLEANFILES = lex.c parse.c parse.h snprintf.c strtok_r.c strdup.c strupr.c getprogname.c + +-$(mk_cmds_OBJECTS): parse.h parse.c +- + LDADD = \ + libsl.la \ + $(LIB_roken) \ diff --git a/abs/core-testing/heimdal/PKGBUILD b/abs/core-testing/heimdal/PKGBUILD new file mode 100644 index 0000000..4c79af6 --- /dev/null +++ b/abs/core-testing/heimdal/PKGBUILD @@ -0,0 +1,103 @@ +# $Id: PKGBUILD 3738 2008-06-30 20:03:06Z andyrtr $ +# Maintainer: Jan de Groot + +# +### Attention: build it 2 times - it links against itself! ### +# ^ better remove old pkg before ;) + +pkgname=heimdal +pkgver=1.2 +pkgrel=1 +pkgdesc="Heimdal Kerberos V5 libraries" +arch=(i686 x86_64) +url="http://www.pdc.kth.se/heimdal/" +license=('custom') +depends=('db>=4.7' 'openssl' 'e2fsprogs') +options=('!libtool' '!emptydirs') +backup=(etc/krb5.conf) +source=(http://www.h5l.org/dist/src/heimdal-$pkgver.tar.gz \ + 002_all_heimdal-no_libedit.patch \ + 003_all_heimdal-fPIC.patch \ + 004_all_heimdal-rxapps.patch \ + #006_all_heimdal-suid_fix.patch \ + heimdal-kdc.rc \ + kadmind.rc \ + kpasswd.rc) +md5sums=('8d6b690069acd2ae8ada1315174f52f9' + '1199c4a4a38e9c2b2c0a99bd5781767a' + '3d0262aa218e1611500de735d3581e28' + '0fe81cb1e33b2a2e60edaf47dfdfe4de' + #'30372b1581e4d49a76688e450fd42443' + 'e59650992b9541a30dfce727a194f6e0' + '1f2f86a67bbfddb7af581d35fdca9627' + 'f8f1eca95b9d3f2b4ebf2417b71b81cf') + +build() { + [ -e /usr/lib/libasn1.so ] && echo "## remove old heimdal pkg first ##" && return 1 + + cd ${srcdir}/heimdal-${pkgver} + patch -Np0 -i ${srcdir}/002_all_heimdal-no_libedit.patch || return 1 + patch -Np0 -i ${srcdir}/003_all_heimdal-fPIC.patch || return 1 + patch -Np0 -i ${srcdir}/004_all_heimdal-rxapps.patch || return 1 +# patch -Np0 -i ${srcdir}/006_all_heimdal-suid_fix.patch || return 1 + +# libtoolize -f -c || return 1 +# aclocal -I cf || return 1 +# autoheader || return 1 +# automake -a || return 1 +# autoconf || return 1 +# libtoolize -f -c || return 1 + +# autoreconf || return 1 +# libtoolize -f -c || return 1 + + sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in configure \ + doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \ + lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5 + + ./configure --prefix=/usr --enable-shared=yes --without-x \ + --sysconfdir=/etc --mandir=/usr/man \ + --datadir=/var/lib/heimdal \ + --localstatedir=/var/lib/heimdal \ + --with-openssl=/usr \ + --with-readline-lib=/usr/lib \ + --with-readline-include=/usr/include/readline \ + --libexecdir=/usr/sbin --with-berkeley-db \ + --disable-krb4 + + make || return 1 + make DESTDIR=${pkgdir} install || return 1 + + for i in telnetd ftpd rshd; do + mv ${pkgdir}/usr/man/man8/${i}.8 ${pkgdir}/usr/man/man8/k${i}.8 + mv ${pkgdir}/usr/sbin/${i} ${pkgdir}/usr/sbin/k${i} + done + + for i in rcp rsh telnet ftp su login; do + if [ -f ${pkgdir}/usr/man/man1/${i}.1 ]; then + mv ${pkgdir}/usr/man/man1/${i}.1 ${pkgdir}/usr/man/man1/k${i}.1 + fi + mv ${pkgdir}/usr/bin/${i} ${pkgdir}/usr/bin/k${i} + done + rm -rf ${pkgdir}/usr/man/cat{1,3,5,8} + + #Arch could be a KDC too + mkdir -p ${pkgdir}/etc/rc.d + install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc + for i in heimdal-kdc kadmind kpasswd; do + install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i} + done + + #Remove some conflicts + rm ${pkgdir}/usr/man/man5/ftpusers.5* + rm ${pkgdir}/usr/man/man5/login.access.5* + # and some more + rm ${pkgdir}/usr/bin/mk_cmds + rm ${pkgdir}/usr/include/ss/ss.h + rm ${pkgdir}/usr/lib/libss.a + rm ${pkgdir}/usr/lib/libss.so + + # install the license + install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \ + ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} diff --git a/abs/core-testing/heimdal/heimdal-kdc.rc b/abs/core-testing/heimdal/heimdal-kdc.rc new file mode 100644 index 0000000..b2a3b5f --- /dev/null +++ b/abs/core-testing/heimdal/heimdal-kdc.rc @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/kdc` +case "$1" in + start) + stat_busy "Starting heimdal kdc" + if [ -z "$PID" ]; then + /usr/sbin/kdc --detach + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon heimdal-kdc + stat_done + fi + ;; + stop) + stat_busy "Stopping heimdal kdc" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon heimdal-kdc + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/abs/core-testing/heimdal/kadmind.rc b/abs/core-testing/heimdal/kadmind.rc new file mode 100644 index 0000000..0f3b8c7 --- /dev/null +++ b/abs/core-testing/heimdal/kadmind.rc @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/kadmind` +case "$1" in + start) + stat_busy "Starting heimdal admin server" + if [ -z "$PID" ]; then + /usr/sbin/kadmind & + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon kadmind + stat_done + fi + ;; + stop) + stat_busy "Stopping heimdal admin server" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon kadmind + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/abs/core-testing/heimdal/kpasswd.rc b/abs/core-testing/heimdal/kpasswd.rc new file mode 100644 index 0000000..3697322 --- /dev/null +++ b/abs/core-testing/heimdal/kpasswd.rc @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/kpasswdd` +case "$1" in + start) + stat_busy "Starting heimdal kpasswdd" + if [ -z "$PID" ]; then + /usr/sbin/kpasswdd & + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon kpasswd + stat_done + fi + ;; + stop) + stat_busy "Stopping heimdal kpasswdd" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon kpasswd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/abs/core-testing/hwdetect/PKGBUILD b/abs/core-testing/hwdetect/PKGBUILD new file mode 100644 index 0000000..14fd6a9 --- /dev/null +++ b/abs/core-testing/hwdetect/PKGBUILD @@ -0,0 +1,18 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski +pkgname=hwdetect +pkgver=0.9 +pkgrel=10 +pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf / rc.conf support" +arch=(i686 x86_64) +license=('custom:none') +groups=('base') +backup=() +depends=('sh' 'awk' 'grep' 'coreutils' 'sed') +source=(hwdetect) +md5sums=('bae2a26062c1ae8036b3a2173c8e3b51') + +build() { + install -D -m 755 $startdir/src/hwdetect $startdir/pkg/sbin/hwdetect +} + diff --git a/abs/core-testing/hwdetect/hwdetect b/abs/core-testing/hwdetect/hwdetect new file mode 100755 index 0000000..4991210 --- /dev/null +++ b/abs/core-testing/hwdetect/hwdetect @@ -0,0 +1,482 @@ +#! /bin/sh +# Autodetection script for scanning /sys for hardware +# for Archlinux by Tobias Powalowski +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-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-video show VIDEO modules" + echo " --show-other show OTHER modules" + echo "" + echo " For /etc/mkinitcpio.conf use:" + echo " --hostcontroller show MODULES= for all hostcontrollers" + echo " --vmware add BusLogic to MODULES for vmware" + echo "" + echo " --hooks show HOOKS=" + echo " --hooks-dir use this directory for HOOKS check" + echo " --dsdt add dsdt to HOOKS=" + echo " --raid add raid to HOOKS=" + echo " --raid-partitions add raid-partitions to HOOKS=" + echo " --encrypt add encrypt to HOOKS=" + echo " --lvm2 add lvm2 to HOOKS=" + echo " --keymap add keymap to HOOKS=" + echo " --usb add usb to HOOKS=" + echo " --fw add fw to HOOKS=" + echo " --pcmcia add pcmcia to HOOKS=" + echo " --nfs add net to HOOKS=" + echo "" + echo " For /etc/rc.conf use:" + echo " --net show network MODULES" + echo " --sound show sound 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;}'`" + ;; +esac + +if [ "$KERNEL_VERSION" = "" ]; then + KERNEL_VERSION="`uname -r`" +fi + +# IDE/PATA switch +[ "$(echo $* | grep '\-ide-legacy')" ] && IDE_LEGACY=1 + +# dsdt switch +[ "$(echo $* | grep '\-dsdt')" ] && DSDT=1 + +# raid switch +[ "$(echo $* | grep '\-raid-partition')" ] && RAID_PARTITIONS=1 +if ! [ "$RAID_PARTITIONS" = "1" ]; then + [ "$(echo $* | grep '\-raid')" ] && RAID=1 +fi + +# encrypt switch +[ "$(echo $* | grep '\-encrypt')" ] && ENCRYPT=1 + +# lvm2 switch +[ "$(echo $* | grep '\-lvm2')" ] && LVM2=1 + +# keymap switch +[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=1 + +# usb switch +[ "$(echo $* | grep '\-usb')" ] && USB=1 + +# fw switch +[ "$(echo $* | grep '\-fw')" ] && FW=1 + +# pcmcia switch +[ "$(echo $* | grep '\-pcmcia')" ] && PCMCIA=1 + +# nfs switch +[ "$(echo $* | grep '\-nfs')" ] && NFS=1 + +# vmware switch +[ "$(echo $* | grep '\-vmware')" ] && VMWARE=1 + +# 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 + +# 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 -a --set-version=$KERNEL_VERSION --show-depends $aliases >> /tmp/modules-plain 2>/dev/null + +# fix evdev detection +#if [ "`echo $aliases | grep 'serio:ty06pr*[id]*[ex]*'`" ]; then +# modprobe -i --set-version=$KERNEL_VERSION --show-depends evdev >> /tmp/modules-plain 2>/dev/null +#fi +# fix Intel536ep detection +#if [ "`echo $aliases | grep 'pci:v00008086d00001040sv000016BEsd00001040bc07sc80i00'`" ]; then +# modprobe -i --set-version=$KERNEL_VERSION --show-depends Intel536 >> /tmp/modules-plain 2>/dev/null +#fi + +# 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 2>/dev/null >> /tmp/modules-plain 2>/dev/null + #[ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_proc 2>/dev/null >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_sysfs 2>/dev/null >> /tmp/modules-plain + [ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_dev 2>/dev/null >> /tmp/modules-plain + [ "$devid" = "PNP0510" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends irtty-sir 2>/dev/null >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNP0511" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends irtty-sir 2>/dev/null >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNPb02f" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends analog 2>/dev/null >> /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 2>/dev/null >> /tmp/modules-plain 2>/dev/null + done +fi + +# IDE disks/cdroms/floppy/tape +#if [ "`find /proc/ide -noleaf -name 'media'`" ]; then +# for i in $(cat `find /proc/ide -noleaf -name "media"`); do +# case $i in +# cdrom) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-cd >> /tmp/modules-plain 2>/dev/null ;; +# floppy) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-floppy >> /tmp/modules-plain 2>/dev/null ;; +# disk) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-disk >> /tmp/modules-plain 2>/dev/null ;; +# tape) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-tape >> /tmp/modules-plain 2>/dev/null ;; +# esac +# 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 + +# Firewire disks/cdroms/network +#if [ "`grep 'ohci1394' /tmp/modules-plain`" ]; then +# modprobe -i --set-version=$KERNEL_VERSION --show-depends sbp2 >> /tmp/modules-plain 2>/dev/null +# modprobe -i --set-version=$KERNEL_VERSION --show-depends eth1394 >> /tmp/modules-plain 2>/dev/null +#fi + +# Modem devices +#case $i in (Intel536|Intel537|ltmodem|ltserial|slamr|slusb) \ +# grep "$i" /tmp/modules-plain && modprobe -i --set-version=$KERNEL_VERSION --show-depends ppp-generic >> /tmp/modules-plain 2>/dev/null ;; \ +# esac + +# 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 + +# USB modules +#if [ "`grep 'usb/' /tmp/modules-plain`" ]; then +# modprobe -i --set-version=$KERNEL_VERSION --show-depends usbhid >> /tmp/modules-plain 2>/dev/null +# modprobe -i --set-version=$KERNEL_VERSION --show-depends usb-storage >> /tmp/modules-plain 2>/dev/null +# modprobe -i --set-version=$KERNEL_VERSION --show-depends usblp >> /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 "ata/" | \ + grep -v "net/" | grep -v "pcmcia/" | grep -v "usb/" | \ + grep -v "ieee1394/" >> /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 >> /tmp/modules-sorted +else + grep "ata/pata" /tmp/modules-stripped >> /tmp/modules-sorted + grep "ata/ata_generic" /tmp/modules-stripped >> /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 "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 "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 device modules at the end +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 + +# blacklist framebuffer modules +for x in $(echo /lib/modules/$(uname -r)/kernel/drivers/video/*/*fb*); do + BLACKLIST="$BLACKLIST $(/usr/bin/basename $x .ko)" +done +for x in $(echo /lib/modules/$(uname -r)/kernel/drivers/video/*fb*); do + BLACKLIST="$BLACKLIST $(/usr/bin/basename $x .ko)" +done +# delete modules that are blacklisted +BLACKLIST="${BLACKLIST} $(echo ${disablemodules} | sed 's|-|_|g' | sed 's|,| |g')" +for i in $BLACKLIST; do + [ "$i" ] || continue + sed -i -e "/^$i$/d" /tmp/moduleslist + # since '-' and '_' are interchangeable, we have to cover both + if [ "`echo $i | grep '-'`" ]; then + i="`echo $i | sed 's|-|_|g'`" + sed -i -e "/^$i$/d" /tmp/moduleslist + elif [ "`echo $i | grep '_'`" ]; then + i="`echo $i | sed 's|_|-|g'`" + sed -i -e "/^$i$/d" /tmp/moduleslist + fi +done + +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 + modprobe $i > /dev/null 2>&1 + 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/` + showlist "PATA " `listmods ata/pata` `listmods ata/ata_generic` + showlist "SCSI " `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/` `listmods hid/` + showlist "IRDA " `listmods irda/` + showlist "ISDN " `listmods isdn/` + showlist "PCMCIA " `listmods pcmcia/` + showlist "SOUND " `listmods sound/` + showlist "VIDEO " `listmods video/` + showlist "OTHER " `listmods modules/ agp/ acpi/ ide/ scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ firewire/ hid/` + ;; + + --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/` ;; + --show-pata) showlist "PATA " `listmods ata/pata` `listmods ata/ata_generic`;; + --show-scsi) showlist "SCSI " `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/` `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 sound/` ;; + --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 ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ firewire/ hid/` ;; + --hostcontroller) showlist2 "MODULES" \"`listmods ide/pci` `listmods ata/pata` `listmods ata/ata_generic` `listmods scsi/ /sg.ko /st.ko sr_mod sd_mod` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8 floppy` `listmods ata/ pata ata_generic` `listmods drivers/block/sx8`\" | sed -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' + ;; + --net) if [ "$(showlist2 "MODULES" \(`listmods drivers/net/ irda ppp_generic slhc` `listmods drivers/usb/net/`\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' | grep '8139cp')" ] ; then + if [ "$(dmesg | grep '"8139too"')" ]; then + MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc` `listmods drivers/usb/net/)" + showlist2 "MODULES" \($MODULES_EXPORTED\) | sed -e 's/8139cp//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/)" + showlist2 "MODULES" \($MODULES_EXPORTED\) | sed -e 's/8139too//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/)" + showlist2 "MODULES" \($MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' + fi + ;; + --sound) MODULES_EXPORTED="$MODULES_EXPORTED $(listmods sound/)" + showlist2 "MODULES" \($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 udev dsdt autodetect ide pata scsi sata usb fw pcmcia net raid raid-partitions usbinput keymap encrypt lvm2 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 + # usbinput, check for usbhid + if ! [ "$(cat /proc/modules | grep usbhid)" ]; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/usbinput//g") + fi + # keymap, check rc.conf for KEYMAP="us" + if [ "$(grep '^KEYMAP="us"' /etc/rc.conf)" ]; then + if ! [ "${KEYMAP}" = "1" ]; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/keymap//g") + fi + fi + ### TODO raid, check for presence of md devices in /dev + #if ! [ "$(ls /dev/md* > /dev/null 2>&1 )" ]; then + # START_HOOKS=$(echo $START_HOOKS | sed -e "s/raid//g") + #fi + if ! [ "$RAID" = "1" ] ; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/raid\ //g") + fi + if ! [ "$RAID_PARTITIONS" = "1" ] ; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/raid-partitions\ //g") + fi + ### TODO lvm2, encrypt check + # encrypt, check for presence of mapper/root + #if ! [ "$(ls /dev/mapper/root > /dev/null 2>&1 )" ]; then + # START_HOOKS=$(echo $START_HOOKS | sed -e "s/encrypt//g") + #fi + if ! [ "$ENCRYPT" = "1" ] ; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/encrypt//g") + fi + if ! [ "$LVM2" = "1" ]; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/lvm2//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 ! [ "$DSDT" = "1" ]; then + START_HOOKS=$(echo $START_HOOKS | sed -e "s/dsdt//g") + fi + echo "HOOKS=\"$START_HOOKS\"" | sed -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' + ;; + 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/core-testing/imagemagick/ChangeLog b/abs/core-testing/imagemagick/ChangeLog new file mode 100644 index 0000000..8b3a5fb --- /dev/null +++ b/abs/core-testing/imagemagick/ChangeLog @@ -0,0 +1,44 @@ +2008-08-19 Eric Belanger + + * imagemagick 6.4.2.10-1 + * Upstream update + +2008-08-11 Eric Belanger + + * imagemagick 6.4.2.7-1 + * Upstream update + * Added bzip2 and libxml2 depends + * Disabled docs + +2008-07-18 Eric Belanger + + * imagemagick 6.4.2.4-1 + * Upstream update + +2008-06-23 Eric Belanger + + * imagemagick 6.4.2.1-1 + * Upstream update + * Fixed linking problem (close FS#10574) + +2008-05-19 Eric Belanger + + * imagemagick 6.4.1.3-1 + * Upstream update + +2008-04-30 Eric Belanger + + * imagemagick 6.4.1.0-1 + * Upstream update + +2008-04-24 Eric Belanger + + * imagemagick 6.4.0.9-1 + * Upstream update + +2008-03-29 Eric Belanger + + * imagemagick 6.4.0.2-1 + * Upstream update + * Added dvips to delegates list for dvi support (close FS#8914) + * Added ChangeLog diff --git a/abs/core-testing/imagemagick/PKGBUILD b/abs/core-testing/imagemagick/PKGBUILD new file mode 100644 index 0000000..79555bf --- /dev/null +++ b/abs/core-testing/imagemagick/PKGBUILD @@ -0,0 +1,56 @@ +# $Id: PKGBUILD 9867 2008-08-20 05:56:48Z eric $ +# Maintainer: Eric Belanger + +# NOTE: ImageMagick builds against an existing installation +# uninstall ImageMagick before building, or build it, install it, build it. + +# NOTE 2: To circumvent linking problems (FS#10574), this package must now be built the following way: +# install old package, build new package, install new package, rebuild + +pkgname=imagemagick +pkgver=6.4.2.10 +pkgrel=1 +pkgdesc="An image viewing/manipulation program" +arch=('i686' 'x86_64') +url="http://www.imagemagick.org/" +license=('custom') +depends=('lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr' 'libtool>=2.2' 'bzip2' 'libxml2') +#makedepends=('ghostscript' 'openexr') +options=('!makeflags' '!docs') +source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.bz2 \ + libpng_mmx_patch_x86_64.patch add_delegate.patch) +md5sums=('f60ae313a2cc2fcc980543165e7ebaf4' '069980fc2590c02aed86420996259302'\ + '7f5851c4450b73d52df55c7e806cc316') +sha1sums=('0c45712a07b0d337ac4130c3ad605566d013ea3f' + 'e42f3acbe85b6098af75c5cecc9a254baaa0482c' + '19b40dcbc5bf8efb8ce7190fed17e2921de32ea5') + +build() { + cd ${srcdir}/ImageMagick-${pkgver%.*} + + if [ "${CARCH}" = "x86_64" ]; then + patch -Np1 < ../libpng_mmx_patch_x86_64.patch || return 1 + fi + + patch -p0 < ../add_delegate.patch || return 1 + + #LIBS=-lMagickWand ./configure --prefix=/usr --without-modules --disable-static --disable-openmp \ + ./configure --prefix=/usr --without-modules --disable-static --disable-openmp \ + --with-x --with-wmf --with-openexr \ + --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \ + --with-perl --with-perl-options="INSTALLDIRS=vendor" \ + --without-gvc --without-djvu --without-jp2 \ + --without-fpx --without-dps || return 1 + + make || return 1 + make DESTDIR=${pkgdir} install || return 1 + install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1 + install -D -m644 NOTICE ${pkgdir}/usr/share/licenses/${pkgname}/NOTICE || return 1 + + #Cleaning + find ${pkgdir} -name '*.bs' -exec rm {} \; || return 1 + find ${pkgdir} -name '.packlist' -exec rm {} \; || return 1 + find ${pkgdir} -name 'perllocal.pod' -exec rm {} \; || return 1 + + rm -f ${pkgdir}/usr/lib/*.la || return 1 +} diff --git a/abs/core-testing/imagemagick/add_delegate.patch b/abs/core-testing/imagemagick/add_delegate.patch new file mode 100644 index 0000000..6ba6009 --- /dev/null +++ b/abs/core-testing/imagemagick/add_delegate.patch @@ -0,0 +1,8 @@ +--- config/delegates.xml.in.orig 2008-03-29 23:25:03.000000000 -0400 ++++ config/delegates.xml.in 2008-03-29 23:27:35.000000000 -0400 +@@ -103,4 +103,5 @@ + + + ++ + diff --git a/abs/core-testing/imagemagick/libpng_mmx_patch_x86_64.patch b/abs/core-testing/imagemagick/libpng_mmx_patch_x86_64.patch new file mode 100644 index 0000000..d86449a --- /dev/null +++ b/abs/core-testing/imagemagick/libpng_mmx_patch_x86_64.patch @@ -0,0 +1,12 @@ +diff -Naur ImageMagick-6.2.7.orig/coders/png.c ImageMagick-6.2.7/coders/png.c +--- ImageMagick-6.2.7.orig/coders/png.c 2006-05-21 12:35:55.784852536 +0200 ++++ ImageMagick-6.2.7/coders/png.c 2006-05-21 12:36:50.698504392 +0200 +@@ -164,6 +164,8 @@ + #define PNG_MAX_UINT (png_uint_32) 0x7fffffffL + #endif + ++#undef PNG_ASSEMBLER_CODE_SUPPORTED ++ + /* + Constant strings for known chunk types. If you need to add a chunk, + add a string holding the name here. To make the code more diff --git a/abs/core-testing/imlib2/PKGBUILD b/abs/core-testing/imlib2/PKGBUILD new file mode 100644 index 0000000..1fd9f74 --- /dev/null +++ b/abs/core-testing/imlib2/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 2921 2008-06-15 20:14:02Z eric $ +# Maintainer: arjan +# Contributor: Tom Newsom +pkgname=imlib2 +pkgver=1.4.1 +pkgrel=1 +pkgdesc="Imlib2 is the successor to Imlib. It is NOT a newer version -- Imlib 2 can be installed alongside Imlib 1.x" +arch=(i686 x86_64) +url="http://sourceforge.net/projects/enlightenment" +license=('BSD') +depends=('libtiff' 'giflib' 'bzip2' 'freetype2' 'libxext' 'libpng' 'libid3tag') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/enlightenment/$pkgname-$pkgver.tar.gz) +md5sums=('16a3d885e523303be794282c0ed90841') + +build() { + cd $startdir/src/$pkgname-$pkgver + + # Enable x86 MMX optimizations for i686 (32-bit assembler code not compatible with x86_64) + [ "${CARCH}" = "i686" ] && EXTRAOPTS="--disable-mmx" + # Disable AMD64 optimizations due to bug in assembler code + [ "${CARCH}" = "x86_64" ] && EXTRAOPTS="--disable-amd64" + + ./configure --prefix=/usr --sysconfdir=/etc/imlib2 --x-libraries=/usr/lib $EXTRAOPTS + make || return 1 + make DESTDIR=$startdir/pkg install + install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE.txt +} diff --git a/abs/core-testing/initscripts/ChangeLog b/abs/core-testing/initscripts/ChangeLog new file mode 100644 index 0000000..1ba9dc8 --- /dev/null +++ b/abs/core-testing/initscripts/ChangeLog @@ -0,0 +1,2083 @@ +commit d2ae38c8b06d057c7593b7ba836bf24a1f8f6c4f +Author: Aaron Griffin +Date: Tue Aug 5 14:34:53 2008 -0400 + + Set kbd_mode on all virtual consoles + + Previous behavior only set the mode for vc0. + See FS#11093 + + Signed-off-by: Aaron Griffin + +commit b7d66decca5117aaba3b73d2eccb97594ef1ea98 +Author: Daniel Kaminski +Date: Tue Jul 22 17:50:02 2008 -0400 + + ipv6 over ipv4 tunneling support in /etc/rc.d/network + + This is done by checking the route config for a double colon + + Signed-off-by: Aaron Griffin + +commit 04899c1b829f1a4708a04e2188b256901845770f +Author: Aaron Griffin +Date: Fri Jul 18 11:47:22 2008 -0400 + + Remount filesystems RO if umounting fails + + Just a safeguard, suggested by FS#10947 + + Signed-off-by: Aaron Griffin + +commit e13ee23fd2d0035150d178fc683079696fb446fc +Author: James Rayner +Date: Mon Jul 14 21:24:33 2008 +1000 + + Add some useful error messages to wireless code + + Additionally add optional WIRELESS_TIMEOUT parameter + + Signed-off-by: Aaron Griffin + +commit 84f76aafc5f6d7f3d2c2141d2930e42dcb82def0 +Author: Aaron Griffin +Date: Mon Jun 30 12:35:21 2008 -0400 + + Decouple ISO release name from initscripts + + This should aleviate some gripes + + Signed-off-by: Aaron Griffin + +commit 9dcd7a9fed510dacd14e4cf4497e73a98f847fac +Author: Natanael Copa +Date: Fri Jun 20 13:46:10 2008 -0400 + + Minor simplication for /etc/rc.d/functions.d/ + + Trivial simplification to make code more readable. + Removes one fork so booting should be "faster". Probably not mesureable + + Signed-off-by: Aaron Griffin + +commit fa73767d19ea505ec32533b8856122968207db2f +Author: Anton Fiuman +Date: Sun May 25 00:55:56 2008 +0200 + + Allow users to ovverride daemon start and stop in rc.multi and rc.shutdown + + Signed-off-by: Anton Fiuman + +commit 63db98c2a8e256f9219c5c6501b40846040bf089 +Author: Aaron Griffin +Date: Thu May 22 13:02:55 2008 -0400 + + Remove source_functions in favor of always sourcing the dir + + This is an obvious oversight on my part - this change allows + the overridden functions to work in daemon scripts and + anything else that uses /etc/rc.d/functions by itself. + + Signed-off-by: Aaron Griffin + +commit de031161e02772aaeaefed1398f8ad59621bd8bc +Author: Thomas Bächler +Date: Wed May 14 13:49:16 2008 +0200 + + Fix commit 521d7678cecb3018923f7c869bc8a5f74dc29268, this makes more sense + +commit af36e8dd3c025d7593bda4f310612989927149d1 +Author: Thomas Bächler +Date: Sun Apr 13 18:32:43 2008 +0200 + + Always quote $TIMEZONE to fix FS#10178 + +commit 521d7678cecb3018923f7c869bc8a5f74dc29268 +Author: Pierre Schmitz +Date: Sat Apr 12 13:37:22 2008 +0200 + + fixing udev hotplugging Some devices like scanners do not work with recent udev/initscript changes. This patch seems to fix such issues. + +commit 42c5f304ad361fd9e16d08a5230043e47437c399 +Author: Thomas Bächler +Date: Tue Apr 8 20:12:55 2008 +0200 + + Just some whitespace fixes + +commit 391cfa71285cfca49aed0d6d2a05c9a949cb9857 +Author: Thomas Bächler +Date: Mon Apr 7 15:33:20 2008 +0200 + + Remove setterm screen blanking from rc.sysinit + Contrary to what one may think, screen blanking not only affects the + console, but also the X server. This line may lead to unwanted blank screens + although one has DPMS disabled in X. Furthermore, it adds a hardcoded, + non-configurable default setting to Arch. + This should either be made configurable (but IMO, we don't need more stuff + in rc.conf) or added to rc.local by the user if needed. As this is a + one-liner, the second solution sounds good to me. + +commit a58228bfe3764008ecf971d420fb7fa0bb704b54 +Author: Thomas Bächler +Date: Sun Apr 6 23:37:17 2008 +0200 + + Remove extra newline from udev status output + +commit 307c850a0c345a092a21fff50da2f0658c3c03c4 +Author: Thomas Bächler +Date: Sun Apr 6 23:30:48 2008 +0200 + + Remove the "interface is already up" check from ifup + As stated in commit f589387f0b9ef56de8ab30f50a3c562e010baeeb, even an + interface that is 'UP' may need configuring. However, the check introduced + in this commit is nonsense (causing bug #9960, possibly others). The best + idea is to remove the check altogether: This may cause duplicate dhcpcd + processes to run (should be fixed), but otherwise ensures the interface is + brought up when it should be. + +commit 89355a468670983476d29b415c12e097d5d79ca5 +Author: Thomas Bächler +Date: Sun Apr 6 23:20:37 2008 +0200 + + Fix USEDIRECTISA in rc.shutdown as well + +commit b55845f7d0e3c81f1936d471370dcb40822463b0 +Author: Thomas Bächler +Date: Sun Apr 6 15:55:23 2008 +0200 + + Remove old initrd hacks + We haven't been using initrd for a while, so these hacks are unnecessary. + The "encrypted root device hack" was obsoleted by proper udev rules long + ago. The code to umount and free the initrd is not critical, so if somebody + insists on using initrd, it can be done in rc.local. + +commit 4c493ec5599b1a30dadc51567e2546a63feb87ef +Author: Thomas Bächler +Date: Sun Apr 6 15:50:57 2008 +0200 + + Make USEDIRECTISA default to no, which is a sane default according to hwlock's manpage. This is contrary to the behaviour in older initscripts. + +commit 4a4cb51a138d73753bb967c27a9f7ea8bf9f88b3 +Author: Thomas Bächler +Date: Sun Apr 6 15:48:22 2008 +0200 + + Move /sys mounting to the beginning, together with /proc and /dev and clean up some comments + +commit f3e064ec822b3dae191e1ae5d2bb921a970af86e +Author: Thomas Bächler +Date: Sun Apr 6 15:40:08 2008 +0200 + + Remove any special handling of usbfs from rc.sysinit + libusb has migrated to /dev/bus/usb, which is managed by udev and thus more + flexible. Some legacy applications (like VirtualBox) still use it. However, + since users need special permissions to access usbfs, they have to be + specified via mount options in fstab. So there are two cases: + 1) a user does not need usbfs + 2) a user needs it, but must add it to fstab to force the right permissions + Our old special handling in rc.sysinit is thus obsolete (and it was ugly + anyway). + +commit 5386d7332dd77ecf4113dfc10773b529f583e797 +Author: Roman Kyrylych +Date: Wed Mar 19 11:12:19 2008 +0200 + + Use actual device number for creating /dev/misc/rtc0 + + Signed-off-by: Roman Kyrylych + +commit 6e37620983c107e13120d1e249a37b3be6d0b12d +Author: Roman Kyrylych +Date: Tue Mar 18 22:43:38 2008 +0200 + + Do not try to create /dev/pts and /dev/shm twice + + Signed-off-by: Roman Kyrylych + +commit a71b075e90154073e3ba331de9b74b8bc088ec45 +Author: Aaron Griffin +Date: Tue Mar 18 12:33:24 2008 -0500 + + Fix a directory typo + + Looks like a 'bin/' slipped in there somewhere. Whoops + + Signed-off-by: Aaron Griffin + +commit 52a6990bc7ab0b48d6d227a8dcb782cb1d419dd5 +Author: Aaron Griffin +Date: Mon Mar 17 11:34:12 2008 -0500 + + Variable expansion quoting + + This was missed, and caused some gross output if a user + mistakenly had a space in their timezone (we should fail + gracefully here, not let bash error). + + Signed-off-by: Aaron Griffin + +commit 15647a9f42a00406ec1c1c02515fe1e90825bd9b +Author: Roman Kyrylych +Date: Tue Mar 11 00:02:22 2008 +0200 + + Remove the 'makedevs' script + + * last touched somewhere in 2005 + * not used by anything + * sits in /sbin but uses software from /usr/bin + * makedev in Extra exists + * if one wants a static /dev - just use mknod + + Signed-off-by: Roman Kyrylych + +commit 12ee0a4fe0108fe952dc31c5f42648037b9c5cde +Author: Roman Kyrylych +Date: Mon Mar 10 17:58:48 2008 +0200 + + Fix a typo in /dev/rtc creation steps + + Signed-off-by: Roman Kyrylych + +commit 7526db5d0405188fee94d16fbcfbdf13a17e6a45 +Author: Roman Kyrylych +Date: Sun Mar 9 17:22:11 2008 +0200 + + More full-path fixes + + Signed-off-by: Roman Kyrylych + +commit 2c9681f461a0cde98a88de65e232369df68ed859 +Author: Roman Kyrylych +Date: Sat Mar 8 20:02:09 2008 +0200 + + Add basic support for dependencies in rc.d scripts + + Example of use: + DEPENDS=('dbus' 'acpid') + . . . + ck_depends ${DEPENDS[@]} + and those daemons will be started if not running already + + Signed-off-by: Roman Kyrylych + +commit 45e331302268490cfb532ea6fe827cba1351ec5b +Author: Roman Kyrylych +Date: Sat Mar 8 19:22:48 2008 +0200 + + Use full path to binaries everywhere + + Signed-off-by: Roman Kyrylych + +commit 6214a05ea023b8bc3014d8032af18b2404276d00 +Author: Roman Kyrylych +Date: Sat Mar 8 18:45:24 2008 +0200 + + Create /dev/rtc before running hwclock (FS#9636) + + Signed-off-by: Roman Kyrylych + +commit 973c1b65ad9fb92c6a0e017a7b8bfb40c38b3bcd +Author: Roman Kyrylych +Date: Sat Mar 8 19:28:08 2008 +0200 + + Fix indentation in rc.d/functions + + Signed-off-by: Roman Kyrylych + +commit 646862aa989d82c35d267d5771c6cc620275bf4c +Author: Aaron Griffin +Date: Fri Mar 7 14:35:31 2008 -0600 + + Additional /dev/ setup that udev doesn't do + + These nodes are not covered by default udev, so lets make + sure they're added properly. + + Ref: FS#9726 + + Signed-off-by: Aaron Griffin + +commit abe6dcb83d16c6e40fed99c202085c78cb356fa1 +Author: Aaron Griffin +Date: Fri Mar 7 14:34:26 2008 -0600 + + Add my name to the copyright output + + Signed-off-by: Aaron Griffin + +commit 91b86efedd70e6b83232057fbf2b089a47b76333 +Author: Roman Kyrylych +Date: Thu Mar 6 00:24:20 2008 +0200 + + Revert back to not loading defkeymap + + * There is a patch for the kernel now, so no need to workaround the bug + * Add a missing check for an empty KEYMAP + + Signed-off-by: Roman Kyrylych + +commit 56fffa9954db654c1731e07f753c3de105896455 +Author: Roman Kyrylych +Date: Sun Mar 2 16:31:34 2008 +0200 + + Always load defkeymap + + It seems that there's a bug in the kernel 2.6.24, + which makes the built-in defkeymap to produce incorrect composite chars. + Thus keymaps that don't have 'include "compose.latin1"' have issues (FS#9593). + While it is better to fix this bug in kernel and all affected keymaps + loading defkeymaps before other keymaps seems to not hurt anyway. + + Signed-off-by: Roman Kyrylych + +commit f94f52e5ab877ffc3160d0bf20c70be9865d45b2 +Author: Roman Kyrylych +Date: Sat Mar 1 00:40:02 2008 +0200 + + Set up vc/0 as well + + Signed-off-by: Roman Kyrylych + +commit 1b5eeefa5a859a9c26a717603bd4c0e9fb74de82 +Author: Roman Kyrylych +Date: Sat Mar 1 00:04:01 2008 +0200 + + Do not mount /proc/bus/usb if commented in fstab + + Fixes FS#9451 + + Signed-off-by: Roman Kyrylych + +commit 4d0920ede7ce9c3d67e03c67b9ee584cf1a3fe9d +Author: Roman Kyrylych +Date: Thu Feb 28 13:55:41 2008 +0200 + + Make non-UTF-8 consoles work correctly in .24+ kernels + + * Since 2.6.24 the virtual terminal is in UTF-8 mode + and the keyboard is in Unicode mode by default, + and configurable only at run-time. + + * To make non-UTF-8 consoles work correctly: + - the non-UTF-8 mode is set for the virtual terminal, + - the XLATE mode is set for the keyboard. + + * UTF-8 mode is still set explicitly (not relying on default), + so console works correctly even in a case when user set vt.default_utf8=0 + in kernel commandline, but LOCALE in rc.conf is *.UTF-8. + + * % is a special symbol for printf, so it should be written twice. + + Signed-off-by: Roman Kyrylych + +commit ef86e38e9fd750db35e23aa949aa60e4c9f60f0c +Author: Roman Kyrylych +Date: Thu Feb 21 18:07:44 2008 +0200 + + Remove trailing whitespaces and do some little reformatting + + Signed-off-by: Roman Kyrylych + +commit bb639b33167e13602aacf34bab6032992e7b3d6a +Author: Aaron Griffin +Date: Wed Feb 20 23:46:57 2008 -0600 + + Add some udev stats output + + So we can see timing and all that jazz + + Signed-off-by: Aaron Griffin + +commit e658f681e1d36a75b527d182ce28ee0781ed4492 +Author: Dan McGee +Date: Thu Feb 14 20:16:49 2008 -0600 + + rc.shutdown: Fix hwclock double calls + + Commit 9673449ac0af77751eab62423114f27e7dbc497c added --directisa + configuration to rc.shutdown, but didn't remove the old hwclock calls and + instead just added a second call. Remove the original calls. + + Signed-off-by: Dan McGee + +commit e16e2d17c97f91cdb9eda0ad3525ee7977ad40a6 +Merge: 626037f... fbb8d26... +Author: Dan McGee +Date: Thu Feb 14 19:56:02 2008 -0600 + + Merge branch 'posix' into working + +commit 626037f6043596f21511b76b088dca86fc079f42 +Author: Dan McGee +Date: Thu Feb 14 19:53:03 2008 -0600 + + functions:source_functions(): don't fail on empty dir + + Instead of using globbing which will fail on an empty directory, use an ls + call similar to other places in the initscripts which is not prone to + failure. (See rc.single in the daemon shutdown for example.) + + Signed-off-by: Dan McGee + +commit fbb8d26a81dc220d7795be871e09c89fd0e03a76 +Author: Dan McGee +Date: Fri Nov 30 09:30:05 2007 -0600 + + Remove echo -e usage from rc.sysinit + + Use the always available (in sh) printf method instead. + + Signed-off-by: Dan McGee + +commit 7b6fddfb12106c9485a9ceb8fa1876a501d1f181 +Author: Dan McGee +Date: Fri Nov 30 09:23:02 2007 -0600 + + Remove some bashisms from network, even though we cannot convert it + + Since netfs and network source rc.conf, we cannot fully convert it to an sh + script. However, we can get rid of a few things that are not sh compatible. + + Signed-off-by: Dan McGee + +commit e3985084056bb80c886ea649674c3da5b906ccab +Author: Dan McGee +Date: Fri Nov 30 09:18:26 2007 -0600 + + Make install.sh sh compatible + + Signed-off-by: Dan McGee + +commit 980791fd888b6efff6319c77363aab473166ca6b +Author: Dan McGee +Date: Fri Nov 30 09:17:15 2007 -0600 + + Make functions sh compatible + + There is no reason to use bashisms in functions, so eliminate any and use + printf instead of echo options which are not guaranteed to be implemented in + a POSIX sh. + + Signed-off-by: Dan McGee + +commit dc4cee8f5987098a07a8b272573424b599a52598 +Author: Dan McGee +Date: Sat Nov 17 12:03:59 2007 -0600 + + Don't assume sh == bash + + Signed-off-by: Dan McGee + +commit ccc90d4d211a61a21c835c1e51c807ddd485a136 +Author: Roman Kyrylych +Date: Thu Feb 14 14:51:40 2008 -0600 + + Add support for (un)mounting nfs4 + + Signed-off-by: Roman Kyrylych + Signed-off-by: Aaron Griffin + +commit 9673449ac0af77751eab62423114f27e7dbc497c +Author: Roman Kyrylych +Date: Wed Jan 23 17:46:03 2008 -0600 + + Use --directisa configuration in rc.shutdown as well + + Signed-off-by: Roman Kyrylych + Signed-off-by: Aaron Griffin + +commit f589387f0b9ef56de8ab30f50a3c562e010baeeb +Author: Loic Nageleisen +Date: Tue Jan 8 09:14:42 2008 -0600 + + Enhance interface 'up' state checking + + Using the 'UP' state to imply operational status is wrong and even if a + device is 'UP' we may still need to run ifconfig/dhcp + + Signed-off-by: Aaron Griffin + +commit 9e341d31cd15172941268412d258c38591ff4988 +Author: Aaron Griffin +Date: Tue Jan 8 09:09:46 2008 -0600 + + network script logic cleanups/enhancements + + Signed-off-by: Aaron Griffin + +commit 7719cd7c0ac6d3f316ed8595becf29ef418d9af9 +Author: Aaron Griffin +Date: Tue Jan 8 09:07:05 2008 -0600 + + Remove the hotplug functionality from the network script + + Hotplug hasn't been supported in Arch for ages + + Signed-off-by: Aaron Griffin + +commit c2d7f40b2e0837f5544e6e2bfc22dc12e994ed16 +Author: Aaron Griffin +Date: Tue Jan 8 03:35:05 2008 -0600 + + Create some basic device nodes on initialization + + We need, at the very least, these three device nodes + (null, console, and zero) created before we get udev + up and running + + Signed-off-by: Aaron Griffin + +commit cd0b3911131ee0eddc32c5e3992036c2e769948f +Author: Jonathan Frazier +Date: Tue Jan 8 03:26:12 2008 -0600 + + minilogd cleanup and warning fixes + + gcc gives a warning about signed/unsigned ints, and it tries to write to + syslog's /dev/log with a dgram socket which gives an EPROTOCOL error. + + Signed-off-by: Aaron Griffin + +commit 9bf2014b750579d9720c13c9dfb9d358e0c27665 +Author: Aaron Griffin +Date: Tue Jan 8 03:06:56 2008 -0600 + + Allow --directisa configuration for hwclock calls + + Signed-off-by: Aaron Griffin + +commit ab5595c4f8cdea8e6b1813701828576cbfee2fc2 +Author: Aaron Griffin +Date: Thu Dec 20 12:32:12 2007 -0600 + + Deprecate MOD_BLACKLIST via some comments + + Signed-off-by: Aaron Griffin + +commit 2694f1224dfb5b5c734a781fc813e639139feb39 +Author: Aaron Griffin +Date: Thu Dec 20 12:19:56 2007 -0600 + + Mount our ram /dev as soon as possible + + On readonly root systems, lots of fdup calls fail on device nodes, for + instance in minilogd. So we'll mount /dev as early as we can + + Signed-off-by: Aaron Griffin + +commit 25811badce84cd157a8b66c84e78f931cad1d129 +Author: Aaron Griffin +Date: Thu Dec 20 12:15:26 2007 -0600 + + Set hwclock *before* udev is loaded + + This prevents /dev/ timestamps from being 'in the future' when the hwclock + is not in UTC. + + Closes FS#8665 + + Signed-off-by: Aaron Griffin + +commit b82f9d580d1ab70e78de4c81c180c5a308bd1238 +Author: James Rayner +Date: Thu Dec 20 10:53:25 2007 -0600 + + Tidy up rc.conf + + Signed-off-by: Aaron Griffin + +commit a4a35bda6ef3fd3e444e90ab362369f0b1f511dc +Author: Simo Leone +Date: Thu Dec 20 01:30:59 2007 -0600 + + Make the background black on all status text + + This is the easiest way to cleanup the script output on white terminals + without resorting to shutting off color. + + It won't make everyone happy, though. + + Ref: FS#1186 + + Signed-off-by: Aaron Griffin + +commit 5ccb8edb591213e03fc3909aa7db7242b9f54b30 +Author: Aaron Griffin +Date: Mon Dec 17 16:16:38 2007 -0600 + + Modify comment above MOD_AUTOLOAD to indicate that it autoloads + + Some people thought the comment was unclear + + Signed-off-by: Aaron Griffin + +commit 20d6e1081ec7105207c01e9d8d2a58bb4a145331 +Author: Aaron Griffin +Date: Mon Dec 17 16:08:05 2007 -0600 + + Save dmesg output at the end of the boot process + + Signed-off-by: Aaron Griffin + +commit 9d86b8814583509069ad6707688e2b41fc0d292f +Author: Roman Kyrylych +Date: Wed Dec 12 10:28:37 2007 -0600 + + Fix FS#8843 (no colors in rc.sysinit output with separate /usr) + + when tput returns exit code 3 - assume it output '8' + (as written in the /usr/share/terminfo/l/linux file) + + Signed-off-by: Roman Kyrylych + + Converted to if/elsif form + + Signed-off-by: Aaron Griffin + +commit 662a52c15343338e9d843c6f70d39acefd3a2c4c +Author: Dan McGee +Date: Sun Nov 18 11:47:54 2007 -0600 + + Move start_udev actions to rc.sysinit + + start_udev has been deprecated upstream for some time. We shouldn't use + some hacked up version of it either. + + Signed-off-by: Dan McGee + Signed-off-by: Aaron Griffin + +commit b1d0ec7cb6e8cea9f2fd7b0c11a0b607467615bd +Author: James Rayner +Date: Sat Nov 10 13:26:39 2007 +1100 + + Removing netcfg from initscripts + + Signed-off-by: Aaron Griffin + +commit b8e558d5784c8054a91dcefd8495b739a664dbae +Author: Aaron Griffin +Date: Wed Nov 28 14:47:09 2007 -0600 + + Source /etc/rc.d/functions.d/ for additional initscript functions + + Signed-off-by: Aaron Griffin + +commit 57879c6d6c51918b8106142e70643b53a9a8c7da +Author: Roman Kyrylych +Date: Fri Nov 9 16:47:44 2007 +0200 + + Improve error handling and allow multiple keymaps to be loaded + + Signed-off-by: Roman Kyrylych + +commit 9af6022b841c84283a061d6a7a5be943057ac3ae +Author: Dan McGee +Date: Sun Oct 21 20:29:16 2007 -0500 + + Add a few more comments and examples to inittab + + Signed-off-by: Dan McGee + +commit c5cffb501763c355299e593d16089fa5e56097b2 +Author: Thomas Bächler +Date: Sun Oct 21 18:51:51 2007 +0200 + + Fix broken terminal detection, disable colors when the terminal is unknown. + +commit e3f7fc94d40e13f65e00adb3d7c48fb6f790c7d7 +Author: Roman Kyrylych +Date: Sun Oct 21 16:39:24 2007 +0300 + + make non-ASCII chars work before login too + + Signed-off-by: Roman Kyrylych + +commit bbc2f945cb5df2ff103759ccb6de5183a87487b7 +Author: Thomas Bächler +Date: Sun Oct 21 15:11:20 2007 +0200 + + yes, I fixed a trailing whitespace + +commit 59f89b4a25fbc100551a814f5bcf81aa05b6c2e7 +Author: Roman Kyrylych +Date: Sun Oct 21 15:24:57 2007 +0300 + + Fix locale handling + + Signed-off-by: Roman Kyrylych + +commit 956e12f7f57a38ed382032d361ac22196d015170 +Author: Thomas Bächler +Date: Sun Oct 21 11:45:43 2007 +0200 + + change install.sh to exit on failure with return code 1 + +commit 7d018e6ba90b1b006068502f443b69e258795061 +Author: Thomas Bächler +Date: Sun Oct 21 11:40:50 2007 +0200 + + Added install script + +commit affd2bf9f3f84d507ab4c4a9998b4d1c2697300c +Author: Thomas Bächler +Date: Sun Oct 21 11:31:45 2007 +0200 + + Make daemon shutdown fix more consistent with the other init scripts and simplify it a bit + +commit 1b8636ed76e4bf5ef23c3b357e991c66e18714c5 +Author: Thomas Bächler +Date: Sun Oct 21 11:06:07 2007 +0200 + + fixing second part of #6959 + +commit bc1b5289228e74641a61cff3bb8b3751713dcf54 +Author: Thomas Bächler +Date: Sun Oct 21 10:53:28 2007 +0200 + + replace all remaining backticks with $(...) + +commit 1828938d4406d5a95b7c89828f61600f9e6975a6 +Author: Thomas Bächler +Date: Sun Oct 21 10:41:21 2007 +0200 + + fix the utf8 activating code: there are 63 virtual terminals, not 12 + +commit c8030f33082229530ef2f0ed699eddea4465dad9 +Author: Thomas Bächler +Date: Sun Oct 21 10:18:36 2007 +0200 + + Release name: "Don't Panic" -> "Core Dump" + +commit e064575e7842d55371db39991593f3ea0bf03b9b +Author: Thomas Bächler +Date: Sun Oct 21 10:15:47 2007 +0200 + + Remove hwdetect as it is maintained as a separate package and this version isn't up to date anyway. + +commit cfab94bc71dc2e072c691122df82f4b6f2bdef29 +Author: Thomas Bächler +Date: Sun Oct 21 10:05:28 2007 +0200 + + disable colors on stupid terminals + (fixes #7369) + +commit bb0984ad899ab3ae85ef8bf2c0e178a2b485885c +Author: Thomas Bächler +Date: Fri Oct 19 22:22:52 2007 +0000 + + added (barely tested) improvement of ASK keyword in crypttab + +commit 39a8c53bd8c2b82e824d9299a4a18d81c9e530bd +Author: Tobias Powalowski +Date: Fri Oct 19 07:02:14 2007 +0000 + + 'upgpkg: removed double entry of ifconfig lo' + +commit 31dbcc786457dd92d9f56618e7c946b94ec04646 +Author: Tobias Powalowski +Date: Fri Oct 19 06:08:19 2007 +0000 + + 'upgpkg: added /sys/class/net/lo check' + +commit 24e468641b51e5e0a05e631d62ad706b5c0a2dd7 +Author: Tobias Powalowski +Date: Thu Oct 18 16:50:26 2007 +0000 + + 'upgpkg: added loopbackhardcoded to rc.sysinit and remove it from rc.conf' + +commit 6f35411f5ee1db8db1e27faf91c7b03e900c5bee +Author: Dan McGee +Date: Thu Oct 18 16:15:58 2007 +0000 + + removing unnecessary isatty.c, replaced by shell test -t option + +commit a7c1404def678e27e0ac808397f46f81a1d2c8d4 +Author: Tobias Powalowski +Date: Thu Oct 18 14:27:56 2007 +0000 + + 'upgpkg: fixed utf typo' + +commit fa4866f0adce9c3e0bfc09fb878eebb99797c338 +Author: Tobias Powalowski +Date: Thu Oct 18 08:43:28 2007 +0000 + + 'upgpkg: trying to fix #6237,7554,7165,7641,5740' + +commit 8649f79e8e0027bd46da8b13f6d8ac5465471c35 +Author: Dan McGee +Date: Wed Aug 15 04:01:59 2007 +0000 + + upgpkg: initscripts 2007.08-2 + +commit e3c06e981af869d6a00ec8cde34bde1e15cb53ad +Author: Tobias Powalowski +Date: Mon Jul 30 20:24:42 2007 +0000 + + 'upgpgk: fixed nocpfs netfs bug and bump to don't panic release' + +commit 6852a33372052c1374248f6727e6f7755aeadd30 +Author: Thomas Bächler +Date: Sun May 13 13:40:40 2007 +0000 + + upgpkg: initscripts 0.8-11 + +commit aca95b25037ee1085c70a2e73b609a5d8cdff44b +Author: Thomas Bächler +Date: Sun May 13 12:01:11 2007 +0000 + + upgpkg: initscripts 0.8-10 + +commit cc2c8b1fa2a709b405e3efc65222b984a63e13c6 +Author: Tobias Powalowski +Date: Sat May 12 12:55:37 2007 +0000 + + 'upgpkg: bump to Duke and cleanup rc.sysinit and netds' + +commit 352dda7e7ba2c62686579e2c58b519ebb961b8be +Author: James Rayner +Date: Thu May 10 00:18:05 2007 +0000 + + upgpkg: initscripts 0.8-8 + fixing flyspray #7004 #6859, change in dhcpcd state directory. + +commit 3fc84b485213763335a5b820f8a4b4d6483be20d +Author: Tobias Powalowski +Date: Sun Apr 22 13:37:53 2007 +0000 + + 'upgpkg: added autoloading of standard acpi modules during boot, with the possibility to blacklist by default methods' + +commit b04f18c15cef8f6d48aa0aa63fa8104b551fe1db +Author: Thomas Bächler +Date: Sat Feb 10 09:14:34 2007 +0000 + + fixed typo, fixed verbose booting + +commit fff26e7f1fecaec1bf4c07cc07d1a426b160168b +Author: Thomas Bächler +Date: Tue Jan 30 18:56:37 2007 +0000 + + forgot to add rc.local.shutdown + +commit 36e129004f1dfb2e890edc55f99c8eb0df89c668 +Author: Tobias Powalowski +Date: Mon Jan 29 21:51:35 2007 +0000 + + 'upgpkg: added network listing help to rc.conf' + +commit 78b5f6beee0453dd938f1a3c6a6ab5776e6d78f3 +Author: Thomas Bächler +Date: Mon Jan 29 20:45:25 2007 +0000 + + fix 6038 + +commit 1bad30cc17f6cec15668f2bae9d6b72dd44788ee +Author: Tobias Powalowski +Date: Mon Jan 22 21:52:41 2007 +0000 + + 'upgpkg: fixed verbose boot option' + +commit bced30e91fea71c05e3e521aa7cf04583f0dadbb +Author: Tobias Powalowski +Date: Thu Jan 18 19:21:26 2007 +0000 + + 'upgpkg: fixed usb removal' + +commit 221f3c66ca47ccf283f8ebbe7f8799cc24176def +Author: Tobias Powalowski +Date: Sun Dec 31 16:11:52 2006 +0000 + + 'added a bunch of new options' + +commit c323a4ae268d20d293351dc5e195e34d19ed28e7 +Author: Thomas Bächler +Date: Mon Dec 18 21:54:53 2006 +0000 + + upgpkg: initscripts 0.8-2 + finally fixed 5445 + +commit f9b90969a7669044f098b90babe203b145bf55a9 +Author: Tobias Powalowski +Date: Mon Dec 18 19:24:54 2006 +0000 + + 'upgpkg: added --keymap option' + +commit 4b00503d2d25e40b0e962df08005d749cf3a4c87 +Author: Thomas Bächler +Date: Sun Dec 17 12:53:22 2006 +0000 + + added stat_append to functions, fixed fsck bugs when clock is not set + +commit 779bd2abb1b67431b6e353eaba569779fb718833 +Author: Thomas Bächler +Date: Sat Dec 16 23:49:35 2006 +0000 + + let lvm start quietly + +commit 9b58da29d7ce93bf3dc258a28d2fae00eb181f7e +Author: Thomas Bächler +Date: Sat Dec 16 22:03:29 2006 +0000 + + rc.sysinit, rc.shutdown: + - Code cleanup + - Added "verbose" commandline option for debugging + - Fixed #5968 + - Fixed #4648 + +commit 567edd5aa95d5728b50f9fff6d71c368a7f3966a +Author: Tobias Powalowski +Date: Sat Dec 16 13:31:00 2006 +0000 + + 'upgpkg: readded rc.sysinit and hwdetect for 0.8 package' + +commit 9a73b01bb6ea96b81b9ed887f8808b47b4fc5f19 +Author: Andreas Radke +Date: Sun Dec 10 21:21:20 2006 +0000 + + cuurent x86_64 updated + +commit 3fcefcf13b87883216dd5331b2aed84db473de04 +Author: Tobias Powalowski +Date: Sun Dec 10 14:34:46 2006 +0000 + + 'upgpkg: added voodoo tag and new hwdetect' + +commit 6b671f7901477d36fca5f8901731e4c0d5e7948f +Author: Aaron Griffin +Date: Thu Nov 16 01:01:16 2006 +0000 + + upgpkg: initscripts 0.7.3-1 + Bugfix #5529: Set timezone before hwclock calls + +commit c632bec83a37945e5bb4e7cedf4f4d96f0a955ec +Author: Judd Vinet +Date: Mon Nov 13 00:00:27 2006 +0000 + + FS#5385: Fixed RAID setup code + +commit ef6a41ebd7e2ab216e4b950df2a6d0826aef39b7 +Author: Judd Vinet +Date: Wed Nov 8 20:01:06 2006 +0000 + + patch from Paul to disable NIS domainname before shutting down (syslog-ng was hanging). Also added a 2>/dev/null to fsck during startup + +commit 01f15f89c1cf4cdb77c7d0a8ddb37ddabd7df012 +Author: Tobias Powalowski +Date: Mon Oct 2 14:50:41 2006 +0000 + + 'upgpkg: added psmouse workaround for new broken lappies' + +commit 9c34c7c5c8c525ce17a5bf447e40d78741ee15ba +Author: Judd Vinet +Date: Thu Sep 28 19:25:16 2006 +0000 + + added CONSOLE check to UTF-8/Locale stuff to avoid doing it when running scripts from cron + +commit 00081d09b7ab18b8672a299d61a1281819904890 +Author: Judd Vinet +Date: Tue Sep 26 06:34:35 2006 +0000 + + Added --directisa switch to hwclock in rc.shutdown + +commit 2f49e1bb285fc9ad7259caf5edb957d7c891c974 +Author: Tobias Powalowski +Date: Wed Sep 20 10:36:16 2006 +0000 + + 'upgpkg: added udev persistent rules check' + +commit 8d399cf84d6d6192a13286e33258aaa369eee1bb +Author: Tobias Powalowski +Date: Fri Aug 4 07:54:32 2006 +0000 + + 'upgpkg: added kexec support to rc.shutdown' + +commit 977797d7a67033d03c4be04dba5b789ecdf2a36f +Author: Judd Vinet +Date: Tue Jul 25 22:36:42 2006 +0000 + + set a default for LOCALE so it's no longer needed in /etc/profile + +commit 87132356080924e00822a4b24d593e94bb18e24a +Author: Judd Vinet +Date: Fri Jul 21 19:40:00 2006 +0000 + + added --directisa to hwclock calls, support for additional options in crypttab for non-LUKS partitions, fixed the WPA_OPTS varname typo in netcfg + +commit 8d214daab85c043f87ed21912b68172cc0e33635 +Author: Tobias Powalowski +Date: Fri Jul 7 15:17:34 2006 +0000 + + 'upgpkg: fixed usbfs mounting again' + +commit 93ba858cb8f3684506bcc5854ce32b637e108d00 +Author: Judd Vinet +Date: Fri Jun 30 19:40:10 2006 +0000 + + various fixes -- netcfg fixes, md device node creation fixes w/ mkinitcpio, 2.4 kernel support removed + +commit 4d91b544b6f666a12b84f82576b4309622806e83 +Author: Judd Vinet +Date: Fri Jun 30 15:54:33 2006 +0000 + + Fixed --menu when using gpm (#4916) + +commit 09bb556bf07b89130d27dc137190ff354beadecc +Author: Judd Vinet +Date: Wed Jun 28 17:27:47 2006 +0000 + + handle ESSID fields that contain spaces + +commit 6cc15eeb857f9a01e7199c4c665866c7728244aa +Author: Judd Vinet +Date: Thu Jun 15 21:54:12 2006 +0000 + + added patch from James Rayner to auto-configure WPA through netcfg + +commit 96971f91453600f1d94d3e333dfb8773d1e4f596 +Author: Judd Vinet +Date: Mon Jun 12 17:36:12 2006 +0000 + + fixed the path to the console maps in the comment area of rc.conf + +commit 5d708a122229e99d1f09f9cfd8297370e1778732 +Author: Tobias Powalowski +Date: Wed Jun 7 17:12:17 2006 +0000 + + 'upgpkg: removed the rest of 2.4 kernel' + +commit b4306a3ede324f6bdbfa5c7b80d0cff15f22c1be +Author: Tobias Powalowski +Date: Wed Jun 7 16:49:32 2006 +0000 + + 'upgpkg: removed kernel24 stuff eg. devfsd support and lvm1' + +commit ddac836cdbb67ba5b89d21aa3b25a67919efeb88 +Author: Judd Vinet +Date: Tue May 9 18:23:41 2006 +0000 + + upgpkg: initscripts 0.7.2 + +commit dfb74ab60c8bb84f3e02d89cfe8127e55aeb7984 +Author: Judd Vinet +Date: Mon Mar 27 18:13:56 2006 +0000 + + fix for #4296 + +commit 7cc268dcf5d2e64a3f10b808e8b1b90a8f6fec4a +Author: Judd Vinet +Date: Sun Feb 26 19:15:58 2006 +0000 + + Additional fix for locale stuff, re-enabled the depmod -A call at bootup + +commit befe253687d69267cac5e5953e0ca55d18bef000 +Author: Tobias Powalowski +Date: Fri Feb 24 06:57:54 2006 +0000 + + 'upgpkg: added depmod -A again' + +commit 7ad516d1a7bf6fb5eed4e43669a7fb2a0832a552 +Author: Tobias Powalowski +Date: Tue Feb 21 07:35:10 2006 +0000 + + 'upgpkg: fixed module loading and udev startup' + +commit e0074ab78392be117c4cc63b4e0832fef95f2009 +Author: Judd Vinet +Date: Mon Feb 20 05:33:27 2006 +0000 + + default LOCALE is now en_US.utf8 + +commit d4bd7c245c018d9de3f25eca580515cfc3048217 +Author: Judd Vinet +Date: Mon Feb 20 05:26:07 2006 +0000 + + fix for terminal/locale bug (3996) + +commit a33f5477d845f3919cd746ab2be1180cb025b415 +Author: Judd Vinet +Date: Thu Feb 16 17:56:33 2006 +0000 + + hwdetect->udev, removed default usbserial blacklist + +commit 655d3db463145facd994e5e3cfd0c0a911b30297 +Author: Judd Vinet +Date: Thu Feb 16 17:12:06 2006 +0000 + + added note about disallowed hyphens in bash variable names + +commit 207256890573ce867d4391c362b34f31a1a60865 +Author: Tobias Powalowski +Date: Thu Feb 16 10:23:38 2006 +0000 + + 'upgpkg: put loading modules in front of udev and disabled depmod -A during boot' + +commit 9058c034c77ab62b91f2cd7d3637a2cb04f7c7d7 +Author: Judd Vinet +Date: Mon Feb 13 04:47:51 2006 +0000 + + removed unnecessary line from netfs + +commit 6411dc721549d99335367f5643c0887095fc7818 +Author: Judd Vinet +Date: Thu Feb 9 18:48:17 2006 +0000 + + added note about dialog package required for netcfg menus + +commit 0d286b02f2c425d28c1908a82d99f266d3549919 +Author: Judd Vinet +Date: Mon Feb 6 19:38:45 2006 +0000 + + moved swap activation after local filesystem mounting, so people can use swap files + +commit 8172dd9403fa216479c458e222c9d01c5b293437 +Author: Tobias Powalowski +Date: Mon Feb 6 18:13:03 2006 +0000 + + 'upgpkg: fixed weird scsi raid controllers' + +commit f137bbe79f4249a296c0e9064a29f5c76f38273d +Author: Judd Vinet +Date: Wed Feb 1 21:24:08 2006 +0000 + + utf8 little fix + +commit affcb39fd921774f48b79fb9d48d68f3a917fd4f +Author: Judd Vinet +Date: Tue Jan 31 01:30:55 2006 +0000 + + added --mknodes switch to the vgscan call (LVM) + +commit bd6701616508c5bb21de9166e9b1daa6fe1de769 +Author: Judd Vinet +Date: Sat Jan 21 20:58:24 2006 +0000 + + fixed random-seed restoration + +commit e4af7e36ba40ab49993fcc4232dcebdedc1763b9 +Author: Tobias Powalowski +Date: Thu Jan 19 16:25:38 2006 +0000 + + 'upgpkg: update to new udev module loading' + +commit 8f67fcb5f1fb15d67f024f16bf3249da85375418 +Author: Judd Vinet +Date: Sat Jan 14 08:34:09 2006 +0000 + + added hook for rc.local.shutdown + +commit cef7bab5145b923577aeea7431d7b19f2dd3946b +Author: Judd Vinet +Date: Tue Jan 3 09:06:09 2006 +0000 + + changed xdm path in inittab + +commit 33d5e65a50fa302f6863277c52c061af721a3c44 +Author: Judd Vinet +Date: Mon Dec 19 18:43:03 2005 +0000 + + final touches for utf8 stuff (Thanks Roman\!) + +commit e4439a61bca626d05d3c6073ac94740db5c446c4 +Author: Judd Vinet +Date: Sat Dec 17 18:33:46 2005 +0000 + + re-fixed my utf fix (yea, that's right, i fell down a lot when i was a kid) + +commit 00b620075a21e293db4b55a8d451ecd2930dbce1 +Author: Judd Vinet +Date: Sat Dec 17 02:16:47 2005 +0000 + + added sr link to makedevs + +commit 0d08cad43172cc04df237a4a4271525ad1d527b3 +Author: Judd Vinet +Date: Sat Dec 17 00:59:04 2005 +0000 + + final utf8 fixes, a couple small fixes for hwdetect and netcfg + +commit cee3cbb3a261ce0ba812618493e9bd253424ea3f +Author: Judd Vinet +Date: Thu Dec 15 18:56:19 2005 +0000 + + added scsi CD nodes + +commit f14a9cc609ce341ef2327c3ae93aa2695b58b392 +Author: Tobias Powalowski +Date: Tue Dec 13 21:43:08 2005 +0000 + + 'upgpkg: added kernel_verion=, cleaned up some parts added --modules for MODULES= generation for rc.conf use' + +commit c4c551a2f870f579438ae38b07ff9c14008cd6c9 +Author: Judd Vinet +Date: Tue Dec 13 04:12:28 2005 +0000 + + makedevs fix + +commit a8db77d46d74fa3a8a0e13870b94c916a60358b8 +Author: Judd Vinet +Date: Tue Dec 13 04:06:46 2005 +0000 + + latest utf fixes + +commit fcdcb21e2c33b1d3e359dc847638b936caf2aeee +Author: Judd Vinet +Date: Tue Dec 13 01:55:31 2005 +0000 + + makedevs: added ternary and quaternary ide/scsi devices + +commit 675e9d69d02233e0079672f6c10cbe07da3027ad +Author: Tobias Powalowski +Date: Mon Dec 12 10:40:15 2005 +0000 + + 'upgpkg: removed unneeded utf stuff, umlauts in user names do not work, you even cannot create them, + added quiet option to filsystem check, fixed garbeled fonts if no framebuffer is used' + +commit d768a9c95a254e09a34c39aa86840c01cb6d97dd +Author: Judd Vinet +Date: Wed Dec 7 00:21:45 2005 +0000 + + changed both network scripts to use good ol' /bin/kill instead of dhcpcd's -k switch (I forgot about #2942) + +commit f45c3abd5697fa89d1a6431d8dbf5e96e6804ca8 +Author: Judd Vinet +Date: Tue Dec 6 06:45:42 2005 +0000 + + Added interface param to dhcpcd -k calls in network and netcfg + +commit cfaa5552fcbe964a172138e5e6c87e54abb6ce4c +Author: Judd Vinet +Date: Mon Dec 5 18:59:11 2005 +0000 + + dhcpcd fix in rc.d/network + +commit cec2d46513c7cd557f219fa2ede3c7a816a526dc +Author: Tobias Powalowski +Date: Sat Dec 3 13:25:37 2005 +0000 + + 'upgpkg: fixed ide check' + +commit 7e18ec8806c28d52c771cacda045aa3bd81ba0b2 +Author: Judd Vinet +Date: Thu Dec 1 21:04:15 2005 +0000 + + fixed wpa_cli path in netcfg + +commit 78365fe57d61645c1b8282784d863a0cd8537eb5 +Author: Judd Vinet +Date: Tue Nov 29 01:26:11 2005 +0000 + + finished crypttab work, fixed a bug in hwdetect related to custom kernels + +commit 0d7cb77c48fc6232a8342fba9056a1896898b066 +Author: Tobias Powalowski +Date: Mon Nov 28 22:32:00 2005 +0000 + + 'upgpkg: fixed custom kernels' + +commit 2c90c8af7bee4f06cf05c481e658406df35fe401 +Author: Judd Vinet +Date: Mon Nov 28 19:36:56 2005 +0000 + + added USEWPA to template to enable/disable wpa_supplicant + +commit 15c49deac15f97e647afc081c7b5e210ad4bdcd3 +Author: Judd Vinet +Date: Mon Nov 28 19:14:53 2005 +0000 + + moved sysctl config stuff to precede daemon startup (#3530) + +commit fb8a47586d0c5c5833a6bee2adc162a22b646d5a +Author: Tobias Powalowski +Date: Sun Nov 27 18:55:30 2005 +0000 + + 'upgpkg: fixed lock on kernels <= 2.6.12' + +commit 66779d909c3a08f2c3fa0811de12f0e3b5c54bc0 +Author: Tobias Powalowski +Date: Sat Nov 26 15:55:36 2005 +0000 + + 'upgpkg: fixed non ide systems, fixed usb modules' + +commit b087f41b86014ba5dfc0b23ea79d6897573fb562 +Author: Tobias Powalowski +Date: Wed Nov 23 12:54:55 2005 +0000 + + 'upgpkg: fixed hwdetect syntax for rc.sysinit' + +commit a03faeb98fbe82a01977a9900b0d1b6974aac3c6 +Author: Tobias Powalowski +Date: Wed Nov 23 12:45:41 2005 +0000 + + 'upgpkg: fixed mtp modules, added modules-order option, changes options to -- syntax' + +commit d8df29152b8401e4c56a07b8920f34fdf9252bc1 +Author: Judd Vinet +Date: Wed Nov 23 01:58:50 2005 +0000 + + added check for /sys/devices + +commit fca87ebae05b19c0da51c1b996f4bddad82c3115 +Author: Tobias Powalowski +Date: Mon Nov 21 08:52:49 2005 +0000 + + 'upgpkg: hwdetect fixed module order, added load_modules=off to rc.sysinit' + +commit d7695ef38916be8e806b84f8e195a45a7b2ec217 +Author: Tobias Powalowski +Date: Sat Nov 19 15:44:02 2005 +0000 + + 'upgpkg: added more modules' + +commit 561ff8a3abbda0a86cc2a479d8e1a9e1b965b0d1 +Author: Judd Vinet +Date: Sat Nov 19 01:47:31 2005 +0000 + + added crypttab stuff + +commit 23f08df5cb31d38347582e4d62f9279385c612ba +Author: Tobias Powalowski +Date: Fri Nov 18 19:00:25 2005 +0000 + + 'upgpkg : added full ide,scsi detection to hwdetect' + +commit 6931feb5463b3ce9119753bda74279ec87ed447a +Author: Tobias Powalowski +Date: Thu Nov 17 07:52:21 2005 +0000 + + 'upgpkg: added new PNP software and some workarounds' + +commit 0cddbac760aa1b38e5fb68d54b315cb01c67b7b6 +Author: Judd Vinet +Date: Tue Nov 15 09:07:13 2005 +0000 + + cosmetics + +commit 2dc0038155b978eb70be482313cc8535dadc436d +Author: Judd Vinet +Date: Tue Nov 15 02:51:52 2005 +0000 + + added variables for autoloading modules, cleaned up rc.conf a bit + +commit abdeaf8051aaadb9f5270a14e45481a8d61e0b95 +Author: Judd Vinet +Date: Tue Nov 15 01:18:14 2005 +0000 + + added tpowa's changes, cleaned up output and removed redundant code + +commit 684a99329e37924e84344cb340e5022628d6777c +Author: Judd Vinet +Date: Mon Nov 14 17:46:46 2005 +0000 + + more thorough cleaning of /var/run at bootup + +commit e3315ad97c60b8cbad31aff8500d269d9176a9b5 +Author: Tobias Powalowski +Date: Sat Nov 12 15:00:08 2005 +0000 + + 'upgpkg: added more text to show modules, to make it more readable :) " + +commit 9e02c37ccd310844c919f27af64c901979c4105d +Author: Judd Vinet +Date: Fri Nov 11 18:49:54 2005 +0000 + + updated hwdetect + +commit 9683aeadd86569b69ad44d270e006284e565dfd5 +Author: Judd Vinet +Date: Fri Nov 11 18:46:12 2005 +0000 + + changed ifup() to skip interfaces that are already up + +commit 78ce45a497753e2be061e29a6464fcd969041895 +Author: Judd Vinet +Date: Thu Nov 10 21:56:55 2005 +0000 + + added nocifs to pre-network mounts, fixed mdadm.conf missing errors + +commit 0daa0d11302e16ba26d7518c1edf0e4887aade9c +Author: Judd Vinet +Date: Thu Nov 10 19:21:59 2005 +0000 + + little bugfix + +commit d87c9749651741249b4c7cbf5f18b7ab1b3300fb +Author: Judd Vinet +Date: Thu Nov 10 19:06:51 2005 +0000 + + tpowa's hardware detection script + +commit d7e23b7ef7c92f7c9529c65a255b524b26648cc3 +Author: Judd Vinet +Date: Thu Nov 10 02:34:20 2005 +0000 + + added more intelligence for RAID/LVM setups from the initrd + +commit 0e992c0464125a0cb0207171a053dbf64c593833 +Author: Judd Vinet +Date: Wed Nov 9 21:22:44 2005 +0000 + + added logic to free up initrd memory once it's not needed anymore + +commit 71468248567e6bf1e794094d9b5f87ac61de033a +Author: Judd Vinet +Date: Wed Nov 9 21:21:17 2005 +0000 + + added logic to free up initrd memory once it's not needed anymore + +commit f947ecffc4a9109d0790e5b2853e2a835b4cf81b +Author: Judd Vinet +Date: Fri Nov 4 18:29:25 2005 +0000 + + fixed a syntax bug in locale setting + +commit 826e8af03cdfc3edec0dfc382a4f4308748a08f7 +Author: Judd Vinet +Date: Fri Nov 4 09:50:36 2005 +0000 + + added support for encrypted root filesystems through the initrd + +commit e00744e1d385f80f44618baea869136dcf64c88c +Author: Judd Vinet +Date: Fri Nov 4 01:44:56 2005 +0000 + + dm changes + +commit 3f2fb1767eb2c8167a4f78999e431da73b9c8e8d +Author: Judd Vinet +Date: Fri Nov 4 00:54:22 2005 +0000 + + makedevs helper script -- not added to package yet + +commit c8a4f09b7943a7fe9a875d9fc7af7decd29db6a2 +Author: Judd Vinet +Date: Sat Oct 22 21:23:47 2005 +0000 + + added patch for wpa_supplicant support + +commit f22d7a53b09ad0e28911117412c1cd0ab5c7bb68 +Author: Judd Vinet +Date: Fri Oct 21 23:35:39 2005 +0000 + + upgpkg: initscripts 0.7.1 + +commit fa6d682d8bb1d95525e9f6540917446ad1247ea6 +Author: Judd Vinet +Date: Wed Oct 12 16:53:43 2005 +0000 + + another quick fix for netcfg stuff (no rebuild yet) + +commit 14886e1bf20897e2efbc677d6bd1846db0201cbb +Author: Judd Vinet +Date: Thu Oct 6 17:00:31 2005 +0000 + + added WIFI_WAIT parameter (no rebuild yet) + +commit 79142a38d91eaf27a6c677e0a6511f855e57e30d +Author: Judd Vinet +Date: Mon Oct 3 17:58:51 2005 +0000 + + added ability to use the netcfg menu from the NET env var + +commit 39f5db6e89fd04da3979c11c3b2761ea031cd94d +Author: Judd Vinet +Date: Thu Sep 29 07:22:25 2005 +0000 + + added tpowa's fix for locale stuff + +commit e772aeae76f2ad704a834dc17df02dbc137a6573 +Author: Judd Vinet +Date: Thu Sep 15 20:05:07 2005 +0000 + + modified netcfg/network scripts -- you can list multiple entries in NET_PROFILES that use the same INTERFACE. They will be started one at a time, and the first successful one will be kept. + +commit 0be8f5b2d33fc6160e2a62d33fc1f828218fa90a +Author: Judd Vinet +Date: Mon Jul 18 19:17:14 2005 +0000 + + fixed netcfg to remove stale dhcpcd .pid files (#2973) + +commit 00945333dc1dd08d893a6c42f395e7d3c81dad0d +Author: Judd Vinet +Date: Wed Jul 6 05:15:37 2005 +0000 + + fixed a netcfg bug where disabled profiles were being started + +commit 0fa1f0eeb3422ba0e84a346a20437172f26859da +Author: Judd Vinet +Date: Fri Jul 1 02:54:50 2005 +0000 + + fixed a --stopall bug in netcfg + +commit a440a006d7dc42ad072b13986f1f737e8f7e1719 +Author: Judd Vinet +Date: Fri Jul 1 00:13:38 2005 +0000 + + fixed some spacing in rc.multi -- cosmetic + +commit 863e8311cfc2ec7dc98fdb43abaa8499dd3414a4 +Author: Judd Vinet +Date: Thu Jun 30 23:57:54 2005 +0000 + + added new netcfg stuff for roaming network profiles + +commit 47ca58301f0bf0680baf59465202c4209b1ac112 +Author: Judd Vinet +Date: Sun Jun 5 20:30:12 2005 +0000 + + rc.sysinit now sets the NIS domain name, if configured. Also fixed a /var/locks typo + +commit 0ad54a5ba99d95c9b5dfe02f567e1f349de6a720 +Author: Judd Vinet +Date: Wed Jun 1 17:36:42 2005 +0000 + + added -q switch to sysctl + +commit b5d692b639b9e4a47cd6ba920b91a6d2ff50dc3d +Author: Judd Vinet +Date: Tue May 31 18:31:01 2005 +0000 + + moved usb setup above the Loading Modules stage, so sane and other usb things will work correctly (#2770) + +commit cc6648d06dba085b903db820ad581dd94eb669ef +Author: Judd Vinet +Date: Sun May 22 17:40:33 2005 +0000 + + added sysctl call from rc.sysinit + +commit 41e115b5973f6498ce4bfce6fe772b8d0b459700 +Author: Judd Vinet +Date: Mon Apr 18 06:59:02 2005 +0000 + + added a /proc/modules check before running modprobe, just in case the user is running a non-modular kernel + +commit c4a367e15b1bf0c9814a674c0a55084aa714245a +Author: Judd Vinet +Date: Thu Mar 24 18:53:37 2005 +0000 + + added CIFS to netfs script + +commit 8b862a2073ad6fe7303a4dbbe7d7316a60db1147 +Author: Judd Vinet +Date: Wed Mar 16 17:31:30 2005 +0000 + + updated copyright year in rc.sysinit + +commit 8aff6add70fd50b3febe363a0002098f21e2679b +Author: Judd Vinet +Date: Fri Mar 11 20:02:08 2005 +0000 + + added support for backgrounding daemons at startup with a '@' prefix, commented out the ldconfig call at startup, added support for unicode console maps, added a hotplug_ifup() function rc.d/network for hotplug's net.agent to use + +commit 22805e822d4e9fee9c1f4331dee31bccd1db45d2 +Author: Judd Vinet +Date: Sun Mar 6 20:08:29 2005 +0000 + + added logic to handle shutdown -F (forcefsck) + +commit 92d43c54f0bd5142a2a844b1910d15c808d86992 +Author: Judd Vinet +Date: Fri Feb 11 01:21:43 2005 +0000 + + added ethernet bonding support (still untested) + +commit e8a2e4663543d16fcafa4c62c75f42fdab32ff28 +Author: Judd Vinet +Date: Sun Jan 2 23:52:40 2005 +0000 + + fixed a typo in the rc.conf comments + +commit 45d3c546ee36b28c6808fb4330669b1c23437c26 +Author: Judd Vinet +Date: Tue Nov 30 07:33:19 2004 +0000 + + fixed the missing /dev/initctl problem with udev in runlevel 1 + +commit 4c1c59be80c29f73655913ff139717268ff1f50f +Author: Judd Vinet +Date: Tue Nov 23 22:58:25 2004 +0000 + + made rc.d/network pay attention to the new conf.d files (dhcpcd and wireless). also modified rc.sysinit to wait til after modules are loaded before attempting to mount /proc/bus/usb. If the user uses hotplug, then the usb host modules may not be loaded yet, but that's okay -- hotplug will mount /proc/bus/usb for them + +commit 2822ea48f2e7609232d4e4b47285d60097de2828 +Author: Judd Vinet +Date: Tue Sep 28 06:24:03 2004 +0000 + + used depmod -A in rc.sysinit to update module deps + +commit 85c899a1ca88c088aaeb679dc009687670e30ac7 +Author: Judd Vinet +Date: Fri Sep 24 17:22:34 2004 +0000 + + updated rc.single to pay attention to udev and syslog-ng + +commit 8784d3a487b1613759e871c8f8b4a4530509bdd3 +Author: Judd Vinet +Date: Sun Sep 12 19:40:51 2004 +0000 + + added fix for xorg temp directories (bug #1408) + +commit 20dceb289f61b69a98c6377921ee2a009aeefd98 +Author: Judd Vinet +Date: Fri Jul 23 01:03:08 2004 +0000 + + re-mounted / after removing /etc/mtab, so it's written to mtab properly + +commit 9f5d7b15d7b58b7a3d80a8923a2ff1952c90966a +Author: Judd Vinet +Date: Wed Jul 21 22:15:59 2004 +0000 + + re-mount /sys and /proc once / is rw so the entries can be written to /etc/mtab + +commit ef0a365fc88fd1b02883dd42e0afb0929fbfa3f4 +Author: Judd Vinet +Date: Sun Jul 18 21:28:41 2004 +0000 + + fixed the sysfs problem with 2.4 + +commit 5ef7c1839eed06599d615380dae4447fe43dfb34 +Author: Judd Vinet +Date: Fri Jul 16 03:03:26 2004 +0000 + + modified ifdown to bring a dhcp'd eth0 down even if the .pid file is not found (#756) + +commit 2881e158d80e1203d2fae41ff2ce0f122b132e45 +Author: Judd Vinet +Date: Fri Jul 16 01:03:51 2004 +0000 + + made syslog-ng Arch's new default logger + +commit 3280eeff177ecf79c32213303c9eb320b579d040 +Author: Judd Vinet +Date: Fri Jul 16 00:27:57 2004 +0000 + + updated version header to 0.7, added support for udev and static /dev trees + +commit 2c20f4d5637da88e983b65db9c97373aa79d8a37 +Author: Judd Vinet +Date: Sat Jul 3 19:40:02 2004 +0000 + + added iflist and rtlist functions and made ifup,ifdown,rtup,rtdown accessible from outside the script + +commit cd0e2c63acc50d080edba54b797f7f1c58da1312 +Author: Judd Vinet +Date: Thu May 27 00:30:15 2004 +0000 + + fixed the lvm2 segfault on shutdown + +commit f396331a675e17ef282b56ea228e66383d401400 +Author: Judd Vinet +Date: Wed May 19 16:56:48 2004 +0000 + + added sysfs mounting to fix LVM2 segfaults + +commit 446e095bdfb1d4d9c31f729d4169aa4a9f44797f +Author: Judd Vinet +Date: Tue May 18 23:40:53 2004 +0000 + + added better LVM handling + +commit e555d5efc43f7e8597dd90482e145f6d1936faf8 +Author: Judd Vinet +Date: Tue May 11 21:34:59 2004 +0000 + + added hotplug to the DAEMONS array (disabled by default) + +commit 262af2251dd4675e3664435068d4a96b21ab7d74 +Author: Judd Vinet +Date: Fri Mar 26 20:01:07 2004 +0000 + + added -h arg to poweroff to park the hard drives + +commit abbe7921517e87dcf3fa61036d26d72bc714257a +Author: Judd Vinet +Date: Sun Feb 29 23:09:37 2004 +0000 + + added --ignorelockingfailure during startup vgchange (LVM2) + +commit 0d76f45bffddced00c83b0c06f1be796a780366b +Author: Judd Vinet +Date: Sun Feb 29 07:03:00 2004 +0000 + + updated for LVM2 + +commit d9f8f3c07bcf1ab349fa6484980a04ef57c7212c +Author: Judd Vinet +Date: Mon Feb 23 03:32:36 2004 +0000 + + added setup commands for LVM2 + +commit d4a5c5ef402ca7315e5429eaccb0748e38b964af +Author: Judd Vinet +Date: Thu Feb 19 18:50:09 2004 +0000 + + added cleanups by Leif Askeland + +commit 45ede7cf9dd872c580e9c2a57a00b0350f035371 +Author: Judd Vinet +Date: Wed Feb 18 19:35:17 2004 +0000 + + updated copyright + +commit b6fab06a33cb0c829731c3123ef35444c6909d72 +Author: Judd Vinet +Date: Fri Jan 30 18:30:06 2004 +0000 + + added a rc.d/netfs script to mount network-based filesystems from DAEMONS + +commit 4abccbdf439817f1328547f1f22db969fe6d8591 +Author: Judd Vinet +Date: Sat Jan 10 00:46:13 2004 +0000 + + fixed a kernel 2.6 bug re: console fonts + +commit a7768b2ae842c55413b1dce8a3f19e7c730885fa +Author: Judd Vinet +Date: Tue Dec 30 22:42:18 2003 +0000 + + network-based mounts are not mounted til rc.multi runs + +commit 9009002d949745ec8824662680c06cf34040dba8 +Author: Judd Vinet +Date: Tue Dec 30 22:37:50 2003 +0000 + + removed a debug comment + +commit 4fa550ea84f951b4afe5c2e4af4aad32b7a901f6 +Author: Judd Vinet +Date: Tue Dec 30 22:23:36 2003 +0000 + + added a cosmetic fix to ifdown() in rc.d/network + +commit e9b62e0418df5ce6db98de36837bab2922154229 +Author: Judd Vinet +Date: Sun Dec 21 08:58:37 2003 +0000 + + removed a leftover debugging statement + +commit a71e42c461da1672582143a829654049399616e7 +Author: Judd Vinet +Date: Sun Dec 21 00:48:23 2003 +0000 + + upgpkg: initscripts 0.6 + +commit 53ae13821436183990e40cffefa8c9cff4b4f2ae +Author: Judd Vinet +Date: Fri Oct 10 22:24:34 2003 +0000 + + fixed the licensing line + +commit 93dd5710cf2273c228135959c22f9e4f33d78477 +Author: Judd Vinet +Date: Fri Oct 10 01:26:53 2003 +0000 + + added a missing space + +commit 065e944539ec9b527fa163317c0a633c872c809b +Author: Judd Vinet +Date: Fri Oct 10 01:16:08 2003 +0000 + + a little formatting improvement + +commit 7f4117b05f9e4730657779ec7d4b3b08ba12616c +Author: Judd Vinet +Date: Fri Oct 10 01:10:18 2003 +0000 + + added color to rc messages and fixed bug #168 + +commit be8b6f59470b8779c3d4e10b3045507920931896 +Author: Judd Vinet +Date: Sat Oct 4 07:41:42 2003 +0000 + + added -x check to /sbin/fsck, so reiserfs users can uninstall e2fsprogs without script errors + +commit 3a161b0240eb8eedcc8affb5e0c5b92d058619d9 +Author: Judd Vinet +Date: Fri Sep 19 05:16:21 2003 +0000 + + added consolefont setting to rc.conf + +commit 6ea51dec01002c6b392c374fa70a62020edffd84 +Author: Judd Vinet +Date: Fri Sep 19 04:57:20 2003 +0000 + + added timeout to dhcp startup + +commit 2a48c5bd8db694cfe3a26cc3ef92e36050859b31 +Author: Judd Vinet +Date: Fri Sep 19 04:29:34 2003 +0000 + + modified network script to not bail out on error + +commit 25223b3c0c1be7d320299af4e31062295694098a +Author: Judd Vinet +Date: Mon Aug 25 19:15:49 2003 +0000 + + improved lvm detection/activation + +commit da04ddf1b88b62ad77db29b8efa33649a0871b58 +Author: Judd Vinet +Date: Sat Jul 12 19:21:26 2003 +0000 + + added a check for lvmtab before activating LVM groups + +commit e39affb13f412f21a93205431c2abc625b4238a4 +Author: Judd Vinet +Date: Wed Jul 9 02:13:45 2003 +0000 + + removed the conf.d stuff -- conf.d files will be parsed individually by the rc.d scripts to avoid name collisions + +commit d69b11e73a70c9c0ed6cd888ff4ac4eb3e877ec2 +Author: Judd Vinet +Date: Wed Jun 4 00:22:45 2003 +0000 + + fixed a rc.sysinit bug and moved conf.d parsing to the top of rc.conf + +commit 18c7679d90ca5c1c9508548c35c0a4ea14ca4d6f +Author: Judd Vinet +Date: Tue May 27 18:29:39 2003 +0000 + + fixed a small typo + +commit 2e25861ad03003273707fa604522e3390c24f895 +Author: Judd Vinet +Date: Tue May 27 17:14:50 2003 +0000 + + moved nfsmount to nfs-utils + +commit ba769985bf38b1eb4e54f0e19d8b3502216646d6 +Author: Judd Vinet +Date: Mon May 26 22:22:04 2003 +0000 + + added lvm handling + +commit df91d849d2c19bd070473da49dd8befc7aae978c +Author: Judd Vinet +Date: Fri May 23 23:58:57 2003 +0000 + + upgpkg: initscripts 0.5 + +commit ead9f8db5fe817f019512681d5169dffad705357 +Author: Judd Vinet +Date: Thu May 8 18:12:46 2003 +0000 + + added -D, -H, and -h to the dhcp line + +commit a85df6abb081d7a7d51b00e7e301d1497fede30a +Author: Judd Vinet +Date: Fri Feb 7 17:05:02 2003 +0000 + + updated PKGBUILD release + +commit e4398c2e693441b8844645ee69fd3b7e483b3530 +Author: Judd Vinet +Date: Fri Feb 7 16:58:42 2003 +0000 + + added the MODULES=() line to rc.conf, with loading in rc.sysinit + +commit f6081f262419c2a4880d372636e391a52e148782 +Author: Judd Vinet +Date: Tue Jan 7 01:48:51 2003 +0000 + + updated rc.single to shutdown daemons correctly + +commit 6c4a6fc1938f12ee85b4f593de64a8776e5c1ba0 +Author: Judd Vinet +Date: Mon Jan 6 23:23:41 2003 +0000 + + kill dhcpcd pid files before running the client daemon + +commit 19c04471ce76a3f803fdf47b964880266b529070 +Author: Judd Vinet +Date: Sat Dec 14 00:13:55 2002 +0000 + + fixed the location of adjtime + +commit 96cb8c51e0ddb57f382c958ebb7808baaa258765 +Author: Judd Vinet +Date: Thu Dec 12 22:27:36 2002 +0000 + + modified to stat_fail to return a $retval + +commit 81da8c411f590b436e0cffcae9dd4c30598d35b2 +Author: Judd Vinet +Date: Fri Nov 29 09:06:45 2002 +0000 + + fixed a syntax bug in rc.sysinit + +commit c5f67416f3250e0d16eb2e588fc2b62435727d3c +Author: Judd Vinet +Date: Wed Nov 27 00:36:14 2002 +0000 + + fix + +commit 43cda626dbc05e92dffc0027ef19db9d3cc44d37 +Author: Judd Vinet +Date: Tue Nov 26 23:26:48 2002 +0000 + + added nfsmount (from jk) + +commit c8cd508809408a0be9f1fbeb65775ab7fb083f3b +Author: Judd Vinet +Date: Tue Nov 26 18:17:31 2002 +0000 + + Added utf hwclock support (from user patch) + +commit 914b0b3b572a3d5d311682a88424d165589798f1 +Author: Judd Vinet +Date: Sat Nov 23 20:37:55 2002 +0000 + + added jk's changes: system clock is set earlier on, and modules.dep is only + updated if new modules are present. + +commit dd4248ed74b9adce32910ee95274719249220757 +Author: Judd Vinet +Date: Wed Aug 28 21:43:10 2002 +0000 + + removed PROFILES array + +commit eb2f42cba2d8134e83321810dcad897cc88e4716 +Author: Judd Vinet +Date: Sat Aug 24 20:54:22 2002 +0000 + + rc.sysinit removes /var/run/daemons/* on bootup + +commit fd8fde036ab46b593590b362bc94b051e432a295 +Author: Judd Vinet +Date: Wed Jul 24 02:57:16 2002 +0000 + + Upgraded initscripts to 0.3 + +commit 2b503065569fa2ffedf5eafc76158c74062ac49b +Author: Judd Vinet +Date: Tue Jun 11 05:07:54 2002 +0000 + + nada + +commit efa9a6d681b87fa4b8e321173690144b17a08d35 +Author: Judd Vinet +Date: Sat Apr 27 21:04:15 2002 +0000 + + Added DHCP handling to initscripts + +commit 30277f5e1ce30a10ed08ae2529282718c86ac826 +Author: Judd Vinet +Date: Fri Apr 19 17:16:37 2002 +0000 + + *** empty log message *** + +commit f7a1c1ba6c35069ed6086e41146471fe97856325 +Author: Judd Vinet +Date: Fri Apr 19 17:15:35 2002 +0000 + + *** empty log message *** + +commit 3a3db1e368443447d7eaec461110bb122d026d83 +Author: Judd Vinet +Date: Fri Apr 19 17:13:21 2002 +0000 + + Cleaned up networking in initscripts + +commit cd5a839558fa3e5b10423fa33e621be2f27acf12 +Author: Judd Vinet +Date: Fri Apr 19 07:28:04 2002 +0000 + + Updated for /etc/profile.d + +commit f5e0fa814e1f31279509645a25057dcefa5eaadc +Author: Judd Vinet +Date: Tue Apr 16 03:59:06 2002 +0000 + + Updated network rc script with jproctor's disable-eth changes + +commit 8bc78f134bf719b16a3b3b2a7cea947fbf526e3b +Author: Judd Vinet +Date: Mon Apr 15 16:45:38 2002 +0000 + + Added arch-release to filesystem + Fixed initscripts (again) + +commit b840b6f59bfa39bceb663ad1b40f4c0ff5984366 +Author: Judd Vinet +Date: Mon Apr 15 07:00:55 2002 +0000 + + *** empty log message *** + +commit 9a59bb9539dacac884b9c3b0088e22ba762f2b9b +Author: Judd Vinet +Date: Mon Apr 15 06:53:10 2002 +0000 + + Updated initscripts + +commit 2f4936aec49df2c681ae0862103cee8376c5ab57 +Author: Judd Vinet +Date: Mon Apr 15 06:47:05 2002 +0000 + + Bugfix for initscripts + +commit 5b61b6c2bf49d75df992a4dc39757e66a536dbcd +Author: Judd Vinet +Date: Mon Apr 15 06:41:16 2002 +0000 + + Updated initscripts for multiple ethernet interfaces + +commit 91fd2beff99c9e623a201c8221964353c8669044 +Author: Judd Vinet +Date: Thu Apr 11 05:06:15 2002 +0000 + + Updated installer script + Added package dhcpcd + Took ash job control out of busybox for bootdisk + +commit 2cb34b31712bf72ae6c30e5029572463152a082f +Author: Judd Vinet +Date: Sun Mar 24 08:50:48 2002 +0000 + + Fixed a runlevel bug in initscripts + +commit 65405267704892a9bcb42186c95adcf4566cbf8c +Author: Judd Vinet +Date: Sun Mar 24 08:40:40 2002 +0000 + + Added rc.d network script to initscripts + +commit eea6fee11ad792708d6b8fbf0cb5b42b00ea1c91 +Author: Judd Vinet +Date: Thu Mar 14 08:34:49 2002 +0000 + + Removed all filelist files from repository + +commit 57d51e9a853fc21be0e733253ac56f2d9756d3a7 +Author: Judd Vinet +Date: Wed Mar 13 08:05:47 2002 +0000 + + Updated inittab for X11 + +commit d0ea35d522f7e68b198afe01bf369463af56259f +Author: Judd Vinet +Date: Tue Mar 12 05:37:01 2002 +0000 + + Rebuild package pcmcia-cs for 2.4.18 + Tweaked initscripts/filesystem + Added doc/install.txt and misc/cdboot/etc/issue and scripts/makerelease + +commit 14e3f9480a7364200b999477fa4ab9da16884831 +Author: Judd Vinet +Date: Mon Mar 11 00:58:34 2002 +0000 + + Removed rc.proto, updated rc.single + +commit 325b46a6b02aee695658eafe6b714d0e02810e1a +Author: Judd Vinet +Date: Sat Mar 9 10:07:16 2002 +0000 + + Added some rudimentary networking stuff + +commit 897380f9b8071b8df0dcdb85cc9e1424640762b9 +Author: Judd Vinet +Date: Tue Mar 5 04:59:03 2002 +0000 + + Changed name to Arch Linux + +commit 98c76a453222169f12b0e95f8a7ed0175e182598 +Author: Judd Vinet +Date: Mon Mar 4 07:28:25 2002 +0000 + + Initial revision diff --git a/abs/core-testing/initscripts/PKGBUILD b/abs/core-testing/initscripts/PKGBUILD new file mode 100644 index 0000000..b62fcaa --- /dev/null +++ b/abs/core-testing/initscripts/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 8634 2008-08-14 09:53:14Z pierre $ +# Maintainer: Thomas Baechler +# Maintainer: Aaron Griffin + +pkgname=initscripts +pkgver=2008.08 +pkgrel=1 +pkgdesc="System initialization/bootup scripts" +arch=('i686' 'x86_64') +url="http://www.archlinux.org" +license=('GPL') +groups=('base') +backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown) +depends=('glibc' 'bash' 'awk' 'grep' 'coreutils' 'sed' 'udev>=118' 'net-tools' 'ncurses' 'kbd' 'findutils') +install=initscripts.install +source=(ftp://ftp.archlinux.org/other/initscripts/${pkgname}-${pkgver}-${pkgrel}.tar.gz) +md5sums=('317ddba5c41ac61905fd8289805e00cd') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver}-${pkgrel}/ + DESTDIR=$startdir/pkg ./install.sh +} diff --git a/abs/core-testing/initscripts/initscripts.install b/abs/core-testing/initscripts/initscripts.install new file mode 100644 index 0000000..9fffa9b --- /dev/null +++ b/abs/core-testing/initscripts/initscripts.install @@ -0,0 +1,25 @@ +post_upgrade() { + cat << "EOF" +----------------------------------------------------------- +IMPORTANT NOTICE FOR ENCRYPTION USERS + +The "password" column in /etc/crypttab has now +two special keywords: +- ASK ask for a passphrase on boot +- SWAP use a random key and create swapspace + This is particularly dangerous, as the + volume in question will be overwritten + If you use SWAP as your passphrase (which + is insecure anyway), be sure to remove it + from /etc/crypttab to avoid dataloss! + +See /etc/crypttab(.pacnew) for more information. +----------------------------------------------------------- +Attention netcfg users: netcfg is no longer included as +part of the initscripts package. +Be aware that rc.conf's NET_PROFILES has changed to +NETWORKS, and that netcfg must be installed separately. +For more info, see the netcfg man page. +----------------------------------------------------------- +EOF +} diff --git a/abs/core-testing/inputproto/PKGBUILD b/abs/core-testing/inputproto/PKGBUILD new file mode 100644 index 0000000..ddd445c --- /dev/null +++ b/abs/core-testing/inputproto/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 670 2008-04-21 13:49:33Z alexander $ +# Maintainer: Alexander Baldeck +# Contributor: Jan de Groot +pkgname=inputproto +pkgver=1.4.3 +pkgrel=1 +pkgdesc="X11 Input extension wire protocol" +arch=(i686 x86_64) +license=('custom') +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 + make DESTDIR=${startdir}/pkg install || return 1 + + install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \ + ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING +} +md5sums=('a0f0d8cf6fbf0db8ba3937d0cc16138d') diff --git a/abs/core-testing/intel-dri/PKGBUILD b/abs/core-testing/intel-dri/PKGBUILD new file mode 100644 index 0000000..167f4e4 --- /dev/null +++ b/abs/core-testing/intel-dri/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: $ +# Maintainer: Alexander Baldeck +# Contributor: Jan de Groot +pkgname=intel-dri +pkgver=7.0.3 +pkgrel=1 +pkgdesc="Mesa DRI drivers for Intel chipsets" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +depends=('libdrm>=2.3.0' 'expat>=2.0') +makedepends=('imake' 'mesa>=7.0.3' 'glproto>=1.4.9') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2) +md5sums=('e6e6379d7793af40a6bc3ce1bace572e') + +build() { + cd ${startdir}/src/Mesa-${pkgver}/configs + + CONFIG="linux-dri-x86" + [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64" + echo "EXTRA_LIB_PATH =" >> ${CONFIG} + echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG} + echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG} + echo "USING_EGL = 0" >> ${CONFIG} + echo "PROGRAM_DIRS =" >> ${CONFIG} + echo "MKDEP = makedepend" >> ${CONFIG} + echo "DRI_DIRS = i810 i915 i915tex i965" >> ${CONFIG} + echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} + echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG} + echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG} + echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG} + + ln -s ${CONFIG} current + cd ${startdir}/src/Mesa-${pkgver}/src/mesa + make linux-solo || return 1 + cd drivers/dri + make DESTDIR=${startdir}/pkg install || return 1 +} diff --git a/abs/core-testing/iproute/PKGBUILD b/abs/core-testing/iproute/PKGBUILD new file mode 100644 index 0000000..ae0f9f0 --- /dev/null +++ b/abs/core-testing/iproute/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 3746 2008-06-30 20:09:01Z andyrtr $ +# Maintainer: Judd Vinet +pkgname=iproute +#_dlver=2.6.24-rc7 +#pkgver=$(echo ${_dlver} | sed 's|-|_|g') +pkgver=2.6.25 +pkgrel=1 +pkgdesc="IP Routing Utilities" +arch=(i686 x86_64) +license=('GPL') +url="http://www.linux-foundation.org/en/Net:Iproute2" +depends=('db>=4.7') +source=(#http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${_dlver}.tar.bz2 + http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.bz2) +options=('force') +md5sums=('5737bade2f5e03fad0e2c81da91e551e') + +build() { + #cd $srcdir/iproute2-${_dlver} + cd $srcdir/iproute2-${pkgver} + sed -i 's|/usr/local/lib/iptables|/usr/lib/iptables|' include/iptables.h || return 1 + ./configure + make || return 1 + make DESTDIR=$pkgdir install || return 1 + chmod 755 $pkgdir/usr/sbin/ifcfg +} diff --git a/abs/core-testing/iproute/iproute2-2.4.7-now-ss020116.patch b/abs/core-testing/iproute/iproute2-2.4.7-now-ss020116.patch new file mode 100644 index 0000000..0e37865 --- /dev/null +++ b/abs/core-testing/iproute/iproute2-2.4.7-now-ss020116.patch @@ -0,0 +1,9823 @@ +diff -Naur iproute2-orig/Makefile iproute2/Makefile +--- iproute2-orig/Makefile 2002-01-15 15:30:32.000000000 -0800 ++++ iproute2/Makefile 2004-05-21 00:16:36.000000000 -0700 +@@ -4,8 +4,6 @@ + CONFDIR=/etc/iproute2 + DOCDIR=/usr/doc/iproute2 + +-KERNEL_INCLUDE=/usr/src/linux/include +-LIBC_INCLUDE=/usr/include + + DEFINES= -DRESOLVE_HOSTNAMES + +@@ -23,19 +21,11 @@ + #options for ipx + ADDLIB+=ipx_ntop.o ipx_pton.o + +-ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h)) +- ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h)) +- GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h +- endif +-endif +-ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h)) +- GLIBCFIX=-I../include-glibc -I/usr/include/db3 -include ../include-glibc/glibc-bugs.h +-endif + + + CC = gcc + CCOPTS = -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g +-CFLAGS = $(CCOPTS) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES) ++CFLAGS = $(CCOPTS) -I../include $(DEFINES) + + LDLIBS += -L../lib -lnetlink -lutil + +@@ -43,19 +33,11 @@ + + LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a + +-all: check-kernel ++all: + @set -e; \ + for i in $(SUBDIRS); \ + do $(MAKE) -C $$i; done + +-check-kernel: +-ifeq ($(KERNEL_INCLUDE),) +- @echo "Please, set correct KERNEL_INCLUDE"; false +-else +- @set -e; \ +- if [ ! -r $(KERNEL_INCLUDE)/linux/autoconf.h ]; then \ +- echo "Please, compile the kernel first"; false; fi +-endif + + install: all + install -m 0755 -d $(DESTDIR)$(SBINDIR) +diff -Naur iproute2-orig/Makefile~ iproute2/Makefile~ +--- iproute2-orig/Makefile~ 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/Makefile~ 2002-01-15 15:30:32.000000000 -0800 +@@ -0,0 +1,77 @@ ++# Path to parent kernel include files directory ++DESTDIR= ++SBINDIR=/sbin ++CONFDIR=/etc/iproute2 ++DOCDIR=/usr/doc/iproute2 ++ ++KERNEL_INCLUDE=/usr/src/linux/include ++LIBC_INCLUDE=/usr/include ++ ++DEFINES= -DRESOLVE_HOSTNAMES ++ ++#options if you have a bind>=4.9.4 libresolv (or, maybe, glibc) ++LDLIBS=-lresolv ++ADDLIB= ++ ++#options if you compile with libc5, and without a bind>=4.9.4 libresolv ++#LDLIBS= ++#ADDLIB=inet_ntop.o inet_pton.o ++ ++#options for decnet ++ADDLIB+=dnet_ntop.o dnet_pton.o ++ ++#options for ipx ++ADDLIB+=ipx_ntop.o ipx_pton.o ++ ++ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h)) ++ ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h)) ++ GLIBCFIX=-I../include-glibc -include ../include-glibc/glibc-bugs.h ++ endif ++endif ++ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h)) ++ GLIBCFIX=-I../include-glibc -I/usr/include/db3 -include ../include-glibc/glibc-bugs.h ++endif ++ ++ ++CC = gcc ++CCOPTS = -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g ++CFLAGS = $(CCOPTS) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES) ++ ++LDLIBS += -L../lib -lnetlink -lutil ++ ++SUBDIRS=lib ip tc misc ++ ++LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a ++ ++all: check-kernel ++ @set -e; \ ++ for i in $(SUBDIRS); \ ++ do $(MAKE) -C $$i; done ++ ++check-kernel: ++ifeq ($(KERNEL_INCLUDE),) ++ @echo "Please, set correct KERNEL_INCLUDE"; false ++else ++ @set -e; \ ++ if [ ! -r $(KERNEL_INCLUDE)/linux/autoconf.h ]; then \ ++ echo "Please, compile the kernel first"; false; fi ++endif ++ ++install: all ++ install -m 0755 -d $(DESTDIR)$(SBINDIR) ++ install -m 0755 -d $(DESTDIR)$(CONFDIR) ++ install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples ++ install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples/diffserv ++ install -m 0644 README.iproute2+tc $(shell find examples -type f -maxdepth 1) $(DESTDIR)$(DOCDIR)/examples ++ install -m 0644 $(shell echo examples/diffserv/*) $(DESTDIR)$(DOCDIR)/examples/diffserv ++ @for i in $(SUBDIRS) doc; do $(MAKE) -C $$i install; done ++ @cd etc/iproute2; for i in *; do \ ++ if [ ! -e $(DESTDIR)$(CONFDIR)/$$i ]; then \ ++ echo install -m 0644 $$i $(DESTDIR)$(CONFDIR); \ ++ install -m 0644 $$i $(DESTDIR)$(CONFDIR); fi; done ++ ++clean: ++ for i in $(SUBDIRS) doc; \ ++ do $(MAKE) -C $$i clean; done ++ ++.EXPORT_ALL_VARIABLES: +diff -Naur iproute2-orig/debian/README.Debian iproute2/debian/README.Debian +--- iproute2-orig/debian/README.Debian 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/README.Debian 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,4 @@ ++This version of "iproute" includes the HTB Linux queuing discipline ++explained in http://luxik.cdi.cz/~devik/qos/htb/ ++ ++You need kernel version 2.4.21 or newer in order to use it. +diff -Naur iproute2-orig/debian/changelog iproute2/debian/changelog +--- iproute2-orig/debian/changelog 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/changelog 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,207 @@ ++iproute (20010824-13) unstable; urgency=low ++ ++ * debian/rules: Run dpkg-shlibdeps with all the executables, ++ to fix dependency problem (closes: Bug#224063) ++ * Really removed references to obsolete include files ++ (Bug#223165 was not fixed properly) ++ ++ -- Juan Cespedes Sun, 25 Jan 2004 23:04:20 +0100 ++ ++iproute (20010824-12) unstable; urgency=low ++ ++ * Updated README.Debian and copyright file ++ * Added two new manpages from http://lartc.org/manpages/: ++ ip(8) and tc-cbq-details(8). ++ * Removed references to obsolete include files which made ++ compilation fail (closes: Bug#223165) ++ ++ -- Juan Cespedes Sun, 14 Dec 2003 00:40:10 +0100 ++ ++iproute (20010824-11) unstable; urgency=low ++ ++ * Changed priority to "optional" ++ * Fixed "tc -s qdisc" on sparc (patch by "Nicolas S. Dade" ++ ) (closes: Bug#194128) ++ ++ -- Juan Cespedes Sun, 17 Aug 2003 00:22:47 +0200 ++ ++iproute (20010824-10) unstable; urgency=low ++ ++ * Updated manual pages from http://www.lartc.org/manpages/ ++ (closes: Bug#156353, Bug#175313, Bug#176989, Bug#189095) ++ * New Standards-Version ++ * Don't "rm -rf /etc/iproute2" on purge (closes: Bug#202862) ++ * Include "iproute2" in the description (closes: Bug#182999) ++ ++ -- Juan Cespedes Sat, 16 Aug 2003 18:29:27 +0200 ++ ++iproute (20010824-9) unstable; urgency=medium ++ ++ * Added patch for HTB v3.6 to be able to work with kernel 2.4.20 ++ (from http://luxik.cdi.cz/~devik/qos/htb/v3/htb3.6-020525.tgz) ++ (closes: Bug#147550, Bug#167149, Bug#167597, Bug#171277) ++ ++ -- Juan Cespedes Thu, 05 Dec 2002 13:44:10 +0100 ++ ++iproute (20010824-8) unstable; urgency=medium ++ ++ * Added support for HTB queuing discipline (closes: Bug#133381) ++ NOTE: you need a patched kernel in order to use it ++ ++ -- Juan Cespedes Tue, 2 Apr 2002 20:29:40 +0200 ++ ++iproute (20010824-7) unstable; urgency=medium ++ ++ * Move `ip' binary to /bin to fix FHS violation (closes: Bug#134812) ++ ++ -- Juan Cespedes Mon, 4 Mar 2002 00:20:30 +0100 ++ ++iproute (20010824-6) unstable; urgency=low ++ ++ * Added a couple of #ifdef's to be able to compile with older ++ kernel headers (needed for arm) (closes: Bug#131695) ++ ++ -- Juan Cespedes Sat, 16 Feb 2002 19:27:15 +0100 ++ ++iproute (20010824-5) unstable; urgency=low ++ ++ * Really fix Bug#121589 (dead gateway bug); apparently I ++ forgot to include the patch in 20010824-2 ++ ++ -- Juan Cespedes Tue, 29 Jan 2002 23:22:24 +0100 ++ ++iproute (20010824-4) unstable; urgency=low ++ ++ * Added support for DIFFSERV and ATM in tc ++ ++ -- Juan Cespedes Sun, 13 Jan 2002 03:01:47 +0100 ++ ++iproute (20010824-3) unstable; urgency=low ++ ++ * Updated tc* man pages (thanks to bert hubert ) ++ * Fixed spurious space in `tc -s qdisc' output (closes: Bug#128501) ++ ++ -- Juan Cespedes Thu, 10 Jan 2002 22:18:25 +0100 ++ ++iproute (20010824-2) unstable; urgency=low ++ ++ * Fixed the following important and serious bugs: ++ + iproute doesn't compile on Alpha (closes: Bug#118113, Bug#123224) ++ + iproute doesn't compile on MIPS (closes: Bug#118424) ++ + iproute doesn't compile on powerpc (closes: Bug#119601) ++ * Added man pages for tc (closes: Bug#124230), tc-cbq, tc-red, tc-tbf, ++ tc-prio and tc-sfq ++ * Removed references to old programs from iproute(7) (closes: Bug#99536) ++ * Fixed bug which presented first hop as dead in equal cost multipath ++ (closes: Bug#121589) ++ * Do not process .ps with through `psnup' (closes: Bug#119820) ++ ++ -- Juan Cespedes Tue, 8 Jan 2002 16:07:27 +0100 ++ ++iproute (20010824-1) unstable; urgency=low ++ ++ * New upstream version ++ * Make ingress qdisc work again with tc (closes: Bug#84444) ++ * Make it compile properly with new include files (closes: Bug#113112) ++ ++ -- Juan Cespedes Sun, 28 Oct 2001 16:38:00 +0100 ++ ++iproute (20001007-1) unstable; urgency=low ++ ++ * New upstream version (closes: Bug#63701) ++ * Remove /etc/iproute2 on purge (closes: Bug#72743) ++ * Fixed Lintian warnings (no-priority-field and no-section-field) ++ ++ -- Juan Cespedes Sat, 14 Oct 2000 19:27:12 +0200 ++ ++iproute (991023-2) unstable; urgency=low ++ ++ * New Standards-Version (3.1.1) (closes: Bug#47923) ++ * Modified description of package to show which kernel options are ++ necessary to use the package (closes: Bug#47922) ++ * Updated manual page to point at /usr/share/doc/iproute (closes: Bug#47924) ++ ++ -- Juan Cespedes Sun, 19 Dec 1999 04:00:21 +0100 ++ ++iproute (991023-1) unstable; urgency=low ++ ++ * New upstream version (closes: Bug#48733) ++ ++ -- Juan Cespedes Tue, 2 Nov 1999 16:29:37 +0100 ++ ++iproute (990824-1) unstable; urgency=low ++ ++ * New maintainer ++ * New upstream version ++ * New Standards-Version: 3.1.0 ++ * Minor fix in "ip rule list": mask in "from" address was not shown ++ correctly ++ * Removed obsoleted documentation from "debian/" directory ++ ++ -- Juan Cespedes Sun, 24 Oct 1999 19:02:56 +0200 ++ ++iproute (990630-1) unstable; urgency=low ++ ++ * New upstream version. ++ * FHS and standards 3.0.1.0. ++ ++ -- Roberto Lumbreras Tue, 3 Aug 1999 02:49:28 +0200 ++ ++iproute (990530-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Build with 2.2.10 kernel headers. ++ * Install new scripts ip/routef ip/routel, but not ip/ifcfg ip/rtpr by ++ now, I don't know who/what needs rtpr; ifcfg uses arping, and it isn't ++ available in debian for now. ++ ++ -- Roberto Lumbreras Tue, 22 Jun 1999 02:28:53 +0200 ++ ++iproute (990329-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Build with 2.2.5 kernel headers. ++ ++ -- Roberto Lumbreras Sun, 4 Apr 1999 18:50:39 +0200 ++ ++iproute (980630-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Build with 2.1.112 kernel headers. ++ * Rewrote the rules file. ++ ++ -- Roberto Lumbreras Wed, 29 Jul 1998 23:37:52 +0200 ++ ++iproute (980119-1) unstable; urgency=low ++ ++ * Outdated documentation. Upstream docs are scarce. ++ * Non-Maintainer release ++ * This package has no correct copyright file! ++ * Include all the README.* docs from the upstream site. ++ * Modified to build under glibc ++ * Build with 2.1.85 kernel headers. ++ * produce a correct diff. ++ * Reworked the rules file to utilize debmake fully ++ * Newest upstream release ++ * glibc compilation ++ ++ -- Christoph Lameter Wed, 4 Feb 1998 13:37:28 -0800 ++ ++iproute (961225-2) unstable frozen; urgency=low ++ ++ * Added a man page for iproute. (Fixes #8080). ++ * Removed out-of-date patches. ++ * Added routing.txt from /usr/src/linux/Documentation/networking/routing.txt ++ * Newer version of debmake. ++ ++ -- Tom Lees Mon, 17 Apr 1997 17:00:36 +0100 ++ ++iproute (961225-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Tom Lees Mon, 30 Dec 1996 11:12:23 +0000 ++ ++Local variables: ++mode: debian-changelog ++End: +diff -Naur iproute2-orig/debian/conffiles iproute2/debian/conffiles +--- iproute2-orig/debian/conffiles 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/conffiles 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,5 @@ ++/etc/iproute2/rt_dsfield ++/etc/iproute2/rt_protos ++/etc/iproute2/rt_realms ++/etc/iproute2/rt_scopes ++/etc/iproute2/rt_tables +diff -Naur iproute2-orig/debian/control iproute2/debian/control +--- iproute2-orig/debian/control 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/control 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,19 @@ ++Source: iproute ++Section: net ++Priority: optional ++Maintainer: Juan Cespedes ++Standards-Version: 3.6.0 ++Build-Depends: tetex-bin, atm-dev ++ ++Package: iproute ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: Professional tools to control the networking in Linux kernels ++ This is `iproute', the professional set of tools to control the ++ networking behavior in kernels 2.2.x and later. ++ . ++ At least, the options CONFIG_NETLINK and CONFIG_RTNETLINK must ++ be compiled in the running kernel ++ . ++ This package is also known as iproute2 upstream and in some ++ documentation. +diff -Naur iproute2-orig/debian/copyright iproute2/debian/copyright +--- iproute2-orig/debian/copyright 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/copyright 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,42 @@ ++This is the Debian GNU/Linux's prepackaged version of the ++Linux Traffic Control engine and related utils, "iproute" ++ ++This package was put together from sources obtained from: ++ ftp://ftp.inr.ac.ru/ip-routing/iproute2-2.4.7-now-ss010824.tar.gz ++ ++Changes for Debian: ++ * added Debian GNU/Linux package maintenance system files ++ * Added HTB v3.6 from ++ ++ ++ ++Copyrights ++---------- ++Copyright (C) 1996-2001 Alexey Kuznetsov ++ ++Modifications for Debian: ++ Copyright (C) 1996 Tom Lees ++ Copyright (C) 1998 Christoph Lameter ++ Copyright (C) 1998-1999 Roberto Lumbreras ++ Copyright (C) 1999-2003 Juan Cespedes ++ ++ ++License ++------- ++ ++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, 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. ++ ++A copy of the GNU General Public License is available as ++`/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution ++or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. ++You can also obtain it by writing to the Free Software Foundation, ++Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ++ +diff -Naur iproute2-orig/debian/manpages/ip.8 iproute2/debian/manpages/ip.8 +--- iproute2-orig/debian/manpages/ip.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/ip.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,1809 @@ ++.TH IP 8 "17 January 2002" "iproute2" "Linux" ++.SH NAME ++ip \- show / manipulate routing, devices, policy routing and tunnels ++.SH SYNOPSIS ++ ++.ad l ++.in +8 ++.ti -8 ++.B ip ++.RI "[ " OPTIONS " ] " OBJECT " { " COMMAND " | " ++.BR help " }" ++.sp ++ ++.ti -8 ++.IR OBJECT " := { " ++.BR link " | " addr " | " route " | " rule " | " neigh " | " tunnel " | "\ ++maddr " | " mroute " | " monitor " }" ++.sp ++ ++.ti -8 ++.IR OPTIONS " := { " ++\fB\-V\fR[\fIersion\fR] | ++\fB\-s\fR[\fItatistics\fR] | ++\fB\-r\fR[\fIesolve\fR] | ++\fB\-f\fR[\fIamily\fR] { ++.BR inet " | " inet6 " | " ipx " | " dnet " | " link " } | " ++\fB\-o\fR[\fIneline\fR] } ++ ++.ti -8 ++.BI "ip link set " DEVICE ++.RB "{ " up " | " down " | " arp " { " on " | " off " } |" ++.br ++.BR promisc " { " on " | " off " } |" ++.br ++.BR allmulti " { " on " | " off " } |" ++.br ++.BR dynamic " { " on " | " off " } |" ++.br ++.BR multicast " { " on " | " off " } |" ++.br ++.B txqueuelen ++.IR PACKETS " |" ++.br ++.B name ++.IR NEWNAME " |" ++.br ++.B address ++.IR LLADDR " |" ++.B broadcast ++.IR LLADDR " |" ++.br ++.B mtu ++.IR MTU " }" ++ ++.ti -8 ++.B ip link show ++.RI "[ " DEVICE " ]" ++ ++.ti -8 ++.BR "ip addr" " { " add " | " del " } " ++.IB IFADDR " dev " STRING ++ ++.ti -8 ++.BR "ip addr" " { " show " | " flush " } [ " dev ++.IR STRING " ] [ " ++.B scope ++.IR SCOPE-ID " ] [ " ++.B to ++.IR PREFIX " ] [ " FLAG-LIST " ] [ " ++.B label ++.IR PATTERN " ]" ++ ++.ti -8 ++.IR IFADDR " := " PREFIX " | " ADDR ++.B peer ++.IR PREFIX " [ " ++.B broadcast ++.IR ADDR " ] [ " ++.B anycast ++.IR ADDR " ] [ " ++.B label ++.IR STRING " ] [ " ++.B scope ++.IR SCOPE-ID " ]" ++ ++.ti -8 ++.IR SCOPE-ID " := " ++.RB "[ " host " | " link " | " global " | " ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR FLAG-LIST " := [ " FLAG-LIST " ] " FLAG ++ ++.ti -8 ++.IR FLAG " := " ++.RB "[ " permanent " | " dynamic " | " secondary " | " primary " | "\ ++tentative " | " deprecated " ]" ++ ++.ti -8 ++.BR "ip route" " { " ++.BR list " | " flush " } " ++.I SELECTOR ++ ++.ti -8 ++.B ip route get ++.IR ADDRESS " [ " ++.BI from " ADDRESS " iif " STRING" ++.RB " ] [ " oif ++.IR STRING " ] [ " ++.B tos ++.IR TOS " ]" ++ ++.ti -8 ++.BR "ip route" " { " add " | " del " | " change " | " append " | "\ ++replace " | " monitor " } " ++.I ROUTE ++ ++.ti -8 ++.IR SELECTOR " := " ++.RB "[ " root ++.IR PREFIX " ] [ " ++.B match ++.IR PREFIX " ] [ " ++.B exact ++.IR PREFIX " ] [ " ++.B table ++.IR TABLE_ID " ] [ " ++.B proto ++.IR RTPROTO " ] [ " ++.B type ++.IR TYPE " ] [ " ++.B scope ++.IR SCOPE " ]" ++ ++.ti -8 ++.IR ROUTE " := " NODE_SPEC " [ " INFO_SPEC " ]" ++ ++.ti -8 ++.IR NODE_SPEC " := [ " TYPE " ] " PREFIX " [" ++.B tos ++.IR TOS " ] [ " ++.B table ++.IR TABLE_ID " ] [ " ++.B proto ++.IR RTPROTO " ] [ " ++.B scope ++.IR SCOPE " ] [ " ++.B metric ++.IR METRIC " ]" ++ ++.ti -8 ++.IR INFO_SPEC " := " "NH OPTIONS FLAGS" " [" ++.B nexthop ++.IR NH " ] ..." ++ ++.ti -8 ++.IR NH " := [ " ++.B via ++.IR ADDRESS " ] [ " ++.B dev ++.IR STRING " ] [ " ++.B weight ++.IR NUMBER " ] " NHFLAGS ++ ++.ti -8 ++.IR OPTIONS " := " FLAGS " [ " ++.B mtu ++.IR NUMBER " ] [ " ++.B advmss ++.IR NUMBER " ] [ " ++.B rtt ++.IR NUMBER " ] [ " ++.B rttvar ++.IR NUMBER " ] [ " ++.B window ++.IR NUMBER " ] [ " ++.B cwnd ++.IR NUMBER " ] [ " ++.B ssthresh ++.IR REALM " ] [ " ++.B realms ++.IR REALM " ]" ++ ++.ti -8 ++.IR TYPE " := [ " ++.BR unicast " | " local " | " broadcast " | " multicast " | "\ ++throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]" ++ ++.ti -8 ++.IR TABLE_ID " := [ " ++.BR local "| " main " | " default " | " all " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR SCOPE " := [ " ++.BR host " | " link " | " global " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR FLAGS " := [ " ++.BR equalize " ]" ++ ++.ti -8 ++.IR NHFLAGS " := [ " ++.BR onlink " | " pervasive " ]" ++ ++.ti -8 ++.IR RTPROTO " := [ " ++.BR kernel " | " boot " | " static " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.B ip rule ++.RB " [ " list " | " add " | " del " ]" ++.I SELECTOR ACTION ++ ++.ti -8 ++.IR SELECTOR " := [ " ++.B from ++.IR PREFIX " ] [ " ++.B to ++.IR PREFIX " ] [ " ++.B tos ++.IR TOS " ] [ " ++.B fwmark ++.IR FWMARK " ] [ " ++.B dev ++.IR STRING " ] [ " ++.B pref ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR ACTION " := [ " ++.B table ++.IR TABLE_ID " ] [ " ++.B nat ++.IR ADDRESS " ] [ " ++.BR prohibit " | " reject " | " unreachable " ] [ " realms ++.RI "[" SRCREALM "/]" DSTREALM " ]" ++ ++.ti -8 ++.IR TABLE_ID " := [ " ++.BR local " | " main " | " default " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.BR "ip neigh" " { " add " | " del " | " change " | " replace " } { " ++.IR ADDR " [ " ++.B lladdr ++.IR LLADDR " ] [ " ++.BR nud " { " permanent " | " noarp " | " stale " | " reachable " } ] | " proxy ++.IR ADDR " } [ " ++.B dev ++.IR DEV " ]" ++ ++.ti -8 ++.BR "ip neigh" " { " show " | " flush " } [ " to ++.IR PREFIX " ] [ " ++.B dev ++.IR DEV " ] [ " ++.B nud ++.IR STATE " ]" ++ ++.ti -8 ++.BR "ip tunnel" " { " add " | " change " | " del " | " show " }" ++.RI "[ " NAME " ]" ++.br ++.RB "[ " mode " { " ipip " | " gre " | " sit " } ]" ++.br ++.RB "[ " remote ++.IR ADDR " ] [ " ++.B local ++.IR ADDR " ]" ++.br ++.RB "[ [" i "|" o "]" seq " ] [ [" i "|" o "]" key ++.IR KEY " ] [ " ++.RB "[" i "|" o "]" csum " ] ]" ++.br ++.RB "[ " ttl ++.IR TTL " ] [ " ++.B tos ++.IR TOS " ] [ " ++.RB "[" no "]" pmtudisc " ]" ++.br ++.RB "[ " dev ++.IR PHYS_DEV " ]" ++ ++.ti -8 ++.IR ADDR " := { " IP_ADDRESS " |" ++.BR any " }" ++ ++.ti -8 ++.IR TOS " := { " NUMBER " |" ++.BR inherit " }" ++ ++.ti -8 ++.IR TTL " := { " 1 ".." 255 " | " ++.BR inherit " }" ++ ++.ti -8 ++.IR KEY " := { " DOTTED_QUAD " | " NUMBER " }" ++ ++.ti -8 ++.BR "ip maddr" " [ " add " | " del " ]" ++.IB MULTIADDR " dev " STRING ++ ++.ti -8 ++.BR "ip maddr show" " [ " dev ++.IR STRING " ]" ++ ++.ti -8 ++.BR "ip mroute show" " [" ++.IR PREFIX " ] [ " ++.B from ++.IR PREFIX " ] [ " ++.B iif ++.IR DEVICE " ]" ++ ++.ti -8 ++.BR "ip monitor" " [ " all " |" ++.IR LISTofOBJECTS " ]" ++.in -8 ++.ad b ++ ++.SH OPTIONS ++ ++.TP ++.BR "\-V" , " -Version" ++print the version of the ++.B ip ++utility and exit. ++ ++.TP ++.BR "\-s" , " \-stats", " \-statistics" ++output more information. If the option ++appears twice or more, the amount of information increases. ++As a rule, the information is statistics or some time values. ++ ++.TP ++.BR "\-f" , " \-family" ++followed by protocol family identifier: ++.BR "inet" , " inet6" ++or ++.B link ++,enforce the protocol family to use. If the option is not present, ++the protocol family is guessed from other arguments. If the rest ++of the command line does not give enough information to guess the ++family, ++.B ip ++falls back to the default one, usually ++.B inet ++or ++.BR "any" . ++.B link ++is a special family identifier meaning that no networking protocol ++is involved. ++ ++.TP ++.B \-4 ++shortcut for ++.BR "-family inet" . ++ ++.TP ++.B \-6 ++shortcut for ++.BR "\-family inet6" . ++ ++.TP ++.B \-0 ++shortcut for ++.BR "\-family link" . ++ ++.TP ++.BR "\-o" , " \-oneline" ++output each record on a single line, replacing line feeds ++with the ++.B '\' ++character. This is convenient when you want to count records ++with ++.BR wc (1) ++ or to ++.BR grep (1) ++the output. ++ ++.TP ++.BR "\-r" , " \-resolve" ++use the system's name resolver to print DNS names instead of ++host addresses. ++ ++.SH IP - COMMAND SYNTAX ++ ++.SS ++.I OBJECT ++ ++.TP ++.B link ++- network device. ++ ++.TP ++.B address ++- protocol (IP or IPv6) address on a device. ++.TP ++.B neighbour ++- ARP or NDISC cache entry. ++ ++.TP ++.B route ++- routing table entry. ++ ++.TP ++.B rule ++- rule in routing policy database. ++ ++.TP ++.B maddress ++- multicast address. ++ ++.TP ++.B mroute ++- multicast routing cache entry. ++ ++.TP ++.B tunnel ++- tunnel over IP. ++ ++.PP ++The names of all objects may be written in full or ++abbreviated form, f.e. ++.B address ++is abbreviated as ++.B addr ++or just ++.B a. ++ ++.SS ++.I COMMAND ++ ++Specifies the action to perform on the object. ++The set of possible actions depends on the object type. ++As a rule, it is possible to ++.BR "add" , " delete" ++and ++.B show ++(or ++.B list ++) objects, but some objects do not allow all of these operations ++or have some additional commands. The ++.B help ++command is available for all objects. It prints ++out a list of available commands and argument syntax conventions. ++.sp ++If no command is given, some default command is assumed. ++Usually it is ++.B list ++or, if the objects of this class cannot be listed, ++.BR "help" . ++ ++.SH ip link - network device configuration ++ ++.B link ++is a network device and the corresponding commands ++display and change the state of devices. ++ ++.SS ip link set - change device attributes ++ ++.TP ++.BI dev " NAME " (default) ++.I NAME ++specifies network device to operate on. ++ ++.TP ++.BR up " and " down ++change the state of the device to ++.B UP ++or ++.BR "DOWN" . ++ ++.TP ++.BR "arp on " or " arp off" ++change the ++.B NOARP ++flag on the device. ++ ++.TP ++.BR "multicast on " or " multicast off" ++change the ++.B MULTICAST ++flag on the device. ++ ++.TP ++.BR "dynamic on " or " dynamic off" ++change the ++.B DYNAMIC ++flag on the device. ++ ++.TP ++.BI name " NAME" ++change the name of the device. This operation is not ++recommended if the device is running or has some addresses ++already configured. ++ ++.TP ++.BI txqueuelen " NUMBER" ++.TP ++.BI txqlen " NUMBER" ++change the transmit queue length of the device. ++ ++.TP ++.BI mtu " NUMBER" ++change the ++.I MTU ++of the device. ++ ++.TP ++.BI address " LLADDRESS" ++change the station address of the interface. ++ ++.TP ++.BI broadcast " LLADDRESS" ++.TP ++.BI brd " LLADDRESS" ++.TP ++.BI peer " LLADDRESS" ++change the link layer broadcast address or the peer address when ++the interface is ++.IR "POINTOPOINT" . ++ ++.PP ++.B Warning: ++If multiple parameter changes are requested, ++.B ip ++aborts immediately after any of the changes have failed. ++This is the only case when ++.B ip ++can move the system to an unpredictable state. The solution ++is to avoid changing several parameters with one ++.B ip link set ++call. ++ ++.SS ip link show - display device attributes ++ ++.TP ++.BI dev " NAME " (default) ++.I NAME ++specifies the network device to show. ++If this argument is omitted all devices are listed. ++ ++.TP ++.B up ++only display running interfaces. ++ ++.SH ip address - protocol address management. ++ ++The ++.B address ++is a protocol (IP or IPv6) address attached ++to a network device. Each device must have at least one address ++to use the corresponding protocol. It is possible to have several ++different addresses attached to one device. These addresses are not ++discriminated, so that the term ++.B alias ++is not quite appropriate for them and we do not use it in this document. ++.sp ++The ++.B ip addr ++command displays addresses and their properties, adds new addresses ++and deletes old ones. ++ ++.SS ip address add - add new protocol address. ++ ++.TP ++.BI dev " NAME" ++the name of the device to add the address to. ++ ++.TP ++.BI local " ADDRESS " (default) ++the address of the interface. The format of the address depends ++on the protocol. It is a dotted quad for IP and a sequence of ++hexadecimal halfwords separated by colons for IPv6. The ++.I ADDRESS ++may be followed by a slash and a decimal number which encodes ++the network prefix length. ++ ++.TP ++.BI peer " ADDRESS" ++the address of the remote endpoint for pointopoint interfaces. ++Again, the ++.I ADDRESS ++may be followed by a slash and a decimal number, encoding the network ++prefix length. If a peer address is specified, the local address ++cannot have a prefix length. The network prefix is associated ++with the peer rather than with the local address. ++ ++.TP ++.BI broadcast " ADDRESS" ++the broadcast address on the interface. ++.sp ++It is possible to use the special symbols ++.B '+' ++and ++.B '-' ++instead of the broadcast address. In this case, the broadcast address ++is derived by setting/resetting the host bits of the interface prefix. ++ ++.TP ++.BI label " NAME" ++Each address may be tagged with a label string. ++In order to preserve compatibility with Linux-2.0 net aliases, ++this string must coincide with the name of the device or must be prefixed ++with the device name followed by colon. ++ ++.TP ++.BI scope " SCOPE_VALUE" ++the scope of the area where this address is valid. ++The available scopes are listed in file ++.BR "/etc/iproute2/rt_scopes" . ++Predefined scope values are: ++ ++.in +8 ++.B global ++- the address is globally valid. ++.sp ++.B site ++- (IPv6 only) the address is site local, i.e. it is ++valid inside this site. ++.sp ++.B link ++- the address is link local, i.e. it is valid only on this device. ++.sp ++.B host ++- the address is valid only inside this host. ++.in -8 ++ ++.SS ip address delete - delete protocol address ++.B Arguments: ++coincide with the arguments of ++.B ip addr add. ++The device name is a required argument. The rest are optional. ++If no arguments are given, the first address is deleted. ++ ++.SS ip address show - look at protocol addresses ++ ++.TP ++.BI dev " NAME " (default) ++name of device. ++ ++.TP ++.BI scope " SCOPE_VAL" ++only list addresses with this scope. ++ ++.TP ++.BI to " PREFIX" ++only list addresses matching this prefix. ++ ++.TP ++.BI label " PATTERN" ++only list addresses with labels matching the ++.IR "PATTERN" . ++.I PATTERN ++is a usual shell style pattern. ++ ++.TP ++.BR dynamic " and " permanent ++(IPv6 only) only list addresses installed due to stateless ++address configuration or only list permanent (not dynamic) ++addresses. ++ ++.TP ++.B tentative ++(IPv6 only) only list addresses which did not pass duplicate ++address detection. ++ ++.TP ++.B deprecated ++(IPv6 only) only list deprecated addresses. ++ ++.TP ++.BR primary " and " secondary ++only list primary (or secondary) addresses. ++ ++.SS ip address flush - flush protocol addresses ++This command flushes the protocol addresses selected by some criteria. ++ ++.PP ++This command has the same arguments as ++.B show. ++The difference is that it does not run when no arguments are given. ++ ++.PP ++.B Warning: ++This command (and other ++.B flush ++commands described below) is pretty dangerous. If you make a mistake, ++it will not forgive it, but will cruelly purge all the addresses. ++ ++.PP ++With the ++.B -statistics ++option, the command becomes verbose. It prints out the number of deleted ++addresses and the number of rounds made to flush the address list. If ++this option is given twice, ++.B ip addr flush ++also dumps all the deleted addresses in the format described in the ++previous subsection. ++ ++.SH ip neighbour - neighbour/arp tables management. ++ ++.B neighbour ++objects establish bindings between protocol addresses and ++link layer addresses for hosts sharing the same link. ++Neighbour entries are organized into tables. The IPv4 neighbour table ++is known by another name - the ARP table. ++ ++.P ++The corresponding commands display neighbour bindings ++and their properties, add new neighbour entries and delete old ones. ++ ++.SS ip neighbour add - add a new neighbour entry ++.SS ip neighbour change - change an existing entry ++.SS ip neighbour replace - add a new entry or change an existing one ++ ++These commands create new neighbour records or update existing ones. ++ ++.TP ++.BI to " ADDRESS " (default) ++the protocol address of the neighbour. It is either an IPv4 or IPv6 address. ++ ++.TP ++.BI dev " NAME" ++the interface to which this neighbour is attached. ++ ++.TP ++.BI lladdr " LLADDRESS" ++the link layer address of the neighbour. ++.I LLADDRESS ++can also be ++.BR "null" . ++ ++.TP ++.BI nud " NUD_STATE" ++the state of the neighbour entry. ++.B nud ++is an abbreviation for 'Neigh bour Unreachability Detection'. ++The state can take one of the following values: ++ ++.in +8 ++.B permanent ++- the neighbour entry is valid forever and can be only ++be removed administratively. ++.sp ++ ++.B noarp ++- the neighbour entry is valid. No attempts to validate ++this entry will be made but it can be removed when its lifetime expires. ++.sp ++ ++.B reachable ++- the neighbour entry is valid until the reachability ++timeout expires. ++.sp ++ ++.B stale ++- the neighbour entry is valid but suspicious. ++This option to ++.B ip neigh ++does not change the neighbour state if it was valid and the address ++is not changed by this command. ++.in -8 ++ ++.SS ip neighbour delete - delete a neighbour entry ++This command invalidates a neighbour entry. ++ ++.PP ++The arguments are the same as with ++.BR "ip neigh add" , ++except that ++.B lladdr ++and ++.B nud ++are ignored. ++ ++.PP ++.B Warning: ++Attempts to delete or manually change a ++.B noarp ++entry created by the kernel may result in unpredictable behaviour. ++Particularly, the kernel may try to resolve this address even ++on a ++.B NOARP ++interface or if the address is multicast or broadcast. ++ ++.SS ip neighbour show - list neighbour entries ++ ++This commands displays neighbour tables. ++ ++.TP ++.BI to " ADDRESS " (default) ++the prefix selecting the neighbours to list. ++ ++.TP ++.BI dev " NAME" ++only list the neighbours attached to this device. ++ ++.TP ++.B unused ++only list neighbours which are not currently in use. ++ ++.TP ++.BI nud " NUD_STATE" ++only list neighbour entries in this state. ++.I NUD_STATE ++takes values listed below or the special value ++.B all ++which means all states. This option may occur more than once. ++If this option is absent, ++.B ip ++lists all entries except for ++.B none ++and ++.BR "noarp" . ++ ++.SS ip neighbour flush - flush neighbour entries ++This command flushes neighbour tables, selecting ++entries to flush by some criteria. ++ ++.PP ++This command has the same arguments as ++.B show. ++The differences are that it does not run when no arguments are given, ++and that the default neighbour states to be flushed do not include ++.B permanent ++and ++.BR "noarp" . ++ ++.PP ++With the ++.B -statistics ++option, the command becomes verbose. It prints out the number of ++deleted neighbours and the number of rounds made to flush the ++neighbour table. If the option is given ++twice, ++.B ip neigh flush ++also dumps all the deleted neighbours. ++ ++.SH ip route - routing table management ++Manipulate route entries in the kernel routing tables keep ++information about paths to other networked nodes. ++.sp ++.B Route types: ++ ++.in +8 ++.B unicast ++- the route entry describes real paths to the destinations covered ++by the route prefix. ++ ++.sp ++.B unreachable ++- these destinations are unreachable. Packets are discarded and the ++ICMP message ++.I host unreachable ++is generated. ++The local senders get an ++.I EHOSTUNREACH ++error. ++ ++.sp ++.B blackhole ++- these destinations are unreachable. Packets are discarded silently. ++The local senders get an ++.I EINVAL ++error. ++ ++.sp ++.B prohibit ++- these destinations are unreachable. Packets are discarded and the ++ICMP message ++.I communication administratively prohibited ++is generated. The local senders get an ++.I EACCES ++error. ++ ++.sp ++.B local ++- the destinations are assigned to this host. The packets are looped ++back and delivered locally. ++ ++.sp ++.B broadcast ++- the destinations are broadcast addresses. The packets are sent as ++link broadcasts. ++ ++.sp ++.B throw ++- a special control route used together with policy rules. If such a ++route is selected, lookup in this table is terminated pretending that ++no route was found. Without policy routing it is equivalent to the ++absence of the route in the routing table. The packets are dropped ++and the ICMP message ++.I net unreachable ++is generated. The local senders get an ++.I ENETUNREACH ++error. ++ ++.sp ++.B nat ++- a special NAT route. Destinations covered by the prefix ++are considered to be dummy (or external) addresses which require translation ++to real (or internal) ones before forwarding. The addresses to translate to ++are selected with the attribute ++.BR "via" . ++ ++.sp ++.B anycast ++.RI "- " "not implemented" ++the destinations are ++.I anycast ++addresses assigned to this host. They are mainly equivalent ++to ++.B local ++with one difference: such addresses are invalid when used ++as the source address of any packet. ++ ++.sp ++.B multicast ++- a special type used for multicast routing. It is not present in ++normal routing tables. ++.in -8 ++ ++.P ++.B Route tables: ++Linux-2.x can pack routes into several routing ++tables identified by a number in the range from 1 to 255 or by ++name from the file ++.B /etc/iproute2/rt_tables ++. By default all normal routes are inserted into the ++.B main ++table (ID 254) and the kernel only uses this table when calculating routes. ++ ++.sp ++Actually, one other table always exists, which is invisible but ++even more important. It is the ++.B local ++table (ID 255). This table ++consists of routes for local and broadcast addresses. The kernel maintains ++this table automatically and the administrator usually need not modify it ++or even look at it. ++ ++The multiple routing tables enter the game when ++.I policy routing ++is used. ++ ++.SS ip route add - add new route ++.SS ip route change - change route ++.SS ip route replace - change or add new one ++ ++.TP ++.BI to " TYPE PREFIX " (default) ++the destination prefix of the route. If ++.I TYPE ++is omitted, ++.B ip ++assumes type ++.BR "unicast" . ++Other values of ++.I TYPE ++are listed above. ++.I PREFIX ++is an IP or IPv6 address optionally followed by a slash and the ++prefix length. If the length of the prefix is missing, ++.B ip ++assumes a full-length host route. There is also a special ++.I PREFIX ++.B default ++- which is equivalent to IP ++.B 0/0 ++or to IPv6 ++.BR "::/0" . ++ ++.TP ++.BI tos " TOS" ++.TP ++.BI dsfield " TOS" ++the Type Of Service (TOS) key. This key has no associated mask and ++the longest match is understood as: First, compare the TOS ++of the route and of the packet. If they are not equal, then the packet ++may still match a route with a zero TOS. ++.I TOS ++is either an 8 bit hexadecimal number or an identifier ++from ++.BR "/etc/iproute2/rt_dsfield" . ++ ++.TP ++.BI metric " NUMBER" ++.TP ++.BI preference " NUMBER" ++the preference value of the route. ++.I NUMBER ++is an arbitrary 32bit number. ++ ++.TP ++.BI table " TABLEID" ++the table to add this route to. ++.I TABLEID ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_tables" . ++If this parameter is omitted, ++.B ip ++assumes the ++.B main ++table, with the exception of ++.BR local " , " broadcast " and " nat ++routes, which are put into the ++.B local ++table by default. ++ ++.TP ++.BI dev " NAME" ++the output device name. ++ ++.TP ++.BI via " ADDRESS" ++the address of the nexthop router. Actually, the sense of this field ++depends on the route type. For normal ++.B unicast ++routes it is either the true next hop router or, if it is a direct ++route installed in BSD compatibility mode, it can be a local address ++of the interface. For NAT routes it is the first address of the block ++of translated IP destinations. ++ ++.TP ++.BI src " ADDRESS" ++the source address to prefer when sending to the destinations ++covered by the route prefix. ++ ++.TP ++.BI realm " REALMID" ++the realm to which this route is assigned. ++.I REALMID ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_realms" . ++ ++.TP ++.BI mtu " MTU" ++.TP ++.BI "mtu lock" " MTU" ++the MTU along the path to the destination. If the modifier ++.B lock ++is not used, the MTU may be updated by the kernel due to ++Path MTU Discovery. If the modifier ++.B lock ++is used, no path MTU discovery will be tried, all packets ++will be sent without the DF bit in IPv4 case or fragmented ++to MTU for IPv6. ++ ++.TP ++.BI window " NUMBER" ++the maximal window for TCP to advertise to these destinations, ++measured in bytes. It limits maximal data bursts that our TCP ++peers are allowed to send to us. ++ ++.TP ++.BI rtt " NUMBER" ++the initial RTT ('Round Trip Time') estimate. ++ ++.TP ++.BI rttvar " NUMBER " "(2.3.15+ only)" ++the initial RTT variance estimate. ++ ++.TP ++.BI ssthresh " NUMBER " "(2.3.15+ only)" ++an estimate for the initial slow start threshold. ++ ++.TP ++.BI cwnd " NUMBER " "(2.3.15+ only)" ++the clamp for congestion window. It is ignored if the ++.B lock ++flag is not used. ++ ++.TP ++.BI advmss " NUMBER " "(2.3.15+ only)" ++the MSS ('Maximal Segment Size') to advertise to these ++destinations when establishing TCP connections. If it is not given, ++Linux uses a default value calculated from the first hop device MTU. ++(If the path to these destination is asymmetric, this guess may be wrong.) ++ ++.TP ++.BI reordering " NUMBER " "(2.3.15+ only)" ++Maximal reordering on the path to this destination. ++If it is not given, Linux uses the value selected with ++.B sysctl ++variable ++.BR "net/ipv4/tcp_reordering" . ++ ++.TP ++.BI nexthop " NEXTHOP" ++the nexthop of a multipath route. ++.I NEXTHOP ++is a complex value with its own syntax similar to the top level ++argument lists: ++ ++.in +8 ++.BI via " ADDRESS" ++- is the nexthop router. ++.sp ++ ++.BI dev " NAME" ++- is the output device. ++.sp ++ ++.BI weight " NUMBER" ++- is a weight for this element of a multipath ++route reflecting its relative bandwidth or quality. ++.in -8 ++ ++.TP ++.BI scope " SCOPE_VAL" ++the scope of the destinations covered by the route prefix. ++.I SCOPE_VAL ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_scopes" . ++If this parameter is omitted, ++.B ip ++assumes scope ++.B global ++for all gatewayed ++.B unicast ++routes, scope ++.B link ++for direct ++.BR unicast " and " broadcast ++routes and scope ++.BR host " for " local ++routes. ++ ++.TP ++.BI protocol " RTPROTO" ++the routing protocol identifier of this route. ++.I RTPROTO ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_protos" . ++If the routing protocol ID is not given, ++.B ip assumes protocol ++.B boot ++(i.e. it assumes the route was added by someone who doesn't ++understand what they are doing). Several protocol values have ++a fixed interpretation. ++Namely: ++ ++.in +8 ++.B redirect ++- the route was installed due to an ICMP redirect. ++.sp ++ ++.B kernel ++- the route was installed by the kernel during autoconfiguration. ++.sp ++ ++.B boot ++- the route was installed during the bootup sequence. ++If a routing daemon starts, it will purge all of them. ++.sp ++ ++.B static ++- the route was installed by the administrator ++to override dynamic routing. Routing daemon will respect them ++and, probably, even advertise them to its peers. ++.sp ++ ++.B ra ++- the route was installed by Router Discovery protocol. ++.in -8 ++ ++.sp ++The rest of the values are not reserved and the administrator is free ++to assign (or not to assign) protocol tags. ++ ++.TP ++.B onlink ++pretend that the nexthop is directly attached to this link, ++even if it does not match any interface prefix. ++ ++.TP ++.B equalize ++allow packet by packet randomization on multipath routes. ++Without this modifier, the route will be frozen to one selected ++nexthop, so that load splitting will only occur on per-flow base. ++.B equalize ++only works if the kernel is patched. ++ ++.SS ip route delete - delete route ++ ++.B ip route del ++has the same arguments as ++.BR "ip route add" , ++but their semantics are a bit different. ++ ++Key values ++.RB "(" to ", " tos ", " preference " and " table ")" ++select the route to delete. If optional attributes are present, ++.B ip ++verifies that they coincide with the attributes of the route to delete. ++If no route with the given key and attributes was found, ++.B ip route del ++fails. ++ ++.SS ip route show - list routes ++the command displays the contents of the routing tables or the route(s) ++selected by some criteria. ++ ++.TP ++.BI to " SELECTOR " (default) ++only select routes from the given range of destinations. ++.I SELECTOR ++consists of an optional modifier ++.RB "(" root ", " match " or " exact ")" ++and a prefix. ++.BI root " PREFIX" ++selects routes with prefixes not shorter than ++.IR PREFIX "." ++F.e. ++.BI root " 0/0" ++selects the entire routing table. ++.BI match " PREFIX" ++selects routes with prefixes not longer than ++.IR PREFIX "." ++F.e. ++.BI match " 10.0/16" ++selects ++.IR 10.0/16 "," ++.IR 10/8 " and " 0/0 , ++but it does not select ++.IR 10.1/16 " and " 10.0.0/24 . ++And ++.BI exact " PREFIX" ++(or just ++.IR PREFIX ")" ++selects routes with this exact prefix. If neither of these options ++are present, ++.B ip ++assumes ++.BI root " 0/0" ++i.e. it lists the entire table. ++ ++.TP ++.BI tos " TOS" ++.BI dsfield " TOS" ++only select routes with the given TOS. ++ ++.TP ++.BI table " TABLEID" ++show the routes from this table(s). The default setting is to show ++.BR table main "." ++.I TABLEID ++may either be the ID of a real table or one of the special values: ++.sp ++.in +8 ++.B all ++- list all of the tables. ++.sp ++.B cache ++- dump the routing cache. ++.in -8 ++ ++.TP ++.B cloned ++.TP ++.B cached ++list cloned routes i.e. routes which were dynamically forked from ++other routes because some route attribute (f.e. MTU) was updated. ++Actually, it is equivalent to ++.BR "table cache" "." ++ ++.TP ++.BI from " SELECTOR" ++the same syntax as for ++.BR to "," ++but it binds the source address range rather than destinations. ++Note that the ++.B from ++option only works with cloned routes. ++ ++.TP ++.BI protocol " RTPROTO" ++only list routes of this protocol. ++ ++.TP ++.BI scope " SCOPE_VAL" ++only list routes with this scope. ++ ++.TP ++.BI type " TYPE" ++only list routes of this type. ++ ++.TP ++.BI dev " NAME" ++only list routes going via this device. ++ ++.TP ++.BI via " PREFIX" ++only list routes going via the nexthop routers selected by ++.IR PREFIX "." ++ ++.TP ++.BI src " PREFIX" ++only list routes with preferred source addresses selected ++by ++.IR PREFIX "." ++ ++.TP ++.BI realm " REALMID" ++.TP ++.BI realms " FROMREALM/TOREALM" ++only list routes with these realms. ++ ++.SS ip route flush - flush routing tables ++this command flushes routes selected by some criteria. ++ ++.sp ++The arguments have the same syntax and semantics as the arguments of ++.BR "ip route show" , ++but routing tables are not listed but purged. The only difference is ++the default action: ++.B show ++dumps all the IP main routing table but ++.B flush ++prints the helper page. ++ ++.sp ++With the ++.B -statistics ++option, the command becomes verbose. It prints out the number of ++deleted routes and the number of rounds made to flush the routing ++table. If the option is given ++twice, ++.B ip route flush ++also dumps all the deleted routes in the format described in the ++previous subsection. ++ ++.SS ip route get - get a single route ++this command gets a single route to a destination and prints its ++contents exactly as the kernel sees it. ++ ++.TP ++.BI to " ADDRESS " (default) ++the destination address. ++ ++.TP ++.BI from " ADDRESS" ++the source address. ++ ++.TP ++.BI tos " TOS" ++.TP ++.BI dsfield " TOS" ++the Type Of Service. ++ ++.TP ++.BI iif " NAME" ++the device from which this packet is expected to arrive. ++ ++.TP ++.BI oif " NAME" ++force the output device on which this packet will be routed. ++ ++.TP ++.B connected ++if no source address ++.RB "(option " from ")" ++was given, relookup the route with the source set to the preferred ++address received from the first lookup. ++If policy routing is used, it may be a different route. ++ ++.P ++Note that this operation is not equivalent to ++.BR "ip route show" . ++.B show ++shows existing routes. ++.B get ++resolves them and creates new clones if necessary. Essentially, ++.B get ++is equivalent to sending a packet along this path. ++If the ++.B iif ++argument is not given, the kernel creates a route ++to output packets towards the requested destination. ++This is equivalent to pinging the destination ++with a subsequent ++.BR "ip route ls cache" , ++however, no packets are actually sent. With the ++.B iif ++argument, the kernel pretends that a packet arrived from this interface ++and searches for a path to forward the packet. ++ ++.SH ip rule - routing policy database management ++ ++.BR "Rule" s ++in the routing policy database control the route selection algorithm. ++ ++.P ++Classic routing algorithms used in the Internet make routing decisions ++based only on the destination address of packets (and in theory, ++but not in practice, on the TOS field). ++ ++.P ++In some circumstances we want to route packets differently depending not only ++on destination addresses, but also on other packet fields: source address, ++IP protocol, transport protocol ports or even packet payload. ++This task is called 'policy routing'. ++ ++.P ++To solve this task, the conventional destination based routing table, ordered ++according to the longest match rule, is replaced with a 'routing policy ++database' (or RPDB), which selects routes by executing some set of rules. ++ ++.P ++Each policy routing rule consists of a ++.B selector ++and an ++.B action predicate. ++The RPDB is scanned in the order of increasing priority. The selector ++of each rule is applied to {source address, destination address, incoming ++interface, tos, fwmark} and, if the selector matches the packet, ++the action is performed. The action predicate may return with success. ++In this case, it will either give a route or failure indication ++and the RPDB lookup is terminated. Otherwise, the RPDB program ++continues on the next rule. ++ ++.P ++Semantically, natural action is to select the nexthop and the output device. ++ ++.P ++At startup time the kernel configures the default RPDB consisting of three ++rules: ++ ++.TP ++1. ++Priority: 0, Selector: match anything, Action: lookup routing ++table ++.B local ++(ID 255). ++The ++.B local ++table is a special routing table containing ++high priority control routes for local and broadcast addresses. ++.sp ++Rule 0 is special. It cannot be deleted or overridden. ++ ++.TP ++2. ++Priority: 32766, Selector: match anything, Action: lookup routing ++table ++.B main ++(ID 254). ++The ++.B main ++table is the normal routing table containing all non-policy ++routes. This rule may be deleted and/or overridden with other ++ones by the administrator. ++ ++.TP ++3. ++Priority: 32767, Selector: match anything, Action: lookup routing ++table ++.B default ++(ID 253). ++The ++.B default ++table is empty. It is reserved for some post-processing if no previous ++default rules selected the packet. ++This rule may also be deleted. ++ ++.P ++Each RPDB entry has additional ++attributes. F.e. each rule has a pointer to some routing ++table. NAT and masquerading rules have an attribute to select new IP ++address to translate/masquerade. Besides that, rules have some ++optional attributes, which routes have, namely ++.BR "realms" . ++These values do not override those contained in the routing tables. They ++are only used if the route did not select any attributes. ++ ++.sp ++The RPDB may contain rules of the following types: ++ ++.in +8 ++.B unicast ++- the rule prescribes to return the route found ++in the routing table referenced by the rule. ++ ++.B blackhole ++- the rule prescribes to silently drop the packet. ++ ++.B unreachable ++- the rule prescribes to generate a 'Network is unreachable' error. ++ ++.B prohibit ++- the rule prescribes to generate 'Communication is administratively ++prohibited' error. ++ ++.B nat ++- the rule prescribes to translate the source address ++of the IP packet into some other value. ++.in -8 ++ ++.SS ip rule add - insert a new rule ++.SS ip rule delete - delete a rule ++ ++.TP ++.BI type " TYPE " (default) ++the type of this rule. The list of valid types was given in the previous ++subsection. ++ ++.TP ++.BI from " PREFIX" ++select the source prefix to match. ++ ++.TP ++.BI to " PREFIX" ++select the destination prefix to match. ++ ++.TP ++.BI iif " NAME" ++select the incoming device to match. If the interface is loopback, ++the rule only matches packets originating from this host. This means ++that you may create separate routing tables for forwarded and local ++packets and, hence, completely segregate them. ++ ++.TP ++.BI tos " TOS" ++.TP ++.BI dsfield " TOS" ++select the TOS value to match. ++ ++.TP ++.BI fwmark " MARK" ++select the ++.B fwmark ++value to match. ++ ++.TP ++.BI priority " PREFERENCE" ++the priority of this rule. Each rule should have an explicitly ++set ++.I unique ++priority value. ++ ++.TP ++.BI table " TABLEID" ++the routing table identifier to lookup if the rule selector matches. ++ ++.TP ++.BI realms " FROM/TO" ++Realms to select if the rule matched and the routing table lookup ++succeeded. Realm ++.I TO ++is only used if the route did not select any realm. ++ ++.TP ++.BI nat " ADDRESS" ++The base of the IP address block to translate (for source addresses). ++The ++.I ADDRESS ++may be either the start of the block of NAT addresses (selected by NAT ++routes) or a local host address (or even zero). ++In the last case the router does not translate the packets, but ++masquerades them to this address. ++ ++.B Warning: ++Changes to the RPDB made with these commands do not become active ++immediately. It is assumed that after a script finishes a batch of ++updates, it flushes the routing cache with ++.BR "ip route flush cache" . ++ ++.SS ip rule show - list rules ++This command has no arguments. ++ ++.SH ip maddress - multicast addresses management ++ ++.B maddress ++objects are multicast addresses. ++ ++.SS ip maddress show - list multicast addresses ++ ++.TP ++.BI dev " NAME " (default) ++the device name. ++ ++.SS ip maddress add - add a multicast address ++.SS ip maddress delete - delete a multicast address ++these commands attach/detach a static link layer multicast address ++to listen on the interface. ++Note that it is impossible to join protocol multicast groups ++statically. This command only manages link layer addresses. ++ ++.TP ++.BI address " LLADDRESS " (default) ++the link layer multicast address. ++ ++.TP ++.BI dev " NAME" ++the device to join/leave this multicast address. ++ ++.SH ip mroute - multicast routing cache management ++.B mroute ++objects are multicast routing cache entries created by a user level ++mrouting daemon (f.e. ++.B pimd ++or ++.B mrouted ++). ++ ++Due to the limitations of the current interface to the multicast routing ++engine, it is impossible to change ++.B mroute ++objects administratively, so we may only display them. This limitation ++will be removed in the future. ++ ++.SS ip mroute show - list mroute cache entries ++ ++.TP ++.BI to " PREFIX " (default) ++the prefix selecting the destination multicast addresses to list. ++ ++.TP ++.BI iif " NAME" ++the interface on which multicast packets are received. ++ ++.TP ++.BI from " PREFIX" ++the prefix selecting the IP source addresses of the multicast route. ++ ++.SH ip tunnel - tunnel configuration ++.B tunnel ++objects are tunnels, encapsulating packets in IPv4 packets and then ++sending them over the IP infrastructure. ++ ++.SS ip tunnel add - add a new tunnel ++.SS ip tunnel change - change an existing tunnel ++.SS ip tunnel delete - destroy a tunnel ++ ++.TP ++.BI name " NAME " (default) ++select the tunnel device name. ++ ++.TP ++.BI mode " MODE" ++set the tunnel mode. Three modes are currently available: ++.BR ipip ", " sit " and " gre "." ++ ++.TP ++.BI remote " ADDRESS" ++set the remote endpoint of the tunnel. ++ ++.TP ++.BI local " ADDRESS" ++set the fixed local address for tunneled packets. ++It must be an address on another interface of this host. ++ ++.TP ++.BI ttl " N" ++set a fixed TTL ++.I N ++on tunneled packets. ++.I N ++is a number in the range 1--255. 0 is a special value ++meaning that packets inherit the TTL value. ++The default value is: ++.BR "inherit" . ++ ++.TP ++.BI tos " T" ++.TP ++.BI dsfield " T" ++set a fixed TOS ++.I T ++on tunneled packets. ++The default value is: ++.BR "inherit" . ++ ++.TP ++.BI dev " NAME" ++bind the tunnel to the device ++.I NAME ++so that tunneled packets will only be routed via this device and will ++not be able to escape to another device when the route to endpoint ++changes. ++ ++.TP ++.B nopmtudisc ++disable Path MTU Discovery on this tunnel. ++It is enabled by default. Note that a fixed ttl is incompatible ++with this option: tunnelling with a fixed ttl always makes pmtu ++discovery. ++ ++.TP ++.BI key " K" ++.TP ++.BI ikey " K" ++.TP ++.BI okey " K" ++.RB ( " only GRE tunnels " ) ++use keyed GRE with key ++.IR K ". " K ++is either a number or an IP address-like dotted quad. ++The ++.B key ++parameter sets the key to use in both directions. ++The ++.BR ikey " and " okey ++parameters set different keys for input and output. ++ ++.TP ++.BR csum ", " icsum ", " ocsum ++.RB ( " only GRE tunnels " ) ++generate/require checksums for tunneled packets. ++The ++.B ocsum ++flag calculates checksums for outgoing packets. ++The ++.B icsum ++flag requires that all input packets have the correct ++checksum. The ++.B csum ++flag is equivalent to the combination ++.BR "icsum ocsum" . ++ ++.TP ++.BR seq ", " iseq ", " oseq ++.RB ( " only GRE tunnels " ) ++serialize packets. ++The ++.B oseq ++flag enables sequencing of outgoing packets. ++The ++.B iseq ++flag requires that all input packets are serialized. ++The ++.B seq ++flag is equivalent to the combination ++.BR "iseq oseq" . ++.B It isn't work. Don't use it. ++ ++.SS ip tunnel show - list tunnels ++This command has no arguments. ++ ++.SH ip monitor and rtmon - state monitoring ++ ++The ++.B ip ++utility can monitor the state of devices, addresses ++and routes continuously. This option has a slightly different format. ++Namely, the ++.B monitor ++command is the first in the command line and then the object list follows: ++ ++.BR "ip monitor" " [ " all " |" ++.IR LISTofOBJECTS " ]" ++ ++.I OBJECT-LIST ++is the list of object types that we want to monitor. ++It may contain ++.BR link ", " address " and " route "." ++If no ++.B file ++argument is given, ++.B ip ++opens RTNETLINK, listens on it and dumps state changes in the format ++described in previous sections. ++ ++.P ++If a file name is given, it does not listen on RTNETLINK, ++but opens the file containing RTNETLINK messages saved in binary format ++and dumps them. Such a history file can be generated with the ++.B rtmon ++utility. This utility has a command line syntax similar to ++.BR "ip monitor" . ++Ideally, ++.B rtmon ++should be started before the first network configuration command ++is issued. F.e. if you insert: ++.sp ++.in +8 ++rtmon file /var/log/rtmon.log ++.in -8 ++.sp ++in a startup script, you will be able to view the full history ++later. ++ ++.P ++Certainly, it is possible to start ++.B rtmon ++at any time. ++It prepends the history with the state snapshot dumped at the moment ++of starting. ++ ++.SH HISTORY ++ ++.B ip ++was written by Alexey N. Kuznetsov and added in Linux 2.2. ++.SH SEE ALSO ++.BR tc (8) ++.br ++.RB "IP Command reference " ip-cref.ps ++.br ++.RB "IP tunnels " ip-cref.ps ++ ++.SH AUTHOR ++ ++Manpage maintained by Michail Litvak +diff -Naur iproute2-orig/debian/manpages/old/ip.8 iproute2/debian/manpages/old/ip.8 +--- iproute2-orig/debian/manpages/old/ip.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/ip.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,1809 @@ ++.TH IP 8 "17 January 2002" "iproute2" "Linux" ++.SH NAME ++ip \- show / manipulate routing, devices, policy routing and tunnels ++.SH SYNOPSIS ++ ++.ad l ++.in +8 ++.ti -8 ++.B ip ++.RI "[ " OPTIONS " ] " OBJECT " { " COMMAND " | " ++.BR help " }" ++.sp ++ ++.ti -8 ++.IR OBJECT " := { " ++.BR link " | " addr " | " route " | " rule " | " neigh " | " tunnel " | "\ ++maddr " | " mroute " | " monitor " }" ++.sp ++ ++.ti -8 ++.IR OPTIONS " := { " ++\fB\-V\fR[\fIersion\fR] | ++\fB\-s\fR[\fItatistics\fR] | ++\fB\-r\fR[\fIesolve\fR] | ++\fB\-f\fR[\fIamily\fR] { ++.BR inet " | " inet6 " | " ipx " | " dnet " | " link " } | " ++\fB\-o\fR[\fIneline\fR] } ++ ++.ti -8 ++.BI "ip link set " DEVICE ++.RB "{ " up " | " down " | " arp " { " on " | " off " } |" ++.br ++.BR promisc " { " on " | " off " } |" ++.br ++.BR allmulti " { " on " | " off " } |" ++.br ++.BR dynamic " { " on " | " off " } |" ++.br ++.BR multicast " { " on " | " off " } |" ++.br ++.B txqueuelen ++.IR PACKETS " |" ++.br ++.B name ++.IR NEWNAME " |" ++.br ++.B address ++.IR LLADDR " |" ++.B broadcast ++.IR LLADDR " |" ++.br ++.B mtu ++.IR MTU " }" ++ ++.ti -8 ++.B ip link show ++.RI "[ " DEVICE " ]" ++ ++.ti -8 ++.BR "ip addr" " { " add " | " del " } " ++.IB IFADDR " dev " STRING ++ ++.ti -8 ++.BR "ip addr" " { " show " | " flush " } [ " dev ++.IR STRING " ] [ " ++.B scope ++.IR SCOPE-ID " ] [ " ++.B to ++.IR PREFIX " ] [ " FLAG-LIST " ] [ " ++.B label ++.IR PATTERN " ]" ++ ++.ti -8 ++.IR IFADDR " := " PREFIX " | " ADDR ++.B peer ++.IR PREFIX " [ " ++.B broadcast ++.IR ADDR " ] [ " ++.B anycast ++.IR ADDR " ] [ " ++.B label ++.IR STRING " ] [ " ++.B scope ++.IR SCOPE-ID " ]" ++ ++.ti -8 ++.IR SCOPE-ID " := " ++.RB "[ " host " | " link " | " global " | " ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR FLAG-LIST " := [ " FLAG-LIST " ] " FLAG ++ ++.ti -8 ++.IR FLAG " := " ++.RB "[ " permanent " | " dynamic " | " secondary " | " primary " | "\ ++tentative " | " deprecated " ]" ++ ++.ti -8 ++.BR "ip route" " { " ++.BR list " | " flush " } " ++.I SELECTOR ++ ++.ti -8 ++.B ip route get ++.IR ADDRESS " [ " ++.BI from " ADDRESS " iif " STRING" ++.RB " ] [ " oif ++.IR STRING " ] [ " ++.B tos ++.IR TOS " ]" ++ ++.ti -8 ++.BR "ip route" " { " add " | " del " | " change " | " append " | "\ ++replace " | " monitor " } " ++.I ROUTE ++ ++.ti -8 ++.IR SELECTOR " := " ++.RB "[ " root ++.IR PREFIX " ] [ " ++.B match ++.IR PREFIX " ] [ " ++.B exact ++.IR PREFIX " ] [ " ++.B table ++.IR TABLE_ID " ] [ " ++.B proto ++.IR RTPROTO " ] [ " ++.B type ++.IR TYPE " ] [ " ++.B scope ++.IR SCOPE " ]" ++ ++.ti -8 ++.IR ROUTE " := " NODE_SPEC " [ " INFO_SPEC " ]" ++ ++.ti -8 ++.IR NODE_SPEC " := [ " TYPE " ] " PREFIX " [" ++.B tos ++.IR TOS " ] [ " ++.B table ++.IR TABLE_ID " ] [ " ++.B proto ++.IR RTPROTO " ] [ " ++.B scope ++.IR SCOPE " ] [ " ++.B metric ++.IR METRIC " ]" ++ ++.ti -8 ++.IR INFO_SPEC " := " "NH OPTIONS FLAGS" " [" ++.B nexthop ++.IR NH " ] ..." ++ ++.ti -8 ++.IR NH " := [ " ++.B via ++.IR ADDRESS " ] [ " ++.B dev ++.IR STRING " ] [ " ++.B weight ++.IR NUMBER " ] " NHFLAGS ++ ++.ti -8 ++.IR OPTIONS " := " FLAGS " [ " ++.B mtu ++.IR NUMBER " ] [ " ++.B advmss ++.IR NUMBER " ] [ " ++.B rtt ++.IR NUMBER " ] [ " ++.B rttvar ++.IR NUMBER " ] [ " ++.B window ++.IR NUMBER " ] [ " ++.B cwnd ++.IR NUMBER " ] [ " ++.B ssthresh ++.IR REALM " ] [ " ++.B realms ++.IR REALM " ]" ++ ++.ti -8 ++.IR TYPE " := [ " ++.BR unicast " | " local " | " broadcast " | " multicast " | "\ ++throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]" ++ ++.ti -8 ++.IR TABLE_ID " := [ " ++.BR local "| " main " | " default " | " all " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR SCOPE " := [ " ++.BR host " | " link " | " global " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR FLAGS " := [ " ++.BR equalize " ]" ++ ++.ti -8 ++.IR NHFLAGS " := [ " ++.BR onlink " | " pervasive " ]" ++ ++.ti -8 ++.IR RTPROTO " := [ " ++.BR kernel " | " boot " | " static " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.B ip rule ++.RB " [ " list " | " add " | " del " ]" ++.I SELECTOR ACTION ++ ++.ti -8 ++.IR SELECTOR " := [ " ++.B from ++.IR PREFIX " ] [ " ++.B to ++.IR PREFIX " ] [ " ++.B tos ++.IR TOS " ] [ " ++.B fwmark ++.IR FWMARK " ] [ " ++.B dev ++.IR STRING " ] [ " ++.B pref ++.IR NUMBER " ]" ++ ++.ti -8 ++.IR ACTION " := [ " ++.B table ++.IR TABLE_ID " ] [ " ++.B nat ++.IR ADDRESS " ] [ " ++.BR prohibit " | " reject " | " unreachable " ] [ " realms ++.RI "[" SRCREALM "/]" DSTREALM " ]" ++ ++.ti -8 ++.IR TABLE_ID " := [ " ++.BR local " | " main " | " default " |" ++.IR NUMBER " ]" ++ ++.ti -8 ++.BR "ip neigh" " { " add " | " del " | " change " | " replace " } { " ++.IR ADDR " [ " ++.B lladdr ++.IR LLADDR " ] [ " ++.BR nud " { " permanent " | " noarp " | " stale " | " reachable " } ] | " proxy ++.IR ADDR " } [ " ++.B dev ++.IR DEV " ]" ++ ++.ti -8 ++.BR "ip neigh" " { " show " | " flush " } [ " to ++.IR PREFIX " ] [ " ++.B dev ++.IR DEV " ] [ " ++.B nud ++.IR STATE " ]" ++ ++.ti -8 ++.BR "ip tunnel" " { " add " | " change " | " del " | " show " }" ++.RI "[ " NAME " ]" ++.br ++.RB "[ " mode " { " ipip " | " gre " | " sit " } ]" ++.br ++.RB "[ " remote ++.IR ADDR " ] [ " ++.B local ++.IR ADDR " ]" ++.br ++.RB "[ [" i "|" o "]" seq " ] [ [" i "|" o "]" key ++.IR KEY " ] [ " ++.RB "[" i "|" o "]" csum " ] ]" ++.br ++.RB "[ " ttl ++.IR TTL " ] [ " ++.B tos ++.IR TOS " ] [ " ++.RB "[" no "]" pmtudisc " ]" ++.br ++.RB "[ " dev ++.IR PHYS_DEV " ]" ++ ++.ti -8 ++.IR ADDR " := { " IP_ADDRESS " |" ++.BR any " }" ++ ++.ti -8 ++.IR TOS " := { " NUMBER " |" ++.BR inherit " }" ++ ++.ti -8 ++.IR TTL " := { " 1 ".." 255 " | " ++.BR inherit " }" ++ ++.ti -8 ++.IR KEY " := { " DOTTED_QUAD " | " NUMBER " }" ++ ++.ti -8 ++.BR "ip maddr" " [ " add " | " del " ]" ++.IB MULTIADDR " dev " STRING ++ ++.ti -8 ++.BR "ip maddr show" " [ " dev ++.IR STRING " ]" ++ ++.ti -8 ++.BR "ip mroute show" " [" ++.IR PREFIX " ] [ " ++.B from ++.IR PREFIX " ] [ " ++.B iif ++.IR DEVICE " ]" ++ ++.ti -8 ++.BR "ip monitor" " [ " all " |" ++.IR LISTofOBJECTS " ]" ++.in -8 ++.ad b ++ ++.SH OPTIONS ++ ++.TP ++.BR "\-V" , " -Version" ++print the version of the ++.B ip ++utility and exit. ++ ++.TP ++.BR "\-s" , " \-stats", " \-statistics" ++output more information. If the option ++appears twice or more, the amount of information increases. ++As a rule, the information is statistics or some time values. ++ ++.TP ++.BR "\-f" , " \-family" ++followed by protocol family identifier: ++.BR "inet" , " inet6" ++or ++.B link ++,enforce the protocol family to use. If the option is not present, ++the protocol family is guessed from other arguments. If the rest ++of the command line does not give enough information to guess the ++family, ++.B ip ++falls back to the default one, usually ++.B inet ++or ++.BR "any" . ++.B link ++is a special family identifier meaning that no networking protocol ++is involved. ++ ++.TP ++.B \-4 ++shortcut for ++.BR "-family inet" . ++ ++.TP ++.B \-6 ++shortcut for ++.BR "\-family inet6" . ++ ++.TP ++.B \-0 ++shortcut for ++.BR "\-family link" . ++ ++.TP ++.BR "\-o" , " \-oneline" ++output each record on a single line, replacing line feeds ++with the ++.B '\' ++character. This is convenient when you want to count records ++with ++.BR wc (1) ++ or to ++.BR grep (1) ++the output. ++ ++.TP ++.BR "\-r" , " \-resolve" ++use the system's name resolver to print DNS names instead of ++host addresses. ++ ++.SH IP - COMMAND SYNTAX ++ ++.SS ++.I OBJECT ++ ++.TP ++.B link ++- network device. ++ ++.TP ++.B address ++- protocol (IP or IPv6) address on a device. ++.TP ++.B neighbour ++- ARP or NDISC cache entry. ++ ++.TP ++.B route ++- routing table entry. ++ ++.TP ++.B rule ++- rule in routing policy database. ++ ++.TP ++.B maddress ++- multicast address. ++ ++.TP ++.B mroute ++- multicast routing cache entry. ++ ++.TP ++.B tunnel ++- tunnel over IP. ++ ++.PP ++The names of all objects may be written in full or ++abbreviated form, f.e. ++.B address ++is abbreviated as ++.B addr ++or just ++.B a. ++ ++.SS ++.I COMMAND ++ ++Specifies the action to perform on the object. ++The set of possible actions depends on the object type. ++As a rule, it is possible to ++.BR "add" , " delete" ++and ++.B show ++(or ++.B list ++) objects, but some objects do not allow all of these operations ++or have some additional commands. The ++.B help ++command is available for all objects. It prints ++out a list of available commands and argument syntax conventions. ++.sp ++If no command is given, some default command is assumed. ++Usually it is ++.B list ++or, if the objects of this class cannot be listed, ++.BR "help" . ++ ++.SH ip link - network device configuration ++ ++.B link ++is a network device and the corresponding commands ++display and change the state of devices. ++ ++.SS ip link set - change device attributes ++ ++.TP ++.BI dev " NAME " (default) ++.I NAME ++specifies network device to operate on. ++ ++.TP ++.BR up " and " down ++change the state of the device to ++.B UP ++or ++.BR "DOWN" . ++ ++.TP ++.BR "arp on " or " arp off" ++change the ++.B NOARP ++flag on the device. ++ ++.TP ++.BR "multicast on " or " multicast off" ++change the ++.B MULTICAST ++flag on the device. ++ ++.TP ++.BR "dynamic on " or " dynamic off" ++change the ++.B DYNAMIC ++flag on the device. ++ ++.TP ++.BI name " NAME" ++change the name of the device. This operation is not ++recommended if the device is running or has some addresses ++already configured. ++ ++.TP ++.BI txqueuelen " NUMBER" ++.TP ++.BI txqlen " NUMBER" ++change the transmit queue length of the device. ++ ++.TP ++.BI mtu " NUMBER" ++change the ++.I MTU ++of the device. ++ ++.TP ++.BI address " LLADDRESS" ++change the station address of the interface. ++ ++.TP ++.BI broadcast " LLADDRESS" ++.TP ++.BI brd " LLADDRESS" ++.TP ++.BI peer " LLADDRESS" ++change the link layer broadcast address or the peer address when ++the interface is ++.IR "POINTOPOINT" . ++ ++.PP ++.B Warning: ++If multiple parameter changes are requested, ++.B ip ++aborts immediately after any of the changes have failed. ++This is the only case when ++.B ip ++can move the system to an unpredictable state. The solution ++is to avoid changing several parameters with one ++.B ip link set ++call. ++ ++.SS ip link show - display device attributes ++ ++.TP ++.BI dev " NAME " (default) ++.I NAME ++specifies the network device to show. ++If this argument is omitted all devices are listed. ++ ++.TP ++.B up ++only display running interfaces. ++ ++.SH ip address - protocol address management. ++ ++The ++.B address ++is a protocol (IP or IPv6) address attached ++to a network device. Each device must have at least one address ++to use the corresponding protocol. It is possible to have several ++different addresses attached to one device. These addresses are not ++discriminated, so that the term ++.B alias ++is not quite appropriate for them and we do not use it in this document. ++.sp ++The ++.B ip addr ++command displays addresses and their properties, adds new addresses ++and deletes old ones. ++ ++.SS ip address add - add new protocol address. ++ ++.TP ++.BI dev " NAME" ++the name of the device to add the address to. ++ ++.TP ++.BI local " ADDRESS " (default) ++the address of the interface. The format of the address depends ++on the protocol. It is a dotted quad for IP and a sequence of ++hexadecimal halfwords separated by colons for IPv6. The ++.I ADDRESS ++may be followed by a slash and a decimal number which encodes ++the network prefix length. ++ ++.TP ++.BI peer " ADDRESS" ++the address of the remote endpoint for pointopoint interfaces. ++Again, the ++.I ADDRESS ++may be followed by a slash and a decimal number, encoding the network ++prefix length. If a peer address is specified, the local address ++cannot have a prefix length. The network prefix is associated ++with the peer rather than with the local address. ++ ++.TP ++.BI broadcast " ADDRESS" ++the broadcast address on the interface. ++.sp ++It is possible to use the special symbols ++.B '+' ++and ++.B '-' ++instead of the broadcast address. In this case, the broadcast address ++is derived by setting/resetting the host bits of the interface prefix. ++ ++.TP ++.BI label " NAME" ++Each address may be tagged with a label string. ++In order to preserve compatibility with Linux-2.0 net aliases, ++this string must coincide with the name of the device or must be prefixed ++with the device name followed by colon. ++ ++.TP ++.BI scope " SCOPE_VALUE" ++the scope of the area where this address is valid. ++The available scopes are listed in file ++.BR "/etc/iproute2/rt_scopes" . ++Predefined scope values are: ++ ++.in +8 ++.B global ++- the address is globally valid. ++.sp ++.B site ++- (IPv6 only) the address is site local, i.e. it is ++valid inside this site. ++.sp ++.B link ++- the address is link local, i.e. it is valid only on this device. ++.sp ++.B host ++- the address is valid only inside this host. ++.in -8 ++ ++.SS ip address delete - delete protocol address ++.B Arguments: ++coincide with the arguments of ++.B ip addr add. ++The device name is a required argument. The rest are optional. ++If no arguments are given, the first address is deleted. ++ ++.SS ip address show - look at protocol addresses ++ ++.TP ++.BI dev " NAME " (default) ++name of device. ++ ++.TP ++.BI scope " SCOPE_VAL" ++only list addresses with this scope. ++ ++.TP ++.BI to " PREFIX" ++only list addresses matching this prefix. ++ ++.TP ++.BI label " PATTERN" ++only list addresses with labels matching the ++.IR "PATTERN" . ++.I PATTERN ++is a usual shell style pattern. ++ ++.TP ++.BR dynamic " and " permanent ++(IPv6 only) only list addresses installed due to stateless ++address configuration or only list permanent (not dynamic) ++addresses. ++ ++.TP ++.B tentative ++(IPv6 only) only list addresses which did not pass duplicate ++address detection. ++ ++.TP ++.B deprecated ++(IPv6 only) only list deprecated addresses. ++ ++.TP ++.BR primary " and " secondary ++only list primary (or secondary) addresses. ++ ++.SS ip address flush - flush protocol addresses ++This command flushes the protocol addresses selected by some criteria. ++ ++.PP ++This command has the same arguments as ++.B show. ++The difference is that it does not run when no arguments are given. ++ ++.PP ++.B Warning: ++This command (and other ++.B flush ++commands described below) is pretty dangerous. If you make a mistake, ++it will not forgive it, but will cruelly purge all the addresses. ++ ++.PP ++With the ++.B -statistics ++option, the command becomes verbose. It prints out the number of deleted ++addresses and the number of rounds made to flush the address list. If ++this option is given twice, ++.B ip addr flush ++also dumps all the deleted addresses in the format described in the ++previous subsection. ++ ++.SH ip neighbour - neighbour/arp tables management. ++ ++.B neighbour ++objects establish bindings between protocol addresses and ++link layer addresses for hosts sharing the same link. ++Neighbour entries are organized into tables. The IPv4 neighbour table ++is known by another name - the ARP table. ++ ++.P ++The corresponding commands display neighbour bindings ++and their properties, add new neighbour entries and delete old ones. ++ ++.SS ip neighbour add - add a new neighbour entry ++.SS ip neighbour change - change an existing entry ++.SS ip neighbour replace - add a new entry or change an existing one ++ ++These commands create new neighbour records or update existing ones. ++ ++.TP ++.BI to " ADDRESS " (default) ++the protocol address of the neighbour. It is either an IPv4 or IPv6 address. ++ ++.TP ++.BI dev " NAME" ++the interface to which this neighbour is attached. ++ ++.TP ++.BI lladdr " LLADDRESS" ++the link layer address of the neighbour. ++.I LLADDRESS ++can also be ++.BR "null" . ++ ++.TP ++.BI nud " NUD_STATE" ++the state of the neighbour entry. ++.B nud ++is an abbreviation for 'Neigh bour Unreachability Detection'. ++The state can take one of the following values: ++ ++.in +8 ++.B permanent ++- the neighbour entry is valid forever and can be only ++be removed administratively. ++.sp ++ ++.B noarp ++- the neighbour entry is valid. No attempts to validate ++this entry will be made but it can be removed when its lifetime expires. ++.sp ++ ++.B reachable ++- the neighbour entry is valid until the reachability ++timeout expires. ++.sp ++ ++.B stale ++- the neighbour entry is valid but suspicious. ++This option to ++.B ip neigh ++does not change the neighbour state if it was valid and the address ++is not changed by this command. ++.in -8 ++ ++.SS ip neighbour delete - delete a neighbour entry ++This command invalidates a neighbour entry. ++ ++.PP ++The arguments are the same as with ++.BR "ip neigh add" , ++except that ++.B lladdr ++and ++.B nud ++are ignored. ++ ++.PP ++.B Warning: ++Attempts to delete or manually change a ++.B noarp ++entry created by the kernel may result in unpredictable behaviour. ++Particularly, the kernel may try to resolve this address even ++on a ++.B NOARP ++interface or if the address is multicast or broadcast. ++ ++.SS ip neighbour show - list neighbour entries ++ ++This commands displays neighbour tables. ++ ++.TP ++.BI to " ADDRESS " (default) ++the prefix selecting the neighbours to list. ++ ++.TP ++.BI dev " NAME" ++only list the neighbours attached to this device. ++ ++.TP ++.B unused ++only list neighbours which are not currently in use. ++ ++.TP ++.BI nud " NUD_STATE" ++only list neighbour entries in this state. ++.I NUD_STATE ++takes values listed below or the special value ++.B all ++which means all states. This option may occur more than once. ++If this option is absent, ++.B ip ++lists all entries except for ++.B none ++and ++.BR "noarp" . ++ ++.SS ip neighbour flush - flush neighbour entries ++This command flushes neighbour tables, selecting ++entries to flush by some criteria. ++ ++.PP ++This command has the same arguments as ++.B show. ++The differences are that it does not run when no arguments are given, ++and that the default neighbour states to be flushed do not include ++.B permanent ++and ++.BR "noarp" . ++ ++.PP ++With the ++.B -statistics ++option, the command becomes verbose. It prints out the number of ++deleted neighbours and the number of rounds made to flush the ++neighbour table. If the option is given ++twice, ++.B ip neigh flush ++also dumps all the deleted neighbours. ++ ++.SH ip route - routing table management ++Manipulate route entries in the kernel routing tables keep ++information about paths to other networked nodes. ++.sp ++.B Route types: ++ ++.in +8 ++.B unicast ++- the route entry describes real paths to the destinations covered ++by the route prefix. ++ ++.sp ++.B unreachable ++- these destinations are unreachable. Packets are discarded and the ++ICMP message ++.I host unreachable ++is generated. ++The local senders get an ++.I EHOSTUNREACH ++error. ++ ++.sp ++.B blackhole ++- these destinations are unreachable. Packets are discarded silently. ++The local senders get an ++.I EINVAL ++error. ++ ++.sp ++.B prohibit ++- these destinations are unreachable. Packets are discarded and the ++ICMP message ++.I communication administratively prohibited ++is generated. The local senders get an ++.I EACCES ++error. ++ ++.sp ++.B local ++- the destinations are assigned to this host. The packets are looped ++back and delivered locally. ++ ++.sp ++.B broadcast ++- the destinations are broadcast addresses. The packets are sent as ++link broadcasts. ++ ++.sp ++.B throw ++- a special control route used together with policy rules. If such a ++route is selected, lookup in this table is terminated pretending that ++no route was found. Without policy routing it is equivalent to the ++absence of the route in the routing table. The packets are dropped ++and the ICMP message ++.I net unreachable ++is generated. The local senders get an ++.I ENETUNREACH ++error. ++ ++.sp ++.B nat ++- a special NAT route. Destinations covered by the prefix ++are considered to be dummy (or external) addresses which require translation ++to real (or internal) ones before forwarding. The addresses to translate to ++are selected with the attribute ++.BR "via" . ++ ++.sp ++.B anycast ++.RI "- " "not implemented" ++the destinations are ++.I anycast ++addresses assigned to this host. They are mainly equivalent ++to ++.B local ++with one difference: such addresses are invalid when used ++as the source address of any packet. ++ ++.sp ++.B multicast ++- a special type used for multicast routing. It is not present in ++normal routing tables. ++.in -8 ++ ++.P ++.B Route tables: ++Linux-2.x can pack routes into several routing ++tables identified by a number in the range from 1 to 255 or by ++name from the file ++.B /etc/iproute2/rt_tables ++. By default all normal routes are inserted into the ++.B main ++table (ID 254) and the kernel only uses this table when calculating routes. ++ ++.sp ++Actually, one other table always exists, which is invisible but ++even more important. It is the ++.B local ++table (ID 255). This table ++consists of routes for local and broadcast addresses. The kernel maintains ++this table automatically and the administrator usually need not modify it ++or even look at it. ++ ++The multiple routing tables enter the game when ++.I policy routing ++is used. ++ ++.SS ip route add - add new route ++.SS ip route change - change route ++.SS ip route replace - change or add new one ++ ++.TP ++.BI to " TYPE PREFIX " (default) ++the destination prefix of the route. If ++.I TYPE ++is omitted, ++.B ip ++assumes type ++.BR "unicast" . ++Other values of ++.I TYPE ++are listed above. ++.I PREFIX ++is an IP or IPv6 address optionally followed by a slash and the ++prefix length. If the length of the prefix is missing, ++.B ip ++assumes a full-length host route. There is also a special ++.I PREFIX ++.B default ++- which is equivalent to IP ++.B 0/0 ++or to IPv6 ++.BR "::/0" . ++ ++.TP ++.BI tos " TOS" ++.TP ++.BI dsfield " TOS" ++the Type Of Service (TOS) key. This key has no associated mask and ++the longest match is understood as: First, compare the TOS ++of the route and of the packet. If they are not equal, then the packet ++may still match a route with a zero TOS. ++.I TOS ++is either an 8 bit hexadecimal number or an identifier ++from ++.BR "/etc/iproute2/rt_dsfield" . ++ ++.TP ++.BI metric " NUMBER" ++.TP ++.BI preference " NUMBER" ++the preference value of the route. ++.I NUMBER ++is an arbitrary 32bit number. ++ ++.TP ++.BI table " TABLEID" ++the table to add this route to. ++.I TABLEID ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_tables" . ++If this parameter is omitted, ++.B ip ++assumes the ++.B main ++table, with the exception of ++.BR local " , " broadcast " and " nat ++routes, which are put into the ++.B local ++table by default. ++ ++.TP ++.BI dev " NAME" ++the output device name. ++ ++.TP ++.BI via " ADDRESS" ++the address of the nexthop router. Actually, the sense of this field ++depends on the route type. For normal ++.B unicast ++routes it is either the true next hop router or, if it is a direct ++route installed in BSD compatibility mode, it can be a local address ++of the interface. For NAT routes it is the first address of the block ++of translated IP destinations. ++ ++.TP ++.BI src " ADDRESS" ++the source address to prefer when sending to the destinations ++covered by the route prefix. ++ ++.TP ++.BI realm " REALMID" ++the realm to which this route is assigned. ++.I REALMID ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_realms" . ++ ++.TP ++.BI mtu " MTU" ++.TP ++.BI "mtu lock" " MTU" ++the MTU along the path to the destination. If the modifier ++.B lock ++is not used, the MTU may be updated by the kernel due to ++Path MTU Discovery. If the modifier ++.B lock ++is used, no path MTU discovery will be tried, all packets ++will be sent without the DF bit in IPv4 case or fragmented ++to MTU for IPv6. ++ ++.TP ++.BI window " NUMBER" ++the maximal window for TCP to advertise to these destinations, ++measured in bytes. It limits maximal data bursts that our TCP ++peers are allowed to send to us. ++ ++.TP ++.BI rtt " NUMBER" ++the initial RTT ('Round Trip Time') estimate. ++ ++.TP ++.BI rttvar " NUMBER " "(2.3.15+ only)" ++the initial RTT variance estimate. ++ ++.TP ++.BI ssthresh " NUMBER " "(2.3.15+ only)" ++an estimate for the initial slow start threshold. ++ ++.TP ++.BI cwnd " NUMBER " "(2.3.15+ only)" ++the clamp for congestion window. It is ignored if the ++.B lock ++flag is not used. ++ ++.TP ++.BI advmss " NUMBER " "(2.3.15+ only)" ++the MSS ('Maximal Segment Size') to advertise to these ++destinations when establishing TCP connections. If it is not given, ++Linux uses a default value calculated from the first hop device MTU. ++(If the path to these destination is asymmetric, this guess may be wrong.) ++ ++.TP ++.BI reordering " NUMBER " "(2.3.15+ only)" ++Maximal reordering on the path to this destination. ++If it is not given, Linux uses the value selected with ++.B sysctl ++variable ++.BR "net/ipv4/tcp_reordering" . ++ ++.TP ++.BI nexthop " NEXTHOP" ++the nexthop of a multipath route. ++.I NEXTHOP ++is a complex value with its own syntax similar to the top level ++argument lists: ++ ++.in +8 ++.BI via " ADDRESS" ++- is the nexthop router. ++.sp ++ ++.BI dev " NAME" ++- is the output device. ++.sp ++ ++.BI weight " NUMBER" ++- is a weight for this element of a multipath ++route reflecting its relative bandwidth or quality. ++.in -8 ++ ++.TP ++.BI scope " SCOPE_VAL" ++the scope of the destinations covered by the route prefix. ++.I SCOPE_VAL ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_scopes" . ++If this parameter is omitted, ++.B ip ++assumes scope ++.B global ++for all gatewayed ++.B unicast ++routes, scope ++.B link ++for direct ++.BR unicast " and " broadcast ++routes and scope ++.BR host " for " local ++routes. ++ ++.TP ++.BI protocol " RTPROTO" ++the routing protocol identifier of this route. ++.I RTPROTO ++may be a number or a string from the file ++.BR "/etc/iproute2/rt_protos" . ++If the routing protocol ID is not given, ++.B ip assumes protocol ++.B boot ++(i.e. it assumes the route was added by someone who doesn't ++understand what they are doing). Several protocol values have ++a fixed interpretation. ++Namely: ++ ++.in +8 ++.B redirect ++- the route was installed due to an ICMP redirect. ++.sp ++ ++.B kernel ++- the route was installed by the kernel during autoconfiguration. ++.sp ++ ++.B boot ++- the route was installed during the bootup sequence. ++If a routing daemon starts, it will purge all of them. ++.sp ++ ++.B static ++- the route was installed by the administrator ++to override dynamic routing. Routing daemon will respect them ++and, probably, even advertise them to its peers. ++.sp ++ ++.B ra ++- the route was installed by Router Discovery protocol. ++.in -8 ++ ++.sp ++The rest of the values are not reserved and the administrator is free ++to assign (or not to assign) protocol tags. ++ ++.TP ++.B onlink ++pretend that the nexthop is directly attached to this link, ++even if it does not match any interface prefix. ++ ++.TP ++.B equalize ++allow packet by packet randomization on multipath routes. ++Without this modifier, the route will be frozen to one selected ++nexthop, so that load splitting will only occur on per-flow base. ++.B equalize ++only works if the kernel is patched. ++ ++.SS ip route delete - delete route ++ ++.B ip route del ++has the same arguments as ++.BR "ip route add" , ++but their semantics are a bit different. ++ ++Key values ++.RB "(" to ", " tos ", " preference " and " table ")" ++select the route to delete. If optional attributes are present, ++.B ip ++verifies that they coincide with the attributes of the route to delete. ++If no route with the given key and attributes was found, ++.B ip route del ++fails. ++ ++.SS ip route show - list routes ++the command displays the contents of the routing tables or the route(s) ++selected by some criteria. ++ ++.TP ++.BI to " SELECTOR " (default) ++only select routes from the given range of destinations. ++.I SELECTOR ++consists of an optional modifier ++.RB "(" root ", " match " or " exact ")" ++and a prefix. ++.BI root " PREFIX" ++selects routes with prefixes not shorter than ++.IR PREFIX "." ++F.e. ++.BI root " 0/0" ++selects the entire routing table. ++.BI match " PREFIX" ++selects routes with prefixes not longer than ++.IR PREFIX "." ++F.e. ++.BI match " 10.0/16" ++selects ++.IR 10.0/16 "," ++.IR 10/8 " and " 0/0 , ++but it does not select ++.IR 10.1/16 " and " 10.0.0/24 . ++And ++.BI exact " PREFIX" ++(or just ++.IR PREFIX ")" ++selects routes with this exact prefix. If neither of these options ++are present, ++.B ip ++assumes ++.BI root " 0/0" ++i.e. it lists the entire table. ++ ++.TP ++.BI tos " TOS" ++.BI dsfield " TOS" ++only select routes with the given TOS. ++ ++.TP ++.BI table " TABLEID" ++show the routes from this table(s). The default setting is to show ++.BR table main "." ++.I TABLEID ++may either be the ID of a real table or one of the special values: ++.sp ++.in +8 ++.B all ++- list all of the tables. ++.sp ++.B cache ++- dump the routing cache. ++.in -8 ++ ++.TP ++.B cloned ++.TP ++.B cached ++list cloned routes i.e. routes which were dynamically forked from ++other routes because some route attribute (f.e. MTU) was updated. ++Actually, it is equivalent to ++.BR "table cache" "." ++ ++.TP ++.BI from " SELECTOR" ++the same syntax as for ++.BR to "," ++but it binds the source address range rather than destinations. ++Note that the ++.B from ++option only works with cloned routes. ++ ++.TP ++.BI protocol " RTPROTO" ++only list routes of this protocol. ++ ++.TP ++.BI scope " SCOPE_VAL" ++only list routes with this scope. ++ ++.TP ++.BI type " TYPE" ++only list routes of this type. ++ ++.TP ++.BI dev " NAME" ++only list routes going via this device. ++ ++.TP ++.BI via " PREFIX" ++only list routes going via the nexthop routers selected by ++.IR PREFIX "." ++ ++.TP ++.BI src " PREFIX" ++only list routes with preferred source addresses selected ++by ++.IR PREFIX "." ++ ++.TP ++.BI realm " REALMID" ++.TP ++.BI realms " FROMREALM/TOREALM" ++only list routes with these realms. ++ ++.SS ip route flush - flush routing tables ++this command flushes routes selected by some criteria. ++ ++.sp ++The arguments have the same syntax and semantics as the arguments of ++.BR "ip route show" , ++but routing tables are not listed but purged. The only difference is ++the default action: ++.B show ++dumps all the IP main routing table but ++.B flush ++prints the helper page. ++ ++.sp ++With the ++.B -statistics ++option, the command becomes verbose. It prints out the number of ++deleted routes and the number of rounds made to flush the routing ++table. If the option is given ++twice, ++.B ip route flush ++also dumps all the deleted routes in the format described in the ++previous subsection. ++ ++.SS ip route get - get a single route ++this command gets a single route to a destination and prints its ++contents exactly as the kernel sees it. ++ ++.TP ++.BI to " ADDRESS " (default) ++the destination address. ++ ++.TP ++.BI from " ADDRESS" ++the source address. ++ ++.TP ++.BI tos " TOS" ++.TP ++.BI dsfield " TOS" ++the Type Of Service. ++ ++.TP ++.BI iif " NAME" ++the device from which this packet is expected to arrive. ++ ++.TP ++.BI oif " NAME" ++force the output device on which this packet will be routed. ++ ++.TP ++.B connected ++if no source address ++.RB "(option " from ")" ++was given, relookup the route with the source set to the preferred ++address received from the first lookup. ++If policy routing is used, it may be a different route. ++ ++.P ++Note that this operation is not equivalent to ++.BR "ip route show" . ++.B show ++shows existing routes. ++.B get ++resolves them and creates new clones if necessary. Essentially, ++.B get ++is equivalent to sending a packet along this path. ++If the ++.B iif ++argument is not given, the kernel creates a route ++to output packets towards the requested destination. ++This is equivalent to pinging the destination ++with a subsequent ++.BR "ip route ls cache" , ++however, no packets are actually sent. With the ++.B iif ++argument, the kernel pretends that a packet arrived from this interface ++and searches for a path to forward the packet. ++ ++.SH ip rule - routing policy database management ++ ++.BR "Rule" s ++in the routing policy database control the route selection algorithm. ++ ++.P ++Classic routing algorithms used in the Internet make routing decisions ++based only on the destination address of packets (and in theory, ++but not in practice, on the TOS field). ++ ++.P ++In some circumstances we want to route packets differently depending not only ++on destination addresses, but also on other packet fields: source address, ++IP protocol, transport protocol ports or even packet payload. ++This task is called 'policy routing'. ++ ++.P ++To solve this task, the conventional destination based routing table, ordered ++according to the longest match rule, is replaced with a 'routing policy ++database' (or RPDB), which selects routes by executing some set of rules. ++ ++.P ++Each policy routing rule consists of a ++.B selector ++and an ++.B action predicate. ++The RPDB is scanned in the order of increasing priority. The selector ++of each rule is applied to {source address, destination address, incoming ++interface, tos, fwmark} and, if the selector matches the packet, ++the action is performed. The action predicate may return with success. ++In this case, it will either give a route or failure indication ++and the RPDB lookup is terminated. Otherwise, the RPDB program ++continues on the next rule. ++ ++.P ++Semantically, natural action is to select the nexthop and the output device. ++ ++.P ++At startup time the kernel configures the default RPDB consisting of three ++rules: ++ ++.TP ++1. ++Priority: 0, Selector: match anything, Action: lookup routing ++table ++.B local ++(ID 255). ++The ++.B local ++table is a special routing table containing ++high priority control routes for local and broadcast addresses. ++.sp ++Rule 0 is special. It cannot be deleted or overridden. ++ ++.TP ++2. ++Priority: 32766, Selector: match anything, Action: lookup routing ++table ++.B main ++(ID 254). ++The ++.B main ++table is the normal routing table containing all non-policy ++routes. This rule may be deleted and/or overridden with other ++ones by the administrator. ++ ++.TP ++3. ++Priority: 32767, Selector: match anything, Action: lookup routing ++table ++.B default ++(ID 253). ++The ++.B default ++table is empty. It is reserved for some post-processing if no previous ++default rules selected the packet. ++This rule may also be deleted. ++ ++.P ++Each RPDB entry has additional ++attributes. F.e. each rule has a pointer to some routing ++table. NAT and masquerading rules have an attribute to select new IP ++address to translate/masquerade. Besides that, rules have some ++optional attributes, which routes have, namely ++.BR "realms" . ++These values do not override those contained in the routing tables. They ++are only used if the route did not select any attributes. ++ ++.sp ++The RPDB may contain rules of the following types: ++ ++.in +8 ++.B unicast ++- the rule prescribes to return the route found ++in the routing table referenced by the rule. ++ ++.B blackhole ++- the rule prescribes to silently drop the packet. ++ ++.B unreachable ++- the rule prescribes to generate a 'Network is unreachable' error. ++ ++.B prohibit ++- the rule prescribes to generate 'Communication is administratively ++prohibited' error. ++ ++.B nat ++- the rule prescribes to translate the source address ++of the IP packet into some other value. ++.in -8 ++ ++.SS ip rule add - insert a new rule ++.SS ip rule delete - delete a rule ++ ++.TP ++.BI type " TYPE " (default) ++the type of this rule. The list of valid types was given in the previous ++subsection. ++ ++.TP ++.BI from " PREFIX" ++select the source prefix to match. ++ ++.TP ++.BI to " PREFIX" ++select the destination prefix to match. ++ ++.TP ++.BI iif " NAME" ++select the incoming device to match. If the interface is loopback, ++the rule only matches packets originating from this host. This means ++that you may create separate routing tables for forwarded and local ++packets and, hence, completely segregate them. ++ ++.TP ++.BI tos " TOS" ++.TP ++.BI dsfield " TOS" ++select the TOS value to match. ++ ++.TP ++.BI fwmark " MARK" ++select the ++.B fwmark ++value to match. ++ ++.TP ++.BI priority " PREFERENCE" ++the priority of this rule. Each rule should have an explicitly ++set ++.I unique ++priority value. ++ ++.TP ++.BI table " TABLEID" ++the routing table identifier to lookup if the rule selector matches. ++ ++.TP ++.BI realms " FROM/TO" ++Realms to select if the rule matched and the routing table lookup ++succeeded. Realm ++.I TO ++is only used if the route did not select any realm. ++ ++.TP ++.BI nat " ADDRESS" ++The base of the IP address block to translate (for source addresses). ++The ++.I ADDRESS ++may be either the start of the block of NAT addresses (selected by NAT ++routes) or a local host address (or even zero). ++In the last case the router does not translate the packets, but ++masquerades them to this address. ++ ++.B Warning: ++Changes to the RPDB made with these commands do not become active ++immediately. It is assumed that after a script finishes a batch of ++updates, it flushes the routing cache with ++.BR "ip route flush cache" . ++ ++.SS ip rule show - list rules ++This command has no arguments. ++ ++.SH ip maddress - multicast addresses management ++ ++.B maddress ++objects are multicast addresses. ++ ++.SS ip maddress show - list multicast addresses ++ ++.TP ++.BI dev " NAME " (default) ++the device name. ++ ++.SS ip maddress add - add a multicast address ++.SS ip maddress delete - delete a multicast address ++these commands attach/detach a static link layer multicast address ++to listen on the interface. ++Note that it is impossible to join protocol multicast groups ++statically. This command only manages link layer addresses. ++ ++.TP ++.BI address " LLADDRESS " (default) ++the link layer multicast address. ++ ++.TP ++.BI dev " NAME" ++the device to join/leave this multicast address. ++ ++.SH ip mroute - multicast routing cache management ++.B mroute ++objects are multicast routing cache entries created by a user level ++mrouting daemon (f.e. ++.B pimd ++or ++.B mrouted ++). ++ ++Due to the limitations of the current interface to the multicast routing ++engine, it is impossible to change ++.B mroute ++objects administratively, so we may only display them. This limitation ++will be removed in the future. ++ ++.SS ip mroute show - list mroute cache entries ++ ++.TP ++.BI to " PREFIX " (default) ++the prefix selecting the destination multicast addresses to list. ++ ++.TP ++.BI iif " NAME" ++the interface on which multicast packets are received. ++ ++.TP ++.BI from " PREFIX" ++the prefix selecting the IP source addresses of the multicast route. ++ ++.SH ip tunnel - tunnel configuration ++.B tunnel ++objects are tunnels, encapsulating packets in IPv4 packets and then ++sending them over the IP infrastructure. ++ ++.SS ip tunnel add - add a new tunnel ++.SS ip tunnel change - change an existing tunnel ++.SS ip tunnel delete - destroy a tunnel ++ ++.TP ++.BI name " NAME " (default) ++select the tunnel device name. ++ ++.TP ++.BI mode " MODE" ++set the tunnel mode. Three modes are currently available: ++.BR ipip ", " sit " and " gre "." ++ ++.TP ++.BI remote " ADDRESS" ++set the remote endpoint of the tunnel. ++ ++.TP ++.BI local " ADDRESS" ++set the fixed local address for tunneled packets. ++It must be an address on another interface of this host. ++ ++.TP ++.BI ttl " N" ++set a fixed TTL ++.I N ++on tunneled packets. ++.I N ++is a number in the range 1--255. 0 is a special value ++meaning that packets inherit the TTL value. ++The default value is: ++.BR "inherit" . ++ ++.TP ++.BI tos " T" ++.TP ++.BI dsfield " T" ++set a fixed TOS ++.I T ++on tunneled packets. ++The default value is: ++.BR "inherit" . ++ ++.TP ++.BI dev " NAME" ++bind the tunnel to the device ++.I NAME ++so that tunneled packets will only be routed via this device and will ++not be able to escape to another device when the route to endpoint ++changes. ++ ++.TP ++.B nopmtudisc ++disable Path MTU Discovery on this tunnel. ++It is enabled by default. Note that a fixed ttl is incompatible ++with this option: tunnelling with a fixed ttl always makes pmtu ++discovery. ++ ++.TP ++.BI key " K" ++.TP ++.BI ikey " K" ++.TP ++.BI okey " K" ++.RB ( " only GRE tunnels " ) ++use keyed GRE with key ++.IR K ". " K ++is either a number or an IP address-like dotted quad. ++The ++.B key ++parameter sets the key to use in both directions. ++The ++.BR ikey " and " okey ++parameters set different keys for input and output. ++ ++.TP ++.BR csum ", " icsum ", " ocsum ++.RB ( " only GRE tunnels " ) ++generate/require checksums for tunneled packets. ++The ++.B ocsum ++flag calculates checksums for outgoing packets. ++The ++.B icsum ++flag requires that all input packets have the correct ++checksum. The ++.B csum ++flag is equivalent to the combination ++.BR "icsum ocsum" . ++ ++.TP ++.BR seq ", " iseq ", " oseq ++.RB ( " only GRE tunnels " ) ++serialize packets. ++The ++.B oseq ++flag enables sequencing of outgoing packets. ++The ++.B iseq ++flag requires that all input packets are serialized. ++The ++.B seq ++flag is equivalent to the combination ++.BR "iseq oseq" . ++.B It isn't work. Don't use it. ++ ++.SS ip tunnel show - list tunnels ++This command has no arguments. ++ ++.SH ip monitor and rtmon - state monitoring ++ ++The ++.B ip ++utility can monitor the state of devices, addresses ++and routes continuously. This option has a slightly different format. ++Namely, the ++.B monitor ++command is the first in the command line and then the object list follows: ++ ++.BR "ip monitor" " [ " all " |" ++.IR LISTofOBJECTS " ]" ++ ++.I OBJECT-LIST ++is the list of object types that we want to monitor. ++It may contain ++.BR link ", " address " and " route "." ++If no ++.B file ++argument is given, ++.B ip ++opens RTNETLINK, listens on it and dumps state changes in the format ++described in previous sections. ++ ++.P ++If a file name is given, it does not listen on RTNETLINK, ++but opens the file containing RTNETLINK messages saved in binary format ++and dumps them. Such a history file can be generated with the ++.B rtmon ++utility. This utility has a command line syntax similar to ++.BR "ip monitor" . ++Ideally, ++.B rtmon ++should be started before the first network configuration command ++is issued. F.e. if you insert: ++.sp ++.in +8 ++rtmon file /var/log/rtmon.log ++.in -8 ++.sp ++in a startup script, you will be able to view the full history ++later. ++ ++.P ++Certainly, it is possible to start ++.B rtmon ++at any time. ++It prepends the history with the state snapshot dumped at the moment ++of starting. ++ ++.SH HISTORY ++ ++.B ip ++was written by Alexey N. Kuznetsov and added in Linux 2.2. ++.SH SEE ALSO ++.BR tc (8) ++.br ++.RB "IP Command reference " ip-cref.ps ++.br ++.RB "IP tunnels " ip-cref.ps ++ ++.SH AUTHOR ++ ++Manpage maintained by Michail Litvak +diff -Naur iproute2-orig/debian/manpages/old/tc-cbq-details.8 iproute2/debian/manpages/old/tc-cbq-details.8 +--- iproute2-orig/debian/manpages/old/tc-cbq-details.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-cbq-details.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,425 @@ ++.TH CBQ 8 "8 December 2001" "iproute2" "Linux" ++.SH NAME ++CBQ \- Class Based Queueing ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] cbq avpkt ++bytes ++.B bandwidth ++rate ++.B [ cell ++bytes ++.B ] [ ewma ++log ++.B ] [ mpu ++bytes ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] cbq allot ++bytes ++.B [ bandwidth ++rate ++.B ] [ rate ++rate ++.B ] prio ++priority ++.B [ weight ++weight ++.B ] [ minburst ++packets ++.B ] [ maxburst ++packets ++.B ] [ ewma ++log ++.B ] [ cell ++bytes ++.B ] avpkt ++bytes ++.B [ mpu ++bytes ++.B ] [ bounded isolated ] [ split ++handle ++.B & defmap ++defmap ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++Class Based Queueing is a classful qdisc that implements a rich ++linksharing hierarchy of classes. It contains shaping elements as ++well as prioritizing capabilities. Shaping is performed using link ++idle time calculations based on the timing of dequeue events and ++underlying link bandwidth. ++ ++.SH SHAPING ALGORITHM ++Shaping is done using link idle time calculations, and actions taken if ++these calculations deviate from set limits. ++ ++When shaping a 10mbit/s connection to 1mbit/s, the link will ++be idle 90% of the time. If it isn't, it needs to be throttled so that it ++IS idle 90% of the time. ++ ++From the kernel's perspective, this is hard to measure, so CBQ instead ++derives the idle time from the number of microseconds (in fact, jiffies) ++that elapse between requests from the device driver for more data. Combined ++with the knowledge of packet sizes, this is used to approximate how full or ++empty the link is. ++ ++This is rather circumspect and doesn't always arrive at proper ++results. For example, what is the actual link speed of an interface ++that is not really able to transmit the full 100mbit/s of data, ++perhaps because of a badly implemented driver? A PCMCIA network card ++will also never achieve 100mbit/s because of the way the bus is ++designed - again, how do we calculate the idle time? ++ ++The physical link bandwidth may be ill defined in case of not-quite-real ++network devices like PPP over Ethernet or PPTP over TCP/IP. The effective ++bandwidth in that case is probably determined by the efficiency of pipes ++to userspace - which not defined. ++ ++During operations, the effective idletime is measured using an ++exponential weighted moving average (EWMA), which considers recent ++packets to be exponentially more important than past ones. The Unix ++loadaverage is calculated in the same way. ++ ++The calculated idle time is subtracted from the EWMA measured one, ++the resulting number is called 'avgidle'. A perfectly loaded link has ++an avgidle of zero: packets arrive exactly at the calculated ++interval. ++ ++An overloaded link has a negative avgidle and if it gets too negative, ++CBQ throttles and is then 'overlimit'. ++ ++Conversely, an idle link might amass a huge avgidle, which would then ++allow infinite bandwidths after a few hours of silence. To prevent ++this, avgidle is capped at ++.B maxidle. ++ ++If overlimit, in theory, the CBQ could throttle itself for exactly the ++amount of time that was calculated to pass between packets, and then ++pass one packet, and throttle again. Due to timer resolution constraints, ++this may not be feasible, see the ++.B minburst ++parameter below. ++ ++.SH CLASSIFICATION ++Within the one CBQ instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, CBQ starts at the root and uses various methods to ++determine which class should receive the data. If a verdict is reached, this ++process is repeated for the recipient class which might have further ++means of classifying traffic to its children, if any. ++ ++CBQ has the following methods available to classify a packet to any child ++classes. ++.TP ++(i) ++.B skb->priority class encoding. ++Can be set from userspace by an application with the ++.B SO_PRIORITY ++setsockopt. ++The ++.B skb->priority class encoding ++only applies if the skb->priority holds a major:minor handle of an existing ++class within this qdisc. ++.TP ++(ii) ++tc filters attached to the class. ++.TP ++(iii) ++The defmap of a class, as set with the ++.B split & defmap ++parameters. The defmap may contain instructions for each possible Linux packet ++priority. ++ ++.P ++Each class also has a ++.B level. ++Leaf nodes, attached to the bottom of the class hierarchy, have a level of 0. ++.SH CLASSIFICATION ALGORITHM ++ ++Classification is a loop, which terminates when a leaf class is found. At any ++point the loop may jump to the fallback algorithm. ++ ++The loop consists of the following steps: ++.TP ++(i) ++If the packet is generated locally and has a valid classid encoded within its ++.B skb->priority, ++choose it and terminate. ++ ++.TP ++(ii) ++Consult the tc filters, if any, attached to this child. If these return ++a class which is not a leaf class, restart loop from the class returned. ++If it is a leaf, choose it and terminate. ++.TP ++(iii) ++If the tc filters did not return a class, but did return a classid, ++try to find a class with that id within this qdisc. ++Check if the found class is of a lower ++.B level ++than the current class. If so, and the returned class is not a leaf node, ++restart the loop at the found class. If it is a leaf node, terminate. ++If we found an upward reference to a higher level, enter the fallback ++algorithm. ++.TP ++(iv) ++If the tc filters did not return a class, nor a valid reference to one, ++consider the minor number of the reference to be the priority. Retrieve ++a class from the defmap of this class for the priority. If this did not ++contain a class, consult the defmap of this class for the ++.B BEST_EFFORT ++class. If this is an upward reference, or no ++.B BEST_EFFORT ++class was defined, ++enter the fallback algorithm. If a valid class was found, and it is not a ++leaf node, restart the loop at this class. If it is a leaf, choose it and ++terminate. If ++neither the priority distilled from the classid, nor the ++.B BEST_EFFORT ++priority yielded a class, enter the fallback algorithm. ++.P ++The fallback algorithm resides outside of the loop and is as follows. ++.TP ++(i) ++Consult the defmap of the class at which the jump to fallback occured. If ++the defmap contains a class for the ++.B ++priority ++of the class (which is related to the TOS field), choose this class and ++terminate. ++.TP ++(ii) ++Consult the map for a class for the ++.B BEST_EFFORT ++priority. If found, choose it, and terminate. ++.TP ++(iii) ++Choose the class at which break out to the fallback algorithm occured. Terminate. ++.P ++The packet is enqueued to the class which was chosen when either algorithm ++terminated. It is therefore possible for a packet to be enqueued *not* at a ++leaf node, but in the middle of the hierarchy. ++ ++.SH LINK SHARING ALGORITHM ++When dequeuing for sending to the network device, CBQ decides which of its ++classes will be allowed to send. It does so with a Weighted Round Robin process ++in which each class with packets gets a chance to send in turn. The WRR process ++starts by asking the highest priority classes (lowest numerically - ++highest semantically) for packets, and will continue to do so until they ++have no more data to offer, in which case the process repeats for lower ++priorities. ++ ++.B CERTAINTY ENDS HERE, ANK PLEASE HELP ++ ++Each class is not allowed to send at length though - they can only dequeue a ++configurable amount of data during each round. ++ ++If a class is about to go overlimit, and it is not ++.B bounded ++it will try to borrow avgidle from siblings that are not ++.B isolated. ++This process is repeated from the bottom upwards. If a class is unable ++to borrow enough avgidle to send a packet, it is throttled and not asked ++for a packet for enough time for the avgidle to increase above zero. ++ ++.B I REALLY NEED HELP FIGURING THIS OUT. REST OF DOCUMENT IS PRETTY CERTAIN ++.B AGAIN. ++ ++.SH QDISC ++The root qdisc of a CBQ class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the CBQ instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the CBQ can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional. ++.TP ++avpkt bytes ++For calculations, the average packet size must be known. It is silently capped ++at a minimum of 2/3 of the interface MTU. Mandatory. ++.TP ++bandwidth rate ++To determine the idle time, CBQ must know the bandwidth of your underlying ++physical interface, or parent qdisc. This is a vital parameter, more about it ++later. Mandatory. ++.TP ++cell ++The cell size determines he granularity of packet transmission time calculations. Has a sensible default. ++.TP ++mpu ++A zero sized packet may still take time to transmit. This value is the lower ++cap for packet transmission time calculations - packets smaller than this value ++are still deemed to have this size. Defaults to zero. ++.TP ++ewma log ++When CBQ needs to measure the average idle time, it does so using an ++Exponentially Weighted Moving Average which smoothes out measurements into ++a moving average. The EWMA LOG determines how much smoothing occurs. Defaults ++to 5. Lower values imply greater sensitivity. Must be between 0 and 31. ++.P ++A CBQ qdisc does not shape out of its own accord. It only needs to know certain ++parameters about the underlying link. Actual shaping is done in classes. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++weight weight ++When dequeuing to the interface, classes are tried for traffic in a ++round-robin fashion. Classes with a higher configured qdisc will generally ++have more traffic to offer during each round, so it makes sense to allow ++it to dequeue more traffic. All weights under a class are normalized, so ++only the ratios matter. Defaults to the configured rate, unless the priority ++of this class is maximal, in which case it is set to 1. ++.TP ++allot bytes ++Allot specifies how many bytes a qdisc can dequeue ++during each round of the process. This parameter is weighted using the ++renormalized class weight described above. ++ ++.TP ++priority priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++rate rate ++Maximum rate this class and all its children combined can send at. Mandatory. ++ ++.TP ++bandwidth rate ++This is different from the bandwidth specified when creating a CBQ disc. Only ++used to determine maxidle and offtime, which are only calculated when ++specifying maxburst or minburst. Mandatory if specifying maxburst or minburst. ++ ++.TP ++maxburst ++This number of packets is used to calculate maxidle so that when ++avgidle is at maxidle, this number of average packets can be burst ++before avgidle drops to 0. Set it higher to be more tolerant of ++bursts. You can't set maxidle directly, only via this parameter. ++ ++.TP ++minburst ++As mentioned before, CBQ needs to throttle in case of ++overlimit. The ideal solution is to do so for exactly the calculated ++idle time, and pass 1 packet. However, Unix kernels generally have a ++hard time scheduling events shorter than 10ms, so it is better to ++throttle for a longer period, and then pass minburst packets in one ++go, and then sleep minburst times longer. ++ ++The time to wait is called the offtime. Higher values of minburst lead ++to more accurate shaping in the long term, but to bigger bursts at ++millisecond timescales. ++ ++.TP ++minidle ++If avgidle is below 0, we are overlimits and need to wait until ++avgidle will be big enough to send one packet. To prevent a sudden ++burst from shutting down the link for a prolonged period of time, ++avgidle is reset to minidle if it gets too low. ++ ++Minidle is specified in negative microseconds, so 10 means that ++avgidle is capped at -10us. ++ ++.TP ++bounded ++Signifies that this class will not borrow bandwidth from its siblings. ++.TP ++isolated ++Means that this class will not borrow bandwidth to its siblings ++ ++.TP ++split major:minor & defmap bitmap[/bitmap] ++If consulting filters attached to a class did not give a verdict, ++CBQ can also classify based on the packet's priority. There are 16 ++priorities available, numbered from 0 to 15. ++ ++The defmap specifies which priorities this class wants to receive, ++specified as a bitmap. The Least Significant Bit corresponds to priority ++zero. The ++.B split ++parameter tells CBQ at which class the decision must be made, which should ++be a (grand)parent of the class you are adding. ++ ++As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' ++configures class 10:0 to send packets with priorities 6 and 7 to 10:1. ++ ++The complimentary configuration would then ++be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' ++Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1. ++.TP ++estimator interval timeconstant ++CBQ can measure how much bandwidth each class is using, which tc filters ++can use to classify packets with. In order to determine the bandwidth ++it uses a very simple estimator that measures once every ++.B interval ++microseconds how much traffic has passed. This again is a EWMA, for which ++the time constant can be specified, also in microseconds. The ++.B time constant ++corresponds to the sluggishness of the measurement or, conversely, to the ++sensitivity of the average to short bursts. Higher values mean less ++sensitivity. ++ ++ ++ ++.SH SOURCES ++.TP ++o ++Sally Floyd and Van Jacobson, "Link-sharing and Resource ++Management Models for Packet Networks", ++IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on CBQ and Guarantee Service", 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on Class-Based Queueing: Setting ++Parameters", 1996 ++ ++.TP ++o ++Sally Floyd and Michael Speer, "Experimental Results ++for Class-Based Queueing", 1998, not published. ++ ++ ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-cbq.8 iproute2/debian/manpages/old/tc-cbq.8 +--- iproute2-orig/debian/manpages/old/tc-cbq.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-cbq.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,353 @@ ++.TH CBQ 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++CBQ \- Class Based Queueing ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] cbq [ allot ++bytes ++.B ] avpkt ++bytes ++.B bandwidth ++rate ++.B [ cell ++bytes ++.B ] [ ewma ++log ++.B ] [ mpu ++bytes ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] cbq allot ++bytes ++.B [ bandwidth ++rate ++.B ] [ rate ++rate ++.B ] prio ++priority ++.B [ weight ++weight ++.B ] [ minburst ++packets ++.B ] [ maxburst ++packets ++.B ] [ ewma ++log ++.B ] [ cell ++bytes ++.B ] avpkt ++bytes ++.B [ mpu ++bytes ++.B ] [ bounded isolated ] [ split ++handle ++.B & defmap ++defmap ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++Class Based Queueing is a classful qdisc that implements a rich ++linksharing hierarchy of classes. It contains shaping elements as ++well as prioritizing capabilities. Shaping is performed using link ++idle time calculations based on the timing of dequeue events and ++underlying link bandwidth. ++ ++.SH SHAPING ALGORITHM ++When shaping a 10mbit/s connection to 1mbit/s, the link will ++be idle 90% of the time. If it isn't, it needs to be throttled so that it ++IS idle 90% of the time. ++ ++During operations, the effective idletime is measured using an ++exponential weighted moving average (EWMA), which considers recent ++packets to be exponentially more important than past ones. The Unix ++loadaverage is calculated in the same way. ++ ++The calculated idle time is subtracted from the EWMA measured one, ++the resulting number is called 'avgidle'. A perfectly loaded link has ++an avgidle of zero: packets arrive exactly at the calculated ++interval. ++ ++An overloaded link has a negative avgidle and if it gets too negative, ++CBQ throttles and is then 'overlimit'. ++ ++Conversely, an idle link might amass a huge avgidle, which would then ++allow infinite bandwidths after a few hours of silence. To prevent ++this, avgidle is capped at ++.B maxidle. ++ ++If overlimit, in theory, the CBQ could throttle itself for exactly the ++amount of time that was calculated to pass between packets, and then ++pass one packet, and throttle again. Due to timer resolution constraints, ++this may not be feasible, see the ++.B minburst ++parameter below. ++ ++.SH CLASSIFICATION ++Within the one CBQ instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, CBQ starts at the root and uses various methods to ++determine which class should receive the data. ++ ++In the absence of uncommon configuration options, the process is rather easy. ++At each node we look for an instruction, and then go to the class the ++instruction refers us to. If the class found is a barren leaf-node (without ++children), we enqueue the packet there. If it is not yet a leaf node, we do ++the whole thing over again starting from that node. ++ ++The following actions are performed, in order at each node we visit, until one ++sends us to another node, or terminates the process. ++.TP ++(i) ++Consult filters attached to the class. If sent to a leafnode, we are done. ++Otherwise, restart. ++.TP ++(ii) ++Consult the defmap for the priority assigned to this packet, which depends ++on the TOS bits. Check if the referral is leafless, otherwise restart. ++.TP ++(iii) ++Ask the defmap for instructions for the 'best effort' priority. Check the ++answer for leafness, otherwise restart. ++.TP ++(iv) ++If none of the above returned with an instruction, enqueue at this node. ++.P ++This algorithm makes sure that a packet always ends up somewhere, even while ++you are busy building your configuration. ++ ++For more details, see ++.BR tc-cbq-details(8). ++ ++.SH LINK SHARING ALGORITHM ++When dequeuing for sending to the network device, CBQ decides which of its ++classes will be allowed to send. It does so with a Weighted Round Robin process ++in which each class with packets gets a chance to send in turn. The WRR process ++starts by asking the highest priority classes (lowest numerically - ++highest semantically) for packets, and will continue to do so until they ++have no more data to offer, in which case the process repeats for lower ++priorities. ++ ++Classes by default borrow bandwidth from their siblings. A class can be ++prevented from doing so by declaring it 'bounded'. A class can also indicate ++its unwillingness to lend out bandwidth by being 'isolated'. ++ ++.SH QDISC ++The root of a CBQ qdisc class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the CBQ instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the CBQ can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional, but very useful if classes ++will be generated within this qdisc. ++.TP ++allot bytes ++This allotment is the 'chunkiness' of link sharing and is used for determining packet ++transmission time tables. The qdisc allot differs slightly from the class allot discussed ++below. Optional. Defaults to a reasonable value, related to avpkt. ++.TP ++avpkt bytes ++The average size of a packet is needed for calculating maxidle, and is also used ++for making sure 'allot' has a safe value. Mandatory. ++.TP ++bandwidth rate ++To determine the idle time, CBQ must know the bandwidth of your underlying ++physical interface, or parent qdisc. This is a vital parameter, more about it ++later. Mandatory. ++.TP ++cell ++The cell size determines he granularity of packet transmission time calculations. Has a sensible default. ++.TP ++mpu ++A zero sized packet may still take time to transmit. This value is the lower ++cap for packet transmission time calculations - packets smaller than this value ++are still deemed to have this size. Defaults to zero. ++.TP ++ewma log ++When CBQ needs to measure the average idle time, it does so using an ++Exponentially Weighted Moving Average which smoothes out measurements into ++a moving average. The EWMA LOG determines how much smoothing occurs. Lower ++values imply greater sensitivity. Must be between 0 and 31. Defaults ++to 5. ++.P ++A CBQ qdisc does not shape out of its own accord. It only needs to know certain ++parameters about the underlying link. Actual shaping is done in classes. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++weight weight ++When dequeuing to the interface, classes are tried for traffic in a ++round-robin fashion. Classes with a higher configured qdisc will generally ++have more traffic to offer during each round, so it makes sense to allow ++it to dequeue more traffic. All weights under a class are normalized, so ++only the ratios matter. Defaults to the configured rate, unless the priority ++of this class is maximal, in which case it is set to 1. ++.TP ++allot bytes ++Allot specifies how many bytes a qdisc can dequeue ++during each round of the process. This parameter is weighted using the ++renormalized class weight described above. Silently capped at a minimum of ++3/2 avpkt. Mandatory. ++ ++.TP ++prio priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++avpkt ++See the QDISC section. ++ ++.TP ++rate rate ++Maximum rate this class and all its children combined can send at. Mandatory. ++ ++.TP ++bandwidth rate ++This is different from the bandwidth specified when creating a CBQ disc! Only ++used to determine maxidle and offtime, which are only calculated when ++specifying maxburst or minburst. Mandatory if specifying maxburst or minburst. ++ ++.TP ++maxburst ++This number of packets is used to calculate maxidle so that when ++avgidle is at maxidle, this number of average packets can be burst ++before avgidle drops to 0. Set it higher to be more tolerant of ++bursts. You can't set maxidle directly, only via this parameter. ++ ++.TP ++minburst ++As mentioned before, CBQ needs to throttle in case of ++overlimit. The ideal solution is to do so for exactly the calculated ++idle time, and pass 1 packet. However, Unix kernels generally have a ++hard time scheduling events shorter than 10ms, so it is better to ++throttle for a longer period, and then pass minburst packets in one ++go, and then sleep minburst times longer. ++ ++The time to wait is called the offtime. Higher values of minburst lead ++to more accurate shaping in the long term, but to bigger bursts at ++millisecond timescales. Optional. ++ ++.TP ++minidle ++If avgidle is below 0, we are overlimits and need to wait until ++avgidle will be big enough to send one packet. To prevent a sudden ++burst from shutting down the link for a prolonged period of time, ++avgidle is reset to minidle if it gets too low. ++ ++Minidle is specified in negative microseconds, so 10 means that ++avgidle is capped at -10us. Optional. ++ ++.TP ++bounded ++Signifies that this class will not borrow bandwidth from its siblings. ++.TP ++isolated ++Means that this class will not borrow bandwidth to its siblings ++ ++.TP ++split major:minor & defmap bitmap[/bitmap] ++If consulting filters attached to a class did not give a verdict, ++CBQ can also classify based on the packet's priority. There are 16 ++priorities available, numbered from 0 to 15. ++ ++The defmap specifies which priorities this class wants to receive, ++specified as a bitmap. The Least Significant Bit corresponds to priority ++zero. The ++.B split ++parameter tells CBQ at which class the decision must be made, which should ++be a (grand)parent of the class you are adding. ++ ++As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' ++configures class 10:0 to send packets with priorities 6 and 7 to 10:1. ++ ++The complimentary configuration would then ++be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' ++Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1. ++.TP ++estimator interval timeconstant ++CBQ can measure how much bandwidth each class is using, which tc filters ++can use to classify packets with. In order to determine the bandwidth ++it uses a very simple estimator that measures once every ++.B interval ++microseconds how much traffic has passed. This again is a EWMA, for which ++the time constant can be specified, also in microseconds. The ++.B time constant ++corresponds to the sluggishness of the measurement or, conversely, to the ++sensitivity of the average to short bursts. Higher values mean less ++sensitivity. ++ ++.SH BUGS ++The actual bandwidth of the underlying link may not be known, for example ++in the case of PPoE or PPTP connections which in fact may send over a ++pipe, instead of over a physical device. CBQ is quite resilient to major ++errors in the configured bandwidth, probably a the cost of coarser shaping. ++ ++Default kernels rely on coarse timing information for making decisions. These ++may make shaping precise in the long term, but inaccurate on second long scales. ++ ++See ++.BR tc-cbq-details(8) ++for hints on how to improve this. ++ ++.SH SOURCES ++.TP ++o ++Sally Floyd and Van Jacobson, "Link-sharing and Resource ++Management Models for Packet Networks", ++IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on Class-Based Queueing: Setting ++Parameters", 1996 ++ ++.TP ++o ++Sally Floyd and Michael Speer, "Experimental Results ++for Class-Based Queueing", 1998, not published. ++ ++ ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-htb.8 iproute2/debian/manpages/old/tc-htb.8 +--- iproute2-orig/debian/manpages/old/tc-htb.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-htb.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,150 @@ ++.TH HTB 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++HTB \- Hierarchy Token Bucket ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] htb [ default ++minor-id ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] htb rate ++rate ++.B [ ceil ++rate ++.B ] burst ++bytes ++.B [ cburst ++bytes ++.B ] [ prio ++priority ++.B ] ++ ++.SH DESCRIPTION ++HTB is meant as a more understandable and intuitive replacement for ++the CBQ qdisc in Linux. Both CBQ and HTB help you to control the use ++of the outbound bandwidth on a given link. Both allow you to use one ++physical link to simulate several slower links and to send different ++kinds of traffic on different simulated links. In both cases, you have ++to specify how to divide the physical link into simulated links and ++how to decide which simulated link to use for a given packet to be sent. ++ ++Unlike CBQ, HTB shapes traffic based on the Token Bucket Filter algorithm ++which does not depend on interface characteristics and so does not need to ++know the underlying bandwidth of the outgoing interface. ++ ++.SH SHAPING ALGORITHM ++Shaping works as documented in ++.B tc-tbf (8). ++ ++.SH CLASSIFICATION ++Within the one HRB instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, HTB starts at the root and uses various methods to ++determine which class should receive the data. ++ ++In the absence of uncommon configuration options, the process is rather easy. ++At each node we look for an instruction, and then go to the class the ++instruction refers us to. If the class found is a barren leaf-node (without ++children), we enqueue the packet there. If it is not yet a leaf node, we do ++the whole thing over again starting from that node. ++ ++The following actions are performed, in order at each node we visit, until one ++sends us to another node, or terminates the process. ++.TP ++(i) ++Consult filters attached to the class. If sent to a leafnode, we are done. ++Otherwise, restart. ++.TP ++(ii) ++If none of the above returned with an instruction, enqueue at this node. ++.P ++This algorithm makes sure that a packet always ends up somewhere, even while ++you are busy building your configuration. ++ ++.SH LINK SHARING ALGORITHM ++FIXME ++ ++.SH QDISC ++The root of a HTB qdisc class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the HTB instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the HTB can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional, but very useful if classes ++will be generated within this qdisc. ++.TP ++default minor-id ++Unclassified traffic gets sent to the class with this minor-id. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++prio priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++rate rate ++Maximum rate this class and all its children are guaranteed. Mandatory. ++ ++.TP ++ceil rate ++Maximum rate at which a class can send, if its parent has bandwidth to spare. ++Defaults to the configured rate, which implies no borrowing ++ ++.TP ++burst bytes ++Amount of bytes that can be burst at ++.B ceil ++speed, in excess of the configured ++.B rate. ++Should be at least as high as the highest burst of all children. ++ ++.TP ++cburst bytes ++Amount of bytes that can be burst at 'infinite' speed, in other words, as fast ++as the interface can transmit them. For perfect evening out, should be equal to at most one average ++packet. Should be at least as high as the highest cburst of all children. ++ ++.SH NOTES ++Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low. On Intel, ++there are 100 timer events per second, the maximum rate is that rate at which 'burst' bytes are sent each timer tick. ++From this, the mininum burst size for a specified rate can be calculated. For i386, a 10mbit rate requires a 12 kilobyte ++burst as 100*12kb*8 equals 10mbit. ++ ++.SH SEE ALSO ++.BR tc (8) ++.P ++HTB website: http://luxik.cdi.cz/~devik/qos/htb/ ++.SH AUTHOR ++Martin Devera . This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-pbfifo.8 iproute2/debian/manpages/old/tc-pbfifo.8 +--- iproute2-orig/debian/manpages/old/tc-pbfifo.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-pbfifo.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,72 @@ ++.TH PBFIFO 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++pfifo \- Packet limited First In, First Out queue ++.P ++bfifo \- Byte limited First In, First Out queue ++ ++.SH SYNOPSIS ++.B tc qdisc ... add pfifo ++.B [ limit ++packets ++.B ] ++.P ++.B tc qdisc ... add bfifo ++.B [ limit ++bytes ++.B ] ++ ++.SH DESCRIPTION ++The pfifo and bfifo qdiscs are unadorned First In, First Out queues. They are the ++simplest queues possible and therefore have no overhead. ++.B pfifo ++constrains the queue size as measured in packets. ++.B bfifo ++does so as measured in bytes. ++ ++Like all non-default qdiscs, they maintain statistics. This might be a reason to prefer ++pfifo or bfifo over the default. ++ ++.SH ALGORITHM ++A list of packets is maintained, when a packet is enqueued it gets inserted at the tail of ++a list. When a packet needs to be sent out to the network, it is taken from the head of the list. ++ ++If the list is too long, no further packets are allowed on. This is called 'tail drop'. ++ ++.SH PARAMETERS ++.TP ++limit ++Maximum queue size. Specified in bytes for bfifo, in packets for pfifo. For pfifo, defaults ++to the interface txqueuelen, as specified with ++.BR ifconfig (8) ++or ++.BR ip (8). ++ ++For bfifo, it defaults to the txqueuelen multiplied by the interface MTU. ++ ++.SH OUTPUT ++The output of ++.B tc -s qdisc ls ++contains the limit, either in packets or in bytes, and the number of bytes ++and packets actually sent. An unsent and dropped packet only appears between braces ++and is not counted as 'Sent'. ++ ++In this example, the queue length is 100 packets, 45894 bytes were sent over 681 packets. ++No packets were dropped, and as the pfifo queue does not slow down packets, there were also no ++overlimits: ++.P ++.nf ++# tc -s qdisc ls dev eth0 ++qdisc pfifo 8001: dev eth0 limit 100p ++ Sent 45894 bytes 681 pkts (dropped 0, overlimits 0) ++.fi ++ ++If a backlog occurs, this is displayed as well. ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, ++ ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-pfifo_fast.8 iproute2/debian/manpages/old/tc-pfifo_fast.8 +--- iproute2-orig/debian/manpages/old/tc-pfifo_fast.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-pfifo_fast.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,59 @@ ++.TH PFIFO_FAST 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++pfifo_fast \- three-band first in, first out queue ++ ++.SH DESCRIPTION ++pfifo_fast is the default qdisc of each interface. ++ ++Whenever an interface is created, the pfifo_fast qdisc is automatically used ++as a queue. If another qdisc is attached, it preempts the default ++pfifo_fast, which automatically returns to function when an existing qdisc ++is detached. ++ ++In this sense this qdisc is magic, and unlike other qdiscs. ++ ++.SH ALGORITHM ++The algorithm is very similar to that of the classful ++.BR tc-prio (8) ++qdisc. ++.B pfifo_fast ++is like three ++.BR tc-pfifo (8) ++queues side by side, where packets can be enqueued in any of the three bands ++based on their Type of Service bits or assigned priority. ++ ++Not all three bands are dequeued simultaneously - as long as lower bands ++have traffic, higher bands are never dequeued. This can be used to ++prioritize interactive traffic or penalize 'lowest cost' traffic. ++ ++Each band can be txqueuelen packets long, as configured with ++.BR ifconfig (8) ++or ++.BR ip (8). ++Additional packets coming in are not enqueued but are instead dropped. ++ ++See ++.BR tc-prio (8) ++for complete details on how TOS bits are translated into bands. ++.SH PARAMETERS ++.TP ++txqueuelen ++The length of the three bands depends on the interface txqueuelen, as ++specified with ++.BR ifconfig (8) ++or ++.BR ip (8). ++ ++.SH BUGS ++Does not maintain statistics and does not show up in tc qdisc ls. This is because ++it is the automatic default in the absence of a configured qdisc. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, ++ ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-prio.8 iproute2/debian/manpages/old/tc-prio.8 +--- iproute2-orig/debian/manpages/old/tc-prio.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-prio.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,187 @@ ++.TH PRIO 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++PRIO \- Priority qdisc ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] prio [ bands ++bands ++.B ] [ priomap ++band,band,band... ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++The PRIO qdisc is a simple classful queueing discipline that contains ++an arbitrary number of classes of differing priority. The classes are ++dequeued in numerical descending order of priority. PRIO is a scheduler ++and never delays packets - it is a work-conserving qdisc, though the qdiscs ++contained in the classes may not be. ++ ++Very useful for lowering latency when there is no need for slowing down ++traffic. ++ ++.SH ALGORITHM ++On creation with 'tc qdisc add', a fixed number of bands is created. Each ++band is a class, although is not possible to add classes with 'tc qdisc ++add', the number of bands to be created must instead be specified on the ++commandline attaching PRIO to its root. ++ ++When dequeueing, band 0 is tried first and only if it did not deliver a ++packet does PRIO try band 1, and so onwards. Maximum reliability packets ++should therefore go to band 0, minimum delay to band 1 and the rest to band ++2. ++ ++As the PRIO qdisc itself will have minor number 0, band 0 is actually ++major:1, band 1 is major:2, etc. For major, substitute the major number ++assigned to the qdisc on 'tc qdisc add' with the ++.B handle ++parameter. ++ ++.SH CLASSIFICATION ++Three methods are available to PRIO to determine in which band a packet will ++be enqueued. ++.TP ++From userspace ++A process with sufficient privileges can encode the destination class ++directly with SO_PRIORITY, see ++.BR tc(7). ++.TP ++with a tc filter ++A tc filter attached to the root qdisc can point traffic directly to a class ++.TP ++with the priomap ++Based on the packet priority, which in turn is derived from the Type of ++Service assigned to the packet. ++.P ++Only the priomap is specific to this qdisc. ++.SH QDISC PARAMETERS ++.TP ++bands ++Number of bands. If changed from the default of 3, ++.B priomap ++must be updated as well. ++.TP ++priomap ++The priomap maps the priority of ++a packet to a class. The priority can either be set directly from userspace, ++or be derived from the Type of Service of the packet. ++ ++Determines how packet priorities, as assigned by the kernel, map to ++bands. Mapping occurs based on the TOS octet of the packet, which looks like ++this: ++ ++.nf ++0 1 2 3 4 5 6 7 +++---+---+---+---+---+---+---+---+ ++| | | | ++|PRECEDENCE | TOS |MBZ| ++| | | | +++---+---+---+---+---+---+---+---+ ++.fi ++ ++The four TOS bits (the 'TOS field') are defined as: ++ ++.nf ++Binary Decimcal Meaning ++----------------------------------------- ++1000 8 Minimize delay (md) ++0100 4 Maximize throughput (mt) ++0010 2 Maximize reliability (mr) ++0001 1 Minimize monetary cost (mmc) ++0000 0 Normal Service ++.fi ++ ++As there is 1 bit to the right of these four bits, the actual value of the ++TOS field is double the value of the TOS bits. Tcpdump -v -v shows you the ++value of the entire TOS field, not just the four bits. It is the value you ++see in the first column of this table: ++ ++.nf ++TOS Bits Means Linux Priority Band ++------------------------------------------------------------ ++0x0 0 Normal Service 0 Best Effort 1 ++0x2 1 Minimize Monetary Cost 1 Filler 2 ++0x4 2 Maximize Reliability 0 Best Effort 1 ++0x6 3 mmc+mr 0 Best Effort 1 ++0x8 4 Maximize Throughput 2 Bulk 2 ++0xa 5 mmc+mt 2 Bulk 2 ++0xc 6 mr+mt 2 Bulk 2 ++0xe 7 mmc+mr+mt 2 Bulk 2 ++0x10 8 Minimize Delay 6 Interactive 0 ++0x12 9 mmc+md 6 Interactive 0 ++0x14 10 mr+md 6 Interactive 0 ++0x16 11 mmc+mr+md 6 Interactive 0 ++0x18 12 mt+md 4 Int. Bulk 1 ++0x1a 13 mmc+mt+md 4 Int. Bulk 1 ++0x1c 14 mr+mt+md 4 Int. Bulk 1 ++0x1e 15 mmc+mr+mt+md 4 Int. Bulk 1 ++.fi ++ ++The second column contains the value of the relevant ++four TOS bits, followed by their translated meaning. For example, 15 stands ++for a packet wanting Minimal Montetary Cost, Maximum Reliability, Maximum ++Throughput AND Minimum Delay. ++ ++The fourth column lists the way the Linux kernel interprets the TOS bits, by ++showing to which Priority they are mapped. ++ ++The last column shows the result of the default priomap. On the commandline, ++the default priomap looks like this: ++ ++ 1, 2, 2, 2, 1, 2, 0, 0 , 1, 1, 1, 1, 1, 1, 1, 1 ++ ++This means that priority 4, for example, gets mapped to band number 1. ++The priomap also allows you to list higher priorities (> 7) which do not ++correspond to TOS mappings, but which are set by other means. ++ ++This table from RFC 1349 (read it for more details) explains how ++applications might very well set their TOS bits: ++ ++.nf ++TELNET 1000 (minimize delay) ++FTP ++ Control 1000 (minimize delay) ++ Data 0100 (maximize throughput) ++ ++TFTP 1000 (minimize delay) ++ ++SMTP ++ Command phase 1000 (minimize delay) ++ DATA phase 0100 (maximize throughput) ++ ++Domain Name Service ++ UDP Query 1000 (minimize delay) ++ TCP Query 0000 ++ Zone Transfer 0100 (maximize throughput) ++ ++NNTP 0001 (minimize monetary cost) ++ ++ICMP ++ Errors 0000 ++ Requests 0000 (mostly) ++ Responses (mostly) ++.fi ++ ++ ++.SH CLASSES ++PRIO classes cannot be configured further - they are automatically created ++when the PRIO qdisc is attached. Each class however can contain yet a ++further qdisc. ++ ++.SH BUGS ++Large amounts of traffic in the lower bands can cause starvation of higher ++bands. Can be prevented by attaching a shaper (for example, ++.BR tc-tbf(8) ++to these bands to make sure they cannot dominate the link. ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, , J Hadi Salim ++. This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-red.8 iproute2/debian/manpages/old/tc-red.8 +--- iproute2-orig/debian/manpages/old/tc-red.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-red.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,131 @@ ++.TH RED 8 "13 December 2001" "iproute2" "Linux" ++.SH NAME ++red \- Random Early Detection ++.SH SYNOPSIS ++.B tc qdisc ... red ++.B limit ++bytes ++.B min ++bytes ++.B max ++bytes ++.B avpkt ++bytes ++.B burst ++packets ++.B [ ecn ] [ bandwidth ++rate ++.B ] probability ++chance ++ ++.SH DESCRIPTION ++Random Early Detection is a classless qdisc which manages its queue size ++smartly. Regular queues simply drop packets from the tail when they are ++full, which may not be the optimal behaviour. RED also performs tail drop, ++but does so in a more gradual way. ++ ++Once the queue hits a certain average length, packets enqueued have a ++configurable chance of being marked (which may mean dropped). This chance ++increases linearly up to a point called the ++.B max ++average queue length, although the queue might get bigger. ++ ++This has a host of benefits over simple taildrop, while not being processor ++intensive. It prevents synchronous retransmits after a burst in traffic, ++which cause further retransmits, etc. ++ ++The goal is the have a small queue size, which is good for interactivity ++while not disturbing TCP/IP traffic with too many sudden drops after a burst ++of traffic. ++ ++Depending on if ECN is configured, marking either means dropping or ++purely marking a packet as overlimit. ++.SH ALGORITHM ++The average queue size is used for determining the marking ++probability. This is calculated using an Exponential Weighted Moving ++Average, which can be more or less sensitive to bursts. ++ ++When the average queue size is below ++.B min ++bytes, no packet will ever be marked. When it exceeds ++.B min, ++the probability of doing so climbs linearly up ++to ++.B probability, ++until the average queue size hits ++.B max ++bytes. Because ++.B probability ++is normally not set to 100%, the queue size might ++conceivably rise above ++.B max ++bytes, so the ++.B limit ++parameter is provided to set a hard maximum for the size of the queue. ++ ++.SH PARAMETERS ++.TP ++min ++Average queue size at which marking becomes a possibility. ++.TP ++max ++At this average queue size, the marking probability is maximal. Should be at ++least twice ++.B min ++to prevent synchronous retransmits, higher for low ++.B min. ++.TP ++probability ++Maximum probability for marking, specified as a floating point ++number from 0.0 to 1.0. Suggested values are 0.01 or 0.02 (1 or 2%, ++respectively). ++.TP ++limit ++Hard limit on the real (not average) queue size in bytes. Further packets ++are dropped. Should be set higher than max+burst. It is advised to set this ++a few times higher than ++.B max. ++.TP ++burst ++Used for determining how fast the average queue size is influenced by the ++real queue size. Larger values make the calculation more sluggish, allowing ++longer bursts of traffic before marking starts. Real life experiments ++support the following guideline: (min+min+max)/(3*avpkt). ++.TP ++avpkt ++Specified in bytes. Used with burst to determine the time constant for ++average queue size calculations. 1000 is a good value. ++.TP ++bandwidth ++This rate is used for calculating the average queue size after some ++idle time. Should be set to the bandwidth of your interface. Does not mean ++that RED will shape for you! Optional. ++.TP ++ecn ++As mentioned before, RED can either 'mark' or 'drop'. Explicit Congestion ++Notification allows RED to notify remote hosts that their rate exceeds the ++amount of bandwidth available. Non-ECN capable hosts can only be notified by ++dropping a packet. If this parameter is specified, packets which indicate ++that their hosts honor ECN will only be marked and not dropped, unless the ++queue size hits ++.B limit ++bytes. Needs a tc binary with RED support compiled in. Recommended. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH SOURCES ++.TP ++o ++Floyd, S., and Jacobson, V., Random Early Detection gateways for ++Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html ++.TP ++o ++Some changes to the algorithm by Alexey N. Kuznetsov. ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, , Alexey Makarenko ++, J Hadi Salim . ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-sfq.8 iproute2/debian/manpages/old/tc-sfq.8 +--- iproute2-orig/debian/manpages/old/tc-sfq.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-sfq.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,107 @@ ++.TH TC 8 "8 December 2001" "iproute2" "Linux" ++.SH NAME ++sfq \- Stochastic Fairness Queueing ++.SH SYNOPSIS ++.B tc qdisc ... perturb ++seconds ++.B quantum ++bytes ++ ++.SH DESCRIPTION ++ ++Stochastic Fairness Queueing is a classless queueing discipline available for ++traffic control with the ++.BR tc (8) ++command. ++ ++SFQ does not shape traffic but only schedules the transmission of packets, based on 'flows'. ++The goal is to ensure fairness so that each flow is able to send data in turn, thus preventing ++any single flow from drowning out the rest. ++ ++This may in fact have some effect in mitigating a Denial of Service attempt. ++ ++SFQ is work-conserving and therefore always delivers a packet if it has one available. ++.SH ALGORITHM ++On enqueueing, each packet is assigned to a hash bucket, based on ++.TP ++(i) ++Source address ++.TP ++(ii) ++Destination address ++.TP ++(iii) ++Source port ++.P ++If these are available. SFQ knows about ipv4 and ipv6 and also UDP, TCP and ESP. ++Packets with other protocols are hashed based on the 32bits representation of their ++destination and the socket they belong to. A flow corresponds mostly to a TCP/IP ++connection. ++ ++Each of these buckets should represent a unique flow. Because multiple flows may ++get hashed to the same bucket, the hashing algorithm is perturbed at configurable ++intervals so that the unfairness lasts only for a short while. Perturbation may ++however cause some inadvertent packet reordering to occur. ++ ++When dequeuing, each hashbucket with data is queried in a round robin fashion. ++ ++The compile time maximum length of the SFQ is 128 packets, which can be spread over ++at most 128 buckets of 1024 available. In case of overflow, tail-drop is performed ++on the fullest bucket, thus maintaining fairness. ++ ++.SH PARAMETERS ++.TP ++perturb ++Interval in seconds for queue algorithm perturbation. Defaults to 0, which means that ++no perturbation occurs. Do not set too low for each perturbation may cause some packet ++reordering. Advised value: 10 ++.TP ++quantum ++Amount of bytes a flow is allowed to dequeue during a round of the round robin process. ++Defaults to the MTU of the interface which is also the advised value and the minimum value. ++ ++.SH EXAMPLE & USAGE ++ ++To attach to device ppp0: ++.P ++# tc qdisc add dev ppp0 root sfq perturb 10 ++.P ++Please note that SFQ, like all non-shaping (work-conserving) qdiscs, is only useful ++if it owns the queue. ++This is the case when the link speed equals the actually available bandwidth. This holds ++for regular phone modems, ISDN connections and direct non-switched ethernet links. ++.P ++Most often, cable modems and DSL devices do not fall into this category. The same holds ++for when connected to a switch and trying to send data to a congested segment also ++connected to the switch. ++.P ++In this case, the effective queue does not reside within Linux and is therefore not ++available for scheduling. ++.P ++Embed SFQ in a classful qdisc to make sure it owns the queue. ++ ++.SH SOURCE ++.TP ++o ++Paul E. McKenney "Stochastic Fairness Queuing", ++IEEE INFOCOMM'90 Proceedings, San Francisco, 1990. ++ ++.TP ++o ++Paul E. McKenney "Stochastic Fairness Queuing", ++"Interworking: Research and Experience", v.2, 1991, p.113-131. ++ ++.TP ++o ++See also: ++M. Shreedhar and George Varghese "Efficient Fair ++Queuing using Deficit Round Robin", Proc. SIGCOMM 95. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc-tbf.8 iproute2/debian/manpages/old/tc-tbf.8 +--- iproute2-orig/debian/manpages/old/tc-tbf.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc-tbf.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,138 @@ ++.TH TC 8 "13 December 2001" "iproute2" "Linux" ++.SH NAME ++tbf \- Token Bucket Filter ++.SH SYNOPSIS ++.B tc qdisc ... tbf rate ++rate ++.B burst ++bytes/cell ++.B ( latency ++ms ++.B | limit ++bytes ++.B ) [ mpu ++bytes ++.B [ peakrate ++rate ++.B mtu ++bytes/cell ++.B ] ] ++.P ++burst is also known as buffer and maxburst. mtu is also known as minburst. ++.SH DESCRIPTION ++ ++The Token Bucket Filter is a classless queueing discipline available for ++traffic control with the ++.BR tc (8) ++command. ++ ++TBF is a pure shaper and never schedules traffic. It is non-work-conserving and may throttle ++itself, although packets are available, to ensure that the configured rate is not exceeded. ++On all platforms except for Alpha, ++it is able to shape up to 1mbit/s of normal traffic with ideal minimal burstiness, ++sending out data exactly at the configured rates. ++ ++Much higher rates are possible but at the cost of losing the minimal burstiness. In that ++case, data is on average dequeued at the configured rate but may be sent much faster at millisecond ++timescales. Because of further queues living in network adaptors, this is often not a problem. ++ ++Kernels with a higher 'HZ' can achieve higher rates with perfect burstiness. On Alpha, HZ is ten ++times higher, leading to a 10mbit/s limit to perfection. These calculations hold for packets of on ++average 1000 bytes. ++ ++.SH ALGORITHM ++As the name implies, traffic is filtered based on the expenditure of ++.B tokens. ++Tokens roughly correspond to bytes, with the additional constraint that each packet consumes ++some tokens, no matter how small it is. This reflects the fact that even a zero-sized packet occupies ++the link for some time. ++ ++On creation, the TBF is stocked with tokens which correspond to the amount of traffic that can be burst ++in one go. Tokens arrive at a steady rate, until the bucket is full. ++ ++If no tokens are available, packets are queued, up to a configured limit. The TBF now ++calculates the token deficit, and throttles until the first packet in the queue can be sent. ++ ++If it is not acceptable to burst out packets at maximum speed, a peakrate can be configured ++to limit the speed at which the bucket empties. This peakrate is implemented as a second TBF ++with a very small bucket, so that it doesn't burst. ++ ++To achieve perfection, the second bucket may contain only a single packet, which leads to ++the earlier mentioned 1mbit/s limit. ++ ++This limit is caused by the fact that the kernel can only throttle for at minimum 1 'jiffy', which depends ++on HZ as 1/HZ. For perfect shaping, only a single packet can get sent per jiffy - for HZ=100, this means 100 ++packets of on average 1000 bytes each, which roughly corresponds to 1mbit/s. ++ ++.SH PARAMETERS ++See ++.BR tc (8) ++for how to specify the units of these values. ++.TP ++limit or latency ++Limit is the number of bytes that can be queued waiting for tokens to become ++available. You can also specify this the other way around by setting the ++latency parameter, which specifies the maximum amount of time a packet can ++sit in the TBF. The latter calculation takes into account the size of the ++bucket, the rate and possibly the peakrate (if set). These two parameters ++are mutually exclusive. ++.TP ++burst ++Also known as buffer or maxburst. ++Size of the bucket, in bytes. This is the maximum amount of bytes that tokens can be available for instantaneously. ++In general, larger shaping rates require a larger buffer. For 10mbit/s on Intel, you need at least 10kbyte buffer ++if you want to reach your configured rate! ++ ++If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your bucket. ++The minimum buffer size can be calculated by dividing the rate by HZ. ++ ++Token usage calculations are performed using a table which by default has a resolution of 8 packets. ++This resolution can be changed by specifying the ++.B cell ++size with the burst. For example, to specify a 6000 byte buffer with a 16 ++byte cell size, set a burst of 6000/16. You will probably never have to set ++this. Must be an integral power of 2. ++.TP ++mpu ++A zero-sized packet does not use zero bandwidth. For ethernet, no packet uses less than 64 bytes. The Minimum Packet Unit ++determines the minimal token usage (specified in bytes) for a packet. Defaults to zero. ++.TP ++rate ++The speed knob. See remarks above about limits! See ++.BR tc (8) ++for units. ++.PP ++Furthermore, if a peakrate is desired, the following parameters are available: ++ ++.TP ++peakrate ++Maximum depletion rate of the bucket. Limited to 1mbit/s on Intel, 10mbit/s on Alpha. The peakrate does ++not need to be set, it is only necessary if perfect millisecond timescale shaping is required. ++ ++.TP ++mtu/minburst ++Specifies the size of the peakrate bucket. For perfect accuracy, should be set to the MTU of the interface. ++If a peakrate is needed, but some burstiness is acceptable, this size can be raised. A 3000 byte minburst ++allows around 3mbit/s of peakrate, given 1000 byte packets. ++ ++Like the regular burstsize you can also specify a ++.B cell ++size. ++.SH EXAMPLE & USAGE ++ ++To attach a TBF with a sustained maximum rate of 0.5mbit/s, a peakrate of 1.0mbit/s, ++a 5kilobyte buffer, with a pre-bucket queue size limit calculated so the TBF causes ++at most 70ms of latency, with perfect peakrate behaviour, issue: ++.P ++# tc qdisc add dev eth0 root tbf rate 0.5mbit \\ ++ burst 5kb latency 70ms peakrate 1mbit \\ ++ minburst 1540 ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/old/tc.8 iproute2/debian/manpages/old/tc.8 +--- iproute2-orig/debian/manpages/old/tc.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/old/tc.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,348 @@ ++.TH TC 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++tc \- show / manipulate traffic control settings ++.SH SYNOPSIS ++.B tc qdisc [ add | change | replace | link ] dev ++DEV ++.B ++[ parent ++qdisc-id ++.B | root ] ++.B [ handle ++qdisc-id ] qdisc ++[ qdisc specific parameters ] ++.P ++ ++.B tc class [ add | change | replace ] dev ++DEV ++.B parent ++qdisc-id ++.B [ classid ++class-id ] qdisc ++[ qdisc specific parameters ] ++.P ++ ++.B tc filter [ add | change | replace ] dev ++DEV ++.B [ parent ++qdisc-id ++.B | root ] protocol ++protocol ++.B prio ++priority filtertype ++[ filtertype specific parameters ] ++.B flowid ++flow-id ++ ++.B tc [-s | -d ] qdisc show [ dev ++DEV ++.B ] ++.P ++.B tc [-s | -d ] class show dev ++DEV ++.P ++.B tc filter show dev ++DEV ++ ++.SH DESCRIPTION ++.B Tc ++is used to configure Traffic Control in the Linux kernel. Traffic Control consists ++of the following: ++ ++.TP ++SHAPING ++When traffic is shaped, its rate of transmission is under control. Shaping may ++be more than lowering the available bandwidth - it is also used to smooth out ++bursts in traffic for better network behaviour. Shaping occurs on egress. ++ ++.TP ++SCHEDULING ++By scheduling the transmission of packets it is possible to improve interactivity ++for traffic that needs it while still guaranteeing bandwidth to bulk transfers. Reordering ++is also called prioritizing, and happens only on egress. ++ ++.TP ++POLICING ++Where shaping deals with transmission of traffic, policing pertains to traffic ++arriving. Policing thus occurs on ingress. ++ ++.TP ++DROPPING ++Traffic exceeding a set bandwidth may also be dropped forthwith, both on ++ingress and on egress. ++ ++.P ++Processing of traffic is controlled by three kinds of objects: qdiscs, ++classes and filters. ++ ++.SH QDISCS ++.B qdisc ++is short for 'queueing discipline' and it is elementary to ++understanding traffic control. Whenever the kernel needs to send a ++packet to an interface, it is ++.B enqueued ++to the qdisc configured for that interface. Immediately afterwards, the kernel ++tries to get as many packets as possible from the qdisc, for giving them ++to the network adaptor driver. ++ ++A simple QDISC is the 'pfifo' one, which does no processing at all and is a pure ++First In, First Out queue. It does however store traffic when the network interface ++can't handle it momentarily. ++ ++.SH CLASSES ++Some qdiscs can contain classes, which contain further qdiscs - traffic may ++then be enqueued in any of the inner qdiscs, which are within the ++.B classes. ++When the kernel tries to dequeue a packet from such a ++.B classful qdisc ++it can come from any of the classes. A qdisc may for example prioritize ++certain kinds of traffic by trying to dequeue from certain classes ++before others. ++ ++.SH FILTERS ++A ++.B filter ++is used by a classful qdisc to determine in which class a packet will ++be enqueued. Whenever traffic arrives at a class with subclasses, it needs ++to be classified. Various methods may be employed to do so, one of these ++are the filters. All filters attached to the class are called, until one of ++them returns with a verdict. If no verdict was made, other criteria may be ++available. This differs per qdisc. ++ ++It is important to notice that filters reside ++.B within ++qdiscs - they are not masters of what happens. ++ ++.SH CLASSLESS QDISCS ++The classless qdiscs are: ++.TP ++[p|b]fifo ++Simplest usable qdisc, pure First In, First Out behaviour. Limited in ++packets or in bytes. ++.TP ++pfifo_fast ++Standard qdisc for 'Advanced Router' enabled kernels. Consists of a three-band ++queue which honors Type of Service flags, as well as the priority that may be ++assigned to a packet. ++.TP ++red ++Random Early Detection simulates physical congestion by randomly dropping ++packets when nearing configured bandwidth allocation. Well suited to very ++large bandwidth applications. ++.TP ++sfq ++Stochastic Fairness Queueing reorders queued traffic so each 'session' ++gets to send a packet in turn. ++.TP ++tbf ++The Token Bucket Filter is suited for slowing traffic down to a precisely ++configured rate. Scales well to large bandwidths. ++.SH CONFIGURING CLASSLESS QDISCS ++In the absence of classful qdiscs, classless qdiscs can only be attached at ++the root of a device. Full syntax: ++.P ++.B tc qdisc add dev ++DEV ++.B root ++QDISC QDISC-PARAMETERS ++ ++To remove, issue ++.P ++.B tc qdisc del dev ++DEV ++.B root ++ ++The ++.B pfifo_fast ++qdisc is the automatic default in the absence of a configured qdisc. ++ ++.SH CLASSFUL QDISCS ++The classful qdiscs are: ++.TP ++CBQ ++Class Based Queueing implements a rich linksharing hierarchy of classes. ++It contains shaping elements as well as prioritizing capabilities. Shaping is ++performed using link idle time calculations based on average packet size and ++underlying link bandwidth. The latter may be ill-defined for some interfaces. ++.TP ++HTB ++The Hierarchy Token Bucket implements a rich linksharing hierarchy of ++classes with an emphasis on conforming to existing practices. HTB facilitates ++guaranteeing bandwidth to classes, while also allowing specification of upper ++limits to inter-class sharing. It contains shaping elements, based on TBF and ++can prioritize classes. ++.TP ++PRIO ++The PRIO qdisc is a non-shaping container for a configurable number of ++classes which are dequeued in order. This allows for easy prioritization ++of traffic, where lower classes are only able to send if higher ones have ++no packets available. To facilitate configuration, Type Of Service bits are ++honored by default. ++.SH THEORY OF OPERATION ++Classes form a tree, where each class has a single parent. ++A class may have multiple children. Some qdiscs allow for runtime addition ++of classes (CBQ, HTB) while others (PRIO) are created with a static number of ++children. ++ ++Qdiscs which allow dynamic addition of classes can have zero or more ++subclasses to which traffic may be enqueued. ++ ++Furthermore, each class contains a ++.B leaf qdisc ++which by default has ++.B pfifo ++behaviour though another qdisc can be attached in place. This qdisc may again ++contain classes, but each class can have only one leaf qdisc. ++ ++When a packet enters a classful qdisc it can be ++.B classified ++to one of the classes within. Three criteria are available, although not all ++qdiscs will use all three: ++.TP ++tc filters ++If tc filters are attached to a class, they are consulted first ++for relevant instructions. Filters can match on all fields of a packet header, ++as well as on the firewall mark applied by ipchains or iptables. See ++.BR tc-filters (8). ++.TP ++Type of Service ++Some qdiscs have built in rules for classifying packets based on the TOS field. ++.TP ++skb->priority ++Userspace programs can encode a class-id in the 'skb->priority' field using ++the SO_PRIORITY option. ++.P ++Each node within the tree can have its own filters but higher level filters ++may also point directly to lower classes. ++ ++If classification did not succeed, packets are enqueued to the leaf qdisc ++attached to that class. Check qdisc specific manpages for details, however. ++ ++.SH NAMING ++All qdiscs, classes and filters have IDs, which can either be specified ++or be automatically assigned. ++ ++IDs consist of a major number and a minor number, separated by a colon. ++ ++.TP ++QDISCS ++A qdisc, which potentially can have children, ++gets assigned a major number, called a 'handle', leaving the minor ++number namespace available for classes. The handle is expressed as '10:'. ++It is customary to explicitly assign a handle to qdiscs expected to have ++children. ++ ++.TP ++CLASSES ++Classes residing under a qdisc share their qdisc major number, but each have ++a separate minor number called a 'classid' that has no relation to their ++parent classes, only to their parent qdisc. The same naming custom as for ++qdiscs applies. ++ ++.TP ++FILTERS ++Filters have a three part ID, which is only needed when using a hashed ++filter hierarchy, for which see ++.BR tc-filters (8). ++.SH UNITS ++All parameters accept a floating point number, possibly followed by a unit. ++.P ++Bandwidths or rates can be specified in: ++.TP ++kbps ++Kilobytes per second ++.TP ++mbps ++Megabytes per second ++.TP ++kbit ++Kilobits per second ++.TP ++mbit ++Megabits per second ++.TP ++bps or a bare number ++Bytes per second ++.P ++Amounts of data can be specified in: ++.TP ++kb or k ++Kilobytes ++.TP ++mb or m ++Megabytes ++.TP ++mbit ++Megabits ++.TP ++kbit ++Kilobits ++.TP ++b or a bare number ++Bytes. ++.P ++Lengths of time can be specified in: ++.TP ++s, sec or secs ++Whole seconds ++.TP ++ms, msec or msecs ++Milliseconds ++.TP ++us, usec, usecs or a bare number ++Microseconds. ++ ++.SH TC COMMANDS ++The following commands are available for qdiscs, classes and filter: ++.TP ++add ++Add a qdisc, class or filter to a node. For all entities, a ++.B parent ++must be passed, either by passing its ID or by attaching directly to the root of a device. ++When creating a qdisc or a filter, it can be named with the ++.B handle ++parameter. A class is named with the ++.B classid ++parameter. ++ ++.TP ++remove ++A qdisc can be removed by specifying its handle, which may also be 'root'. All subclasses and their leaf qdiscs ++are automatically deleted, as well as any filters attached to them. ++ ++.TP ++change ++Some entities can be modified 'in place'. Shares the syntax of 'add', with the exception ++that the handle cannot be changed and neither can the parent. In other words, ++.B ++change ++cannot move a node. ++ ++.TP ++replace ++Performs a nearly atomic remove/add on an existing node id. If the node does not exist yet ++it is created. ++ ++.TP ++link ++Only available for qdiscs and performs a replace where the node ++must exist already. ++ ++ ++.SH HISTORY ++.B tc ++was written by Alexey N. Kuznetsov and added in Linux 2.2. ++.SH SEE ALSO ++.BR tc-cbq (8), ++.BR tc-htb (8), ++.BR tc-sfq (8), ++.BR tc-red (8), ++.BR tc-tbf (8), ++.BR tc-pfifo (8), ++.BR tc-bfifo (8), ++.BR tc-pfifo_fast (8), ++.BR tc-filters (8) ++ ++.SH AUTHOR ++Manpage maintained by bert hubert (ahu@ds9a.nl) ++ +diff -Naur iproute2-orig/debian/manpages/tc-cbq-details.8 iproute2/debian/manpages/tc-cbq-details.8 +--- iproute2-orig/debian/manpages/tc-cbq-details.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-cbq-details.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,425 @@ ++.TH CBQ 8 "8 December 2001" "iproute2" "Linux" ++.SH NAME ++CBQ \- Class Based Queueing ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] cbq avpkt ++bytes ++.B bandwidth ++rate ++.B [ cell ++bytes ++.B ] [ ewma ++log ++.B ] [ mpu ++bytes ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] cbq allot ++bytes ++.B [ bandwidth ++rate ++.B ] [ rate ++rate ++.B ] prio ++priority ++.B [ weight ++weight ++.B ] [ minburst ++packets ++.B ] [ maxburst ++packets ++.B ] [ ewma ++log ++.B ] [ cell ++bytes ++.B ] avpkt ++bytes ++.B [ mpu ++bytes ++.B ] [ bounded isolated ] [ split ++handle ++.B & defmap ++defmap ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++Class Based Queueing is a classful qdisc that implements a rich ++linksharing hierarchy of classes. It contains shaping elements as ++well as prioritizing capabilities. Shaping is performed using link ++idle time calculations based on the timing of dequeue events and ++underlying link bandwidth. ++ ++.SH SHAPING ALGORITHM ++Shaping is done using link idle time calculations, and actions taken if ++these calculations deviate from set limits. ++ ++When shaping a 10mbit/s connection to 1mbit/s, the link will ++be idle 90% of the time. If it isn't, it needs to be throttled so that it ++IS idle 90% of the time. ++ ++From the kernel's perspective, this is hard to measure, so CBQ instead ++derives the idle time from the number of microseconds (in fact, jiffies) ++that elapse between requests from the device driver for more data. Combined ++with the knowledge of packet sizes, this is used to approximate how full or ++empty the link is. ++ ++This is rather circumspect and doesn't always arrive at proper ++results. For example, what is the actual link speed of an interface ++that is not really able to transmit the full 100mbit/s of data, ++perhaps because of a badly implemented driver? A PCMCIA network card ++will also never achieve 100mbit/s because of the way the bus is ++designed - again, how do we calculate the idle time? ++ ++The physical link bandwidth may be ill defined in case of not-quite-real ++network devices like PPP over Ethernet or PPTP over TCP/IP. The effective ++bandwidth in that case is probably determined by the efficiency of pipes ++to userspace - which not defined. ++ ++During operations, the effective idletime is measured using an ++exponential weighted moving average (EWMA), which considers recent ++packets to be exponentially more important than past ones. The Unix ++loadaverage is calculated in the same way. ++ ++The calculated idle time is subtracted from the EWMA measured one, ++the resulting number is called 'avgidle'. A perfectly loaded link has ++an avgidle of zero: packets arrive exactly at the calculated ++interval. ++ ++An overloaded link has a negative avgidle and if it gets too negative, ++CBQ throttles and is then 'overlimit'. ++ ++Conversely, an idle link might amass a huge avgidle, which would then ++allow infinite bandwidths after a few hours of silence. To prevent ++this, avgidle is capped at ++.B maxidle. ++ ++If overlimit, in theory, the CBQ could throttle itself for exactly the ++amount of time that was calculated to pass between packets, and then ++pass one packet, and throttle again. Due to timer resolution constraints, ++this may not be feasible, see the ++.B minburst ++parameter below. ++ ++.SH CLASSIFICATION ++Within the one CBQ instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, CBQ starts at the root and uses various methods to ++determine which class should receive the data. If a verdict is reached, this ++process is repeated for the recipient class which might have further ++means of classifying traffic to its children, if any. ++ ++CBQ has the following methods available to classify a packet to any child ++classes. ++.TP ++(i) ++.B skb->priority class encoding. ++Can be set from userspace by an application with the ++.B SO_PRIORITY ++setsockopt. ++The ++.B skb->priority class encoding ++only applies if the skb->priority holds a major:minor handle of an existing ++class within this qdisc. ++.TP ++(ii) ++tc filters attached to the class. ++.TP ++(iii) ++The defmap of a class, as set with the ++.B split & defmap ++parameters. The defmap may contain instructions for each possible Linux packet ++priority. ++ ++.P ++Each class also has a ++.B level. ++Leaf nodes, attached to the bottom of the class hierarchy, have a level of 0. ++.SH CLASSIFICATION ALGORITHM ++ ++Classification is a loop, which terminates when a leaf class is found. At any ++point the loop may jump to the fallback algorithm. ++ ++The loop consists of the following steps: ++.TP ++(i) ++If the packet is generated locally and has a valid classid encoded within its ++.B skb->priority, ++choose it and terminate. ++ ++.TP ++(ii) ++Consult the tc filters, if any, attached to this child. If these return ++a class which is not a leaf class, restart loop from the class returned. ++If it is a leaf, choose it and terminate. ++.TP ++(iii) ++If the tc filters did not return a class, but did return a classid, ++try to find a class with that id within this qdisc. ++Check if the found class is of a lower ++.B level ++than the current class. If so, and the returned class is not a leaf node, ++restart the loop at the found class. If it is a leaf node, terminate. ++If we found an upward reference to a higher level, enter the fallback ++algorithm. ++.TP ++(iv) ++If the tc filters did not return a class, nor a valid reference to one, ++consider the minor number of the reference to be the priority. Retrieve ++a class from the defmap of this class for the priority. If this did not ++contain a class, consult the defmap of this class for the ++.B BEST_EFFORT ++class. If this is an upward reference, or no ++.B BEST_EFFORT ++class was defined, ++enter the fallback algorithm. If a valid class was found, and it is not a ++leaf node, restart the loop at this class. If it is a leaf, choose it and ++terminate. If ++neither the priority distilled from the classid, nor the ++.B BEST_EFFORT ++priority yielded a class, enter the fallback algorithm. ++.P ++The fallback algorithm resides outside of the loop and is as follows. ++.TP ++(i) ++Consult the defmap of the class at which the jump to fallback occured. If ++the defmap contains a class for the ++.B ++priority ++of the class (which is related to the TOS field), choose this class and ++terminate. ++.TP ++(ii) ++Consult the map for a class for the ++.B BEST_EFFORT ++priority. If found, choose it, and terminate. ++.TP ++(iii) ++Choose the class at which break out to the fallback algorithm occured. Terminate. ++.P ++The packet is enqueued to the class which was chosen when either algorithm ++terminated. It is therefore possible for a packet to be enqueued *not* at a ++leaf node, but in the middle of the hierarchy. ++ ++.SH LINK SHARING ALGORITHM ++When dequeuing for sending to the network device, CBQ decides which of its ++classes will be allowed to send. It does so with a Weighted Round Robin process ++in which each class with packets gets a chance to send in turn. The WRR process ++starts by asking the highest priority classes (lowest numerically - ++highest semantically) for packets, and will continue to do so until they ++have no more data to offer, in which case the process repeats for lower ++priorities. ++ ++.B CERTAINTY ENDS HERE, ANK PLEASE HELP ++ ++Each class is not allowed to send at length though - they can only dequeue a ++configurable amount of data during each round. ++ ++If a class is about to go overlimit, and it is not ++.B bounded ++it will try to borrow avgidle from siblings that are not ++.B isolated. ++This process is repeated from the bottom upwards. If a class is unable ++to borrow enough avgidle to send a packet, it is throttled and not asked ++for a packet for enough time for the avgidle to increase above zero. ++ ++.B I REALLY NEED HELP FIGURING THIS OUT. REST OF DOCUMENT IS PRETTY CERTAIN ++.B AGAIN. ++ ++.SH QDISC ++The root qdisc of a CBQ class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the CBQ instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the CBQ can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional. ++.TP ++avpkt bytes ++For calculations, the average packet size must be known. It is silently capped ++at a minimum of 2/3 of the interface MTU. Mandatory. ++.TP ++bandwidth rate ++To determine the idle time, CBQ must know the bandwidth of your underlying ++physical interface, or parent qdisc. This is a vital parameter, more about it ++later. Mandatory. ++.TP ++cell ++The cell size determines he granularity of packet transmission time calculations. Has a sensible default. ++.TP ++mpu ++A zero sized packet may still take time to transmit. This value is the lower ++cap for packet transmission time calculations - packets smaller than this value ++are still deemed to have this size. Defaults to zero. ++.TP ++ewma log ++When CBQ needs to measure the average idle time, it does so using an ++Exponentially Weighted Moving Average which smoothes out measurements into ++a moving average. The EWMA LOG determines how much smoothing occurs. Defaults ++to 5. Lower values imply greater sensitivity. Must be between 0 and 31. ++.P ++A CBQ qdisc does not shape out of its own accord. It only needs to know certain ++parameters about the underlying link. Actual shaping is done in classes. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++weight weight ++When dequeuing to the interface, classes are tried for traffic in a ++round-robin fashion. Classes with a higher configured qdisc will generally ++have more traffic to offer during each round, so it makes sense to allow ++it to dequeue more traffic. All weights under a class are normalized, so ++only the ratios matter. Defaults to the configured rate, unless the priority ++of this class is maximal, in which case it is set to 1. ++.TP ++allot bytes ++Allot specifies how many bytes a qdisc can dequeue ++during each round of the process. This parameter is weighted using the ++renormalized class weight described above. ++ ++.TP ++priority priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++rate rate ++Maximum rate this class and all its children combined can send at. Mandatory. ++ ++.TP ++bandwidth rate ++This is different from the bandwidth specified when creating a CBQ disc. Only ++used to determine maxidle and offtime, which are only calculated when ++specifying maxburst or minburst. Mandatory if specifying maxburst or minburst. ++ ++.TP ++maxburst ++This number of packets is used to calculate maxidle so that when ++avgidle is at maxidle, this number of average packets can be burst ++before avgidle drops to 0. Set it higher to be more tolerant of ++bursts. You can't set maxidle directly, only via this parameter. ++ ++.TP ++minburst ++As mentioned before, CBQ needs to throttle in case of ++overlimit. The ideal solution is to do so for exactly the calculated ++idle time, and pass 1 packet. However, Unix kernels generally have a ++hard time scheduling events shorter than 10ms, so it is better to ++throttle for a longer period, and then pass minburst packets in one ++go, and then sleep minburst times longer. ++ ++The time to wait is called the offtime. Higher values of minburst lead ++to more accurate shaping in the long term, but to bigger bursts at ++millisecond timescales. ++ ++.TP ++minidle ++If avgidle is below 0, we are overlimits and need to wait until ++avgidle will be big enough to send one packet. To prevent a sudden ++burst from shutting down the link for a prolonged period of time, ++avgidle is reset to minidle if it gets too low. ++ ++Minidle is specified in negative microseconds, so 10 means that ++avgidle is capped at -10us. ++ ++.TP ++bounded ++Signifies that this class will not borrow bandwidth from its siblings. ++.TP ++isolated ++Means that this class will not borrow bandwidth to its siblings ++ ++.TP ++split major:minor & defmap bitmap[/bitmap] ++If consulting filters attached to a class did not give a verdict, ++CBQ can also classify based on the packet's priority. There are 16 ++priorities available, numbered from 0 to 15. ++ ++The defmap specifies which priorities this class wants to receive, ++specified as a bitmap. The Least Significant Bit corresponds to priority ++zero. The ++.B split ++parameter tells CBQ at which class the decision must be made, which should ++be a (grand)parent of the class you are adding. ++ ++As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' ++configures class 10:0 to send packets with priorities 6 and 7 to 10:1. ++ ++The complimentary configuration would then ++be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' ++Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1. ++.TP ++estimator interval timeconstant ++CBQ can measure how much bandwidth each class is using, which tc filters ++can use to classify packets with. In order to determine the bandwidth ++it uses a very simple estimator that measures once every ++.B interval ++microseconds how much traffic has passed. This again is a EWMA, for which ++the time constant can be specified, also in microseconds. The ++.B time constant ++corresponds to the sluggishness of the measurement or, conversely, to the ++sensitivity of the average to short bursts. Higher values mean less ++sensitivity. ++ ++ ++ ++.SH SOURCES ++.TP ++o ++Sally Floyd and Van Jacobson, "Link-sharing and Resource ++Management Models for Packet Networks", ++IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on CBQ and Guarantee Service", 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on Class-Based Queueing: Setting ++Parameters", 1996 ++ ++.TP ++o ++Sally Floyd and Michael Speer, "Experimental Results ++for Class-Based Queueing", 1998, not published. ++ ++ ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-cbq.8 iproute2/debian/manpages/tc-cbq.8 +--- iproute2-orig/debian/manpages/tc-cbq.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-cbq.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,353 @@ ++.TH CBQ 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++CBQ \- Class Based Queueing ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] cbq [ allot ++bytes ++.B ] avpkt ++bytes ++.B bandwidth ++rate ++.B [ cell ++bytes ++.B ] [ ewma ++log ++.B ] [ mpu ++bytes ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] cbq allot ++bytes ++.B [ bandwidth ++rate ++.B ] [ rate ++rate ++.B ] prio ++priority ++.B [ weight ++weight ++.B ] [ minburst ++packets ++.B ] [ maxburst ++packets ++.B ] [ ewma ++log ++.B ] [ cell ++bytes ++.B ] avpkt ++bytes ++.B [ mpu ++bytes ++.B ] [ bounded isolated ] [ split ++handle ++.B & defmap ++defmap ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++Class Based Queueing is a classful qdisc that implements a rich ++linksharing hierarchy of classes. It contains shaping elements as ++well as prioritizing capabilities. Shaping is performed using link ++idle time calculations based on the timing of dequeue events and ++underlying link bandwidth. ++ ++.SH SHAPING ALGORITHM ++When shaping a 10mbit/s connection to 1mbit/s, the link will ++be idle 90% of the time. If it isn't, it needs to be throttled so that it ++IS idle 90% of the time. ++ ++During operations, the effective idletime is measured using an ++exponential weighted moving average (EWMA), which considers recent ++packets to be exponentially more important than past ones. The Unix ++loadaverage is calculated in the same way. ++ ++The calculated idle time is subtracted from the EWMA measured one, ++the resulting number is called 'avgidle'. A perfectly loaded link has ++an avgidle of zero: packets arrive exactly at the calculated ++interval. ++ ++An overloaded link has a negative avgidle and if it gets too negative, ++CBQ throttles and is then 'overlimit'. ++ ++Conversely, an idle link might amass a huge avgidle, which would then ++allow infinite bandwidths after a few hours of silence. To prevent ++this, avgidle is capped at ++.B maxidle. ++ ++If overlimit, in theory, the CBQ could throttle itself for exactly the ++amount of time that was calculated to pass between packets, and then ++pass one packet, and throttle again. Due to timer resolution constraints, ++this may not be feasible, see the ++.B minburst ++parameter below. ++ ++.SH CLASSIFICATION ++Within the one CBQ instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, CBQ starts at the root and uses various methods to ++determine which class should receive the data. ++ ++In the absence of uncommon configuration options, the process is rather easy. ++At each node we look for an instruction, and then go to the class the ++instruction refers us to. If the class found is a barren leaf-node (without ++children), we enqueue the packet there. If it is not yet a leaf node, we do ++the whole thing over again starting from that node. ++ ++The following actions are performed, in order at each node we visit, until one ++sends us to another node, or terminates the process. ++.TP ++(i) ++Consult filters attached to the class. If sent to a leafnode, we are done. ++Otherwise, restart. ++.TP ++(ii) ++Consult the defmap for the priority assigned to this packet, which depends ++on the TOS bits. Check if the referral is leafless, otherwise restart. ++.TP ++(iii) ++Ask the defmap for instructions for the 'best effort' priority. Check the ++answer for leafness, otherwise restart. ++.TP ++(iv) ++If none of the above returned with an instruction, enqueue at this node. ++.P ++This algorithm makes sure that a packet always ends up somewhere, even while ++you are busy building your configuration. ++ ++For more details, see ++.BR tc-cbq-details(8). ++ ++.SH LINK SHARING ALGORITHM ++When dequeuing for sending to the network device, CBQ decides which of its ++classes will be allowed to send. It does so with a Weighted Round Robin process ++in which each class with packets gets a chance to send in turn. The WRR process ++starts by asking the highest priority classes (lowest numerically - ++highest semantically) for packets, and will continue to do so until they ++have no more data to offer, in which case the process repeats for lower ++priorities. ++ ++Classes by default borrow bandwidth from their siblings. A class can be ++prevented from doing so by declaring it 'bounded'. A class can also indicate ++its unwillingness to lend out bandwidth by being 'isolated'. ++ ++.SH QDISC ++The root of a CBQ qdisc class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the CBQ instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the CBQ can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional, but very useful if classes ++will be generated within this qdisc. ++.TP ++allot bytes ++This allotment is the 'chunkiness' of link sharing and is used for determining packet ++transmission time tables. The qdisc allot differs slightly from the class allot discussed ++below. Optional. Defaults to a reasonable value, related to avpkt. ++.TP ++avpkt bytes ++The average size of a packet is needed for calculating maxidle, and is also used ++for making sure 'allot' has a safe value. Mandatory. ++.TP ++bandwidth rate ++To determine the idle time, CBQ must know the bandwidth of your underlying ++physical interface, or parent qdisc. This is a vital parameter, more about it ++later. Mandatory. ++.TP ++cell ++The cell size determines he granularity of packet transmission time calculations. Has a sensible default. ++.TP ++mpu ++A zero sized packet may still take time to transmit. This value is the lower ++cap for packet transmission time calculations - packets smaller than this value ++are still deemed to have this size. Defaults to zero. ++.TP ++ewma log ++When CBQ needs to measure the average idle time, it does so using an ++Exponentially Weighted Moving Average which smoothes out measurements into ++a moving average. The EWMA LOG determines how much smoothing occurs. Lower ++values imply greater sensitivity. Must be between 0 and 31. Defaults ++to 5. ++.P ++A CBQ qdisc does not shape out of its own accord. It only needs to know certain ++parameters about the underlying link. Actual shaping is done in classes. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++weight weight ++When dequeuing to the interface, classes are tried for traffic in a ++round-robin fashion. Classes with a higher configured qdisc will generally ++have more traffic to offer during each round, so it makes sense to allow ++it to dequeue more traffic. All weights under a class are normalized, so ++only the ratios matter. Defaults to the configured rate, unless the priority ++of this class is maximal, in which case it is set to 1. ++.TP ++allot bytes ++Allot specifies how many bytes a qdisc can dequeue ++during each round of the process. This parameter is weighted using the ++renormalized class weight described above. Silently capped at a minimum of ++3/2 avpkt. Mandatory. ++ ++.TP ++prio priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++avpkt ++See the QDISC section. ++ ++.TP ++rate rate ++Maximum rate this class and all its children combined can send at. Mandatory. ++ ++.TP ++bandwidth rate ++This is different from the bandwidth specified when creating a CBQ disc! Only ++used to determine maxidle and offtime, which are only calculated when ++specifying maxburst or minburst. Mandatory if specifying maxburst or minburst. ++ ++.TP ++maxburst ++This number of packets is used to calculate maxidle so that when ++avgidle is at maxidle, this number of average packets can be burst ++before avgidle drops to 0. Set it higher to be more tolerant of ++bursts. You can't set maxidle directly, only via this parameter. ++ ++.TP ++minburst ++As mentioned before, CBQ needs to throttle in case of ++overlimit. The ideal solution is to do so for exactly the calculated ++idle time, and pass 1 packet. However, Unix kernels generally have a ++hard time scheduling events shorter than 10ms, so it is better to ++throttle for a longer period, and then pass minburst packets in one ++go, and then sleep minburst times longer. ++ ++The time to wait is called the offtime. Higher values of minburst lead ++to more accurate shaping in the long term, but to bigger bursts at ++millisecond timescales. Optional. ++ ++.TP ++minidle ++If avgidle is below 0, we are overlimits and need to wait until ++avgidle will be big enough to send one packet. To prevent a sudden ++burst from shutting down the link for a prolonged period of time, ++avgidle is reset to minidle if it gets too low. ++ ++Minidle is specified in negative microseconds, so 10 means that ++avgidle is capped at -10us. Optional. ++ ++.TP ++bounded ++Signifies that this class will not borrow bandwidth from its siblings. ++.TP ++isolated ++Means that this class will not borrow bandwidth to its siblings ++ ++.TP ++split major:minor & defmap bitmap[/bitmap] ++If consulting filters attached to a class did not give a verdict, ++CBQ can also classify based on the packet's priority. There are 16 ++priorities available, numbered from 0 to 15. ++ ++The defmap specifies which priorities this class wants to receive, ++specified as a bitmap. The Least Significant Bit corresponds to priority ++zero. The ++.B split ++parameter tells CBQ at which class the decision must be made, which should ++be a (grand)parent of the class you are adding. ++ ++As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' ++configures class 10:0 to send packets with priorities 6 and 7 to 10:1. ++ ++The complimentary configuration would then ++be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' ++Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1. ++.TP ++estimator interval timeconstant ++CBQ can measure how much bandwidth each class is using, which tc filters ++can use to classify packets with. In order to determine the bandwidth ++it uses a very simple estimator that measures once every ++.B interval ++microseconds how much traffic has passed. This again is a EWMA, for which ++the time constant can be specified, also in microseconds. The ++.B time constant ++corresponds to the sluggishness of the measurement or, conversely, to the ++sensitivity of the average to short bursts. Higher values mean less ++sensitivity. ++ ++.SH BUGS ++The actual bandwidth of the underlying link may not be known, for example ++in the case of PPoE or PPTP connections which in fact may send over a ++pipe, instead of over a physical device. CBQ is quite resilient to major ++errors in the configured bandwidth, probably a the cost of coarser shaping. ++ ++Default kernels rely on coarse timing information for making decisions. These ++may make shaping precise in the long term, but inaccurate on second long scales. ++ ++See ++.BR tc-cbq-details(8) ++for hints on how to improve this. ++ ++.SH SOURCES ++.TP ++o ++Sally Floyd and Van Jacobson, "Link-sharing and Resource ++Management Models for Packet Networks", ++IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on Class-Based Queueing: Setting ++Parameters", 1996 ++ ++.TP ++o ++Sally Floyd and Michael Speer, "Experimental Results ++for Class-Based Queueing", 1998, not published. ++ ++ ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-htb.8 iproute2/debian/manpages/tc-htb.8 +--- iproute2-orig/debian/manpages/tc-htb.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-htb.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,150 @@ ++.TH HTB 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++HTB \- Hierarchy Token Bucket ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] htb [ default ++minor-id ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] htb rate ++rate ++.B [ ceil ++rate ++.B ] burst ++bytes ++.B [ cburst ++bytes ++.B ] [ prio ++priority ++.B ] ++ ++.SH DESCRIPTION ++HTB is meant as a more understandable and intuitive replacement for ++the CBQ qdisc in Linux. Both CBQ and HTB help you to control the use ++of the outbound bandwidth on a given link. Both allow you to use one ++physical link to simulate several slower links and to send different ++kinds of traffic on different simulated links. In both cases, you have ++to specify how to divide the physical link into simulated links and ++how to decide which simulated link to use for a given packet to be sent. ++ ++Unlike CBQ, HTB shapes traffic based on the Token Bucket Filter algorithm ++which does not depend on interface characteristics and so does not need to ++know the underlying bandwidth of the outgoing interface. ++ ++.SH SHAPING ALGORITHM ++Shaping works as documented in ++.B tc-tbf (8). ++ ++.SH CLASSIFICATION ++Within the one HRB instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, HTB starts at the root and uses various methods to ++determine which class should receive the data. ++ ++In the absence of uncommon configuration options, the process is rather easy. ++At each node we look for an instruction, and then go to the class the ++instruction refers us to. If the class found is a barren leaf-node (without ++children), we enqueue the packet there. If it is not yet a leaf node, we do ++the whole thing over again starting from that node. ++ ++The following actions are performed, in order at each node we visit, until one ++sends us to another node, or terminates the process. ++.TP ++(i) ++Consult filters attached to the class. If sent to a leafnode, we are done. ++Otherwise, restart. ++.TP ++(ii) ++If none of the above returned with an instruction, enqueue at this node. ++.P ++This algorithm makes sure that a packet always ends up somewhere, even while ++you are busy building your configuration. ++ ++.SH LINK SHARING ALGORITHM ++FIXME ++ ++.SH QDISC ++The root of a HTB qdisc class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the HTB instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the HTB can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional, but very useful if classes ++will be generated within this qdisc. ++.TP ++default minor-id ++Unclassified traffic gets sent to the class with this minor-id. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++prio priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++rate rate ++Maximum rate this class and all its children are guaranteed. Mandatory. ++ ++.TP ++ceil rate ++Maximum rate at which a class can send, if its parent has bandwidth to spare. ++Defaults to the configured rate, which implies no borrowing ++ ++.TP ++burst bytes ++Amount of bytes that can be burst at ++.B ceil ++speed, in excess of the configured ++.B rate. ++Should be at least as high as the highest burst of all children. ++ ++.TP ++cburst bytes ++Amount of bytes that can be burst at 'infinite' speed, in other words, as fast ++as the interface can transmit them. For perfect evening out, should be equal to at most one average ++packet. Should be at least as high as the highest cburst of all children. ++ ++.SH NOTES ++Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low. On Intel, ++there are 100 timer events per second, the maximum rate is that rate at which 'burst' bytes are sent each timer tick. ++From this, the mininum burst size for a specified rate can be calculated. For i386, a 10mbit rate requires a 12 kilobyte ++burst as 100*12kb*8 equals 10mbit. ++ ++.SH SEE ALSO ++.BR tc (8) ++.P ++HTB website: http://luxik.cdi.cz/~devik/qos/htb/ ++.SH AUTHOR ++Martin Devera . This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-pbfifo.8 iproute2/debian/manpages/tc-pbfifo.8 +--- iproute2-orig/debian/manpages/tc-pbfifo.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-pbfifo.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,72 @@ ++.TH PBFIFO 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++pfifo \- Packet limited First In, First Out queue ++.P ++bfifo \- Byte limited First In, First Out queue ++ ++.SH SYNOPSIS ++.B tc qdisc ... add pfifo ++.B [ limit ++packets ++.B ] ++.P ++.B tc qdisc ... add bfifo ++.B [ limit ++bytes ++.B ] ++ ++.SH DESCRIPTION ++The pfifo and bfifo qdiscs are unadorned First In, First Out queues. They are the ++simplest queues possible and therefore have no overhead. ++.B pfifo ++constrains the queue size as measured in packets. ++.B bfifo ++does so as measured in bytes. ++ ++Like all non-default qdiscs, they maintain statistics. This might be a reason to prefer ++pfifo or bfifo over the default. ++ ++.SH ALGORITHM ++A list of packets is maintained, when a packet is enqueued it gets inserted at the tail of ++a list. When a packet needs to be sent out to the network, it is taken from the head of the list. ++ ++If the list is too long, no further packets are allowed on. This is called 'tail drop'. ++ ++.SH PARAMETERS ++.TP ++limit ++Maximum queue size. Specified in bytes for bfifo, in packets for pfifo. For pfifo, defaults ++to the interface txqueuelen, as specified with ++.BR ifconfig (8) ++or ++.BR ip (8). ++ ++For bfifo, it defaults to the txqueuelen multiplied by the interface MTU. ++ ++.SH OUTPUT ++The output of ++.B tc -s qdisc ls ++contains the limit, either in packets or in bytes, and the number of bytes ++and packets actually sent. An unsent and dropped packet only appears between braces ++and is not counted as 'Sent'. ++ ++In this example, the queue length is 100 packets, 45894 bytes were sent over 681 packets. ++No packets were dropped, and as the pfifo queue does not slow down packets, there were also no ++overlimits: ++.P ++.nf ++# tc -s qdisc ls dev eth0 ++qdisc pfifo 8001: dev eth0 limit 100p ++ Sent 45894 bytes 681 pkts (dropped 0, overlimits 0) ++.fi ++ ++If a backlog occurs, this is displayed as well. ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, ++ ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-pfifo_fast.8 iproute2/debian/manpages/tc-pfifo_fast.8 +--- iproute2-orig/debian/manpages/tc-pfifo_fast.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-pfifo_fast.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,59 @@ ++.TH PFIFO_FAST 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++pfifo_fast \- three-band first in, first out queue ++ ++.SH DESCRIPTION ++pfifo_fast is the default qdisc of each interface. ++ ++Whenever an interface is created, the pfifo_fast qdisc is automatically used ++as a queue. If another qdisc is attached, it preempts the default ++pfifo_fast, which automatically returns to function when an existing qdisc ++is detached. ++ ++In this sense this qdisc is magic, and unlike other qdiscs. ++ ++.SH ALGORITHM ++The algorithm is very similar to that of the classful ++.BR tc-prio (8) ++qdisc. ++.B pfifo_fast ++is like three ++.BR tc-pfifo (8) ++queues side by side, where packets can be enqueued in any of the three bands ++based on their Type of Service bits or assigned priority. ++ ++Not all three bands are dequeued simultaneously - as long as lower bands ++have traffic, higher bands are never dequeued. This can be used to ++prioritize interactive traffic or penalize 'lowest cost' traffic. ++ ++Each band can be txqueuelen packets long, as configured with ++.BR ifconfig (8) ++or ++.BR ip (8). ++Additional packets coming in are not enqueued but are instead dropped. ++ ++See ++.BR tc-prio (8) ++for complete details on how TOS bits are translated into bands. ++.SH PARAMETERS ++.TP ++txqueuelen ++The length of the three bands depends on the interface txqueuelen, as ++specified with ++.BR ifconfig (8) ++or ++.BR ip (8). ++ ++.SH BUGS ++Does not maintain statistics and does not show up in tc qdisc ls. This is because ++it is the automatic default in the absence of a configured qdisc. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, ++ ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-prio.8 iproute2/debian/manpages/tc-prio.8 +--- iproute2-orig/debian/manpages/tc-prio.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-prio.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,187 @@ ++.TH PRIO 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++PRIO \- Priority qdisc ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] prio [ bands ++bands ++.B ] [ priomap ++band,band,band... ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++The PRIO qdisc is a simple classful queueing discipline that contains ++an arbitrary number of classes of differing priority. The classes are ++dequeued in numerical descending order of priority. PRIO is a scheduler ++and never delays packets - it is a work-conserving qdisc, though the qdiscs ++contained in the classes may not be. ++ ++Very useful for lowering latency when there is no need for slowing down ++traffic. ++ ++.SH ALGORITHM ++On creation with 'tc qdisc add', a fixed number of bands is created. Each ++band is a class, although is not possible to add classes with 'tc qdisc ++add', the number of bands to be created must instead be specified on the ++commandline attaching PRIO to its root. ++ ++When dequeueing, band 0 is tried first and only if it did not deliver a ++packet does PRIO try band 1, and so onwards. Maximum reliability packets ++should therefore go to band 0, minimum delay to band 1 and the rest to band ++2. ++ ++As the PRIO qdisc itself will have minor number 0, band 0 is actually ++major:1, band 1 is major:2, etc. For major, substitute the major number ++assigned to the qdisc on 'tc qdisc add' with the ++.B handle ++parameter. ++ ++.SH CLASSIFICATION ++Three methods are available to PRIO to determine in which band a packet will ++be enqueued. ++.TP ++From userspace ++A process with sufficient privileges can encode the destination class ++directly with SO_PRIORITY, see ++.BR tc(7). ++.TP ++with a tc filter ++A tc filter attached to the root qdisc can point traffic directly to a class ++.TP ++with the priomap ++Based on the packet priority, which in turn is derived from the Type of ++Service assigned to the packet. ++.P ++Only the priomap is specific to this qdisc. ++.SH QDISC PARAMETERS ++.TP ++bands ++Number of bands. If changed from the default of 3, ++.B priomap ++must be updated as well. ++.TP ++priomap ++The priomap maps the priority of ++a packet to a class. The priority can either be set directly from userspace, ++or be derived from the Type of Service of the packet. ++ ++Determines how packet priorities, as assigned by the kernel, map to ++bands. Mapping occurs based on the TOS octet of the packet, which looks like ++this: ++ ++.nf ++0 1 2 3 4 5 6 7 +++---+---+---+---+---+---+---+---+ ++| | | | ++|PRECEDENCE | TOS |MBZ| ++| | | | +++---+---+---+---+---+---+---+---+ ++.fi ++ ++The four TOS bits (the 'TOS field') are defined as: ++ ++.nf ++Binary Decimcal Meaning ++----------------------------------------- ++1000 8 Minimize delay (md) ++0100 4 Maximize throughput (mt) ++0010 2 Maximize reliability (mr) ++0001 1 Minimize monetary cost (mmc) ++0000 0 Normal Service ++.fi ++ ++As there is 1 bit to the right of these four bits, the actual value of the ++TOS field is double the value of the TOS bits. Tcpdump -v -v shows you the ++value of the entire TOS field, not just the four bits. It is the value you ++see in the first column of this table: ++ ++.nf ++TOS Bits Means Linux Priority Band ++------------------------------------------------------------ ++0x0 0 Normal Service 0 Best Effort 1 ++0x2 1 Minimize Monetary Cost 1 Filler 2 ++0x4 2 Maximize Reliability 0 Best Effort 1 ++0x6 3 mmc+mr 0 Best Effort 1 ++0x8 4 Maximize Throughput 2 Bulk 2 ++0xa 5 mmc+mt 2 Bulk 2 ++0xc 6 mr+mt 2 Bulk 2 ++0xe 7 mmc+mr+mt 2 Bulk 2 ++0x10 8 Minimize Delay 6 Interactive 0 ++0x12 9 mmc+md 6 Interactive 0 ++0x14 10 mr+md 6 Interactive 0 ++0x16 11 mmc+mr+md 6 Interactive 0 ++0x18 12 mt+md 4 Int. Bulk 1 ++0x1a 13 mmc+mt+md 4 Int. Bulk 1 ++0x1c 14 mr+mt+md 4 Int. Bulk 1 ++0x1e 15 mmc+mr+mt+md 4 Int. Bulk 1 ++.fi ++ ++The second column contains the value of the relevant ++four TOS bits, followed by their translated meaning. For example, 15 stands ++for a packet wanting Minimal Montetary Cost, Maximum Reliability, Maximum ++Throughput AND Minimum Delay. ++ ++The fourth column lists the way the Linux kernel interprets the TOS bits, by ++showing to which Priority they are mapped. ++ ++The last column shows the result of the default priomap. On the commandline, ++the default priomap looks like this: ++ ++ 1, 2, 2, 2, 1, 2, 0, 0 , 1, 1, 1, 1, 1, 1, 1, 1 ++ ++This means that priority 4, for example, gets mapped to band number 1. ++The priomap also allows you to list higher priorities (> 7) which do not ++correspond to TOS mappings, but which are set by other means. ++ ++This table from RFC 1349 (read it for more details) explains how ++applications might very well set their TOS bits: ++ ++.nf ++TELNET 1000 (minimize delay) ++FTP ++ Control 1000 (minimize delay) ++ Data 0100 (maximize throughput) ++ ++TFTP 1000 (minimize delay) ++ ++SMTP ++ Command phase 1000 (minimize delay) ++ DATA phase 0100 (maximize throughput) ++ ++Domain Name Service ++ UDP Query 1000 (minimize delay) ++ TCP Query 0000 ++ Zone Transfer 0100 (maximize throughput) ++ ++NNTP 0001 (minimize monetary cost) ++ ++ICMP ++ Errors 0000 ++ Requests 0000 (mostly) ++ Responses (mostly) ++.fi ++ ++ ++.SH CLASSES ++PRIO classes cannot be configured further - they are automatically created ++when the PRIO qdisc is attached. Each class however can contain yet a ++further qdisc. ++ ++.SH BUGS ++Large amounts of traffic in the lower bands can cause starvation of higher ++bands. Can be prevented by attaching a shaper (for example, ++.BR tc-tbf(8) ++to these bands to make sure they cannot dominate the link. ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, , J Hadi Salim ++. This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-red.8 iproute2/debian/manpages/tc-red.8 +--- iproute2-orig/debian/manpages/tc-red.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-red.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,131 @@ ++.TH RED 8 "13 December 2001" "iproute2" "Linux" ++.SH NAME ++red \- Random Early Detection ++.SH SYNOPSIS ++.B tc qdisc ... red ++.B limit ++bytes ++.B min ++bytes ++.B max ++bytes ++.B avpkt ++bytes ++.B burst ++packets ++.B [ ecn ] [ bandwidth ++rate ++.B ] probability ++chance ++ ++.SH DESCRIPTION ++Random Early Detection is a classless qdisc which manages its queue size ++smartly. Regular queues simply drop packets from the tail when they are ++full, which may not be the optimal behaviour. RED also performs tail drop, ++but does so in a more gradual way. ++ ++Once the queue hits a certain average length, packets enqueued have a ++configurable chance of being marked (which may mean dropped). This chance ++increases linearly up to a point called the ++.B max ++average queue length, although the queue might get bigger. ++ ++This has a host of benefits over simple taildrop, while not being processor ++intensive. It prevents synchronous retransmits after a burst in traffic, ++which cause further retransmits, etc. ++ ++The goal is the have a small queue size, which is good for interactivity ++while not disturbing TCP/IP traffic with too many sudden drops after a burst ++of traffic. ++ ++Depending on if ECN is configured, marking either means dropping or ++purely marking a packet as overlimit. ++.SH ALGORITHM ++The average queue size is used for determining the marking ++probability. This is calculated using an Exponential Weighted Moving ++Average, which can be more or less sensitive to bursts. ++ ++When the average queue size is below ++.B min ++bytes, no packet will ever be marked. When it exceeds ++.B min, ++the probability of doing so climbs linearly up ++to ++.B probability, ++until the average queue size hits ++.B max ++bytes. Because ++.B probability ++is normally not set to 100%, the queue size might ++conceivably rise above ++.B max ++bytes, so the ++.B limit ++parameter is provided to set a hard maximum for the size of the queue. ++ ++.SH PARAMETERS ++.TP ++min ++Average queue size at which marking becomes a possibility. ++.TP ++max ++At this average queue size, the marking probability is maximal. Should be at ++least twice ++.B min ++to prevent synchronous retransmits, higher for low ++.B min. ++.TP ++probability ++Maximum probability for marking, specified as a floating point ++number from 0.0 to 1.0. Suggested values are 0.01 or 0.02 (1 or 2%, ++respectively). ++.TP ++limit ++Hard limit on the real (not average) queue size in bytes. Further packets ++are dropped. Should be set higher than max+burst. It is advised to set this ++a few times higher than ++.B max. ++.TP ++burst ++Used for determining how fast the average queue size is influenced by the ++real queue size. Larger values make the calculation more sluggish, allowing ++longer bursts of traffic before marking starts. Real life experiments ++support the following guideline: (min+min+max)/(3*avpkt). ++.TP ++avpkt ++Specified in bytes. Used with burst to determine the time constant for ++average queue size calculations. 1000 is a good value. ++.TP ++bandwidth ++This rate is used for calculating the average queue size after some ++idle time. Should be set to the bandwidth of your interface. Does not mean ++that RED will shape for you! Optional. ++.TP ++ecn ++As mentioned before, RED can either 'mark' or 'drop'. Explicit Congestion ++Notification allows RED to notify remote hosts that their rate exceeds the ++amount of bandwidth available. Non-ECN capable hosts can only be notified by ++dropping a packet. If this parameter is specified, packets which indicate ++that their hosts honor ECN will only be marked and not dropped, unless the ++queue size hits ++.B limit ++bytes. Needs a tc binary with RED support compiled in. Recommended. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH SOURCES ++.TP ++o ++Floyd, S., and Jacobson, V., Random Early Detection gateways for ++Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html ++.TP ++o ++Some changes to the algorithm by Alexey N. Kuznetsov. ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, , Alexey Makarenko ++, J Hadi Salim . ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-sfq.8 iproute2/debian/manpages/tc-sfq.8 +--- iproute2-orig/debian/manpages/tc-sfq.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-sfq.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,107 @@ ++.TH TC 8 "8 December 2001" "iproute2" "Linux" ++.SH NAME ++sfq \- Stochastic Fairness Queueing ++.SH SYNOPSIS ++.B tc qdisc ... perturb ++seconds ++.B quantum ++bytes ++ ++.SH DESCRIPTION ++ ++Stochastic Fairness Queueing is a classless queueing discipline available for ++traffic control with the ++.BR tc (8) ++command. ++ ++SFQ does not shape traffic but only schedules the transmission of packets, based on 'flows'. ++The goal is to ensure fairness so that each flow is able to send data in turn, thus preventing ++any single flow from drowning out the rest. ++ ++This may in fact have some effect in mitigating a Denial of Service attempt. ++ ++SFQ is work-conserving and therefore always delivers a packet if it has one available. ++.SH ALGORITHM ++On enqueueing, each packet is assigned to a hash bucket, based on ++.TP ++(i) ++Source address ++.TP ++(ii) ++Destination address ++.TP ++(iii) ++Source port ++.P ++If these are available. SFQ knows about ipv4 and ipv6 and also UDP, TCP and ESP. ++Packets with other protocols are hashed based on the 32bits representation of their ++destination and the socket they belong to. A flow corresponds mostly to a TCP/IP ++connection. ++ ++Each of these buckets should represent a unique flow. Because multiple flows may ++get hashed to the same bucket, the hashing algorithm is perturbed at configurable ++intervals so that the unfairness lasts only for a short while. Perturbation may ++however cause some inadvertent packet reordering to occur. ++ ++When dequeuing, each hashbucket with data is queried in a round robin fashion. ++ ++The compile time maximum length of the SFQ is 128 packets, which can be spread over ++at most 128 buckets of 1024 available. In case of overflow, tail-drop is performed ++on the fullest bucket, thus maintaining fairness. ++ ++.SH PARAMETERS ++.TP ++perturb ++Interval in seconds for queue algorithm perturbation. Defaults to 0, which means that ++no perturbation occurs. Do not set too low for each perturbation may cause some packet ++reordering. Advised value: 10 ++.TP ++quantum ++Amount of bytes a flow is allowed to dequeue during a round of the round robin process. ++Defaults to the MTU of the interface which is also the advised value and the minimum value. ++ ++.SH EXAMPLE & USAGE ++ ++To attach to device ppp0: ++.P ++# tc qdisc add dev ppp0 root sfq perturb 10 ++.P ++Please note that SFQ, like all non-shaping (work-conserving) qdiscs, is only useful ++if it owns the queue. ++This is the case when the link speed equals the actually available bandwidth. This holds ++for regular phone modems, ISDN connections and direct non-switched ethernet links. ++.P ++Most often, cable modems and DSL devices do not fall into this category. The same holds ++for when connected to a switch and trying to send data to a congested segment also ++connected to the switch. ++.P ++In this case, the effective queue does not reside within Linux and is therefore not ++available for scheduling. ++.P ++Embed SFQ in a classful qdisc to make sure it owns the queue. ++ ++.SH SOURCE ++.TP ++o ++Paul E. McKenney "Stochastic Fairness Queuing", ++IEEE INFOCOMM'90 Proceedings, San Francisco, 1990. ++ ++.TP ++o ++Paul E. McKenney "Stochastic Fairness Queuing", ++"Interworking: Research and Experience", v.2, 1991, p.113-131. ++ ++.TP ++o ++See also: ++M. Shreedhar and George Varghese "Efficient Fair ++Queuing using Deficit Round Robin", Proc. SIGCOMM 95. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc-tbf.8 iproute2/debian/manpages/tc-tbf.8 +--- iproute2-orig/debian/manpages/tc-tbf.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc-tbf.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,138 @@ ++.TH TC 8 "13 December 2001" "iproute2" "Linux" ++.SH NAME ++tbf \- Token Bucket Filter ++.SH SYNOPSIS ++.B tc qdisc ... tbf rate ++rate ++.B burst ++bytes/cell ++.B ( latency ++ms ++.B | limit ++bytes ++.B ) [ mpu ++bytes ++.B [ peakrate ++rate ++.B mtu ++bytes/cell ++.B ] ] ++.P ++burst is also known as buffer and maxburst. mtu is also known as minburst. ++.SH DESCRIPTION ++ ++The Token Bucket Filter is a classless queueing discipline available for ++traffic control with the ++.BR tc (8) ++command. ++ ++TBF is a pure shaper and never schedules traffic. It is non-work-conserving and may throttle ++itself, although packets are available, to ensure that the configured rate is not exceeded. ++On all platforms except for Alpha, ++it is able to shape up to 1mbit/s of normal traffic with ideal minimal burstiness, ++sending out data exactly at the configured rates. ++ ++Much higher rates are possible but at the cost of losing the minimal burstiness. In that ++case, data is on average dequeued at the configured rate but may be sent much faster at millisecond ++timescales. Because of further queues living in network adaptors, this is often not a problem. ++ ++Kernels with a higher 'HZ' can achieve higher rates with perfect burstiness. On Alpha, HZ is ten ++times higher, leading to a 10mbit/s limit to perfection. These calculations hold for packets of on ++average 1000 bytes. ++ ++.SH ALGORITHM ++As the name implies, traffic is filtered based on the expenditure of ++.B tokens. ++Tokens roughly correspond to bytes, with the additional constraint that each packet consumes ++some tokens, no matter how small it is. This reflects the fact that even a zero-sized packet occupies ++the link for some time. ++ ++On creation, the TBF is stocked with tokens which correspond to the amount of traffic that can be burst ++in one go. Tokens arrive at a steady rate, until the bucket is full. ++ ++If no tokens are available, packets are queued, up to a configured limit. The TBF now ++calculates the token deficit, and throttles until the first packet in the queue can be sent. ++ ++If it is not acceptable to burst out packets at maximum speed, a peakrate can be configured ++to limit the speed at which the bucket empties. This peakrate is implemented as a second TBF ++with a very small bucket, so that it doesn't burst. ++ ++To achieve perfection, the second bucket may contain only a single packet, which leads to ++the earlier mentioned 1mbit/s limit. ++ ++This limit is caused by the fact that the kernel can only throttle for at minimum 1 'jiffy', which depends ++on HZ as 1/HZ. For perfect shaping, only a single packet can get sent per jiffy - for HZ=100, this means 100 ++packets of on average 1000 bytes each, which roughly corresponds to 1mbit/s. ++ ++.SH PARAMETERS ++See ++.BR tc (8) ++for how to specify the units of these values. ++.TP ++limit or latency ++Limit is the number of bytes that can be queued waiting for tokens to become ++available. You can also specify this the other way around by setting the ++latency parameter, which specifies the maximum amount of time a packet can ++sit in the TBF. The latter calculation takes into account the size of the ++bucket, the rate and possibly the peakrate (if set). These two parameters ++are mutually exclusive. ++.TP ++burst ++Also known as buffer or maxburst. ++Size of the bucket, in bytes. This is the maximum amount of bytes that tokens can be available for instantaneously. ++In general, larger shaping rates require a larger buffer. For 10mbit/s on Intel, you need at least 10kbyte buffer ++if you want to reach your configured rate! ++ ++If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your bucket. ++The minimum buffer size can be calculated by dividing the rate by HZ. ++ ++Token usage calculations are performed using a table which by default has a resolution of 8 packets. ++This resolution can be changed by specifying the ++.B cell ++size with the burst. For example, to specify a 6000 byte buffer with a 16 ++byte cell size, set a burst of 6000/16. You will probably never have to set ++this. Must be an integral power of 2. ++.TP ++mpu ++A zero-sized packet does not use zero bandwidth. For ethernet, no packet uses less than 64 bytes. The Minimum Packet Unit ++determines the minimal token usage (specified in bytes) for a packet. Defaults to zero. ++.TP ++rate ++The speed knob. See remarks above about limits! See ++.BR tc (8) ++for units. ++.PP ++Furthermore, if a peakrate is desired, the following parameters are available: ++ ++.TP ++peakrate ++Maximum depletion rate of the bucket. Limited to 1mbit/s on Intel, 10mbit/s on Alpha. The peakrate does ++not need to be set, it is only necessary if perfect millisecond timescale shaping is required. ++ ++.TP ++mtu/minburst ++Specifies the size of the peakrate bucket. For perfect accuracy, should be set to the MTU of the interface. ++If a peakrate is needed, but some burstiness is acceptable, this size can be raised. A 3000 byte minburst ++allows around 3mbit/s of peakrate, given 1000 byte packets. ++ ++Like the regular burstsize you can also specify a ++.B cell ++size. ++.SH EXAMPLE & USAGE ++ ++To attach a TBF with a sustained maximum rate of 0.5mbit/s, a peakrate of 1.0mbit/s, ++a 5kilobyte buffer, with a pre-bucket queue size limit calculated so the TBF causes ++at most 70ms of latency, with perfect peakrate behaviour, issue: ++.P ++# tc qdisc add dev eth0 root tbf rate 0.5mbit \\ ++ burst 5kb latency 70ms peakrate 1mbit \\ ++ minburst 1540 ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/manpages/tc.8 iproute2/debian/manpages/tc.8 +--- iproute2-orig/debian/manpages/tc.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/manpages/tc.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,348 @@ ++.TH TC 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++tc \- show / manipulate traffic control settings ++.SH SYNOPSIS ++.B tc qdisc [ add | change | replace | link ] dev ++DEV ++.B ++[ parent ++qdisc-id ++.B | root ] ++.B [ handle ++qdisc-id ] qdisc ++[ qdisc specific parameters ] ++.P ++ ++.B tc class [ add | change | replace ] dev ++DEV ++.B parent ++qdisc-id ++.B [ classid ++class-id ] qdisc ++[ qdisc specific parameters ] ++.P ++ ++.B tc filter [ add | change | replace ] dev ++DEV ++.B [ parent ++qdisc-id ++.B | root ] protocol ++protocol ++.B prio ++priority filtertype ++[ filtertype specific parameters ] ++.B flowid ++flow-id ++ ++.B tc [-s | -d ] qdisc show [ dev ++DEV ++.B ] ++.P ++.B tc [-s | -d ] class show dev ++DEV ++.P ++.B tc filter show dev ++DEV ++ ++.SH DESCRIPTION ++.B Tc ++is used to configure Traffic Control in the Linux kernel. Traffic Control consists ++of the following: ++ ++.TP ++SHAPING ++When traffic is shaped, its rate of transmission is under control. Shaping may ++be more than lowering the available bandwidth - it is also used to smooth out ++bursts in traffic for better network behaviour. Shaping occurs on egress. ++ ++.TP ++SCHEDULING ++By scheduling the transmission of packets it is possible to improve interactivity ++for traffic that needs it while still guaranteeing bandwidth to bulk transfers. Reordering ++is also called prioritizing, and happens only on egress. ++ ++.TP ++POLICING ++Where shaping deals with transmission of traffic, policing pertains to traffic ++arriving. Policing thus occurs on ingress. ++ ++.TP ++DROPPING ++Traffic exceeding a set bandwidth may also be dropped forthwith, both on ++ingress and on egress. ++ ++.P ++Processing of traffic is controlled by three kinds of objects: qdiscs, ++classes and filters. ++ ++.SH QDISCS ++.B qdisc ++is short for 'queueing discipline' and it is elementary to ++understanding traffic control. Whenever the kernel needs to send a ++packet to an interface, it is ++.B enqueued ++to the qdisc configured for that interface. Immediately afterwards, the kernel ++tries to get as many packets as possible from the qdisc, for giving them ++to the network adaptor driver. ++ ++A simple QDISC is the 'pfifo' one, which does no processing at all and is a pure ++First In, First Out queue. It does however store traffic when the network interface ++can't handle it momentarily. ++ ++.SH CLASSES ++Some qdiscs can contain classes, which contain further qdiscs - traffic may ++then be enqueued in any of the inner qdiscs, which are within the ++.B classes. ++When the kernel tries to dequeue a packet from such a ++.B classful qdisc ++it can come from any of the classes. A qdisc may for example prioritize ++certain kinds of traffic by trying to dequeue from certain classes ++before others. ++ ++.SH FILTERS ++A ++.B filter ++is used by a classful qdisc to determine in which class a packet will ++be enqueued. Whenever traffic arrives at a class with subclasses, it needs ++to be classified. Various methods may be employed to do so, one of these ++are the filters. All filters attached to the class are called, until one of ++them returns with a verdict. If no verdict was made, other criteria may be ++available. This differs per qdisc. ++ ++It is important to notice that filters reside ++.B within ++qdiscs - they are not masters of what happens. ++ ++.SH CLASSLESS QDISCS ++The classless qdiscs are: ++.TP ++[p|b]fifo ++Simplest usable qdisc, pure First In, First Out behaviour. Limited in ++packets or in bytes. ++.TP ++pfifo_fast ++Standard qdisc for 'Advanced Router' enabled kernels. Consists of a three-band ++queue which honors Type of Service flags, as well as the priority that may be ++assigned to a packet. ++.TP ++red ++Random Early Detection simulates physical congestion by randomly dropping ++packets when nearing configured bandwidth allocation. Well suited to very ++large bandwidth applications. ++.TP ++sfq ++Stochastic Fairness Queueing reorders queued traffic so each 'session' ++gets to send a packet in turn. ++.TP ++tbf ++The Token Bucket Filter is suited for slowing traffic down to a precisely ++configured rate. Scales well to large bandwidths. ++.SH CONFIGURING CLASSLESS QDISCS ++In the absence of classful qdiscs, classless qdiscs can only be attached at ++the root of a device. Full syntax: ++.P ++.B tc qdisc add dev ++DEV ++.B root ++QDISC QDISC-PARAMETERS ++ ++To remove, issue ++.P ++.B tc qdisc del dev ++DEV ++.B root ++ ++The ++.B pfifo_fast ++qdisc is the automatic default in the absence of a configured qdisc. ++ ++.SH CLASSFUL QDISCS ++The classful qdiscs are: ++.TP ++CBQ ++Class Based Queueing implements a rich linksharing hierarchy of classes. ++It contains shaping elements as well as prioritizing capabilities. Shaping is ++performed using link idle time calculations based on average packet size and ++underlying link bandwidth. The latter may be ill-defined for some interfaces. ++.TP ++HTB ++The Hierarchy Token Bucket implements a rich linksharing hierarchy of ++classes with an emphasis on conforming to existing practices. HTB facilitates ++guaranteeing bandwidth to classes, while also allowing specification of upper ++limits to inter-class sharing. It contains shaping elements, based on TBF and ++can prioritize classes. ++.TP ++PRIO ++The PRIO qdisc is a non-shaping container for a configurable number of ++classes which are dequeued in order. This allows for easy prioritization ++of traffic, where lower classes are only able to send if higher ones have ++no packets available. To facilitate configuration, Type Of Service bits are ++honored by default. ++.SH THEORY OF OPERATION ++Classes form a tree, where each class has a single parent. ++A class may have multiple children. Some qdiscs allow for runtime addition ++of classes (CBQ, HTB) while others (PRIO) are created with a static number of ++children. ++ ++Qdiscs which allow dynamic addition of classes can have zero or more ++subclasses to which traffic may be enqueued. ++ ++Furthermore, each class contains a ++.B leaf qdisc ++which by default has ++.B pfifo ++behaviour though another qdisc can be attached in place. This qdisc may again ++contain classes, but each class can have only one leaf qdisc. ++ ++When a packet enters a classful qdisc it can be ++.B classified ++to one of the classes within. Three criteria are available, although not all ++qdiscs will use all three: ++.TP ++tc filters ++If tc filters are attached to a class, they are consulted first ++for relevant instructions. Filters can match on all fields of a packet header, ++as well as on the firewall mark applied by ipchains or iptables. See ++.BR tc-filters (8). ++.TP ++Type of Service ++Some qdiscs have built in rules for classifying packets based on the TOS field. ++.TP ++skb->priority ++Userspace programs can encode a class-id in the 'skb->priority' field using ++the SO_PRIORITY option. ++.P ++Each node within the tree can have its own filters but higher level filters ++may also point directly to lower classes. ++ ++If classification did not succeed, packets are enqueued to the leaf qdisc ++attached to that class. Check qdisc specific manpages for details, however. ++ ++.SH NAMING ++All qdiscs, classes and filters have IDs, which can either be specified ++or be automatically assigned. ++ ++IDs consist of a major number and a minor number, separated by a colon. ++ ++.TP ++QDISCS ++A qdisc, which potentially can have children, ++gets assigned a major number, called a 'handle', leaving the minor ++number namespace available for classes. The handle is expressed as '10:'. ++It is customary to explicitly assign a handle to qdiscs expected to have ++children. ++ ++.TP ++CLASSES ++Classes residing under a qdisc share their qdisc major number, but each have ++a separate minor number called a 'classid' that has no relation to their ++parent classes, only to their parent qdisc. The same naming custom as for ++qdiscs applies. ++ ++.TP ++FILTERS ++Filters have a three part ID, which is only needed when using a hashed ++filter hierarchy, for which see ++.BR tc-filters (8). ++.SH UNITS ++All parameters accept a floating point number, possibly followed by a unit. ++.P ++Bandwidths or rates can be specified in: ++.TP ++kbps ++Kilobytes per second ++.TP ++mbps ++Megabytes per second ++.TP ++kbit ++Kilobits per second ++.TP ++mbit ++Megabits per second ++.TP ++bps or a bare number ++Bytes per second ++.P ++Amounts of data can be specified in: ++.TP ++kb or k ++Kilobytes ++.TP ++mb or m ++Megabytes ++.TP ++mbit ++Megabits ++.TP ++kbit ++Kilobits ++.TP ++b or a bare number ++Bytes. ++.P ++Lengths of time can be specified in: ++.TP ++s, sec or secs ++Whole seconds ++.TP ++ms, msec or msecs ++Milliseconds ++.TP ++us, usec, usecs or a bare number ++Microseconds. ++ ++.SH TC COMMANDS ++The following commands are available for qdiscs, classes and filter: ++.TP ++add ++Add a qdisc, class or filter to a node. For all entities, a ++.B parent ++must be passed, either by passing its ID or by attaching directly to the root of a device. ++When creating a qdisc or a filter, it can be named with the ++.B handle ++parameter. A class is named with the ++.B classid ++parameter. ++ ++.TP ++remove ++A qdisc can be removed by specifying its handle, which may also be 'root'. All subclasses and their leaf qdiscs ++are automatically deleted, as well as any filters attached to them. ++ ++.TP ++change ++Some entities can be modified 'in place'. Shares the syntax of 'add', with the exception ++that the handle cannot be changed and neither can the parent. In other words, ++.B ++change ++cannot move a node. ++ ++.TP ++replace ++Performs a nearly atomic remove/add on an existing node id. If the node does not exist yet ++it is created. ++ ++.TP ++link ++Only available for qdiscs and performs a replace where the node ++must exist already. ++ ++ ++.SH HISTORY ++.B tc ++was written by Alexey N. Kuznetsov and added in Linux 2.2. ++.SH SEE ALSO ++.BR tc-cbq (8), ++.BR tc-htb (8), ++.BR tc-sfq (8), ++.BR tc-red (8), ++.BR tc-tbf (8), ++.BR tc-pfifo (8), ++.BR tc-bfifo (8), ++.BR tc-pfifo_fast (8), ++.BR tc-filters (8) ++ ++.SH AUTHOR ++Manpage maintained by bert hubert (ahu@ds9a.nl) ++ +diff -Naur iproute2-orig/debian/postinst iproute2/debian/postinst +--- iproute2-orig/debian/postinst 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/postinst 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,6 @@ ++#!/bin/sh -e ++ ++# FHS: ++if [ "$1" = "configure" -a -d /usr/doc -a ! -e /usr/doc/iproute ]; then ++ ln -sf ../share/doc/iproute /usr/doc/iproute ++fi +diff -Naur iproute2-orig/debian/postrm iproute2/debian/postrm +--- iproute2-orig/debian/postrm 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/postrm 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,6 @@ ++#!/bin/sh ++ ++if [ "$1" = "purge" ] ++then ++ rm -rf /etc/iproute2 ++fi +diff -Naur iproute2-orig/debian/prerm iproute2/debian/prerm +--- iproute2-orig/debian/prerm 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/prerm 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,5 @@ ++#!/bin/sh -e ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/iproute ]; then ++ rm -f /usr/doc/iproute ++fi +diff -Naur iproute2-orig/debian/rules iproute2/debian/rules +--- iproute2-orig/debian/rules 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/rules 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,85 @@ ++#!/usr/bin/make -f ++# ++# Copyright (C) 1999 Roberto Lumbreras ++# Copyright (C) 1999-2002 Juan Cespedes ++# Copying: GPL ++ ++SHELL = bash ++ ++PACKAGE = $(shell perl -e 'print <> =~ /^(.*) \(.*\)/' debian/changelog) ++PKG_VER = $(shell perl -e 'print <> =~ /\((.*)\)/' debian/changelog) ++PKG_UPVER= $(shell perl -e 'print <> =~ /\((.*)-[^-]*\)/' debian/changelog) ++ ++BINS = ip/ip ++SBINS = ip/rtmon ip/rtacct tc/tc ++SHBINS = ip/routef ip/routel # ip/ifcfg ip/rtpr ++DOCS = README* doc/Plan debian/README.Debian ++MAN8 = debian/manpages/*.8 ++MANLINKS= rtmon rtacct routef routel ++TEXDOCS = ip-cref ip-tunnels api-ip6-flowlabels ++ ++build: stamp-build ++ ++stamp-build: ++ test -f include-glibc/netinet/in.h.orig || \ ++ mv include-glibc/netinet/in.h \ ++ include-glibc/netinet/in.h.orig ++ $(MAKE) KERNEL_INCLUDE=/usr/include ++ $(MAKE) -C doc ++ touch stamp-build ++ ++binary: binary-indep binary-arch ++ ++binary-indep: ++ ++binary-arch: checkroot stamp-build ++ $(RM) -r debian/tmp ++ install -d -m0755 debian/tmp/{DEBIAN,bin,sbin,usr/{bin,share/doc/$(PACKAGE),share/man/man{7,8}}} ++ install -s -m0755 $(BINS) debian/tmp/bin/ ++ install -s -m0755 $(SBINS) debian/tmp/sbin/ ++ ln -s /bin/ip debian/tmp/sbin/ip ++ install -m0755 $(SHBINS) debian/tmp/usr/bin/ ++ cp -p $(DOCS) debian/tmp/usr/share/doc/$(PACKAGE)/ ++ cp -rp examples debian/tmp/usr/share/doc/$(PACKAGE)/ ++ find debian/tmp/usr/share/doc/$(PACKAGE)/examples -type f -exec chmod -x {} \; ++ install -m0644 debian/changelog debian/tmp/usr/share/doc/$(PACKAGE)/changelog.Debian ++ cp -p RELNOTES debian/tmp/usr/share/doc/$(PACKAGE)/changelog ++ for i in $(TEXDOCS); do \ ++ install -m0644 doc/$$i.tex debian/tmp/usr/share/doc/$(PACKAGE)/; \ ++ install -m0644 doc/$$i.dvi debian/tmp/usr/share/doc/$(PACKAGE)/; \ ++ install -m0644 doc/$$i.ps debian/tmp/usr/share/doc/$(PACKAGE)/; \ ++ done ++ install -m0644 $(MAN8) debian/tmp/usr/share/man/man8/ ++ gzip -9fr debian/tmp/usr/share || true ++ ln -s tc-pbfifo.8.gz debian/tmp/usr/share/man/man8/tc-pfifo.8.gz ++ ln -s tc-pbfifo.8.gz debian/tmp/usr/share/man/man8/tc-bfifo.8.gz ++ for i in $(MANLINKS); do \ ++ ln -s ../man7/undocumented.7.gz debian/tmp/usr/share/man/man8/$$i.8.gz; \ ++ done ++ cp -p debian/copyright debian/tmp/usr/share/doc/$(PACKAGE)/ ++ cp -rp etc debian/tmp/ ++ install -m0644 debian/conffiles debian/tmp/DEBIAN/ ++ ++ dpkg-shlibdeps $(BINS) $(SBINS) ++ dpkg-gencontrol -isp ++ chown -R root.root debian/tmp ++ chmod -R u=rwX,go=rX debian/tmp ++ dpkg --build debian/tmp .. ++ ++checkdir: ++ @test -f debian/rules ++ ++checkroot: checkdir ++ @test 0 = `id -u` || { echo "Error: not super-user"; exit 1; } ++ ++clean: checkdir debian/control ++ $(RM) stamp-build debian/files debian/substvars ++ $(MAKE) clean ++ $(MAKE) -C doc clean ++ $(RM) `find . -name "*~" -o -name core` ++ $(RM) -r debian/tmp ++ test -f include-glibc/netinet/in.h.orig && \ ++ mv include-glibc/netinet/in.h.orig \ ++ include-glibc/netinet/in.h || true ++ ++.PHONY: build binary binary-arch binary-indep checkdir checkroot clean +diff -Naur iproute2-orig/debian/tc-cbq.8 iproute2/debian/tc-cbq.8 +--- iproute2-orig/debian/tc-cbq.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-cbq.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,353 @@ ++.TH CBQ 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++CBQ \- Class Based Queueing ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] cbq [ allot ++bytes ++.B ] avpkt ++bytes ++.B bandwidth ++rate ++.B [ cell ++bytes ++.B ] [ ewma ++log ++.B ] [ mpu ++bytes ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] cbq allot ++bytes ++.B [ bandwidth ++rate ++.B ] [ rate ++rate ++.B ] prio ++priority ++.B [ weight ++weight ++.B ] [ minburst ++packets ++.B ] [ maxburst ++packets ++.B ] [ ewma ++log ++.B ] [ cell ++bytes ++.B ] avpkt ++bytes ++.B [ mpu ++bytes ++.B ] [ bounded isolated ] [ split ++handle ++.B & defmap ++defmap ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++Class Based Queueing is a classful qdisc that implements a rich ++linksharing hierarchy of classes. It contains shaping elements as ++well as prioritizing capabilities. Shaping is performed using link ++idle time calculations based on the timing of dequeue events and ++underlying link bandwidth. ++ ++.SH SHAPING ALGORITHM ++When shaping a 10mbit/s connection to 1mbit/s, the link will ++be idle 90% of the time. If it isn't, it needs to be throttled so that it ++IS idle 90% of the time. ++ ++During operations, the effective idletime is measured using an ++exponential weighted moving average (EWMA), which considers recent ++packets to be exponentially more important than past ones. The Unix ++loadaverage is calculated in the same way. ++ ++The calculated idle time is subtracted from the EWMA measured one, ++the resulting number is called 'avgidle'. A perfectly loaded link has ++an avgidle of zero: packets arrive exactly at the calculated ++interval. ++ ++An overloaded link has a negative avgidle and if it gets too negative, ++CBQ throttles and is then 'overlimit'. ++ ++Conversely, an idle link might amass a huge avgidle, which would then ++allow infinite bandwidths after a few hours of silence. To prevent ++this, avgidle is capped at ++.B maxidle. ++ ++If overlimit, in theory, the CBQ could throttle itself for exactly the ++amount of time that was calculated to pass between packets, and then ++pass one packet, and throttle again. Due to timer resolution constraints, ++this may not be feasible, see the ++.B minburst ++parameter below. ++ ++.SH CLASSIFICATION ++Within the one CBQ instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, CBQ starts at the root and uses various methods to ++determine which class should receive the data. ++ ++In the absence of uncommon configuration options, the process is rather easy. ++At each node we look for an instruction, and then go to the class the ++instruction refers us to. If the class found is a barren leaf-node (without ++children), we enqueue the packet there. If it is not yet a leaf node, we do ++the whole thing over again starting from that node. ++ ++The following actions are performed, in order at each node we visit, until one ++sends us to another node, or terminates the process. ++.TP ++(i) ++Consult filters attached to the class. If sent to a leafnode, we are done. ++Otherwise, restart. ++.TP ++(ii) ++Consult the defmap for the priority assigned to this packet, which depends ++on the TOS bits. Check if the referral is leafless, otherwise restart. ++.TP ++(iii) ++Ask the defmap for instructions for the 'best effort' priority. Check the ++answer for leafness, otherwise restart. ++.TP ++(iv) ++If none of the above returned with an instruction, enqueue at this node. ++.P ++This algorithm makes sure that a packet always ends up somewhere, even while ++you are busy building your configuration. ++ ++For more details, see ++.BR tc-cbq-details(8). ++ ++.SH LINK SHARING ALGORITHM ++When dequeuing for sending to the network device, CBQ decides which of its ++classes will be allowed to send. It does so with a Weighted Round Robin process ++in which each class with packets gets a chance to send in turn. The WRR process ++starts by asking the highest priority classes (lowest numerically - ++highest semantically) for packets, and will continue to do so until they ++have no more data to offer, in which case the process repeats for lower ++priorities. ++ ++Classes by default borrow bandwidth from their siblings. A class can be ++prevented from doing so by declaring it 'bounded'. A class can also indicate ++its unwillingness to lend out bandwidth by being 'isolated'. ++ ++.SH QDISC ++The root of a CBQ qdisc class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the CBQ instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the CBQ can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional, but very useful if classes ++will be generated within this qdisc. ++.TP ++allot bytes ++This allotment is the 'chunkiness' of link sharing and is used for determining packet ++transmission time tables. The qdisc allot differs slightly from the class allot discussed ++below. Optional. Defaults to a reasonable value, related to avpkt. ++.TP ++avpkt bytes ++The average size of a packet is needed for calculating maxidle, and is also used ++for making sure 'allot' has a safe value. Mandatory. ++.TP ++bandwidth rate ++To determine the idle time, CBQ must know the bandwidth of your underlying ++physical interface, or parent qdisc. This is a vital parameter, more about it ++later. Mandatory. ++.TP ++cell ++The cell size determines he granularity of packet transmission time calculations. Has a sensible default. ++.TP ++mpu ++A zero sized packet may still take time to transmit. This value is the lower ++cap for packet transmission time calculations - packets smaller than this value ++are still deemed to have this size. Defaults to zero. ++.TP ++ewma log ++When CBQ needs to measure the average idle time, it does so using an ++Exponentially Weighted Moving Average which smoothes out measurements into ++a moving average. The EWMA LOG determines how much smoothing occurs. Lower ++values imply greater sensitivity. Must be between 0 and 31. Defaults ++to 5. ++.P ++A CBQ qdisc does not shape out of its own accord. It only needs to know certain ++parameters about the underlying link. Actual shaping is done in classes. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++weight weight ++When dequeuing to the interface, classes are tried for traffic in a ++round-robin fashion. Classes with a higher configured qdisc will generally ++have more traffic to offer during each round, so it makes sense to allow ++it to dequeue more traffic. All weights under a class are normalized, so ++only the ratios matter. Defaults to the configured rate, unless the priority ++of this class is maximal, in which case it is set to 1. ++.TP ++allot bytes ++Allot specifies how many bytes a qdisc can dequeue ++during each round of the process. This parameter is weighted using the ++renormalized class weight described above. Silently capped at a minimum of ++3/2 avpkt. Mandatory. ++ ++.TP ++prio priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++avpkt ++See the QDISC section. ++ ++.TP ++rate rate ++Maximum rate this class and all its children combined can send at. Mandatory. ++ ++.TP ++bandwidth rate ++This is different from the bandwidth specified when creating a CBQ disc! Only ++used to determine maxidle and offtime, which are only calculated when ++specifying maxburst or minburst. Mandatory if specifying maxburst or minburst. ++ ++.TP ++maxburst ++This number of packets is used to calculate maxidle so that when ++avgidle is at maxidle, this number of average packets can be burst ++before avgidle drops to 0. Set it higher to be more tolerant of ++bursts. You can't set maxidle directly, only via this parameter. ++ ++.TP ++minburst ++As mentioned before, CBQ needs to throttle in case of ++overlimit. The ideal solution is to do so for exactly the calculated ++idle time, and pass 1 packet. However, Unix kernels generally have a ++hard time scheduling events shorter than 10ms, so it is better to ++throttle for a longer period, and then pass minburst packets in one ++go, and then sleep minburst times longer. ++ ++The time to wait is called the offtime. Higher values of minburst lead ++to more accurate shaping in the long term, but to bigger bursts at ++millisecond timescales. Optional. ++ ++.TP ++minidle ++If avgidle is below 0, we are overlimits and need to wait until ++avgidle will be big enough to send one packet. To prevent a sudden ++burst from shutting down the link for a prolonged period of time, ++avgidle is reset to minidle if it gets too low. ++ ++Minidle is specified in negative microseconds, so 10 means that ++avgidle is capped at -10us. Optional. ++ ++.TP ++bounded ++Signifies that this class will not borrow bandwidth from its siblings. ++.TP ++isolated ++Means that this class will not borrow bandwidth to its siblings ++ ++.TP ++split major:minor & defmap bitmap[/bitmap] ++If consulting filters attached to a class did not give a verdict, ++CBQ can also classify based on the packet's priority. There are 16 ++priorities available, numbered from 0 to 15. ++ ++The defmap specifies which priorities this class wants to receive, ++specified as a bitmap. The Least Significant Bit corresponds to priority ++zero. The ++.B split ++parameter tells CBQ at which class the decision must be made, which should ++be a (grand)parent of the class you are adding. ++ ++As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' ++configures class 10:0 to send packets with priorities 6 and 7 to 10:1. ++ ++The complimentary configuration would then ++be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' ++Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1. ++.TP ++estimator interval timeconstant ++CBQ can measure how much bandwidth each class is using, which tc filters ++can use to classify packets with. In order to determine the bandwidth ++it uses a very simple estimator that measures once every ++.B interval ++microseconds how much traffic has passed. This again is a EWMA, for which ++the time constant can be specified, also in microseconds. The ++.B time constant ++corresponds to the sluggishness of the measurement or, conversely, to the ++sensitivity of the average to short bursts. Higher values mean less ++sensitivity. ++ ++.SH BUGS ++The actual bandwidth of the underlying link may not be known, for example ++in the case of PPoE or PPTP connections which in fact may send over a ++pipe, instead of over a physical device. CBQ is quite resilient to major ++errors in the configured bandwidth, probably a the cost of coarser shaping. ++ ++Default kernels rely on coarse timing information for making decisions. These ++may make shaping precise in the long term, but inaccurate on second long scales. ++ ++See ++.BR tc-cbq-details(8) ++for hints on how to improve this. ++ ++.SH SOURCES ++.TP ++o ++Sally Floyd and Van Jacobson, "Link-sharing and Resource ++Management Models for Packet Networks", ++IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995 ++ ++.TP ++o ++Sally Floyd, "Notes on Class-Based Queueing: Setting ++Parameters", 1996 ++ ++.TP ++o ++Sally Floyd and Michael Speer, "Experimental Results ++for Class-Based Queueing", 1998, not published. ++ ++ ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-htb.8 iproute2/debian/tc-htb.8 +--- iproute2-orig/debian/tc-htb.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-htb.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,153 @@ ++.TH HTB 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++HTB \- Hierarchy Token Bucket ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] htb [ default ++minor-id ++.B ] ++ ++.B tc class ... dev ++dev ++.B parent ++major:[minor] ++.B [ classid ++major:minor ++.B ] htb rate ++rate ++.B [ ceil ++rate ++.B ] burst ++bytes ++.B [ cburst ++bytes ++.B ] [ prio ++priority ++.B ] ++ ++.SH DESCRIPTION ++HTB is meant as a more understandable and intuitive replacement for ++the CBQ qdisc in Linux. Both CBQ and HTB help you to control the use ++of the outbound bandwidth on a given link. Both allow you to use one ++physical link to simulate several slower links and to send different ++kinds of traffic on different simulated links. In both cases, you have ++to specify how to divide the physical link into simulated links and ++how to decide which simulated link to use for a given packet to be sent. ++ ++Unlike CBQ, HTB shapes traffic based on the Token Bucket Filter algorithm ++which does not depend on interface characteristics and so does not need to ++know the underlying bandwidth of the outgoing interface. ++ ++.SH SHAPING ALGORITHM ++Shaping works as documented in ++.B tc-tbf (8). ++ ++.SH CLASSIFICATION ++Within the one HRB instance many classes may exist. Each of these classes ++contains another qdisc, by default ++.BR tc-pfifo (8). ++ ++When enqueueing a packet, HTB starts at the root and uses various methods to ++determine which class should receive the data. ++ ++In the absence of uncommon configuration options, the process is rather easy. ++At each node we look for an instruction, and then go to the class the ++instruction refers us to. If the class found is a barren leaf-node (without ++children), we enqueue the packet there. If it is not yet a leaf node, we do ++the whole thing over again starting from that node. ++ ++The following actions are performed, in order at each node we visit, until one ++sends us to another node, or terminates the process. ++.TP ++(i) ++Consult filters attached to the class. If sent to a leafnode, we are done. ++Otherwise, restart. ++.TP ++(ii) ++If none of the above returned with an instruction, enqueue at this node. ++.P ++This algorithm makes sure that a packet always ends up somewhere, even while ++you are busy building your configuration. ++ ++.SH LINK SHARING ALGORITHM ++FIXME ++ ++.SH QDISC ++The root of a CBQ qdisc class tree has the following parameters: ++ ++.TP ++parent major:minor | root ++This mandatory parameter determines the place of the CBQ instance, either at the ++.B root ++of an interface or within an existing class. ++.TP ++handle major: ++Like all other qdiscs, the CBQ can be assigned a handle. Should consist only ++of a major number, followed by a colon. Optional, but very useful if classes ++will be generated within this qdisc. ++.TP ++default minor-id ++Unclassified traffic gets sent to the class with this minor-id. ++ ++.SH CLASSES ++Classes have a host of parameters to configure their operation. ++ ++.TP ++parent major:minor ++Place of this class within the hierarchy. If attached directly to a qdisc ++and not to another class, minor can be omitted. Mandatory. ++.TP ++classid major:minor ++Like qdiscs, classes can be named. The major number must be equal to the ++major number of the qdisc to which it belongs. Optional, but needed if this ++class is going to have children. ++.TP ++prio priority ++In the round-robin process, classes with the lowest priority field are tried ++for packets first. Mandatory. ++ ++.TP ++rate rate ++Maximum rate this class and all its children are guaranteed. Mandatory. ++ ++.TP ++ceil rate ++Maximum rate at which a class can send, if its parent has bandwidth to spare. ++Defaults to the configured rate, which implies no borrowing ++ ++.TP ++burst bytes ++Amount of bytes that can be burst at ++.B ceil ++speed, in excess of the configured ++.B rate. ++Should be at least as high as the highest burst of all children. ++ ++.TP ++cburst bytes ++Amount of bytes that can be burst at 'infinite' speed, in other words, as fast ++as the interface can transmit them. For perfect evening out, should be equal to at most one average ++packet. Should be at least as high as the highest cburst of all children. ++ ++.SH NOTES ++Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low. On Intel, ++there are 100 timer events per second, the maximum rate is that rate at which 'burst' bytes are sent each timer tick. ++From this, the mininum burst size for a specified rate can be calculated. For i386, a 10mbit rate requires a 12 kilobyte ++burst as 100*12kb*8 equals 10mbit. ++ ++.SH BUGS ++Not in the stock kernel yet. ++ ++.SH SEE ALSO ++.BR tc (8) ++.P ++HTB website: http://luxik.cdi.cz/~devik/qos/htb/ ++.SH AUTHOR ++Martin Devera . This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-pbfifo.8 iproute2/debian/tc-pbfifo.8 +--- iproute2-orig/debian/tc-pbfifo.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-pbfifo.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,72 @@ ++.TH PBFIFO 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++pfifo \- Packet limited First In, First Out queue ++.P ++bfifo \- Byte limited First In, First Out queue ++ ++.SH SYNOPSIS ++.B tc qdisc ... add pfifo ++.B [ limit ++packets ++.B ] ++.P ++.B tc qdisc ... add bfifo ++.B [ limit ++bytes ++.B ] ++ ++.SH DESCRIPTION ++The pfifo and bfifo qdiscs are unadorned First In, First Out queues. They are the ++simplest queues possible and therefore have no overhead. ++.B pfifo ++constrains the queue size as measured in packets. ++.B bfifo ++does so as measured in bytes. ++ ++Like all non-default qdiscs, they maintain statistics. This might be a reason to prefer ++pfifo or bfifo over the default. ++ ++.SH ALGORITHM ++A list of packets is maintained, when a packet is enqueued it gets inserted at the tail of ++a list. When a packet needs to be sent out to the network, it is taken from the head of the list. ++ ++If the list is too long, no further packets are allowed on. This is called 'tail drop'. ++ ++.SH PARAMETERS ++.TP ++limit ++Maximum queue size. Specified in bytes for bfifo, in packets for pfifo. For pfifo, defaults ++to the interface txqueuelen, as specified with ++.BR ifconfig (8) ++or ++.BR ip (8). ++ ++For bfifo, it defaults to the txqueuelen multiplied by the interface MTU. ++ ++.SH OUTPUT ++The output of ++.B tc -s qdisc ls ++contains the limit, either in packets or in bytes, and the number of bytes ++and packets actually sent. An unsent and dropped packet only appears between braces ++and is not counted as 'Sent'. ++ ++In this example, the queue length is 100 packets, 45894 bytes were sent over 681 packets. ++No packets were dropped, and as the pfifo queue does not slow down packets, there were also no ++overlimits: ++.P ++.nf ++# tc -s qdisc ls dev eth0 ++qdisc pfifo 8001: dev eth0 limit 100p ++ Sent 45894 bytes 681 pkts (dropped 0, overlimits 0) ++.fi ++ ++If a backlog occurs, this is displayed as well. ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, ++ ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-pfifo_fast.8 iproute2/debian/tc-pfifo_fast.8 +--- iproute2-orig/debian/tc-pfifo_fast.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-pfifo_fast.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,59 @@ ++.TH PFIFO_FAST 8 "10 January 2002" "iproute2" "Linux" ++.SH NAME ++pfifo_fast \- three-band first in, first out queue ++ ++.SH DESCRIPTION ++pfifo_fast is the default qdisc of each interface. ++ ++Whenever an interface is created, the pfifo_fast qdisc is automatically used ++as a queue. If another qdisc is attached, it preempts the default ++pfifo_fast, which automatically returns to function when an existing qdisc ++is detached. ++ ++In this sense this qdisc is magic, and unlike other qdiscs. ++ ++.SH ALGORITHM ++The algorithm is very similar to that of the classful ++.BR tc-prio (8) ++qdisc. ++.B pfifo_fast ++is like three ++.BR tc-pfifo (8) ++queues side by side, where packets can be enqueued in any of the three bands ++based on their Type of Service bits or assigned priority. ++ ++Not all three bands are dequeued simultaneously - as long as lower bands ++have traffic, higher bands are never dequeued. This can be used to ++prioritize interactive traffic or penalize 'lowest cost' traffic. ++ ++Each band can be txqueuelen packets long, as configured with ++.BR ifconfig (8) ++or ++.BR ip (8). ++Additional packets coming in are not enqueued but are instead dropped. ++ ++See ++.BR tc-prio (8) ++for complete details on how TOS bits are translated into bands. ++.SH PARAMETERS ++.TP ++txqueuelen ++The length of the three bands depends on the interface txqueuelen, as ++specified with ++.BR ifconfig (8) ++or ++.BR ip (8). ++ ++.SH BUGS ++Does not maintain statistics and does not show up in tc qdisc ls. This is because ++it is the automatic default in the absence of a configured qdisc. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, ++ ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-prio.8 iproute2/debian/tc-prio.8 +--- iproute2-orig/debian/tc-prio.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-prio.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,187 @@ ++.TH PRIO 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++PRIO \- Priority qdisc ++.SH SYNOPSIS ++.B tc qdisc ... dev ++dev ++.B ( parent ++classid ++.B | root) [ handle ++major: ++.B ] prio [ bands ++bands ++.B ] [ priomap ++band,band,band... ++.B ] [ estimator ++interval timeconstant ++.B ] ++ ++.SH DESCRIPTION ++The PRIO qdisc is a simple classful queueing discipline that contains ++an arbitrary number of classes of differing priority. The classes are ++dequeued in numerical descending order of priority. PRIO is a scheduler ++and never delays packets - it is a work-conserving qdisc, though the qdiscs ++contained in the classes may not be. ++ ++Very useful for lowering latency when there is no need for slowing down ++traffic. ++ ++.SH ALGORITHM ++On creation with 'tc qdisc add', a fixed number of bands is created. Each ++band is a class, although is not possible to add classes with 'tc qdisc ++add', the number of bands to be created must instead be specified on the ++commandline attaching PRIO to its root. ++ ++When dequeueing, band 0 is tried first and only if it did not deliver a ++packet does PRIO try band 1, and so onwards. Maximum reliability packets ++should therefore go to band 0, minimum delay to band 1 and the rest to band ++2. ++ ++As the PRIO qdisc itself will have minor number 0, band 0 is actually ++major:1, band 1 is major:2, etc. For major, substitute the major number ++assigned to the qdisc on 'tc qdisc add' with the ++.B handle ++parameter. ++ ++.SH CLASSIFICATION ++Three methods are available to PRIO to determine in which band a packet will ++be enqueued. ++.TP ++From userspace ++A process with sufficient privileges can encode the destination class ++directly with SO_PRIORITY, see ++.BR tc(7). ++.TP ++with a tc filter ++A tc filter attached to the root qdisc can point traffic directly to a class ++.TP ++with the priomap ++Based on the packet priority, which in turn is derived from the Type of ++Service assigned to the packet. ++.P ++Only the priomap is specific to this qdisc. ++.SH QDISC PARAMETERS ++.TP ++bands ++Number of bands. If changed from the default of 3, ++.B priomap ++must be updated as well. ++.TP ++priomap ++The priomap maps the priority of ++a packet to a class. The priority can either be set directly from userspace, ++or be derived from the Type of Service of the packet. ++ ++Determines how packet priorities, as assigned by the kernel, map to ++bands. Mapping occurs based on the TOS octet of the packet, which looks like ++this: ++ ++.nf ++0 1 2 3 4 5 6 7 +++---+---+---+---+---+---+---+---+ ++| | | | ++|PRECEDENCE | TOS |MBZ| ++| | | | +++---+---+---+---+---+---+---+---+ ++.fi ++ ++The four TOS bits (the 'TOS field') are defined as: ++ ++.nf ++Binary Decimcal Meaning ++----------------------------------------- ++1000 8 Minimize delay (md) ++0100 4 Maximize throughput (mt) ++0010 2 Maximize reliability (mr) ++0001 1 Minimize monetary cost (mmc) ++0000 0 Normal Service ++.fi ++ ++As there is 1 bit to the right of these four bits, the actual value of the ++TOS field is double the value of the TOS bits. Tcpdump -v -v shows you the ++value of the entire TOS field, not just the four bits. It is the value you ++see in the first column of this table: ++ ++.nf ++TOS Bits Means Linux Priority Band ++------------------------------------------------------------ ++0x0 0 Normal Service 0 Best Effort 1 ++0x2 1 Minimize Monetary Cost 1 Filler 2 ++0x4 2 Maximize Reliability 0 Best Effort 1 ++0x6 3 mmc+mr 0 Best Effort 1 ++0x8 4 Maximize Throughput 2 Bulk 2 ++0xa 5 mmc+mt 2 Bulk 2 ++0xc 6 mr+mt 2 Bulk 2 ++0xe 7 mmc+mr+mt 2 Bulk 2 ++0x10 8 Minimize Delay 6 Interactive 0 ++0x12 9 mmc+md 6 Interactive 0 ++0x14 10 mr+md 6 Interactive 0 ++0x16 11 mmc+mr+md 6 Interactive 0 ++0x18 12 mt+md 4 Int. Bulk 1 ++0x1a 13 mmc+mt+md 4 Int. Bulk 1 ++0x1c 14 mr+mt+md 4 Int. Bulk 1 ++0x1e 15 mmc+mr+mt+md 4 Int. Bulk 1 ++.fi ++ ++The second column contains the value of the relevant ++four TOS bits, followed by their translated meaning. For example, 15 stands ++for a packet wanting Minimal Montetary Cost, Maximum Reliability, Maximum ++Throughput AND Minimum Delay. ++ ++The fourth column lists the way the Linux kernel interprets the TOS bits, by ++showing to which Priority they are mapped. ++ ++The last column shows the result of the default priomap. On the commandline, ++the default priomap looks like this: ++ ++ 1, 2, 2, 2, 1, 2, 0, 0 , 1, 1, 1, 1, 1, 1, 1, 1 ++ ++This means that priority 4, for example, gets mapped to band number 1. ++The priomap also allows you to list higher priorities (> 7) which do not ++correspond to TOS mappings, but which are set by other means. ++ ++This table from RFC 1349 (read it for more details) explains how ++applications might very well set their TOS bits: ++ ++.nf ++TELNET 1000 (minimize delay) ++FTP ++ Control 1000 (minimize delay) ++ Data 0100 (maximize throughput) ++ ++TFTP 1000 (minimize delay) ++ ++SMTP ++ Command phase 1000 (minimize delay) ++ DATA phase 0100 (maximize throughput) ++ ++Domain Name Service ++ UDP Query 1000 (minimize delay) ++ TCP Query 0000 ++ Zone Transfer 0100 (maximize throughput) ++ ++NNTP 0001 (minimize monetary cost) ++ ++ICMP ++ Errors 0000 ++ Requests 0000 (mostly) ++ Responses (mostly) ++.fi ++ ++ ++.SH CLASSES ++PRIO classes cannot be configured further - they are automatically created ++when the PRIO qdisc is attached. Each class however can contain yet a ++further qdisc. ++ ++.SH BUGS ++Large amounts of traffic in the lower bands can cause starvation of higher ++bands. Can be prevented by attaching a shaper (for example, ++.BR tc-tbf(8) ++to these bands to make sure they cannot dominate the link. ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, , J Hadi Salim ++. This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-red.8 iproute2/debian/tc-red.8 +--- iproute2-orig/debian/tc-red.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-red.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,131 @@ ++.TH RED 8 "13 December 2001" "iproute2" "Linux" ++.SH NAME ++red \- Random Early Detection ++.SH SYNOPSIS ++.B tc qdisc ... red ++.B limit ++bytes ++.B min ++bytes ++.B max ++bytes ++.B avpkt ++bytes ++.B burst ++packets ++.B [ ecn ] [ bandwidth ++rate ++.B ] probability ++chance ++ ++.SH DESCRIPTION ++Random Early Detection is a classless qdisc which manages its queue size ++smartly. Regular queues simply drop packets from the tail when they are ++full, which may not be the optimal behaviour. RED also performs tail drop, ++but does so in a more gradual way. ++ ++Once the queue hits a certain average length, packets enqueued have a ++configurable chance of being marked (which may mean dropped). This chance ++increases linearly up to a point called the ++.B max ++average queue length, although the queue might get bigger. ++ ++This has a host of benefits over simple taildrop, while not being processor ++intensive. It prevents synchronous retransmits after a burst in traffic, ++which cause further retransmits, etc. ++ ++The goal is the have a small queue size, which is good for interactivity ++while not disturbing TCP/IP traffic with too many sudden drops after a burst ++of traffic. ++ ++Depending on 08 ECN is configured, marking either means dropping or ++purely marking a packet as overlimit. ++.SH ALGORITHM ++The average queue size is used for determining the marking ++probability. This is calculated using an Exponential Weighted Moving ++Average, which can be more or less sensitive to bursts. ++ ++When the average queue size is below ++.B min ++bytes, no packet will ever be marked. When it exceeds ++.B min, ++the probability of doing so climbs linearly up ++to ++.B probability, ++until the average queue size hits ++.B max ++bytes. Because ++.B probability ++is normally not set to 100%, the queue size might ++conceivably rise above ++.B max ++bytes, so the ++.B limit ++parameter is provided to set a hard maximum for the size of the queue. ++ ++.SH PARAMETERS ++.TP ++min ++Average queue size at which marking becomes a possibility. ++.TP ++max ++At this average queue size, the marking probability is maximal. Should be at ++least twice ++.B min ++to prevent synchronous retransmits, higher for low ++.B min. ++.TP ++probability ++Maximum probability for marking, specified as a floating point ++number from 0.0 to 1.0. Suggested values are 0.01 or 0.02 (1 or 2%, ++respectively). ++.TP ++limit ++Hard limit on the real (not average) queue size in bytes. Further packets ++are dropped. Should be set higher than max+burst. It is advised to set this ++a few times higher than ++.B max. ++.TP ++burst ++Used for determining how fast the average queue size is influenced by the ++real queue size. Larger values make the calculation more sluggish, allowing ++longer bursts of traffic before marking starts. Real life experiments ++support the following guideline: (min+min+max)/(3*avpkt). ++.TP ++avpkt ++Specified in bytes. Used with burst to determine the time constant for ++average queue size calculations. 1000 is a good value. ++.TP ++bandwidth ++This rate is used for calculating the average queue size after some ++idle time. Should be set to the bandwidth of your interface. Does not mean ++that RED will shape for you! Optional. ++.TP ++ecn ++As mentioned before, RED can either 'mark' or 'drop'. Explicit Congestion ++Notification allows RED to notify remote hosts that their rate exceeds the ++amount of bandwidth available. Non-ECN capable hosts can only be notified by ++dropping a packet. If this parameter is specified, packets which indicate ++that their hosts honor ECN will only be marked and not dropped, unless the ++queue size hits ++.B limit ++bytes. Needs a tc binary with RED support compiled in. Recommended. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH SOURCES ++.TP ++o ++Floyd, S., and Jacobson, V., Random Early Detection gateways for ++Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html ++.TP ++o ++Some changes to the algorithm by Alexey N. Kuznetsov. ++ ++.SH AUTHORS ++Alexey N. Kuznetsov, , Alexey Makarenko ++, J Hadi Salim . ++This manpage maintained by bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-sfq.8 iproute2/debian/tc-sfq.8 +--- iproute2-orig/debian/tc-sfq.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-sfq.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,107 @@ ++.TH TC 8 "8 December 2001" "iproute2" "Linux" ++.SH NAME ++sfq \- Stochastic Fairness Queueing ++.SH SYNOPSIS ++.B tc qdisc ... perturb ++seconds ++.B quantum ++bytes ++ ++.SH DESCRIPTION ++ ++Stochastic Fairness Queueing is a classless queueing discipline available for ++traffic control with the ++.BR tc (8) ++command. ++ ++SFQ does not shape traffic but only schedules the transmission of packets, based on 'flows'. ++The goal is to ensure fairness so that each flow is able to send data in turn, thus preventing ++any single flow from drowning out the rest. ++ ++This may in fact have some effect in mitigating a Denial of Service attempt. ++ ++SFQ is work-conserving and therefore always delivers a packet if it has one available. ++.SH ALGORITHM ++On enqueueing, each packet is assigned to a hash bucket, based on ++.TP ++(i) ++Source address ++.TP ++(ii) ++Destination address ++.TP ++(iii) ++Source port ++.P ++If these are available. SFQ knows about ipv4 and ipv6 and also UDP, TCP and ESP. ++Packets with other protocols are hashed based on the 32bits representation of their ++destination and the socket they belong to. A flow corresponds mostly to a TCP/IP ++connection. ++ ++Each of these buckets should represent a unique flow. Because multiple flows may ++get hashed to the same bucket, the hashing algorithm is perturbed at configurable ++intervals so that the unfairness lasts only for a short while. Perturbation may ++however cause some inadvertent packet reordering to occur. ++ ++When dequeuing, each hashbucket with data is queried in a round robin fashion. ++ ++The compile time maximum length of the SFQ is 128 packets, which can be spread over ++at most 128 buckets of 1024 available. In case of overflow, tail-drop is performed ++on the fullest bucket, thus maintaining fairness. ++ ++.SH PARAMETERS ++.TP ++perturb ++Interval in seconds for queue algorithm perturbation. Defaults to 0, which means that ++no perturbation occurs. Do not set too low for each perturbation may cause some packet ++reordering. Advised value: 10 ++.TP ++quantum ++Amount of bytes a flow is allowed to dequeue during a round of the round robin process. ++Defaults to the MTU of the interface which is also the advised value and the minimum value. ++ ++.SH EXAMPLE & USAGE ++ ++To attach to device ppp0: ++.P ++# tc qdisc add dev ppp0 root sfq perturb 10 ++.P ++Please note that SFQ, like all non-shaping (work-conserving) qdiscs, is only useful ++if it owns the queue. ++This is the case when the link speed equals the actually available bandwidth. This holds ++for regular phone modems, ISDN connections and direct non-switched ethernet links. ++.P ++Most often, cable modems and DSL devices do not fall into this category. The same holds ++for when connected to a switch and trying to send data to a congested segment also ++connected to the switch. ++.P ++In this case, the effective queue does not reside within Linux and is therefore not ++available for scheduling. ++.P ++Embed SFQ in a classful qdisc to make sure it owns the queue. ++ ++.SH SOURCE ++.TP ++o ++Paul E. McKenney "Stochastic Fairness Queuing", ++IEEE INFOCOMM'90 Proceedings, San Francisco, 1990. ++ ++.TP ++o ++Paul E. McKenney "Stochastic Fairness Queuing", ++"Interworking: Research and Experience", v.2, 1991, p.113-131. ++ ++.TP ++o ++See also: ++M. Shreedhar and George Varghese "Efficient Fair ++Queuing using Deficit Round Robin", Proc. SIGCOMM 95. ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc-tbf.8 iproute2/debian/tc-tbf.8 +--- iproute2-orig/debian/tc-tbf.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc-tbf.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,138 @@ ++.TH TC 8 "13 December 2001" "iproute2" "Linux" ++.SH NAME ++tbf \- Token Bucket Filter ++.SH SYNOPSIS ++.B tc qdisc ... tbf rate ++rate ++.B burst ++bytes/cell ++.B ( latency ++ms ++.B | limit ++bytes ++.B ) [ mpu ++bytes ++.B [ peakrate ++rate ++.B mtu ++bytes/cell ++.B ] ] ++.P ++burst is also known as buffer and maxburst. mtu is also known as minburst. ++.SH DESCRIPTION ++ ++The Token Bucket Filter is a classless queueing discipline available for ++traffic control with the ++.BR tc (8) ++command. ++ ++TBF is a pure shaper and never schedules traffic. It is non-work-conserving and may throttle ++itself, although packets are available, to ensure that the configured rate is not exceeded. ++On all platforms except for Alpha, ++it is able to shape up to 1mbit/s of normal traffic with ideal minimal burstiness, ++sending out data exactly at the configured rates. ++ ++Much higher rates are possible but at the cost of losing the minimal burstiness. In that ++case, data is on average dequeued at the configured rate but may be sent much faster at millisecond ++timescales. Because of further queues living in network adaptors, this is often not a problem. ++ ++Kernels with a higher 'HZ' can achieve higher rates with perfect burstiness. On Alpha, HZ is ten ++times higher, leading to a 10mbit/s limit to perfection. These calculations hold for packets of on ++average 1000 bytes. ++ ++.SH ALGORITHM ++As the name implies, traffic is filtered based on the expenditure of ++.B tokens. ++Tokens roughly correspond to bytes, with the additional constraint that each packet consumes ++some tokens, no matter how small it is. This reflects the fact that even a zero-sized packet occupies ++the link for some time. ++ ++On creation, the TBF is stocked with tokens which correspond to the amount of traffic that can be burst ++in one go. Tokens arrive at a steady rate, until the bucket is full. ++ ++If no tokens are available, packets are queued, up to a configured limit. The TBF now ++calculates the token deficit, and throttles until the first packet in the queue can be sent. ++ ++If it is not acceptable to burst out packets at maximum speed, a peakrate can be configured ++to limit the speed at which the bucket empties. This peakrate is implemented as a second TBF ++with a very small bucket, so that it doesn't burst. ++ ++To achieve perfection, the second bucket may contain only a single packet, which leads to ++the earlier mentioned 1mbit/s limit. ++ ++This limit is caused by the fact that the kernel can only throttle for at minimum 1 'jiffy', which depends ++on HZ as 1/HZ. For perfect shaping, only a single packet can get sent per jiffy - for HZ=100, this means 100 ++packets of on average 1000 bytes each, which roughly corresponds to 1mbit/s. ++ ++.SH PARAMETERS ++See ++.BR tc (8) ++for how to specify the units of these values. ++.TP ++limit or latency ++Limit is the number of bytes that can be queued waiting for tokens to become ++available. You can also specify this the other way around by setting the ++latency parameter, which specifies the maximum amount of time a packet can ++sit in the TBF. The latter calculation takes into account the size of the ++bucket, the rate and possibly the peakrate (if set). These two parameters ++are mutually exclusive. ++.TP ++burst ++Also known as buffer or maxburst. ++Size of the bucket, in bytes. This is the maximum amount of bytes that tokens can be available for instantaneously. ++In general, larger shaping rates require a larger buffer. For 10mbit/s on Intel, you need at least 10kbyte buffer ++if you want to reach your configured rate! ++ ++If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your bucket. ++The minimum buffer size can be calculated by dividing the rate by HZ. ++ ++Token usage calculations are performed using a table which by default has a resolution of 8 packets. ++This resolution can be changed by specifying the ++.B cell ++size with the burst. For example, to specify a 6000 byte buffer with a 16 ++byte cell size, set a burst of 6000/16. You will probably never have to set ++this. Must be an integral power of 2. ++.TP ++mpu ++A zero-sized packet does not use zero bandwidth. For ethernet, no packet uses less than 64 bytes. The Minimum Packet Unit ++determines the minimal token usage (specified in bytes) for a packet. Defaults to zero. ++.TP ++rate ++The speed knob. See remarks above about limits! See ++.BR tc (8) ++for units. ++.PP ++Furthermore, if a peakrate is desired, the following parameters are available: ++ ++.TP ++peakrate ++Maximum depletion rate of the bucket. Limited to 1mbit/s on Intel, 10mbit/s on Alpha. The peakrate does ++not need to be set, it is only necessary if perfect millisecond timescale shaping is required. ++ ++.TP ++mtu/minburst ++Specifies the size of the peakrate bucket. For perfect accuracy, should be set to the MTU of the interface. ++If a peakrate is needed, but some burstiness is acceptable, this size can be raised. A 3000 byte minburst ++allows around 3mbit/s of peakrate, given 1000 byte packets. ++ ++Like the regular burstsize you can also specify a ++.B cell ++size. ++.SH EXAMPLE & USAGE ++ ++To attach a TBF with a sustained maximum rate of 0.5mbit/s, a peakrate of 1.0mbit/s, ++a 5kilobyte buffer, with a pre-bucket queue size limit calculated so the TBF causes ++at most 70ms of latency, with perfect peakrate behaviour, issue: ++.P ++# tc qdisc add dev eth0 root tbf rate 0.5mbit \\ ++ burst 5kb latency 70ms peakrate 1mbit \\ ++ minburst 1540 ++ ++.SH SEE ALSO ++.BR tc (8) ++ ++.SH AUTHOR ++Alexey N. Kuznetsov, . This manpage maintained by ++bert hubert ++ ++ +diff -Naur iproute2-orig/debian/tc.8 iproute2/debian/tc.8 +--- iproute2-orig/debian/tc.8 1969-12-31 16:00:00.000000000 -0800 ++++ iproute2/debian/tc.8 2004-05-21 00:09:38.000000000 -0700 +@@ -0,0 +1,348 @@ ++.TH TC 8 "16 December 2001" "iproute2" "Linux" ++.SH NAME ++tc \- show / manipulate traffic control settings ++.SH SYNOPSIS ++.B tc qdisc [ add | change | replace | link ] dev ++DEV ++.B ++[ parent ++qdisc-id ++.B | root ] ++.B [ handle ++qdisc-id ] qdisc ++[ qdisc specific parameters ] ++.P ++ ++.B tc class [ add | change | replace ] dev ++DEV ++.B parent ++qdisc-id ++.B [ classid ++class-id ] qdisc ++[ qdisc specific parameters ] ++.P ++ ++.B tc filter [ add | change | replace ] dev ++DEV ++.B [ parent ++qdisc-id ++.B | root ] protocol ++protocol ++.B prio ++priority filtertype ++[ filtertype specific parameters ] ++.B flowid ++flow-id ++ ++.B tc [-s | -d ] qdisc show [ dev ++DEV ++.B ] ++.P ++.B tc [-s | -d ] class show dev ++DEV ++.P ++.B tc filter show dev ++DEV ++ ++.SH DESCRIPTION ++.B Tc ++is used to configure Traffic Control in the Linux kernel. Traffic Control consists ++of the following: ++ ++.TP ++SHAPING ++When traffic is shaped, its rate of transmission is under control. Shaping may ++be more than lowering the available bandwidth - it is also used to smooth out ++bursts in traffic for better network behaviour. Shaping occurs on egress. ++ ++.TP ++SCHEDULING ++By scheduling the transmission of packets it is possible to improve interactivity ++for traffic that needs it while still guaranteeing bandwidth to bulk transfers. Reordering ++is also called prioritizing, and happens only on egress. ++ ++.TP ++POLICING ++Where shaping deals with transmission of traffic, policing pertains to traffic ++arriving. Policing thus occurs on ingress. ++ ++.TP ++DROPPING ++Traffic exceeding a set bandwidth may also be dropped forthwith, both on ++ingress and on egress. ++ ++.P ++Processing of traffic is controlled by three kinds of objects: qdiscs, ++classes and filters. ++ ++.SH QDISCS ++.B qdisc ++is short for 'queueing discipline' and it is elementary to ++understanding traffic control. Whenever the kernel needs to send a ++packet to an interface, it is ++.B enqueued ++to the qdisc configured for that interface. Immediately afterwards, the kernel ++tries to get as many packets as possible from the qdisc, for giving them ++to the network adaptor driver. ++ ++A simple QDISC is the 'pfifo' one, which does no processing at all and is a pure ++First In, First Out queue. It does however store traffic when the network interface ++can't handle it momentarily. ++ ++.SH CLASSES ++Some qdiscs can contain classes, which contain further qdiscs - traffic may ++then be enqueued in any of the inner qdiscs, which are within the ++.B classes. ++When the kernel tries to dequeue a packet from such a ++.B classful qdisc ++it can come from any of the classes. A qdisc may for example prioritize ++certain kinds of traffic by trying to dequeue from certain classes ++before others. ++ ++.SH FILTERS ++A ++.B filter ++is used by a classful qdisc to determine in which class a packet will ++be enqueued. Whenever traffic arrives at a class with subclasses, it needs ++to be classified. Various methods may be employed to do so, one of these ++are the filters. All filters attached to the class are called, until one of ++them returns with a verdict. If no verdict was made, other criteria may be ++available. This differs per qdisc. ++ ++It is important to notice that filters reside ++.B within ++qdiscs - they are not masters of what happens. ++ ++.SH CLASSLESS QDISCS ++The classless qdiscs are: ++.TP ++[p|b]fifo ++Simplest usable qdisc, pure First In, First Out behaviour. Limited in ++packets or in bytes. ++.TP ++pfifo_fast ++Standard qdisc for 'Advanced Router' enabled kernels. Consists of a three-band ++queue which honors Type of Service flags, as well as the priority that may be ++assigned to a packet. ++.TP ++red ++Random Early Detection simulates physical congestion by randomly dropping ++packets when nearing configured bandwidth allocation. Well suited to very ++large bandwidth applications. ++.TP ++sfq ++Stochastic Fairness Queueing reorders queued traffic so each 'session' ++gets to send a packet in turn. ++.TP ++tbf ++The Token Bucket Filter is suited for slowing traffic down to a precisely ++configured rate. Scales well to large bandwidths. ++.SH CONFIGURING CLASSLESS QDISCS ++In the absence of classful qdiscs, classless qdiscs can only be attached at ++the root of a device. Full syntax: ++.P ++.B tc qdisc add dev ++DEV ++.B root ++QDISC QDISC-PARAMETERS ++ ++To remove, issue ++.P ++.B tc qdisc del dev ++DEV ++.B root ++ ++The ++.B pfifo_fast ++qdisc is the automatic default in the absence of a configured qdisc. ++ ++.SH CLASSFUL QDISCS ++The classful qdiscs are: ++.TP ++CBQ ++Class Based Queueing implements a rich linksharing hierarchy of classes. ++It contains shaping elements as well as prioritizing capabilities. Shaping is ++performed using link idle time calculations based on average packet size and ++underlying link bandwidth. The latter may be ill-defined for some interfaces. ++.TP ++HTB ++The Hierarchy Token Bucket implements a rich linksharing hierarchy of ++classes with an emphasis on conforming to existing practices. HTB facilitates ++guaranteeing bandwidth to classes, while also allowing specification of upper ++limits to inter-class sharing. It contains shaping elements, based on TBF and ++can prioritize classes. ++.TP ++PRIO ++The PRIO qdisc is a non-shaping container for a configurable number of ++classes which are dequeued in order. This allows for easy prioritization ++of traffic, where lower classes are only able to send if higher ones have ++no packets available. To facilitate configuration, Type Of Service bits are ++honored by default. ++.SH THEORY OF OPERATION ++Classes form a tree, where each class has a single parent. ++A class may have multiple children. Some qdiscs allow for runtime addition ++of classes (CBQ, HTB) while others (PRIO) are created with a static number of ++children. ++ ++Qdiscs which allow dynamic addition of classes can have zero or more ++subclasses to which traffic may be enqueued. ++ ++Furthermore, each class contains a ++.B leaf qdisc ++which by default has ++.B pfifo ++behaviour though another qdisc can be attached in place. This qdisc may again ++contain classes, but each class can have only one leaf qdisc. ++ ++When a packet enters a classful qdisc it can be ++.B classified ++to one of the classes within. Three criteria are available, although not all ++qdiscs will use all three: ++.TP ++tc filters ++If tc filters are attached to a class, they are consulted first ++for relevant instructions. Filters can match on all fields of a packet header, ++as well as on the firewall mark applied by ipchains or iptables. See ++.BR tc-filters (8). ++.TP ++Type of Service ++Some qdiscs have built in rules for classifying packets based on the TOS field. ++.TP ++skb->priority ++Userspace programs can encode a class-id in the 'skb->priority' field using ++the SO_PRIORITY option. ++.P ++Each node within the tree can have its own filters but higher level filters ++may also point directly to lower classes. ++ ++If classification did not succeed, packets are enqueued to the leaf qdisc ++attached to that class. Check qdisc specific manpages for details, however. ++ ++.SH NAMING ++All qdiscs, classes and filters have IDs, which can either be specified ++or be automatically assigned. ++ ++IDs consist of a major number and a minor number, separated by a colon. ++ ++.TP ++QDISCS ++A qdisc, which potentially can have children, ++gets assigned a major number, called a 'handle', leaving the minor ++number namespace available for classes. The handle is expressed as '10:'. ++It is customary to explicitly assign a handle to qdiscs expected to have ++children. ++ ++.TP ++CLASSES ++Classes residing under a qdisc share their qdisc major number, but each have ++a separate minor number called a 'classid' that has no relation to their ++parent classes, only to their parent qdisc. The same naming custom as for ++qdiscs applies. ++ ++.TP ++FILTERS ++Filters have a three part ID, which is only needed when using a hashed ++filter hierarchy, for which see ++.BR tc-filters (8). ++.SH UNITS ++All parameters accept a floating point number, possibly followed by a unit. ++.P ++Bandwidths or rates can be specified in: ++.TP ++kbps ++Kilobytes per second ++.TP ++mbps ++Megabytes per second ++.TP ++kbit ++Kilobits per second ++.TP ++mbit ++Megabits per second ++.TP ++bps or a bare number ++Bits per second ++.P ++Amounts of data can be specified in: ++.TP ++kb or k ++Kilobytes ++.TP ++mb or m ++Megabytes ++.TP ++mbit ++Megabits ++.TP ++kbit ++Kilobits ++.TP ++b or a bare number ++Bytes. ++.P ++Lengths of time can be specified in: ++.TP ++s, sec or secs ++Whole seconds ++.TP ++ms, msec or msecs ++Milliseconds ++.TP ++us, usec, usecs or a bare number ++Microseconds. ++ ++.SH TC COMMANDS ++The following commands are available for qdiscs, classes and filter: ++.TP ++add ++Add a qdisc, class or filter to a node. For all entities, a ++.B parent ++must be passed, either by passing its ID or by attaching directly to the root of a device. ++When creating a qdisc or a filter, it can be named with the ++.B handle ++parameter. A class is named with the ++.B classid ++parameter. ++ ++.TP ++remove ++A qdisc can be removed by specifying its handle, which may also be 'root'. All subclasses and their leaf qdiscs ++are automatically deleted, as well as any filters attached to them. ++ ++.TP ++change ++Some entities can be modified 'in place'. Shares the syntax of 'add', with the exception ++that the handle cannot be changed and neither can the parent. In other words, ++.B ++change ++cannot move a node. ++ ++.TP ++replace ++Performs a nearly atomic remove/add on an existing node id. If the node does not exist yet ++it is created. ++ ++.TP ++link ++Only available for qdiscs and performs a replace where the node ++must exist already. ++ ++ ++.SH HISTORY ++.B tc ++was written by Alexey N. Kuznetsov and added in Linux 2.2. ++.SH SEE ALSO ++.BR tc-cbq (8), ++.BR tc-htb (8), ++.BR tc-sfq (8), ++.BR tc-red (8), ++.BR tc-tbf (8), ++.BR tc-pfifo (8), ++.BR tc-bfifo (8), ++.BR tc-pfifo_fast (8), ++.BR tc-filters (8) ++ ++.SH AUTHOR ++Manpage maintained by bert hubert (ahu@ds9a.nl) ++ +diff -Naur iproute2-orig/include/rt_names.h iproute2/include/rt_names.h +--- iproute2-orig/include/rt_names.h 2000-04-16 10:42:50.000000000 -0700 ++++ iproute2/include/rt_names.h 2004-05-21 00:16:36.000000000 -0700 +@@ -1,6 +1,8 @@ + #ifndef RT_NAMES_H_ + #define RT_NAMES_H_ 1 + ++#include ++ + const char* rtnl_rtprot_n2a(int id, char *buf, int len); + const char* rtnl_rtscope_n2a(int id, char *buf, int len); + const char* rtnl_rttable_n2a(int id, char *buf, int len); +diff -Naur iproute2-orig/lib/rt_names.c iproute2/lib/rt_names.c +--- iproute2-orig/lib/rt_names.c 2000-04-16 10:42:52.000000000 -0700 ++++ iproute2/lib/rt_names.c 2004-05-21 00:16:36.000000000 -0700 +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + static void rtnl_tab_initialize(char *file, char **tab, int size) + { +diff -Naur iproute2-orig/misc/arpd.c iproute2/misc/arpd.c +--- iproute2-orig/misc/arpd.c 2002-01-09 20:02:26.000000000 -0800 ++++ iproute2/misc/arpd.c 2004-05-21 00:16:36.000000000 -0700 +@@ -16,7 +16,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/abs/core-testing/iptables/PKGBUILD b/abs/core-testing/iptables/PKGBUILD new file mode 100644 index 0000000..c796285 --- /dev/null +++ b/abs/core-testing/iptables/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Thomas Baechler +pkgname=iptables +pkgver=1.4.1 +pkgrel=1 +pkgdesc="A Linux kernel packet control tool" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.netfilter.org/" +depends=('glibc') +source=(http://www.iptables.org/projects/iptables/files/iptables-$pkgver.tar.bz2 \ + iptables ip6tables empty.rules simple_firewall.rules iptables.conf.d) +md5sums=('e628f033b95741266a315d54fe73db9c' + '89401d6f0cf1de46a455b7be6720a58b' + '6e0e88c2ed0c3715d1409ee3258a0046' + '14186bbafe21bb0638c0cb8e0903c829' + 'e53a83bb4d8ac8b7eadd7bd58294751d' + 'c7cf6e4455c228e50d20ce3edd75ee59') + +build() { + cd $startdir/src/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install + install -D -m755 ../iptables $startdir/pkg/etc/rc.d/iptables + install -D -m755 ../ip6tables $startdir/pkg/etc/rc.d/ip6tables + install -D -m644 ../empty.rules $startdir/pkg/etc/iptables/empty.rules + install -D -m644 ../simple_firewall.rules $startdir/pkg/etc/iptables/simple_firewall.rules + install -D -m644 ../iptables.conf.d $startdir/pkg/etc/conf.d/iptables +} diff --git a/abs/core-testing/iptables/PKGBUILD.orig b/abs/core-testing/iptables/PKGBUILD.orig new file mode 100644 index 0000000..b0182d8 --- /dev/null +++ b/abs/core-testing/iptables/PKGBUILD.orig @@ -0,0 +1,36 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Thomas Baechler +pkgname=iptables +pkgver=1.4.1 +pkgrel=1 +pkgdesc="A Linux kernel packet control tool" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.netfilter.org/" +depends=('glibc') +source=(http://www.iptables.org/projects/iptables/files/iptables-$pkgver.tar.bz2 \ + iptables ip6tables empty.rules simple_firewall.rules iptables.conf.d) +md5sums=('e628f033b95741266a315d54fe73db9c' + '89401d6f0cf1de46a455b7be6720a58b' + '6e0e88c2ed0c3715d1409ee3258a0046' + '14186bbafe21bb0638c0cb8e0903c829' + 'e53a83bb4d8ac8b7eadd7bd58294751d' + 'c7cf6e4455c228e50d20ce3edd75ee59') + +build() { + cd $startdir/src/$pkgname-$pkgver + sed -i 's|/usr/local|/usr|' Makefile + sed -i 's|MANDIR:=$(PREFIX)/man|MANDIR:=$(PREFIX)/share/man|' Makefile + # this seems to cause more problems than help + # sed -i "s:/usr/src/linux:/usr/src/linux\*:" Makefile + make KERNEL_DIR=/usr/src/linux-$(uname -r) || return 1 + make KERNEL_DIR=/usr/src/linux-$(uname -r) experimental || return 1 + make PREFIX=$startdir/pkg/usr KERNEL_DIR=/usr/src/linux-$(uname -r) install || return 1 + make PREFIX=$startdir/pkg/usr KERNEL_DIR=/usr/src/linux-$(uname -r) install-devel || return 1 + make PREFIX=$startdir/pkg/usr KERNEL_DIR=/usr/src/linux-$(uname -r) install-experimental || return 1 + install -D -m755 ../iptables $startdir/pkg/etc/rc.d/iptables + install -D -m755 ../ip6tables $startdir/pkg/etc/rc.d/ip6tables + install -D -m644 ../empty.rules $startdir/pkg/etc/iptables/empty.rules + install -D -m644 ../simple_firewall.rules $startdir/pkg/etc/iptables/simple_firewall.rules + install -D -m644 ../iptables.conf.d $startdir/pkg/etc/conf.d/iptables +} diff --git a/abs/core-testing/iptables/empty.rules b/abs/core-testing/iptables/empty.rules new file mode 100644 index 0000000..e24e1aa --- /dev/null +++ b/abs/core-testing/iptables/empty.rules @@ -0,0 +1,6 @@ +# Empty iptables rule file +*filter +:INPUT ACCEPT [0:0] +:FORWARD ACCEPT [0:0] +:OUTPUT ACCEPT [0:0] +COMMIT diff --git a/abs/core-testing/iptables/ip6tables b/abs/core-testing/iptables/ip6tables new file mode 100755 index 0000000..1733db2 --- /dev/null +++ b/abs/core-testing/iptables/ip6tables @@ -0,0 +1,97 @@ +#!/bin/bash + +# source application-specific settings +[ -f /etc/conf.d/iptables ] && . /etc/conf.d/iptables + +# Set defaults if settings are missing +[ -z "$IP6TABLES" ] && IP6TABLES=/usr/sbin/ip6tables +[ -z "$IP6TABLES_CONF" ] && IP6TABLES_CONF=/etc/iptables/ip6tables.rules + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + if [ ! -f $IP6TABLES_CONF ]; then + echo "Cannot load iptables rules: $IP6TABLES_CONF is missing!" >&2 + exit 1 + fi + stat_busy "Starting IP6 Tables" + if [ "$IPTABLES_FORWARD" = "1" ]; then + echo 1 >/proc/sys/net/ipv6/conf/default/forwarding + echo 1 >/proc/sys/net/ipv6/conf/all/forwarding + fi + if ck_daemon ip6tables; then + /usr/sbin/ip6tables-restore < $IP6TABLES_CONF + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon ip6tables + stat_done + fi + else + stat_fail + fi + ;; + stop) + stat_busy "Stopping IP6 Tables" + echo 0 >/proc/sys/net/ipv6/conf/all/forwarding + echo 0 >/proc/sys/net/ipv6/conf/default/forwarding + if ! ck_daemon ip6tables; then + fail=0 + for table in $(cat /proc/net/ip6_tables_names); do + $IP6TABLES -t $table -F &>/dev/null && \ + $IP6TABLES -t $table -X &>/dev/null && \ + $IP6TABLES -t $table -Z &>/dev/null + [ $? -gt 0 ] && fail=1 + done + if [ $fail -gt 0 ]; then + stat_fail + else + rm_daemon ip6tables + # reset policies + for table in filter mangle raw; do + if grep -qw $table /proc/net/ip6_tables_names; then + $IP6TABLES -t $table -P OUTPUT ACCEPT + fi + done + for table in filter mangle; do + if grep -qw $table /proc/net/ip6_tables_names; then + $IP6TABLES -t $table -P INPUT ACCEPT + $IP6TABLES -t $table -P FORWARD ACCEPT + fi + done + for table in mangle raw; do + if grep -qw $table /proc/net/ip6_tables_names; then + $IP6TABLES -t $table -P PREROUTING ACCEPT + fi + done + for table in mangle; do + if grep -qw $table /proc/net/ip6_tables_names; then + $IP6TABLES -t $table -P POSTROUTING ACCEPT + fi + done + stat_done + fi + else + stat_fail + fi + ;; + restart) + $0 stop + sleep 2 + $0 start + ;; + save) + stat_busy "Saving IP6 Tables" + /usr/sbin/ip6tables-save >$IP6TABLES_CONF + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + ;; + *) + echo "usage: $0 {start|stop|restart|save}" +esac +exit 0 diff --git a/abs/core-testing/iptables/iptables b/abs/core-testing/iptables/iptables new file mode 100755 index 0000000..50c13d5 --- /dev/null +++ b/abs/core-testing/iptables/iptables @@ -0,0 +1,95 @@ +#!/bin/bash + +# source application-specific settings +[ -f /etc/conf.d/iptables ] && . /etc/conf.d/iptables + +# Set defaults if settings are missing +[ -z "$IPTABLES" ] && IPTABLES=/usr/sbin/iptables +[ -z "$IPTABLES_CONF" ] && IPTABLES_CONF=/etc/iptables/iptables.rules + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + if [ ! -f $IPTABLES_CONF ]; then + echo "Cannot load iptables rules: $IPTABLES_CONF is missing!" >&2 + exit 1 + fi + stat_busy "Starting IP Tables" + if [ "$IPTABLES_FORWARD" = "1" ]; then + echo 1 >/proc/sys/net/ipv4/ip_forward + fi + if ck_daemon iptables; then + /usr/sbin/iptables-restore < $IPTABLES_CONF + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon iptables + stat_done + fi + else + stat_fail + fi + ;; + stop) + stat_busy "Stopping IP Tables" + echo 0 >/proc/sys/net/ipv4/ip_forward + if ! ck_daemon iptables; then + fail=0 + for table in $(cat /proc/net/ip_tables_names); do + $IPTABLES -t $table -F &>/dev/null && \ + $IPTABLES -t $table -X &>/dev/null && \ + $IPTABLES -t $table -Z &>/dev/null + [ $? -gt 0 ] && fail=1 + done + if [ $fail -gt 0 ]; then + stat_fail + else + rm_daemon iptables + # reset policies + for table in filter nat mangle raw; do + if grep -qw $table /proc/net/ip_tables_names; then + $IPTABLES -t $table -P OUTPUT ACCEPT + fi + done + for table in filter mangle; do + if grep -qw $table /proc/net/ip_tables_names; then + $IPTABLES -t $table -P INPUT ACCEPT + $IPTABLES -t $table -P FORWARD ACCEPT + fi + done + for table in nat mangle raw; do + if grep -qw $table /proc/net/ip_tables_names; then + $IPTABLES -t $table -P PREROUTING ACCEPT + fi + done + for table in nat mangle; do + if grep -qw $table /proc/net/ip_tables_names; then + $IPTABLES -t $table -P POSTROUTING ACCEPT + fi + done + stat_done + fi + else + stat_fail + fi + ;; + restart) + $0 stop + sleep 2 + $0 start + ;; + save) + stat_busy "Saving IP Tables" + /usr/sbin/iptables-save >$IPTABLES_CONF + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + ;; + *) + echo "usage: $0 {start|stop|restart|save}" +esac +exit 0 diff --git a/abs/core-testing/iptables/iptables.conf.d b/abs/core-testing/iptables/iptables.conf.d new file mode 100644 index 0000000..e9afea2 --- /dev/null +++ b/abs/core-testing/iptables/iptables.conf.d @@ -0,0 +1,8 @@ +# Configuration for iptables rules + +IPTABLES=/usr/sbin/iptables +IP6TABLES=/usr/sbin/ip6tables + +IPTABLES_CONF=/etc/iptables/iptables.rules +IP6TABLES_CONF=/etc/iptables/ip6tables.rules +IPTABLES_FORWARD=1 # enable IP forwarding? diff --git a/abs/core-testing/iptables/simple_firewall.rules b/abs/core-testing/iptables/simple_firewall.rules new file mode 100644 index 0000000..e1604cc --- /dev/null +++ b/abs/core-testing/iptables/simple_firewall.rules @@ -0,0 +1,11 @@ +*filter +:INPUT DROP [0:0] +:FORWARD DROP [0:0] +:OUTPUT ACCEPT [0:0] +-A INPUT -p icmp -j ACCEPT +-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT +-A INPUT -i lo -j ACCEPT +-A INPUT -p tcp -j REJECT --reject-with tcp-reset +-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable +-A INPUT -j REJECT --reject-with icmp-proto-unreachable +COMMIT diff --git a/abs/core-testing/iputils/PKGBUILD b/abs/core-testing/iputils/PKGBUILD new file mode 100644 index 0000000..341158b --- /dev/null +++ b/abs/core-testing/iputils/PKGBUILD @@ -0,0 +1,72 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Aaron Griffin + +pkgname=iputils +pkgver=20070202 +_traceroutever=1.4a12 +pkgrel=13 +pkgdesc="IP Configuration Utilities (and Ping)" +arch=(i686 x86_64) +license=('GPL') +url="ftp://ftp.inr.ac.ru/ip-routing/" +groups=('base') +depends=('glibc') +makedepends=('jade') +conflicts=('netkit-base' 'arping' 'netkit-tftpd' 'traceroute') +replaces=('netkit-base' 'traceroute') +source=(http://www.skbuff.net/iputils/$pkgname-s$pkgver.tar.bz2 + ftp://ftp.ee.lbl.gov/traceroute-$_traceroutever.tar.gz + iputils-20070202-no-open-max.patch) +options=(!makeflags) +md5sums=('1d38fb3cfc2b71496e43cf646bfc1d6e' + '964d599ef696efccdeebe7721cd4828d' + 'a2cbc0174dd883f68297aa7f3e7c4f5c') + +build() +{ + #build iptuils + cd $startdir/src/$pkgname-s$pkgver + patch -Np1 -i ../iputils-20070202-no-open-max.patch || return 1 + make KERNEL_INCLUDE=/usr/include || return 1 # for i686 + for i in arping clockdiff rarpd rdisc tftpd tracepath tracepath6; do + install -D -m755 $i $startdir/pkg/usr/sbin/$i + done + for i in ping ping6 traceroute6; do + install -D -m4755 $i $startdir/pkg/bin/$i + done + + msg ":: building docs" + # good god, these docs are a pain + # special thanks to Michael(tm) Smith - http://people.w3.org/mike/ + # from #docbook on freenode.org for figuring this out + cd doc + for file in *.sgml; do + xf=${file/.sgml/.xml} + sx -xlower -xno-nl-in-tag $file > $xf + sed -i "s|\(.*\), \(.*\)|\1, \2|g" $xf + xsltproc /usr/share/xml/docbook/xsl-stylesheets-1.73.1/manpages/docbook.xsl $xf + done + + mkdir -p $startdir/pkg/usr/man/man8 + install -m644 arping.8 clockdiff.8 ping.8 ping6.8 rarpd.8 rdisc.8 \ + tftpd.8 tracepath.8 tracepath6.8 traceroute6 \ + $startdir/pkg/usr/man/man8/ + #make man + #for i in arping clockdiff ping rarpd rdisc tftpd tracepath traceroute6; do + # install -D -m644 $i.8 $startdir/pkg/usr/man/man8/$i.8 + #done + + # build traceroute + # this is combined in this package because it's awkward as a separate package + cd ${startdir}/src/traceroute-$_traceroutever + ./configure --prefix=/usr --sbindir=/bin + #if [ "${CARCH}" = "x86_64" ]; then + make CFLAGS="${CFLAGS} -Ilinux-include/" || return 1 + #else + # make || return 1 + #fi + make DESTDIR=${startdir}/pkg install install-man + + chmod 4775 ${startdir}/pkg/bin/traceroute +} + diff --git a/abs/core-testing/iputils/iputils-20070202-no-open-max.patch b/abs/core-testing/iputils/iputils-20070202-no-open-max.patch new file mode 100644 index 0000000..5013ba4 --- /dev/null +++ b/abs/core-testing/iputils/iputils-20070202-no-open-max.patch @@ -0,0 +1,16 @@ +the OPEN_MAX define has been removed in newer kernel headers so use the +proper method of getting the value dynamically + +http://bugs.gentoo.org/195861 + +--- a/rdisc.c ++++ b/rdisc.c +@@ -247,7 +247,7 @@ void do_fork(void) + if ((pid=fork()) != 0) + exit(0); + +- for (t = 0; t < OPEN_MAX; t++) ++ for (t = 0; t < sysconf(_SC_OPEN_MAX); t++) + if (t != s) + close(t); + diff --git a/abs/core-testing/iputils/iputils-big-patches.patch b/abs/core-testing/iputils/iputils-big-patches.patch new file mode 100644 index 0000000..29bc310 --- /dev/null +++ b/abs/core-testing/iputils/iputils-big-patches.patch @@ -0,0 +1,595 @@ +diff -Naur iputils.orig/Makefile iputils/Makefile +--- iputils.orig/Makefile 2002-11-09 03:01:11.000000000 +0000 ++++ iputils/Makefile 2005-06-09 16:15:32.000000000 +0000 +@@ -17,11 +17,6 @@ + GLIBCFIX=-Iinclude-glibc -include include-glibc/glibc-bugs.h + endif + +-ifeq ($(KERNEL_INCLUDE)/linux/pfkeyv2.h,$(wildcard $(KERNEL_INCLUDE)/linux/pfkeyv2.h)) +- SUBDIRS=libipsec setkey +- LDLIBS+=-Llibipsec -lipsec +- IPSECDEF=-DDO_IPSEC -Ilibipsec +-endif + + + #options if you compile with libc5, and without a bind>=4.9.4 libresolv +@@ -31,7 +26,7 @@ + # What a pity, all new gccs are buggy and -Werror does not work. Sigh. + #CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -Werror + CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g +-CFLAGS=$(CCOPT) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(IPSECDEF) $(DEFINES) ++CFLAGS=$(CCOPT) -I../include $(IPSECDEF) $(DEFINES) + + IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd + IPV6_TARGETS=tracepath6 traceroute6 ping6 +@@ -42,7 +37,11 @@ + + tftpd: tftpd.o tftpsubs.o + ping: ping.o ping_common.o ++ $(LINK.o) $^ $(LDLIBS) -o $@ -Wl,-z,now -Wl,-z,relro + ping6: ping6.o ping_common.o ++ $(LINK.o) $^ $(LDLIBS) -o $@ -Wl,-z,now -Wl,-z,relro ++traceroute6: traceroute6.o ++ $(LINK.o) $^ $(LDLIBS) -o $@ -Wl,-z,now -Wl,-z,relro + ping.o ping6.o ping_common.o: ping_common.h + tftpd.o tftpsubs.o: tftp.h + +diff -Naur iputils.orig/arping.c iputils/arping.c +--- iputils.orig/arping.c 2001-10-05 22:42:47.000000000 +0000 ++++ iputils/arping.c 2005-06-09 16:15:24.000000000 +0000 +@@ -9,6 +9,7 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include +@@ -19,6 +20,8 @@ + #include + #include + #include ++#include ++#include + #include + + #include +diff -Naur iputils.orig/clockdiff.c iputils/clockdiff.c +--- iputils.orig/clockdiff.c 2002-02-23 00:10:59.000000000 +0000 ++++ iputils/clockdiff.c 2005-06-09 16:15:24.000000000 +0000 +@@ -1,7 +1,9 @@ ++#include + #include + #include + #include + #include ++#include + #include + #include + #include +diff -Naur iputils.orig/include-glibc/netinet/in.h iputils/include-glibc/netinet/in.h +--- iputils.orig/include-glibc/netinet/in.h 2002-11-09 00:22:25.000000000 +0000 ++++ iputils/include-glibc/netinet/in.h 2005-06-09 16:15:00.000000000 +0000 +@@ -65,4 +65,45 @@ + && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3])) + + +-#endif /* netinet/in.h */ ++/* Functions to convert between host and network byte order. ++ ++ Please note that these functions normally take `unsigned long int' or ++ `unsigned short int' values as arguments and also return them. But ++ this was a short-sighted decision since on different systems the types ++ may have different representations but the values are always the same. */ ++ ++extern u_int32_t ntohl (u_int32_t __netlong) __THROW __attribute__ ((__const__)); ++extern u_int16_t ntohs (u_int16_t __netshort) ++ __THROW __attribute__ ((__const__)); ++extern u_int32_t htonl (u_int32_t __hostlong) ++ __THROW __attribute__ ((__const__)); ++extern u_int16_t htons (u_int16_t __hostshort) ++ __THROW __attribute__ ((__const__)); ++ ++#include ++ ++/* Get machine dependent optimized versions of byte swapping functions. */ ++#include ++ ++#ifdef __OPTIMIZE__ ++/* We can optimize calls to the conversion functions. Either nothing has ++ to be done or we are using directly the byte-swapping functions which ++ often can be inlined. */ ++# if __BYTE_ORDER == __BIG_ENDIAN ++/* The host byte order is the same as network byte order, ++ so these functions are all just identity. */ ++# define ntohl(x) (x) ++# define ntohs(x) (x) ++# define htonl(x) (x) ++# define htons(x) (x) ++# else ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define ntohl(x) __bswap_32 (x) ++# define ntohs(x) __bswap_16 (x) ++# define htonl(x) __bswap_32 (x) ++# define htons(x) __bswap_16 (x) ++# endif ++# endif ++#endif ++ ++#endif /* netinet/in.h */ +diff -Naur iputils.orig/ipg iputils/ipg +--- iputils.orig/ipg 2001-08-02 22:37:32.000000000 +0000 ++++ iputils/ipg 2005-06-09 16:14:49.000000000 +0000 +@@ -1,21 +1,31 @@ +-#! /bin/bash ++#!/bin/bash + +-modprobe pg3 ++modprobe pg3 >& /dev/null ++modprobe pktgen >& /dev/null ++ ++PGDEV=/proc/net/pg ++if [[ ! -e ${PGDEV} ]] ; then ++ PGDEV=/proc/net/pktgen/pg0 ++ if [[ ! -e ${PGDEV} ]] ; then ++ echo "Couldn't not locate pg in /proc/net :(" ++ exit 1 ++ fi ++fi + + function pgset() { + local result + +- echo $1 > /proc/net/pg ++ echo $1 > ${PGDEV} + +- result=`cat /proc/net/pg | fgrep "Result: OK:"` ++ result=`cat ${PGDEV} | fgrep "Result: OK:"` + if [ "$result" = "" ]; then +- cat /proc/net/pg | fgrep Result: ++ cat ${PGDEV} | fgrep Result: + fi + } + + function pg() { +- echo inject > /proc/net/pg +- cat /proc/net/pg ++ echo inject > ${PGDEV} ++ cat ${PGDEV} + } + + pgset "odev eth0" +diff -Naur iputils.orig/ping.c iputils/ping.c +--- iputils.orig/ping.c 2002-11-07 22:53:21.000000000 +0000 ++++ iputils/ping.c 2005-06-09 16:15:00.000000000 +0000 +@@ -60,8 +60,8 @@ + + #include "ping_common.h" + ++#include + #include +-#include + #ifdef DO_IPSEC + #include + #endif +@@ -1213,7 +1213,7 @@ + once = 1; + + /* Patch bpflet for current identifier. */ +- insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1); ++ insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1); + + if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter))) + perror("WARNING: failed to install socket filter\n"); +diff -Naur iputils.orig/ping6.c iputils/ping6.c +--- iputils.orig/ping6.c 2002-09-20 15:08:11.000000000 +0000 ++++ iputils/ping6.c 2005-06-09 16:15:00.000000000 +0000 +@@ -68,8 +68,44 @@ + */ + #include "ping_common.h" + +-#include +-#include ++struct ipv6_rt_hdr { ++ __u8 nexthdr; ++ __u8 hdrlen; ++ __u8 type; ++ __u8 segments_left; ++ ++ /* ++ * type specific data ++ * variable length field ++ */ ++}; ++ ++struct rt0_hdr { ++ struct ipv6_rt_hdr rt_hdr; ++ __u32 bitmap; /* strict/loose bit map */ ++ struct in6_addr addr[0]; ++ ++#define rt0_type rt_hdr.type; ++}; ++#define IPV6_SRCRT_TYPE_0 0 /* IPv6 type 0 Routing Header */ ++struct ipv6hdr { ++#if defined(__LITTLE_ENDIAN) ++ __u8 priority:4, ++ version:4; ++#elif defined(__BIG_ENDIAN) ++ __u8 version:4, ++ priority:4; ++#endif ++ __u8 flow_lbl[3]; ++ ++ __u16 payload_len; ++ __u8 nexthdr; ++ __u8 hop_limit; ++ ++ struct in6_addr saddr; ++ struct in6_addr daddr; ++}; ++ + #include + + #define BIT_CLEAR(nr, addr) do { ((__u32 *)(addr))[(nr) >> 5] &= ~(1U << ((nr) & 31)); } while(0) +@@ -879,7 +915,7 @@ + once = 1; + + /* Patch bpflet for current identifier. */ +- insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1); ++ insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1); + + if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter))) + perror("WARNING: failed to install socket filter\n"); +diff -Naur iputils.orig/ping_common.h iputils/ping_common.h +--- iputils.orig/ping_common.h 2002-09-20 15:08:11.000000000 +0000 ++++ iputils/ping_common.h 2005-06-09 16:15:24.000000000 +0000 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +@@ -19,6 +20,7 @@ + + #include + #include ++#include + #include + + #include "SNAPSHOT.h" +diff -Naur iputils.orig/rarpd.c iputils/rarpd.c +--- iputils.orig/rarpd.c 2001-12-02 18:45:06.000000000 +0000 ++++ iputils/rarpd.c 2005-06-09 16:15:24.000000000 +0000 +@@ -9,6 +9,7 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include +@@ -26,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -42,7 +44,9 @@ + char *ifname; + char *tftp_dir = "/etc/tftpboot"; + ++#ifndef __UCLIBC__ + extern int ether_ntohost(char *name, unsigned char *ea); ++#endif + void usage(void) __attribute__((noreturn)); + + struct iflink +@@ -52,12 +56,12 @@ + int hatype; + unsigned char lladdr[16]; + unsigned char name[IFNAMSIZ]; +- struct ifaddr *ifa_list; ++ struct l_ifaddr *ifa_list; + } *ifl_list; + +-struct ifaddr ++struct l_ifaddr + { +- struct ifaddr *next; ++ struct l_ifaddr *next; + __u32 prefix; + __u32 mask; + __u32 local; +@@ -89,7 +93,7 @@ + int fd; + struct ifreq *ifrp, *ifend; + struct iflink *ifl; +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + struct ifconf ifc; + struct ifreq ibuf[256]; + +@@ -180,7 +184,7 @@ + if (ifa == NULL) { + if (mask == 0 || prefix == 0) + continue; +- ifa = (struct ifaddr*)malloc(sizeof(*ifa)); ++ ifa = (struct l_ifaddr*)malloc(sizeof(*ifa)); + memset(ifa, 0, sizeof(*ifa)); + ifa->local = addr; + ifa->prefix = prefix; +@@ -236,10 +240,10 @@ + return dent != NULL; + } + +-struct ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) ++struct l_ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) + { + struct iflink *ifl; +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + int retry = 0; + int i; + +@@ -295,7 +299,7 @@ + + if (r == NULL) { + if (hatype == ARPHRD_ETHER && halen == 6) { +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + struct hostent *hp; + char ename[256]; + static struct rarp_map emap = { +@@ -305,7 +309,11 @@ + 6, + }; + ++#ifndef __UCLIBC__ + if (ether_ntohost(ename, lladdr) != 0 || ++#else ++ if ( ++#endif + (hp = gethostbyname(ename)) == NULL) { + if (verbose) + syslog(LOG_INFO, "not found in /etc/ethers"); +@@ -364,7 +372,7 @@ + { + __u32 laddr = 0; + struct iflink *ifl; +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + + for (ifl=ifl_list; ifl; ifl = ifl->next) + if (ifl->index == ifindex) +diff -Naur iputils.orig/rdisc.c iputils/rdisc.c +--- iputils.orig/rdisc.c 2001-08-24 17:39:00.000000000 +0000 ++++ iputils/rdisc.c 2005-06-09 16:15:24.000000000 +0000 +@@ -25,6 +25,7 @@ + * 2550 Garcia Avenue + * Mountain View, California 94043 + */ ++#include + #include + #include + #include +@@ -1504,5 +1505,5 @@ + if (logging) + syslog(LOG_ERR, "%s: %m", str); + else +- (void) fprintf(stderr, "%s: %s\n", str, sys_errlist[errno]); ++ (void) fprintf(stderr, "%s: %s\n", str, strerror(errno)); + } +diff -Naur iputils.orig/tftpd.c iputils/tftpd.c +--- iputils.orig/tftpd.c 2002-01-24 00:31:41.000000000 +0000 ++++ iputils/tftpd.c 2005-06-09 16:15:24.000000000 +0000 +@@ -48,6 +48,7 @@ + * This version includes many modifications by Jim Guyton + */ + ++#include + #include + #include + #include +@@ -57,7 +58,6 @@ + + #include + #include +-#include + #include + + #include +diff -Naur iputils.orig/tracepath.c iputils/tracepath.c +--- iputils.orig/tracepath.c 2002-11-09 04:54:46.000000000 +0000 ++++ iputils/tracepath.c 2005-06-09 16:15:24.000000000 +0000 +@@ -9,10 +9,12 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include + #include ++#include + #include + #include + #include +@@ -76,7 +78,7 @@ + int progress = -1; + int broken_router; + +-restart: ++ while (1) { + memset(&rcvbuf, -1, sizeof(rcvbuf)); + iov.iov_base = &rcvbuf; + iov.iov_len = sizeof(rcvbuf); +@@ -93,7 +95,7 @@ + if (res < 0) { + if (errno == EAGAIN) + return progress; +- goto restart; ++ continue; + } + + progress = mtu; +@@ -216,7 +218,7 @@ + perror("NET ERROR"); + return 0; + } +- goto restart; ++ } + } + + int probe_ttl(int fd, int ttl) +@@ -227,7 +229,6 @@ + + memset(sndbuf,0,mtu); + +-restart: + for (i=0; i<10; i++) { + int res; + +@@ -243,7 +244,8 @@ + if (res==0) + return 0; + if (res > 0) +- goto restart; ++ i = 0; ++ continue; + } + hisptr = (hisptr + 1)&63; + +diff -Naur iputils.orig/tracepath6.c iputils/tracepath6.c +--- iputils.orig/tracepath6.c 2001-09-02 02:03:46.000000000 +0000 ++++ iputils/tracepath6.c 2005-06-09 16:15:24.000000000 +0000 +@@ -9,13 +9,13 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include + #include + #include +- +-#include ++#include + #include + #include + #include +@@ -66,7 +66,7 @@ + int progress = -1; + int broken_router; + +-restart: ++ while (1) { + memset(&rcvbuf, -1, sizeof(rcvbuf)); + iov.iov_base = &rcvbuf; + iov.iov_len = sizeof(rcvbuf); +@@ -83,7 +83,7 @@ + if (res < 0) { + if (errno == EAGAIN) + return progress; +- goto restart; ++ continue; + } + + progress = 2; +@@ -222,34 +222,29 @@ + perror("NET ERROR"); + return 0; + } +- goto restart; ++ } + } + + int probe_ttl(int fd, int ttl) + { +- int i; ++ int i=0, res; + char sndbuf[mtu]; + struct probehdr *hdr = (struct probehdr*)sndbuf; + +-restart: +- +- for (i=0; i<10; i++) { +- int res; +- +- hdr->ttl = ttl; +- gettimeofday(&hdr->tv, NULL); +- if (send(fd, sndbuf, mtu-overhead, 0) > 0) +- break; +- res = recverr(fd, ttl); +- if (res==0) +- return 0; +- if (res > 0) +- goto restart; +- } +- +- if (i<10) { +- int res; +- ++ while (i<10) { ++ for (i=0; i<10; i++) { ++ hdr->ttl = ttl; ++ gettimeofday(&hdr->tv, NULL); ++ if (send(fd, sndbuf, mtu-overhead, 0) > 0) ++ break; ++ res = recverr(fd, ttl); ++ if (res==0) ++ return 0; ++ if (res > 0) { ++ i = 0; ++ continue; ++ } ++ } + data_wait(fd); + if (recv(fd, sndbuf, sizeof(sndbuf), MSG_DONTWAIT) > 0) { + printf("%2d?: reply received 8)\n", ttl); +@@ -257,7 +252,7 @@ + } + res = recverr(fd, ttl); + if (res == 1) +- goto restart; ++ continue; + return res; + } + +diff -Naur iputils.orig/traceroute6.c iputils/traceroute6.c +--- iputils.orig/traceroute6.c 2002-10-03 03:29:23.000000000 +0000 ++++ iputils/traceroute6.c 2005-06-09 16:14:49.000000000 +0000 +@@ -244,11 +244,30 @@ + #include + #include + #include ++#if __linux__ ++#include ++#else + #include ++#endif ++ ++#include ++struct ipv6hdr { ++#if defined(__LITTLE_ENDIAN) ++ __u8 priority:4, ++ version:4; ++#elif defined(__BIG_ENDIAN) ++ __u8 version:4, ++ priority:4; ++#endif ++ __u8 flow_lbl[3]; + +-#include +-#include ++ __u16 payload_len; ++ __u8 nexthdr; ++ __u8 hop_limit; + ++ struct in6_addr saddr; ++ struct in6_addr daddr; ++}; + #include + + #include diff --git a/abs/core-testing/iputils/iputils-ss021109-try.patch b/abs/core-testing/iputils/iputils-ss021109-try.patch new file mode 100644 index 0000000..4d9a705 --- /dev/null +++ b/abs/core-testing/iputils/iputils-ss021109-try.patch @@ -0,0 +1,239 @@ +diff -urN iputils.orig/Makefile iputils/Makefile +--- iputils.orig/Makefile 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/Makefile 2004-05-02 20:30:48.000000000 +0000 +@@ -1,5 +1,4 @@ + # Path to parent kernel include files directory +-KERNEL_INCLUDE=/usr/src/linux/include + LIBC_INCLUDE=/usr/include + + DEFINES= +@@ -8,21 +7,6 @@ + LDLIBS=-lresolv + ADDLIB= + +-ifeq ($(LIBC_INCLUDE)/socketbits.h,$(wildcard $(LIBC_INCLUDE)/socketbits.h)) +- ifeq ($(LIBC_INCLUDE)/net/if_packet.h,$(wildcard $(LIBC_INCLUDE)/net/if_packet.h)) +- GLIBCFIX=-Iinclude-glibc -include include-glibc/glibc-bugs.h +- endif +-endif +-ifeq ($(LIBC_INCLUDE)/bits/socket.h,$(wildcard $(LIBC_INCLUDE)/bits/socket.h)) +- GLIBCFIX=-Iinclude-glibc -include include-glibc/glibc-bugs.h +-endif +- +-ifeq ($(KERNEL_INCLUDE)/linux/pfkeyv2.h,$(wildcard $(KERNEL_INCLUDE)/linux/pfkeyv2.h)) +- SUBDIRS=libipsec setkey +- LDLIBS+=-Llibipsec -lipsec +- IPSECDEF=-DDO_IPSEC -Ilibipsec +-endif +- + + #options if you compile with libc5, and without a bind>=4.9.4 libresolv + # NOT AVAILABLE. Please, use libresolv. +@@ -31,13 +15,13 @@ + # What a pity, all new gccs are buggy and -Werror does not work. Sigh. + #CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -Werror + CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g +-CFLAGS=$(CCOPT) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(IPSECDEF) $(DEFINES) ++CFLAGS=$(CCOPT) -I../include $(IPSECDEF) $(DEFINES) + + IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd + IPV6_TARGETS=tracepath6 traceroute6 ping6 + TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS) + +-all: check-kernel subdirs $(TARGETS) ++all: subdirs $(TARGETS) + + + tftpd: tftpd.o tftpsubs.o +@@ -51,15 +35,6 @@ + rdisc_srv.o: rdisc.c + $(CC) $(CFLAGS) -DRDISC_SERVER -o rdisc_srv.o rdisc.c + +-check-kernel: +-ifeq ($(KERNEL_INCLUDE),) +- @echo "Please, set correct KERNEL_INCLUDE"; false +-else +- @set -e; \ +- if [ ! -r $(KERNEL_INCLUDE)/linux/autoconf.h ]; then \ +- echo "Please, set correct KERNEL_INCLUDE"; false; fi +-endif +- + subdirs: + ifneq ($(SUBDIRS),) + @set -e; \ +diff -urN iputils.orig/arping.c iputils/arping.c +--- iputils.orig/arping.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/arping.c 2004-05-02 20:32:38.000000000 +0000 +@@ -9,6 +9,7 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include +@@ -19,6 +20,8 @@ + #include + #include + #include ++#include ++#include + #include + + #include +diff -urN iputils.orig/clockdiff.c iputils/clockdiff.c +--- iputils.orig/clockdiff.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/clockdiff.c 2004-05-02 20:30:48.000000000 +0000 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +diff -urN iputils.orig/ping.c iputils/ping.c +--- iputils.orig/ping.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/ping.c 2004-05-02 20:31:03.000000000 +0000 +@@ -61,7 +61,7 @@ + #include "ping_common.h" + + #include +-#include ++#include + #ifdef DO_IPSEC + #include + #endif +diff -urN iputils.orig/ping_common.h iputils/ping_common.h +--- iputils.orig/ping_common.h 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/ping_common.h 2004-05-02 20:30:48.000000000 +0000 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +diff -urN iputils.orig/rarpd.c iputils/rarpd.c +--- iputils.orig/rarpd.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/rarpd.c 2004-05-02 20:33:07.000000000 +0000 +@@ -9,6 +9,7 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include +@@ -26,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -52,12 +54,12 @@ + int hatype; + unsigned char lladdr[16]; + unsigned char name[IFNAMSIZ]; +- struct ifaddr *ifa_list; ++ struct l_ifaddr *ifa_list; + } *ifl_list; + +-struct ifaddr ++struct l_ifaddr + { +- struct ifaddr *next; ++ struct l_ifaddr *next; + __u32 prefix; + __u32 mask; + __u32 local; +@@ -89,7 +91,7 @@ + int fd; + struct ifreq *ifrp, *ifend; + struct iflink *ifl; +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + struct ifconf ifc; + struct ifreq ibuf[256]; + +@@ -180,7 +182,7 @@ + if (ifa == NULL) { + if (mask == 0 || prefix == 0) + continue; +- ifa = (struct ifaddr*)malloc(sizeof(*ifa)); ++ ifa = (struct l_ifaddr*)malloc(sizeof(*ifa)); + memset(ifa, 0, sizeof(*ifa)); + ifa->local = addr; + ifa->prefix = prefix; +@@ -236,10 +238,10 @@ + return dent != NULL; + } + +-struct ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) ++struct l_ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) + { + struct iflink *ifl; +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + int retry = 0; + int i; + +@@ -295,7 +297,7 @@ + + if (r == NULL) { + if (hatype == ARPHRD_ETHER && halen == 6) { +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + struct hostent *hp; + char ename[256]; + static struct rarp_map emap = { +@@ -364,7 +366,7 @@ + { + __u32 laddr = 0; + struct iflink *ifl; +- struct ifaddr *ifa; ++ struct l_ifaddr *ifa; + + for (ifl=ifl_list; ifl; ifl = ifl->next) + if (ifl->index == ifindex) +diff -urN iputils.orig/rdisc.c iputils/rdisc.c +--- iputils.orig/rdisc.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/rdisc.c 2004-05-02 20:30:48.000000000 +0000 +@@ -25,6 +25,7 @@ + * 2550 Garcia Avenue + * Mountain View, California 94043 + */ ++#include + #include + #include + #include +diff -urN iputils.orig/tftpd.c iputils/tftpd.c +--- iputils.orig/tftpd.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/tftpd.c 2004-05-02 20:30:48.000000000 +0000 +@@ -48,6 +48,7 @@ + * This version includes many modifications by Jim Guyton + */ + ++#include + #include + #include + #include +diff -urN iputils.orig/tracepath.c iputils/tracepath.c +--- iputils.orig/tracepath.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/tracepath.c 2004-05-02 20:30:48.000000000 +0000 +@@ -9,6 +9,7 @@ + * Authors: Alexey Kuznetsov, + */ + ++#include + #include + #include + #include +diff -urN iputils.orig/traceroute6.c iputils/traceroute6.c +--- iputils.orig/traceroute6.c 2004-05-02 20:30:43.000000000 +0000 ++++ iputils/traceroute6.c 2004-05-02 20:30:48.000000000 +0000 +@@ -230,6 +230,7 @@ + * Tue Dec 20 03:50:13 PST 1988 + */ + ++#include + #include + #include + #include diff --git a/abs/core-testing/iputils/iputils.patch b/abs/core-testing/iputils/iputils.patch new file mode 100644 index 0000000..4e99b75 --- /dev/null +++ b/abs/core-testing/iputils/iputils.patch @@ -0,0 +1,1170 @@ +--- iputils/ping_common.c.old Thu Mar 14 16:58:47 2002 ++++ iputils/ping_common.c Thu Mar 14 17:10:54 2002 +@@ -775,10 +775,10 @@ + tmdev = llsqrt(tsum2 - tsum * tsum); + + printf("rtt min/avg/max/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ld ms", +- tmin/1000, tmin%1000, ++ (long)tmin/1000, (long)tmin%1000, + (unsigned long)(tsum/1000), (long)(tsum%1000), +- tmax/1000, tmax%1000, +- tmdev/1000, tmdev%1000 ++ (long)tmax/1000, (long)tmax%1000, ++ (long)tmdev/1000, (long)tmdev%1000 + ); + } + if (pipesize > 1) +@@ -809,10 +809,10 @@ + tavg = tsum / (nreceived + nrepeats); + + fprintf(stderr, ", min/avg/ewma/max = %ld.%03ld/%lu.%03ld/%d.%03d/%ld.%03ld ms", +- tmin/1000, tmin%1000, ++ (long)tmin/1000, (long)tmin%1000, + tavg/1000, tavg%1000, + rtt/8000, (rtt/8)%1000, +- tmax/1000, tmax%1000 ++ (long)tmax/1000, (long)tmax%1000 + ); + } + fprintf(stderr, "\n"); +--- iputils/rdisc.c-org Wed May 1 00:27:34 2002 ++++ iputils/rdisc.c Wed May 1 00:32:40 2002 +@@ -63,6 +63,8 @@ + + #include "SNAPSHOT.h" + ++#define RDISC_SERVER ++ + struct interface + { + struct in_addr address; /* Used to identify the interface */ +@@ -163,11 +165,8 @@ + int debugfile; + + char usage[] = +-"Usage: rdisc [-b] [-d] [-s] [-v] [-f] [-a] [-V] [send_address] [receive_address]\n" +-#ifdef RDISC_SERVER +-" rdisc -r [-b] [-d] [-s] [-v] [-f] [-a] [-V] [-p ] [-T ] \n" +-" [send_address] [receive_address]\n" +-#endif ++"Usage: rdisc -r [-b] [-d] [-s] [-v] [-f] [-a] [-V] [-p ] [-T ] \n" ++" [send_address] [receive_address]\n" + ; + + +@@ -875,7 +874,9 @@ + ((max_adv_int - min_adv_int) + * (random() % 1000)/1000); + } else { +- if (!is_directly_connected(ip->saddr)) { ++ struct in_addr tmp; ++ tmp.s_addr = ip->saddr; ++ if (!is_directly_connected(tmp)) { + if (verbose) + logtrace("ICMP %s from %s: source not directly connected\n", + pr_type((int)icp->type), +@@ -945,7 +946,6 @@ + { + #ifdef RDISC_SERVER + if (responder) { +- int i; + + /* Send out a packet with a preference so that all + * hosts will know that we are dead. +--- iputils/ping_common.c.countermeasures Tue May 21 10:06:05 2002 ++++ iputils/ping_common.c Tue May 21 10:12:42 2002 +@@ -628,7 +628,8 @@ + tvsub(tv, &tmp_tv); + triptime = tv->tv_sec * 1000000 + tv->tv_usec; + if (triptime < 0) { +- fprintf(stderr, "Warning: time of day goes back (%ldus), taking countermeasures.\n", triptime); ++ if (options & F_VERBOSE) ++ fprintf(stderr, "Warning: time of day goes back (%ldus), taking countermeasures.\n", triptime); + triptime = 0; + if (!(options & F_LATENCY)) { + gettimeofday(tv, NULL); +--- iputils/ping.c.addrcache 2002-09-20 17:08:11.000000000 +0200 ++++ iputils/ping.c 2003-05-15 16:41:19.000000000 +0200 +@@ -1124,6 +1124,12 @@ + { + struct hostent *hp; + static char buf[4096]; ++ static __u32 addr_cache = 0; ++ ++ if ( addr == addr_cache ) ++ return buf; ++ ++ addr_cache = addr; + + if ((options & F_NUMERIC) || + !(hp = gethostbyaddr((char *)&addr, 4, AF_INET))) +--- iputils/ping6.c.addrcache 2002-09-20 17:08:11.000000000 +0200 ++++ iputils/ping6.c 2003-05-15 16:41:19.000000000 +0200 +@@ -893,7 +893,14 @@ + */ + char * pr_addr(struct in6_addr *addr) + { +- struct hostent *hp = NULL; ++ static struct hostent *hp = NULL; ++ static struct in6_addr addr_cache = {{{0,0,0,0}}}; ++ ++ if ( addr->s6_addr32[0] == addr_cache.s6_addr32[0] && ++ addr->s6_addr32[1] == addr_cache.s6_addr32[1] && ++ addr->s6_addr32[2] == addr_cache.s6_addr32[2] && ++ addr->s6_addr32[3] == addr_cache.s6_addr32[3] ) ++ return hp ? hp->h_name : pr_addr_n(addr); + + if (!(options&F_NUMERIC)) + hp = gethostbyaddr((__u8*)addr, sizeof(struct in6_addr), AF_INET6); +--- iputils-ss021109-vanilla/ping.c Thu Nov 7 23:53:21 2002 ++++ iputils/ping.c Sun Jan 12 03:39:24 2003 +@@ -285,6 +285,9 @@ + perror("ping: IP_MULTICAST_IF"); + exit(2); + } ++ } else if (icmp_sock >= 0) { ++ /* We possible tried to SO_BINDTODEVICE() a subinterface like 'eth0:1' */ ++ perror("Warning: cannot bind to specified iface, falling back"); + } + } + } +--- iputils/ping.c.icmp_seq 2003-09-03 16:45:07.000000000 +0200 ++++ iputils/ping.c 2003-09-03 16:45:41.000000000 +0200 +@@ -610,7 +610,7 @@ + icp->type = ICMP_ECHO; + icp->code = 0; + icp->checksum = 0; +- icp->un.echo.sequence = htons(ntransmitted+1); ++ icp->un.echo.sequence = htons(ntransmitted); + icp->un.echo.id = ident; /* ID */ + + CLR((ntransmitted+1) % mx_dup_ck); +--- iputils/ping6.c.icmp_seq 2003-09-03 16:45:20.000000000 +0200 ++++ iputils/ping6.c 2003-09-03 16:45:34.000000000 +0200 +@@ -647,7 +647,7 @@ + icmph->icmp6_type = ICMPV6_ECHO_REQUEST; + icmph->icmp6_code = 0; + icmph->icmp6_cksum = 0; +- icmph->icmp6_sequence = htons(ntransmitted+1); ++ icmph->icmp6_sequence = htons(ntransmitted); + icmph->icmp6_identifier = ident; + + CLR((ntransmitted+1) % mx_dup_ck); +diff -ru iputils/include-glibc/netinet/in.h iputils-clean/include-glibc/netinet/in.h +--- iputils/include-glibc/netinet/in.h 2000-06-18 14:57:25.000000000 -0400 ++++ iputils-clean/include-glibc/netinet/in.h 2003-09-03 11:21:55.000000000 -0400 +@@ -8,4 +8,45 @@ + + #define SOL_IP 0 + +-#endif /* netinet/in.h */ ++/* Functions to convert between host and network byte order. ++ ++ Please note that these functions normally take `unsigned long int' or ++ `unsigned short int' values as arguments and also return them. But ++ this was a short-sighted decision since on different systems the types ++ may have different representations but the values are always the same. */ ++ ++extern u_int32_t ntohl (u_int32_t __netlong) __THROW __attribute__ ((__const__)); ++extern u_int16_t ntohs (u_int16_t __netshort) ++ __THROW __attribute__ ((__const__)); ++extern u_int32_t htonl (u_int32_t __hostlong) ++ __THROW __attribute__ ((__const__)); ++extern u_int16_t htons (u_int16_t __hostshort) ++ __THROW __attribute__ ((__const__)); ++ ++#include ++ ++/* Get machine dependent optimized versions of byte swapping functions. */ ++#include ++ ++#ifdef __OPTIMIZE__ ++/* We can optimize calls to the conversion functions. Either nothing has ++ to be done or we are using directly the byte-swapping functions which ++ often can be inlined. */ ++# if __BYTE_ORDER == __BIG_ENDIAN ++/* The host byte order is the same as network byte order, ++ so these functions are all just identity. */ ++# define ntohl(x) (x) ++# define ntohs(x) (x) ++# define htonl(x) (x) ++# define htons(x) (x) ++# else ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define ntohl(x) __bswap_32 (x) ++# define ntohs(x) __bswap_16 (x) ++# define htonl(x) __bswap_32 (x) ++# define htons(x) __bswap_16 (x) ++# endif ++# endif ++#endif ++ ++#endif /* netinet/in.h */ +diff -ru iputils/ping6.c iputils-clean/ping6.c +--- iputils/ping6.c 2003-09-03 11:22:46.000000000 -0400 ++++ iputils-clean/ping6.c 2003-09-03 11:15:42.000000000 -0400 +@@ -879,7 +879,7 @@ + once = 1; + + /* Patch bpflet for current identifier. */ +- insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1); ++ insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1); + + if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter))) + perror("WARNING: failed to install socket filter\n"); +diff -ru iputils/ping.c iputils-clean/ping.c +--- iputils/ping.c 2003-09-03 11:22:46.000000000 -0400 ++++ iputils-clean/ping.c 2003-09-03 11:15:26.000000000 -0400 +@@ -1196,7 +1196,7 @@ + once = 1; + + /* Patch bpflet for current identifier. */ +- insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1); ++ insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1); + + if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter))) + perror("WARNING: failed to install socket filter\n"); +diff -urN iputils/clockdiff.c iputils.new/clockdiff.c +--- iputils/clockdiff.c 2002-02-22 19:10:59.000000000 -0500 ++++ iputils.new/clockdiff.c 2003-09-10 09:20:28.000000000 -0400 +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff -urN iputils/ping6.c iputils.new/ping6.c +--- iputils/ping6.c 2003-09-10 17:27:48.000000000 -0400 ++++ iputils.new/ping6.c 2003-09-10 17:22:43.000000000 -0400 +@@ -68,8 +68,44 @@ + */ + #include "ping_common.h" + +-#include +-#include ++struct ipv6_rt_hdr { ++ __u8 nexthdr; ++ __u8 hdrlen; ++ __u8 type; ++ __u8 segments_left; ++ ++ /* ++ * type specific data ++ * variable length field ++ */ ++}; ++ ++struct rt0_hdr { ++ struct ipv6_rt_hdr rt_hdr; ++ __u32 bitmap; /* strict/loose bit map */ ++ struct in6_addr addr[0]; ++ ++#define rt0_type rt_hdr.type; ++}; ++#define IPV6_SRCRT_TYPE_0 0 /* IPv6 type 0 Routing Header */ ++struct ipv6hdr { ++#if defined(__LITTLE_ENDIAN) ++ __u8 priority:4, ++ version:4; ++#elif defined(__BIG_ENDIAN) ++ __u8 version:4, ++ priority:4; ++#endif ++ __u8 flow_lbl[3]; ++ ++ __u16 payload_len; ++ __u8 nexthdr; ++ __u8 hop_limit; ++ ++ struct in6_addr saddr; ++ struct in6_addr daddr; ++}; ++ + #include + + #define BIT_CLEAR(nr, addr) do { ((__u32 *)(addr))[(nr) >> 5] &= ~(1U << ((nr) & 31)); } while(0) +diff -urN iputils/ping_common.h iputils.new/ping_common.h +--- iputils/ping_common.h 2002-09-20 11:08:11.000000000 -0400 ++++ iputils.new/ping_common.h 2003-09-10 17:16:16.000000000 -0400 +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include + + #include "SNAPSHOT.h" +diff -urN iputils/tftpd.c iputils.new/tftpd.c +--- iputils/tftpd.c 2002-01-23 19:31:41.000000000 -0500 ++++ iputils.new/tftpd.c 2003-09-10 09:39:45.000000000 -0400 +@@ -57,7 +57,6 @@ + + #include + #include +-#include + #include + + #include +diff -urN iputils/tracepath6.c iputils.new/tracepath6.c +--- iputils/tracepath6.c 2001-09-01 22:03:46.000000000 -0400 ++++ iputils.new/tracepath6.c 2003-09-10 09:40:18.000000000 -0400 +@@ -14,8 +14,7 @@ + #include + #include + #include +- +-#include ++#include + #include + #include + #include +diff -urN iputils/tracepath.c iputils.new/tracepath.c +--- iputils/tracepath.c 2002-02-22 19:10:59.000000000 -0500 ++++ iputils.new/tracepath.c 2003-09-10 06:14:35.000000000 -0400 +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff -urN iputils/traceroute6.c iputils.new/traceroute6.c +--- iputils/traceroute6.c 2002-09-20 11:44:22.000000000 -0400 ++++ iputils.new/traceroute6.c 2003-09-10 10:12:47.000000000 -0400 +@@ -246,9 +246,24 @@ + #include + #include + +-#include +-#include ++#include ++struct ipv6hdr { ++#if defined(__LITTLE_ENDIAN) ++ __u8 priority:4, ++ version:4; ++#elif defined(__BIG_ENDIAN) ++ __u8 version:4, ++ priority:4; ++#endif ++ __u8 flow_lbl[3]; ++ ++ __u16 payload_len; ++ __u8 nexthdr; ++ __u8 hop_limit; + ++ struct in6_addr saddr; ++ struct in6_addr daddr; ++}; + #include + + #include +--- iputils/arping.c.unaligned 2001-10-06 00:42:47.000000000 +0200 ++++ iputils/arping.c 2003-10-02 15:14:42.000000000 +0200 +@@ -332,7 +332,7 @@ + timeout = atoi(optarg); + break; + case 'I': +- device = optarg; ++ device = strdup(optarg); + break; + case 'f': + quit_on_reply=1; +--- iputils/traceroute6.c.inet_pton 2004-04-22 15:06:28.268797480 +0200 ++++ iputils/traceroute6.c 2004-04-22 15:06:35.727877941 +0200 +@@ -538,7 +538,7 @@ + } else { + (void) bzero((char *)&saddr, sizeof(saddr)); + saddr.sin6_family = AF_INET6; +- if (inet_pton(AF_INET6, source, &saddr.sin6_addr) < 0) ++ if (inet_pton(AF_INET6, source, &saddr.sin6_addr) <= 0) + { + Printf("traceroute: unknown addr %s\n", source); + exit(1); +--- iputils/traceroute6.c.old 2004-12-07 11:08:57.000000000 +0100 ++++ iputils/traceroute6.c 2004-12-07 11:14:09.397575536 +0100 +@@ -352,8 +352,11 @@ + icmp_sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6); + socket_errno = errno; + +- setuid(getuid()); +- ++ if(setuid(getuid()) != 0) ++ { ++ perror("traceroute: setuid()"); ++ exit(-1); ++ } + on = 1; + seq = tos = 0; + to = (struct sockaddr_in6 *)&whereto; +--- iputils/ping6.c.old 2004-12-07 11:08:57.000000000 +0100 ++++ iputils/ping6.c 2004-12-07 11:13:40.707937024 +0100 +@@ -223,7 +223,11 @@ + socket_errno = errno; + + uid = getuid(); +- setuid(uid); ++ if(setuid(uid) != 0) ++ { ++ perror("ping: setuid()"); ++ exit(-1); ++ } + + source.sin6_family = AF_INET6; + memset(&firsthop, 0, sizeof(firsthop)); +--- iputils/ping.c.old 2004-12-07 11:08:57.000000000 +0100 ++++ iputils/ping.c 2004-12-07 11:13:27.523941296 +0100 +@@ -119,7 +119,11 @@ + socket_errno = errno; + + uid = getuid(); +- setuid(uid); ++ if(setuid(uid) != 0) ++ { ++ perror("ping: setuid()"); ++ exit(-1); ++ } + + source.sin_family = AF_INET; + +--- iputils/doc/ping.8.old 2002-09-27 19:12:47.000000000 +0200 ++++ iputils/doc/ping.8 2004-12-07 11:09:42.434160144 +0100 +@@ -112,7 +112,7 @@ + when finished. + .TP + \fB-R\fR +-Record route. ++Record route. (IPv4 only) + Includes the RECORD_ROUTE option in the ECHO_REQUEST + packet and displays the route buffer on returned packets. + Note that the IP header is only large enough for nine such routes. +--- iputils/doc/ping.sgml.old 2002-09-20 14:55:50.000000000 +0200 ++++ iputils/doc/ping.sgml 2004-12-07 11:09:42.435159992 +0100 +@@ -190,7 +190,7 @@ + +